From 89c842e5f4423a8b0cd9892e7805ee4e33853a15 Mon Sep 17 00:00:00 2001 From: Abdul Wahab Date: Thu, 27 Aug 2026 19:32:25 +0500 Subject: [PATCH] update --- .agent/skills/impeccable/SKILL.md | 1 + .agent/skills/impeccable/reference/audit.md | 4 +- .../impeccable/reference/audit.native.md | 4 +- .../impeccable/reference/craft-floor.md | 5 +- .../skills/impeccable/reference/critique.md | 4 +- .../reference/degraded/finish-reviewer.md | 4 +- .../impeccable/reference/design-context.md | 93 + .../skills/impeccable/reference/document.md | 135 +- .../skills/impeccable/reference/image-api.md | 54 + .../skills/impeccable/reference/new-work.md | 16 +- .../impeccable/reference/visual-cues.md | 560 ++++ .../impeccable/scripts/command-metadata.json | 4 + .../impeccable/scripts/concept-seed.mjs | 58 +- .../scripts/design-context-export.mjs | 67 + .../scripts/design-context-import.mjs | 83 + .../scripts/design-context/bindings.mjs | 82 + .../scripts/design-context/portability.mjs | 339 +++ .../scripts/design-context/session-routes.mjs | 236 ++ .../scripts/design-context/store.mjs | 241 ++ .../skills/impeccable/scripts/image-gen.mjs | 363 +++ .agent/skills/impeccable/scripts/palette.mjs | 8 + .../impeccable/scripts/picker-doc-poll.mjs | 137 + .../impeccable/scripts/picker-doc-session.mjs | 465 +++ .../impeccable/scripts/picker-server.mjs | 572 ++++ .../assets/audience/audience-groups-foil.png | Bin 0 -> 7576 bytes .../audience/emotional-journey-foil.png | Bin 0 -> 6153 bytes .../picker/assets/audience/inclusion-foil.png | Bin 0 -> 8962 bytes .../assets/audience/kinpaku-gold-leaf.png | Bin 0 -> 54304 bytes .../picker/assets/audience/needs-foil.png | Bin 0 -> 10388 bytes .../assets/audience/trust-triggers-foil.png | Bin 0 -> 8016 bytes .../assets/audience/verdigris-patina.png | Bin 0 -> 53615 bytes .../assets/brand/brand-commitments-foil.png | Bin 0 -> 9303 bytes .../assets/brand/brand-personality-foil.png | Bin 0 -> 12365 bytes .../assets/brand/brand-principles-foil.png | Bin 0 -> 4124 bytes .../picker/assets/brand/brand-voice-foil.png | Bin 0 -> 11579 bytes .../placeholders/hanazono-atelier-seal.png | Bin 0 -> 59173 bytes .../hanazono-material-reference.webp | Bin 0 -> 91136 bytes .../placeholders/hanazono-primary-mark.png | Bin 0 -> 64734 bytes .../hanazono-seasonal-moodboard.webp | Bin 0 -> 41660 bytes .../assets/color/color-palette-foil.png | Bin 0 -> 10064 bytes .../color/color-strategy-per-surface-foil.png | Bin 0 -> 4075 bytes .../components/hanazono-ikebana-card.jpg | Bin 0 -> 73550 bytes .../scripts/picker/assets/hero-dark.jpg | Bin 0 -> 307182 bytes .../scripts/picker/assets/index.DQJ7Kjkj.css | 1 + ...astro_type_script_index_0_lang.Cpn-pC_8.js | 2565 +++++++++++++++++ .../picker/assets/kinpaku-gold-leaf.jpg | Bin 0 -> 119264 bytes .../material-boundaries-per-surface-foil.png | Bin 0 -> 6992 bytes .../material-corners-per-surface-foil.png | Bin 0 -> 4246 bytes .../material-depth-per-surface-foil.png | Bin 0 -> 5595 bytes .../material-layout-structure-foil.png | Bin 0 -> 5042 bytes .../product/product-clear-first-foil.png | Bin 0 -> 8800 bytes .../product-operating-context-foil.png | Bin 0 -> 9508 bytes .../product/product-positioning-foil.png | Bin 0 -> 5503 bytes .../product-primary-conversion-foil.png | Bin 0 -> 5867 bytes .../product/product-principles-foil.png | Bin 0 -> 8070 bytes .../assets/product/product-purpose-foil.png | Bin 0 -> 5136 bytes .../assets/product/product-surfaces-foil.png | Bin 0 -> 9702 bytes .../typography/typography-pair-foil.png | Bin 0 -> 5074 bytes .../typography/typography-type-scale-foil.png | Bin 0 -> 5199 bytes .../impeccable/scripts/picker/favicon.svg | 13 + .../impeccable/scripts/picker/icon-packs.json | 1 + .../impeccable/scripts/picker/index.html | 5 + .agent/skills/impeccable/scripts/pin.mjs | 2 +- .../impeccable/scripts/serve-question.mjs | 2 +- .../skills/impeccable/scripts/visual-cues.mjs | 317 ++ .agents/skills/impeccable/SKILL.md | 1 + .../agents/impeccable_finish_reviewer.toml | 10 +- .agents/skills/impeccable/reference/audit.md | 4 +- .../impeccable/reference/audit.native.md | 4 +- .../impeccable/reference/craft-floor.md | 5 +- .../skills/impeccable/reference/critique.md | 4 +- .../reference/degraded/finish-reviewer.md | 10 +- .../impeccable/reference/design-context.md | 93 + .../skills/impeccable/reference/document.md | 135 +- .../skills/impeccable/reference/image-api.md | 54 + .../skills/impeccable/reference/new-work.md | 63 +- .../impeccable/reference/visual-cues.md | 560 ++++ .../impeccable/scripts/command-metadata.json | 4 + .../impeccable/scripts/concept-seed.mjs | 58 +- .../scripts/design-context-export.mjs | 67 + .../scripts/design-context-import.mjs | 83 + .../scripts/design-context/bindings.mjs | 82 + .../scripts/design-context/portability.mjs | 339 +++ .../scripts/design-context/session-routes.mjs | 236 ++ .../scripts/design-context/store.mjs | 241 ++ .../skills/impeccable/scripts/image-gen.mjs | 363 +++ .agents/skills/impeccable/scripts/palette.mjs | 8 + .../impeccable/scripts/picker-doc-poll.mjs | 137 + .../impeccable/scripts/picker-doc-session.mjs | 465 +++ .../impeccable/scripts/picker-server.mjs | 572 ++++ .../assets/audience/audience-groups-foil.png | Bin 0 -> 7576 bytes .../audience/emotional-journey-foil.png | Bin 0 -> 6153 bytes .../picker/assets/audience/inclusion-foil.png | Bin 0 -> 8962 bytes .../assets/audience/kinpaku-gold-leaf.png | Bin 0 -> 54304 bytes .../picker/assets/audience/needs-foil.png | Bin 0 -> 10388 bytes .../assets/audience/trust-triggers-foil.png | Bin 0 -> 8016 bytes .../assets/audience/verdigris-patina.png | Bin 0 -> 53615 bytes .../assets/brand/brand-commitments-foil.png | Bin 0 -> 9303 bytes .../assets/brand/brand-personality-foil.png | Bin 0 -> 12365 bytes .../assets/brand/brand-principles-foil.png | Bin 0 -> 4124 bytes .../picker/assets/brand/brand-voice-foil.png | Bin 0 -> 11579 bytes .../placeholders/hanazono-atelier-seal.png | Bin 0 -> 59173 bytes .../hanazono-material-reference.webp | Bin 0 -> 91136 bytes .../placeholders/hanazono-primary-mark.png | Bin 0 -> 64734 bytes .../hanazono-seasonal-moodboard.webp | Bin 0 -> 41660 bytes .../assets/color/color-palette-foil.png | Bin 0 -> 10064 bytes .../color/color-strategy-per-surface-foil.png | Bin 0 -> 4075 bytes .../components/hanazono-ikebana-card.jpg | Bin 0 -> 73550 bytes .../scripts/picker/assets/hero-dark.jpg | Bin 0 -> 307182 bytes .../scripts/picker/assets/index.DQJ7Kjkj.css | 1 + ...astro_type_script_index_0_lang.Cpn-pC_8.js | 2565 +++++++++++++++++ .../picker/assets/kinpaku-gold-leaf.jpg | Bin 0 -> 119264 bytes .../material-boundaries-per-surface-foil.png | Bin 0 -> 6992 bytes .../material-corners-per-surface-foil.png | Bin 0 -> 4246 bytes .../material-depth-per-surface-foil.png | Bin 0 -> 5595 bytes .../material-layout-structure-foil.png | Bin 0 -> 5042 bytes .../product/product-clear-first-foil.png | Bin 0 -> 8800 bytes .../product-operating-context-foil.png | Bin 0 -> 9508 bytes .../product/product-positioning-foil.png | Bin 0 -> 5503 bytes .../product-primary-conversion-foil.png | Bin 0 -> 5867 bytes .../product/product-principles-foil.png | Bin 0 -> 8070 bytes .../assets/product/product-purpose-foil.png | Bin 0 -> 5136 bytes .../assets/product/product-surfaces-foil.png | Bin 0 -> 9702 bytes .../typography/typography-pair-foil.png | Bin 0 -> 5074 bytes .../typography/typography-type-scale-foil.png | Bin 0 -> 5199 bytes .../impeccable/scripts/picker/favicon.svg | 13 + .../impeccable/scripts/picker/icon-packs.json | 1 + .../impeccable/scripts/picker/index.html | 5 + .agents/skills/impeccable/scripts/pin.mjs | 2 +- .../impeccable/scripts/serve-question.mjs | 2 +- .../skills/impeccable/scripts/visual-cues.mjs | 317 ++ .claude/agents/impeccable-finish-reviewer.md | 10 +- .claude/skills/impeccable/SKILL.md | 3 +- .claude/skills/impeccable/reference/audit.md | 4 +- .../impeccable/reference/audit.native.md | 4 +- .../impeccable/reference/craft-floor.md | 5 +- .../skills/impeccable/reference/critique.md | 4 +- .../reference/degraded/finish-reviewer.md | 10 +- .../impeccable/reference/design-context.md | 93 + .../skills/impeccable/reference/document.md | 135 +- .../skills/impeccable/reference/image-api.md | 54 + .../skills/impeccable/reference/new-work.md | 63 +- .../impeccable/reference/visual-cues.md | 560 ++++ .../impeccable/scripts/command-metadata.json | 4 + .../impeccable/scripts/concept-seed.mjs | 58 +- .../scripts/design-context-export.mjs | 67 + .../scripts/design-context-import.mjs | 83 + .../scripts/design-context/bindings.mjs | 82 + .../scripts/design-context/portability.mjs | 339 +++ .../scripts/design-context/session-routes.mjs | 236 ++ .../scripts/design-context/store.mjs | 241 ++ .../skills/impeccable/scripts/image-gen.mjs | 363 +++ .claude/skills/impeccable/scripts/palette.mjs | 8 + .../impeccable/scripts/picker-doc-poll.mjs | 137 + .../impeccable/scripts/picker-doc-session.mjs | 465 +++ .../impeccable/scripts/picker-server.mjs | 572 ++++ .../assets/audience/audience-groups-foil.png | Bin 0 -> 7576 bytes .../audience/emotional-journey-foil.png | Bin 0 -> 6153 bytes .../picker/assets/audience/inclusion-foil.png | Bin 0 -> 8962 bytes .../assets/audience/kinpaku-gold-leaf.png | Bin 0 -> 54304 bytes .../picker/assets/audience/needs-foil.png | Bin 0 -> 10388 bytes .../assets/audience/trust-triggers-foil.png | Bin 0 -> 8016 bytes .../assets/audience/verdigris-patina.png | Bin 0 -> 53615 bytes .../assets/brand/brand-commitments-foil.png | Bin 0 -> 9303 bytes .../assets/brand/brand-personality-foil.png | Bin 0 -> 12365 bytes .../assets/brand/brand-principles-foil.png | Bin 0 -> 4124 bytes .../picker/assets/brand/brand-voice-foil.png | Bin 0 -> 11579 bytes .../placeholders/hanazono-atelier-seal.png | Bin 0 -> 59173 bytes .../hanazono-material-reference.webp | Bin 0 -> 91136 bytes .../placeholders/hanazono-primary-mark.png | Bin 0 -> 64734 bytes .../hanazono-seasonal-moodboard.webp | Bin 0 -> 41660 bytes .../assets/color/color-palette-foil.png | Bin 0 -> 10064 bytes .../color/color-strategy-per-surface-foil.png | Bin 0 -> 4075 bytes .../components/hanazono-ikebana-card.jpg | Bin 0 -> 73550 bytes .../scripts/picker/assets/hero-dark.jpg | Bin 0 -> 307182 bytes .../scripts/picker/assets/index.DQJ7Kjkj.css | 1 + ...astro_type_script_index_0_lang.Cpn-pC_8.js | 2565 +++++++++++++++++ .../picker/assets/kinpaku-gold-leaf.jpg | Bin 0 -> 119264 bytes .../material-boundaries-per-surface-foil.png | Bin 0 -> 6992 bytes .../material-corners-per-surface-foil.png | Bin 0 -> 4246 bytes .../material-depth-per-surface-foil.png | Bin 0 -> 5595 bytes .../material-layout-structure-foil.png | Bin 0 -> 5042 bytes .../product/product-clear-first-foil.png | Bin 0 -> 8800 bytes .../product-operating-context-foil.png | Bin 0 -> 9508 bytes .../product/product-positioning-foil.png | Bin 0 -> 5503 bytes .../product-primary-conversion-foil.png | Bin 0 -> 5867 bytes .../product/product-principles-foil.png | Bin 0 -> 8070 bytes .../assets/product/product-purpose-foil.png | Bin 0 -> 5136 bytes .../assets/product/product-surfaces-foil.png | Bin 0 -> 9702 bytes .../typography/typography-pair-foil.png | Bin 0 -> 5074 bytes .../typography/typography-type-scale-foil.png | Bin 0 -> 5199 bytes .../impeccable/scripts/picker/favicon.svg | 13 + .../impeccable/scripts/picker/icon-packs.json | 1 + .../impeccable/scripts/picker/index.html | 5 + .claude/skills/impeccable/scripts/pin.mjs | 2 +- .../impeccable/scripts/serve-question.mjs | 2 +- .../skills/impeccable/scripts/visual-cues.mjs | 317 ++ .cursor/agents/impeccable-finish-reviewer.md | 10 +- .cursor/skills/impeccable/SKILL.md | 1 + .cursor/skills/impeccable/reference/audit.md | 4 +- .../impeccable/reference/audit.native.md | 4 +- .../impeccable/reference/craft-floor.md | 5 +- .../skills/impeccable/reference/critique.md | 4 +- .../reference/degraded/finish-reviewer.md | 10 +- .../impeccable/reference/design-context.md | 93 + .../skills/impeccable/reference/document.md | 135 +- .../skills/impeccable/reference/image-api.md | 54 + .../skills/impeccable/reference/new-work.md | 63 +- .../impeccable/reference/visual-cues.md | 560 ++++ .../impeccable/scripts/command-metadata.json | 4 + .../impeccable/scripts/concept-seed.mjs | 58 +- .../scripts/design-context-export.mjs | 67 + .../scripts/design-context-import.mjs | 83 + .../scripts/design-context/bindings.mjs | 82 + .../scripts/design-context/portability.mjs | 339 +++ .../scripts/design-context/session-routes.mjs | 236 ++ .../scripts/design-context/store.mjs | 241 ++ .../skills/impeccable/scripts/image-gen.mjs | 363 +++ .cursor/skills/impeccable/scripts/palette.mjs | 8 + .../impeccable/scripts/picker-doc-poll.mjs | 137 + .../impeccable/scripts/picker-doc-session.mjs | 465 +++ .../impeccable/scripts/picker-server.mjs | 572 ++++ .../assets/audience/audience-groups-foil.png | Bin 0 -> 7576 bytes .../audience/emotional-journey-foil.png | Bin 0 -> 6153 bytes .../picker/assets/audience/inclusion-foil.png | Bin 0 -> 8962 bytes .../assets/audience/kinpaku-gold-leaf.png | Bin 0 -> 54304 bytes .../picker/assets/audience/needs-foil.png | Bin 0 -> 10388 bytes .../assets/audience/trust-triggers-foil.png | Bin 0 -> 8016 bytes .../assets/audience/verdigris-patina.png | Bin 0 -> 53615 bytes .../assets/brand/brand-commitments-foil.png | Bin 0 -> 9303 bytes .../assets/brand/brand-personality-foil.png | Bin 0 -> 12365 bytes .../assets/brand/brand-principles-foil.png | Bin 0 -> 4124 bytes .../picker/assets/brand/brand-voice-foil.png | Bin 0 -> 11579 bytes .../placeholders/hanazono-atelier-seal.png | Bin 0 -> 59173 bytes .../hanazono-material-reference.webp | Bin 0 -> 91136 bytes .../placeholders/hanazono-primary-mark.png | Bin 0 -> 64734 bytes .../hanazono-seasonal-moodboard.webp | Bin 0 -> 41660 bytes .../assets/color/color-palette-foil.png | Bin 0 -> 10064 bytes .../color/color-strategy-per-surface-foil.png | Bin 0 -> 4075 bytes .../components/hanazono-ikebana-card.jpg | Bin 0 -> 73550 bytes .../scripts/picker/assets/hero-dark.jpg | Bin 0 -> 307182 bytes .../scripts/picker/assets/index.DQJ7Kjkj.css | 1 + ...astro_type_script_index_0_lang.Cpn-pC_8.js | 2565 +++++++++++++++++ .../picker/assets/kinpaku-gold-leaf.jpg | Bin 0 -> 119264 bytes .../material-boundaries-per-surface-foil.png | Bin 0 -> 6992 bytes .../material-corners-per-surface-foil.png | Bin 0 -> 4246 bytes .../material-depth-per-surface-foil.png | Bin 0 -> 5595 bytes .../material-layout-structure-foil.png | Bin 0 -> 5042 bytes .../product/product-clear-first-foil.png | Bin 0 -> 8800 bytes .../product-operating-context-foil.png | Bin 0 -> 9508 bytes .../product/product-positioning-foil.png | Bin 0 -> 5503 bytes .../product-primary-conversion-foil.png | Bin 0 -> 5867 bytes .../product/product-principles-foil.png | Bin 0 -> 8070 bytes .../assets/product/product-purpose-foil.png | Bin 0 -> 5136 bytes .../assets/product/product-surfaces-foil.png | Bin 0 -> 9702 bytes .../typography/typography-pair-foil.png | Bin 0 -> 5074 bytes .../typography/typography-type-scale-foil.png | Bin 0 -> 5199 bytes .../impeccable/scripts/picker/favicon.svg | 13 + .../impeccable/scripts/picker/icon-packs.json | 1 + .../impeccable/scripts/picker/index.html | 5 + .cursor/skills/impeccable/scripts/pin.mjs | 2 +- .../impeccable/scripts/serve-question.mjs | 2 +- .../skills/impeccable/scripts/visual-cues.mjs | 317 ++ .gemini/skills/impeccable/SKILL.md | 1 + .gemini/skills/impeccable/reference/audit.md | 4 +- .../impeccable/reference/audit.native.md | 4 +- .../impeccable/reference/craft-floor.md | 5 +- .../skills/impeccable/reference/critique.md | 4 +- .../reference/degraded/finish-reviewer.md | 10 +- .../impeccable/reference/design-context.md | 93 + .../skills/impeccable/reference/document.md | 135 +- .../skills/impeccable/reference/image-api.md | 54 + .../skills/impeccable/reference/new-work.md | 63 +- .../impeccable/reference/visual-cues.md | 560 ++++ .../impeccable/scripts/command-metadata.json | 4 + .../impeccable/scripts/concept-seed.mjs | 58 +- .../scripts/design-context-export.mjs | 67 + .../scripts/design-context-import.mjs | 83 + .../scripts/design-context/bindings.mjs | 82 + .../scripts/design-context/portability.mjs | 339 +++ .../scripts/design-context/session-routes.mjs | 236 ++ .../scripts/design-context/store.mjs | 241 ++ .../skills/impeccable/scripts/image-gen.mjs | 363 +++ .gemini/skills/impeccable/scripts/palette.mjs | 8 + .../impeccable/scripts/picker-doc-poll.mjs | 137 + .../impeccable/scripts/picker-doc-session.mjs | 465 +++ .../impeccable/scripts/picker-server.mjs | 572 ++++ .../assets/audience/audience-groups-foil.png | Bin 0 -> 7576 bytes .../audience/emotional-journey-foil.png | Bin 0 -> 6153 bytes .../picker/assets/audience/inclusion-foil.png | Bin 0 -> 8962 bytes .../assets/audience/kinpaku-gold-leaf.png | Bin 0 -> 54304 bytes .../picker/assets/audience/needs-foil.png | Bin 0 -> 10388 bytes .../assets/audience/trust-triggers-foil.png | Bin 0 -> 8016 bytes .../assets/audience/verdigris-patina.png | Bin 0 -> 53615 bytes .../assets/brand/brand-commitments-foil.png | Bin 0 -> 9303 bytes .../assets/brand/brand-personality-foil.png | Bin 0 -> 12365 bytes .../assets/brand/brand-principles-foil.png | Bin 0 -> 4124 bytes .../picker/assets/brand/brand-voice-foil.png | Bin 0 -> 11579 bytes .../placeholders/hanazono-atelier-seal.png | Bin 0 -> 59173 bytes .../hanazono-material-reference.webp | Bin 0 -> 91136 bytes .../placeholders/hanazono-primary-mark.png | Bin 0 -> 64734 bytes .../hanazono-seasonal-moodboard.webp | Bin 0 -> 41660 bytes .../assets/color/color-palette-foil.png | Bin 0 -> 10064 bytes .../color/color-strategy-per-surface-foil.png | Bin 0 -> 4075 bytes .../components/hanazono-ikebana-card.jpg | Bin 0 -> 73550 bytes .../scripts/picker/assets/hero-dark.jpg | Bin 0 -> 307182 bytes .../scripts/picker/assets/index.DQJ7Kjkj.css | 1 + ...astro_type_script_index_0_lang.Cpn-pC_8.js | 2565 +++++++++++++++++ .../picker/assets/kinpaku-gold-leaf.jpg | Bin 0 -> 119264 bytes .../material-boundaries-per-surface-foil.png | Bin 0 -> 6992 bytes .../material-corners-per-surface-foil.png | Bin 0 -> 4246 bytes .../material-depth-per-surface-foil.png | Bin 0 -> 5595 bytes .../material-layout-structure-foil.png | Bin 0 -> 5042 bytes .../product/product-clear-first-foil.png | Bin 0 -> 8800 bytes .../product-operating-context-foil.png | Bin 0 -> 9508 bytes .../product/product-positioning-foil.png | Bin 0 -> 5503 bytes .../product-primary-conversion-foil.png | Bin 0 -> 5867 bytes .../product/product-principles-foil.png | Bin 0 -> 8070 bytes .../assets/product/product-purpose-foil.png | Bin 0 -> 5136 bytes .../assets/product/product-surfaces-foil.png | Bin 0 -> 9702 bytes .../typography/typography-pair-foil.png | Bin 0 -> 5074 bytes .../typography/typography-type-scale-foil.png | Bin 0 -> 5199 bytes .../impeccable/scripts/picker/favicon.svg | 13 + .../impeccable/scripts/picker/icon-packs.json | 1 + .../impeccable/scripts/picker/index.html | 5 + .gemini/skills/impeccable/scripts/pin.mjs | 2 +- .../impeccable/scripts/serve-question.mjs | 2 +- .../skills/impeccable/scripts/visual-cues.mjs | 317 ++ .../impeccable-finish-reviewer.agent.md | 4 +- .github/skills/impeccable/SKILL.md | 3 +- .github/skills/impeccable/reference/audit.md | 4 +- .../impeccable/reference/audit.native.md | 4 +- .../impeccable/reference/craft-floor.md | 5 +- .../skills/impeccable/reference/critique.md | 4 +- .../reference/degraded/finish-reviewer.md | 10 +- .../impeccable/reference/design-context.md | 93 + .../skills/impeccable/reference/document.md | 135 +- .../skills/impeccable/reference/image-api.md | 54 + .../skills/impeccable/reference/new-work.md | 63 +- .../impeccable/reference/visual-cues.md | 560 ++++ .../impeccable/scripts/command-metadata.json | 4 + .../impeccable/scripts/concept-seed.mjs | 58 +- .../scripts/design-context-export.mjs | 67 + .../scripts/design-context-import.mjs | 83 + .../scripts/design-context/bindings.mjs | 82 + .../scripts/design-context/portability.mjs | 339 +++ .../scripts/design-context/session-routes.mjs | 236 ++ .../scripts/design-context/store.mjs | 241 ++ .../skills/impeccable/scripts/image-gen.mjs | 363 +++ .github/skills/impeccable/scripts/palette.mjs | 8 + .../impeccable/scripts/picker-doc-poll.mjs | 137 + .../impeccable/scripts/picker-doc-session.mjs | 465 +++ .../impeccable/scripts/picker-server.mjs | 572 ++++ .../assets/audience/audience-groups-foil.png | Bin 0 -> 7576 bytes .../audience/emotional-journey-foil.png | Bin 0 -> 6153 bytes .../picker/assets/audience/inclusion-foil.png | Bin 0 -> 8962 bytes .../assets/audience/kinpaku-gold-leaf.png | Bin 0 -> 54304 bytes .../picker/assets/audience/needs-foil.png | Bin 0 -> 10388 bytes .../assets/audience/trust-triggers-foil.png | Bin 0 -> 8016 bytes .../assets/audience/verdigris-patina.png | Bin 0 -> 53615 bytes .../assets/brand/brand-commitments-foil.png | Bin 0 -> 9303 bytes .../assets/brand/brand-personality-foil.png | Bin 0 -> 12365 bytes .../assets/brand/brand-principles-foil.png | Bin 0 -> 4124 bytes .../picker/assets/brand/brand-voice-foil.png | Bin 0 -> 11579 bytes .../placeholders/hanazono-atelier-seal.png | Bin 0 -> 59173 bytes .../hanazono-material-reference.webp | Bin 0 -> 91136 bytes .../placeholders/hanazono-primary-mark.png | Bin 0 -> 64734 bytes .../hanazono-seasonal-moodboard.webp | Bin 0 -> 41660 bytes .../assets/color/color-palette-foil.png | Bin 0 -> 10064 bytes .../color/color-strategy-per-surface-foil.png | Bin 0 -> 4075 bytes .../components/hanazono-ikebana-card.jpg | Bin 0 -> 73550 bytes .../scripts/picker/assets/hero-dark.jpg | Bin 0 -> 307182 bytes .../scripts/picker/assets/index.DQJ7Kjkj.css | 1 + ...astro_type_script_index_0_lang.Cpn-pC_8.js | 2565 +++++++++++++++++ .../picker/assets/kinpaku-gold-leaf.jpg | Bin 0 -> 119264 bytes .../material-boundaries-per-surface-foil.png | Bin 0 -> 6992 bytes .../material-corners-per-surface-foil.png | Bin 0 -> 4246 bytes .../material-depth-per-surface-foil.png | Bin 0 -> 5595 bytes .../material-layout-structure-foil.png | Bin 0 -> 5042 bytes .../product/product-clear-first-foil.png | Bin 0 -> 8800 bytes .../product-operating-context-foil.png | Bin 0 -> 9508 bytes .../product/product-positioning-foil.png | Bin 0 -> 5503 bytes .../product-primary-conversion-foil.png | Bin 0 -> 5867 bytes .../product/product-principles-foil.png | Bin 0 -> 8070 bytes .../assets/product/product-purpose-foil.png | Bin 0 -> 5136 bytes .../assets/product/product-surfaces-foil.png | Bin 0 -> 9702 bytes .../typography/typography-pair-foil.png | Bin 0 -> 5074 bytes .../typography/typography-type-scale-foil.png | Bin 0 -> 5199 bytes .../impeccable/scripts/picker/favicon.svg | 13 + .../impeccable/scripts/picker/icon-packs.json | 1 + .../impeccable/scripts/picker/index.html | 5 + .github/skills/impeccable/scripts/pin.mjs | 2 +- .../impeccable/scripts/serve-question.mjs | 2 +- .../skills/impeccable/scripts/visual-cues.mjs | 317 ++ .grok/agents/impeccable-finish-reviewer.md | 10 +- .grok/skills/impeccable/SKILL.md | 3 +- .grok/skills/impeccable/reference/audit.md | 4 +- .../impeccable/reference/audit.native.md | 4 +- .../impeccable/reference/craft-floor.md | 5 +- .grok/skills/impeccable/reference/critique.md | 4 +- .../reference/degraded/finish-reviewer.md | 10 +- .../impeccable/reference/design-context.md | 93 + .grok/skills/impeccable/reference/document.md | 135 +- .../skills/impeccable/reference/image-api.md | 54 + .grok/skills/impeccable/reference/new-work.md | 63 +- .../impeccable/reference/visual-cues.md | 560 ++++ .../impeccable/scripts/command-metadata.json | 4 + .../impeccable/scripts/concept-seed.mjs | 58 +- .../scripts/design-context-export.mjs | 67 + .../scripts/design-context-import.mjs | 83 + .../scripts/design-context/bindings.mjs | 82 + .../scripts/design-context/portability.mjs | 339 +++ .../scripts/design-context/session-routes.mjs | 236 ++ .../scripts/design-context/store.mjs | 241 ++ .grok/skills/impeccable/scripts/image-gen.mjs | 363 +++ .grok/skills/impeccable/scripts/palette.mjs | 8 + .../impeccable/scripts/picker-doc-poll.mjs | 137 + .../impeccable/scripts/picker-doc-session.mjs | 465 +++ .../impeccable/scripts/picker-server.mjs | 572 ++++ .../assets/audience/audience-groups-foil.png | Bin 0 -> 7576 bytes .../audience/emotional-journey-foil.png | Bin 0 -> 6153 bytes .../picker/assets/audience/inclusion-foil.png | Bin 0 -> 8962 bytes .../assets/audience/kinpaku-gold-leaf.png | Bin 0 -> 54304 bytes .../picker/assets/audience/needs-foil.png | Bin 0 -> 10388 bytes .../assets/audience/trust-triggers-foil.png | Bin 0 -> 8016 bytes .../assets/audience/verdigris-patina.png | Bin 0 -> 53615 bytes .../assets/brand/brand-commitments-foil.png | Bin 0 -> 9303 bytes .../assets/brand/brand-personality-foil.png | Bin 0 -> 12365 bytes .../assets/brand/brand-principles-foil.png | Bin 0 -> 4124 bytes .../picker/assets/brand/brand-voice-foil.png | Bin 0 -> 11579 bytes .../placeholders/hanazono-atelier-seal.png | Bin 0 -> 59173 bytes .../hanazono-material-reference.webp | Bin 0 -> 91136 bytes .../placeholders/hanazono-primary-mark.png | Bin 0 -> 64734 bytes .../hanazono-seasonal-moodboard.webp | Bin 0 -> 41660 bytes .../assets/color/color-palette-foil.png | Bin 0 -> 10064 bytes .../color/color-strategy-per-surface-foil.png | Bin 0 -> 4075 bytes .../components/hanazono-ikebana-card.jpg | Bin 0 -> 73550 bytes .../scripts/picker/assets/hero-dark.jpg | Bin 0 -> 307182 bytes .../scripts/picker/assets/index.DQJ7Kjkj.css | 1 + ...astro_type_script_index_0_lang.Cpn-pC_8.js | 2565 +++++++++++++++++ .../picker/assets/kinpaku-gold-leaf.jpg | Bin 0 -> 119264 bytes .../material-boundaries-per-surface-foil.png | Bin 0 -> 6992 bytes .../material-corners-per-surface-foil.png | Bin 0 -> 4246 bytes .../material-depth-per-surface-foil.png | Bin 0 -> 5595 bytes .../material-layout-structure-foil.png | Bin 0 -> 5042 bytes .../product/product-clear-first-foil.png | Bin 0 -> 8800 bytes .../product-operating-context-foil.png | Bin 0 -> 9508 bytes .../product/product-positioning-foil.png | Bin 0 -> 5503 bytes .../product-primary-conversion-foil.png | Bin 0 -> 5867 bytes .../product/product-principles-foil.png | Bin 0 -> 8070 bytes .../assets/product/product-purpose-foil.png | Bin 0 -> 5136 bytes .../assets/product/product-surfaces-foil.png | Bin 0 -> 9702 bytes .../typography/typography-pair-foil.png | Bin 0 -> 5074 bytes .../typography/typography-type-scale-foil.png | Bin 0 -> 5199 bytes .../impeccable/scripts/picker/favicon.svg | 13 + .../impeccable/scripts/picker/icon-packs.json | 1 + .../impeccable/scripts/picker/index.html | 5 + .grok/skills/impeccable/scripts/pin.mjs | 2 +- .../impeccable/scripts/serve-question.mjs | 2 +- .../skills/impeccable/scripts/visual-cues.mjs | 317 ++ .hermes/skills/impeccable/SKILL.md | 1 + .hermes/skills/impeccable/reference/audit.md | 4 +- .../impeccable/reference/audit.native.md | 4 +- .../impeccable/reference/craft-floor.md | 5 +- .../skills/impeccable/reference/critique.md | 4 +- .../reference/degraded/finish-reviewer.md | 10 +- .../impeccable/reference/design-context.md | 93 + .../skills/impeccable/reference/document.md | 135 +- .../skills/impeccable/reference/image-api.md | 54 + .../skills/impeccable/reference/new-work.md | 63 +- .../impeccable/reference/visual-cues.md | 560 ++++ .../impeccable/scripts/command-metadata.json | 4 + .../impeccable/scripts/concept-seed.mjs | 58 +- .../scripts/design-context-export.mjs | 67 + .../scripts/design-context-import.mjs | 83 + .../scripts/design-context/bindings.mjs | 82 + .../scripts/design-context/portability.mjs | 339 +++ .../scripts/design-context/session-routes.mjs | 236 ++ .../scripts/design-context/store.mjs | 241 ++ .../skills/impeccable/scripts/image-gen.mjs | 363 +++ .hermes/skills/impeccable/scripts/palette.mjs | 8 + .../impeccable/scripts/picker-doc-poll.mjs | 137 + .../impeccable/scripts/picker-doc-session.mjs | 465 +++ .../impeccable/scripts/picker-server.mjs | 572 ++++ .../assets/audience/audience-groups-foil.png | Bin 0 -> 7576 bytes .../audience/emotional-journey-foil.png | Bin 0 -> 6153 bytes .../picker/assets/audience/inclusion-foil.png | Bin 0 -> 8962 bytes .../assets/audience/kinpaku-gold-leaf.png | Bin 0 -> 54304 bytes .../picker/assets/audience/needs-foil.png | Bin 0 -> 10388 bytes .../assets/audience/trust-triggers-foil.png | Bin 0 -> 8016 bytes .../assets/audience/verdigris-patina.png | Bin 0 -> 53615 bytes .../assets/brand/brand-commitments-foil.png | Bin 0 -> 9303 bytes .../assets/brand/brand-personality-foil.png | Bin 0 -> 12365 bytes .../assets/brand/brand-principles-foil.png | Bin 0 -> 4124 bytes .../picker/assets/brand/brand-voice-foil.png | Bin 0 -> 11579 bytes .../placeholders/hanazono-atelier-seal.png | Bin 0 -> 59173 bytes .../hanazono-material-reference.webp | Bin 0 -> 91136 bytes .../placeholders/hanazono-primary-mark.png | Bin 0 -> 64734 bytes .../hanazono-seasonal-moodboard.webp | Bin 0 -> 41660 bytes .../assets/color/color-palette-foil.png | Bin 0 -> 10064 bytes .../color/color-strategy-per-surface-foil.png | Bin 0 -> 4075 bytes .../components/hanazono-ikebana-card.jpg | Bin 0 -> 73550 bytes .../scripts/picker/assets/hero-dark.jpg | Bin 0 -> 307182 bytes .../scripts/picker/assets/index.DQJ7Kjkj.css | 1 + ...astro_type_script_index_0_lang.Cpn-pC_8.js | 2565 +++++++++++++++++ .../picker/assets/kinpaku-gold-leaf.jpg | Bin 0 -> 119264 bytes .../material-boundaries-per-surface-foil.png | Bin 0 -> 6992 bytes .../material-corners-per-surface-foil.png | Bin 0 -> 4246 bytes .../material-depth-per-surface-foil.png | Bin 0 -> 5595 bytes .../material-layout-structure-foil.png | Bin 0 -> 5042 bytes .../product/product-clear-first-foil.png | Bin 0 -> 8800 bytes .../product-operating-context-foil.png | Bin 0 -> 9508 bytes .../product/product-positioning-foil.png | Bin 0 -> 5503 bytes .../product-primary-conversion-foil.png | Bin 0 -> 5867 bytes .../product/product-principles-foil.png | Bin 0 -> 8070 bytes .../assets/product/product-purpose-foil.png | Bin 0 -> 5136 bytes .../assets/product/product-surfaces-foil.png | Bin 0 -> 9702 bytes .../typography/typography-pair-foil.png | Bin 0 -> 5074 bytes .../typography/typography-type-scale-foil.png | Bin 0 -> 5199 bytes .../impeccable/scripts/picker/favicon.svg | 13 + .../impeccable/scripts/picker/icon-packs.json | 1 + .../impeccable/scripts/picker/index.html | 5 + .hermes/skills/impeccable/scripts/pin.mjs | 2 +- .../impeccable/scripts/serve-question.mjs | 2 +- .../skills/impeccable/scripts/visual-cues.mjs | 317 ++ .kiro/skills/impeccable/SKILL.md | 1 + .kiro/skills/impeccable/reference/audit.md | 4 +- .../impeccable/reference/audit.native.md | 4 +- .../impeccable/reference/craft-floor.md | 5 +- .kiro/skills/impeccable/reference/critique.md | 4 +- .../reference/degraded/finish-reviewer.md | 10 +- .../impeccable/reference/design-context.md | 93 + .kiro/skills/impeccable/reference/document.md | 135 +- .../skills/impeccable/reference/image-api.md | 54 + .kiro/skills/impeccable/reference/new-work.md | 63 +- .../impeccable/reference/visual-cues.md | 560 ++++ .../impeccable/scripts/command-metadata.json | 4 + .../impeccable/scripts/concept-seed.mjs | 58 +- .../scripts/design-context-export.mjs | 67 + .../scripts/design-context-import.mjs | 83 + .../scripts/design-context/bindings.mjs | 82 + .../scripts/design-context/portability.mjs | 339 +++ .../scripts/design-context/session-routes.mjs | 236 ++ .../scripts/design-context/store.mjs | 241 ++ .kiro/skills/impeccable/scripts/image-gen.mjs | 363 +++ .kiro/skills/impeccable/scripts/palette.mjs | 8 + .../impeccable/scripts/picker-doc-poll.mjs | 137 + .../impeccable/scripts/picker-doc-session.mjs | 465 +++ .../impeccable/scripts/picker-server.mjs | 572 ++++ .../assets/audience/audience-groups-foil.png | Bin 0 -> 7576 bytes .../audience/emotional-journey-foil.png | Bin 0 -> 6153 bytes .../picker/assets/audience/inclusion-foil.png | Bin 0 -> 8962 bytes .../assets/audience/kinpaku-gold-leaf.png | Bin 0 -> 54304 bytes .../picker/assets/audience/needs-foil.png | Bin 0 -> 10388 bytes .../assets/audience/trust-triggers-foil.png | Bin 0 -> 8016 bytes .../assets/audience/verdigris-patina.png | Bin 0 -> 53615 bytes .../assets/brand/brand-commitments-foil.png | Bin 0 -> 9303 bytes .../assets/brand/brand-personality-foil.png | Bin 0 -> 12365 bytes .../assets/brand/brand-principles-foil.png | Bin 0 -> 4124 bytes .../picker/assets/brand/brand-voice-foil.png | Bin 0 -> 11579 bytes .../placeholders/hanazono-atelier-seal.png | Bin 0 -> 59173 bytes .../hanazono-material-reference.webp | Bin 0 -> 91136 bytes .../placeholders/hanazono-primary-mark.png | Bin 0 -> 64734 bytes .../hanazono-seasonal-moodboard.webp | Bin 0 -> 41660 bytes .../assets/color/color-palette-foil.png | Bin 0 -> 10064 bytes .../color/color-strategy-per-surface-foil.png | Bin 0 -> 4075 bytes .../components/hanazono-ikebana-card.jpg | Bin 0 -> 73550 bytes .../scripts/picker/assets/hero-dark.jpg | Bin 0 -> 307182 bytes .../scripts/picker/assets/index.DQJ7Kjkj.css | 1 + ...astro_type_script_index_0_lang.Cpn-pC_8.js | 2565 +++++++++++++++++ .../picker/assets/kinpaku-gold-leaf.jpg | Bin 0 -> 119264 bytes .../material-boundaries-per-surface-foil.png | Bin 0 -> 6992 bytes .../material-corners-per-surface-foil.png | Bin 0 -> 4246 bytes .../material-depth-per-surface-foil.png | Bin 0 -> 5595 bytes .../material-layout-structure-foil.png | Bin 0 -> 5042 bytes .../product/product-clear-first-foil.png | Bin 0 -> 8800 bytes .../product-operating-context-foil.png | Bin 0 -> 9508 bytes .../product/product-positioning-foil.png | Bin 0 -> 5503 bytes .../product-primary-conversion-foil.png | Bin 0 -> 5867 bytes .../product/product-principles-foil.png | Bin 0 -> 8070 bytes .../assets/product/product-purpose-foil.png | Bin 0 -> 5136 bytes .../assets/product/product-surfaces-foil.png | Bin 0 -> 9702 bytes .../typography/typography-pair-foil.png | Bin 0 -> 5074 bytes .../typography/typography-type-scale-foil.png | Bin 0 -> 5199 bytes .../impeccable/scripts/picker/favicon.svg | 13 + .../impeccable/scripts/picker/icon-packs.json | 1 + .../impeccable/scripts/picker/index.html | 5 + .kiro/skills/impeccable/scripts/pin.mjs | 2 +- .../impeccable/scripts/serve-question.mjs | 2 +- .../skills/impeccable/scripts/visual-cues.mjs | 317 ++ .opencode/skills/impeccable/SKILL.md | 3 +- .../skills/impeccable/reference/audit.md | 4 +- .../impeccable/reference/audit.native.md | 4 +- .../impeccable/reference/craft-floor.md | 5 +- .../skills/impeccable/reference/critique.md | 4 +- .../reference/degraded/finish-reviewer.md | 10 +- .../impeccable/reference/design-context.md | 93 + .../skills/impeccable/reference/document.md | 135 +- .../skills/impeccable/reference/image-api.md | 54 + .../skills/impeccable/reference/new-work.md | 63 +- .../impeccable/reference/visual-cues.md | 560 ++++ .../impeccable/scripts/command-metadata.json | 4 + .../impeccable/scripts/concept-seed.mjs | 58 +- .../scripts/design-context-export.mjs | 67 + .../scripts/design-context-import.mjs | 83 + .../scripts/design-context/bindings.mjs | 82 + .../scripts/design-context/portability.mjs | 339 +++ .../scripts/design-context/session-routes.mjs | 236 ++ .../scripts/design-context/store.mjs | 241 ++ .../skills/impeccable/scripts/image-gen.mjs | 363 +++ .../skills/impeccable/scripts/palette.mjs | 8 + .../impeccable/scripts/picker-doc-poll.mjs | 137 + .../impeccable/scripts/picker-doc-session.mjs | 465 +++ .../impeccable/scripts/picker-server.mjs | 572 ++++ .../assets/audience/audience-groups-foil.png | Bin 0 -> 7576 bytes .../audience/emotional-journey-foil.png | Bin 0 -> 6153 bytes .../picker/assets/audience/inclusion-foil.png | Bin 0 -> 8962 bytes .../assets/audience/kinpaku-gold-leaf.png | Bin 0 -> 54304 bytes .../picker/assets/audience/needs-foil.png | Bin 0 -> 10388 bytes .../assets/audience/trust-triggers-foil.png | Bin 0 -> 8016 bytes .../assets/audience/verdigris-patina.png | Bin 0 -> 53615 bytes .../assets/brand/brand-commitments-foil.png | Bin 0 -> 9303 bytes .../assets/brand/brand-personality-foil.png | Bin 0 -> 12365 bytes .../assets/brand/brand-principles-foil.png | Bin 0 -> 4124 bytes .../picker/assets/brand/brand-voice-foil.png | Bin 0 -> 11579 bytes .../placeholders/hanazono-atelier-seal.png | Bin 0 -> 59173 bytes .../hanazono-material-reference.webp | Bin 0 -> 91136 bytes .../placeholders/hanazono-primary-mark.png | Bin 0 -> 64734 bytes .../hanazono-seasonal-moodboard.webp | Bin 0 -> 41660 bytes .../assets/color/color-palette-foil.png | Bin 0 -> 10064 bytes .../color/color-strategy-per-surface-foil.png | Bin 0 -> 4075 bytes .../components/hanazono-ikebana-card.jpg | Bin 0 -> 73550 bytes .../scripts/picker/assets/hero-dark.jpg | Bin 0 -> 307182 bytes .../scripts/picker/assets/index.DQJ7Kjkj.css | 1 + ...astro_type_script_index_0_lang.Cpn-pC_8.js | 2565 +++++++++++++++++ .../picker/assets/kinpaku-gold-leaf.jpg | Bin 0 -> 119264 bytes .../material-boundaries-per-surface-foil.png | Bin 0 -> 6992 bytes .../material-corners-per-surface-foil.png | Bin 0 -> 4246 bytes .../material-depth-per-surface-foil.png | Bin 0 -> 5595 bytes .../material-layout-structure-foil.png | Bin 0 -> 5042 bytes .../product/product-clear-first-foil.png | Bin 0 -> 8800 bytes .../product-operating-context-foil.png | Bin 0 -> 9508 bytes .../product/product-positioning-foil.png | Bin 0 -> 5503 bytes .../product-primary-conversion-foil.png | Bin 0 -> 5867 bytes .../product/product-principles-foil.png | Bin 0 -> 8070 bytes .../assets/product/product-purpose-foil.png | Bin 0 -> 5136 bytes .../assets/product/product-surfaces-foil.png | Bin 0 -> 9702 bytes .../typography/typography-pair-foil.png | Bin 0 -> 5074 bytes .../typography/typography-type-scale-foil.png | Bin 0 -> 5199 bytes .../impeccable/scripts/picker/favicon.svg | 13 + .../impeccable/scripts/picker/icon-packs.json | 1 + .../impeccable/scripts/picker/index.html | 5 + .opencode/skills/impeccable/scripts/pin.mjs | 2 +- .../impeccable/scripts/serve-question.mjs | 2 +- .../skills/impeccable/scripts/visual-cues.mjs | 317 ++ .pi/skills/impeccable/SKILL.md | 1 + .pi/skills/impeccable/reference/audit.md | 4 +- .../impeccable/reference/audit.native.md | 4 +- .../impeccable/reference/craft-floor.md | 5 +- .pi/skills/impeccable/reference/critique.md | 4 +- .../reference/degraded/finish-reviewer.md | 10 +- .../impeccable/reference/design-context.md | 93 + .pi/skills/impeccable/reference/document.md | 135 +- .pi/skills/impeccable/reference/image-api.md | 54 + .pi/skills/impeccable/reference/new-work.md | 63 +- .../impeccable/reference/visual-cues.md | 560 ++++ .../impeccable/scripts/command-metadata.json | 4 + .../impeccable/scripts/concept-seed.mjs | 58 +- .../scripts/design-context-export.mjs | 67 + .../scripts/design-context-import.mjs | 83 + .../scripts/design-context/bindings.mjs | 82 + .../scripts/design-context/portability.mjs | 339 +++ .../scripts/design-context/session-routes.mjs | 236 ++ .../scripts/design-context/store.mjs | 241 ++ .pi/skills/impeccable/scripts/image-gen.mjs | 363 +++ .pi/skills/impeccable/scripts/palette.mjs | 8 + .../impeccable/scripts/picker-doc-poll.mjs | 137 + .../impeccable/scripts/picker-doc-session.mjs | 465 +++ .../impeccable/scripts/picker-server.mjs | 572 ++++ .../assets/audience/audience-groups-foil.png | Bin 0 -> 7576 bytes .../audience/emotional-journey-foil.png | Bin 0 -> 6153 bytes .../picker/assets/audience/inclusion-foil.png | Bin 0 -> 8962 bytes .../assets/audience/kinpaku-gold-leaf.png | Bin 0 -> 54304 bytes .../picker/assets/audience/needs-foil.png | Bin 0 -> 10388 bytes .../assets/audience/trust-triggers-foil.png | Bin 0 -> 8016 bytes .../assets/audience/verdigris-patina.png | Bin 0 -> 53615 bytes .../assets/brand/brand-commitments-foil.png | Bin 0 -> 9303 bytes .../assets/brand/brand-personality-foil.png | Bin 0 -> 12365 bytes .../assets/brand/brand-principles-foil.png | Bin 0 -> 4124 bytes .../picker/assets/brand/brand-voice-foil.png | Bin 0 -> 11579 bytes .../placeholders/hanazono-atelier-seal.png | Bin 0 -> 59173 bytes .../hanazono-material-reference.webp | Bin 0 -> 91136 bytes .../placeholders/hanazono-primary-mark.png | Bin 0 -> 64734 bytes .../hanazono-seasonal-moodboard.webp | Bin 0 -> 41660 bytes .../assets/color/color-palette-foil.png | Bin 0 -> 10064 bytes .../color/color-strategy-per-surface-foil.png | Bin 0 -> 4075 bytes .../components/hanazono-ikebana-card.jpg | Bin 0 -> 73550 bytes .../scripts/picker/assets/hero-dark.jpg | Bin 0 -> 307182 bytes .../scripts/picker/assets/index.DQJ7Kjkj.css | 1 + ...astro_type_script_index_0_lang.Cpn-pC_8.js | 2565 +++++++++++++++++ .../picker/assets/kinpaku-gold-leaf.jpg | Bin 0 -> 119264 bytes .../material-boundaries-per-surface-foil.png | Bin 0 -> 6992 bytes .../material-corners-per-surface-foil.png | Bin 0 -> 4246 bytes .../material-depth-per-surface-foil.png | Bin 0 -> 5595 bytes .../material-layout-structure-foil.png | Bin 0 -> 5042 bytes .../product/product-clear-first-foil.png | Bin 0 -> 8800 bytes .../product-operating-context-foil.png | Bin 0 -> 9508 bytes .../product/product-positioning-foil.png | Bin 0 -> 5503 bytes .../product-primary-conversion-foil.png | Bin 0 -> 5867 bytes .../product/product-principles-foil.png | Bin 0 -> 8070 bytes .../assets/product/product-purpose-foil.png | Bin 0 -> 5136 bytes .../assets/product/product-surfaces-foil.png | Bin 0 -> 9702 bytes .../typography/typography-pair-foil.png | Bin 0 -> 5074 bytes .../typography/typography-type-scale-foil.png | Bin 0 -> 5199 bytes .../impeccable/scripts/picker/favicon.svg | 13 + .../impeccable/scripts/picker/icon-packs.json | 1 + .../impeccable/scripts/picker/index.html | 5 + .pi/skills/impeccable/scripts/pin.mjs | 2 +- .../impeccable/scripts/serve-question.mjs | 2 +- .pi/skills/impeccable/scripts/visual-cues.mjs | 317 ++ .qoder/skills/impeccable/SKILL.md | 3 +- .qoder/skills/impeccable/reference/audit.md | 4 +- .../impeccable/reference/audit.native.md | 4 +- .../impeccable/reference/craft-floor.md | 5 +- .../skills/impeccable/reference/critique.md | 4 +- .../reference/degraded/finish-reviewer.md | 10 +- .../impeccable/reference/design-context.md | 93 + .../skills/impeccable/reference/document.md | 135 +- .../skills/impeccable/reference/image-api.md | 54 + .../skills/impeccable/reference/new-work.md | 63 +- .../impeccable/reference/visual-cues.md | 560 ++++ .../impeccable/scripts/command-metadata.json | 4 + .../impeccable/scripts/concept-seed.mjs | 58 +- .../scripts/design-context-export.mjs | 67 + .../scripts/design-context-import.mjs | 83 + .../scripts/design-context/bindings.mjs | 82 + .../scripts/design-context/portability.mjs | 339 +++ .../scripts/design-context/session-routes.mjs | 236 ++ .../scripts/design-context/store.mjs | 241 ++ .../skills/impeccable/scripts/image-gen.mjs | 363 +++ .qoder/skills/impeccable/scripts/palette.mjs | 8 + .../impeccable/scripts/picker-doc-poll.mjs | 137 + .../impeccable/scripts/picker-doc-session.mjs | 465 +++ .../impeccable/scripts/picker-server.mjs | 572 ++++ .../assets/audience/audience-groups-foil.png | Bin 0 -> 7576 bytes .../audience/emotional-journey-foil.png | Bin 0 -> 6153 bytes .../picker/assets/audience/inclusion-foil.png | Bin 0 -> 8962 bytes .../assets/audience/kinpaku-gold-leaf.png | Bin 0 -> 54304 bytes .../picker/assets/audience/needs-foil.png | Bin 0 -> 10388 bytes .../assets/audience/trust-triggers-foil.png | Bin 0 -> 8016 bytes .../assets/audience/verdigris-patina.png | Bin 0 -> 53615 bytes .../assets/brand/brand-commitments-foil.png | Bin 0 -> 9303 bytes .../assets/brand/brand-personality-foil.png | Bin 0 -> 12365 bytes .../assets/brand/brand-principles-foil.png | Bin 0 -> 4124 bytes .../picker/assets/brand/brand-voice-foil.png | Bin 0 -> 11579 bytes .../placeholders/hanazono-atelier-seal.png | Bin 0 -> 59173 bytes .../hanazono-material-reference.webp | Bin 0 -> 91136 bytes .../placeholders/hanazono-primary-mark.png | Bin 0 -> 64734 bytes .../hanazono-seasonal-moodboard.webp | Bin 0 -> 41660 bytes .../assets/color/color-palette-foil.png | Bin 0 -> 10064 bytes .../color/color-strategy-per-surface-foil.png | Bin 0 -> 4075 bytes .../components/hanazono-ikebana-card.jpg | Bin 0 -> 73550 bytes .../scripts/picker/assets/hero-dark.jpg | Bin 0 -> 307182 bytes .../scripts/picker/assets/index.DQJ7Kjkj.css | 1 + ...astro_type_script_index_0_lang.Cpn-pC_8.js | 2565 +++++++++++++++++ .../picker/assets/kinpaku-gold-leaf.jpg | Bin 0 -> 119264 bytes .../material-boundaries-per-surface-foil.png | Bin 0 -> 6992 bytes .../material-corners-per-surface-foil.png | Bin 0 -> 4246 bytes .../material-depth-per-surface-foil.png | Bin 0 -> 5595 bytes .../material-layout-structure-foil.png | Bin 0 -> 5042 bytes .../product/product-clear-first-foil.png | Bin 0 -> 8800 bytes .../product-operating-context-foil.png | Bin 0 -> 9508 bytes .../product/product-positioning-foil.png | Bin 0 -> 5503 bytes .../product-primary-conversion-foil.png | Bin 0 -> 5867 bytes .../product/product-principles-foil.png | Bin 0 -> 8070 bytes .../assets/product/product-purpose-foil.png | Bin 0 -> 5136 bytes .../assets/product/product-surfaces-foil.png | Bin 0 -> 9702 bytes .../typography/typography-pair-foil.png | Bin 0 -> 5074 bytes .../typography/typography-type-scale-foil.png | Bin 0 -> 5199 bytes .../impeccable/scripts/picker/favicon.svg | 13 + .../impeccable/scripts/picker/icon-packs.json | 1 + .../impeccable/scripts/picker/index.html | 5 + .qoder/skills/impeccable/scripts/pin.mjs | 2 +- .../impeccable/scripts/serve-question.mjs | 2 +- .../skills/impeccable/scripts/visual-cues.mjs | 317 ++ .rovodev/skills/impeccable/SKILL.md | 3 +- .rovodev/skills/impeccable/reference/audit.md | 4 +- .../impeccable/reference/audit.native.md | 4 +- .../impeccable/reference/craft-floor.md | 5 +- .../skills/impeccable/reference/critique.md | 4 +- .../reference/degraded/finish-reviewer.md | 10 +- .../impeccable/reference/design-context.md | 93 + .../skills/impeccable/reference/document.md | 135 +- .../skills/impeccable/reference/image-api.md | 54 + .../skills/impeccable/reference/new-work.md | 63 +- .../impeccable/reference/visual-cues.md | 560 ++++ .../impeccable/scripts/command-metadata.json | 4 + .../impeccable/scripts/concept-seed.mjs | 58 +- .../scripts/design-context-export.mjs | 67 + .../scripts/design-context-import.mjs | 83 + .../scripts/design-context/bindings.mjs | 82 + .../scripts/design-context/portability.mjs | 339 +++ .../scripts/design-context/session-routes.mjs | 236 ++ .../scripts/design-context/store.mjs | 241 ++ .../skills/impeccable/scripts/image-gen.mjs | 363 +++ .../skills/impeccable/scripts/palette.mjs | 8 + .../impeccable/scripts/picker-doc-poll.mjs | 137 + .../impeccable/scripts/picker-doc-session.mjs | 465 +++ .../impeccable/scripts/picker-server.mjs | 572 ++++ .../assets/audience/audience-groups-foil.png | Bin 0 -> 7576 bytes .../audience/emotional-journey-foil.png | Bin 0 -> 6153 bytes .../picker/assets/audience/inclusion-foil.png | Bin 0 -> 8962 bytes .../assets/audience/kinpaku-gold-leaf.png | Bin 0 -> 54304 bytes .../picker/assets/audience/needs-foil.png | Bin 0 -> 10388 bytes .../assets/audience/trust-triggers-foil.png | Bin 0 -> 8016 bytes .../assets/audience/verdigris-patina.png | Bin 0 -> 53615 bytes .../assets/brand/brand-commitments-foil.png | Bin 0 -> 9303 bytes .../assets/brand/brand-personality-foil.png | Bin 0 -> 12365 bytes .../assets/brand/brand-principles-foil.png | Bin 0 -> 4124 bytes .../picker/assets/brand/brand-voice-foil.png | Bin 0 -> 11579 bytes .../placeholders/hanazono-atelier-seal.png | Bin 0 -> 59173 bytes .../hanazono-material-reference.webp | Bin 0 -> 91136 bytes .../placeholders/hanazono-primary-mark.png | Bin 0 -> 64734 bytes .../hanazono-seasonal-moodboard.webp | Bin 0 -> 41660 bytes .../assets/color/color-palette-foil.png | Bin 0 -> 10064 bytes .../color/color-strategy-per-surface-foil.png | Bin 0 -> 4075 bytes .../components/hanazono-ikebana-card.jpg | Bin 0 -> 73550 bytes .../scripts/picker/assets/hero-dark.jpg | Bin 0 -> 307182 bytes .../scripts/picker/assets/index.DQJ7Kjkj.css | 1 + ...astro_type_script_index_0_lang.Cpn-pC_8.js | 2565 +++++++++++++++++ .../picker/assets/kinpaku-gold-leaf.jpg | Bin 0 -> 119264 bytes .../material-boundaries-per-surface-foil.png | Bin 0 -> 6992 bytes .../material-corners-per-surface-foil.png | Bin 0 -> 4246 bytes .../material-depth-per-surface-foil.png | Bin 0 -> 5595 bytes .../material-layout-structure-foil.png | Bin 0 -> 5042 bytes .../product/product-clear-first-foil.png | Bin 0 -> 8800 bytes .../product-operating-context-foil.png | Bin 0 -> 9508 bytes .../product/product-positioning-foil.png | Bin 0 -> 5503 bytes .../product-primary-conversion-foil.png | Bin 0 -> 5867 bytes .../product/product-principles-foil.png | Bin 0 -> 8070 bytes .../assets/product/product-purpose-foil.png | Bin 0 -> 5136 bytes .../assets/product/product-surfaces-foil.png | Bin 0 -> 9702 bytes .../typography/typography-pair-foil.png | Bin 0 -> 5074 bytes .../typography/typography-type-scale-foil.png | Bin 0 -> 5199 bytes .../impeccable/scripts/picker/favicon.svg | 13 + .../impeccable/scripts/picker/icon-packs.json | 1 + .../impeccable/scripts/picker/index.html | 5 + .rovodev/skills/impeccable/scripts/pin.mjs | 2 +- .../impeccable/scripts/serve-question.mjs | 2 +- .../skills/impeccable/scripts/visual-cues.mjs | 317 ++ .trae-cn/skills/impeccable/SKILL.md | 3 +- .trae-cn/skills/impeccable/reference/audit.md | 4 +- .../impeccable/reference/audit.native.md | 4 +- .../impeccable/reference/craft-floor.md | 5 +- .../skills/impeccable/reference/critique.md | 4 +- .../reference/degraded/finish-reviewer.md | 10 +- .../impeccable/reference/design-context.md | 93 + .../skills/impeccable/reference/document.md | 135 +- .../skills/impeccable/reference/image-api.md | 54 + .../skills/impeccable/reference/new-work.md | 63 +- .../impeccable/reference/visual-cues.md | 560 ++++ .../impeccable/scripts/command-metadata.json | 4 + .../impeccable/scripts/concept-seed.mjs | 58 +- .../scripts/design-context-export.mjs | 67 + .../scripts/design-context-import.mjs | 83 + .../scripts/design-context/bindings.mjs | 82 + .../scripts/design-context/portability.mjs | 339 +++ .../scripts/design-context/session-routes.mjs | 236 ++ .../scripts/design-context/store.mjs | 241 ++ .../skills/impeccable/scripts/image-gen.mjs | 363 +++ .../skills/impeccable/scripts/palette.mjs | 8 + .../impeccable/scripts/picker-doc-poll.mjs | 137 + .../impeccable/scripts/picker-doc-session.mjs | 465 +++ .../impeccable/scripts/picker-server.mjs | 572 ++++ .../assets/audience/audience-groups-foil.png | Bin 0 -> 7576 bytes .../audience/emotional-journey-foil.png | Bin 0 -> 6153 bytes .../picker/assets/audience/inclusion-foil.png | Bin 0 -> 8962 bytes .../assets/audience/kinpaku-gold-leaf.png | Bin 0 -> 54304 bytes .../picker/assets/audience/needs-foil.png | Bin 0 -> 10388 bytes .../assets/audience/trust-triggers-foil.png | Bin 0 -> 8016 bytes .../assets/audience/verdigris-patina.png | Bin 0 -> 53615 bytes .../assets/brand/brand-commitments-foil.png | Bin 0 -> 9303 bytes .../assets/brand/brand-personality-foil.png | Bin 0 -> 12365 bytes .../assets/brand/brand-principles-foil.png | Bin 0 -> 4124 bytes .../picker/assets/brand/brand-voice-foil.png | Bin 0 -> 11579 bytes .../placeholders/hanazono-atelier-seal.png | Bin 0 -> 59173 bytes .../hanazono-material-reference.webp | Bin 0 -> 91136 bytes .../placeholders/hanazono-primary-mark.png | Bin 0 -> 64734 bytes .../hanazono-seasonal-moodboard.webp | Bin 0 -> 41660 bytes .../assets/color/color-palette-foil.png | Bin 0 -> 10064 bytes .../color/color-strategy-per-surface-foil.png | Bin 0 -> 4075 bytes .../components/hanazono-ikebana-card.jpg | Bin 0 -> 73550 bytes .../scripts/picker/assets/hero-dark.jpg | Bin 0 -> 307182 bytes .../scripts/picker/assets/index.DQJ7Kjkj.css | 1 + ...astro_type_script_index_0_lang.Cpn-pC_8.js | 2565 +++++++++++++++++ .../picker/assets/kinpaku-gold-leaf.jpg | Bin 0 -> 119264 bytes .../material-boundaries-per-surface-foil.png | Bin 0 -> 6992 bytes .../material-corners-per-surface-foil.png | Bin 0 -> 4246 bytes .../material-depth-per-surface-foil.png | Bin 0 -> 5595 bytes .../material-layout-structure-foil.png | Bin 0 -> 5042 bytes .../product/product-clear-first-foil.png | Bin 0 -> 8800 bytes .../product-operating-context-foil.png | Bin 0 -> 9508 bytes .../product/product-positioning-foil.png | Bin 0 -> 5503 bytes .../product-primary-conversion-foil.png | Bin 0 -> 5867 bytes .../product/product-principles-foil.png | Bin 0 -> 8070 bytes .../assets/product/product-purpose-foil.png | Bin 0 -> 5136 bytes .../assets/product/product-surfaces-foil.png | Bin 0 -> 9702 bytes .../typography/typography-pair-foil.png | Bin 0 -> 5074 bytes .../typography/typography-type-scale-foil.png | Bin 0 -> 5199 bytes .../impeccable/scripts/picker/favicon.svg | 13 + .../impeccable/scripts/picker/icon-packs.json | 1 + .../impeccable/scripts/picker/index.html | 5 + .trae-cn/skills/impeccable/scripts/pin.mjs | 2 +- .../impeccable/scripts/serve-question.mjs | 2 +- .../skills/impeccable/scripts/visual-cues.mjs | 317 ++ .trae/skills/impeccable/SKILL.md | 3 +- .trae/skills/impeccable/reference/audit.md | 4 +- .../impeccable/reference/audit.native.md | 4 +- .../impeccable/reference/craft-floor.md | 5 +- .trae/skills/impeccable/reference/critique.md | 4 +- .../reference/degraded/finish-reviewer.md | 10 +- .../impeccable/reference/design-context.md | 93 + .trae/skills/impeccable/reference/document.md | 135 +- .../skills/impeccable/reference/image-api.md | 54 + .trae/skills/impeccable/reference/new-work.md | 63 +- .../impeccable/reference/visual-cues.md | 560 ++++ .../impeccable/scripts/command-metadata.json | 4 + .../impeccable/scripts/concept-seed.mjs | 58 +- .../scripts/design-context-export.mjs | 67 + .../scripts/design-context-import.mjs | 83 + .../scripts/design-context/bindings.mjs | 82 + .../scripts/design-context/portability.mjs | 339 +++ .../scripts/design-context/session-routes.mjs | 236 ++ .../scripts/design-context/store.mjs | 241 ++ .trae/skills/impeccable/scripts/image-gen.mjs | 363 +++ .trae/skills/impeccable/scripts/palette.mjs | 8 + .../impeccable/scripts/picker-doc-poll.mjs | 137 + .../impeccable/scripts/picker-doc-session.mjs | 465 +++ .../impeccable/scripts/picker-server.mjs | 572 ++++ .../assets/audience/audience-groups-foil.png | Bin 0 -> 7576 bytes .../audience/emotional-journey-foil.png | Bin 0 -> 6153 bytes .../picker/assets/audience/inclusion-foil.png | Bin 0 -> 8962 bytes .../assets/audience/kinpaku-gold-leaf.png | Bin 0 -> 54304 bytes .../picker/assets/audience/needs-foil.png | Bin 0 -> 10388 bytes .../assets/audience/trust-triggers-foil.png | Bin 0 -> 8016 bytes .../assets/audience/verdigris-patina.png | Bin 0 -> 53615 bytes .../assets/brand/brand-commitments-foil.png | Bin 0 -> 9303 bytes .../assets/brand/brand-personality-foil.png | Bin 0 -> 12365 bytes .../assets/brand/brand-principles-foil.png | Bin 0 -> 4124 bytes .../picker/assets/brand/brand-voice-foil.png | Bin 0 -> 11579 bytes .../placeholders/hanazono-atelier-seal.png | Bin 0 -> 59173 bytes .../hanazono-material-reference.webp | Bin 0 -> 91136 bytes .../placeholders/hanazono-primary-mark.png | Bin 0 -> 64734 bytes .../hanazono-seasonal-moodboard.webp | Bin 0 -> 41660 bytes .../assets/color/color-palette-foil.png | Bin 0 -> 10064 bytes .../color/color-strategy-per-surface-foil.png | Bin 0 -> 4075 bytes .../components/hanazono-ikebana-card.jpg | Bin 0 -> 73550 bytes .../scripts/picker/assets/hero-dark.jpg | Bin 0 -> 307182 bytes .../scripts/picker/assets/index.DQJ7Kjkj.css | 1 + ...astro_type_script_index_0_lang.Cpn-pC_8.js | 2565 +++++++++++++++++ .../picker/assets/kinpaku-gold-leaf.jpg | Bin 0 -> 119264 bytes .../material-boundaries-per-surface-foil.png | Bin 0 -> 6992 bytes .../material-corners-per-surface-foil.png | Bin 0 -> 4246 bytes .../material-depth-per-surface-foil.png | Bin 0 -> 5595 bytes .../material-layout-structure-foil.png | Bin 0 -> 5042 bytes .../product/product-clear-first-foil.png | Bin 0 -> 8800 bytes .../product-operating-context-foil.png | Bin 0 -> 9508 bytes .../product/product-positioning-foil.png | Bin 0 -> 5503 bytes .../product-primary-conversion-foil.png | Bin 0 -> 5867 bytes .../product/product-principles-foil.png | Bin 0 -> 8070 bytes .../assets/product/product-purpose-foil.png | Bin 0 -> 5136 bytes .../assets/product/product-surfaces-foil.png | Bin 0 -> 9702 bytes .../typography/typography-pair-foil.png | Bin 0 -> 5074 bytes .../typography/typography-type-scale-foil.png | Bin 0 -> 5199 bytes .../impeccable/scripts/picker/favicon.svg | 13 + .../impeccable/scripts/picker/icon-packs.json | 1 + .../impeccable/scripts/picker/index.html | 5 + .trae/skills/impeccable/scripts/pin.mjs | 2 +- .../impeccable/scripts/serve-question.mjs | 2 +- .../skills/impeccable/scripts/visual-cues.mjs | 317 ++ .vibe/skills/impeccable/SKILL.md | 1 + .vibe/skills/impeccable/reference/audit.md | 4 +- .../impeccable/reference/audit.native.md | 4 +- .../impeccable/reference/craft-floor.md | 5 +- .vibe/skills/impeccable/reference/critique.md | 4 +- .../reference/degraded/finish-reviewer.md | 10 +- .../impeccable/reference/design-context.md | 93 + .vibe/skills/impeccable/reference/document.md | 135 +- .../skills/impeccable/reference/image-api.md | 54 + .vibe/skills/impeccable/reference/new-work.md | 63 +- .../impeccable/reference/visual-cues.md | 560 ++++ .../impeccable/scripts/command-metadata.json | 4 + .../impeccable/scripts/concept-seed.mjs | 58 +- .../scripts/design-context-export.mjs | 67 + .../scripts/design-context-import.mjs | 83 + .../scripts/design-context/bindings.mjs | 82 + .../scripts/design-context/portability.mjs | 339 +++ .../scripts/design-context/session-routes.mjs | 236 ++ .../scripts/design-context/store.mjs | 241 ++ .vibe/skills/impeccable/scripts/image-gen.mjs | 363 +++ .vibe/skills/impeccable/scripts/palette.mjs | 8 + .../impeccable/scripts/picker-doc-poll.mjs | 137 + .../impeccable/scripts/picker-doc-session.mjs | 465 +++ .../impeccable/scripts/picker-server.mjs | 572 ++++ .../assets/audience/audience-groups-foil.png | Bin 0 -> 7576 bytes .../audience/emotional-journey-foil.png | Bin 0 -> 6153 bytes .../picker/assets/audience/inclusion-foil.png | Bin 0 -> 8962 bytes .../assets/audience/kinpaku-gold-leaf.png | Bin 0 -> 54304 bytes .../picker/assets/audience/needs-foil.png | Bin 0 -> 10388 bytes .../assets/audience/trust-triggers-foil.png | Bin 0 -> 8016 bytes .../assets/audience/verdigris-patina.png | Bin 0 -> 53615 bytes .../assets/brand/brand-commitments-foil.png | Bin 0 -> 9303 bytes .../assets/brand/brand-personality-foil.png | Bin 0 -> 12365 bytes .../assets/brand/brand-principles-foil.png | Bin 0 -> 4124 bytes .../picker/assets/brand/brand-voice-foil.png | Bin 0 -> 11579 bytes .../placeholders/hanazono-atelier-seal.png | Bin 0 -> 59173 bytes .../hanazono-material-reference.webp | Bin 0 -> 91136 bytes .../placeholders/hanazono-primary-mark.png | Bin 0 -> 64734 bytes .../hanazono-seasonal-moodboard.webp | Bin 0 -> 41660 bytes .../assets/color/color-palette-foil.png | Bin 0 -> 10064 bytes .../color/color-strategy-per-surface-foil.png | Bin 0 -> 4075 bytes .../components/hanazono-ikebana-card.jpg | Bin 0 -> 73550 bytes .../scripts/picker/assets/hero-dark.jpg | Bin 0 -> 307182 bytes .../scripts/picker/assets/index.DQJ7Kjkj.css | 1 + ...astro_type_script_index_0_lang.Cpn-pC_8.js | 2565 +++++++++++++++++ .../picker/assets/kinpaku-gold-leaf.jpg | Bin 0 -> 119264 bytes .../material-boundaries-per-surface-foil.png | Bin 0 -> 6992 bytes .../material-corners-per-surface-foil.png | Bin 0 -> 4246 bytes .../material-depth-per-surface-foil.png | Bin 0 -> 5595 bytes .../material-layout-structure-foil.png | Bin 0 -> 5042 bytes .../product/product-clear-first-foil.png | Bin 0 -> 8800 bytes .../product-operating-context-foil.png | Bin 0 -> 9508 bytes .../product/product-positioning-foil.png | Bin 0 -> 5503 bytes .../product-primary-conversion-foil.png | Bin 0 -> 5867 bytes .../product/product-principles-foil.png | Bin 0 -> 8070 bytes .../assets/product/product-purpose-foil.png | Bin 0 -> 5136 bytes .../assets/product/product-surfaces-foil.png | Bin 0 -> 9702 bytes .../typography/typography-pair-foil.png | Bin 0 -> 5074 bytes .../typography/typography-type-scale-foil.png | Bin 0 -> 5199 bytes .../impeccable/scripts/picker/favicon.svg | 13 + .../impeccable/scripts/picker/icon-packs.json | 1 + .../impeccable/scripts/picker/index.html | 5 + .vibe/skills/impeccable/scripts/pin.mjs | 2 +- .../impeccable/scripts/serve-question.mjs | 2 +- .../skills/impeccable/scripts/visual-cues.mjs | 317 ++ plugin/.claude-plugin/plugin.json | 2 +- plugin/.grok-plugin/plugin.json | 2 +- plugin/agents/impeccable-finish-reviewer.md | 10 +- plugin/skills/impeccable/SKILL.md | 3 +- plugin/skills/impeccable/reference/audit.md | 4 +- .../impeccable/reference/audit.native.md | 4 +- .../impeccable/reference/craft-floor.md | 5 +- .../skills/impeccable/reference/critique.md | 4 +- .../reference/degraded/finish-reviewer.md | 10 +- .../impeccable/reference/design-context.md | 93 + .../skills/impeccable/reference/document.md | 135 +- .../skills/impeccable/reference/image-api.md | 54 + .../skills/impeccable/reference/new-work.md | 73 +- .../impeccable/reference/visual-cues.md | 560 ++++ .../impeccable/scripts/command-metadata.json | 4 + .../impeccable/scripts/concept-seed.mjs | 58 +- .../scripts/design-context-export.mjs | 67 + .../scripts/design-context-import.mjs | 83 + .../scripts/design-context/bindings.mjs | 82 + .../scripts/design-context/portability.mjs | 339 +++ .../scripts/design-context/session-routes.mjs | 236 ++ .../scripts/design-context/store.mjs | 241 ++ .../skills/impeccable/scripts/image-gen.mjs | 363 +++ plugin/skills/impeccable/scripts/palette.mjs | 8 + .../impeccable/scripts/picker-doc-poll.mjs | 137 + .../impeccable/scripts/picker-doc-session.mjs | 465 +++ .../impeccable/scripts/picker-server.mjs | 572 ++++ .../assets/audience/audience-groups-foil.png | Bin 0 -> 7576 bytes .../audience/emotional-journey-foil.png | Bin 0 -> 6153 bytes .../picker/assets/audience/inclusion-foil.png | Bin 0 -> 8962 bytes .../assets/audience/kinpaku-gold-leaf.png | Bin 0 -> 54304 bytes .../picker/assets/audience/needs-foil.png | Bin 0 -> 10388 bytes .../assets/audience/trust-triggers-foil.png | Bin 0 -> 8016 bytes .../assets/audience/verdigris-patina.png | Bin 0 -> 53615 bytes .../assets/brand/brand-commitments-foil.png | Bin 0 -> 9303 bytes .../assets/brand/brand-personality-foil.png | Bin 0 -> 12365 bytes .../assets/brand/brand-principles-foil.png | Bin 0 -> 4124 bytes .../picker/assets/brand/brand-voice-foil.png | Bin 0 -> 11579 bytes .../placeholders/hanazono-atelier-seal.png | Bin 0 -> 59173 bytes .../hanazono-material-reference.webp | Bin 0 -> 91136 bytes .../placeholders/hanazono-primary-mark.png | Bin 0 -> 64734 bytes .../hanazono-seasonal-moodboard.webp | Bin 0 -> 41660 bytes .../assets/color/color-palette-foil.png | Bin 0 -> 10064 bytes .../color/color-strategy-per-surface-foil.png | Bin 0 -> 4075 bytes .../components/hanazono-ikebana-card.jpg | Bin 0 -> 73550 bytes .../scripts/picker/assets/hero-dark.jpg | Bin 0 -> 307182 bytes .../scripts/picker/assets/index.DQJ7Kjkj.css | 1 + ...astro_type_script_index_0_lang.Cpn-pC_8.js | 2565 +++++++++++++++++ .../picker/assets/kinpaku-gold-leaf.jpg | Bin 0 -> 119264 bytes .../material-boundaries-per-surface-foil.png | Bin 0 -> 6992 bytes .../material-corners-per-surface-foil.png | Bin 0 -> 4246 bytes .../material-depth-per-surface-foil.png | Bin 0 -> 5595 bytes .../material-layout-structure-foil.png | Bin 0 -> 5042 bytes .../product/product-clear-first-foil.png | Bin 0 -> 8800 bytes .../product-operating-context-foil.png | Bin 0 -> 9508 bytes .../product/product-positioning-foil.png | Bin 0 -> 5503 bytes .../product-primary-conversion-foil.png | Bin 0 -> 5867 bytes .../product/product-principles-foil.png | Bin 0 -> 8070 bytes .../assets/product/product-purpose-foil.png | Bin 0 -> 5136 bytes .../assets/product/product-surfaces-foil.png | Bin 0 -> 9702 bytes .../typography/typography-pair-foil.png | Bin 0 -> 5074 bytes .../typography/typography-type-scale-foil.png | Bin 0 -> 5199 bytes .../impeccable/scripts/picker/favicon.svg | 13 + .../impeccable/scripts/picker/icon-packs.json | 1 + .../impeccable/scripts/picker/index.html | 5 + plugin/skills/impeccable/scripts/pin.mjs | 2 +- .../impeccable/scripts/serve-question.mjs | 2 +- .../skills/impeccable/scripts/visual-cues.mjs | 317 ++ 1113 files changed, 109101 insertions(+), 1330 deletions(-) create mode 100644 .agent/skills/impeccable/reference/design-context.md create mode 100644 .agent/skills/impeccable/reference/image-api.md create mode 100644 .agent/skills/impeccable/reference/visual-cues.md create mode 100644 .agent/skills/impeccable/scripts/design-context-export.mjs create mode 100644 .agent/skills/impeccable/scripts/design-context-import.mjs create mode 100644 .agent/skills/impeccable/scripts/design-context/bindings.mjs create mode 100644 .agent/skills/impeccable/scripts/design-context/portability.mjs create mode 100644 .agent/skills/impeccable/scripts/design-context/session-routes.mjs create mode 100644 .agent/skills/impeccable/scripts/design-context/store.mjs create mode 100644 .agent/skills/impeccable/scripts/image-gen.mjs create mode 100644 .agent/skills/impeccable/scripts/picker-doc-poll.mjs create mode 100644 .agent/skills/impeccable/scripts/picker-doc-session.mjs create mode 100644 .agent/skills/impeccable/scripts/picker-server.mjs create mode 100644 .agent/skills/impeccable/scripts/picker/assets/audience/audience-groups-foil.png create mode 100644 .agent/skills/impeccable/scripts/picker/assets/audience/emotional-journey-foil.png create mode 100644 .agent/skills/impeccable/scripts/picker/assets/audience/inclusion-foil.png create mode 100644 .agent/skills/impeccable/scripts/picker/assets/audience/kinpaku-gold-leaf.png create mode 100644 .agent/skills/impeccable/scripts/picker/assets/audience/needs-foil.png create mode 100644 .agent/skills/impeccable/scripts/picker/assets/audience/trust-triggers-foil.png create mode 100644 .agent/skills/impeccable/scripts/picker/assets/audience/verdigris-patina.png create mode 100644 .agent/skills/impeccable/scripts/picker/assets/brand/brand-commitments-foil.png create mode 100644 .agent/skills/impeccable/scripts/picker/assets/brand/brand-personality-foil.png create mode 100644 .agent/skills/impeccable/scripts/picker/assets/brand/brand-principles-foil.png create mode 100644 .agent/skills/impeccable/scripts/picker/assets/brand/brand-voice-foil.png create mode 100644 .agent/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-atelier-seal.png create mode 100644 .agent/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-material-reference.webp create mode 100644 .agent/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-primary-mark.png create mode 100644 .agent/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-seasonal-moodboard.webp create mode 100644 .agent/skills/impeccable/scripts/picker/assets/color/color-palette-foil.png create mode 100644 .agent/skills/impeccable/scripts/picker/assets/color/color-strategy-per-surface-foil.png create mode 100644 .agent/skills/impeccable/scripts/picker/assets/components/hanazono-ikebana-card.jpg create mode 100644 .agent/skills/impeccable/scripts/picker/assets/hero-dark.jpg create mode 100644 .agent/skills/impeccable/scripts/picker/assets/index.DQJ7Kjkj.css create mode 100644 .agent/skills/impeccable/scripts/picker/assets/index.astro_astro_type_script_index_0_lang.Cpn-pC_8.js create mode 100644 .agent/skills/impeccable/scripts/picker/assets/kinpaku-gold-leaf.jpg create mode 100644 .agent/skills/impeccable/scripts/picker/assets/material/material-boundaries-per-surface-foil.png create mode 100644 .agent/skills/impeccable/scripts/picker/assets/material/material-corners-per-surface-foil.png create mode 100644 .agent/skills/impeccable/scripts/picker/assets/material/material-depth-per-surface-foil.png create mode 100644 .agent/skills/impeccable/scripts/picker/assets/material/material-layout-structure-foil.png create mode 100644 .agent/skills/impeccable/scripts/picker/assets/product/product-clear-first-foil.png create mode 100644 .agent/skills/impeccable/scripts/picker/assets/product/product-operating-context-foil.png create mode 100644 .agent/skills/impeccable/scripts/picker/assets/product/product-positioning-foil.png create mode 100644 .agent/skills/impeccable/scripts/picker/assets/product/product-primary-conversion-foil.png create mode 100644 .agent/skills/impeccable/scripts/picker/assets/product/product-principles-foil.png create mode 100644 .agent/skills/impeccable/scripts/picker/assets/product/product-purpose-foil.png create mode 100644 .agent/skills/impeccable/scripts/picker/assets/product/product-surfaces-foil.png create mode 100644 .agent/skills/impeccable/scripts/picker/assets/typography/typography-pair-foil.png create mode 100644 .agent/skills/impeccable/scripts/picker/assets/typography/typography-type-scale-foil.png create mode 100644 .agent/skills/impeccable/scripts/picker/favicon.svg create mode 100644 .agent/skills/impeccable/scripts/picker/icon-packs.json create mode 100644 .agent/skills/impeccable/scripts/picker/index.html create mode 100644 .agent/skills/impeccable/scripts/visual-cues.mjs create mode 100644 .agents/skills/impeccable/reference/design-context.md create mode 100644 .agents/skills/impeccable/reference/image-api.md create mode 100644 .agents/skills/impeccable/reference/visual-cues.md create mode 100644 .agents/skills/impeccable/scripts/design-context-export.mjs create mode 100644 .agents/skills/impeccable/scripts/design-context-import.mjs create mode 100644 .agents/skills/impeccable/scripts/design-context/bindings.mjs create mode 100644 .agents/skills/impeccable/scripts/design-context/portability.mjs create mode 100644 .agents/skills/impeccable/scripts/design-context/session-routes.mjs create mode 100644 .agents/skills/impeccable/scripts/design-context/store.mjs create mode 100644 .agents/skills/impeccable/scripts/image-gen.mjs create mode 100644 .agents/skills/impeccable/scripts/picker-doc-poll.mjs create mode 100644 .agents/skills/impeccable/scripts/picker-doc-session.mjs create mode 100644 .agents/skills/impeccable/scripts/picker-server.mjs create mode 100644 .agents/skills/impeccable/scripts/picker/assets/audience/audience-groups-foil.png create mode 100644 .agents/skills/impeccable/scripts/picker/assets/audience/emotional-journey-foil.png create mode 100644 .agents/skills/impeccable/scripts/picker/assets/audience/inclusion-foil.png create mode 100644 .agents/skills/impeccable/scripts/picker/assets/audience/kinpaku-gold-leaf.png create mode 100644 .agents/skills/impeccable/scripts/picker/assets/audience/needs-foil.png create mode 100644 .agents/skills/impeccable/scripts/picker/assets/audience/trust-triggers-foil.png create mode 100644 .agents/skills/impeccable/scripts/picker/assets/audience/verdigris-patina.png create mode 100644 .agents/skills/impeccable/scripts/picker/assets/brand/brand-commitments-foil.png create mode 100644 .agents/skills/impeccable/scripts/picker/assets/brand/brand-personality-foil.png create mode 100644 .agents/skills/impeccable/scripts/picker/assets/brand/brand-principles-foil.png create mode 100644 .agents/skills/impeccable/scripts/picker/assets/brand/brand-voice-foil.png create mode 100644 .agents/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-atelier-seal.png create mode 100644 .agents/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-material-reference.webp create mode 100644 .agents/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-primary-mark.png create mode 100644 .agents/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-seasonal-moodboard.webp create mode 100644 .agents/skills/impeccable/scripts/picker/assets/color/color-palette-foil.png create mode 100644 .agents/skills/impeccable/scripts/picker/assets/color/color-strategy-per-surface-foil.png create mode 100644 .agents/skills/impeccable/scripts/picker/assets/components/hanazono-ikebana-card.jpg create mode 100644 .agents/skills/impeccable/scripts/picker/assets/hero-dark.jpg create mode 100644 .agents/skills/impeccable/scripts/picker/assets/index.DQJ7Kjkj.css create mode 100644 .agents/skills/impeccable/scripts/picker/assets/index.astro_astro_type_script_index_0_lang.Cpn-pC_8.js create mode 100644 .agents/skills/impeccable/scripts/picker/assets/kinpaku-gold-leaf.jpg create mode 100644 .agents/skills/impeccable/scripts/picker/assets/material/material-boundaries-per-surface-foil.png create mode 100644 .agents/skills/impeccable/scripts/picker/assets/material/material-corners-per-surface-foil.png create mode 100644 .agents/skills/impeccable/scripts/picker/assets/material/material-depth-per-surface-foil.png create mode 100644 .agents/skills/impeccable/scripts/picker/assets/material/material-layout-structure-foil.png create mode 100644 .agents/skills/impeccable/scripts/picker/assets/product/product-clear-first-foil.png create mode 100644 .agents/skills/impeccable/scripts/picker/assets/product/product-operating-context-foil.png create mode 100644 .agents/skills/impeccable/scripts/picker/assets/product/product-positioning-foil.png create mode 100644 .agents/skills/impeccable/scripts/picker/assets/product/product-primary-conversion-foil.png create mode 100644 .agents/skills/impeccable/scripts/picker/assets/product/product-principles-foil.png create mode 100644 .agents/skills/impeccable/scripts/picker/assets/product/product-purpose-foil.png create mode 100644 .agents/skills/impeccable/scripts/picker/assets/product/product-surfaces-foil.png create mode 100644 .agents/skills/impeccable/scripts/picker/assets/typography/typography-pair-foil.png create mode 100644 .agents/skills/impeccable/scripts/picker/assets/typography/typography-type-scale-foil.png create mode 100644 .agents/skills/impeccable/scripts/picker/favicon.svg create mode 100644 .agents/skills/impeccable/scripts/picker/icon-packs.json create mode 100644 .agents/skills/impeccable/scripts/picker/index.html create mode 100644 .agents/skills/impeccable/scripts/visual-cues.mjs create mode 100644 .claude/skills/impeccable/reference/design-context.md create mode 100644 .claude/skills/impeccable/reference/image-api.md create mode 100644 .claude/skills/impeccable/reference/visual-cues.md create mode 100644 .claude/skills/impeccable/scripts/design-context-export.mjs create mode 100644 .claude/skills/impeccable/scripts/design-context-import.mjs create mode 100644 .claude/skills/impeccable/scripts/design-context/bindings.mjs create mode 100644 .claude/skills/impeccable/scripts/design-context/portability.mjs create mode 100644 .claude/skills/impeccable/scripts/design-context/session-routes.mjs create mode 100644 .claude/skills/impeccable/scripts/design-context/store.mjs create mode 100644 .claude/skills/impeccable/scripts/image-gen.mjs create mode 100644 .claude/skills/impeccable/scripts/picker-doc-poll.mjs create mode 100644 .claude/skills/impeccable/scripts/picker-doc-session.mjs create mode 100644 .claude/skills/impeccable/scripts/picker-server.mjs create mode 100644 .claude/skills/impeccable/scripts/picker/assets/audience/audience-groups-foil.png create mode 100644 .claude/skills/impeccable/scripts/picker/assets/audience/emotional-journey-foil.png create mode 100644 .claude/skills/impeccable/scripts/picker/assets/audience/inclusion-foil.png create mode 100644 .claude/skills/impeccable/scripts/picker/assets/audience/kinpaku-gold-leaf.png create mode 100644 .claude/skills/impeccable/scripts/picker/assets/audience/needs-foil.png create mode 100644 .claude/skills/impeccable/scripts/picker/assets/audience/trust-triggers-foil.png create mode 100644 .claude/skills/impeccable/scripts/picker/assets/audience/verdigris-patina.png create mode 100644 .claude/skills/impeccable/scripts/picker/assets/brand/brand-commitments-foil.png create mode 100644 .claude/skills/impeccable/scripts/picker/assets/brand/brand-personality-foil.png create mode 100644 .claude/skills/impeccable/scripts/picker/assets/brand/brand-principles-foil.png create mode 100644 .claude/skills/impeccable/scripts/picker/assets/brand/brand-voice-foil.png create mode 100644 .claude/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-atelier-seal.png create mode 100644 .claude/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-material-reference.webp create mode 100644 .claude/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-primary-mark.png create mode 100644 .claude/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-seasonal-moodboard.webp create mode 100644 .claude/skills/impeccable/scripts/picker/assets/color/color-palette-foil.png create mode 100644 .claude/skills/impeccable/scripts/picker/assets/color/color-strategy-per-surface-foil.png create mode 100644 .claude/skills/impeccable/scripts/picker/assets/components/hanazono-ikebana-card.jpg create mode 100644 .claude/skills/impeccable/scripts/picker/assets/hero-dark.jpg create mode 100644 .claude/skills/impeccable/scripts/picker/assets/index.DQJ7Kjkj.css create mode 100644 .claude/skills/impeccable/scripts/picker/assets/index.astro_astro_type_script_index_0_lang.Cpn-pC_8.js create mode 100644 .claude/skills/impeccable/scripts/picker/assets/kinpaku-gold-leaf.jpg create mode 100644 .claude/skills/impeccable/scripts/picker/assets/material/material-boundaries-per-surface-foil.png create mode 100644 .claude/skills/impeccable/scripts/picker/assets/material/material-corners-per-surface-foil.png create mode 100644 .claude/skills/impeccable/scripts/picker/assets/material/material-depth-per-surface-foil.png create mode 100644 .claude/skills/impeccable/scripts/picker/assets/material/material-layout-structure-foil.png create mode 100644 .claude/skills/impeccable/scripts/picker/assets/product/product-clear-first-foil.png create mode 100644 .claude/skills/impeccable/scripts/picker/assets/product/product-operating-context-foil.png create mode 100644 .claude/skills/impeccable/scripts/picker/assets/product/product-positioning-foil.png create mode 100644 .claude/skills/impeccable/scripts/picker/assets/product/product-primary-conversion-foil.png create mode 100644 .claude/skills/impeccable/scripts/picker/assets/product/product-principles-foil.png create mode 100644 .claude/skills/impeccable/scripts/picker/assets/product/product-purpose-foil.png create mode 100644 .claude/skills/impeccable/scripts/picker/assets/product/product-surfaces-foil.png create mode 100644 .claude/skills/impeccable/scripts/picker/assets/typography/typography-pair-foil.png create mode 100644 .claude/skills/impeccable/scripts/picker/assets/typography/typography-type-scale-foil.png create mode 100644 .claude/skills/impeccable/scripts/picker/favicon.svg create mode 100644 .claude/skills/impeccable/scripts/picker/icon-packs.json create mode 100644 .claude/skills/impeccable/scripts/picker/index.html create mode 100644 .claude/skills/impeccable/scripts/visual-cues.mjs create mode 100644 .cursor/skills/impeccable/reference/design-context.md create mode 100644 .cursor/skills/impeccable/reference/image-api.md create mode 100644 .cursor/skills/impeccable/reference/visual-cues.md create mode 100644 .cursor/skills/impeccable/scripts/design-context-export.mjs create mode 100644 .cursor/skills/impeccable/scripts/design-context-import.mjs create mode 100644 .cursor/skills/impeccable/scripts/design-context/bindings.mjs create mode 100644 .cursor/skills/impeccable/scripts/design-context/portability.mjs create mode 100644 .cursor/skills/impeccable/scripts/design-context/session-routes.mjs create mode 100644 .cursor/skills/impeccable/scripts/design-context/store.mjs create mode 100644 .cursor/skills/impeccable/scripts/image-gen.mjs create mode 100644 .cursor/skills/impeccable/scripts/picker-doc-poll.mjs create mode 100644 .cursor/skills/impeccable/scripts/picker-doc-session.mjs create mode 100644 .cursor/skills/impeccable/scripts/picker-server.mjs create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/audience/audience-groups-foil.png create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/audience/emotional-journey-foil.png create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/audience/inclusion-foil.png create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/audience/kinpaku-gold-leaf.png create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/audience/needs-foil.png create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/audience/trust-triggers-foil.png create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/audience/verdigris-patina.png create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/brand/brand-commitments-foil.png create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/brand/brand-personality-foil.png create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/brand/brand-principles-foil.png create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/brand/brand-voice-foil.png create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-atelier-seal.png create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-material-reference.webp create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-primary-mark.png create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-seasonal-moodboard.webp create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/color/color-palette-foil.png create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/color/color-strategy-per-surface-foil.png create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/components/hanazono-ikebana-card.jpg create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/hero-dark.jpg create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/index.DQJ7Kjkj.css create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/index.astro_astro_type_script_index_0_lang.Cpn-pC_8.js create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/kinpaku-gold-leaf.jpg create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/material/material-boundaries-per-surface-foil.png create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/material/material-corners-per-surface-foil.png create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/material/material-depth-per-surface-foil.png create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/material/material-layout-structure-foil.png create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/product/product-clear-first-foil.png create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/product/product-operating-context-foil.png create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/product/product-positioning-foil.png create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/product/product-primary-conversion-foil.png create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/product/product-principles-foil.png create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/product/product-purpose-foil.png create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/product/product-surfaces-foil.png create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/typography/typography-pair-foil.png create mode 100644 .cursor/skills/impeccable/scripts/picker/assets/typography/typography-type-scale-foil.png create mode 100644 .cursor/skills/impeccable/scripts/picker/favicon.svg create mode 100644 .cursor/skills/impeccable/scripts/picker/icon-packs.json create mode 100644 .cursor/skills/impeccable/scripts/picker/index.html create mode 100644 .cursor/skills/impeccable/scripts/visual-cues.mjs create mode 100644 .gemini/skills/impeccable/reference/design-context.md create mode 100644 .gemini/skills/impeccable/reference/image-api.md create mode 100644 .gemini/skills/impeccable/reference/visual-cues.md create mode 100644 .gemini/skills/impeccable/scripts/design-context-export.mjs create mode 100644 .gemini/skills/impeccable/scripts/design-context-import.mjs create mode 100644 .gemini/skills/impeccable/scripts/design-context/bindings.mjs create mode 100644 .gemini/skills/impeccable/scripts/design-context/portability.mjs create mode 100644 .gemini/skills/impeccable/scripts/design-context/session-routes.mjs create mode 100644 .gemini/skills/impeccable/scripts/design-context/store.mjs create mode 100644 .gemini/skills/impeccable/scripts/image-gen.mjs create mode 100644 .gemini/skills/impeccable/scripts/picker-doc-poll.mjs create mode 100644 .gemini/skills/impeccable/scripts/picker-doc-session.mjs create mode 100644 .gemini/skills/impeccable/scripts/picker-server.mjs create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/audience/audience-groups-foil.png create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/audience/emotional-journey-foil.png create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/audience/inclusion-foil.png create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/audience/kinpaku-gold-leaf.png create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/audience/needs-foil.png create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/audience/trust-triggers-foil.png create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/audience/verdigris-patina.png create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/brand/brand-commitments-foil.png create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/brand/brand-personality-foil.png create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/brand/brand-principles-foil.png create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/brand/brand-voice-foil.png create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-atelier-seal.png create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-material-reference.webp create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-primary-mark.png create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-seasonal-moodboard.webp create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/color/color-palette-foil.png create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/color/color-strategy-per-surface-foil.png create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/components/hanazono-ikebana-card.jpg create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/hero-dark.jpg create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/index.DQJ7Kjkj.css create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/index.astro_astro_type_script_index_0_lang.Cpn-pC_8.js create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/kinpaku-gold-leaf.jpg create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/material/material-boundaries-per-surface-foil.png create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/material/material-corners-per-surface-foil.png create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/material/material-depth-per-surface-foil.png create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/material/material-layout-structure-foil.png create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/product/product-clear-first-foil.png create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/product/product-operating-context-foil.png create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/product/product-positioning-foil.png create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/product/product-primary-conversion-foil.png create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/product/product-principles-foil.png create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/product/product-purpose-foil.png create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/product/product-surfaces-foil.png create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/typography/typography-pair-foil.png create mode 100644 .gemini/skills/impeccable/scripts/picker/assets/typography/typography-type-scale-foil.png create mode 100644 .gemini/skills/impeccable/scripts/picker/favicon.svg create mode 100644 .gemini/skills/impeccable/scripts/picker/icon-packs.json create mode 100644 .gemini/skills/impeccable/scripts/picker/index.html create mode 100644 .gemini/skills/impeccable/scripts/visual-cues.mjs create mode 100644 .github/skills/impeccable/reference/design-context.md create mode 100644 .github/skills/impeccable/reference/image-api.md create mode 100644 .github/skills/impeccable/reference/visual-cues.md create mode 100644 .github/skills/impeccable/scripts/design-context-export.mjs create mode 100644 .github/skills/impeccable/scripts/design-context-import.mjs create mode 100644 .github/skills/impeccable/scripts/design-context/bindings.mjs create mode 100644 .github/skills/impeccable/scripts/design-context/portability.mjs create mode 100644 .github/skills/impeccable/scripts/design-context/session-routes.mjs create mode 100644 .github/skills/impeccable/scripts/design-context/store.mjs create mode 100644 .github/skills/impeccable/scripts/image-gen.mjs create mode 100644 .github/skills/impeccable/scripts/picker-doc-poll.mjs create mode 100644 .github/skills/impeccable/scripts/picker-doc-session.mjs create mode 100644 .github/skills/impeccable/scripts/picker-server.mjs create mode 100644 .github/skills/impeccable/scripts/picker/assets/audience/audience-groups-foil.png create mode 100644 .github/skills/impeccable/scripts/picker/assets/audience/emotional-journey-foil.png create mode 100644 .github/skills/impeccable/scripts/picker/assets/audience/inclusion-foil.png create mode 100644 .github/skills/impeccable/scripts/picker/assets/audience/kinpaku-gold-leaf.png create mode 100644 .github/skills/impeccable/scripts/picker/assets/audience/needs-foil.png create mode 100644 .github/skills/impeccable/scripts/picker/assets/audience/trust-triggers-foil.png create mode 100644 .github/skills/impeccable/scripts/picker/assets/audience/verdigris-patina.png create mode 100644 .github/skills/impeccable/scripts/picker/assets/brand/brand-commitments-foil.png create mode 100644 .github/skills/impeccable/scripts/picker/assets/brand/brand-personality-foil.png create mode 100644 .github/skills/impeccable/scripts/picker/assets/brand/brand-principles-foil.png create mode 100644 .github/skills/impeccable/scripts/picker/assets/brand/brand-voice-foil.png create mode 100644 .github/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-atelier-seal.png create mode 100644 .github/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-material-reference.webp create mode 100644 .github/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-primary-mark.png create mode 100644 .github/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-seasonal-moodboard.webp create mode 100644 .github/skills/impeccable/scripts/picker/assets/color/color-palette-foil.png create mode 100644 .github/skills/impeccable/scripts/picker/assets/color/color-strategy-per-surface-foil.png create mode 100644 .github/skills/impeccable/scripts/picker/assets/components/hanazono-ikebana-card.jpg create mode 100644 .github/skills/impeccable/scripts/picker/assets/hero-dark.jpg create mode 100644 .github/skills/impeccable/scripts/picker/assets/index.DQJ7Kjkj.css create mode 100644 .github/skills/impeccable/scripts/picker/assets/index.astro_astro_type_script_index_0_lang.Cpn-pC_8.js create mode 100644 .github/skills/impeccable/scripts/picker/assets/kinpaku-gold-leaf.jpg create mode 100644 .github/skills/impeccable/scripts/picker/assets/material/material-boundaries-per-surface-foil.png create mode 100644 .github/skills/impeccable/scripts/picker/assets/material/material-corners-per-surface-foil.png create mode 100644 .github/skills/impeccable/scripts/picker/assets/material/material-depth-per-surface-foil.png create mode 100644 .github/skills/impeccable/scripts/picker/assets/material/material-layout-structure-foil.png create mode 100644 .github/skills/impeccable/scripts/picker/assets/product/product-clear-first-foil.png create mode 100644 .github/skills/impeccable/scripts/picker/assets/product/product-operating-context-foil.png create mode 100644 .github/skills/impeccable/scripts/picker/assets/product/product-positioning-foil.png create mode 100644 .github/skills/impeccable/scripts/picker/assets/product/product-primary-conversion-foil.png create mode 100644 .github/skills/impeccable/scripts/picker/assets/product/product-principles-foil.png create mode 100644 .github/skills/impeccable/scripts/picker/assets/product/product-purpose-foil.png create mode 100644 .github/skills/impeccable/scripts/picker/assets/product/product-surfaces-foil.png create mode 100644 .github/skills/impeccable/scripts/picker/assets/typography/typography-pair-foil.png create mode 100644 .github/skills/impeccable/scripts/picker/assets/typography/typography-type-scale-foil.png create mode 100644 .github/skills/impeccable/scripts/picker/favicon.svg create mode 100644 .github/skills/impeccable/scripts/picker/icon-packs.json create mode 100644 .github/skills/impeccable/scripts/picker/index.html create mode 100644 .github/skills/impeccable/scripts/visual-cues.mjs create mode 100644 .grok/skills/impeccable/reference/design-context.md create mode 100644 .grok/skills/impeccable/reference/image-api.md create mode 100644 .grok/skills/impeccable/reference/visual-cues.md create mode 100644 .grok/skills/impeccable/scripts/design-context-export.mjs create mode 100644 .grok/skills/impeccable/scripts/design-context-import.mjs create mode 100644 .grok/skills/impeccable/scripts/design-context/bindings.mjs create mode 100644 .grok/skills/impeccable/scripts/design-context/portability.mjs create mode 100644 .grok/skills/impeccable/scripts/design-context/session-routes.mjs create mode 100644 .grok/skills/impeccable/scripts/design-context/store.mjs create mode 100644 .grok/skills/impeccable/scripts/image-gen.mjs create mode 100644 .grok/skills/impeccable/scripts/picker-doc-poll.mjs create mode 100644 .grok/skills/impeccable/scripts/picker-doc-session.mjs create mode 100644 .grok/skills/impeccable/scripts/picker-server.mjs create mode 100644 .grok/skills/impeccable/scripts/picker/assets/audience/audience-groups-foil.png create mode 100644 .grok/skills/impeccable/scripts/picker/assets/audience/emotional-journey-foil.png create mode 100644 .grok/skills/impeccable/scripts/picker/assets/audience/inclusion-foil.png create mode 100644 .grok/skills/impeccable/scripts/picker/assets/audience/kinpaku-gold-leaf.png create mode 100644 .grok/skills/impeccable/scripts/picker/assets/audience/needs-foil.png create mode 100644 .grok/skills/impeccable/scripts/picker/assets/audience/trust-triggers-foil.png create mode 100644 .grok/skills/impeccable/scripts/picker/assets/audience/verdigris-patina.png create mode 100644 .grok/skills/impeccable/scripts/picker/assets/brand/brand-commitments-foil.png create mode 100644 .grok/skills/impeccable/scripts/picker/assets/brand/brand-personality-foil.png create mode 100644 .grok/skills/impeccable/scripts/picker/assets/brand/brand-principles-foil.png create mode 100644 .grok/skills/impeccable/scripts/picker/assets/brand/brand-voice-foil.png create mode 100644 .grok/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-atelier-seal.png create mode 100644 .grok/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-material-reference.webp create mode 100644 .grok/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-primary-mark.png create mode 100644 .grok/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-seasonal-moodboard.webp create mode 100644 .grok/skills/impeccable/scripts/picker/assets/color/color-palette-foil.png create mode 100644 .grok/skills/impeccable/scripts/picker/assets/color/color-strategy-per-surface-foil.png create mode 100644 .grok/skills/impeccable/scripts/picker/assets/components/hanazono-ikebana-card.jpg create mode 100644 .grok/skills/impeccable/scripts/picker/assets/hero-dark.jpg create mode 100644 .grok/skills/impeccable/scripts/picker/assets/index.DQJ7Kjkj.css create mode 100644 .grok/skills/impeccable/scripts/picker/assets/index.astro_astro_type_script_index_0_lang.Cpn-pC_8.js create mode 100644 .grok/skills/impeccable/scripts/picker/assets/kinpaku-gold-leaf.jpg create mode 100644 .grok/skills/impeccable/scripts/picker/assets/material/material-boundaries-per-surface-foil.png create mode 100644 .grok/skills/impeccable/scripts/picker/assets/material/material-corners-per-surface-foil.png create mode 100644 .grok/skills/impeccable/scripts/picker/assets/material/material-depth-per-surface-foil.png create mode 100644 .grok/skills/impeccable/scripts/picker/assets/material/material-layout-structure-foil.png create mode 100644 .grok/skills/impeccable/scripts/picker/assets/product/product-clear-first-foil.png create mode 100644 .grok/skills/impeccable/scripts/picker/assets/product/product-operating-context-foil.png create mode 100644 .grok/skills/impeccable/scripts/picker/assets/product/product-positioning-foil.png create mode 100644 .grok/skills/impeccable/scripts/picker/assets/product/product-primary-conversion-foil.png create mode 100644 .grok/skills/impeccable/scripts/picker/assets/product/product-principles-foil.png create mode 100644 .grok/skills/impeccable/scripts/picker/assets/product/product-purpose-foil.png create mode 100644 .grok/skills/impeccable/scripts/picker/assets/product/product-surfaces-foil.png create mode 100644 .grok/skills/impeccable/scripts/picker/assets/typography/typography-pair-foil.png create mode 100644 .grok/skills/impeccable/scripts/picker/assets/typography/typography-type-scale-foil.png create mode 100644 .grok/skills/impeccable/scripts/picker/favicon.svg create mode 100644 .grok/skills/impeccable/scripts/picker/icon-packs.json create mode 100644 .grok/skills/impeccable/scripts/picker/index.html create mode 100644 .grok/skills/impeccable/scripts/visual-cues.mjs create mode 100644 .hermes/skills/impeccable/reference/design-context.md create mode 100644 .hermes/skills/impeccable/reference/image-api.md create mode 100644 .hermes/skills/impeccable/reference/visual-cues.md create mode 100644 .hermes/skills/impeccable/scripts/design-context-export.mjs create mode 100644 .hermes/skills/impeccable/scripts/design-context-import.mjs create mode 100644 .hermes/skills/impeccable/scripts/design-context/bindings.mjs create mode 100644 .hermes/skills/impeccable/scripts/design-context/portability.mjs create mode 100644 .hermes/skills/impeccable/scripts/design-context/session-routes.mjs create mode 100644 .hermes/skills/impeccable/scripts/design-context/store.mjs create mode 100644 .hermes/skills/impeccable/scripts/image-gen.mjs create mode 100644 .hermes/skills/impeccable/scripts/picker-doc-poll.mjs create mode 100644 .hermes/skills/impeccable/scripts/picker-doc-session.mjs create mode 100644 .hermes/skills/impeccable/scripts/picker-server.mjs create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/audience/audience-groups-foil.png create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/audience/emotional-journey-foil.png create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/audience/inclusion-foil.png create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/audience/kinpaku-gold-leaf.png create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/audience/needs-foil.png create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/audience/trust-triggers-foil.png create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/audience/verdigris-patina.png create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/brand/brand-commitments-foil.png create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/brand/brand-personality-foil.png create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/brand/brand-principles-foil.png create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/brand/brand-voice-foil.png create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-atelier-seal.png create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-material-reference.webp create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-primary-mark.png create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-seasonal-moodboard.webp create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/color/color-palette-foil.png create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/color/color-strategy-per-surface-foil.png create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/components/hanazono-ikebana-card.jpg create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/hero-dark.jpg create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/index.DQJ7Kjkj.css create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/index.astro_astro_type_script_index_0_lang.Cpn-pC_8.js create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/kinpaku-gold-leaf.jpg create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/material/material-boundaries-per-surface-foil.png create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/material/material-corners-per-surface-foil.png create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/material/material-depth-per-surface-foil.png create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/material/material-layout-structure-foil.png create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/product/product-clear-first-foil.png create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/product/product-operating-context-foil.png create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/product/product-positioning-foil.png create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/product/product-primary-conversion-foil.png create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/product/product-principles-foil.png create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/product/product-purpose-foil.png create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/product/product-surfaces-foil.png create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/typography/typography-pair-foil.png create mode 100644 .hermes/skills/impeccable/scripts/picker/assets/typography/typography-type-scale-foil.png create mode 100644 .hermes/skills/impeccable/scripts/picker/favicon.svg create mode 100644 .hermes/skills/impeccable/scripts/picker/icon-packs.json create mode 100644 .hermes/skills/impeccable/scripts/picker/index.html create mode 100644 .hermes/skills/impeccable/scripts/visual-cues.mjs create mode 100644 .kiro/skills/impeccable/reference/design-context.md create mode 100644 .kiro/skills/impeccable/reference/image-api.md create mode 100644 .kiro/skills/impeccable/reference/visual-cues.md create mode 100644 .kiro/skills/impeccable/scripts/design-context-export.mjs create mode 100644 .kiro/skills/impeccable/scripts/design-context-import.mjs create mode 100644 .kiro/skills/impeccable/scripts/design-context/bindings.mjs create mode 100644 .kiro/skills/impeccable/scripts/design-context/portability.mjs create mode 100644 .kiro/skills/impeccable/scripts/design-context/session-routes.mjs create mode 100644 .kiro/skills/impeccable/scripts/design-context/store.mjs create mode 100644 .kiro/skills/impeccable/scripts/image-gen.mjs create mode 100644 .kiro/skills/impeccable/scripts/picker-doc-poll.mjs create mode 100644 .kiro/skills/impeccable/scripts/picker-doc-session.mjs create mode 100644 .kiro/skills/impeccable/scripts/picker-server.mjs create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/audience/audience-groups-foil.png create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/audience/emotional-journey-foil.png create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/audience/inclusion-foil.png create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/audience/kinpaku-gold-leaf.png create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/audience/needs-foil.png create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/audience/trust-triggers-foil.png create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/audience/verdigris-patina.png create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/brand/brand-commitments-foil.png create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/brand/brand-personality-foil.png create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/brand/brand-principles-foil.png create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/brand/brand-voice-foil.png create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-atelier-seal.png create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-material-reference.webp create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-primary-mark.png create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-seasonal-moodboard.webp create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/color/color-palette-foil.png create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/color/color-strategy-per-surface-foil.png create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/components/hanazono-ikebana-card.jpg create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/hero-dark.jpg create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/index.DQJ7Kjkj.css create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/index.astro_astro_type_script_index_0_lang.Cpn-pC_8.js create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/kinpaku-gold-leaf.jpg create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/material/material-boundaries-per-surface-foil.png create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/material/material-corners-per-surface-foil.png create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/material/material-depth-per-surface-foil.png create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/material/material-layout-structure-foil.png create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/product/product-clear-first-foil.png create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/product/product-operating-context-foil.png create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/product/product-positioning-foil.png create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/product/product-primary-conversion-foil.png create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/product/product-principles-foil.png create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/product/product-purpose-foil.png create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/product/product-surfaces-foil.png create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/typography/typography-pair-foil.png create mode 100644 .kiro/skills/impeccable/scripts/picker/assets/typography/typography-type-scale-foil.png create mode 100644 .kiro/skills/impeccable/scripts/picker/favicon.svg create mode 100644 .kiro/skills/impeccable/scripts/picker/icon-packs.json create mode 100644 .kiro/skills/impeccable/scripts/picker/index.html create mode 100644 .kiro/skills/impeccable/scripts/visual-cues.mjs create mode 100644 .opencode/skills/impeccable/reference/design-context.md create mode 100644 .opencode/skills/impeccable/reference/image-api.md create mode 100644 .opencode/skills/impeccable/reference/visual-cues.md create mode 100644 .opencode/skills/impeccable/scripts/design-context-export.mjs create mode 100644 .opencode/skills/impeccable/scripts/design-context-import.mjs create mode 100644 .opencode/skills/impeccable/scripts/design-context/bindings.mjs create mode 100644 .opencode/skills/impeccable/scripts/design-context/portability.mjs create mode 100644 .opencode/skills/impeccable/scripts/design-context/session-routes.mjs create mode 100644 .opencode/skills/impeccable/scripts/design-context/store.mjs create mode 100644 .opencode/skills/impeccable/scripts/image-gen.mjs create mode 100644 .opencode/skills/impeccable/scripts/picker-doc-poll.mjs create mode 100644 .opencode/skills/impeccable/scripts/picker-doc-session.mjs create mode 100644 .opencode/skills/impeccable/scripts/picker-server.mjs create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/audience/audience-groups-foil.png create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/audience/emotional-journey-foil.png create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/audience/inclusion-foil.png create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/audience/kinpaku-gold-leaf.png create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/audience/needs-foil.png create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/audience/trust-triggers-foil.png create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/audience/verdigris-patina.png create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/brand/brand-commitments-foil.png create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/brand/brand-personality-foil.png create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/brand/brand-principles-foil.png create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/brand/brand-voice-foil.png create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-atelier-seal.png create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-material-reference.webp create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-primary-mark.png create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-seasonal-moodboard.webp create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/color/color-palette-foil.png create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/color/color-strategy-per-surface-foil.png create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/components/hanazono-ikebana-card.jpg create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/hero-dark.jpg create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/index.DQJ7Kjkj.css create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/index.astro_astro_type_script_index_0_lang.Cpn-pC_8.js create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/kinpaku-gold-leaf.jpg create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/material/material-boundaries-per-surface-foil.png create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/material/material-corners-per-surface-foil.png create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/material/material-depth-per-surface-foil.png create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/material/material-layout-structure-foil.png create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/product/product-clear-first-foil.png create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/product/product-operating-context-foil.png create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/product/product-positioning-foil.png create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/product/product-primary-conversion-foil.png create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/product/product-principles-foil.png create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/product/product-purpose-foil.png create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/product/product-surfaces-foil.png create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/typography/typography-pair-foil.png create mode 100644 .opencode/skills/impeccable/scripts/picker/assets/typography/typography-type-scale-foil.png create mode 100644 .opencode/skills/impeccable/scripts/picker/favicon.svg create mode 100644 .opencode/skills/impeccable/scripts/picker/icon-packs.json create mode 100644 .opencode/skills/impeccable/scripts/picker/index.html create mode 100644 .opencode/skills/impeccable/scripts/visual-cues.mjs create mode 100644 .pi/skills/impeccable/reference/design-context.md create mode 100644 .pi/skills/impeccable/reference/image-api.md create mode 100644 .pi/skills/impeccable/reference/visual-cues.md create mode 100644 .pi/skills/impeccable/scripts/design-context-export.mjs create mode 100644 .pi/skills/impeccable/scripts/design-context-import.mjs create mode 100644 .pi/skills/impeccable/scripts/design-context/bindings.mjs create mode 100644 .pi/skills/impeccable/scripts/design-context/portability.mjs create mode 100644 .pi/skills/impeccable/scripts/design-context/session-routes.mjs create mode 100644 .pi/skills/impeccable/scripts/design-context/store.mjs create mode 100644 .pi/skills/impeccable/scripts/image-gen.mjs create mode 100644 .pi/skills/impeccable/scripts/picker-doc-poll.mjs create mode 100644 .pi/skills/impeccable/scripts/picker-doc-session.mjs create mode 100644 .pi/skills/impeccable/scripts/picker-server.mjs create mode 100644 .pi/skills/impeccable/scripts/picker/assets/audience/audience-groups-foil.png create mode 100644 .pi/skills/impeccable/scripts/picker/assets/audience/emotional-journey-foil.png create mode 100644 .pi/skills/impeccable/scripts/picker/assets/audience/inclusion-foil.png create mode 100644 .pi/skills/impeccable/scripts/picker/assets/audience/kinpaku-gold-leaf.png create mode 100644 .pi/skills/impeccable/scripts/picker/assets/audience/needs-foil.png create mode 100644 .pi/skills/impeccable/scripts/picker/assets/audience/trust-triggers-foil.png create mode 100644 .pi/skills/impeccable/scripts/picker/assets/audience/verdigris-patina.png create mode 100644 .pi/skills/impeccable/scripts/picker/assets/brand/brand-commitments-foil.png create mode 100644 .pi/skills/impeccable/scripts/picker/assets/brand/brand-personality-foil.png create mode 100644 .pi/skills/impeccable/scripts/picker/assets/brand/brand-principles-foil.png create mode 100644 .pi/skills/impeccable/scripts/picker/assets/brand/brand-voice-foil.png create mode 100644 .pi/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-atelier-seal.png create mode 100644 .pi/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-material-reference.webp create mode 100644 .pi/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-primary-mark.png create mode 100644 .pi/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-seasonal-moodboard.webp create mode 100644 .pi/skills/impeccable/scripts/picker/assets/color/color-palette-foil.png create mode 100644 .pi/skills/impeccable/scripts/picker/assets/color/color-strategy-per-surface-foil.png create mode 100644 .pi/skills/impeccable/scripts/picker/assets/components/hanazono-ikebana-card.jpg create mode 100644 .pi/skills/impeccable/scripts/picker/assets/hero-dark.jpg create mode 100644 .pi/skills/impeccable/scripts/picker/assets/index.DQJ7Kjkj.css create mode 100644 .pi/skills/impeccable/scripts/picker/assets/index.astro_astro_type_script_index_0_lang.Cpn-pC_8.js create mode 100644 .pi/skills/impeccable/scripts/picker/assets/kinpaku-gold-leaf.jpg create mode 100644 .pi/skills/impeccable/scripts/picker/assets/material/material-boundaries-per-surface-foil.png create mode 100644 .pi/skills/impeccable/scripts/picker/assets/material/material-corners-per-surface-foil.png create mode 100644 .pi/skills/impeccable/scripts/picker/assets/material/material-depth-per-surface-foil.png create mode 100644 .pi/skills/impeccable/scripts/picker/assets/material/material-layout-structure-foil.png create mode 100644 .pi/skills/impeccable/scripts/picker/assets/product/product-clear-first-foil.png create mode 100644 .pi/skills/impeccable/scripts/picker/assets/product/product-operating-context-foil.png create mode 100644 .pi/skills/impeccable/scripts/picker/assets/product/product-positioning-foil.png create mode 100644 .pi/skills/impeccable/scripts/picker/assets/product/product-primary-conversion-foil.png create mode 100644 .pi/skills/impeccable/scripts/picker/assets/product/product-principles-foil.png create mode 100644 .pi/skills/impeccable/scripts/picker/assets/product/product-purpose-foil.png create mode 100644 .pi/skills/impeccable/scripts/picker/assets/product/product-surfaces-foil.png create mode 100644 .pi/skills/impeccable/scripts/picker/assets/typography/typography-pair-foil.png create mode 100644 .pi/skills/impeccable/scripts/picker/assets/typography/typography-type-scale-foil.png create mode 100644 .pi/skills/impeccable/scripts/picker/favicon.svg create mode 100644 .pi/skills/impeccable/scripts/picker/icon-packs.json create mode 100644 .pi/skills/impeccable/scripts/picker/index.html create mode 100644 .pi/skills/impeccable/scripts/visual-cues.mjs create mode 100644 .qoder/skills/impeccable/reference/design-context.md create mode 100644 .qoder/skills/impeccable/reference/image-api.md create mode 100644 .qoder/skills/impeccable/reference/visual-cues.md create mode 100644 .qoder/skills/impeccable/scripts/design-context-export.mjs create mode 100644 .qoder/skills/impeccable/scripts/design-context-import.mjs create mode 100644 .qoder/skills/impeccable/scripts/design-context/bindings.mjs create mode 100644 .qoder/skills/impeccable/scripts/design-context/portability.mjs create mode 100644 .qoder/skills/impeccable/scripts/design-context/session-routes.mjs create mode 100644 .qoder/skills/impeccable/scripts/design-context/store.mjs create mode 100644 .qoder/skills/impeccable/scripts/image-gen.mjs create mode 100644 .qoder/skills/impeccable/scripts/picker-doc-poll.mjs create mode 100644 .qoder/skills/impeccable/scripts/picker-doc-session.mjs create mode 100644 .qoder/skills/impeccable/scripts/picker-server.mjs create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/audience/audience-groups-foil.png create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/audience/emotional-journey-foil.png create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/audience/inclusion-foil.png create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/audience/kinpaku-gold-leaf.png create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/audience/needs-foil.png create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/audience/trust-triggers-foil.png create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/audience/verdigris-patina.png create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/brand/brand-commitments-foil.png create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/brand/brand-personality-foil.png create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/brand/brand-principles-foil.png create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/brand/brand-voice-foil.png create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-atelier-seal.png create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-material-reference.webp create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-primary-mark.png create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-seasonal-moodboard.webp create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/color/color-palette-foil.png create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/color/color-strategy-per-surface-foil.png create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/components/hanazono-ikebana-card.jpg create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/hero-dark.jpg create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/index.DQJ7Kjkj.css create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/index.astro_astro_type_script_index_0_lang.Cpn-pC_8.js create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/kinpaku-gold-leaf.jpg create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/material/material-boundaries-per-surface-foil.png create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/material/material-corners-per-surface-foil.png create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/material/material-depth-per-surface-foil.png create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/material/material-layout-structure-foil.png create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/product/product-clear-first-foil.png create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/product/product-operating-context-foil.png create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/product/product-positioning-foil.png create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/product/product-primary-conversion-foil.png create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/product/product-principles-foil.png create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/product/product-purpose-foil.png create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/product/product-surfaces-foil.png create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/typography/typography-pair-foil.png create mode 100644 .qoder/skills/impeccable/scripts/picker/assets/typography/typography-type-scale-foil.png create mode 100644 .qoder/skills/impeccable/scripts/picker/favicon.svg create mode 100644 .qoder/skills/impeccable/scripts/picker/icon-packs.json create mode 100644 .qoder/skills/impeccable/scripts/picker/index.html create mode 100644 .qoder/skills/impeccable/scripts/visual-cues.mjs create mode 100644 .rovodev/skills/impeccable/reference/design-context.md create mode 100644 .rovodev/skills/impeccable/reference/image-api.md create mode 100644 .rovodev/skills/impeccable/reference/visual-cues.md create mode 100644 .rovodev/skills/impeccable/scripts/design-context-export.mjs create mode 100644 .rovodev/skills/impeccable/scripts/design-context-import.mjs create mode 100644 .rovodev/skills/impeccable/scripts/design-context/bindings.mjs create mode 100644 .rovodev/skills/impeccable/scripts/design-context/portability.mjs create mode 100644 .rovodev/skills/impeccable/scripts/design-context/session-routes.mjs create mode 100644 .rovodev/skills/impeccable/scripts/design-context/store.mjs create mode 100644 .rovodev/skills/impeccable/scripts/image-gen.mjs create mode 100644 .rovodev/skills/impeccable/scripts/picker-doc-poll.mjs create mode 100644 .rovodev/skills/impeccable/scripts/picker-doc-session.mjs create mode 100644 .rovodev/skills/impeccable/scripts/picker-server.mjs create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/audience/audience-groups-foil.png create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/audience/emotional-journey-foil.png create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/audience/inclusion-foil.png create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/audience/kinpaku-gold-leaf.png create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/audience/needs-foil.png create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/audience/trust-triggers-foil.png create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/audience/verdigris-patina.png create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/brand/brand-commitments-foil.png create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/brand/brand-personality-foil.png create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/brand/brand-principles-foil.png create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/brand/brand-voice-foil.png create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-atelier-seal.png create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-material-reference.webp create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-primary-mark.png create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-seasonal-moodboard.webp create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/color/color-palette-foil.png create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/color/color-strategy-per-surface-foil.png create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/components/hanazono-ikebana-card.jpg create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/hero-dark.jpg create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/index.DQJ7Kjkj.css create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/index.astro_astro_type_script_index_0_lang.Cpn-pC_8.js create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/kinpaku-gold-leaf.jpg create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/material/material-boundaries-per-surface-foil.png create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/material/material-corners-per-surface-foil.png create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/material/material-depth-per-surface-foil.png create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/material/material-layout-structure-foil.png create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/product/product-clear-first-foil.png create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/product/product-operating-context-foil.png create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/product/product-positioning-foil.png create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/product/product-primary-conversion-foil.png create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/product/product-principles-foil.png create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/product/product-purpose-foil.png create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/product/product-surfaces-foil.png create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/typography/typography-pair-foil.png create mode 100644 .rovodev/skills/impeccable/scripts/picker/assets/typography/typography-type-scale-foil.png create mode 100644 .rovodev/skills/impeccable/scripts/picker/favicon.svg create mode 100644 .rovodev/skills/impeccable/scripts/picker/icon-packs.json create mode 100644 .rovodev/skills/impeccable/scripts/picker/index.html create mode 100644 .rovodev/skills/impeccable/scripts/visual-cues.mjs create mode 100644 .trae-cn/skills/impeccable/reference/design-context.md create mode 100644 .trae-cn/skills/impeccable/reference/image-api.md create mode 100644 .trae-cn/skills/impeccable/reference/visual-cues.md create mode 100644 .trae-cn/skills/impeccable/scripts/design-context-export.mjs create mode 100644 .trae-cn/skills/impeccable/scripts/design-context-import.mjs create mode 100644 .trae-cn/skills/impeccable/scripts/design-context/bindings.mjs create mode 100644 .trae-cn/skills/impeccable/scripts/design-context/portability.mjs create mode 100644 .trae-cn/skills/impeccable/scripts/design-context/session-routes.mjs create mode 100644 .trae-cn/skills/impeccable/scripts/design-context/store.mjs create mode 100644 .trae-cn/skills/impeccable/scripts/image-gen.mjs create mode 100644 .trae-cn/skills/impeccable/scripts/picker-doc-poll.mjs create mode 100644 .trae-cn/skills/impeccable/scripts/picker-doc-session.mjs create mode 100644 .trae-cn/skills/impeccable/scripts/picker-server.mjs create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/audience/audience-groups-foil.png create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/audience/emotional-journey-foil.png create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/audience/inclusion-foil.png create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/audience/kinpaku-gold-leaf.png create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/audience/needs-foil.png create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/audience/trust-triggers-foil.png create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/audience/verdigris-patina.png create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/brand/brand-commitments-foil.png create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/brand/brand-personality-foil.png create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/brand/brand-principles-foil.png create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/brand/brand-voice-foil.png create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-atelier-seal.png create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-material-reference.webp create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-primary-mark.png create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-seasonal-moodboard.webp create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/color/color-palette-foil.png create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/color/color-strategy-per-surface-foil.png create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/components/hanazono-ikebana-card.jpg create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/hero-dark.jpg create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/index.DQJ7Kjkj.css create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/index.astro_astro_type_script_index_0_lang.Cpn-pC_8.js create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/kinpaku-gold-leaf.jpg create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/material/material-boundaries-per-surface-foil.png create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/material/material-corners-per-surface-foil.png create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/material/material-depth-per-surface-foil.png create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/material/material-layout-structure-foil.png create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/product/product-clear-first-foil.png create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/product/product-operating-context-foil.png create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/product/product-positioning-foil.png create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/product/product-primary-conversion-foil.png create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/product/product-principles-foil.png create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/product/product-purpose-foil.png create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/product/product-surfaces-foil.png create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/typography/typography-pair-foil.png create mode 100644 .trae-cn/skills/impeccable/scripts/picker/assets/typography/typography-type-scale-foil.png create mode 100644 .trae-cn/skills/impeccable/scripts/picker/favicon.svg create mode 100644 .trae-cn/skills/impeccable/scripts/picker/icon-packs.json create mode 100644 .trae-cn/skills/impeccable/scripts/picker/index.html create mode 100644 .trae-cn/skills/impeccable/scripts/visual-cues.mjs create mode 100644 .trae/skills/impeccable/reference/design-context.md create mode 100644 .trae/skills/impeccable/reference/image-api.md create mode 100644 .trae/skills/impeccable/reference/visual-cues.md create mode 100644 .trae/skills/impeccable/scripts/design-context-export.mjs create mode 100644 .trae/skills/impeccable/scripts/design-context-import.mjs create mode 100644 .trae/skills/impeccable/scripts/design-context/bindings.mjs create mode 100644 .trae/skills/impeccable/scripts/design-context/portability.mjs create mode 100644 .trae/skills/impeccable/scripts/design-context/session-routes.mjs create mode 100644 .trae/skills/impeccable/scripts/design-context/store.mjs create mode 100644 .trae/skills/impeccable/scripts/image-gen.mjs create mode 100644 .trae/skills/impeccable/scripts/picker-doc-poll.mjs create mode 100644 .trae/skills/impeccable/scripts/picker-doc-session.mjs create mode 100644 .trae/skills/impeccable/scripts/picker-server.mjs create mode 100644 .trae/skills/impeccable/scripts/picker/assets/audience/audience-groups-foil.png create mode 100644 .trae/skills/impeccable/scripts/picker/assets/audience/emotional-journey-foil.png create mode 100644 .trae/skills/impeccable/scripts/picker/assets/audience/inclusion-foil.png create mode 100644 .trae/skills/impeccable/scripts/picker/assets/audience/kinpaku-gold-leaf.png create mode 100644 .trae/skills/impeccable/scripts/picker/assets/audience/needs-foil.png create mode 100644 .trae/skills/impeccable/scripts/picker/assets/audience/trust-triggers-foil.png create mode 100644 .trae/skills/impeccable/scripts/picker/assets/audience/verdigris-patina.png create mode 100644 .trae/skills/impeccable/scripts/picker/assets/brand/brand-commitments-foil.png create mode 100644 .trae/skills/impeccable/scripts/picker/assets/brand/brand-personality-foil.png create mode 100644 .trae/skills/impeccable/scripts/picker/assets/brand/brand-principles-foil.png create mode 100644 .trae/skills/impeccable/scripts/picker/assets/brand/brand-voice-foil.png create mode 100644 .trae/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-atelier-seal.png create mode 100644 .trae/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-material-reference.webp create mode 100644 .trae/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-primary-mark.png create mode 100644 .trae/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-seasonal-moodboard.webp create mode 100644 .trae/skills/impeccable/scripts/picker/assets/color/color-palette-foil.png create mode 100644 .trae/skills/impeccable/scripts/picker/assets/color/color-strategy-per-surface-foil.png create mode 100644 .trae/skills/impeccable/scripts/picker/assets/components/hanazono-ikebana-card.jpg create mode 100644 .trae/skills/impeccable/scripts/picker/assets/hero-dark.jpg create mode 100644 .trae/skills/impeccable/scripts/picker/assets/index.DQJ7Kjkj.css create mode 100644 .trae/skills/impeccable/scripts/picker/assets/index.astro_astro_type_script_index_0_lang.Cpn-pC_8.js create mode 100644 .trae/skills/impeccable/scripts/picker/assets/kinpaku-gold-leaf.jpg create mode 100644 .trae/skills/impeccable/scripts/picker/assets/material/material-boundaries-per-surface-foil.png create mode 100644 .trae/skills/impeccable/scripts/picker/assets/material/material-corners-per-surface-foil.png create mode 100644 .trae/skills/impeccable/scripts/picker/assets/material/material-depth-per-surface-foil.png create mode 100644 .trae/skills/impeccable/scripts/picker/assets/material/material-layout-structure-foil.png create mode 100644 .trae/skills/impeccable/scripts/picker/assets/product/product-clear-first-foil.png create mode 100644 .trae/skills/impeccable/scripts/picker/assets/product/product-operating-context-foil.png create mode 100644 .trae/skills/impeccable/scripts/picker/assets/product/product-positioning-foil.png create mode 100644 .trae/skills/impeccable/scripts/picker/assets/product/product-primary-conversion-foil.png create mode 100644 .trae/skills/impeccable/scripts/picker/assets/product/product-principles-foil.png create mode 100644 .trae/skills/impeccable/scripts/picker/assets/product/product-purpose-foil.png create mode 100644 .trae/skills/impeccable/scripts/picker/assets/product/product-surfaces-foil.png create mode 100644 .trae/skills/impeccable/scripts/picker/assets/typography/typography-pair-foil.png create mode 100644 .trae/skills/impeccable/scripts/picker/assets/typography/typography-type-scale-foil.png create mode 100644 .trae/skills/impeccable/scripts/picker/favicon.svg create mode 100644 .trae/skills/impeccable/scripts/picker/icon-packs.json create mode 100644 .trae/skills/impeccable/scripts/picker/index.html create mode 100644 .trae/skills/impeccable/scripts/visual-cues.mjs create mode 100644 .vibe/skills/impeccable/reference/design-context.md create mode 100644 .vibe/skills/impeccable/reference/image-api.md create mode 100644 .vibe/skills/impeccable/reference/visual-cues.md create mode 100644 .vibe/skills/impeccable/scripts/design-context-export.mjs create mode 100644 .vibe/skills/impeccable/scripts/design-context-import.mjs create mode 100644 .vibe/skills/impeccable/scripts/design-context/bindings.mjs create mode 100644 .vibe/skills/impeccable/scripts/design-context/portability.mjs create mode 100644 .vibe/skills/impeccable/scripts/design-context/session-routes.mjs create mode 100644 .vibe/skills/impeccable/scripts/design-context/store.mjs create mode 100644 .vibe/skills/impeccable/scripts/image-gen.mjs create mode 100644 .vibe/skills/impeccable/scripts/picker-doc-poll.mjs create mode 100644 .vibe/skills/impeccable/scripts/picker-doc-session.mjs create mode 100644 .vibe/skills/impeccable/scripts/picker-server.mjs create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/audience/audience-groups-foil.png create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/audience/emotional-journey-foil.png create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/audience/inclusion-foil.png create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/audience/kinpaku-gold-leaf.png create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/audience/needs-foil.png create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/audience/trust-triggers-foil.png create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/audience/verdigris-patina.png create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/brand/brand-commitments-foil.png create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/brand/brand-personality-foil.png create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/brand/brand-principles-foil.png create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/brand/brand-voice-foil.png create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-atelier-seal.png create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-material-reference.webp create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-primary-mark.png create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-seasonal-moodboard.webp create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/color/color-palette-foil.png create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/color/color-strategy-per-surface-foil.png create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/components/hanazono-ikebana-card.jpg create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/hero-dark.jpg create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/index.DQJ7Kjkj.css create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/index.astro_astro_type_script_index_0_lang.Cpn-pC_8.js create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/kinpaku-gold-leaf.jpg create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/material/material-boundaries-per-surface-foil.png create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/material/material-corners-per-surface-foil.png create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/material/material-depth-per-surface-foil.png create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/material/material-layout-structure-foil.png create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/product/product-clear-first-foil.png create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/product/product-operating-context-foil.png create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/product/product-positioning-foil.png create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/product/product-primary-conversion-foil.png create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/product/product-principles-foil.png create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/product/product-purpose-foil.png create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/product/product-surfaces-foil.png create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/typography/typography-pair-foil.png create mode 100644 .vibe/skills/impeccable/scripts/picker/assets/typography/typography-type-scale-foil.png create mode 100644 .vibe/skills/impeccable/scripts/picker/favicon.svg create mode 100644 .vibe/skills/impeccable/scripts/picker/icon-packs.json create mode 100644 .vibe/skills/impeccable/scripts/picker/index.html create mode 100644 .vibe/skills/impeccable/scripts/visual-cues.mjs create mode 100644 plugin/skills/impeccable/reference/design-context.md create mode 100644 plugin/skills/impeccable/reference/image-api.md create mode 100644 plugin/skills/impeccable/reference/visual-cues.md create mode 100644 plugin/skills/impeccable/scripts/design-context-export.mjs create mode 100644 plugin/skills/impeccable/scripts/design-context-import.mjs create mode 100644 plugin/skills/impeccable/scripts/design-context/bindings.mjs create mode 100644 plugin/skills/impeccable/scripts/design-context/portability.mjs create mode 100644 plugin/skills/impeccable/scripts/design-context/session-routes.mjs create mode 100644 plugin/skills/impeccable/scripts/design-context/store.mjs create mode 100644 plugin/skills/impeccable/scripts/image-gen.mjs create mode 100644 plugin/skills/impeccable/scripts/picker-doc-poll.mjs create mode 100644 plugin/skills/impeccable/scripts/picker-doc-session.mjs create mode 100644 plugin/skills/impeccable/scripts/picker-server.mjs create mode 100644 plugin/skills/impeccable/scripts/picker/assets/audience/audience-groups-foil.png create mode 100644 plugin/skills/impeccable/scripts/picker/assets/audience/emotional-journey-foil.png create mode 100644 plugin/skills/impeccable/scripts/picker/assets/audience/inclusion-foil.png create mode 100644 plugin/skills/impeccable/scripts/picker/assets/audience/kinpaku-gold-leaf.png create mode 100644 plugin/skills/impeccable/scripts/picker/assets/audience/needs-foil.png create mode 100644 plugin/skills/impeccable/scripts/picker/assets/audience/trust-triggers-foil.png create mode 100644 plugin/skills/impeccable/scripts/picker/assets/audience/verdigris-patina.png create mode 100644 plugin/skills/impeccable/scripts/picker/assets/brand/brand-commitments-foil.png create mode 100644 plugin/skills/impeccable/scripts/picker/assets/brand/brand-personality-foil.png create mode 100644 plugin/skills/impeccable/scripts/picker/assets/brand/brand-principles-foil.png create mode 100644 plugin/skills/impeccable/scripts/picker/assets/brand/brand-voice-foil.png create mode 100644 plugin/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-atelier-seal.png create mode 100644 plugin/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-material-reference.webp create mode 100644 plugin/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-primary-mark.png create mode 100644 plugin/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-seasonal-moodboard.webp create mode 100644 plugin/skills/impeccable/scripts/picker/assets/color/color-palette-foil.png create mode 100644 plugin/skills/impeccable/scripts/picker/assets/color/color-strategy-per-surface-foil.png create mode 100644 plugin/skills/impeccable/scripts/picker/assets/components/hanazono-ikebana-card.jpg create mode 100644 plugin/skills/impeccable/scripts/picker/assets/hero-dark.jpg create mode 100644 plugin/skills/impeccable/scripts/picker/assets/index.DQJ7Kjkj.css create mode 100644 plugin/skills/impeccable/scripts/picker/assets/index.astro_astro_type_script_index_0_lang.Cpn-pC_8.js create mode 100644 plugin/skills/impeccable/scripts/picker/assets/kinpaku-gold-leaf.jpg create mode 100644 plugin/skills/impeccable/scripts/picker/assets/material/material-boundaries-per-surface-foil.png create mode 100644 plugin/skills/impeccable/scripts/picker/assets/material/material-corners-per-surface-foil.png create mode 100644 plugin/skills/impeccable/scripts/picker/assets/material/material-depth-per-surface-foil.png create mode 100644 plugin/skills/impeccable/scripts/picker/assets/material/material-layout-structure-foil.png create mode 100644 plugin/skills/impeccable/scripts/picker/assets/product/product-clear-first-foil.png create mode 100644 plugin/skills/impeccable/scripts/picker/assets/product/product-operating-context-foil.png create mode 100644 plugin/skills/impeccable/scripts/picker/assets/product/product-positioning-foil.png create mode 100644 plugin/skills/impeccable/scripts/picker/assets/product/product-primary-conversion-foil.png create mode 100644 plugin/skills/impeccable/scripts/picker/assets/product/product-principles-foil.png create mode 100644 plugin/skills/impeccable/scripts/picker/assets/product/product-purpose-foil.png create mode 100644 plugin/skills/impeccable/scripts/picker/assets/product/product-surfaces-foil.png create mode 100644 plugin/skills/impeccable/scripts/picker/assets/typography/typography-pair-foil.png create mode 100644 plugin/skills/impeccable/scripts/picker/assets/typography/typography-type-scale-foil.png create mode 100644 plugin/skills/impeccable/scripts/picker/favicon.svg create mode 100644 plugin/skills/impeccable/scripts/picker/icon-packs.json create mode 100644 plugin/skills/impeccable/scripts/picker/index.html create mode 100644 plugin/skills/impeccable/scripts/visual-cues.mjs diff --git a/.agent/skills/impeccable/SKILL.md b/.agent/skills/impeccable/SKILL.md index f5da1671f..1ed43ae79 100644 --- a/.agent/skills/impeccable/SKILL.md +++ b/.agent/skills/impeccable/SKILL.md @@ -47,6 +47,7 @@ Choose the mode from the requested surface, not the product, and persist it only | `init` | Build | Capture durable product context in PRODUCT.md | [reference/init.md](reference/init.md) | | `document` | Build | Generate DESIGN.md from existing project code | [reference/document.md](reference/document.md) | | `extract [target]` | Build | Pull reusable tokens and components into design system | [reference/extract.md](reference/extract.md) | +| `design-context [open/edit/export/import]` | Build | Reopen, revise, export, or import the design interview and its document | [reference/design-context.md](reference/design-context.md) | | `critique [target]` | Evaluate | UX design review with heuristic scoring | [reference/critique.md](reference/critique.md) | | `audit [target]` | Evaluate | Technical quality checks (a11y, perf, responsive) | [reference/audit.md](reference/audit.md) · native: [reference/audit.native.md](reference/audit.native.md) | | `polish [target]` | Refine | Final quality pass before shipping | [reference/polish.md](reference/polish.md) | diff --git a/.agent/skills/impeccable/reference/audit.md b/.agent/skills/impeccable/reference/audit.md index 474af4154..1d4e9e3fe 100644 --- a/.agent/skills/impeccable/reference/audit.md +++ b/.agent/skills/impeccable/reference/audit.md @@ -99,7 +99,7 @@ For each issue, document: - **Impact**: How it affects users - **WCAG/Standard**: Which standard it violates (if applicable) - **Recommendation**: How to fix it -- **Suggested command**: Which command to use (prefer: /impeccable adapt, /impeccable animate, /impeccable audit, /impeccable bolder, /impeccable clarify, /impeccable colorize, /impeccable critique, /impeccable delight, /impeccable distill, /impeccable document, /impeccable harden, /impeccable layout, /impeccable onboard, /impeccable optimize, /impeccable overdrive, /impeccable polish, /impeccable quieter, /impeccable shape, /impeccable typeset) +- **Suggested command**: Which command to use (prefer: /impeccable adapt, /impeccable animate, /impeccable audit, /impeccable bolder, /impeccable clarify, /impeccable colorize, /impeccable critique, /impeccable design-context, /impeccable delight, /impeccable distill, /impeccable document, /impeccable harden, /impeccable layout, /impeccable onboard, /impeccable optimize, /impeccable overdrive, /impeccable polish, /impeccable quieter, /impeccable shape, /impeccable typeset) ### Patterns & Systemic Issues @@ -118,7 +118,7 @@ List recommended commands in priority order (P0 first, then P1, then P2): 1. **[P?] `/command-name`**: Brief description (specific context from audit findings) 2. **[P?] `/command-name`**: Brief description (specific context) -**Rules**: Only recommend commands from: /impeccable adapt, /impeccable animate, /impeccable audit, /impeccable bolder, /impeccable clarify, /impeccable colorize, /impeccable critique, /impeccable delight, /impeccable distill, /impeccable document, /impeccable harden, /impeccable layout, /impeccable onboard, /impeccable optimize, /impeccable overdrive, /impeccable polish, /impeccable quieter, /impeccable shape, /impeccable typeset. Map findings to the most appropriate command. End with `/impeccable polish` as the final step if any fixes were recommended. +**Rules**: Only recommend commands from: /impeccable adapt, /impeccable animate, /impeccable audit, /impeccable bolder, /impeccable clarify, /impeccable colorize, /impeccable critique, /impeccable design-context, /impeccable delight, /impeccable distill, /impeccable document, /impeccable harden, /impeccable layout, /impeccable onboard, /impeccable optimize, /impeccable overdrive, /impeccable polish, /impeccable quieter, /impeccable shape, /impeccable typeset. Map findings to the most appropriate command. End with `/impeccable polish` as the final step if any fixes were recommended. After presenting the summary, tell the user: diff --git a/.agent/skills/impeccable/reference/audit.native.md b/.agent/skills/impeccable/reference/audit.native.md index 0126fa157..562435d74 100644 --- a/.agent/skills/impeccable/reference/audit.native.md +++ b/.agent/skills/impeccable/reference/audit.native.md @@ -102,7 +102,7 @@ For each issue, document: - **Impact**: How it affects users - **Guideline**: The HIG / Material rule it violates (if applicable) - **Recommendation**: How to fix it -- **Suggested command**: Which command to use (prefer: /impeccable adapt, /impeccable animate, /impeccable audit, /impeccable bolder, /impeccable clarify, /impeccable colorize, /impeccable critique, /impeccable delight, /impeccable distill, /impeccable document, /impeccable harden, /impeccable layout, /impeccable onboard, /impeccable optimize, /impeccable overdrive, /impeccable polish, /impeccable quieter, /impeccable shape, /impeccable typeset) +- **Suggested command**: Which command to use (prefer: /impeccable adapt, /impeccable animate, /impeccable audit, /impeccable bolder, /impeccable clarify, /impeccable colorize, /impeccable critique, /impeccable design-context, /impeccable delight, /impeccable distill, /impeccable document, /impeccable harden, /impeccable layout, /impeccable onboard, /impeccable optimize, /impeccable overdrive, /impeccable polish, /impeccable quieter, /impeccable shape, /impeccable typeset) ### Patterns & Systemic Issues @@ -121,7 +121,7 @@ List recommended commands in priority order (P0 first, then P1, then P2): 1. **[P?] `/command-name`**: Brief description (specific context from audit findings) 2. **[P?] `/command-name`**: Brief description (specific context) -**Rules**: Only recommend commands from: /impeccable adapt, /impeccable animate, /impeccable audit, /impeccable bolder, /impeccable clarify, /impeccable colorize, /impeccable critique, /impeccable delight, /impeccable distill, /impeccable document, /impeccable harden, /impeccable layout, /impeccable onboard, /impeccable optimize, /impeccable overdrive, /impeccable polish, /impeccable quieter, /impeccable shape, /impeccable typeset. Map findings to the most appropriate command. End with `/impeccable polish` as the final step if any fixes were recommended. +**Rules**: Only recommend commands from: /impeccable adapt, /impeccable animate, /impeccable audit, /impeccable bolder, /impeccable clarify, /impeccable colorize, /impeccable critique, /impeccable design-context, /impeccable delight, /impeccable distill, /impeccable document, /impeccable harden, /impeccable layout, /impeccable onboard, /impeccable optimize, /impeccable overdrive, /impeccable polish, /impeccable quieter, /impeccable shape, /impeccable typeset. Map findings to the most appropriate command. End with `/impeccable polish` as the final step if any fixes were recommended. After presenting the summary, tell the user: diff --git a/.agent/skills/impeccable/reference/craft-floor.md b/.agent/skills/impeccable/reference/craft-floor.md index 9653b9808..f6ca25d6a 100644 --- a/.agent/skills/impeccable/reference/craft-floor.md +++ b/.agent/skills/impeccable/reference/craft-floor.md @@ -2,6 +2,8 @@ Load this after the direction is settled, and build without announcing the checklist. A pinned brief or the committed visual world overrides anything here; your own habit does not. When the design hook is active it already enforces the mechanical checks below as you edit: act on its findings instead of re-auditing each rule. +A wholesale file rewrite, after a hook block or an error recovery, starts by re-opening DESIGN.md and the token sheet, so the new file restates the recorded system rather than your memory of it; memory is where a display token becomes a hand-tuned clamp. The ranking lives in [new-work.md](new-work.md): the comp rules composition; the world rules material, and a rewrite changes neither. + ## Verify Each of these is a check on the built result, not an intention. Run them together in the batched inspection rounds, not as separate screenshot trips; the checks share one render. @@ -11,6 +13,7 @@ Each of these is a check on the built result, not an intention. Run them togethe - **Spacing:** tight groups, generous separation, more space above a heading than below it. Read the computed values. - **Type:** body measure 65–75ch, display max 6rem, tracking floor -0.04em, balanced headings, obvious scale and weight steps. Run the real copy at every breakpoint and fix what overflows. - **Motion:** one authored moment, not scattered effects and not one identical entrance on every section. Exponential ease-out from an already-visible default. Reach past transform and opacity: blur, backdrop-filter, clip-path, mask, and shadow belong to the palette when they stay smooth. +- **Tokens:** a size or color a step from a defined token takes the token: `0.82rem` beside a `0.8rem` token is the token, not a new size, and inline SVG or JS-drawn strokes take `var(--role)` or `currentColor`. Wire or remove what nothing consumes before finish; done means every defined custom property is consumed by at least one rule. - **States:** hover, disabled, loading, error, empty. Plus real content, working controls, responsive composition, keyboard focus. - **Browser surfaces:** the parts you did not draw still carry the design. Text selection, the caret, custom scrollbars, focus rings, underline offset, and the numerals in tabular data all ship with browser defaults that belong to no design system. Theme them from the palette. This is the cheapest signal that a page was built rather than assembled, and the one models skip most reliably. - **Copy:** the product's own language. Controls name their action; errors name the problem and the recovery. @@ -37,7 +40,7 @@ Surface habits: - Sparklines, progress rings, and soft-shadowed rounded rectangles standing in for content. - Monospace as a costume for "technical" rather than for code, data, or measurement. - A system display face (Impact, Arial Black, the platform sans) as the display voice of an own-world page. Source and self-host a face whose character matches the approved lettering; the closest installed font is a failure, not a fallback. -- Unicode glyphs or emoji standing in for an icon system. Icons are drawn, from a real library or authored SVG, in one consistent stroke and weight. +- Unicode glyphs or emoji standing in for an icon system. Icons are drawn, from a real library or authored SVG, in one consistent stroke and weight. When a pack icon fails to fetch, take the nearest icon from the same pack, jsDelivr as the fallback CDN; drawing a replacement from scratch is an exception the user signs off on, so the one-pack promise survives a failed fetch. - Geometric masks standing in for organic contours. A circle, polygon, or radial-gradient cutout approximating a photographic subject's edge is the cheap version of the effect and reads worse than omitting it. Derive an alpha matte from the actual image, or produce a cut-out asset. - Light or dark picked by category. Pick it from the use scene: who, where, under what ambient light. diff --git a/.agent/skills/impeccable/reference/critique.md b/.agent/skills/impeccable/reference/critique.md index 187a8680c..36a2c489b 100644 --- a/.agent/skills/impeccable/reference/critique.md +++ b/.agent/skills/impeccable/reference/critique.md @@ -142,7 +142,7 @@ For each issue, tag with **P0-P3 severity** (see [Issue Severity below](#issue-s - **[P?] What**: Name the problem clearly - **Why it matters**: How this hurts users or undermines goals - **Fix**: What to do about it (be concrete) -- **Suggested command**: Which command could address this (from: /impeccable adapt, /impeccable animate, /impeccable audit, /impeccable bolder, /impeccable clarify, /impeccable colorize, /impeccable critique, /impeccable delight, /impeccable distill, /impeccable document, /impeccable harden, /impeccable layout, /impeccable onboard, /impeccable optimize, /impeccable overdrive, /impeccable polish, /impeccable quieter, /impeccable shape, /impeccable typeset) +- **Suggested command**: Which command could address this (from: /impeccable adapt, /impeccable animate, /impeccable audit, /impeccable bolder, /impeccable clarify, /impeccable colorize, /impeccable critique, /impeccable design-context, /impeccable delight, /impeccable distill, /impeccable document, /impeccable harden, /impeccable layout, /impeccable onboard, /impeccable optimize, /impeccable overdrive, /impeccable polish, /impeccable quieter, /impeccable shape, /impeccable typeset) #### Persona Red Flags > *Consult the [Personas reference](#persona-based-design-testing) below.* @@ -257,7 +257,7 @@ List recommended commands in priority order, based on the user's answers: ... **Rules for recommendations**: -- Only recommend commands from: /impeccable adapt, /impeccable animate, /impeccable audit, /impeccable bolder, /impeccable clarify, /impeccable colorize, /impeccable critique, /impeccable delight, /impeccable distill, /impeccable document, /impeccable harden, /impeccable layout, /impeccable onboard, /impeccable optimize, /impeccable overdrive, /impeccable polish, /impeccable quieter, /impeccable shape, /impeccable typeset +- Only recommend commands from: /impeccable adapt, /impeccable animate, /impeccable audit, /impeccable bolder, /impeccable clarify, /impeccable colorize, /impeccable critique, /impeccable design-context, /impeccable delight, /impeccable distill, /impeccable document, /impeccable harden, /impeccable layout, /impeccable onboard, /impeccable optimize, /impeccable overdrive, /impeccable polish, /impeccable quieter, /impeccable shape, /impeccable typeset - Order by the user's stated priorities first, then by impact - Each item's description should carry enough context that the command knows what to focus on - Map each Priority Issue to the appropriate command diff --git a/.agent/skills/impeccable/reference/degraded/finish-reviewer.md b/.agent/skills/impeccable/reference/degraded/finish-reviewer.md index e2a4fd130..bb1e2f1bc 100644 --- a/.agent/skills/impeccable/reference/degraded/finish-reviewer.md +++ b/.agent/skills/impeccable/reference/degraded/finish-reviewer.md @@ -16,9 +16,9 @@ Expect: the original request; the confirmed user answers; the artifact path(s); ## Checks, in order 0. **Evidence.** Before any other check, verify the required captures exist and every capture is valid. Required: the platform's full viewport set (web: `desktop.png` and `mobile.png`; native: one capture per shipped device class), plus every capture the calling brief names as required, a reported user viewport (`user-.png`) included. Valid: no black or blank regions, content matching what the filename claims (a visit capture showing the About section is invalid), the document top visible where the file claims a full page, dimensions that make sense for the named viewport. A required capture that is absent fails exactly like one that is malformed: a viewport nobody captured is a viewport nobody inspected, and it cannot ship. When any capture fails, the whole review changes shape: return `disposition: recapture` as the first line, then one section, `recapture`, listing each missing or invalid file and what a valid capture of it shows, and stop. Never build a matrix on malformed evidence; a verdict derived from a broken capture launders the breakage into an approval, and the parent owes you a full re-review on valid captures, not a scoring round. -1. **Persistence.** PRODUCT.md exists. On a comp-led build, `.impeccable/review/hero-repro.png` exists: the hero reproduction checkpoint's capture at the comp's own dimensions; its absence means the reproduction phase ran unproven, a material finding. When DESIGN.md predates this build (an extension or redesign), it matches the built world; on a new world it is written after this review by the documenter, so its absence here is not a finding. When comp-round comps exist under `.impeccable/mocks/`, an approval record exists too: the surface brief naming the approved comp, or an `approved` flag in its sidecar. Comp-round comps with no recorded pick mean the approval point was skipped, a material finding. Files under `.impeccable/mocks/decision/` are exempt: they are the direction round's dealt hand, produced before any comp round, and imply no approval whatever the build path; a code-led build has no comp round at all. +1. **Persistence.** PRODUCT.md exists. On a comp-led build, `.impeccable/review/hero-repro.png` exists: the hero reproduction checkpoint's capture at the comp's own dimensions; its absence means the reproduction phase ran unproven, a material finding. When a seed or prior DESIGN.md predates this build, it matches the built world, and "matches" is evidence you grep, not an impression: custom properties DESIGN.md defines that no rule consumes, literals sitting a step from a defined token, geometry a named rule bans (a 999px pill against a Slightly Soft rule). Each hit is a material finding under the craft floor's token rule, and an approved comp excuses none of them: the comp rules composition; the world rules material. On a new world with no seed, DESIGN.md is written after this review by the documenter, so its absence here is not a finding. When comp-round comps exist under `.impeccable/mocks/`, an approval record exists too: the surface brief naming the approved comp, or an `approved` flag in its sidecar. Comp-round comps with no recorded pick mean the approval point was skipped, a material finding. Files under `.impeccable/mocks/decision/` are exempt: they are the direction round's dealt hand, produced before any comp round, and imply no approval whatever the build path; a code-led build has no comp round at all. 2. **Fidelity.** Against your own element inventory of the approved comp, never against the contract's summary of it: topology, reading order, focal scale, overlaps and z-order, density, signature geometry, the primary action's treatment (a CTA the comp physically works, dissolves, or stamps is a signature element; its plain-rectangle rendition is contradicted), navigation items and icons, headline levels and scale relationships. Classify every salient element: match, acceptable adaptation, missing, contradicted, or added without approval. Three rows are mandatory in every matrix. TYPE: the display lettering's character, compression, width, weight, contrast, terminals, against the comp's; a face of a different character is contradicted however the layout matches. MATERIAL: an element rendered as flat CSS or clean vector where the comp shows painted, textured, dimensional, or photographic material is contradicted regardless of placement; medium is part of the promise. GROUND: the page field's value and temperature against the comp's, sampled from pixels on both sides when tooling allows rather than judged from memory, and read as the net on-screen result where a texture or tile paints over the base color; a ground warmer or cooler than the comp's is contradicted however faithfully the layout matches, and drift toward the rendition prior (warm cream on light grounds, blue-black slate on dark) is the direction to hunt. With no approved comp, TYPE and MATERIAL do not lapse: judge them against the contract's OWN-WORLD and the world's real materials, and treat faked physicality (CSS bevels, embossing, stamped-metal or chalk effects imitating a material the page never renders) as contradicted on its face; imitation material is the single most reliable mark of machine-made design. GROUND narrows rather than lapses: with no comp to sample, a color OWN-WORLD names is the target and the same warmer-or-cooler judgment applies; when OWN-WORLD names none, there is no GROUND authority, and the review says so in place of a verdict, because a target the reviewer invents turns the check into taste. A critique-reference comp on such a build is provocation, not spec: no element matrix, no adaptation citations, no asset obligations; its one contribution is what the image dared that the build did not, and dares worth adopting enter material_fixes as ordinary ordered fixes. An adaptation counts as intentional only when it cites the user answer, surface brief, accessibility need, or product truth that forced it; an uncited deviation is a defect. A missing signature element, a changed topology, or content added without approval fails fidelity and outranks every craft point in material_fixes. When MATERIAL is contradicted on the focal element, or contradiction is the page rather than the exception, stop ordering repairs: make the first material fix a rebuild directive naming the comp regions to re-derive and the assets to produce; a list of patches against a rejected page launders the rejection into an approval. A fix that requires producing an asset says so explicitly ("produce: as a raster asset"), never phrased as a style adjustment the parent will answer with CSS. The comp is the spec for composition, topology, element inventory, density, lettering character, and material; it is not a pixel spec for semantics, accessibility, or responsive reflow, and that allowance covers translation, never replacement. -3. **Ceiling.** Against the QUALITY BAR card: name the world's native devices the build left unused, frame, depth, lettering treatment, ornament density, motion. The card governs commitment and finish, never composition. +3. **Ceiling.** Against the QUALITY BAR card: name the world's native devices the build left unused, frame, depth, lettering treatment, ornament density, motion. A committed motion energy shows up as eased state changes in the shipped code; a recorded energy with zero transitions is a finding. The card governs commitment and finish, never composition. 4. **Contract, promise by promise.** First verify FORM carries the seed key the concept roll printed; a contract with no seed key, or one the parent cannot corroborate, means the roll was skipped, a material fix ahead of any craft point. Then, for each of the five blocks: does the render keep the promise? Apply the memory test to the first viewport. 5. **Truth.** Demonstration data authored and labeled synthetic; no invented commercial claims; unanswered claims present as marked placeholders, not omissions. Every image-native region of the approved comp shipped as a real asset, not a gradient standing in for one, and every produced asset visibly present in the screenshots; an asset applied at near-zero opacity or buried behind other paint is a compliance token, not a shipped material. 6. **Floor.** Read the craft floor's Refuse list and hold the screenshots against it: kickers and eyebrows, hard offset shadows outside a neobrutalist world, glyph icons, system display faces, gradient text, side stripes, and the rest. A banned element is a material fix even when it matches nothing in the comp: the builder loaded the same ban before writing it, and fidelity to a comp cannot authorize what the floor refuses. The parent's hook findings cover this mechanically where hooks run; this check exists because hookless harnesses reach you with none, and the last two live sessions shipped five kickers past a reviewer that never looked. diff --git a/.agent/skills/impeccable/reference/design-context.md b/.agent/skills/impeccable/reference/design-context.md new file mode 100644 index 000000000..ad1a745cb --- /dev/null +++ b/.agent/skills/impeccable/reference/design-context.md @@ -0,0 +1,93 @@ +# Design Context + +Loaded by `/impeccable design-context`. Owns the design interview record, the document built from it, and its portable form. The interview itself is created by `/impeccable document` seed mode; this command is everything afterwards. + +## Where it lives + +One store, under the project root: + +```text +.impeccable/design-context/ + context.json the chat half of the interview: product, audience, brand, interview + answers.json the questionnaire's decisions + assets/ brand files the user supplied + fonts/ font faces the user uploaded + cue.png the chosen cue image, copied at submit + runtime/ session.json, journal.jsonl, draft.json (local, gitignored) + exports/ the written-out forms (local, gitignored) +``` + +`.impeccable/visual-cues/` is separate on purpose: it is the generation workspace, regenerable and gitignored, and the document no longer depends on it. The store is the user's own record and is theirs to commit. + +## No argument + +Report status in two lines, then act: + +- Whether `answers.json` exists, and when it was last written. +- Whether a draft is waiting (`runtime/draft.json`), whether DESIGN.md is seeded, and whether a session is live (`runtime/session.json` naming a running process). + +With answers on disk, do `open`. Without them, say the design context is created by the questionnaire and offer `/impeccable document`. Never start the questionnaire unasked. + +## open + +Reopen the document, live for edits. + +Run `node .agent/skills/impeccable/scripts/picker-server.mjs --doc` from the project root as a foreground command and parse its `PICKER_URL` line. Open it and wait exactly as [visual-cues.md](visual-cues.md)'s launch paragraph does: its harness-browser ladder (in-IDE browser first, then another browser tool, then the system opener, then telling the user the URL) and its wait-on-the-foreground-process rule. Skip everything earlier in its Step 7: the cue announcement and the `modes` and `context` writes belong to a run that is generating cues, and this one is not. + +Then enter the document edit loop below. The process exiting is the signal: + +- `DOC_SESSION_ENDED` and exit 0: the document was closed. Say so in one line; the loop is over. +- Exit 2: it timed out or was never opened. Say it can be reopened with the same command, and never relaunch unprompted. +- Exit 1: no interview exists. Route to `/impeccable document`. + +## edit + +Re-run the questionnaire over the previous answers. + +Say in one line what it will do before launching, and settle DESIGN.md in the same breath, because a new run replaces the seed the last one produced: *"This re-runs the questionnaire with your previous answers filled in. When you finish, I will refresh DESIGN.md from the new answers. Refresh it, overwrite it, or merge by hand?"* That is the whole consent for this run; do not ask again afterwards. + +Then run `node .agent/skills/impeccable/scripts/picker-server.mjs`, using the same launch ladder and wait rule as `open`. Prefill happens on its own: an unfinished run resumes from its draft, a finished one loads its answers, and `--fresh` starts blank. Cues and `context.json` already exist from the previous run, so do not regenerate cues and do not repeat Step 7's pre-launch writes. + +On exit 0, go to [document.md](document.md) Steps 5-6 and write the seed from the new `answers.json`, honoring the choice made before launch. On exit 2, nothing was answered and nothing changed. + +If `.impeccable/visual-cues/cues.json` is missing, the questionnaire cannot run: its palette screen loads the dealt cues and the built-in seeds together and neither arrives without that file. Say so and offer a full `/impeccable document --seed` run instead. + +## export + +```text +node .agent/skills/impeccable/scripts/design-context-export.mjs [--out DIR] [--no-assets] +``` + +Writes two files and prints an `EXPORTED` line for each. Tell the user what each is for, in one line each: + +- `design-context.md` is the design context as one readable document. It is what to hand another tool, another agent, or a collaborator who needs to follow this design. +- `design-context.bundle.json` is the same context in a form `/impeccable design-context import` reads, including the files the user supplied. + +Do not read the export back into the conversation; the user asked for a file, not a recitation. + +## import + +```text +node .agent/skills/impeccable/scripts/design-context-import.mjs [--design skip|write] [--force] +``` + +It refuses a project that already has a design context unless `--force`, and refuses while a document is open either way. Report what it prints: + +- `DESIGN_MD carried` with a DESIGN.md already here: ask whether to refresh it from the imported context, overwrite it, or merge by hand, then act. +- `DESIGN_MD carried` with none here: offer to write it (`--design write`) or to re-seed from the imported answers through [document.md](document.md) Steps 5-6. +- `DESIGN_MD absent`: say the bundle carried decisions but no design document, and offer to seed one. + +Then offer `open`. + +## The document edit loop + +The document is a working surface. Follow [visual-cues.md](visual-cues.md)'s "The document edit loop" section; it is the canonical contract for polling, the event kinds, and the reply commands. Two things to hold on to while you are in it: + +- **The session is the only writer of the store.** Never edit `answers.json` or `context.json` yourself while a session runs. Values you settle travel on your reply, through `--answers` or `--context`. DESIGN.md and PRODUCT.md are yours to write directly. +- **A `save_batch` is already applied.** The user's values are in the store before you hear about them. Your work is the prose those values leave stale, in whichever document the event's `downstream` names. + +## Pitfalls + +- Never poll `answers.json` while a server runs. The process exiting is the signal. +- Never drive the questionnaire yourself. The answers are the user's, and a run you filled in is a run they did not make. +- Editing in the document changes values that are already there. A field the interview never captured is added by asking through the document's own request control, not by this command. diff --git a/.agent/skills/impeccable/reference/document.md b/.agent/skills/impeccable/reference/document.md index 9da0bc743..677d7af2c 100644 --- a/.agent/skills/impeccable/reference/document.md +++ b/.agent/skills/impeccable/reference/document.md @@ -64,6 +64,7 @@ Omit irrelevant sections rather than filling them with invented rules. Put respo ## When to run - New-work found a coherent incumbent visual system but no `DESIGN.md`. +- New-work paused before its direction roll on a project with no `DESIGN.md` and the user accepted the seed questionnaire recommendation; run seed mode. - The first implementation of a new world is complete and its provisional decisions need to be carbonized. - An existing `DESIGN.md` is stale (the design has drifted). - Before a large redesign, to capture the current state as a reference. @@ -73,9 +74,9 @@ If a `DESIGN.md` already exists, **do not silently overwrite it**. Show the user ## Two paths - **Scan mode** (default): the project has design tokens, components, or rendered output. Extract, then confirm descriptive language. Use when there's code to analyze. -- **Seed mode**: the project is pre-implementation. Ensure PRODUCT.md exists, then reuse new-work's visual-world workshop and write its directional DESIGN.md seed. Re-run in scan mode once there's code. +- **Seed mode**: the project is pre-implementation (fresh init, nothing built yet). Decide first whether the browser questionnaire can run, gather any existing brand assets, interview in chat (three named references and one anti-reference when the questionnaire will run; five high-level answers when it will not), then write a seed DESIGN.md marked `` that carries every decision the interview and the questionnaire made. Re-run in scan mode once there's code. -Decide by scanning first (Scan mode Step 1). If the scan finds no tokens, no component files, and no rendered site, offer seed mode; don't silently switch. `/impeccable document --seed` requests new-work's world workshop, but it does not authorize replacing coherent code: when an incumbent system exists, offer scan mode or route an explicit identity-replacement request through new-work. +Decide by scanning first (Scan mode Step 1). If the scan finds no tokens, no component files, and no rendered site, offer seed mode; don't silently switch. `/impeccable document --seed` forces seed mode on a pre-implementation project, but it does not authorize replacing coherent code: when an incumbent system exists, offer scan mode or route an explicit identity-replacement request through new-work. ## Scan mode (approach C: auto-extract, then confirm descriptive language) @@ -308,7 +309,7 @@ The `html` and `css` fields must be **self-contained, drop-in snippets** that re 1. **Tailwind expansion.** If the source uses Tailwind (className="bg-primary text-white rounded-lg px-6 py-3"), expand every utility to literal CSS properties in the `css` string. Do **not** reference Tailwind classes; do **not** assume a Tailwind CSS bundle is loaded. Each component is self-contained. 2. **Token resolution.** If the project exposes tokens as CSS custom properties on `:root` (e.g. `--color-primary`, `--radius-md`), reference them via `var(--color-primary)`; they inherit through the shadow DOM and stay live-bound. If tokens live only in JS theme objects (styled-components, CSS-in-JS), resolve to literal values at generation time. -3. **Icons.** Inline as SVG. Do not reference Lucide/Heroicons packages, icon fonts, or ``. A typical icon is 16-24px; copy the SVG path data directly. +3. **Icons.** Inline as SVG. Do not reference Lucide/Heroicons packages, icon fonts, or ``. A typical icon is 16-24px; copy the SVG path data directly. This is about how a snippet ships, not about which family the project draws from: when the design names an icon set, keep using that set's glyphs and paste their path data in. 4. **States.** Include `:hover`, `:focus-visible`, and (if meaningful) `:active` rules inline. A static default-only snapshot makes the panel feel dead. Hover + focus rules in the CSS make it feel alive. 5. **Reset bloat.** Extract only the component's *distinctive* CSS (background, color, padding, border-radius, typography, transition). Skip universal resets (`box-sizing: border-box`, `line-height: inherit`, `-webkit-font-smoothing`). The panel already has a neutral canvas; don't re-ship resets. 6. **Scoped class names.** Prefix every class with `ds-` (e.g. `ds-btn-primary`, `ds-input-search`) so component CSS doesn't collide with other components' CSS in the same shadow DOM. @@ -349,46 +350,138 @@ Your own write is the freshest source; subsequent commands in this session don't ## Seed mode -For projects with no visual system to extract yet. Produces a user-chosen visual-world scaffold, not a fabricated token spec. - -### Step 1: Route through new-work's workshop +For projects with no visual system to extract yet. Produces a minimal, user-chosen scaffold, not a fabricated token spec. PRODUCT.md is the prerequisite. If it is missing, load [init.md](init.md) and complete its product interview first. Do not create a visual identity without durable product context. -If PRODUCT.md exists, load [new-work.md](new-work.md) and resolve visual authority. Seed mode requires a concrete first surface: use the target the user named, or ask what they want to make first. Run new-work's **Create or replace the visual world** flow, then **Commit the world**, so the visual world and its first expression are chosen together. Stop after the directional DESIGN.md seed and surface brief; do not implement. A structured simulated user counts as the user and must get the same choice. +### Step 1: Decide the path, confirm seed mode, and ask for assets -If new-work already completed the workshop in this session, use its chosen direction directly. Do not ask again. +The browser questionnaire asks color strategy and motion per surface and picks concrete typefaces and a type scale by eye, so whether it will run decides what the chat interview may ask. Decide the path **before the first question**, never after the interview: -### Step 2: Write seed DESIGN.md +- **The harness has native image generation** (Codex's `image_gen`, an equivalent MCP tool, or similar): the questionnaire path; the cues are generated directly at Step 4, no setup needed. This branch wins even when `.impeccable/.env` already holds an `IMAGE_GEN_API_KEY` or an earlier run in another harness left a wrapper script behind; those are fallbacks for keyless harnesses, not the preferred path. A native tool that **cannot generate** (zero credits, failed auth) counts as absent: fall through to the next branch without asking, and mention the swap in the final report. +- **No usable native path, key already in `.impeccable/.env`**: the questionnaire path, with no pause and no questions. Load [image-api.md](image-api.md) and use its shipped wrapper; it pre-answers everything this path has ever stopped to ask, including which provider the key belongs to. +- **No usable native path, no key**: pause. Ask the user directly to clarify what you cannot infer. Ask whether the user wants generated visual cues to pick a palette by eye. *"I can generate a few small palette-and-mood images so you choose a direction visually instead of from descriptions. That needs an image-generation API key (FLUX and Google Nano Banana are supported out of the box; other providers work too), stored as `IMAGE_GEN_API_KEY` in `.impeccable/.env`. Add one, or skip straight to the chat interview?"* If a key arrives, write it to `.impeccable/.env` together with `IMAGE_GEN_PROVIDER` (`bfl` for FLUX, `gemini` for Nano Banana, the provider's own name for anything else; when the user does not say, let the wrapper infer it from the key). Confirm that file is listed in the project's `.gitignore` (add it if missing; a committed key is a leak), then load [image-api.md](image-api.md). Its shipped wrapper is the whole integration for the built-in providers; only a provider it does not know earns the project-local wrapper that file specifies. A key arriving makes this the questionnaire path. +- **The user opts out, or no key arrives**: the interview-only path. The assets ask below, the five questions in Step 3, then Steps 5-6 from the interview alone. -Use the canonical section order from Scan mode. Populate the selected workshop direction and leave unresolved implementation facts as honest placeholders. The seed commits a world and its invariants; it does not pretend implementation tokens already exist. +Then confirm seed mode and ask for assets, framed for the path: -Lead the file with: +- **Questionnaire path**: *"There's no existing visual system to scan. You'll pick the visual direction by eye in a browser questionnaire; before I generate its options, three quick things. First: if you have any visual assets (a logo, reference or product images, moodboards), drop them in or point me at the files. They're extra context that makes the first DESIGN.md seed more accurate. You can re-run `/impeccable document` once there's code, to capture the real tokens and components. OK?"* +- **Interview-only path**: *"There's no existing visual system to scan. I'll ask five quick questions to seed a starter DESIGN.md. First: if you have any visual assets (a logo, reference or product images, moodboards), drop them in or point me at the files. They'll ground the questions in what you already have. You can re-run `/impeccable document` once there's code, to capture the real tokens and components. OK?"* + +Also glance for assets already in the project (`assets/`, `public/`, `brand/`, image files at the root); name anything found so the user can confirm it's relevant. Assets are optional: one ask, then proceed with whatever arrived. + +If the user prefers to skip entirely, stop. No file. + +### Step 2: Read the assets + +Look at every asset provided (attached in chat or a file path) and record what it tells you, before writing the questions: + +- **Logo**: sample the exact colors, note letterform character (geometric / humanist / serif) and temperature. +- **Reference / product images**: density, palette, type feel; what the user is drawn to. +- **Moodboards**: recurring hues, textures, era, register cues. + +On the questionnaire path, the files themselves also feed the design context document the picker shows after the last question. When the user provided actual files (a logo, a mood board, a reference image), copy each one into `.impeccable/design-context/assets/`, keeping its filename. Record every staged file for Step 4's context write: it becomes an object entry in `context.json` `context.assets`, `{ "file": "", "kind": "logo" | "moodboard" | "reference", "note": "" }`, where the note is what this step read off it. An observation with no file behind it stays a plain string entry, as before. On the interview-only path, stage nothing; the observations feed the questions and the seed alone. + +These observations exist to sharpen Step 3. **No assets: skip straight to Step 3** with generic options. + +### Step 3: The interview + +Group each path's questions into one `AskUserQuestion` interaction. Options must be concrete. Keep skill vocabulary (seed, register, anti-reference) out of question text; ask for the thing in words the user would use. Ask like a magazine editor profiling the brand: curious and narrative, drawing out the feel the surface should carry. + +**Questionnaire path: two questions, nothing more.** With Step 1's assets ask these are the whole chat interview; the questionnaire asks everything else by eye. + +1. **Three named references.** Brands, products, printed objects. Not adjectives. When Step 2 produced observations, ground candidate names in them (references drawn from the moodboard's era). +2. **One anti-reference.** What the product should NOT feel like. Also named. + +**Do not ask about color, typography, or motion here; the questionnaire owns them.** It asks color strategy and motion per surface and picks concrete typefaces and a type scale, so a chat answer would be asked again by eye and one of the two would be thrown away. Both answered, go straight to Step 4. + +**Interview-only path: five questions.** When Step 2 produced observations, ground the options in them: offer the logo's sampled color as a hue anchor in Q1, a type direction that matches the letterforms in Q2, candidate named references drawn from the moodboard's era in Q4. The user should recognize their own material in the choices. + +1. **Color strategy.** Pick one: + - Restrained: tinted neutrals + one accent ≤10% + - Committed: one saturated color carries 30–60% of the surface + - Full palette: 3–4 named color roles, each deliberate + - Drenched: the surface IS the color + + Then: one hue family or anchor reference ("deep teal", "mustard", "Klim #ff4500 orange"). + +2. **Typography direction.** Pick one (specific fonts come later): + - Serif display + sans body + - Single sans (warm / technical / geometric / humanist; pick a feel) + - Display + mono + - Mono-forward + - Editorial script + sans + +3. **Motion energy.** Pick one: + - Restrained: state changes only + - Responsive: feedback + transitions, no choreography + - Choreographed: orchestrated entrances, scroll-driven sequences + +4. **Three named references.** Brands, products, printed objects. Not adjectives. + +5. **One anti-reference.** What it should NOT feel like. Also named. + +### Step 4: Launch the questionnaire (questionnaire path only) + +**Interview-only path: skip this step.** Go to Step 5 and seed from the answers alone. Step 1 already settled the capability question; do not re-open it here. + +On the questionnaire path, **stop and load [visual-cues.md](visual-cues.md)** and follow its pipeline; it owns everything from the one-line user announcement and the persona palette studio through generation, `cues.json`, and the picker pause. Do not restate its mechanics here or in chat. The picker's exit is the handoff: when the server exits 0 and `.impeccable/design-context/answers.json` lands, come back here and run Steps 5-6 with that file in hand. + +### Step 5: Write seed DESIGN.md + +Use the canonical section order from Scan mode. Populate what the interview, the assets, and the questionnaire answer; leave the rest as honest placeholders. The seed is a scaffold, not a fabricated spec, but a decision the user actually made in the picker is real and belongs in the file at full strength. + +Mark the file as a seed with this comment as the first line of the markdown body, immediately after the frontmatter's closing `---` (the frontmatter must open the file or token parsers will not see it): ```markdown ``` -Per-section guidance in seed mode: +**Two seeds exist**, and which one you write depends on whether Step 4's picker ran: -- **Overview**: the chosen design thesis, layout behavior, material character, imagery stance, motion grammar, and reusable signature. Keep the selected first-surface expression in its surface brief; do not promote its composition into the global world. -- **Colors**: the selected palette strategy and roles. Include values only when the user, an existing asset, or new-work's exploration established them; otherwise mark them `[to be resolved during implementation]`. -- **Typography**: the selected type character and role relationship. Include font names only when established; otherwise mark the pairing `[to be resolved during implementation]`. -- **Layout**: the selected spatial grammar and responsive behavior, without pretending exact measurements are settled. -- **Elevation & Depth**: the selected material and depth behavior, stated as an invariant rather than inferred from a generic preset. -- **Shapes**: the selected form and corner language. +**Interview-only seed** (the user opted out of generation, or no key arrived). Per-section guidance: + +- **Overview**: Creative North Star and philosophy phrased from the answers (color strategy + motion energy + references). Reference the user's anti-reference directly. +- **Colors**: Color strategy as a Named Rule (e.g. *"The Drenched Rule. The surface IS the color."*). Hue family or anchor reference. Colors sampled from a provided logo are real; include them with exact values and note the source. Everything else stays `[to be resolved during implementation]`; those sampled anchors are the only hex this seed may carry. +- **Typography**: the direction the user picked (e.g. "Serif display + sans body"). No font names yet: `[font pairing to be chosen at implementation]`. +- **Layout** and **Shapes**: omit unless an asset or answer established a spatial or form preference; do not invent grids or corner language pre-implementation. +- **Elevation & Depth**: inferred from motion energy. Restrained/Responsive → flat by default; Choreographed → layered. One sentence. - **Components**: omit entirely; no components exist yet. -- **Do's and Don'ts**: record the durable guardrails confirmed during the world choice, not task-local refusals. +- **Do's and Don'ts**: carry PRODUCT.md's anti-references directly plus the anti-reference named in Q5. -Seed mode writes a minimal frontmatter with `name` and `description` only; no colors, typography, rounded, spacing, or components yet. Real tokens land on the next Scan-mode run. Skip the `.impeccable/design.json` sidecar in seed mode for the same reason: nothing to render. +This seed writes a minimal frontmatter with `name` and `description` only; no colors, typography, rounded, spacing, or components yet. -### Step 3: Confirm +**Questionnaire seed** (`.impeccable/design-context/answers.json` exists from this run). The user answered every screen by eye, so the seed carries their answers as decisions, not directions. Read the answers file plus the picked cue's palette entry in `.impeccable/visual-cues/cues.json` (`palette-source` names it), and map: + +- **Frontmatter**: `name` and `description`, plus real `colors` (the four `palette-*` hex values under descriptive slugs; these are picked, not sampled) and real `typography` (`font-heading` and `font-body` are exact family names; give each role its family and weight intent, leave sizes for implementation). Derive the two text inks and record them under `colors` too: one near-black and one near-white, the pair the picker's previews already set their text in over these exact surfaces, each holding 4.5:1 against the grounds it will carry copy on, so a builder needing body-text contrast finds ink in the system instead of inventing a fifth color. Still no `rounded`, `spacing`, or `components`: the corner and spacing answers are qualitative, and nothing is built. +- **Overview**: Creative North Star and philosophy phrased from the questionnaire's color-strategy and motion answers plus the chat references; reference the user's anti-reference directly. Name the chosen surfaces (`surface-modes`) and what each is for. Movement stays here, after the North Star, but the questionnaire asks it of a landing page and a portfolio only, so write what the keys support: + - `motion-energy-` keys present, all agreeing: one philosophy sentence for the product, as before. + - Keys present and disagreeing: one sentence per surface, named (*"The landing page moves on state change only; the portfolio stages entrances and drives sequences on scroll."*). The bare `motion-energy` is the leading one of the two. + - **No `motion-energy` key at all**: the run has neither of those surfaces, so movement was never asked. Say nothing about it, and do not fill the gap from the register; this path's chat interview never asked about motion, so there is nothing to borrow. The next Scan-mode run reads the real transitions out of the code. +- **Colors**: the four roles with their picked hex, noting the cue they came from. Name the chosen cue by its slug, and note that the unpicked cue images stay in `.impeccable/visual-cues/` for later art direction. `color-strategy` becomes the Named Rule. When surfaces differ (`color-strategy-` keys), state each surface's strategy and which surface leads (the bare key's owner). +- **Typography**: the real pair by name, the pairing's character, and the type scale as a rule: `type-scale` names it, `type-scale-ratio` is the ratio (e.g. *"Major third: each heading step is 1.25x the last"*). Base size and exact steps stay `[resolved at implementation]`. A `font-heading-source` / `font-body-source` value means a user-provided font file; record where it lives. +- **Layout**: `boundary-style` (how sections separate) per surface when the `-` keys differ, plus `layout-structure` (how pages are composed), which the questionnaire asks of a landing page and a portfolio only. No invented grids beyond what the answers state. + - `layout-structure` present: one bare key and no `-` keys, so state it as a rule for the whole product rather than per surface. + - **No `layout-structure` key at all**: the run has neither of those surfaces, so composition was never asked. Say nothing about how strict the grid is, and let `boundary-style` carry the section. +- **Elevation & Depth**: `depth-style` per surface, stated directly; the questionnaire answered this, so do not re-infer it from motion energy. +- **Shapes**: `corner-style` per surface. +- **Components**: still omit; nothing exists yet. +- **Do's and Don'ts**: the interview-only guidance, plus a Do fixing the icon source: every icon comes from the chosen pack (`icon-pack-name`, license, URL), no mixed sets. + +Per-surface answers come back for every chosen surface, defaults included, and a difference between surfaces is a decision the picker enforced, not an inconsistency to smooth over (the option lists differ per surface). Where all surfaces agree, state the answer once for the product. `motion-energy` and `layout-structure` are the two keys that can be missing entirely, since movement and composition are asked of a landing page and a portfolio only; [visual-cues.md](visual-cues.md) has the full contract. + +Both seeds skip the `.impeccable/design.json` sidecar: nothing to render yet. Real tokens for sizes, spacing, and components land on the next Scan-mode run. + +### Step 6: Confirm 1. Show the seed DESIGN.md. Call out that it is a seed (the marker is the literal commitment). 2. Tell the user: "Re-run `/impeccable document` once you have some code. That pass will extract real tokens and generate the sidecar." +3. On the questionnaire path, add one line: the interview is kept, and `/impeccable design-context` reopens the document, re-runs the questionnaire over these answers, or writes the context out for another tool. See [design-context.md](design-context.md). Your own write is the freshest source; no reload needed. +When the questionnaire ran, the confirm is not the end of the turn: the design context document in the user's tab is live for edits through the session the picker forked. Follow the document edit loop in [visual-cues.md](visual-cues.md): poll, apply `edit_request`s to this same DESIGN.md, reply. A color the user changed in the tab before your seed write is already in `answers.json`; one changed after arrives as a `save_batch` event, its value already in the store and its description in DESIGN.md yours to bring in line. + ## Style guidelines - **Frontmatter first, prose second.** Tokens go in the YAML frontmatter; prose contextualizes them. Don't redefine a token value in two places; the frontmatter is normative. diff --git a/.agent/skills/impeccable/reference/image-api.md b/.agent/skills/impeccable/reference/image-api.md new file mode 100644 index 000000000..728a92fca --- /dev/null +++ b/.agent/skills/impeccable/reference/image-api.md @@ -0,0 +1,54 @@ +# Image API Path (keyless harnesses) + +Loaded when a pipeline needs image generation and the harness has **no usable native tool**. It answers, upfront, every question an agent has historically stopped to ask on this path; with a funded key in place, a run through this file asks the user nothing and debugs nothing. + +**This file never overrides a working native tool.** A harness with native image generation skips this path entirely; the precedence rule lives where the path is picked ([visual-cues.md](visual-cues.md) Step 3, [document.md](document.md) seed Step 1), not here. One refinement to that rule: a native tool that **cannot generate** (zero credits, failed auth, disabled account) counts as absent. Fall through to this path silently and mention the swap in the final report; do not stop to ask which path to use. A stopped question costs hours when the user is away; the swap costs nothing. + +## The setup, already answered + +- **Key**: `IMAGE_GEN_API_KEY` in `.impeccable/.env` at the project root. The wrapper reads that file itself; never `source` it, never export the key by hand, never rename the variable. Never delete or truncate that file either, cleanup included: it is the user's stored credential, not run output, and a wiped key turns the next run's silent keyless path into a stalled question. +- **Provider**: `IMAGE_GEN_PROVIDER` in the same file: `bfl` (FLUX / Black Forest Labs) or `gemini` (Google Nano Banana), both built into the wrapper; any other value routes to a custom wrapper (below). Loose spellings from earlier runs (`flux`, `google`, `nano-banana`) normalize to the built-ins, and a missing provider line is inferred from the key's shape (Google keys start with `AIza` or `AQ.`; anything else runs as `bfl`), so a misworded or absent line is never a reason to stop and ask. +- **Wrapper**: `.agent/skills/impeccable/scripts/image-gen.mjs`, shipped with the skill. Do **not** write a new wrapper for a built-in provider, edit this one, or fall back to raw `curl`/`fetch` calls; every known failure mode below is already handled inside it. Wrappers left by earlier runs under other names (`flux-gen.mjs`, project-local copies) are superseded by the shipped one. +- **No smoke test.** A funded key plus the shipped wrapper is a working path; the first real generation is the test, and the wrapper turns transient failures into internal retries rather than failed calls. + +## The command + +One command regardless of provider; the provider switch happens inside the wrapper, so calling pipelines never branch on it: + +```text +node .agent/skills/impeccable/scripts/image-gen.mjs --prompt "..." --out /abs/path.png \ + [--ref /abs/reference.png] [--width 1408] [--height 1408] +``` + +Run it from the project root (that is where it finds `.impeccable/.env`). It prints the absolute output path on success and exits non-zero with the error on stderr. `--ref` switches text-to-image to image-to-image where the provider supports it. + +## Provider facts, so no one re-derives them + +**bfl** (FLUX): + +- **Models**: `flux-pro-1.1` text-to-image; with `--ref`, `flux-kontext-max` image-to-image (reference sent as base64, aspect ratio pinned 1:1). +- **Size**: BFL accepts 256-1440 px in multiples of 32. The default `1408x1408` is the largest clean square; passing `--width 1500` fails validation locally, before any credit is spent. Output is always square unless you pass unequal values. +- **Concurrency**: BFL allows 24 active tasks (`flux-kontext-max`: 6). A six-spawn wave fits both caps; do not throttle it. +- **Protocol**: submit returns a `polling_url`; the wrapper polls exactly that URL (the global endpoint requires it) and downloads the signed result URL immediately, inside its 10-minute expiry. None of this is the caller's concern. + +**gemini** (Nano Banana): + +- **Model**: `gemini-3.1-flash-image` by default; a `IMAGE_GEN_MODEL` line in `.impeccable/.env` overrides it, and the wrapper retries the `-preview` sibling once when Google's model naming drifts. +- **Size**: the wrapper pins aspect ratio 1:1, so output is always square; Gemini picks the pixel size for its tier (1024 by default) and ignores `--width`/`--height`. A 1024 square passes the pipelines' square gate as a "nearest supported square"; do not upscale it. +- **Format**: Gemini frequently returns JPEG bytes regardless of the `--out` filename; the wrapper converts them, so the written file is always a real PNG. Do not re-check or re-convert it. +- **Protocol**: synchronous; one call returns the image inline, no polling. Moderation arrives as an imageless response, which the wrapper turns into a clear error, not as an HTTP failure. +- **Text rendering**: Gemini paints text well and eagerly, so a prompt that mentions codes, numbers, or labels tends to get them rendered onto the image (hex codes come back as a printed swatch strip). The calling pipeline's prompt rules ([visual-cues.md](visual-cues.md)'s HERO PROMPT skeleton) keep those out of prompts; follow them, not looser habits from other models. + +**Any other provider**: the user names it, so the integration cannot be pre-shipped. Write `.impeccable/image-gen.mjs` implementing the same CLI (same flags, print the absolute output path on success, non-zero exit with the error on stderr, transient retries handled inside), set `IMAGE_GEN_PROVIDER` to the provider's name, and the shipped wrapper delegates to it automatically; calling pipelines keep using the shipped command unchanged. Build it from the provider's API docs, and give it square output; do **not** modify the shipped wrapper to add the provider inline. + +## Failures and what they mean + +The wrapper retries transient failures internally (DNS, network blips, 429 back-pressure, poll hiccups, expired-download re-fetches), so an error that reaches the caller is real and carries its own explanation: + +- **"out of credits"** (bfl, HTTP 402): a human must top up at dashboard.bfl.ai. Report it and stop this path; retrying is pointless, and so is asking the user to choose an alternative that does not exist. +- **"quota or rate limit exhausted"** (gemini, HTTP 429 after the wrapper's own retries): the key's plan is out of headroom. Report it and stop this path; the fix is billing, not retries. +- **"rejected the key"** (either provider): the key in `.impeccable/.env` is wrong or revoked. Report it; do not mint debugging sessions around a dead key. +- **Moderation** ("Content Moderated" / "Request Moderated" / "Prompt was moderated"): the prompt tripped the provider's filter; rewording the prompt is the fix, within the caller's normal generation budget. +- **"cannot resolve"**: the wrapper already tried the system resolver, `dig`, Google, and Cloudflare. **Never debug DNS beyond this**: no `/etc/hosts` edits, no new resolvers, no rewriting the wrapper to use `fetch()` (sandboxed harnesses block the default resolver for these hosts; the wrapper pins IPs via `curl --resolve` for exactly that reason). Report the failure and let the parent decide. + +Subagents on this path inherit the generation-failure budget from their own pipeline ([visual-cues.md](visual-cues.md)'s three-call budget, or the calling pipeline's equivalent); the wrapper's internal retries do not count against it, only whole failed invocations do. diff --git a/.agent/skills/impeccable/reference/new-work.md b/.agent/skills/impeccable/reference/new-work.md index 8647c52c7..0d13016fb 100644 --- a/.agent/skills/impeccable/reference/new-work.md +++ b/.agent/skills/impeccable/reference/new-work.md @@ -40,11 +40,13 @@ The script deals three of your structures; the dice pick which three reach the u ### Create or replace the visual world -1. Name the product's unique mechanism in one sentence, the audience's real scene, its cultural home, and what this first surface must prove. Note the page this category always ships and its predictable opposite; both are the rut, kept out of the seven-candidate list. A brief that paints its own picture, a product name, a titled artifact, a governing metaphor, adds its literal reading to the rut: spend at most one candidate on it and derive the rest from elsewhere in the audience's world. -2. From that cultural world, list seven concrete visual systems, artifacts, places, or rituals the audience knows by heart, each with one line on why it resonates and can carry the mechanism, ordered by resonance. The audience's world includes its graphic and screen traditions, not only its physical objects: the notation, publications, identity programs, data graphics, and interfaces it reads daily. A nameable abstract system (a school of poster, a documentation standard) is as concrete a candidate as any artifact. What would this thing look like as a physical object; what did its world look like before the web? Near-duplicates count once. When more than three of the seven share one material family, the derivation stopped at the subject's most obvious artifact; dig until the list spans at least three families. +**When DESIGN.md is missing**, pause before any of the work below. Ask the user directly to clarify what you cannot infer. Ask once: recommend `/impeccable document --seed`, the guided interview plus browser questionnaire, because a world established from the user's own choices beats one assigned to them; offer the skip in the same breath. *"There's no design system on record yet. Before I invent directions for [the requested surface], I can run a short interview and browser questionnaire so the visual world is built from your choices; I recommend it. Or skip it and I'll roll a direction now."* The pause is enforced by the script, not by your discipline: with no DESIGN.md on record, the step 4 roll refuses to deal and prints this same offer until the questionnaire has been put to the user. Do not roll first and offer the questionnaire after, the assignment anchors the conversation; do not run document on the user's behalf without their yes. **Accepted:** seed mode in [document.md](document.md) owns the interview and the picker; follow it. When the seed DESIGN.md is written, resume at section 1: the seed world now reads as an established world, so inherit it; the direction roll below no longer applies, and the optional surface roll remains. Through every phase that follows, comp-led included, the comp rules composition; the world rules material, and this seed is that world. **Skipped:** re-run the step 4 command with `--seed-declined=""`; the flag carries the user's own words as evidence of the skip, and the roll deals with nothing in step 4 softened. The build request itself is never a skip answer, a bare flag refuses again, and fabricating or paraphrasing the quote is a contract violation; only words the user typed after being asked qualify. When DESIGN.md exists, there is no pause and no flag. + +1. Name the product's unique mechanism in one sentence, the audience's real scene, its cultural home, and what this first surface must prove. Note the page this category always ships and its predictable opposite; name both as the rut and keep them out of the seven-candidate list. A brief that paints its own picture, a product name, a titled artifact, a governing metaphor, adds its literal reading to the rut: spend at most one candidate on it and derive the rest from elsewhere in the audience's world. +2. From that cultural world, list seven concrete visual systems, artifacts, places, or rituals the audience knows by heart, each with one line on why it resonates and can carry the mechanism, ordered by resonance. The audience's world includes its graphic and screen traditions, not only its physical objects: the notation, publications, identity programs, data graphics, and interfaces it reads daily; a nameable abstract system (a school of poster, a documentation standard) is as concrete a candidate as any artifact. What would this thing look like as a physical object; what did its world look like before the web? Near-duplicates count once. When more than three of the seven share one material family, the derivation stopped at the subject's most obvious artifact; dig until the list spans at least three families. 3. Turn that material into complete directions: each joins a reusable visual world to a concrete first-surface experience. -4. Run `node .agent/skills/impeccable/scripts/concept-seed.mjs --scope direction --mode ` and follow what it prints. No substitute, no skip: on a new or replacement world, writing artifact code before this script has run and its assignment is acknowledged is a contract violation, whatever the harness, the model, or the time pressure; the roll is what keeps every run from converging on the category default. The script assigns the direction to build and deals catalog challengers. Fuse each challenger before judging it: the challenger supplies the form and its system grammar, the product supplies every fact, clarity wins conflicts. Weigh fused challengers against the assigned direction on exactly two axes, audience identification and product clarity. Losing to strong grounded material is a valid outcome; beating a thin or tool-monoculture list is the point. Close with a verdict per challenger, decided before any borrowing: wins (beats the assigned direction on both axes; becomes the build candidate), competitive (holds one axis; stays a full alternate), or declined (loses both). A declined challenger is not spent: name the one discipline of its system the assigned direction lacks, and raise the assigned direction to match before presenting it. A donation transfers ambition and system discipline (a palette's total commitment, a grid's density courage, a form's structural honesty), never the challenger's clothes; a lifted motif is a costume note, not a raise, and one world owns the page. Write each raise into the presented direction as its own line, named for its donor; a raise nobody can read did not happen. -5. Present one direction, fully committed and already raised by the hand it beat, raises visible as named lines: world, first viewport, visitor path, signature interaction, cross-surface reach, honest risk. Route each challenger by verdict: winning and competitive challengers are full alternates with their QUALITY BAR cards and one-line case; declined challengers render demoted, compact and quiet, each carrying its verdict and what the direction kept from it, never full-size, never silently dropped, still adoptable on request. The verdict informs the user's choice, never pre-empts it; the demoted row is the hand's proof of judgment. A hand holds at most three full-card challengers: when the roll deals more, the three strongest join and the rest wait in the re-roll pool, noted in one line; dropping a challenger from the hand itself takes a named product-truth failure, disclosed. Add one card for your own top-ranked grounded candidate when it is not the assigned direction, kicker IMPECCABLE’S PICK, same anatomy as every card, with an honest risk line naming its familiarity when true: the strongest grounded direction is often where most runs in this category land, and the user deciding that trade is the point of showing it. Familiar and effective is a legitimate destination, not a failure of nerve; the pick card and the standing exit serve it at two depths. One pick card, never two, never a ranked list: a lineup of your candidates hands selection back to a taste function and invites the safest card. The pick never takes the lead position; when the dice assign your top candidate there is no pick card, and the assigned card notes it topped your list. Add re-roll with an optional one-line steer, in three registers: plain (a fresh hand, same spread), safer (your remaining conventional grounded candidates plus the canon against named competitors), bolder (foreign forms only, at full commitment). The register is the user's steering on the familiar-to-bold axis, never yours to pre-select; when the answer carries one, re-run the seed with `--register ` and the next `--reroll` round, and follow what it prints. A user saying "bolder" or "safer" while a direction round is open means these registers, never the bolder or harden commands. The two channels share this structure and differ only in richness: cards and boards on the decision page, names and one-liners through the structured tool, whose option list carries the assigned direction, the pick, the winning and competitive challengers, and the standing exit last; declined challengers fold into the assigned option's description as their kept lines, so the raise survives the text channel. +4. Run `node .agent/skills/impeccable/scripts/concept-seed.mjs --scope direction --mode ` and follow what it prints. With no DESIGN.md the script refuses to deal until the seed pause above has run; after the user's explicit skip, and only then, re-run it with `--seed-declined=""` carrying the user's own words. This step has no substitute and no skip condition (the seed pause above exits this subsection before any direction work starts; it is not a skip of the roll): on a new or replacement world, writing artifact code before this script has run and its assignment is acknowledged is a contract violation, whatever the harness, the model, or the time pressure, because the roll is the mechanism that keeps every run from converging on the category default. The script assigns which direction gets built and deals catalog challengers. Fuse each challenger before judging it: the challenger supplies the form and its system grammar, the product supplies every fact, and clarity wins conflicts. Weigh fused challengers against the assigned direction on exactly two axes, audience identification and product clarity; losing to strong grounded material is a valid outcome, and beating a thin or tool-monoculture list is the point. The weighing closes with a verdict per challenger, decided before any borrowing is considered: wins (beats the assigned direction on both axes; it becomes the build candidate), competitive (holds one axis; it stays a full alternate), or declined (loses both). A declined challenger is not spent: name the one discipline of its system the assigned direction lacks, and raise the assigned direction to match before presenting it. A donation transfers ambition and system discipline (a palette's total commitment, a grid's density courage, a form's structural honesty), never the challenger's clothes; a motif lifted from a declined world is a costume note, not a raise, and one world owns the page. Write each raise into the presented direction as its own line, named for its donor; a raise nobody can read did not happen. +5. Present one direction, fully committed and already raised by the hand it beat, its raises visible as named lines: its world, first viewport, visitor path, signature interaction, cross-surface reach, and honest risk. Alongside it, route each dealt challenger by its verdict: winning and competitive challengers are full alternates carrying their QUALITY BAR cards and one-line case, while declined challengers render demoted, compact and quiet, each carrying its verdict plus what the direction kept from it, never full-size and never silently dropped, each still adoptable on request. The verdict informs the user's choice, it never pre-empts it; the demoted row is the hand's proof of judgment, showing why the dealt worlds made the presented direction better. A hand holds at most three full-card challengers: when the roll deals more, the three strongest join the hand and the rest wait in the re-roll pool, noted in one line; dropping a challenger from the hand itself takes a named product-truth failure, disclosed. Add one card for your own top-ranked grounded candidate when it is not the assigned direction, kicker IMPECCABLE’S PICK, same anatomy as every card, with an honest risk line naming its familiarity when true: the strongest grounded direction is often the one most runs in this category land on, and the user deciding that trade is the point of showing it. Familiar and effective is a legitimate destination, not a failure of nerve; the pick card and the standing exit serve it at two depths. One pick card, never two, never a ranked list: the rest of your grounded candidates stay yours, because a lineup of them hands selection back to a taste function and invites the safest card. The pick never takes the lead position, and when the dice assign your top candidate there is no pick card; the assigned card notes it also topped your list. Add re-roll with an optional one-line steer, offered in three registers: plain (a fresh hand, same spread), safer (the familiar register: your remaining conventional grounded candidates plus the canon against named competitors), and bolder (foreign forms only, at full commitment). A register is the user's steering on the familiar-to-bold axis, never yours to pre-select; when the answer carries one, re-run the seed with `--register ` and the next `--reroll` round, and follow what it prints. A user saying "bolder" or "safer" while a direction round is open means these registers, never the bolder or harden commands. The two channels share this structure and differ only in richness: cards and boards on the decision page, names and one-liners through the structured tool; the structured tool's option list carries the assigned direction, the pick, the winning and competitive challengers, and the standing exit as its last option, while declined challengers fold into the assigned option's description as their kept lines, so the raise survives the text channel too. The standing exit: every direction round offers one quiet, permanent alternative, the category standard, played straight. It is the user's door, never yours: never recommend it, never weigh it against the roll, never let it soften the dealt directions; the counterweights bind the unchosen default, not the chosen one. When the user takes it (the canon action, a safer-steer, or plain words asking for the familiar or competitor-like path), convention becomes the commitment: ask once for two or three products this should sit alongside, make their craft level the bar, and execute the canon at full fidelity, without irony or smuggled quirk. Record a standing preference as a brand commitment in PRODUCT.md. Re-roll eliminates every direction already shown, grounded and challenger alike; after two consecutive re-rolls, ask what quality is missing. Re-roll on your own only on named factual grounds, when the assigned direction cannot carry the product's truth or task; taste is never grounds. The user may re-roll freely, and a user- or brief-pinned direction beats the roll, always. Present the decision visually: write an options payload with the assigned direction leading, its raised lines included; the pick card when one exists; the dealt challengers as alternates with their QUALITY BAR cards, verdicts, and kept lines; re-roll with its safer and bolder registers; steer; canon enabled; and `buildPath` carrying the recorded default with `toggle: true` whenever image generation exists (details in the build-path paragraph below). A degraded roll with no challengers still uses the page, as a single text-only card with re-roll. Give every card the same anatomy: thesis, palette, materials, first viewport, honest risk, and the challengers' case lines (`--schema` prints the exact shape); the page renders identity from these fields, demotes declined challengers to their row on its own, and a challenger's catalog image rides as labeled inspiration, never the promise of the build. Author `canonCard` too: the category standard as one honest card, same anatomy; the page keeps it subordinate, and the counterweights still bind you. Run `node .agent/skills/impeccable/scripts/serve-question.mjs --start --payload ` (`--schema` first for the payload shape). It daemonizes, prints the page URL and a key, and exits; open that URL for the user, in-app browser first, then the system opener, then showing the URL. Collect the choice with `--wait --key `, repeating while it exits 3; the ANSWER prints as JSON. An ANSWER of `{"optionId":"reroll"}` keeps the server alive and the page open on a loading hand: rerun concept-seed with the same `--scope` and `--mode` plus `--from --reroll ` (1 on the first re-roll, counting up), build the next payload, deliver it with `--update --key --payload `, then return to `--wait` on that key. Never `--start` a second server or fall back to chat here: either strands the open tab on a hand that never arrives. Exit 4 means the page closed unanswered: re-present once through the structured question tool, and with no answer there either, proceed unattended with the assigned direction and state the assumptions. A harness that can leave a shell blocked in the background may run the script without `--start` and let it auto-open and block. Never predict the fallback: run the script, and only exit code 2 from starting it routes the decision to the structured tool; that exit is the fallback, never an error to retry. @@ -86,7 +88,9 @@ For `shape`, return the selected direction to [shape.md](shape.md) and stop befo ## 6. Build with full commitment -When an approved comp exists, the comp is king, and the build happens in phases. The comp is a spatial contract, not a mood board: only the user can downgrade its authority, in explicit words, and difficulty never infers a downgrade. Phase one is reproduction: rebuild the comp at its own breakpoint until a screenshot at the comp's width and height overlaps it near pixel-perfectly, materials, components, elevation, assets, and implied design language included. Exactly three concessions exist: fonts (the closest obtainable face), icons (exact match unless the user already chose an icon library), and genuine defects in the generated comp such as spelling errors. Everything else must match, and models systematically believe their HTML, CSS, and SVG recreation succeeded when it did not, so the overlap comparison is the authority, never your conviction: set the screenshot beside the freshly reopened comp image at identical dimensions after every region, never beside your memory of it, and when a region keeps losing that comparison, stop recreating it in code and produce it as a rendered asset composited into the page. The comp also outranks every written record of it: when the recorded brief or inventory commits to less than the comp shows, a softer texture, a sparser field, a sculpted plate reduced to flat CSS, correct the record upward to the comp; qualifiers like subtle, restrained, and low-contrast, and counts rounded down to a comfortable fraction, are how approved materials die between approval and build. A produced material must then survive to the screen: a texture buried under a nearly opaque color wash ships the wash, not the material, so judge every material by the screenshot beside the comp, never by the stylesheet. Every color the brief records gets that comparison by number, not by eye: sample the build screenshot's ground, dominant fields, and accents the same way each record was taken (an interior patch average where the record is an average, both end colors where the record is a gradient) and set each value against its recorded counterpart (sampled from the comp itself when the brief lacks one), and when a texture or tile paints over a base token, measure the net on-screen value, because the eye files a drifted color under the same color word and the number is what catches it. Judge the gap like a colorist, not a diff tool: a difference with a color name (warmer, grayer, darker than the record) is drift to fix, while a few digits of render and compression noise are the same color. Only when reproduction holds does phase two begin: static regions that should live become animated or interactive, reveals and motion are added, then responsiveness across the surface's devices. Where the comp does not cover the whole surface, continue building the remainder inside the comp's recorded world and design language; a component the comp never shows inherits the recorded system's corner language, line weights, and materials, and may not introduce container styles, border weights, or chrome the comp never uses. +**The comp rules composition; the world rules material.** Composition is the comp's dominion: topology, element inventory, density, region assignment. The recorded world's system stays binding through every phase: palette roles at their recorded scale of use, type tiers, corner language, motion register. Product truth in **PRODUCT.md** outranks both, so a comp never deletes a core product answer. A genuine conflict between the comp and a DESIGN.md named rule is resolved consciously and rides to the documenter's re-record at finish: adopt the deviation into the world's record, or conform the build. + +When an approved comp exists, the comp is king, and the crown is scoped by the rule above: the comp rules composition; the world rules material. The build happens in phases. The comp is a spatial contract, not a mood board: only the user can downgrade its authority, in explicit words, and difficulty never infers a downgrade. Phase one is reproduction: rebuild the comp at its own breakpoint until a screenshot at the comp's width and height overlaps it near pixel-perfectly, materials, components, elevation, assets, and implied design language included. Exactly three concessions exist: fonts (the closest obtainable face), icons (exact match unless the user already chose an icon library), and genuine defects in the generated comp such as spelling errors. Everything else must match, and models systematically believe their HTML, CSS, and SVG recreation succeeded when it did not, so the overlap comparison is the authority, never your conviction: set the screenshot beside the freshly reopened comp image at identical dimensions after every region, never beside your memory of it, and when a region keeps losing that comparison, stop recreating it in code and produce it as a rendered asset composited into the page. The comp also outranks every written record of it: when the recorded brief or inventory commits to less than the comp shows, a softer texture, a sparser field, a sculpted plate reduced to flat CSS, correct the record upward to the comp; qualifiers like subtle, restrained, and low-contrast, and counts rounded down to a comfortable fraction, are how approved materials die between approval and build. A produced material must then survive to the screen: a texture buried under a nearly opaque color wash ships the wash, not the material, so judge every material by the screenshot beside the comp, never by the stylesheet. Every color the brief records gets that comparison by number, not by eye: sample the build screenshot's ground, dominant fields, and accents the same way each record was taken (an interior patch average where the record is an average, both end colors where the record is a gradient) and set each value against its recorded counterpart (sampled from the comp itself when the brief lacks one), and when a texture or tile paints over a base token, measure the net on-screen value, because the eye files a drifted color under the same color word and the number is what catches it. Judge the gap like a colorist, not a diff tool: a difference with a color name (warmer, grayer, darker than the record) is drift to fix, while a few digits of render and compression noise are the same color. Only when reproduction holds does phase two begin: static regions that should live become animated or interactive, reveals and motion are added, then responsiveness across the surface's devices. Where the comp does not cover the whole surface, continue building the remainder inside the comp's recorded world and design language; a component the comp never shows inherits the recorded system's corner language, line weights, and materials, and may not introduce container styles, border weights, or chrome the comp never uses. Build the assigned direction, not a safer interpretation of it. The form supplies structure, reading order, component conventions, and native motion; the product supplies every fact. Commit every atom: nav, buttons, inputs, and links are rebuilt in the form's vocabulary, and a stock component inside a committed form is a lapse. Land the first build fully committed; committing is the hard part, and the passes that follow exist to make the committed thing clear and effective, never to dilute it. In unattended work, the safe rendition is the known risk. @@ -111,7 +115,7 @@ After the second inspection round the build thread's polishing is over: no furth Then spawn the shipped finish reviewer, `impeccable-finish-reviewer` (`impeccable_finish_reviewer` in codex; `/impeccable-finish-reviewer` in Cursor; on GitHub Copilot say "Use the impeccable-finish-reviewer agent"), with the original request, confirmed answers, the artifact path, the screenshot paths, the direction contract, existing hook findings, the QUALITY BAR card and approved comp paths (a code-led build has no approved comp; the chosen decision comp rides in that slot as the critique reference, named as such), the craft-floor reference path, and on a native platform the platform reference path(s), [ios.md](ios.md) / [android.md](android.md), both on adaptive, plus one line saying no detector ran, so the reviewer judges in the platform's conventions rather than the web's. The reviewer has no browser; screenshots you fail to pass are checks it cannot run. Never read the shipped agents' definition files before spawning; the harness loads them at spawn, and you owe only the input packet. Wait on any agent with one long timeout rather than a loop of short polls, and spend the wait on the next independent step. Verify the return carries the five contract sections (a recapture return carries one, its recapture list); on an empty or thrashed return, respawn once with the same inputs. This review never runs inside the build thread and never inherits it: spawn the reviewer fresh, with no forked conversation history (`fork_turns: 0` in codex); a reviewer that inherits your transcript inherits your framing, your optimism, and your abstractions, and everything it needs travels in the inputs above. Only a harness with no subagent capability at all substitutes a fresh in-thread pass after stepping fully out of the build context, run from [degraded/finish-reviewer.md](degraded/finish-reviewer.md), and a substituted or failed-and-replaced review is disclosed in one line at finish, never silently. -Act on the disposition word; there are exactly four. **recapture**: the evidence failed, not the build. Recapture what the return names under the capture-validity rules, then run a full review over the new evidence. A review conducted on invalid evidence binds nothing, and a verdict pass may never follow it. **rebuild**: fidelity failed wholesale, not in patches. Skip the fix batch and execute the rebuild immediately: re-derive the named regions, produce the named assets, and send the result back for a fresh full review, never a verdict pass; a rebuild replaces regions wholesale, so the whole matrix runs again over the recaptures. Tell the user what is happening rather than asking permission to fix a failure. Consult the user only on a second rebuild directive, both verdicts on the table, or when rebuilding would discard content the user approved. **ship**: nothing is owed; report the verdict at its scope and continue to the documenter. **fix**: apply the material fixes in one batch, rebuild once, and recapture the same viewports over the same files. A recapture measures positions, loading, and overflow; it cannot measure whether a fix reached the quality the finding named, so send the recaptured screenshots back to the same reviewer for a verdict scoring every material fix resolved, partial, or unresolved (through the harness's agent continuation; without one, run the scoring fresh from [degraded/finish-reviewer.md](degraded/finish-reviewer.md)'s Verdict Pass). Fixes scored partial or unresolved get another batch, recapture, and verdict. Two rounds is the budget an unattended run ends at; an attended session's ceiling belongs to the user, so when the second verdict still lists open items, put the table in front of them and let them choose between shipping as it stands and funding another round. Whoever decides, stop the moment a round resolves nothing, and the reviewer's findings are the only list you work from, never your own re-opened hunt. Do not run a second detector. +Act on the disposition word; there are exactly four. **recapture**: the evidence failed, not the build. Recapture what the return names under the capture-validity rules, then run a full review over the new evidence. A review conducted on invalid evidence binds nothing, and a verdict pass may never follow it. **rebuild**: fidelity failed wholesale, not in patches. Skip the fix batch and execute the rebuild immediately: re-derive the named regions, produce the named assets, and send the result back for a fresh full review, never a verdict pass; a rebuild replaces regions wholesale, so the whole matrix runs again over the recaptures. Tell the user what is happening rather than asking permission to fix a failure. Consult the user only on a second rebuild directive, both verdicts on the table, or when rebuilding would discard content the user approved. **ship**: nothing is owed; report the verdict at its scope and continue to the documenter. **fix**: apply the material fixes in one batch, rebuild once, and recapture the same viewports over the same files. A recapture measures positions, loading, and overflow; it cannot measure whether a fix reached the quality the finding named, so send the recaptured screenshots back to the same reviewer for a verdict scoring every material fix resolved, partial, or unresolved (through the harness's agent continuation; without one, run the scoring fresh from [degraded/finish-reviewer.md](degraded/finish-reviewer.md)'s Verdict Pass). Fixes scored partial or unresolved get another batch, recapture, and verdict. Two rounds is the budget an unattended run ends at; an attended session's ceiling belongs to the user, so when the second verdict still lists open items, put the table in front of them and let them choose between shipping as it stands and funding another round; the table states in one line that the documenter has not run and, when DESIGN.md is still the pre-build seed, names that too, so the stop reads as what it is, a paused run with an unrecorded world. Whoever decides, stop the moment a round resolves nothing, and the reviewer's findings are the only list you work from, never your own re-opened hunt. Do not run a second detector. A rebuild and a fix round share one asset rule: a raster either round creates or replaces is still asset work under [visualize.md](visualize.md)'s Produce section and keeps its **provenance** like every build raster, and a raster the round abandons is deleted in the same batch. Before either round's result goes back for review or verdict, run `node .agent/skills/impeccable/scripts/embed-prompt.mjs --scan ` over the directories the artifact's rasters ship from and clear every file it reports by embedding what it is missing: the exact generation prompt for a produced raster, the origin for a sourced, stock, or pre-existing one. The scan only reads; deletion is reserved for rasters the round abandoned, never for a file the scan flagged. diff --git a/.agent/skills/impeccable/reference/visual-cues.md b/.agent/skills/impeccable/reference/visual-cues.md new file mode 100644 index 000000000..8d7e37791 --- /dev/null +++ b/.agent/skills/impeccable/reference/visual-cues.md @@ -0,0 +1,560 @@ +# Visual Cues Pipeline + +Loaded by `/impeccable document` seed mode (Step 4) on the questionnaire path. Input: the seed interview's three named references and one anti-reference, the asset observations from seed Step 2, and PRODUCT.md. The chat interview asks no color, typography, or motion question on this path; the questionnaire and this pipeline own those decisions. Output: cue images plus `cues.json` under `.impeccable/visual-cues/`, ready for the user to pick from by eye in a later round. + +Tell the user once, before starting: *"Generating visual cues; this can take a minute or two."* Then work without narration. Chat carries no per-image commentary, no palette tables, no prompt dumps; the folder is the deliverable. + +## The image + +Each cue is **one generation**: the hero. + +```text +HERO [slug].png (1500x1500) ++---------------------------+ +| one close-framed scene, | +| the product's world, | +| four scene objects | +| carrying the palette, | +| every surface in frame | +| one of the four colors, | +| everything in crisp | +| deep focus, no blur | ++---------------------------+ + saved as-is, NO crop +``` + +The **hero** is the visual cue: one close-framed scene from the product's world, its four objects carrying the palette as large color fields. This is what the user will pick between, so the colors get the real estate, and the frame has exactly two known thieves. **Blur**: an out-of-focus background is frame spent on mush, so everything renders in crisp, deep focus, front to back. **Undressed space**: every surface in frame is set-dressed to carry one of the four colors; the ground and backdrop belong to the neutral's material, and there is no bare wall, empty room, or whole person spending frame on colors nobody chose (hands mid-work belong to the scene; a face and outfit donate skin, hair, and clothing to the palette). + +Example, hero = a flower atelier's worktable, framed close: unbleached linen spread as the ground and backdrop (neutral), a massed bank of wine-plum blooms in a ceramic vessel as the subject (primary), a band of dusty-rose petals beside it (secondary), one persimmon bloom set apart (tertiary), a florist's hands mid-arrangement, everything sharp. + +## The studio + +Palettes come from **six competing specialists**, not from you. One mind composing six palettes converges on one taste, and six versions of one mood defeat the pick round. Each specialist is a subagent locked to a **persona**: a different method of searching color space (object association, cultural reframing, remote analogy, self-imposed constraint, audience perspective-taking, emotional sequencing). Same brief, same output format, different search method; the separation is what makes the six palettes genuinely different. + +The studio runs as **one parallel wave**. You carve six territories from the brief (Step 2), then all six personas spawn at once (Step 3), each composing a palette inside its own territory and staging it in its hero. No chained reviews, no revision loops: distinctness is settled upfront by the territory assignments, and speed comes from doing everything in one wave. + +Subagents start without your context, so everything a specialist needs must reach it whole. The invariant material (brief packet, persona methods, territory map, craft rules, prompt skeleton, work steps) travels as one **brief file** every spawn reads; only the per-persona slots (persona number and name, territory line) ride in the spawn task itself. Copy shared blocks into the brief file **verbatim**; a summarized rule is a dropped rule, and retyping the full set into six long tasks costs minutes of pure prompt-typing per wave. + +## Step 1: Assemble the brief packet + +Write one self-contained text block that a specialist with zero context can design from. Include, in full: + +- **The product**: from PRODUCT.md, what it is, sells, or shows; the audience; the positioning; the personality words. +- **The interview**: the three named references and the anti-reference. State that the anti-reference is a hard constraint on every palette. There is no chat color strategy or hue anchor on this path; the territories (Step 2) own the color search. +- **The assets**: the seed Step 2 observations (logo colors, recurring materials, photo moods). + +Label it `BRIEF PACKET`; it goes into the brief file once (Step 3), so every specialist designs from the identical packet. Do **not** add your own palette leanings to it: the personas do the leaning. + +## The six personas + +The numbers only name the personas; Step 2 pairs each with a territory. + +1. **The Ecological Naturalist**: derive every color from real materials, organisms, weather, or landscapes in the product's world. Name the physical source of each hex. No abstract "brand blue" thinking; the palette must feel materially plausible, textural, grounded. +2. **The Cross-Cultural Anthropologist**: treat color as cultural meaning. Compare at least two cultural lenses relevant to this audience, find where the meanings align and where they diverge, and turn that tension into the palette. Do not stereotype or flatten into cliché. +3. **The Analogy Hacker**: never start from the product category. Choose one distant domain (a jazz progression, a thermal camera, a medieval manuscript, a subway map, a laboratory stain chart) and translate its structure into color logic. The palette should never emerge from category convention, yet feel coherent once explained. +4. **The Constraint Poet**: before composing, invent three to five severe but fruitful constraints ("one accent only", "every color must survive dusk", "mineral tones plus one synthetic intruder"), then compose the strongest palette inside them. Do not relax the rules; tension is the point. +5. **The Audience Empath**: design from the audience's exact emotional and cognitive state at their first critical encounter with the product: what they need to feel, notice, and trust in that moment. The brand's ego does not vote. +6. **The Emotion Dramaturge**: build the palette as an emotional arc, not a static board. Define the felt sequence of using this product (invitation, curiosity, tension, confidence, release) and assign hue, lightness, and saturation to its beats. + +Accessibility and implementation stay **out** of the personas: the PALETTE RULES block carries the contrast requirements for everyone. A persona whose identity is "the contrast checker" composes cautious mud. + +## Shared blocks + +These go into the brief file (Step 3) in the order its assembly list names. They are the single source of the craft rules; never restate them loosely. + +### PALETTE RULES + +```text +Compose exactly four hex values with a 60-30-10 balance. These are +website/app colors, headed for design tokens, not scene colors: + +- neutral (~60%, the dominant): the surface, what most of a screen will + be. An off-white or near-white with a temperature tint, at least as + pale as #ECEAE6: a mid-tone neutral that reads fine as a scene material + turns into a gray slab once it is a screen background. Near-black is + the one alternative, when the mood calls for dark; there is no + in-between. Never pure #FFFFFF or #000000. +- primary (~30%): the brand color, the mood's main carrier. Must read + clearly against the neutral. +- secondary: structure and support: an adjacent hue, or the primary + shifted in lightness and chroma. Visibly a different swatch, not a + darker copy of primary. +- tertiary (~10%, the accent): the most saturated of the four and used + smallest; distinct in hue from primary so it keeps signal value. + +Hard rules: +- Write one mood phrase specific enough to compose from. Good: "dawn + delivery run, cut stems in cold water, the city still gray". Bad: + "modern and clean"; a phrase that fits any brand composes nothing. +- Every color earns its place: for each role, one line on what it does + and why it fits this product. A color you cannot justify in one line + gets replaced, not kept because it looks nice. +- Contrast is non-negotiable: primary must read clearly on the neutral; + tertiary must pop against both. A palette that fails either is not done. +- Any two roles must be nameable apart at a glance. A dark green primary + next to a dark green neutral is one color, not two. +- The brief's anti-reference is a hard constraint. +``` + +### CONCEPT RULES + +```text +Attach one one-line cue concept to the palette; the hero image stages it. + +- The concept lives in the product's own world, named with the brief's + own nouns. A concept that could belong to any other product is not + done; sharpen it until it could only be this brand. +- Give it a material world (botanical, ceramic, paper, textile, metal, + glass, stone, food) as the supporting cast around the product's + subject, never a replacement for it. +- Name four scene objects, the palette's physical carriers, each passing + three tests: it lives inside the scene, so it plausibly sits in the + hero composition; it can carry its color as one large unbroken field + at close framing (a massed bank of blooms, a draped cloth, a glazed + vessel; a single bud or a thin ribbon cannot, and a color whose + carrier is one small object ships as an unjudgeable sliver); and it + is plain and unprinted (no tags, labels, packaging, printed cards, + or stationery), because text on an object ruins the cue. +- Name the concept with a two-word slug (amber-dusk, coastal-glass). +``` + +### HERO PROMPT skeleton + +Written like screenplay direction, not a keyword list: subject doing something, in a place, in a light. The scene stays the product's world; the palette's real estate is won inside it, by set dressing and by focus, never by deleting the scene. **Never ask for shallow depth of field, bokeh, or a soft background**: an out-of-focus stretch of frame is real estate spent on mush, so the prompt demands crisp, deep focus front to back. And every surface in frame is dressed to carry one of the four colors: the ground and backdrop belong to the neutral's material, and no bare wall, empty room, or whole person appears (hands mid-work belong to the scene; a face and outfit donate skin, hair, and clothing to the frame). + +Name every color in plain language only, as a rich material description ("deep wine-plum, the color of reduced port"), tied to its carrier. **Never put a hex code, or any number, in an image prompt**: image models that render text well will paint it onto the image as a label or a swatch strip, and even one stray numeral fails the wordless check below. The hexes already travel in the PALETTE report line, and the compile step snaps them to rendered pixels; the prompt's job is the color's look, not its code. For the same reason, say what fills the frame instead of listing what to omit; a bare "no text" line is the weakest form of the instruction and the wordless sentence below is the strong form. Keep both. + +Light the scene to reveal color, not to set a mood. In a dim, dusky, or nocturnal rendering every color sinks into one warm-brown murk the user cannot sample from, so bright, generous light is a hard rule even when the concept's moment is dark: an "after hours" or "dawn" concept keeps its props and story but is lit like a studio still, not like the hour. Dark palettes are welcome; dark renderings are not; a near-black primary should read as a rich, clearly-lit surface, not as underexposure. + +The neutral's ground pays the highest price for shading. The compile step snaps each role to the pixels the hero actually rendered, and the picker shows the snapped value, so a nominally off-white linen that renders in mid-gray shadow ships a mid-gray surface color to the user. Describe the neutral's material as pale in the prompt ("pale unbleached linen, near-white in even light") and keep its field lit edge to edge, so the rendered ground stays as pale as the composed hex. Fill every `[bracketed]` slot; never leave template language in the prompt. + +```text +One full-bleed photograph, square format, framed close: [one scene from +the product's world: subject and what it is doing, setting], the subject +filling most of the frame, not a wide view of the room. The scene +contains [object A], [object B], [object C], and [object D], all plainly +visible. The scene is art-directed as bold color blocking in a strict +four-color story: every surface in frame carries one of the four colors, +each color one large unbroken field, none reduced to a sliver, no +stretch of frame left to a color outside the four: [the neutral's +carrier], [plain-language color with a material-world comparison], as +the ground and backdrop, about half the frame, evenly lit edge to edge +with no shadow gradient across it; [the primary's carrier], +[color description], one continuous mass over roughly a third of the +frame, carried by the main subject; [the secondary's carrier], [color +description], a clear supporting field beside it; [the tertiary's +carrier], [color description], one small vivid accent, big enough to +read at a glance. Focus: deep and even, every object and surface in +crisp sharp focus from front to back; no blur, no bokeh, no soft +out-of-focus background anywhere in the frame. Camera: [tight still-life +framing and angle, e.g. "straight-on still life at table height" or +"high overhead of the worktable"]. Lighting: bright, even, generous +studio daylight; every color fully lit, true, and saturated, no area +lost to shadow. Mood: [two or three adjectives from the brief's +personality]. The image is completely wordless: every material is plain +and unprinted, a world with no lettering, numerals, tags, labels, or +graphics anywhere in it. Rich, saturated, editorial color; not a dim, +dusky, nocturnal, or candlelit image. Photorealistic, real texture. No +text, no watermark. +``` + +## Step 2: Carve the territories + +Split the brief's color space into six **territories**, one per persona. Each is a one-line claim with two halves: a scene ground (a mood, a moment, a positioning angle) and, always, a **hue ground** it closes on (a named hue register). A hue-silent territory does not constrain color: give six specialists scenic territories and one shared brief, and every one of them will resolve to the product's one obvious hue; the hue ground is what makes the palettes diverge, the scene ground is what makes the stories diverge. Example set for a florist: "the delivery run before the city wakes: cold blue-teal dawn", "the atelier after hours: lacquer near-black with amber", "the potting bench: warm terracotta and unbleached paper", "gallery restraint: paper-white with one ink accent", "market-stall abundance: saturated market greens", "the drying room: muted botanical earth and rose". + +Hard rules: + +- **No two hue grounds share a hue family.** Six registers, six families. +- **A hue anchor exists only when an asset fixes one** (a logo's sampled color, a recurring moodboard hue from the seed Step 2 observations). When one exists it belongs to exactly one territory (two only when the brief argues for it). Name its owner; Step 3 tells everyone else the anchor is off-limits. An anchor left unassigned is an anchor every persona obeys. No asset anchor: no owner, and the map's anchor sentence is dropped. +- **A territory claims colors, not lighting.** "Lacquer near-black with amber" means those hues, staged in bright, clear light like every other palette; the HERO PROMPT skeleton forbids dim renderings, and a dark-moment territory ("after hours", "dawn") does not override it. +- The anti-reference rules all six. + +Assign each territory to the persona whose method suits it best (the Naturalist takes the most material ground, the Dramaturge the most emotional, the Empath the one closest to the audience's state). + +Done when: six one-line territories exist, each closing on a hue ground, no two hue grounds in one family, any asset-fixed anchor owned by exactly one, each assigned to a persona. + +## Step 3: The wave (parallel) + +**Pick the generation path first.** The harness's native image-generation tool is the path whenever one exists and works; a native tool that **cannot generate** (zero credits, failed auth) counts as absent: fall through without asking the user, and mention the swap in the final report. The keyless path is [image-api.md](image-api.md): its shipped wrapper and pre-answered setup are canonical, so a key in `.impeccable/.env` or a leftover project-local wrapper never outranks a working native tool, and never needs re-deriving when it is the path. + +**Do not smoke-test the path.** Presence is the whole check: a tool the harness lists works, and the image-api.md wrapper already retries transient failures internally, so a preflight generation buys nothing the first persona's report would not carry, and it costs a generation call and half a minute on every clean run. Instead, fill the brief file's tool slot with the exact call the spawns will make: the tool or wrapper command, the square-size parameter to pass, where it writes output files (some native tools ignore directory paths and save to a fixed folder of their own; say so in the slot, so no specialist rediscovers it alone), and whether the output is already guaranteed square (the shipped wrapper's is), so no specialist burns a tool call measuring it. + +If the harness exposes any subagent/spawn tool (Task, spawn_agent, agents, or similar), parallel is **required**, not preferred: emit all six spawns as **one tool-call batch, a single message carrying six spawn calls**, one persona per subagent, each doing the full job (palette, concept, hero), and only then wait for the reports. Spawning one, waiting for its report, then spawning the next is a serial loop and a failure even though every spawn "used a subagent"; so is generating any image yourself while a subagent tool exists. The whole run must take only as long as the slowest single persona. Attach the harness's image-generation skill to each spawn when the harness expects that (Codex: the `imagegen` skill). (No subagent tool at all: Step 4.) + +### The brief file + +Write `.impeccable/visual-cues/brief.md` once, before spawning: the SPECIALIST BRIEF body below with its tool slot filled, then, appended in this order, the BRIEF PACKET, **The six personas** list verbatim from this document, the TERRITORIES block from Step 2's carve, then PALETTE RULES, CONCEPT RULES, and the HERO PROMPT skeleton with its framing paragraphs, verbatim from this document. One byte-exact file read by all six replaces six retyped copies of the same several-thousand-word block: the spawn tasks stay a few lines long, the wave starts in seconds instead of minutes, and retries reread the identical rules. **If the harness's subagents cannot read files**, paste the brief file's full contents into each task instead; the file stays the single source either way. + +The TERRITORIES block is the wave's off-limits map, written once here instead of five off-limits lines retyped into every spawn: + +```text +TERRITORIES (your task names your row; every other row is off-limits) +1. [persona name]: [territory line] +2. [persona name]: [territory line] +3. [persona name]: [territory line] +4. [persona name]: [territory line] +5. [persona name]: [territory line] +6. [persona name]: [territory line] +The hue anchor ([the asset-fixed anchor]) belongs to row [N] alone. If +that row is yours, carry it; otherwise your primary must live in a +different hue family. +``` + +The block's closing anchor sentence appears only when Step 2 named an asset-fixed anchor and its owner; with no anchor, end the block after row 6. + +SPECIALIST BRIEF body: + +```text +You are a color specialist. You compose one brand palette inside an +assigned territory, then stage it in one hero image. Your spawn task +names your persona and your territory; this file carries everything +else: the brief packet, your persona's method, the territory map, the +craft rules, the prompt skeleton, and the steps below. + +This file is your only read. Do not open PRODUCT.md, DESIGN.md, or any +other repo file: the BRIEF PACKET already carries everything they would +tell you, and every extra read costs the wave time. + +Generate the image with [the exact tool or command for the chosen +generation path, the square-size parameter to pass, and where it +writes output files]. Use only that; do not edit repo files. + +The hero gets a hard budget of three generation calls, all reasons +combined (failed calls, timeouts, and the retry checks below). A call +that fails with a network, API, or timeout error may be re-run as-is +within that budget; when the budget is spent, stop and report per step +5. The failure is the parent's problem, not yours: never debug DNS or +connectivity, never install packages, and never edit or rewrite the +generation tooling. + +1. Compose your palette, in your persona's method, inside your + territory, following the PALETTE RULES section below. + +2. Draft the concept for the palette, following the CONCEPT RULES + section below. + +3. Critique your own work before touching the image. Check the palette + against every PALETTE RULES line, against your territory's hue + ground, and against every other row of the TERRITORIES block; check + the concept against every CONCEPT RULES line. Name each failure and + fix it. A primary that drifted into another territory's hue family, + or into an anchor you do not own, is a failure to fix now, not one + to ship. + +4. Build the hero prompt from the HERO PROMPT skeleton below and + generate the HERO image at 1500x1500 or the nearest supported + square. The image must be square: a size line inside the prompt + does not pin the canvas, so whenever the tool accepts a size or + aspect-ratio parameter, pass square (1:1) explicitly; the compile + step rejects non-square images, and the fix is regenerating with + that parameter actually set, not editing the file. Five sibling + specialists share the generation tool's output folder, so a default + output name is a race that hands you a sibling's image: if the tool + accepts an output filename, pass [slug]-hero.png, and work only with + the exact file path the tool reports back for YOUR generation. A + tool that ignores directory paths and saves to its own fixed folder + is normal, not an error: after the inspection below, copy the + reported file to [visual-cues dir]/[slug]-hero.png and report the + copy's path. + + Open the result and inspect it once, four checks, each with at most + one retry, all inside the three-call budget; keep the last result + regardless. + - Ownership: the scene is yours, staging your palette; a wrong + subject or palette means you picked up a sibling's file from the + race above, so regenerate once with the [slug] filename. + - Wordless: any lettering, numeral, label, or swatch strip anywhere + in the frame fails the cue; regenerate once, same prompt, plus + "The image contains no lettering, numerals, or graphic marks of + any kind; every surface is plain and unprinted." + - Real estate: if the palette's fields read as slivers, with frame + spent on a blurred background, a bare wall, an empty room, or a + whole person instead of the four colors, regenerate once, same + prompt, plus "Frame tighter on the scene's four color carriers; + every surface in frame carries one of the four colors, and + everything is in crisp sharp focus, no blur anywhere." + - Light: if the image is dim, dusky, or nocturnal, with palette + colors sinking into shadow, or the neutral's ground renders + visibly darker than its composed color (off-white linen reading + as mid-gray), regenerate once, same prompt, plus "Render the + scene in bright, generous daylight-quality studio light; every + color fully lit and clearly readable, the ground pale and evenly + lit edge to edge, no darkness anywhere in the frame." + +5. Reply with exactly these three lines and nothing else, the path + being the file you verified in step 4: + +COMPLETED [slug] +HERO [absolute path to the hero PNG] +PALETTE primary=#RRGGBB;secondary=#RRGGBB;tertiary=#RRGGBB;neutral=#RRGGBB + +If the budget runs out first, reply instead with the ERROR line plus +one line for each thing you finished before the failure, so a retry +can start where you stopped: + +ERROR [persona number] [short reason] +PALETTE primary=#RRGGBB;secondary=#RRGGBB;tertiary=#RRGGBB;neutral=#RRGGBB +HERO-PROMPT [the finished hero prompt, on one line] +``` + +### The spawn task + +Each spawn task is a few lines; the brief file carries the weight. The persona's method, the off-limits map, and the anchor rule all live in the brief; do **not** paste them back into the tasks, that is the retyping the brief file exists to kill: + +```text +You are a color specialist. Read [absolute path to +.impeccable/visual-cues/brief.md] now, before anything else, and follow +it exactly: it carries your brief, your persona's method, the territory +map, craft rules, prompt skeleton, work steps, generation budget, and +report format. + +You are persona [N], [persona name]. +YOUR TERRITORY: [this persona's one-line territory] + +Your answer is unsuccessful if it occupies the same visual, emotional, +or strategic territory as another specialist, or if your primary lands +in a hue family another territory claims. Stay inside your own. +``` + +Six spawns fit the observed Codex ceiling of 6 concurrent subagents, so the wave normally runs whole. If a spawn is rejected with a thread-limit error, collect the accepted spawns, close those agents to release their slots, then run a second pass for the rejects. If every spawn ERRORs because subagents lack the image tool, fall back to Step 4's loop using the territories you already carved. Close every agent after collecting its report. If two reports share a slug, rename one before Step 5 (the compile `--slug` flag controls the filenames). + +Retry an ERROR persona at most once, and never from scratch: the retry task is the original spawn task plus the ERROR report's PALETTE / HERO-PROMPT lines and one added instruction, "these lines are finished work from your first attempt; skip the steps they cover and resume at the first uncovered step." An ERROR persona that fails its retry is dropped; five good cues beat a stalled pipeline. + +Done when: every persona has either a three-line COMPLETED report or an ERROR report. + +## Step 4: Serial path (no subagents) + +Only when the harness has no subagent tool at all: pick the generation path by the same precedence rule, keep the same six territories, and play all **six** personas yourself, one at a time and honestly in-method (the Naturalist names physical sources; the Constraint Poet writes its constraints before composing), following the SPECIALIST BRIEF body from its step 1 (palette inside the territory, concept, hero, look-and-retry) and recording the same facts a subagent would report (slug, hero path, palette). No brief file needed: this document is already in your context. The user still gets six cues; only the clock differs. + +Same done-condition as Step 3, over all six personas. + +## Step 5: Compile + +Before anything else, two gates on the reported heroes: + +- **Unique**: hash every reported hero (`md5 [paths]`); each must be unique. Two identical heroes mean two subagents raced on a shared default output filename; re-spawn one of the pair and take its fresh file before compiling. +- **Square**: check every reported hero's dimensions (`sips -g pixelWidth -g pixelHeight [paths]` on macOS); width must equal height. The compile script rejects non-square inputs, and squaring after the fact is off the table (cropping eats scene, padding invents background), so a non-square hero is a failed generation: re-spawn that persona once and take the fresh file. Still non-square after the re-spawn: drop the cue. + +A gate re-spawn follows Step 3's retry pattern: the original spawn task plus the report's PALETTE line (its palette was fine; only the image failed the gate) and the resume instruction, so the retry regenerates the hero without recomposing. + +For each COMPLETED report, run one command, carrying the report's slug and its `PALETTE` line: + +```text +node .agent/skills/impeccable/scripts/visual-cues.mjs compile [hero.png] \ + --slug [slug] \ + --palette "primary=#RRGGBB;secondary=#RRGGBB;tertiary=#RRGGBB;neutral=#RRGGBB" \ + --out .impeccable/visual-cues +``` + +The script copies the hero untouched to `[slug].png` (removing a `[slug]-hero.png` intermediate inside the out dir, so the folder holds one file per cue, not a byte-identical pair); for each palette role it searches the hero for the closest rendered pixel (`snapped`, with its hero position), then updates `cues.json`: + +```json +{ + "cues": ["amber-dusk", "coastal-glass"], + "palette": { + "amber-dusk": { "primary": { "hex": "#B8422E", "snapped": "#B4402F", "at": [312, 540] } } + } +} +``` + +Done when: `cues.json` lists one entry per completed palette and every listed slug has its hero PNG on disk. + +## Step 6: Compose the font pairs + +Run this pass yourself after compiling the cues and before launching the picker. Do not spawn specialists; six pairs need one editor holding the same brand facts and ranking them together. + +Build the composition context from exactly these inputs: + +- **The surface modes** this step names below. The interview asks no typography direction on this path, so the modes, the references, and the assets are the anchor; compose from them instead of asking for a direction. +- **The three named references** and **the anti-reference** from the seed interview. The anti-reference is a hard constraint on every pair. +- From PRODUCT.md, only `## Users`, `## Product Purpose`, `## Positioning`, and `## Brand Commitments`. +- The seed Step 2 asset observations when they exist, with the logo's letterforms as the strongest evidence. + +Do **not** read PRODUCT.md wholesale into this task or add any other section to the composition context. The chosen palette does not exist yet; the picker joins it to the pairs later. + +### Name the surfaces before composing + +A pair that carries a landing page can fail a dashboard outright. The landing page asks the heading face for a six-word line at 40px and up; the dashboard asks the body face for a 12px column label sitting next to a number. Suggest fonts without knowing which of those is on the table and you are guessing at the only question that separates the shortlists. + +So decide first what this product is made of, from PRODUCT.md and the codebase, using the four surface kinds the picker's first question offers: `persuade` (landing, marketing, pricing), `operate` (app UI, dashboards, admin, settings), `read` (docs, articles, guides, changelogs), `experience` (portfolios, galleries, showcases). Name every kind the product already implies, not the one it leads with: a tool with a marketing site and a documentation site is `operate, read, persuade`. This is the same set Step 7 writes into `context.json` as `modes`, so make the judgment once, here, and carry it. No clear signal anywhere leaves the set at `persuade` alone. + +What each surface asks of a pair: + +- **persuade**: the heading face is the page. It has to hold a short line at display size, where counters, joins, and one badly drawn character are all visible at a glance. The body face sets a paragraph and two button labels, so it is asked for less. This is the surface where a face with a point of view earns its place. +- **operate**: the body face is also the interface face, and it works between 11px and 14px on column headings, form labels, menu items, and numbers in a row. Ask it for a 1, l, and I that stay apart, a 0 that does not read as O, lining figures, and a medium or semibold that the family actually draws rather than one the browser fakes. Headings here are 16px to 24px panel titles set many times per screen, so a face that only comes alive at poster size is the wrong heading for this surface. +- **read**: the body face carries hundreds of words at 16px to 18px across a 60 to 75 character line, which is the hardest job on this list. Ask it for a generous x-height, an italic the family drew rather than sloped, and a bold that still reads inline. The heading face sits inside running text at 1.2 to 1.6 times the body, close enough that a mismatch in proportion shows immediately. +- **experience**: the work is the subject and the type is the room around it. The heading face can be the most expressive of the six pairs. The body face sets captions, credits, and index metadata at 11px to 13px, often tracked out in caps, so it has to stay even when letter-spaced and survive at those sizes. + +Rank against the strictest surface in the set, never the loudest. Operate and read set the floor the body face has to clear; persuade and experience set how far the heading is allowed to go. Every pair still has to serve every named surface: the user picks one pair for the whole product, and one type system comes out the other end. A pair that only holds up on one surface belongs at the bottom of the list, or off it. None of this loosens [new-work.md](new-work.md)'s `rule:skill-typo-reflex-faces`, which rules all six pairs whatever the surfaces are. + +Compose six distinct territories, then resolve each into one heading and body pair: + +- Spread the six across type directions that serve the surface set (serif display + sans body, single sans, display + mono, and their neighbours), each pair's voice argued from a named reference, an asset letterform, or a PRODUCT.md brand fact. No two pairs may share a heading family or read as the same voice. +- Apply [new-work.md](new-work.md)'s `rule:skill-typo-reflex-faces` as the canonical denylist and subject-world test. A family the user named in the interview or supplied assets is the only exception. +- Follow [typeset.md](typeset.md)'s workhorse discipline. Give the heading a point of view; give the body a real text face that stays legible at 15px and provides regular and bold weights. A display face in the body slot fails the pair. Where the surface set names `operate` or `read`, that 15px floor is not the test the body face has to pass: the sizes in those two entries above are. +- Verify every family exists on Google Fonts under the exact current name. Spelling is part of correctness; use `Source Sans 3`, never a retired family name. +- Every pair uses Latin-script faces, and the specimen headline and preview copy are written in English, even when the product's own language is not. Multilingual and CJK support is not built yet: a non-Latin face renders the picker's previews and scale sheets wrong, so English stands in for now. TODO: language-aware pairs that match PRODUCT.md's language and load the right Google Fonts subsets, once the picker's previews support them. +- Write `why` as three to five words naming the pair's voice, not a sentence about the brand. The picker sets it in tracked caps under the two family names, so anything longer wraps and stops scanning. `Considered and editorial`, not `Source Serif 4 gives the questionnaire an editorial voice while Source Sans 3 keeps guidance easy to scan`. +- Order the pairs best-first, judged on the strictest surface in the set. `pairs[0]` is the recommendation and reaches the picker pre-selected. + +Choose the headline and every wireframe label from the product's own world. Do not invent claims or use placeholder prose that could describe any brand. + +- **Hero**: a headline of at most six words (`specimen.headline`). +- **Wireframe**: every other label the type-preview artboard shows (`preview`): a short brand mark, four nav labels, nav and menu actions, two CTA labels, four proof chips, a section title, one section link, three gallery cards (`title` + `meta`), four footer links, and a footer mark. Pull each string from PRODUCT.md, the interview, or supplied assets. Keep labels short enough to fit the artboard. + +**Running text is not yours to write.** The picker sets every paragraph in lorem, because a body face is judged on texture and real prose pulls the eye into reading it instead. Leave `specimen.body` and `preview.sectionBody` out of the file. + +Write `.impeccable/visual-cues/fonts.json` with this shape: + +```json +{ + "version": 1, + "specimen": { + "headline": "Six words from the product's world" + }, + "preview": { + "brand": "Ab", + "nav": ["Shop", "Stories", "Visit", "About"], + "navAction": "Order", + "menuAction": "Menu", + "ctaPrimary": "Primary action", + "ctaSecondary": "Secondary action", + "proof": ["Proof one", "Proof two", "Proof three", "Proof four"], + "sectionTitle": "Section title", + "sectionLink": "Section link", + "gallery": [ + { "title": "Card one", "meta": "Detail one" }, + { "title": "Card two", "meta": "Detail two" }, + { "title": "Card three", "meta": "Detail three" } + ], + "footerLinks": ["Link one", "Link two", "Link three", "Link four"], + "footerMark": "© Brand" + }, + "pairs": [ + { + "id": "kebab-slug", + "name": "Short human label", + "heading": { "family": "Exact Google Fonts Name", "weight": 600 }, + "body": { "family": "Exact Google Fonts Name", "weight": 400 }, + "why": "One sentence tying this pair to a named brand fact." + } + ] +} +``` + +Write exactly six pair entries. Each role carries the single weight it needs; the picker also loads weight 700 for each body family. A per-pair `specimen` or `preview` override may replace the shared strings when the brand evidence warrants it. + +If the references are missing because the interview was skipped, say in one line that the typography set is composed from product truth alone, then compose all six from the four allowed PRODUCT.md sections. Still write the file. + +Parse the finished file as JSON and verify its version, specimen, preview (every field above), six unique ids, six unique heading families, role names, weights, and short `why` fields before continuing. + +Done when: `fonts.json` is parseable, contains exactly six ranked pairs, every family name has been checked against Google Fonts, and the preview copy reads as this product, not generic SaaS filler. + +## Step 7: Launch the picker + +Before launching, write the surface set from Step 6 into `.impeccable/design-context/context.json` as a top-level `modes` array: any of `persuade`, `operate`, `read`, `experience`. Do not re-derive it; the font pairs were composed against that reading, and a second judgment here would hand the user tiles the shortlist never answered to. The picker's first question pre-checks those tiles as its starting point; the user corrects the set by hand, and the final selection returns in the answers as `surface-modes`. Omit the field when the product gave no clear signal; the picker then starts from `persuade` alone. + +In the same write, add a top-level `context` object carrying the chat half of the run. The whole file is `{ "schemaVersion": 1, "modes": [...], "context": {...} }`, and it is the store's copy of what chat learned, because after the last question the picker shows the user a design context document assembled from everything the interview learned, and the browser only knows what it asked itself. Every field is optional and the document renders whatever arrives, so fill what the run actually established and leave out the rest: + +```json +"context": { + "product": { + "name": "[product name]", + "purpose": "[one-sentence purpose from PRODUCT.md]", + "success": "[the success definition from PRODUCT.md Product Purpose, one line]", + "platform": "[bare value from PRODUCT.md Platform: web, ios, android, or adaptive]", + "positioning": { "not": "[what it is not, from PRODUCT.md Positioning]", "this": "[what it is instead]" }, + "clarities": ["[one line per item of PRODUCT.md's what-must-be-clear-first list]"], + "conversion": "[primary conversion from PRODUCT.md Product Purpose, bare action: book a consultation]", + "principles": [{ "title": "[principle name from PRODUCT.md Design Principles]", "detail": "[one clause: what it means for design]" }], + "surfaces": { "persuade": "[what this surface is for this product, one line]", "operate": "[...]", "read": "[...]", "experience": "[...]" }, + "operatingContext": "[one line from PRODUCT.md Operating Context]" + }, + "audience": { + "primary": "[who]", "secondary": "[who]", + "emotion": "[emotional goal on landing]", + "leaving": "[what they should leave with, from the purpose and success definition]", + "needs": ["[need]"], + "trust": ["[trust trigger, from PRODUCT.md Evidence on Hand and Users]"], + "inclusion": ["[who must not be excluded, from PRODUCT.md Accessibility and Inclusion]"] + }, + "brand": { + "words": ["[word]"], + "personality": "[one sentence from PRODUCT.md Brand Personality]", + "principles": ["[one line per principle from PRODUCT.md Product Principles, or the legacy Design Principles heading]"], + "voice": [{ "say": "[a concrete line the product would write; 2 to 4 pairs, wording examples, never adjectives]", "not": "[the same message written the way the product refuses to sound]" }], + "commitments": ["[one line per commitment from PRODUCT.md Brand Commitments]"] + }, + "assets": [ + "[asset name: what Step 2 read off it; a plain string when no file was provided]", + { "file": "[filename staged in .impeccable/design-context/assets/]", "kind": "[logo, moodboard, or reference]", "note": "[the one-line Step 2 observation for this file]" } + ], + "color": { "assetLocks": ["[one short color fact an asset fixes, e.g. Primary locked from the logo mark; only when an asset names one]"] }, + "interview": { + "references": [{ "name": "[interview reference, one entry per name]", "takeaway": "[one clause: what this reference lends the design]" }], + "antiReference": { "name": "[the interview's anti-reference]", "why": "[one clause: why this is the wrong direction]" } + } +} +``` + +Quote the user's answers, not paraphrases of them; the document labels interview fields as the questions they answered. A missing block renders as a pointer to where that truth lives (PRODUCT.md), so a run with no `context.json` at all still produces a complete document. The document reads each field from `context.json` first and falls back to a legacy `cues.json` that still carries it. + +The optionality is field by field, and the document omits the block of any field that does not arrive, so fill a field only when its PRODUCT.md section or interview answer exists. A legacy PRODUCT.md without Positioning, Platform, Operating Context, or Brand Commitments yields a context without those fields, never an invented value. `product.clarities` carries PRODUCT.md's "What must be clear first" list under a shorter key. `product.conversion` names the single action the product most wants. `product.principles` carries PRODUCT.md's Design Principles, one `{ title, detail }` entry per line. `product.surfaces` maps each mode the run might choose to what that surface is for this product, not the generic tile copy. Only include keys for surfaces that exist in the product; the document reads the map for whichever surfaces the questionnaire chose. `interview.references` and `interview.antiReference` also accept their older shapes, plain strings, which render as the bare pills and single-name callout they always did. Never write `interview.colorStrategy`, `interview.hueAnchor`, `interview.typeDirection`, or `interview.motionEnergy`: the chat interview does not ask those questions on this path, `answers.json` owns color, typography, and motion, and the document already renders its interview-direction blocks only when those keys arrive, so their absence reads as chat silence, not as a gap. `assets` mixes both shapes in one list: a file the user actually provided is staged under `.impeccable/design-context/assets/` (seed Step 2 owns the copy) and written as the object form, which the document renders as an image (a `logo` proofed on the committed primary and neutral grounds, a `moodboard` or `reference` in a wide frame, the note under it); a words-only observation stays the plain string it always was. + +Three of the additions are derived at write time rather than asked: `brand.principles` copies the PRODUCT.md principles list (the current Product Principles heading or the legacy Design Principles one), `brand.voice` distills Brand Personality and Brand Commitments into two to four say / not pairs, each half a concrete line of wording the product would or would not publish, never an adjective, and `color.assetLocks` records color facts the provided assets fix (one short line each, written only when Step 2 actually read such a fact off an asset). None of the three adds an interview question, and all three are omitted rather than invented when their source is missing. + +Five of the questions are then answered per surface rather than once for the whole run, because the answer that suits a marketing page rarely suits the tool it sells: `color-strategy`, `motion-energy` (how much movement there is), `boundary-style` (how sections are separated), `corner-style` (how round shapes are), and `depth-style` (how far off the page things sit). Each of the five comes back twice over. The bare key holds the leading surface's answer, which is the first chosen tile in tile order and the one every later screen previews. Alongside it is one `-` key for every surface chosen, `` being `persuade`, `operate`, `read`, or `experience`. Surfaces the user never opened are included too, holding the default for their kind; a surface nobody chose returns nothing at all. + +`motion-energy` is the one exception to that shape, because the question is only put to two of the four surfaces. A landing page and a portfolio are watched, so how much they move is a house decision; a tool and a document are worked in, and their movement follows the interface. So the motion keys cover the chosen surfaces among `persuade` and `experience` only, and the bare key holds the first of those two in tile order rather than the run's leading surface: on an app UI plus portfolio run, `motion-energy` is the portfolio's answer. **When a run chooses neither of those surfaces the question is never asked, and no `motion-energy` key comes back at all.** Read it as absent rather than defaulted, and say nothing about movement in DESIGN.md; a default written as a decision is a decision the user never made. + +`layout-structure` (how strict the composition is) is put to the same two surfaces, for the neighbouring reason: on a landing page and a portfolio the composition of the page is the thing being judged, where a tool's regions and a document's single measure come from what they have to hold. It is not a per-surface key, though. One answer is kept for the whole run and every surface is previewed on it, so **it comes back as the bare `layout-structure` and nothing else, owned by the first of `persuade` and `experience` in tile order, and it is absent entirely on a run of neither.** Read that absence the same way: no grid rule in DESIGN.md, and nothing borrowed from the interview to cover the gap. + +The picker does not offer every option on every surface. A landing page can take any answer to all five questions, and the other three surfaces have options withheld from them: a page people work in or read at length is not offered the loudest color or the deepest shadow, a tool is not offered separation by spacing alone, and a portfolio is not offered four working colors or fully round controls. So a value that comes back is one that suits the surface it came from, and a difference between two surfaces is a decision rather than an inconsistency to reconcile. + +When more than one surface comes back, DESIGN.md says what each of them does with color, movement, section separation, corner radius, and depth, instead of stating one answer for the product. + +Tell the user in one line that the visual cues are ready at `.impeccable/visual-cues/` (name the count), then run `node .agent/skills/impeccable/scripts/picker-server.mjs` from the project root as a foreground command and parse its `PICKER_URL` line. + +- **Cursor**: `browser_navigate` to the `PICKER_URL`; that is the in-IDE browser, where the questionnaire belongs. Do not skip this, and do not use the system opener while the tool works. The tab is the user's viewport only; never drive the questionnaire yourself, because the answers are the user's. +- **Another harness with a browser tool**: open the URL with that tool, on the same viewport-only rule. +- **No browser tool, or the tool call failed**: open the URL with the system opener (macOS `open`, Linux `xdg-open`), then tell the user in one line to finish in the opened tab. +- **Even the opener failed**: tell the user *"The design picker is running at [URL]; open it in your browser and finish there."* + +Whichever branch ran, wait on the foreground process. + +A relaunch on a project that has already been through this arrives with the previous answers filled in, and resumes an unfinished run from its own draft; `--fresh` starts blank. [design-context.md](design-context.md) owns that path. + +The server process exiting is the completion signal; never poll or watch the answers file while it runs. + +- **Exit 0**: read the `ANSWERS` path, tell the user the answers were received in one line, then return to [document.md](document.md) Steps 5-6 and write the seed DESIGN.md from that file (its questionnaire-seed mapping owns which key lands where). Do not show or describe the cues or ask for a pick in chat; the picker already settled the pick. The user's tab is meanwhile showing the design context document the picker built from the run, and that document is now a working surface: on submit the server forked a detached edit session (`picker-doc-session.mjs`) that keeps the tab connected. After the seed DESIGN.md is written, enter the edit loop below. +- **Exit 2**: tell the user the picker closed unanswered and that they can relaunch it with the same command. Never restart it unprompted. + +## The document edit loop + +The revealed document is editable in place, on live mode's division of labor: + +- **Field edits are applied before you hear about them.** A palette color or a line of product truth is staged in the page, and pressing Apply sends the batch to the session, which writes every value into the store and journals it. What reaches you is the prose those values leave stale: a `save_batch` event naming each change and the document it is owed in. +- **Asks in words queue for you from the start.** Font changes (including uploaded faces, saved under `.impeccable/design-context/fonts/`) and freeform requests arrive as `edit_request` events, because there is no value to apply until you decide what it should be. +- **The session is the only writer of the store while it runs.** Never write `answers.json` or `context.json` yourself during the loop; attach the values to your reply instead (below) and let the session apply them. DESIGN.md and PRODUCT.md are yours. + +After writing the seed DESIGN.md, tell the user in one line that the document in their tab is live for edits, then poll: + +``` +node .agent/skills/impeccable/scripts/picker-doc-poll.mjs +``` + +One-shot, exactly like live mode's poll: it blocks until one event and prints it as JSON. Run it on live mode's harness policy: on Claude Code as a background task; on Cursor as a one-shot poll in a background terminal with notify on `"type":"(edit_request|exit)"`; on Codex as a yielded foreground exec; elsewhere one-shot foreground. Never `--timeout` it short. + +- `{"type":"edit_request", "id", "kind", "prompt", "category", "payload"}`: do the work. Apply the change to DESIGN.md, move any uploaded font files where the project keeps assets, then reply and poll again. Where a questionnaire key names the same fact, attach it rather than writing it, so the tab re-renders it and one process stays in charge of the store: + + ``` + node .agent/skills/impeccable/scripts/picker-doc-poll.mjs --reply done "One line the user sees in the tab" + node .agent/skills/impeccable/scripts/picker-doc-poll.mjs --reply done "Swapped the pair" --answers '{"font-heading":"Fraunces"}' + ``` + + Reply `error` with a reason when the ask cannot be applied; reply `retry` to put it back in the queue untouched. +- `{"type":"save_batch", "id", "changes", "downstream", "replyCommand"}`: the values are already in the store, so do not apply them again. Read `downstream` and bring each named document in line: `design-md` items are values DESIGN.md states (swap the value, and rename a color whose description no longer fits it), `product-md` items are product truth PRODUCT.md owns. Then reply with the command the event carries. A document that does not exist yet, or a value the document already carries, is success: reply `done`. Reply `error` only when a document exists and cannot be edited. +- `{"type":"timeout"}`: nothing arrived in the budget; poll again. +- `{"type":"exit"}`: the session ended (tab closed or timed out). Before moving on, read `runtime/journal.jsonl` for `change` entries you never saw a `save_batch` for, which is what a session that died mid-save leaves behind, and reconcile the prose around them. Then stop polling; the loop is over. + +The user may keep working in chat while the document sits open; treat an `edit_request` like any other user instruction, just delivered through the tab. diff --git a/.agent/skills/impeccable/scripts/command-metadata.json b/.agent/skills/impeccable/scripts/command-metadata.json index dad8ef2e0..4d02204f1 100644 --- a/.agent/skills/impeccable/scripts/command-metadata.json +++ b/.agent/skills/impeccable/scripts/command-metadata.json @@ -90,5 +90,9 @@ "typeset": { "description": "Improves typography by fixing font choices, hierarchy, sizing, weight, and readability so text feels intentional. Use when the user mentions fonts, type, readability, text hierarchy, sizing looks off, or wants more polished, intentional typography.", "argumentHint": "[target]" + }, + "design-context": { + "description": "Reopen, revise, export, or import the design interview and its design context document", + "argumentHint": "[open|edit|export|import] [bundle-file]" } } diff --git a/.agent/skills/impeccable/scripts/concept-seed.mjs b/.agent/skills/impeccable/scripts/concept-seed.mjs index fc44ed067..a07acebfb 100644 --- a/.agent/skills/impeccable/scripts/concept-seed.mjs +++ b/.agent/skills/impeccable/scripts/concept-seed.mjs @@ -47,6 +47,7 @@ * * Usage: * node scripts/concept-seed.mjs --scope direction --mode persuade + * node scripts/concept-seed.mjs --scope direction --mode persuade --seed-declined="" * node scripts/concept-seed.mjs --scope surface --mode operate --from * node scripts/concept-seed.mjs --scope surface --mode operate --grain flow * node scripts/concept-seed.mjs --scope direction --candidate-count 6 @@ -55,6 +56,16 @@ * node scripts/concept-seed.mjs --chosen --kind challenger --from --scope direction * node scripts/concept-seed.mjs --kind assigned --from --scope direction * + * --seed-declined records that the user was offered the document --seed + * questionnaire on a no-DESIGN.md project and skipped it. The flag carries + * evidence: its value is the user's verbatim skip answer, quoted from the + * conversation. Without it, a --scope direction roll on a project with no + * DESIGN.md refuses to deal and prints the pause directive instead; a bare + * or empty flag refuses the same way (a real live session self-passed the + * boolean form without asking, which is why the flag demands the quote). + * Fabricating or paraphrasing the quote is a contract violation, not a + * shortcut. + * * --grain names how much of the product is in play: product, flow, view, or * region. A docs site, an onboarding flow, a landing page and a data table are * four different amounts of product and want different compositions. Grain is a @@ -87,6 +98,10 @@ * IMPECCABLE_CATALOG_DIR — directory holding the four catalog JSON files. * IMPECCABLE_API_URL — roll API base (default https://impeccable.style/api). * IMPECCABLE_NO_TELEMETRY — disables the choice ping (DO_NOT_TRACK also honored). + * IMPECCABLE_SEED_DECLINED — set to 1 to bypass the seed pause without a + * quote; the unattended escape for eval and CI harnesses that + * legitimately roll direction on a no-DESIGN.md workspace. Never for + * attended sessions; the bypass is logged to stderr so it stays auditable. */ import crypto from 'node:crypto'; @@ -678,6 +693,21 @@ if (process.argv[1] && resolve(process.argv[1]) === fileURLToPath(import.meta.ur const candidateCountIdx = args.indexOf('--candidate-count'); const chosenIdx = args.indexOf('--chosen'); const kindIdx = args.indexOf('--kind'); + // --seed-declined carries evidence: the user's verbatim skip answer, in + // either --seed-declined="" or --seed-declined form. A + // bare or empty flag does not count; a live session self-passed the + // boolean form without asking the user, so the flag demands the quote. + let seedDeclinedAnswer = null; + for (let i = 0; i < args.length; i += 1) { + if (args[i] === '--seed-declined') { + const next = args[i + 1]; + seedDeclinedAnswer = next !== undefined && !next.startsWith('--') ? next : ''; + } else if (args[i].startsWith('--seed-declined=')) { + seedDeclinedAnswer = args[i].slice('--seed-declined='.length); + } + } + const seedDeclinedByEnv = process.env.IMPECCABLE_SEED_DECLINED === '1'; + const seedDeclined = Boolean(seedDeclinedAnswer && seedDeclinedAnswer.trim()) || seedDeclinedByEnv; try { if (chosenIdx !== -1 || kindIdx !== -1) { // Choice ping: always exits 0, telemetry must never fail a design flow. @@ -698,7 +728,8 @@ if (process.argv[1] && resolve(process.argv[1]) === fileURLToPath(import.meta.ur // rolled directions with no PRODUCT.md, so nothing grounded the fusion). // The --chosen branch above stays ungated; telemetry never blocks. const { loadContext } = await import('./context.mjs'); - if (!loadContext(process.cwd()).hasProduct) { + const ctx = loadContext(process.cwd()); + if (!ctx.hasProduct) { process.stdout.write([ 'NO_PRODUCT_MD: the dice stay in the cup until product truth exists.', 'Complete the init ask round and write PRODUCT.md first (reference/init.md), then re-run this exact command.', @@ -706,6 +737,31 @@ if (process.argv[1] && resolve(process.argv[1]) === fileURLToPath(import.meta.ur ].join(' ') + '\n'); process.exit(1); } + // Mechanical seed-pause gate: prose alone did not keep a model from + // rolling a direction before offering the seed questionnaire (a real + // session read a stale reference file and dealt straight after init), + // and a boolean flag did not either (the next session self-passed it + // without asking). A direction roll invents the visual world, so on a + // project with no DESIGN.md the user gets the choice first; a seed + // DESIGN.md counts as present, so a post-questionnaire re-entry never + // re-asks. The flag now carries the user's verbatim skip answer. + const scopeArg = scopeIdx !== -1 ? args[scopeIdx + 1] : 'surface'; + if (scopeArg === 'direction' && !ctx.hasDesign && !seedDeclined) { + process.stdout.write([ + 'NO_DESIGN_MD: the dice stay in the cup until the user answers the seed question.', + 'First action: create a tracked todo "Ask user: document --seed or skip" with the harness todo tool and start no other todo until it is answered; with no todo tool, state this gate to the user in chat before anything else.', + 'Then ask one question: recommend `document --seed`, the guided interview plus browser questionnaire (reference/document.md, seed mode), because a world built from the user\'s own choices beats one assigned to them; offer the skip in the same breath.', + 'User accepts: run document seed mode; its seed DESIGN.md reads as an established world, so no direction roll happens.', + 'User skips: re-run this exact command with --seed-declined="" quoting the user\'s actual words from this conversation.', + 'The original build request is never a skip answer, a bare or empty flag refuses again, and a fabricated or paraphrased quote is a contract violation.', + ].join(' ') + '\n'); + process.exit(1); + } + if (scopeArg === 'direction' && !ctx.hasDesign && seedDeclinedByEnv && !(seedDeclinedAnswer && seedDeclinedAnswer.trim())) { + // Auditable trace for the unattended escape; stderr keeps the seed + // output clean for the agent. + process.stderr.write('seed pause bypassed via IMPECCABLE_SEED_DECLINED (unattended harness escape)\n'); + } process.stdout.write(await renderConceptSeed({ scope: scopeIdx !== -1 ? args[scopeIdx + 1] : 'surface', key: fromIdx !== -1 diff --git a/.agent/skills/impeccable/scripts/design-context-export.mjs b/.agent/skills/impeccable/scripts/design-context-export.mjs new file mode 100644 index 000000000..185b8bbce --- /dev/null +++ b/.agent/skills/impeccable/scripts/design-context-export.mjs @@ -0,0 +1,67 @@ +#!/usr/bin/env node +/** Write this project's design context out in two forms. + * + * node /design-context-export.mjs [--out DIR] [--no-assets] + * + * design-context.md one document a reader or another tool can follow + * design-context.bundle.json everything needed to rebuild the store elsewhere + * + * Prints one EXPORTED line per file written. Exit 1 when the project has no + * design interview to export. + */ + +import { migrate } from './design-context/store.mjs'; +import { exportDesignContext } from './design-context/portability.mjs'; + +function printHelp() { + console.log(`Usage: node design-context-export.mjs [options] + +Write the design context to a readable document and a portable bundle. + +Options: + --out DIR Where to write (default: .impeccable/design-context/exports) + --no-assets Leave supplied files and the cue image out of the bundle + --help Show this help + +Output: + EXPORTED PATH One line per file written + +See reference/design-context.md for the canonical agent flow.`); +} + +const args = process.argv.slice(2); +if (args.includes('--help') || args.includes('-h')) { + printHelp(); + process.exit(0); +} + +const readValue = (name) => { + const exact = args.find((arg) => arg.startsWith(`${name}=`)); + if (exact) return exact.slice(name.length + 1); + const at = args.indexOf(name); + return at !== -1 && args[at + 1] && !args[at + 1].startsWith('--') ? args[at + 1] : ''; +}; + +const unknown = args.find((arg) => arg.startsWith('--') + && !['--out', '--no-assets', '--help'].some((flag) => arg === flag || arg.startsWith(`${flag}=`))); +if (unknown) { + console.error(`Unknown option: ${unknown}`); + process.exit(1); +} + +await migrate(process.cwd()); + +try { + const { markdownPath, bundlePath, skipped } = await exportDesignContext(process.cwd(), { + outDir: readValue('--out') || undefined, + includeAssets: !args.includes('--no-assets'), + }); + for (const entry of skipped) { + console.error(`Skipped ${entry.path} (${entry.bytes} bytes): ${entry.reason}`); + } + console.log(`EXPORTED ${markdownPath}`); + console.log(`EXPORTED ${bundlePath}`); +} catch (error) { + console.error(error.message); + process.exit(1); +} diff --git a/.agent/skills/impeccable/scripts/design-context-import.mjs b/.agent/skills/impeccable/scripts/design-context-import.mjs new file mode 100644 index 000000000..51c1d379c --- /dev/null +++ b/.agent/skills/impeccable/scripts/design-context-import.mjs @@ -0,0 +1,83 @@ +#!/usr/bin/env node +/** Rebuild a design context in this project from a bundle another one exported. + * + * node /design-context-import.mjs + * [--design skip|write] [--force] + * + * Refuses a project that already has a design context unless --force, and + * refuses either way while an edit session is running, because the session is + * the only writer of the store while it lives. + * + * Prints IMPORTED files and DESIGN_MD carried|absent for the agent to + * branch on. Exit 1 on a bundle this release cannot read. + */ + +import { readFile } from 'node:fs/promises'; +import path from 'node:path'; +import { migrate, paths, pidAlive, readAnswers, readJsonSoft } from './design-context/store.mjs'; +import { importDesignContext, validateBundle } from './design-context/portability.mjs'; + +function printHelp() { + console.log(`Usage: node design-context-import.mjs [options] + +Rebuild this project's design context from an exported bundle. + +Options: + --design skip|write Write DESIGN.md when the bundle carries one and this + project has none (default: skip) + --force Replace an existing design context + --help Show this help + +Output: + IMPORTED N files + DESIGN_MD carried|absent + +See reference/design-context.md for the canonical agent flow.`); +} + +const args = process.argv.slice(2); +if (!args.length || args.includes('--help') || args.includes('-h')) { + printHelp(); + process.exit(args.length ? 0 : 1); +} + +const source = args.find((arg) => !arg.startsWith('--')); +if (!source) { + console.error('Name the bundle to import.'); + process.exit(1); +} + +const designAt = args.indexOf('--design'); +const design = designAt !== -1 && args[designAt + 1] ? args[designAt + 1] : 'skip'; +if (!['skip', 'write'].includes(design)) { + console.error('--design must be skip or write'); + process.exit(1); +} + +await migrate(process.cwd()); +const target = paths(process.cwd()); + +/* A running session holds the store: importing under it would swap the run out + from beneath the document someone is reading and the batch it may owe. */ +const session = await readJsonSoft(target.sessionJson); +if (session && pidAlive(session.pid)) { + console.error(`A design context document is open on http://127.0.0.1:${session.port}. Close it, then import.`); + process.exit(1); +} + +if (!args.includes('--force') && await readAnswers(process.cwd())) { + console.error('This project already has a design context. Re-run with --force to replace it.'); + process.exit(1); +} + +let bundle; +try { + bundle = validateBundle(JSON.parse(await readFile(path.resolve(process.cwd(), source), 'utf8'))); +} catch (error) { + console.error(error.message); + process.exit(1); +} + +const result = await importDesignContext(process.cwd(), bundle, { design }); +console.log(`IMPORTED ${result.written} files`); +console.log(`DESIGN_MD ${result.designCarried ? 'carried' : 'absent'}${result.designWritten ? ' written' : ''}`); diff --git a/.agent/skills/impeccable/scripts/design-context/bindings.mjs b/.agent/skills/impeccable/scripts/design-context/bindings.mjs new file mode 100644 index 000000000..326abde6d --- /dev/null +++ b/.agent/skills/impeccable/scripts/design-context/bindings.mjs @@ -0,0 +1,82 @@ +/** What the design context document lets a person edit, and where it lands. + * + * Every editable field has an id the browser sends and this file resolves into + * a file and a path inside it. That is what makes applying a change a + * deterministic write rather than a search: the document names the field, not + * the text it happens to hold. + * + * `file` is the store file the value lives in. For `context`, the path is + * relative to the top-level `context` object, so `product.purpose` addresses + * `context.product.purpose` inside context.json. + * + * `downstream` names the document the agent reconciles afterwards. The value + * itself is already applied by the time the agent hears about it; what needs a + * reader is the prose around it. + */ + +export const BINDINGS = { + 'palette.primary': { file: 'answers', path: 'palette-primary', kind: 'color', downstream: 'design-md' }, + 'palette.secondary': { file: 'answers', path: 'palette-secondary', kind: 'color', downstream: 'design-md' }, + 'palette.tertiary': { file: 'answers', path: 'palette-tertiary', kind: 'color', downstream: 'design-md' }, + 'palette.neutral': { file: 'answers', path: 'palette-neutral', kind: 'color', downstream: 'design-md' }, + + 'product.purpose': { file: 'context', path: 'product.purpose', kind: 'text', maxLen: 600, downstream: 'product-md' }, + 'product.positioning.not': { file: 'context', path: 'product.positioning.not', kind: 'text', maxLen: 300, downstream: 'product-md' }, + 'product.positioning.this': { file: 'context', path: 'product.positioning.this', kind: 'text', maxLen: 300, downstream: 'product-md' }, + + 'audience.primary': { file: 'context', path: 'audience.primary', kind: 'text', maxLen: 300, downstream: 'product-md' }, + 'audience.secondary': { file: 'context', path: 'audience.secondary', kind: 'text', maxLen: 300, downstream: 'product-md' }, + 'audience.emotion': { file: 'context', path: 'audience.emotion', kind: 'text', maxLen: 300, downstream: 'product-md' }, + 'audience.leaving': { file: 'context', path: 'audience.leaving', kind: 'text', maxLen: 300, downstream: 'product-md' }, + + 'brand.personality': { file: 'context', path: 'brand.personality', kind: 'text', maxLen: 600, downstream: 'product-md' }, +}; + +const DEFAULT_MAX_LEN = 2000; +const HEX = /^#[0-9a-fA-F]{6}$/; + +export const bindingFor = (id) => (Object.hasOwn(BINDINGS, id) ? BINDINGS[id] : null); + +/** + * Turn what a contenteditable produced into something safe to write. + * + * Everything arriving here was typed into a browser, so it is treated as text + * and nothing else: control characters go, newlines collapse (every bound field + * is a single line in the document), and the length is capped where the field + * says so. A value that survives is a string; a value that cannot be one throws. + */ +export function sanitizeValue(binding, raw) { + if (binding.kind === 'color') { + const value = String(raw ?? '').trim().toUpperCase(); + if (!HEX.test(value)) throw new Error('Expected a #rrggbb color'); + return value; + } + + const text = String(raw ?? '') + /* Newlines first, because they are the one control character with a + meaning here: a pasted paragraph becomes one line rather than nothing. */ + .replace(/[\r\n\t]+/g, ' ') + .replace(/[\u0000-\u001F\u007F]/g, '') + .replace(/\s{2,}/g, ' ') + .trim(); + if (!text) throw new Error('Expected some text'); + return text.slice(0, binding.maxLen || DEFAULT_MAX_LEN); +} + +/** Read a dotted path out of a plain object, without creating anything. */ +export function readPath(root, dotted) { + return dotted.split('.').reduce((node, key) => (node && typeof node === 'object' ? node[key] : undefined), root); +} + +/** Write a dotted path into a plain object, creating the objects on the way. */ +export function writePath(root, dotted, value) { + const keys = dotted.split('.'); + const last = keys.pop(); + let node = root; + for (const key of keys) { + if (!node[key] || typeof node[key] !== 'object' || Array.isArray(node[key])) node[key] = {}; + node = node[key]; + } + node[last] = value; + return root; +} diff --git a/.agent/skills/impeccable/scripts/design-context/portability.mjs b/.agent/skills/impeccable/scripts/design-context/portability.mjs new file mode 100644 index 000000000..e9a095fee --- /dev/null +++ b/.agent/skills/impeccable/scripts/design-context/portability.mjs @@ -0,0 +1,339 @@ +/** Taking a design context out of a project, and putting one into another. + * + * Two shapes, because they answer different questions. `design-context.md` is + * for a reader, human or otherwise: one document that says what was decided + * and why, which can be handed to another tool as the rules to follow. The + * bundle is for this toolchain: everything needed to rebuild the store + * somewhere else, including the bytes of the files the user supplied. + * + * The bundle carries the schema version, not the store. A store file's era is + * readable from its own keys, and stamping the browser's submission would mean + * rewriting what it sent. + */ + +import { readFile, mkdir, readdir, writeFile } from 'node:fs/promises'; +import path from 'node:path'; +import { + paths, + readAnswers, + readContext, + readJsonSoft, + writeAnswers, + writeContext, + writeJsonAtomic, + SCHEMA_VERSION, +} from './store.mjs'; + +export const BUNDLE_KIND = 'impeccable-design-context'; +export const BUNDLE_SCHEMA = 1; + +const MAX_FILE_BYTES = 1024 * 1024; +const MAX_BUNDLE_BYTES = 20 * 1024 * 1024; + +const MIME = new Map([ + ['.svg', 'image/svg+xml'], ['.png', 'image/png'], ['.jpg', 'image/jpeg'], + ['.jpeg', 'image/jpeg'], ['.webp', 'image/webp'], ['.gif', 'image/gif'], + ['.woff2', 'font/woff2'], ['.woff', 'font/woff'], ['.ttf', 'font/ttf'], ['.otf', 'font/otf'], +]); + +/* Exactly the three places an export puts bytes, and so exactly the three an + import will write them back to. Anything else in a bundle is not ours. */ +const ALLOWED_FILE = /^(assets\/[^/]+|fonts\/[^/]+|cue\.png)$/; + +const SURFACE_LABELS = { persuade: 'Landing page', operate: 'Tool', read: 'Docs', experience: 'Portfolio' }; +const ROLES = ['primary', 'secondary', 'tertiary', 'neutral']; +const PER_SURFACE = ['color-strategy', 'boundary-style', 'corner-style', 'depth-style', 'motion-energy']; + +/* ============================================================ + Export + ============================================================ */ + +async function collectFiles(cwd, { includeAssets = true } = {}) { + const target = paths(cwd); + const files = []; + const skipped = []; + let total = 0; + + const take = async (absolute, relative) => { + let bytes; + try { + bytes = await readFile(absolute); + } catch { + return; + } + if (bytes.length > MAX_FILE_BYTES || total + bytes.length > MAX_BUNDLE_BYTES) { + skipped.push({ path: relative, bytes: bytes.length, reason: 'too large for the bundle' }); + return; + } + total += bytes.length; + files.push({ + path: relative, + mime: MIME.get(path.extname(relative).toLowerCase()) || 'application/octet-stream', + base64: bytes.toString('base64'), + }); + }; + + if (!includeAssets) return { files, skipped }; + + for (const [dir, prefix] of [[target.assetsDir, 'assets'], [target.fontsDir, 'fonts']]) { + let names = []; + try { + names = await readdir(dir); + } catch { + continue; + } + for (const name of names.sort()) await take(path.join(dir, name), `${prefix}/${name}`); + } + await take(target.cuePng, 'cue.png'); + return { files, skipped }; +} + +export async function buildBundle(cwd, { includeAssets = true, now = new Date() } = {}) { + const target = paths(cwd); + const answers = await readAnswers(cwd); + if (!answers) throw new Error('No design interview found. Run /impeccable document to create one.'); + + const stored = (await readContext(cwd)) || { schemaVersion: SCHEMA_VERSION }; + const cues = await readJsonSoft(target.cuesJson); + const source = typeof answers['palette-source'] === 'string' ? answers['palette-source'] : ''; + /* A seed or custom palette names no cue, so there is no image and no dealt + entry to carry. The hexes in the answers are the palette of record. */ + const chosenCuePalette = source && cues?.palette?.[source] ? cues.palette[source] : null; + + const { files, skipped } = await collectFiles(cwd, { includeAssets }); + let designMd = null; + try { + designMd = await readFile(path.resolve(cwd, 'DESIGN.md'), 'utf8'); + } catch { + /* Not written yet, which an import is told about rather than guessing. */ + } + + return { + schemaVersion: BUNDLE_SCHEMA, + kind: BUNDLE_KIND, + exportedAt: now.toISOString(), + product: { name: stored.context?.product?.name || '' }, + context: stored, + answers, + /* Whole, never trimmed: the questionnaire validates the manifest by its + pair count and quietly falls back to its own set at any other number. */ + fonts: await readJsonSoft(target.fontsManifestJson), + chosenCue: chosenCuePalette ? { slug: source, palette: chosenCuePalette } : null, + designMd, + files, + ...(skipped.length ? { skipped } : {}), + }; +} + +/* ============================================================ + The readable compilation + ============================================================ */ + +const line = (label, value) => (value ? `- **${label}:** ${value}\n` : ''); + +function paletteTable(answers) { + const rows = ROLES + .map((role) => [role, String(answers[`palette-${role}`] || '')]) + .filter(([, hex]) => hex); + if (!rows.length) return ''; + return `| Role | Value |\n| --- | --- |\n${rows.map(([role, hex]) => `| ${role} | \`${hex}\` |`).join('\n')}\n\n`; +} + +function perSurfaceTable(answers, surfaces) { + const rows = []; + for (const key of PER_SURFACE) { + for (const mode of surfaces) { + const value = answers[`${key}-${mode}`]; + if (value) rows.push([key, SURFACE_LABELS[mode] || mode, String(value), answers[key] === value]); + } + } + if (!rows.length) return ''; + return `| Question | Surface | Answer |\n| --- | --- | --- |\n${rows + .map(([key, label, value, leads]) => `| ${key} | ${label}${leads ? ' (leads)' : ''} | ${value} |`) + .join('\n')}\n\n`; +} + +/** One document a reader, or another tool, can follow without this toolchain. */ +export function renderMarkdown(bundle) { + const context = bundle.context?.context || {}; + const answers = bundle.answers || {}; + const name = bundle.product?.name || 'This product'; + const surfaces = [].concat(answers['surface-modes'] || []).filter(Boolean); + const out = []; + + out.push(`# Design context: ${name}\n\n`); + out.push('The decisions this product\'s design follows, and the reasoning behind them. '); + out.push('Exported from Impeccable; treat it as the source of truth for visual and product direction.\n\n'); + + const audience = context.audience || {}; + if (Object.keys(audience).length) { + out.push('## Audience\n\n'); + out.push(line('Primary', audience.primary)); + out.push(line('Secondary', audience.secondary)); + out.push(line('On arrival', audience.emotion)); + out.push(line('Leaving with', audience.leaving)); + if (audience.needs?.length) out.push(`- **Needs:** ${audience.needs.join('; ')}\n`); + if (audience.trust?.length) out.push(`- **Trust triggers:** ${audience.trust.join('; ')}\n`); + if (audience.inclusion?.length) out.push(`- **Must not exclude:** ${audience.inclusion.join('; ')}\n`); + out.push('\n'); + } + + const product = context.product || {}; + if (Object.keys(product).length) { + out.push('## Product\n\n'); + out.push(line('Purpose', product.purpose)); + out.push(line('Success', product.success)); + out.push(line('Platform', product.platform)); + out.push(line('Primary conversion', product.conversion)); + if (product.positioning?.not) out.push(`- **Not this:** ${product.positioning.not}\n`); + if (product.positioning?.this) out.push(`- **This:** ${product.positioning.this}\n`); + if (product.clarities?.length) out.push(`- **Clear first:** ${product.clarities.join('; ')}\n`); + out.push('\n'); + } + + const brand = context.brand || {}; + if (Object.keys(brand).length) { + out.push('## Brand\n\n'); + if (brand.words?.length) out.push(line('Words', brand.words.join(', '))); + out.push(line('Personality', brand.personality)); + if (brand.commitments?.length) out.push(`- **Commitments:** ${brand.commitments.join('; ')}\n`); + if (brand.voice?.length) { + out.push('\nVoice, as wording rather than adjectives:\n\n'); + for (const pair of brand.voice) { + if (pair?.say && pair?.not) out.push(`- Say: ${pair.say}\n Not: ${pair.not}\n`); + } + } + out.push('\n'); + } + + const interview = context.interview || {}; + if (interview.references?.length || interview.antiReference) { + out.push('## References\n\n'); + for (const reference of interview.references || []) { + if (typeof reference === 'string') out.push(`- ${reference}\n`); + else if (reference?.name) out.push(`- **${reference.name}**${reference.takeaway ? `: ${reference.takeaway}` : ''}\n`); + } + const anti = interview.antiReference; + if (typeof anti === 'string') out.push(`- **Anti-reference:** ${anti}\n`); + else if (anti?.name) out.push(`- **Anti-reference:** ${anti.name}${anti.why ? ` (${anti.why})` : ''}\n`); + out.push('\n'); + } + + out.push('## Decisions\n\n'); + if (surfaces.length) { + out.push(`Surfaces: ${surfaces.map((mode) => SURFACE_LABELS[mode] || mode).join(', ')}. `); + out.push('The first of these owns any answer stated once for the whole product.\n\n'); + } + out.push('### Palette\n\n'); + out.push(paletteTable(answers)); + if (bundle.chosenCue?.slug) out.push(`Sampled from the generated cue \`${bundle.chosenCue.slug}\`.\n\n`); + + out.push('### Typography\n\n'); + out.push(line('Heading', answers['font-heading'])); + out.push(line('Body', answers['font-body'])); + out.push(line('Type scale', answers['type-scale'] && `${answers['type-scale']} (${answers['type-scale-ratio']})`)); + out.push('\n'); + + if (answers['icon-pack-name']) { + out.push('### Icons\n\n'); + out.push(`- **Pack:** ${answers['icon-pack-name']}${answers['icon-pack-license'] ? ` (${answers['icon-pack-license']})` : ''}\n`); + if (answers['icon-pack-url']) out.push(`- **Source:** ${answers['icon-pack-url']}\n`); + out.push('\nEvery icon comes from this pack; do not mix sets.\n\n'); + } + + const perSurface = perSurfaceTable(answers, surfaces); + if (perSurface) { + out.push('### Per surface\n\n'); + out.push(perSurface); + } + if (answers['layout-structure']) out.push(`Composition: ${answers['layout-structure']}, one answer for the whole product.\n\n`); + + if (bundle.designMd) { + out.push('## DESIGN.md\n\n'); + out.push('The design document this context produced, verbatim.\n\n'); + out.push('\n\n'); + out.push(bundle.designMd.trim()); + out.push('\n\n\n'); + } + + return out.join(''); +} + +export async function exportDesignContext(cwd, { outDir, includeAssets = true, now } = {}) { + const bundle = await buildBundle(cwd, { includeAssets, now }); + const destination = outDir ? path.resolve(cwd, outDir) : paths(cwd).exportsDir; + await mkdir(destination, { recursive: true }); + + const markdownPath = path.join(destination, 'design-context.md'); + const bundlePath = path.join(destination, 'design-context.bundle.json'); + await writeFile(markdownPath, renderMarkdown(bundle)); + await writeJsonAtomic(bundlePath, bundle); + return { markdownPath, bundlePath, skipped: bundle.skipped || [] }; +} + +/* ============================================================ + Import + ============================================================ */ + +export function validateBundle(bundle) { + if (!bundle || typeof bundle !== 'object') throw new Error('That file is not a design context bundle'); + if (bundle.kind !== BUNDLE_KIND) throw new Error(`Expected a ${BUNDLE_KIND} bundle, found ${String(bundle.kind)}`); + if (bundle.schemaVersion !== BUNDLE_SCHEMA) { + throw new Error(`This bundle is schema version ${String(bundle.schemaVersion)}; this release reads ${BUNDLE_SCHEMA}. Update impeccable.`); + } + if (!bundle.answers || typeof bundle.answers !== 'object') throw new Error('The bundle carries no answers'); + return bundle; +} + +export async function importDesignContext(cwd, bundle, { design = 'skip' } = {}) { + validateBundle(bundle); + const target = paths(cwd); + + await writeAnswers(bundle.answers, cwd); + const context = bundle.context && typeof bundle.context === 'object' + ? bundle.context + : { schemaVersion: SCHEMA_VERSION }; + await writeContext(context, cwd); + + let written = 0; + for (const file of Array.isArray(bundle.files) ? bundle.files : []) { + const relative = String(file?.path || ''); + /* Containment is not enough on its own: a bundle could otherwise name a + store file and overwrite what was just written. Only the three places an + export puts bytes are accepted. */ + if (!ALLOWED_FILE.test(relative)) { + process.stderr.write(`Skipped ${relative || '(unnamed)'}: not a place a design context keeps files\n`); + continue; + } + const absolute = path.resolve(target.storeDir, relative); + if (path.relative(target.storeDir, absolute).startsWith('..')) continue; + await mkdir(path.dirname(absolute), { recursive: true }); + await writeFile(absolute, Buffer.from(String(file.base64 || ''), 'base64')); + written += 1; + } + + /* The questionnaire cannot run without a cue manifest: its palette screen + loads the deck and the built-in seeds together, and neither arrives if the + file is missing. An imported project gets a valid one either way, carrying + the chosen cue's dealt values when the bundle brought them. */ + if (!(await readJsonSoft(target.cuesJson))) { + await writeJsonAtomic(target.cuesJson, { + cues: [], + ...(bundle.chosenCue?.slug ? { palette: { [bundle.chosenCue.slug]: bundle.chosenCue.palette } } : { palette: {} }), + }); + } + if (bundle.fonts && !(await readJsonSoft(target.fontsManifestJson))) { + await writeJsonAtomic(target.fontsManifestJson, bundle.fonts); + } + + let designWritten = false; + if (design === 'write' && typeof bundle.designMd === 'string' && bundle.designMd.trim()) { + const designPath = path.resolve(cwd, 'DESIGN.md'); + if (!(await readFile(designPath, 'utf8').then(() => true).catch(() => false))) { + await writeFile(designPath, bundle.designMd); + designWritten = true; + } + } + + return { written, designWritten, designCarried: typeof bundle.designMd === 'string' && Boolean(bundle.designMd.trim()) }; +} diff --git a/.agent/skills/impeccable/scripts/design-context/session-routes.mjs b/.agent/skills/impeccable/scripts/design-context/session-routes.mjs new file mode 100644 index 000000000..dff9c9a0b --- /dev/null +++ b/.agent/skills/impeccable/scripts/design-context/session-routes.mjs @@ -0,0 +1,236 @@ +/** The save flow behind the design context document. + * + * A person edits fields in the document; the edits stage in the browser and + * arrive here as one batch when they press Apply. Applying is deterministic: + * every change names a binding, the binding names a file and a path, and the + * value is written through the store. Nothing is searched for and no model is + * involved, which is what makes a save either complete or refused rather than + * approximately done. + * + * What the agent gets afterwards is the reconciliation, not the write. The + * values are already on disk by the time the batch reaches a poll; DESIGN.md + * and PRODUCT.md are the agent's to bring in line with them. + * + * browser --POST /doc/save-------> applied here, journaled, batch queued + * agent --GET /doc/poll-------> save_batch (leased) + * agent --POST /doc/reply------> acknowledged, version bumped + * browser --GET /doc/state------> version moved, so re-read and re-render + * + * The batch is journaled before it is offered and cleared only on an + * acknowledgement, so a session that dies mid-flight re-offers it on the next + * boot rather than losing the work. + */ + +import { bindingFor, readPath, sanitizeValue, writePath } from './bindings.mjs'; +import { + appendJournal, + readAnswers, + readContext, + replayJournal, + writeAnswers, + writeContext, + SCHEMA_VERSION, +} from './store.mjs'; + +const MAX_CHANGES = 100; +/* Long enough that an agent doing real prose work is never raced, short enough + that an agent that died does not hold the batch for the session's lifetime. */ +const LEASE_MS = 10 * 60_000; + +function httpError(statusCode, message) { + const error = new Error(message); + error.statusCode = statusCode; + return error; +} + +export function createSaveRoutes({ cwd = process.cwd(), onChange = () => {} } = {}) { + /* Recovered from the journal at boot: a batch the agent never acknowledged + is still owed, whoever was running when it was made. */ + const replayed = replayJournal(cwd); + let pending = replayed.pendingBatch + ? { ...replayed.pendingBatch, leaseUntil: 0 } + : null; + let counter = Number(replayed.lastSeq) || 0; + + const summary = () => (pending + ? { id: pending.id, status: pending.status, count: pending.changes.length } + : null); + + function validate(body) { + const changes = Array.isArray(body?.changes) ? body.changes : null; + if (!changes?.length) throw httpError(400, 'changes must be a non-empty array'); + if (changes.length > MAX_CHANGES) throw httpError(400, `at most ${MAX_CHANGES} changes per save`); + + return changes.map((change) => { + const binding = bindingFor(String(change?.bindingId ?? '')); + if (!binding) throw httpError(400, `Unknown field: ${String(change?.bindingId ?? '')}`); + let value; + try { + value = sanitizeValue(binding, change.to); + } catch (error) { + throw httpError(400, `${change.bindingId}: ${error.message}`); + } + return { + bindingId: String(change.bindingId), + binding, + from: typeof change.from === 'string' ? change.from : '', + to: value, + }; + }); + } + + /** One read and one write per file, so a save lands whole or not at all. */ + async function applyToStore(changes) { + const files = new Map(); + const load = async (file) => { + if (!files.has(file)) { + files.set(file, file === 'answers' + ? (await readAnswers(cwd)) || {} + : (await readContext(cwd)) || { schemaVersion: SCHEMA_VERSION }); + } + return files.get(file); + }; + + for (const change of changes) { + const document = await load(change.binding.file); + /* context.json wraps its payload, so a binding path addresses the + context object rather than the file's own root. */ + const root = change.binding.file === 'context' + ? (document.context ??= {}) + : document; + change.previous = String(readPath(root, change.binding.path) ?? ''); + writePath(root, change.binding.path, change.to); + } + + if (files.has('answers')) await writeAnswers(files.get('answers'), cwd); + if (files.has('context')) await writeContext(files.get('context'), cwd); + } + + return { + summary, + hasPending: () => Boolean(pending), + + /** POST /doc/save */ + async save(body) { + if (pending) throw httpError(409, 'A save is already applying'); + const changes = validate(body); + await applyToStore(changes); + + for (const change of changes) { + appendJournal({ + type: 'change', + bindingId: change.bindingId, + from: change.previous, + to: change.to, + }, cwd); + } + + counter += 1; + const id = `batch-${String(counter).padStart(3, '0')}`; + const recorded = changes.map(({ bindingId, previous, to, binding }) => ({ + bindingId, + from: previous, + to, + downstream: binding.downstream, + })); + appendJournal({ type: 'batch', id, status: 'pending', changes: recorded }, cwd); + pending = { id, status: 'pending', changes: recorded, leaseUntil: 0 }; + onChange(); + return { id, count: recorded.length }; + }, + + /** The event a polling agent is handed, or nothing when none is due. */ + takeBatchEvent(replyCommandFor) { + if (!pending || pending.leaseUntil > Date.now()) return null; + /* Stamped before anything awaits, so a second poll arriving in the same + tick cannot be handed the same batch. */ + pending.leaseUntil = Date.now() + LEASE_MS; + return { + type: 'save_batch', + id: pending.id, + changes: pending.changes, + downstream: pending.changes.filter((change) => change.downstream !== 'none'), + replyCommand: replyCommandFor(pending.id), + }; + }, + + /** + * POST /doc/reply for a batch. + * + * An unknown id keeps the lease and says which batch is actually owed, so + * an agent that replied to the wrong thing can correct itself rather than + * leaving the work stranded. + */ + async reply(body) { + if (!pending) throw httpError(404, 'No save is waiting for a reply'); + if (body.id !== pending.id) { + throw httpError(404, `Unknown save ${String(body.id)}; the one waiting is ${pending.id}`); + } + if (!['done', 'error', 'retry'].includes(body.status)) { + throw httpError(400, 'status must be done, error, or retry'); + } + + if (body.status === 'retry') { + pending.leaseUntil = 0; + onChange(); + return { ok: true, status: 'pending' }; + } + + /* The agent's own follow-on writes ride here rather than going to the + store directly, so this process stays the only writer while it runs. */ + const applied = await applyAgentUpdates(body, cwd); + appendJournal({ type: 'batch', id: pending.id, status: body.status, message: String(body.message || '') }, cwd); + pending = null; + onChange(); + return { ok: true, status: body.status, applied }; + }, + + /** Journaled so the tab re-reads on a font or freeform request too. */ + noteRequest(id, status) { + appendJournal({ type: 'request', id, status }, cwd); + }, + }; +} + +/** + * Key-value updates an agent attaches to its reply. + * + * Answers keys are written as given, since the questionnaire's own vocabulary + * is wider than the bound fields; context values go through their binding when + * one exists, so the same rules apply to both writers. + */ +async function applyAgentUpdates(body, cwd) { + const applied = { answers: 0, context: 0 }; + + if (body.answers && typeof body.answers === 'object' && !Array.isArray(body.answers)) { + const answers = (await readAnswers(cwd)) || {}; + for (const [key, value] of Object.entries(body.answers)) { + if (typeof value !== 'string' && !Array.isArray(value)) continue; + answers[key] = value; + applied.answers += 1; + } + if (applied.answers) await writeAnswers(answers, cwd); + } + + if (body.context && typeof body.context === 'object' && !Array.isArray(body.context)) { + const stored = (await readContext(cwd)) || { schemaVersion: SCHEMA_VERSION }; + const root = (stored.context ??= {}); + for (const [dotted, value] of Object.entries(body.context)) { + if (typeof value !== 'string') continue; + const binding = bindingFor(dotted); + let next = value; + if (binding) { + try { + next = sanitizeValue(binding, value); + } catch { + continue; + } + } + writePath(root, binding ? binding.path : dotted, next); + applied.context += 1; + } + if (applied.context) await writeContext(stored, cwd); + } + + return applied; +} diff --git a/.agent/skills/impeccable/scripts/design-context/store.mjs b/.agent/skills/impeccable/scripts/design-context/store.mjs new file mode 100644 index 000000000..3bd975238 --- /dev/null +++ b/.agent/skills/impeccable/scripts/design-context/store.mjs @@ -0,0 +1,241 @@ +/** The design-context store: the one place that knows where design context lives. + * + * Layout, under the project root: + * + * .impeccable/design-context/ + * context.json { schemaVersion, modes, context } the chat half of the interview + * answers.json the questionnaire submission, flat FormData shape + * assets/ brand files the user supplied + * fonts/ font faces the user uploaded + * cue.png the chosen hero, copied at submit so the document stands alone + * runtime/ session.json, journal.jsonl, draft.json (gitignored) + * exports/ design-context.md, design-context.bundle.json (gitignored) + * + * Two rules hold this together. Every write goes through writeJsonAtomic, so a + * reader never sees a torn file. Every read comes off disk, so no process ever + * answers from a copy the file has moved past. + * + * Zero dependencies beyond node: builtins, like every other picker script. + */ + +import fs from 'node:fs'; +import { readFile, mkdir, rename, rm, writeFile } from 'node:fs/promises'; +import path from 'node:path'; + +export const STORE_DIR = '.impeccable/design-context'; +export const WORKSPACE_DIR = '.impeccable/visual-cues'; +/* The shape of context.json. Bump only when the shape changes, never for a release. */ +export const SCHEMA_VERSION = 1; + +const LEGACY_DIR = '.impeccable/design-interview'; +const LEGACY_FONTS_PREFIX = `${LEGACY_DIR}/fonts/`; + +export function paths(cwd = process.cwd()) { + const store = path.resolve(cwd, STORE_DIR); + const runtime = path.join(store, 'runtime'); + return { + storeDir: store, + contextJson: path.join(store, 'context.json'), + answersJson: path.join(store, 'answers.json'), + assetsDir: path.join(store, 'assets'), + fontsDir: path.join(store, 'fonts'), + cuePng: path.join(store, 'cue.png'), + runtimeDir: runtime, + sessionJson: path.join(runtime, 'session.json'), + journalJsonl: path.join(runtime, 'journal.jsonl'), + draftJson: path.join(runtime, 'draft.json'), + exportsDir: path.join(store, 'exports'), + workspaceDir: path.resolve(cwd, WORKSPACE_DIR), + cuesJson: path.resolve(cwd, WORKSPACE_DIR, 'cues.json'), + fontsManifestJson: path.resolve(cwd, WORKSPACE_DIR, 'fonts.json'), + }; +} + +/** The project-relative path an uploaded font is reported by, and stored under. */ +export function fontRelativePath(name) { + return path.join(STORE_DIR, 'fonts', name); +} + +export async function writeJsonAtomic(filePath, value) { + await mkdir(path.dirname(filePath), { recursive: true }); + const temporary = `${filePath}.tmp`; + await writeFile(temporary, `${JSON.stringify(value, null, 2)}\n`); + await rename(temporary, filePath); +} + +export async function readJsonSoft(filePath) { + try { + const parsed = JSON.parse(await readFile(filePath, 'utf8')); + return parsed && typeof parsed === 'object' ? parsed : null; + } catch { + return null; + } +} + +export const readContext = (cwd = process.cwd()) => readJsonSoft(paths(cwd).contextJson); +export const writeContext = (value, cwd = process.cwd()) => writeJsonAtomic(paths(cwd).contextJson, value); +export const readAnswers = (cwd = process.cwd()) => readJsonSoft(paths(cwd).answersJson); +export const writeAnswers = (value, cwd = process.cwd()) => writeJsonAtomic(paths(cwd).answersJson, value); +export const readDraft = (cwd = process.cwd()) => readJsonSoft(paths(cwd).draftJson); +export const writeDraft = (value, cwd = process.cwd()) => writeJsonAtomic(paths(cwd).draftJson, value); +export const clearDraft = (cwd = process.cwd()) => rm(paths(cwd).draftJson, { force: true }).catch(() => {}); + +/* ============================================================ + The journal: append-only, replayed on every read. + ============================================================ */ + +/** Append one event, stamped with the next seq and a timestamp. Returns the seq. */ +export function appendJournal(event, cwd = process.cwd()) { + const { runtimeDir, journalJsonl } = paths(cwd); + const seq = replayJournal(cwd).lastSeq + 1; + fs.mkdirSync(runtimeDir, { recursive: true }); + fs.appendFileSync(journalJsonl, `${JSON.stringify({ seq, ts: new Date().toISOString(), ...event })}\n`); + return seq; +} + +/** + * Fold the journal into the state a booting session needs. + * + * Lines the fold cannot use are collected rather than thrown: a legacy + * doc-edits.jsonl record carries { at, type: 'color' } and no seq, and a torn + * final line is possible after a hard kill. Neither can move lastSeq or + * resurrect a batch, so both are diagnostics, not failures. + */ +export function replayJournal(cwd = process.cwd()) { + const { journalJsonl } = paths(cwd); + const state = { lastSeq: 0, pendingBatch: null, entries: [], diagnostics: [] }; + + let raw; + try { + raw = fs.readFileSync(journalJsonl, 'utf8'); + } catch { + return state; + } + + for (const line of raw.split('\n')) { + if (!line.trim()) continue; + let entry; + try { + entry = JSON.parse(line); + } catch { + state.diagnostics.push({ reason: 'unparseable', line: line.slice(0, 200) }); + continue; + } + if (!entry || typeof entry !== 'object' || !Number.isInteger(entry.seq)) { + state.diagnostics.push({ reason: 'legacy-or-unsequenced', type: entry?.type || null }); + continue; + } + state.entries.push(entry); + if (entry.seq > state.lastSeq) state.lastSeq = entry.seq; + if (entry.type === 'batch') { + state.pendingBatch = entry.status === 'pending' ? entry : null; + } + } + return state; +} + +/* ============================================================ + Migration from the pre-store layout. + ============================================================ */ + +export function pidAlive(pid) { + if (!Number.isInteger(pid) || pid <= 0) return false; + try { + process.kill(pid, 0); + return true; + } catch (error) { + /* EPERM means the process exists and is not ours to signal. */ + return error.code === 'EPERM'; + } +} + +async function moveFile(from, to) { + if (fs.existsSync(to) || !fs.existsSync(from)) return false; + await mkdir(path.dirname(to), { recursive: true }); + await rename(from, to); + return true; +} + +/* Directories move child by child: renaming onto an existing directory fails, + and a run interrupted halfway leaves a destination that already exists. */ +async function moveDirContents(fromDir, toDir) { + if (!fs.existsSync(fromDir)) return; + await mkdir(toDir, { recursive: true }); + for (const name of fs.readdirSync(fromDir)) { + await moveFile(path.join(fromDir, name), path.join(toDir, name)); + } + try { + if (fs.readdirSync(fromDir).length === 0) fs.rmdirSync(fromDir); + } catch { + /* Something arrived between the read and the remove; leaving it is safe. */ + } +} + +/** Uploaded-face paths were recorded as strings inside the answers themselves. */ +function rewriteFontSources(answers) { + if (!answers || typeof answers !== 'object') return null; + let touched = false; + for (const [key, value] of Object.entries(answers)) { + if (typeof value !== 'string' || !value.includes(LEGACY_FONTS_PREFIX)) continue; + answers[key] = value.split(LEGACY_FONTS_PREFIX).join(`${STORE_DIR}/fonts/`); + touched = true; + } + return touched ? answers : null; +} + +/** + * Bring a pre-store project onto the current layout. Idempotent and silent: + * a project that is already current, or was never interviewed, does nothing. + * + * A live session of the old shape holds the old paths in its own constants, so + * migrating under it would strand its writes. That case defers to the next boot. + */ +export async function migrate(cwd = process.cwd()) { + const legacyDir = path.resolve(cwd, LEGACY_DIR); + if (!fs.existsSync(legacyDir)) { + await migrateContextFromCues(cwd); + return { migrated: false, deferred: false }; + } + + const legacySession = path.join(legacyDir, 'doc-session.json'); + const session = await readJsonSoft(legacySession); + if (session && pidAlive(session.pid)) return { migrated: false, deferred: true }; + + const target = paths(cwd); + await moveFile(path.join(legacyDir, 'answers.json'), target.answersJson); + await moveFile(path.join(legacyDir, 'doc-edits.jsonl'), target.journalJsonl); + await moveDirContents(path.join(legacyDir, 'assets'), target.assetsDir); + await moveDirContents(path.join(legacyDir, 'fonts'), target.fontsDir); + + const answers = await readJsonSoft(target.answersJson); + const rewritten = rewriteFontSources(answers); + if (rewritten) await writeJsonAtomic(target.answersJson, rewritten); + + await rm(legacySession, { force: true }).catch(() => {}); + try { + if (fs.readdirSync(legacyDir).length === 0) fs.rmdirSync(legacyDir); + } catch { + /* Files the migration does not own stay where they are. */ + } + + await migrateContextFromCues(cwd); + return { migrated: true, deferred: false }; +} + +/* The chat half of the interview used to ride inside the cue manifest. It is + not a generation artifact, so it moves to the store; cues.json keeps its + cues and palette and is left untouched. */ +async function migrateContextFromCues(cwd) { + const target = paths(cwd); + if (fs.existsSync(target.contextJson)) return; + const cues = await readJsonSoft(target.cuesJson); + if (!cues) return; + const hasModes = Array.isArray(cues.modes); + const hasContext = cues.context && typeof cues.context === 'object'; + if (!hasModes && !hasContext) return; + await writeJsonAtomic(target.contextJson, { + schemaVersion: SCHEMA_VERSION, + ...(hasModes ? { modes: cues.modes } : {}), + ...(hasContext ? { context: cues.context } : {}), + }); +} diff --git a/.agent/skills/impeccable/scripts/image-gen.mjs b/.agent/skills/impeccable/scripts/image-gen.mjs new file mode 100644 index 000000000..2f4bc2cfc --- /dev/null +++ b/.agent/skills/impeccable/scripts/image-gen.mjs @@ -0,0 +1,363 @@ +#!/usr/bin/env node +// image-gen.mjs — image generation for keyless harnesses. +// Playbook: skill/reference/image-api.md (canonical; this help text is not). +// +// node image-gen.mjs --prompt "..." --out /abs/path.png +// [--ref /abs/ref.png] [--width 1408] [--height 1408] +// +// One CLI, several providers. IMAGE_GEN_PROVIDER in .impeccable/.env picks +// the backend: +// bfl FLUX (Black Forest Labs). No ref: flux-pro-1.1 text-to-image; +// with ref: flux-kontext-max image-to-image, aspect ratio 1:1. +// gemini Google Nano Banana (Gemini image models), always square 1:1. +// delegates to a project-local .impeccable/image-gen.mjs that +// implements this same CLI (see image-api.md for the contract). +// When the provider line is missing it is inferred from the key's shape +// (Google keys start with "AIza"; anything else is treated as bfl). +// +// Prints the absolute output path on success; exits non-zero with the +// error on stderr on failure. Dependency-free; needs curl and (as a DNS +// fallback) dig on PATH. +// +// Reads IMAGE_GEN_API_KEY from the environment, falling back to +// ./.impeccable/.env relative to the working directory, so callers never +// need to `source` anything: run it from the project root and it finds +// the key itself. + +import fs from "node:fs"; +import os from "node:os"; +import path from "node:path"; +import dns from "node:dns"; +import { execFileSync, spawnSync } from "node:child_process"; + +const sleep = (ms) => new Promise((r) => setTimeout(r, ms)); + +// ------------------------------------------------------------------ env + +// The key lives in .impeccable/.env per the document seed flow. Loading it +// here (instead of requiring the caller to export it) removes the one setup +// step subagents historically forgot, which cost a failed call each time. +// IMAGE_API_KEY is accepted as a legacy alias: early seed runs wrote that +// name, and those .env files are still in the wild. +function loadEnv(...names) { + for (const name of names) if (process.env[name]) return process.env[name]; + const envPath = path.join(process.cwd(), ".impeccable", ".env"); + if (!fs.existsSync(envPath)) return undefined; + const vars = {}; + for (const line of fs.readFileSync(envPath, "utf8").split("\n")) { + const m = line.match(/^\s*([A-Z_][A-Z0-9_]*)\s*=\s*(.*)\s*$/); + if (m) vars[m[1]] = m[2].replace(/^["']|["']$/g, ""); + } + for (const name of names) if (vars[name]) return vars[name]; + return undefined; +} + +// ------------------------------------------------------------------ DNS + +// Sandboxed harnesses (Claude Code among them) often block the default +// resolver for the providers' hosts while the hosts stay reachable by IP. +// So every request resolves the host here — system resolver first, then +// dig against the default, Google, and Cloudflare resolvers — and pins +// curl to the IP with --resolve. fetch() is never used; it dies at the +// DNS stage. +async function resolveIp(hostname) { + for (let attempt = 0; attempt < 3; attempt++) { + try { + const { address } = await dns.promises.lookup(hostname, { family: 4 }); + if (address) return address; + } catch { + // fall through to dig + } + for (const server of [null, "8.8.8.8", "1.1.1.1"]) { + try { + const args = ["+short", "+time=3", "A", hostname]; + if (server) args.push(`@${server}`); + const ips = execFileSync("dig", args, { encoding: "utf8" }) + .trim() + .split("\n") + .map((l) => l.trim()) + .filter((l) => /^\d+\.\d+\.\d+\.\d+$/.test(l)); + if (ips.length > 0) return ips[ips.length - 1]; + } catch { + // next resolver + } + } + await sleep(1000); + } + throw new Error(`cannot resolve ${hostname} via system resolver, dig, 8.8.8.8, or 1.1.1.1`); +} + +// ----------------------------------------------------------------- curl + +// Returns { status, json, text } instead of throwing on HTTP errors, so +// callers can branch on 402 (credits) and 429 (rate/quota) rather than +// seeing one opaque curl failure. Request bodies always travel via a temp +// file: a base64 reference image passed as a literal -d argument overflows +// argv (E2BIG) and kills the call before it reaches the network. +async function curlJson(url, { method = "GET", headers = {}, body } = {}) { + const { hostname } = new URL(url); + const ip = await resolveIp(hostname); + const args = ["-sS", "--max-time", "180", "--resolve", `${hostname}:443:${ip}`, "-X", method, "-w", "\n%{http_code}"]; + for (const [k, v] of Object.entries(headers)) args.push("-H", `${k}: ${v}`); + let bodyFile; + if (body !== undefined) { + bodyFile = path.join(os.tmpdir(), `image-gen-body-${process.pid}-${Date.now()}.json`); + fs.writeFileSync(bodyFile, body); + args.push("-d", `@${bodyFile}`); + } + args.push(url); + try { + const out = execFileSync("curl", args, { encoding: "utf8", maxBuffer: 256 * 1024 * 1024 }); + const nl = out.lastIndexOf("\n"); + const status = parseInt(out.slice(nl + 1), 10); + const text = out.slice(0, nl); + let json = null; + try { + json = JSON.parse(text); + } catch { + // non-JSON body (edge HTML error page); callers see json === null + } + return { status, json, text }; + } finally { + if (bodyFile) fs.rmSync(bodyFile, { force: true }); + } +} + +async function download(url, outPath) { + const { hostname } = new URL(url); + let lastErr; + // Re-resolve on every attempt: CDN delivery hosts are the flakiest to + // resolve, and a fresh IP is usually what fixes a failure. + for (let attempt = 0; attempt < 3; attempt++) { + try { + const ip = await resolveIp(hostname); + execFileSync("curl", ["-sS", "-f", "--max-time", "60", "--resolve", `${hostname}:443:${ip}`, "-o", outPath, url]); + if (fs.existsSync(outPath) && fs.statSync(outPath).size > 0) return; + lastErr = new Error("download produced an empty file"); + } catch (e) { + lastErr = e; + } + await sleep(2000 * (attempt + 1)); + } + throw lastErr; +} + +// ----------------------------------------------------------------- args + +function getArg(name, def) { + const i = process.argv.indexOf(`--${name}`); + return i >= 0 ? process.argv[i + 1] : def; +} + +function fail(msg) { + console.error(msg); + process.exit(1); +} + +// ------------------------------------------------------------------ bfl + +// FLUX is asynchronous: submit returns a polling_url, poll until Ready, +// download the signed result URL inside its 10-minute expiry. Transient +// failures are absorbed internally so a network blip costs this script +// seconds instead of costing a caller one of its generation attempts. +// Only two failures are final on the spot: 402 means the account is out +// of credits (a human must top up; retrying is pointless), and a +// moderation status means the prompt itself must change. +async function generateBfl({ apiKey, prompt, ref, width, height, out }) { + for (const [label, v] of [["width", width], ["height", height]]) { + if (Number.isNaN(v) || v < 256 || v > 1440 || v % 32 !== 0) { + fail(`${label} ${v} out of range: BFL takes 256-1440 in multiples of 32`); + } + } + + const base = "https://api.bfl.ai"; + let endpoint, body; + if (ref) { + endpoint = "/v1/flux-kontext-max"; + body = { prompt, input_image: fs.readFileSync(ref).toString("base64"), aspect_ratio: "1:1", output_format: "png" }; + } else { + endpoint = "/v1/flux-pro-1.1"; + body = { prompt, width, height, output_format: "png" }; + } + + const authHeaders = { "x-key": apiKey, "Content-Type": "application/json", accept: "application/json" }; + let submit; + for (let attempt = 0; ; attempt++) { + try { + submit = await curlJson(base + endpoint, { method: "POST", headers: authHeaders, body: JSON.stringify(body) }); + } catch (e) { + submit = { status: 0, json: null, text: e.message }; + } + if (submit.status === 200 && submit.json?.polling_url) break; + if (submit.status === 402) fail("BFL account is out of credits; add credits at dashboard.bfl.ai and re-run"); + if (submit.status === 401 || submit.status === 403) fail(`BFL rejected the key (HTTP ${submit.status}): check IMAGE_GEN_API_KEY`); + if (attempt >= 2) fail(`Submit failed after 3 attempts (last HTTP ${submit.status}): ${submit.text?.slice(0, 300)}`); + // 429 is the active-task cap (24 tasks; 6 for kontext-max): wait longer. + await sleep(submit.status === 429 ? 10000 : 2000 * (attempt + 1)); + } + + // Poll the returned polling_url (never a reconstructed one; the global + // endpoint requires it). Tolerate a few consecutive transient poll + // failures — the task keeps running server-side regardless. + let result; + let pollFailures = 0; + for (let i = 0; i < 150; i++) { + await sleep(2000); + let poll; + try { + poll = await curlJson(submit.json.polling_url, { headers: { "x-key": apiKey, accept: "application/json" } }); + } catch { + poll = null; + } + if (!poll || poll.status >= 500 || !poll.json) { + if (++pollFailures >= 5) fail("Polling failed 5 times in a row; giving up"); + continue; + } + pollFailures = 0; + if (poll.json.status === "Ready") { + result = poll.json.result; + break; + } + if (["Error", "Failed", "Content Moderated", "Request Moderated", "Task not found"].includes(poll.json.status)) { + fail(`Generation failed with status "${poll.json.status}": ${JSON.stringify(poll.json).slice(0, 300)}`); + } + } + if (!result) fail("Timed out waiting for the generation (5 minutes)"); + + // The sample URL is signed and expires after 10 minutes; download now. + await download(result.sample, out); +} + +// --------------------------------------------------------------- gemini + +// Nano Banana is synchronous: one generateContent call returns the image +// as base64 in the response, no polling, no delivery CDN. The aspect ratio +// is pinned 1:1 in imageConfig, so output is always square regardless of +// --width/--height (Gemini picks its own pixel size per tier; the pipeline +// only requires square). Moderation shows up as a response with no image +// part plus a block reason, not as an HTTP error. +async function generateGemini({ apiKey, prompt, ref, out }) { + // IMAGE_GEN_MODEL overrides for users on a different tier; the default + // is the high-volume Nano Banana model. + let model = loadEnv("IMAGE_GEN_MODEL") || "gemini-3.1-flash-image"; + const parts = [{ text: prompt }]; + if (ref) parts.push({ inlineData: { mimeType: "image/png", data: fs.readFileSync(ref).toString("base64") } }); + const body = JSON.stringify({ + contents: [{ parts }], + generationConfig: { responseModalities: ["IMAGE"], imageConfig: { aspectRatio: "1:1" } }, + }); + const headers = { "x-goog-api-key": apiKey, "Content-Type": "application/json" }; + const urlFor = (m) => `https://generativelanguage.googleapis.com/v1beta/models/${m}:generateContent`; + + let res; + for (let attempt = 0; ; attempt++) { + try { + res = await curlJson(urlFor(model), { method: "POST", headers, body }); + } catch (e) { + res = { status: 0, json: null, text: e.message }; + } + if (res.status === 200) break; + const msg = res.json?.error?.message || res.text?.slice(0, 300) || ""; + if (res.status === 400 && /API key not valid/i.test(msg)) fail(`Gemini rejected the key: check IMAGE_GEN_API_KEY (${msg.slice(0, 200)})`); + if (res.status === 401 || res.status === 403) fail(`Gemini rejected the key (HTTP ${res.status}): ${msg.slice(0, 200)}`); + // Model ids drift between stable and -preview suffixes as Google + // promotes them; try the sibling name once before giving up. + if (res.status === 404 && !model.endsWith("-preview")) { + model = `${model}-preview`; + continue; + } + if (res.status === 429 && attempt >= 4) fail(`Gemini quota or rate limit exhausted after 5 attempts: ${msg.slice(0, 200)}; check the plan and billing for this key`); + if (attempt >= 4) fail(`Gemini call failed after 5 attempts (last HTTP ${res.status}): ${msg.slice(0, 300)}`); + await sleep(res.status === 429 ? 15000 : 2000 * (attempt + 1)); + } + + const blocked = res.json?.promptFeedback?.blockReason; + if (blocked) fail(`Prompt was moderated (${blocked}); reword the prompt and re-run`); + const cand = res.json?.candidates?.[0]; + const imgPart = cand?.content?.parts?.find((p) => p.inlineData?.data || p.inline_data?.data); + if (!imgPart) { + const reason = cand?.finishReason || "no image part in the response"; + fail(`Generation returned no image (${reason}); reword the prompt and re-run`); + } + // Gemini often returns JPEG bytes whatever the caller's filename says, + // and the pipelines' compile steps decode PNG only, so convert here + // rather than making every caller rediscover the mismatch. + writeAsPng(Buffer.from(imgPart.inlineData?.data || imgPart.inline_data.data, "base64"), out); +} + +// Writes image bytes to `out` as a real PNG. PNG input passes through; +// anything else (JPEG, WebP) is converted with the first available system +// tool: sips ships with macOS, ImageMagick and ffmpeg cover Linux. +function writeAsPng(buf, out) { + if (buf.subarray(0, 8).equals(Buffer.from([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]))) { + fs.writeFileSync(out, buf); + return; + } + const tmp = path.join(os.tmpdir(), `image-gen-raw-${process.pid}-${Date.now()}.img`); + fs.writeFileSync(tmp, buf); + const converters = [ + ["sips", ["-s", "format", "png", tmp, "--out", out]], + ["magick", [tmp, `png:${out}`]], + ["convert", [tmp, `png:${out}`]], + ["ffmpeg", ["-y", "-i", tmp, out]], + ]; + try { + for (const [cmd, args] of converters) { + try { + execFileSync(cmd, args, { stdio: "ignore" }); + if (fs.existsSync(out) && fs.statSync(out).size > 0) return; + } catch { + // tool missing or failed; try the next one + } + } + fail("Provider returned non-PNG image bytes and no converter is available (tried sips, magick, convert, ffmpeg); install one and re-run"); + } finally { + fs.rmSync(tmp, { force: true }); + } +} + +// ----------------------------------------------------------------- main + +const prompt = getArg("prompt"); +const out = getArg("out"); +const ref = getArg("ref"); +// 1408 is the default square: comfortably under BFL's 1440 cap and +// divisible by 32. Gemini ignores it (aspect ratio 1:1 pins its square). +const width = parseInt(getArg("width", "1408"), 10); +const height = parseInt(getArg("height", "1408"), 10); +const apiKey = loadEnv("IMAGE_GEN_API_KEY", "IMAGE_API_KEY"); +// Users and earlier runs write provider names loosely ("flux" for bfl, +// "nano-banana" for gemini); normalize the known spellings instead of +// failing on them. Google API keys start with "AIza" (classic) or "AQ." +// (newer), so a missing provider line is recoverable from the key itself. +const PROVIDER_ALIASES = { + bfl: "bfl", flux: "bfl", "black-forest-labs": "bfl", + gemini: "gemini", google: "gemini", "nano-banana": "gemini", nanobanana: "gemini", +}; +const looksGoogle = apiKey?.startsWith("AIza") || apiKey?.startsWith("AQ."); +const rawProvider = (loadEnv("IMAGE_GEN_PROVIDER") || (looksGoogle ? "gemini" : "bfl")).toLowerCase(); +const provider = PROVIDER_ALIASES[rawProvider] || rawProvider; + +if (!prompt || !out) fail("Usage: --prompt

--out [--ref ] [--width n] [--height n]"); + +if (provider !== "bfl" && provider !== "gemini") { + // Unknown provider: hand the same argv to a project-local wrapper that + // implements this CLI. The env guard stops a copied shipped script from + // delegating to itself forever. + const custom = path.join(process.cwd(), ".impeccable", "image-gen.mjs"); + if (process.env.IMPECCABLE_IMAGE_GEN_DELEGATED || !fs.existsSync(custom)) { + fail(`Unknown IMAGE_GEN_PROVIDER "${provider}" and no ${custom}; supported providers are bfl and gemini, or write that file implementing the same CLI (see reference/image-api.md)`); + } + const child = spawnSync(process.execPath, [custom, ...process.argv.slice(2)], { + stdio: "inherit", + env: { ...process.env, IMPECCABLE_IMAGE_GEN_DELEGATED: "1" }, + }); + process.exit(child.status ?? 1); +} + +if (!apiKey) fail("Missing IMAGE_GEN_API_KEY (environment or ./.impeccable/.env)"); + +fs.mkdirSync(path.dirname(out), { recursive: true }); +if (provider === "gemini") await generateGemini({ apiKey, prompt, ref, out }); +else await generateBfl({ apiKey, prompt, ref, width, height, out }); +console.log(path.resolve(out)); diff --git a/.agent/skills/impeccable/scripts/palette.mjs b/.agent/skills/impeccable/scripts/palette.mjs index ea692cd0f..d9b0420cc 100644 --- a/.agent/skills/impeccable/scripts/palette.mjs +++ b/.agent/skills/impeccable/scripts/palette.mjs @@ -27,6 +27,7 @@ */ import crypto from 'node:crypto'; +import { pathToFileURL } from 'node:url'; // Seeds are inlined (129 entries, hand-curated via a tinder review of // ~400 candidates from ColorHunt + synthesis + Radix/brand/Pantone anchors). @@ -494,6 +495,12 @@ function hueWord(H) { // --------------------------------------------------------------- +// The picker server imports SEEDS to serve /palettes.json; the CLI tail +// below only runs when this file is the entry point, so importing it has +// no side effects. +export { SEEDS }; + +if (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) { const args = parseArgs(process.argv.slice(2)); const seed = pickSeed(SEEDS, args); const [L, C, H] = seed.oklch; @@ -626,3 +633,4 @@ Dark text is correct only on PALE fills (L > 0.85) or PURE-NEUTRAL fills Return your composed palette in CSS custom properties using OKLCH, then build with it. The seed is the start, not the recipe. `); +} diff --git a/.agent/skills/impeccable/scripts/picker-doc-poll.mjs b/.agent/skills/impeccable/scripts/picker-doc-poll.mjs new file mode 100644 index 000000000..fb0813864 --- /dev/null +++ b/.agent/skills/impeccable/scripts/picker-doc-poll.mjs @@ -0,0 +1,137 @@ +#!/usr/bin/env node +/** Agent poll CLI for the design-document edit session. + * + * The picker forks picker-doc-session.mjs on submit; this is how the agent + * hears from it, on the live-poll.mjs contract: one-shot by default, block + * until one event arrives, print it as JSON on stdout, exit. + * + * node picker-doc-poll.mjs # block, print one event + * node picker-doc-poll.mjs --timeout=600000 # total budget in ms + * node picker-doc-poll.mjs --reply [message] + * node picker-doc-poll.mjs --reply done "msg" --answers '{"key":"value"}' + * + * Events printed: {"type":"edit_request","id","kind","prompt","category", + * "payload"} for work a person asked for in words, + * {"type":"save_batch","id","changes","downstream","replyCommand"} for edits + * already applied to the store and owed a prose pass in DESIGN.md or + * PRODUCT.md, {"type":"timeout"} when the budget runs out (poll again), and + * {"type":"exit"} when the session ended (stop polling). + * + * Reply statuses: done (change applied; message shown to the user in the + * document), error (could not apply; message explains), retry (release the + * request back to pending). + * + * --answers and --context attach values for the session to write. The session + * is the only writer of the store while it runs, so a value the agent settles + * travels here rather than being written to those files directly. + * + * Session discovery: .impeccable/design-context/runtime/session.json, written + * by the session process and removed when it exits; a missing file prints + * {"type":"exit"} so a finished session never hangs the loop. + */ + +import { readFile } from 'node:fs/promises'; +import { paths } from './design-context/store.mjs'; + +const sessionPath = paths(process.cwd()).sessionJson; +/* Sliced under undici's 300s header timeout, same as live-poll. */ +const PER_REQUEST_MS = 270_000; +const DEFAULT_TOTAL_MS = 600_000; + +async function session() { + try { + return JSON.parse(await readFile(sessionPath, 'utf8')); + } catch { + return null; + } +} + +const args = process.argv.slice(2); + +function readFlag(name, fallback) { + const exact = args.find((arg) => arg.startsWith(`${name}=`)); + if (exact) return exact.slice(name.length + 1); + const at = args.indexOf(name); + if (at !== -1 && args[at + 1]) return args[at + 1]; + return fallback; +} + +const info = await session(); +if (!info) { + console.log(JSON.stringify({ type: 'exit', reason: 'no-session' })); + process.exit(0); +} +const base = `http://127.0.0.1:${info.port}`; + +const VALUE_FLAGS = new Set(['--answers', '--context', '--timeout']); + +/* The message is whatever positional words are left, so a flag and the value + that belongs to it both have to come out first, or an attached JSON payload + would be read back to the user as their confirmation line. */ +function positionalAfter(marker) { + const words = []; + for (let index = args.indexOf(marker) + 1; index < args.length; index += 1) { + const arg = args[index]; + if (arg.startsWith('--')) { + if (VALUE_FLAGS.has(arg)) index += 1; + continue; + } + words.push(arg); + } + return words; +} + +if (args.includes('--reply')) { + const [id, status, ...rest] = positionalAfter('--reply'); + if (!id || !status) { + console.error('usage: picker-doc-poll.mjs --reply [message] [--answers JSON] [--context JSON]'); + process.exit(1); + } + /* Values the agent settled while doing the work, handed to the session to + write. Bad JSON is a mistake worth stopping for rather than dropping. */ + const attached = {}; + for (const flag of ['answers', 'context']) { + const raw = readFlag(`--${flag}`, ''); + if (!raw) continue; + try { + attached[flag] = JSON.parse(raw); + } catch { + console.error(`--${flag} must be a JSON object`); + process.exit(1); + } + } + const response = await fetch(`${base}/doc/reply`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ token: info.token, id, status, message: rest.join(' '), ...attached }), + }).catch(() => null); + if (!response?.ok) { + console.error(`Reply failed: ${response ? response.status : 'session unreachable'}`); + process.exit(1); + } + console.log(JSON.stringify(await response.json())); + process.exit(0); +} + +const totalBudget = Number(readFlag('--timeout', DEFAULT_TOTAL_MS)); +const deadline = Date.now() + (Number.isFinite(totalBudget) && totalBudget > 0 ? totalBudget : DEFAULT_TOTAL_MS); + +for (;;) { + const slice = Math.min(deadline - Date.now(), PER_REQUEST_MS); + if (slice <= 0) { + console.log(JSON.stringify({ type: 'timeout' })); + process.exit(0); + } + let payload; + try { + const response = await fetch(`${base}/doc/poll?token=${encodeURIComponent(info.token)}&timeout=${slice}`); + payload = await response.json(); + } catch { + /* The session process exited between polls. */ + console.log(JSON.stringify({ type: 'exit', reason: 'session-gone' })); + process.exit(0); + } + if (payload.type === 'timeout') continue; + console.log(JSON.stringify(payload)); + process.exit(0); +} diff --git a/.agent/skills/impeccable/scripts/picker-doc-session.mjs b/.agent/skills/impeccable/scripts/picker-doc-session.mjs new file mode 100644 index 000000000..eab4e9524 --- /dev/null +++ b/.agent/skills/impeccable/scripts/picker-doc-session.mjs @@ -0,0 +1,465 @@ +#!/usr/bin/env node +/** Design-document edit session (self-contained, zero dependencies). + * + * The picker server forks this detached sibling the moment the questionnaire + * submits, so the review tab's design context document stays connected after + * the picker itself exits 0 (the agent's completion signal). It runs on its + * own pre-scanned port with CORS open to the picker origin, and it mediates + * three parties the way the live server does, scaled down to polling: + * + * browser --POST /doc/save----------> applied to the store, batch queued + * browser --POST /doc/request-------> queue --GET /doc/poll--> agent + * agent --POST /doc/reply---------> queue status + version bump + * browser --GET /doc/state (poll)--> { version, requests, batch } -> re-read + * + * It also serves the document's own images: GET /brand-assets/* for what the + * user supplied, GET /assets/* for the ones the picker ships. Both are + * token-gated and read-only. They are here rather than on the picker server + * because article images load when a view opens, which is always after the + * picker has exited. + * + * Edits made in the document stage in the browser and arrive here as one batch. + * Applying them is deterministic and belongs to this process: each change names + * a field, the field names a place in the store, and the value is written + * there. What reaches the agent afterwards is the reconciliation the store + * cannot do for itself, the prose in DESIGN.md and PRODUCT.md that describes + * those values. Anything needing judgment up front, a font change or a freeform + * ask, queues for the agent the same way, and it long-polls through + * picker-doc-poll.mjs exactly like live mode's live-poll.mjs. + * + * This process is the only writer of the store while it runs; the agent's own + * follow-on values ride in on its reply. That is what keeps a save and an + * agent working at the same time from overwriting each other. + * + * Session discovery for the agent CLI: .impeccable/design-context/runtime/ + * session.json { pid, port, token }. Removed on exit. Every applied change is + * journaled to runtime/journal.jsonl beside it, so a session that dies with a + * batch outstanding re-offers it and the agent can reconcile prose at the end. + * + * Usage (spawned by picker-server.mjs, not by hand): + * node picker-doc-session.mjs --port 8501 --timeout 60 + * with IMPECCABLE_DOC_TOKEN in the environment. + */ + +import http from 'node:http'; +import { mkdir, readFile, rm, writeFile } from 'node:fs/promises'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { fontRelativePath, migrate, paths, readJsonSoft, writeJsonAtomic } from './design-context/store.mjs'; +import { createSaveRoutes } from './design-context/session-routes.mjs'; + +const store = paths(process.cwd()); +const answersPath = store.answersJson; +const contextPath = store.contextJson; +const sessionPath = store.sessionJson; +const fontsDir = store.fontsDir; +const brandAssetsDir = store.assetsDir; +/* The built picker beside this script: the document's own images (section + foils, rail textures, placeholder brand assets) are served from here after + the submit-flow picker server has exited. Read-only, image types only. */ +const pickerAssetsDir = path.join(path.dirname(fileURLToPath(import.meta.url)), 'picker', 'assets'); + +const MAX_BODY_BYTES = 1024 * 1024; +const FONT_EXTENSIONS = new Set(['.woff2', '.woff', '.ttf', '.otf']); +const BRAND_ASSET_MIME = new Map([ + ['.svg', 'image/svg+xml'], + ['.png', 'image/png'], + ['.jpg', 'image/jpeg'], + ['.jpeg', 'image/jpeg'], + ['.webp', 'image/webp'], + ['.gif', 'image/gif'], +]); +const PICKER_ASSET_MIME = new Map([ + ['.png', 'image/png'], + ['.jpg', 'image/jpeg'], + ['.jpeg', 'image/jpeg'], + ['.webp', 'image/webp'], + ['.svg', 'image/svg+xml'], +]); +const REQUEST_KINDS = new Set(['font', 'freeform']); +/* Long polls are sliced under common proxy/undici header timeouts, the same + 270s ceiling live-poll uses. */ +const MAX_POLL_MS = 270_000; +/* The tab polls /doc/state every couple of seconds while open; when it has + been quiet this long the session is over and the agent's poll gets exit. */ +const BROWSER_GONE_MS = 10 * 60_000; +/* A tab adopts the session within seconds of the submit that forked it. If + no poll ever arrives (a test harness, a closed tab), die young instead of + holding a port for the full ceiling. */ +const ADOPT_GRACE_MS = 90_000; + +const args = process.argv.slice(2); +const readArg = (name, fallback) => { + const at = args.indexOf(name); + return at !== -1 && args[at + 1] ? args[at + 1] : fallback; +}; +const port = Number(readArg('--port', '0')); +const timeoutMinutes = Number(readArg('--timeout', '60')); +const token = process.env.IMPECCABLE_DOC_TOKEN || ''; +if (!port || !token) { + console.error('picker-doc-session is spawned by picker-server.mjs and needs --port plus IMPECCABLE_DOC_TOKEN.'); + process.exit(1); +} + +let version = 1; +let requestSeq = 0; +const requests = []; +/* The save flow lives in its own module; this shell keeps the server, the + timers, and the token. Every applied save bumps the same version the tab + polls, so the document re-reads itself without a second signal. */ +const saves = createSaveRoutes({ onChange: () => { bumpVersion(); wakeParkedPolls(); } }); +let lastBrowserSeen = Date.now(); +let adopted = false; +const parkedPolls = []; + +function sendJson(response, statusCode, body) { + response.writeHead(statusCode, { + 'Content-Type': 'application/json; charset=utf-8', + 'Access-Control-Allow-Origin': '*', + }); + response.end(JSON.stringify(body)); +} + +function httpError(statusCode, message) { + const error = new Error(message); + error.statusCode = statusCode; + return error; +} + +async function readJsonBody(request) { + const chunks = []; + let size = 0; + for await (const chunk of request) { + size += chunk.length; + if (size > MAX_BODY_BYTES) throw httpError(413, 'Request body exceeds 1 MB'); + chunks.push(chunk); + } + let value; + try { + value = JSON.parse(Buffer.concat(chunks).toString('utf8')); + } catch { + throw httpError(400, 'Body must be valid JSON'); + } + if (!value || typeof value !== 'object' || Array.isArray(value)) throw httpError(400, 'Body must be a JSON object'); + return value; +} + +const summarize = (entry) => ({ + id: entry.id, + kind: entry.kind, + prompt: entry.prompt, + category: entry.category, + status: entry.status, + message: entry.message || '', +}); + +/* ============================================================ + Requests that need judgment, queued for the agent. + ============================================================ */ + +function wakeParkedPolls() { + while (parkedPolls.length) { + const parked = parkedPolls.shift(); + clearTimeout(parked.timer); + parked.resolve(); + } +} + +function nextPending() { + return requests.find((entry) => entry.status === 'pending'); +} + +async function handleDocPoll(response, query) { + const budget = Math.min(Number(query.get('timeout')) || MAX_POLL_MS, MAX_POLL_MS); + const deadline = Date.now() + budget; + + for (;;) { + if (Date.now() - lastBrowserSeen > BROWSER_GONE_MS) { + sendJson(response, 200, { type: 'exit', reason: 'browser-gone' }); + return; + } + const entry = nextPending(); + if (entry) { + entry.status = 'working'; + bumpVersion(); + sendJson(response, 200, { type: 'edit_request', ...summarize(entry), payload: entry.payload }); + return; + } + /* The values are already in the store; what is handed over is the prose + still owed to DESIGN.md and PRODUCT.md. The reply command travels with + the event so the instruction cannot drift from the contract. */ + const batch = saves.takeBatchEvent((id) => `node picker-doc-poll.mjs --reply ${id} done "One line the user sees in the tab"`); + if (batch) { + sendJson(response, 200, batch); + return; + } + const remaining = deadline - Date.now(); + if (remaining <= 0) { + sendJson(response, 200, { type: 'timeout' }); + return; + } + await new Promise((resolve) => { + const parked = { resolve, timer: setTimeout(resolve, Math.min(remaining, 5_000)) }; + parkedPolls.push(parked); + }); + } +} + +function bumpVersion() { + version += 1; +} + +/* ============================================================ + Server + ============================================================ */ + +const server = http.createServer((request, response) => { + void handleRequest(request, response).catch((error) => { + if (!response.headersSent) sendJson(response, error.statusCode || 500, { error: error.message }); + else response.destroy(); + }); +}); + +async function handleRequest(request, response) { + const url = new URL(request.url, 'http://localhost'); + const requestPath = url.pathname; + + if (request.method === 'OPTIONS') { + response.writeHead(204, { + 'Access-Control-Allow-Origin': '*', + 'Access-Control-Allow-Methods': 'GET, POST, OPTIONS', + 'Access-Control-Allow-Headers': 'Content-Type, X-Font-Filename', + 'Access-Control-Max-Age': '600', + }); + response.end(); + return; + } + + /* Font uploads carry bytes, not JSON; token rides the query string. */ + if (request.method === 'POST' && requestPath === '/font-upload') { + if (url.searchParams.get('token') !== token) throw httpError(403, 'Bad token'); + const name = path.basename(request.headers['x-font-filename'] || ''); + if (!name || !FONT_EXTENSIONS.has(path.extname(name).toLowerCase())) { + throw httpError(400, 'Expected a .woff2, .woff, .ttf, or .otf filename'); + } + const chunks = []; + let size = 0; + for await (const chunk of request) { + size += chunk.length; + if (size > MAX_BODY_BYTES) throw httpError(413, 'Font exceeds 1 MB'); + chunks.push(chunk); + } + await mkdir(fontsDir, { recursive: true }); + await writeFile(path.join(fontsDir, name), Buffer.concat(chunks)); + sendJson(response, 200, { ok: true, path: fontRelativePath(name) }); + return; + } + + /* Brand-asset images for the document's Brand article. The picker server + serves the same directory while it lives; it exits on submit, and the + article's images load after that, so the tab fetches them from here + with the session token on the query string, the same rule as the + sibling GET routes. Filenames only, extension-gated, one directory. */ + if (request.method === 'GET' && requestPath.startsWith('/brand-assets/')) { + if (url.searchParams.get('token') !== token) throw httpError(403, 'Bad token'); + let assetName; + try { + assetName = decodeURIComponent(requestPath.slice('/brand-assets/'.length)); + } catch { + throw httpError(400, 'Invalid path'); + } + const extension = path.extname(assetName).toLowerCase(); + const filePath = path.resolve(brandAssetsDir, assetName); + if (!assetName || assetName !== path.basename(assetName) + || !BRAND_ASSET_MIME.has(extension) + || path.relative(brandAssetsDir, filePath).startsWith('..')) { + throw httpError(404, 'Not found'); + } + let body; + try { + body = await readFile(filePath); + } catch { + throw httpError(404, 'Not found'); + } + response.writeHead(200, { + 'Content-Type': BRAND_ASSET_MIME.get(extension), + 'Content-Length': body.length, + 'Access-Control-Allow-Origin': '*', + 'Cache-Control': 'max-age=86400', + }); + response.end(body); + return; + } + + /* The document's own static images, for the tab that outlives the picker + server: the submit flow exits on /submit, and article images only load when + a view opens, which is always after that. Same trust model as the route + above, token-gated and read-only, but contained rather than flat, because + the vendored files sit in per-category subdirectories. */ + if (request.method === 'GET' && requestPath.startsWith('/assets/')) { + if (url.searchParams.get('token') !== token) throw httpError(403, 'Bad token'); + let assetPath; + try { + assetPath = decodeURIComponent(requestPath.slice('/assets/'.length)); + } catch { + throw httpError(400, 'Invalid path'); + } + const extension = path.extname(assetPath).toLowerCase(); + const filePath = path.resolve(pickerAssetsDir, assetPath); + const contained = path.relative(pickerAssetsDir, filePath); + if (!assetPath + || assetPath.includes('\0') + || !PICKER_ASSET_MIME.has(extension) + || contained.startsWith('..') + || path.isAbsolute(contained)) { + throw httpError(404, 'Not found'); + } + let body; + try { + body = await readFile(filePath); + } catch { + throw httpError(404, 'Not found'); + } + response.writeHead(200, { + 'Content-Type': PICKER_ASSET_MIME.get(extension), + 'Content-Length': body.length, + 'Access-Control-Allow-Origin': '*', + 'Cache-Control': 'max-age=86400', + }); + response.end(body); + return; + } + + if (request.method === 'GET' && requestPath === '/doc/state') { + if (url.searchParams.get('token') !== token) throw httpError(403, 'Bad token'); + lastBrowserSeen = Date.now(); + adopted = true; + sendJson(response, 200, { + ok: true, + version, + requests: requests.map(summarize), + agentWaiting: parkedPolls.length > 0, + batch: saves.summary(), + }); + return; + } + + if (request.method === 'GET' && requestPath === '/doc/answers') { + if (url.searchParams.get('token') !== token) throw httpError(403, 'Bad token'); + const answers = JSON.parse(await readFile(answersPath, 'utf8')); + sendJson(response, 200, { ok: true, version, answers }); + return; + } + + /* The chat half of the run, read fresh so an agent's rewrite reaches the tab. */ + if (request.method === 'GET' && requestPath === '/doc/context') { + if (url.searchParams.get('token') !== token) throw httpError(403, 'Bad token'); + let stored = null; + try { + stored = JSON.parse(await readFile(contextPath, 'utf8')); + } catch { + /* A run whose chat half was never recorded still has a document. */ + } + sendJson(response, 200, { + ok: true, + version, + modes: stored?.modes ?? null, + context: stored?.context ?? null, + }); + return; + } + + if (request.method === 'GET' && requestPath === '/doc/poll') { + if (url.searchParams.get('token') !== token) throw httpError(403, 'Bad token'); + await handleDocPoll(response, url.searchParams); + return; + } + + if (request.method !== 'POST') throw httpError(404, 'Not found'); + const body = await readJsonBody(request); + if (body.token !== token) throw httpError(403, 'Bad token'); + + /* Everything staged in the document arrives at once. Applying is this + process's job; reconciling the prose around it is the agent's. */ + if (requestPath === '/doc/save') { + const applied = await saves.save(body); + sendJson(response, 200, { ok: true, version, ...applied }); + return; + } + + if (requestPath === '/doc/request') { + if (!REQUEST_KINDS.has(body.kind)) throw httpError(400, 'kind must be font or freeform'); + const prompt = String(body.prompt || '').trim(); + if (!prompt || prompt.length > 4000) throw httpError(400, 'prompt is required, 4000 characters max'); + requestSeq += 1; + const entry = { + id: `req-${String(requestSeq).padStart(3, '0')}`, + kind: body.kind, + prompt, + category: String(body.category || ''), + payload: body.payload && typeof body.payload === 'object' ? body.payload : {}, + status: 'pending', + message: '', + }; + requests.push(entry); + bumpVersion(); + wakeParkedPolls(); + sendJson(response, 200, { ok: true, id: entry.id, version }); + return; + } + + if (requestPath === '/doc/reply') { + // A save and a request are both replied to here, told apart by the id. + if (saves.hasPending() && String(body.id || '').startsWith('batch-')) { + const result = await saves.reply(body); + sendJson(response, 200, { ok: true, version, ...result }); + return; + } + const entry = requests.find((item) => item.id === body.id); + if (!entry) throw httpError(404, 'Unknown request id'); + if (!['done', 'error', 'retry'].includes(body.status)) throw httpError(400, 'status must be done, error, or retry'); + entry.status = body.status === 'retry' ? 'pending' : body.status; + entry.message = String(body.message || ''); + saves.noteRequest(entry.id, entry.status); + bumpVersion(); + if (entry.status === 'pending') wakeParkedPolls(); + sendJson(response, 200, { ok: true, version }); + return; + } + + throw httpError(404, 'Not found'); +} + +server.listen(port, '127.0.0.1', async () => { + await migrate(process.cwd()); + await writeJsonAtomic(sessionPath, { pid: process.pid, port, token }); +}); + +server.on('error', () => process.exit(1)); + +/* The session dies with its audience: no browser poll for BROWSER_GONE_MS, + or the hard ceiling, whichever lands first. */ +const reaper = setInterval(() => { + const quiet = Date.now() - lastBrowserSeen; + if (quiet > BROWSER_GONE_MS || (!adopted && quiet > ADOPT_GRACE_MS)) shutdown(); +}, 15_000); +const ceiling = setTimeout(shutdown, timeoutMinutes * 60_000); + +async function shutdown() { + clearInterval(reaper); + clearTimeout(ceiling); + wakeParkedPolls(); + /* Only if it is still ours. A session that outlived its tab can be shutting + down at the moment a newer one writes the same path, and taking the file + with it would leave the live session undiscoverable. */ + const recorded = await readJsonSoft(sessionPath); + if (!recorded || recorded.pid === process.pid) { + await rm(sessionPath, { force: true }).catch(() => {}); + } + server.close(() => process.exit(0)); + server.closeAllConnections?.(); + setTimeout(() => process.exit(0), 1_000).unref(); +} + +process.once('SIGINT', shutdown); +process.once('SIGTERM', shutdown); diff --git a/.agent/skills/impeccable/scripts/picker-server.mjs b/.agent/skills/impeccable/scripts/picker-server.mjs new file mode 100644 index 000000000..2ea628f72 --- /dev/null +++ b/.agent/skills/impeccable/scripts/picker-server.mjs @@ -0,0 +1,572 @@ +#!/usr/bin/env node +/** Browser questionnaire server (self-contained, zero dependencies). + * Serves picker files and cues, writes one JSON submission, then exits. + * Usage: node /picker-server.mjs [--port 8500] + * [--cues-dir .impeccable/visual-cues] [--timeout 60] + */ + +import http from 'node:http'; +import { spawn } from 'node:child_process'; +import { randomUUID } from 'node:crypto'; +import { copyFile, readFile, mkdir, rm, stat, writeFile } from 'node:fs/promises'; +import net from 'node:net'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { SEEDS } from './palette.mjs'; +import { + clearDraft, + fontRelativePath, + migrate, + paths, + pidAlive, + readAnswers, + readDraft, + readJsonSoft, + writeDraft, + writeJsonAtomic, +} from './design-context/store.mjs'; +const scriptDir = path.dirname(fileURLToPath(import.meta.url)); +const pickerDir = path.join(scriptDir, 'picker'); +const store = paths(process.cwd()); +const answersPath = store.answersJson; +const fontsDir = store.fontsDir; +const brandAssetsDir = store.assetsDir; +const MAX_BODY_BYTES = 1024 * 1024; +const FONT_EXTENSIONS = new Set(['.woff2', '.woff', '.ttf', '.otf']); +const BRAND_ASSET_EXTENSIONS = ['.svg', '.png', '.jpg', '.jpeg', '.webp', '.gif']; +const MIME = new Map([ + ['.html', 'text/html; charset=utf-8'], + ['.css', 'text/css; charset=utf-8'], + ['.js', 'text/javascript; charset=utf-8'], + ['.jpg', 'image/jpeg'], + ['.jpeg', 'image/jpeg'], + ['.webp', 'image/webp'], + ['.gif', 'image/gif'], + ['.png', 'image/png'], + ['.svg', 'image/svg+xml'], + ['.json', 'application/json; charset=utf-8'], + ['.woff2', 'font/woff2'], + ['.woff', 'font/woff'], + ['.ttf', 'font/ttf'], + ['.otf', 'font/otf'], +]); +function printHelp() { + console.log(`Usage: node picker-server.mjs [options] + +Serve the Impeccable design picker and wait for one form submission. + +Options: + --port PORT Scan for an open port from PORT (default: 8500) + --cues-dir PATH Visual cues directory (default: .impeccable/visual-cues) + --timeout MINUTES Exit 2 if nothing submits (default: 60) + --fresh Start blank, ignoring any previous answers or draft + --help Show this help + +Output: + PICKER_URL URL Printed when the server is ready + ANSWERS PATH Printed after answers.json is written + +Also served, for the design context document the questionnaire reveals: + /context.json The chat half of the interview, from the design-context store + /cue.png The chosen cue image, copied into the store at submit + +See reference/visual-cues.md for the canonical agent flow.`); +} + +function readOption(args, index) { + const arg = args[index]; + const equals = arg.indexOf('='); + if (equals !== -1) return { value: arg.slice(equals + 1), next: index }; + if (!args[index + 1] || args[index + 1].startsWith('--')) { + throw new Error(`${arg} requires a value`); + } + return { value: args[index + 1], next: index + 1 }; +} +function parseArgs(args) { + const options = { + port: 8500, + cuesDir: path.resolve(process.cwd(), '.impeccable/visual-cues'), + timeoutMinutes: 60, + fresh: false, + doc: false, + }; + + for (let index = 0; index < args.length; index += 1) { + const arg = args[index]; + if (arg === '--help' || arg === '-h') return { help: true }; + /* Value-less flags are read before the guard below, which would reject + them, and before readOption, which demands a value for every flag. */ + if (arg === '--fresh') { options.fresh = true; continue; } + if (arg === '--doc') { options.doc = true; continue; } + if (!arg.startsWith('--port') && !arg.startsWith('--cues-dir') && !arg.startsWith('--timeout')) throw new Error(`Unknown option: ${arg}`); + + const { value, next } = readOption(args, index); + index = next; + if (arg.startsWith('--port')) options.port = Number(value); + if (arg.startsWith('--cues-dir')) options.cuesDir = path.resolve(process.cwd(), value); + if (arg.startsWith('--timeout')) options.timeoutMinutes = Number(value); + } + + if (!Number.isInteger(options.port) || options.port < 1 || options.port > 65535) throw new Error('--port must be an integer from 1 to 65535'); + if (!Number.isFinite(options.timeoutMinutes) || options.timeoutMinutes <= 0) throw new Error('--timeout must be a positive number of minutes'); + return options; +} +async function findOpenPort(start = 8500) { + if (start > 65535) throw new Error('No open picker port found'); + return new Promise((resolve) => { + const probe = net.createServer(); + probe.listen(start, '127.0.0.1', () => { + const port = probe.address().port; + probe.close(() => resolve(port)); + }); + probe.on('error', () => resolve(findOpenPort(start + 1))); + }); +} +function sendJson(response, statusCode, body) { + response.writeHead(statusCode, { 'Content-Type': 'application/json; charset=utf-8' }); + response.end(JSON.stringify(body)); +} + +function httpError(statusCode, message) { + const error = new Error(message); + error.statusCode = statusCode; + return error; +} +function decodeRequestPath(rawUrl = '/') { + let decoded = rawUrl.split('?')[0]; + try { + for (let pass = 0; pass < 3; pass += 1) { + const next = decodeURIComponent(decoded); + if (next === decoded) break; + decoded = next; + } + } catch { + return null; + } + + decoded = decoded.replaceAll('\\', '/'); + if (decoded.includes('\0') || decoded.split('/').includes('..')) return null; + return decoded.startsWith('/') ? decoded : `/${decoded}`; +} + +function containedPath(baseDir, relativePath) { + const candidate = path.resolve(baseDir, relativePath); + const relative = path.relative(baseDir, candidate); + if (relative.startsWith('..') || path.isAbsolute(relative)) return null; + return candidate; +} + +async function serveFile(response, baseDir, relativePath, allowedExtensions = MIME.keys()) { + const filePath = containedPath(baseDir, relativePath); + const extension = path.extname(relativePath).toLowerCase(); + if (!filePath || ![...allowedExtensions].includes(extension) || !MIME.has(extension)) { + sendJson(response, 404, { error: 'Not found' }); + return; + } + + try { + const info = await stat(filePath); + if (!info.isFile()) throw new Error('Not a file'); + const body = await readFile(filePath); + response.writeHead(200, { + 'Content-Type': MIME.get(extension), + 'Content-Length': body.length, + }); + response.end(body); + } catch { + sendJson(response, 404, { error: 'Not found' }); + } +} + +async function readJsonBody(request) { + const chunks = []; + let size = 0; + for await (const chunk of request) { + size += chunk.length; + if (size > MAX_BODY_BYTES) throw httpError(413, 'Request body exceeds 1 MB'); + chunks.push(chunk); + } + + let value; + try { + value = JSON.parse(Buffer.concat(chunks).toString('utf8')); + } catch { + throw httpError(400, 'Body must be valid JSON'); + } + if (!value || typeof value !== 'object' || Array.isArray(value)) throw httpError(400, 'Body must be a JSON object'); + return value; +} + +let options; +try { + options = parseArgs(process.argv.slice(2)); +} catch (error) { + console.error(error.message); + process.exit(1); +} + +if (options.help) { + printHelp(); + process.exit(0); +} + +/* A project interviewed by an older release keeps its answers, assets, and + uploaded faces under the pre-store layout. Bring them across before serving. */ +await migrate(process.cwd()); + +const port = await findOpenPort(options.port); +let completed = false; +let timeout; +let docWatch; +/* In document mode the run already happened: this process serves the document + built from it, and the edit session is what it waits on. */ +let docSession = null; + +const server = http.createServer((request, response) => { + void handleRequest(request, response).catch((error) => { + if (!response.headersSent) sendJson(response, error.statusCode || 500, { error: error.message }); + else response.destroy(); + }); +}); + +async function handleRequest(request, response) { + const requestPath = decodeRequestPath(request.url); + if (!requestPath) { + sendJson(response, 400, { error: 'Invalid path' }); + return; + } + + if (request.method === 'POST' && requestPath === '/submit') { + /* Document mode is showing a run that already finished; there is nothing + left to submit, and writing one would overwrite the answers it renders. */ + if (options.doc) { + sendJson(response, 409, { error: 'The document is open; there is nothing to submit' }); + return; + } + if (completed) { + sendJson(response, 409, { error: 'Submission already received' }); + return; + } + const answers = await readJsonBody(request); + await writeJsonAtomic(answersPath, answers); + await copyChosenCue(answers); + /* The run is on the record now, so the half-finished copy of it goes. */ + await clearDraft(); + completed = true; + clearTimeout(timeout); + + /* The document the review tab is about to reveal stays editable through a + detached sibling: it owns the edit endpoints on its own port, so this + process can still exit as the agent's completion signal. The tab learns + where to reach it from this response; the agent learns from + runtime/session.json, which the sibling writes at boot. */ + const doc = await spawnDocSession(); + response.once('finish', () => { + console.log(`ANSWERS ${answersPath}`); + server.close(() => process.exit(0)); + server.closeAllConnections?.(); + }); + sendJson(response, 200, { ok: true, doc }); + return; + } + + /* The questionnaire posts its whole form after every screen change, so a run + the visitor walks away from resumes where they left it instead of starting + over. The submission supersedes the draft and removes it. */ + if (request.method === 'POST' && requestPath === '/autosave') { + if (completed) { + sendJson(response, 409, { error: 'Submission already received' }); + return; + } + await writeDraft(await readJsonBody(request)); + sendJson(response, 200, { ok: true }); + return; + } + + // Uploaded faces are stored, not parsed: the questionnaire defers validation + // to the end, so the server only needs to put the bytes where the agent can + // reach them and hand back the path the answers will carry. + if (request.method === 'POST' && requestPath === '/font-upload') { + const name = path.basename(request.headers['x-font-filename'] || ''); + if (!name || !FONT_EXTENSIONS.has(path.extname(name).toLowerCase())) { + sendJson(response, 400, { error: 'Expected a .woff2, .woff, .ttf, or .otf filename' }); + return; + } + const chunks = []; + let size = 0; + for await (const chunk of request) { + size += chunk.length; + if (size > MAX_BODY_BYTES) throw httpError(413, 'Font exceeds 1 MB'); + chunks.push(chunk); + } + await mkdir(fontsDir, { recursive: true }); + await writeFile(path.join(fontsDir, name), Buffer.concat(chunks)); + sendJson(response, 200, { path: fontRelativePath(name) }); + return; + } + + if (request.method !== 'GET') { + sendJson(response, 405, { error: 'Method not allowed' }); + return; + } + /* One fetch tells the client how to start: which surface it is serving, and + the answers to restore, if any. Never cached, because the draft moves + while the questionnaire is open and a stale copy would restore a run the + visitor has already moved past. */ + if (requestPath === '/boot.json') { + const { prior, priorSource } = await resolvePrior(); + response.setHeader('Cache-Control', 'no-store'); + sendJson(response, 200, { + mode: options.doc ? 'doc' : 'questionnaire', + prior, + priorSource, + /* Present only where the document is live for edits. Absent leaves it + rendering read-only, which is the honest state when no session took. */ + doc: docSession ? { base: `http://127.0.0.1:${docSession.port}`, token: docSession.token } : null, + }); + return; + } + if (requestPath === '/cues.json') { + await serveFile(response, options.cuesDir, 'cues.json', ['.json']); + return; + } + /* The chat half of the interview, and the chosen cue, both live in the store + rather than the generation workspace. The document reads them after this + process exits, so they carry the same cache rule the cue images do. */ + if (requestPath === '/context.json') { + response.setHeader('Cache-Control', 'max-age=86400'); + await serveFile(response, store.storeDir, 'context.json', ['.json']); + return; + } + if (requestPath === '/cue.png') { + response.setHeader('Cache-Control', 'max-age=86400'); + await serveFile(response, store.storeDir, 'cue.png', ['.png']); + return; + } + if (requestPath === '/fonts.json') { + await serveFile(response, options.cuesDir, 'fonts.json', ['.json']); + return; + } + if (requestPath === '/palettes.json') { + sendJson(response, 200, { + seeds: SEEDS.map(({ id, oklch, mood }) => ({ id, oklch, mood })), + }); + return; + } + if (requestPath.startsWith('/cues/')) { + const cueName = requestPath.slice('/cues/'.length); + if (!cueName || cueName.includes('/')) { + sendJson(response, 404, { error: 'Not found' }); + return; + } + // Cue images are re-requested by the design context document after this + // process has exited (article content only enters the live DOM after + // submit), so they must be servable from the browser's cache. + response.setHeader('Cache-Control', 'max-age=86400'); + await serveFile(response, options.cuesDir, cueName, ['.png']); + return; + } + /* Brand-asset files the agent staged from the chat interview (logos, mood + boards, reference images), displayed by the design context document. + Read-only, one directory, filenames only. The /assets/ prefix is taken + by the picker's own static files, hence the distinct name. */ + if (requestPath.startsWith('/brand-assets/')) { + const assetName = requestPath.slice('/brand-assets/'.length); + if (!assetName || assetName.includes('/')) { + sendJson(response, 404, { error: 'Not found' }); + return; + } + response.setHeader('Cache-Control', 'max-age=86400'); + await serveFile(response, brandAssetsDir, assetName, BRAND_ASSET_EXTENSIONS); + return; + } + + // Uploaded faces are read back so the specimen can render in them. + if (requestPath.startsWith('/fonts/')) { + const fontName = requestPath.slice('/fonts/'.length); + if (!fontName || fontName.includes('/')) { + sendJson(response, 404, { error: 'Not found' }); + return; + } + await serveFile(response, fontsDir, fontName, [...FONT_EXTENSIONS]); + return; + } + + const assetPath = requestPath === '/' ? 'index.html' : requestPath.slice(1); + await serveFile(response, pickerDir, assetPath); +} + +/* An unfinished run outranks a finished one: the draft is where the visitor + actually is, the submission is where they last were. --fresh declines both. */ +async function resolvePrior() { + if (options.fresh) return { prior: null, priorSource: null }; + const draft = await readDraft(); + if (draft) return { prior: draft, priorSource: 'draft' }; + const answers = await readAnswers(); + if (answers) return { prior: answers, priorSource: 'submitted' }; + return { prior: null, priorSource: null }; +} + +/* The document renders the chosen cue long after this process is gone, and a + later reopen has no generation workspace to reach into, so the one picked + hero joins the store. A seed or custom palette names no cue: nothing to copy. */ +async function copyChosenCue(answers) { + const slug = typeof answers['palette-source'] === 'string' ? answers['palette-source'] : ''; + if (!slug || slug !== path.basename(slug)) return; + try { + await mkdir(path.dirname(store.cuePng), { recursive: true }); + await copyFile(path.join(options.cuesDir, `${slug}.png`), store.cuePng); + } catch { + /* Not a cue palette, or the workspace is gone. */ + } +} + +async function spawnDocSession() { + /* The read-only path is otherwise unreachable from a test, and a document + that renders without an edit session is a real state worth exercising. */ + if (process.env.IMPECCABLE_DOC_SESSION_DISABLE === '1') return null; + try { + const docPort = await findOpenPort(port + 1); + const docToken = randomUUID(); + const child = spawn(process.execPath, [ + path.join(scriptDir, 'picker-doc-session.mjs'), + '--port', String(docPort), + '--timeout', String(options.timeoutMinutes), + ], { + cwd: process.cwd(), + detached: true, + stdio: 'ignore', + env: { ...process.env, IMPECCABLE_DOC_TOKEN: docToken }, + }); + child.unref(); + return { base: `http://127.0.0.1:${docPort}`, token: docToken }; + } catch { + /* The document still renders read-only; only the edit loop is lost. */ + return null; + } +} + +/* ============================================================ + Document mode: serving the design context document on its own. + ============================================================ */ + +const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)); + +/** Does the recorded session answer for itself? Also marks it adopted. */ +async function probeSession(record) { + if (!record?.port || !record?.token) return false; + try { + const response = await fetch( + `http://127.0.0.1:${record.port}/doc/state?token=${encodeURIComponent(record.token)}`, + { signal: AbortSignal.timeout(2000) }, + ); + return response.ok; + } catch { + return false; + } +} + +async function waitForSessionRecord(deadlineMs) { + const until = Date.now() + deadlineMs; + for (;;) { + const record = await readJsonSoft(store.sessionJson); + if (record?.port) return record; + if (Date.now() > until) return null; + await sleep(150); + } +} + +/** + * One live session per project. + * + * A session that answers is rejoined, so reopening a tab closed a minute ago + * lands back in the session the agent is already polling, and the probe itself + * is what keeps it from being reaped. A dead record is cleared, and a recorded + * process that will not answer is stopped and waited out before a replacement + * is forked: two sessions would write one discovery file, and the loser's + * shutdown would carry off the winner's record. + */ +async function adoptDocSession() { + const recorded = await readJsonSoft(store.sessionJson); + if (recorded && pidAlive(recorded.pid)) { + if (await probeSession(recorded)) return recorded; + try { process.kill(recorded.pid, 'SIGTERM'); } catch { /* already gone */ } + for (let waited = 0; waited < 5000 && pidAlive(recorded.pid); waited += 200) await sleep(200); + } + await rm(store.sessionJson, { force: true }).catch(() => {}); + + if (!await spawnDocSession()) return null; + /* A session forked before any tab exists has a short window to be adopted or + it dies young, and in document mode the tab arrives only once a person + opens the URL. This probe is the adoption. */ + const record = await waitForSessionRecord(5000); + if (!record) return null; + await probeSession(record); + return record; +} + +/* The session ending is this process's completion signal in document mode. + Liveness is the recorded process plus an answer from it, never the presence + of the discovery file on its own: a session that crashes leaves the file + behind, and a sibling shutting down can carry the file off while the real + session is still serving. */ +function watchDocSession(record) { + let misses = 0; + const tick = async () => { + if (completed) return; + if (!pidAlive(record.pid)) return finishDocMode(); + misses = (await probeSession(record)) ? 0 : misses + 1; + if (misses >= 2) return finishDocMode(); + docWatch = setTimeout(tick, 5000); + }; + docWatch = setTimeout(tick, 5000); +} + +function finishDocMode() { + if (completed) return; + completed = true; + clearTimeout(timeout); + clearTimeout(docWatch); + console.log('DOC_SESSION_ENDED'); + server.close(() => process.exit(0)); + server.closeAllConnections?.(); +} + +function stopWithoutSubmission(message) { + if (completed) return; + clearTimeout(timeout); + console.error(message); + server.close(() => process.exit(2)); + server.closeAllConnections?.(); +} + +/* Document mode needs a run to show and a session to keep it editable, both + settled before the URL is printed: an agent that reads PICKER_URL is told + the document is ready. */ +if (options.doc) { + if (!await readAnswers()) { + console.error('No design interview found. Run /impeccable document to create one.'); + process.exit(1); + } + docSession = await adoptDocSession(); +} + +server.listen(port, '127.0.0.1', () => { + console.log(`PICKER_URL http://127.0.0.1:${port}`); + timeout = setTimeout( + () => stopWithoutSubmission(options.doc + ? 'Design context document closed without an edit session.' + : 'Picker timed out without a submission.'), + options.timeoutMinutes * 60_000, + ); + /* With no session there is nothing to outlive, so the ceiling is the only + limit and the document stays up read-only until it runs out. */ + if (options.doc && docSession) watchDocSession(docSession); +}); + +server.on('error', (error) => { + console.error(`Picker server error: ${error.message}`); + process.exit(1); +}); +process.once('SIGINT', () => stopWithoutSubmission('Picker closed without a submission.')); +process.once('SIGTERM', () => stopWithoutSubmission('Picker closed without a submission.')); diff --git a/.agent/skills/impeccable/scripts/picker/assets/audience/audience-groups-foil.png b/.agent/skills/impeccable/scripts/picker/assets/audience/audience-groups-foil.png new file mode 100644 index 0000000000000000000000000000000000000000..73bf8980781e77bcf3ed578d67296488d7c237d2 GIT binary patch literal 7576 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 literal 0 HcmV?d00001 diff --git a/.agent/skills/impeccable/scripts/picker/assets/audience/emotional-journey-foil.png b/.agent/skills/impeccable/scripts/picker/assets/audience/emotional-journey-foil.png new file mode 100644 index 0000000000000000000000000000000000000000..755321735bd936249f29b71687170afd5396152b GIT binary patch literal 6153 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%0Dh;*# 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 literal 0 HcmV?d00001 diff --git a/.agent/skills/impeccable/scripts/picker/assets/audience/needs-foil.png b/.agent/skills/impeccable/scripts/picker/assets/audience/needs-foil.png new file mode 100644 index 0000000000000000000000000000000000000000..16943bfaf6e6d2fc691792cb169fa05da34152f2 GIT binary patch literal 10388 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 U8r=E#pQs3slTwzf7dH+2e-OIW-2eap literal 0 HcmV?d00001 diff --git a/.agent/skills/impeccable/scripts/picker/assets/audience/trust-triggers-foil.png b/.agent/skills/impeccable/scripts/picker/assets/audience/trust-triggers-foil.png new file mode 100644 index 0000000000000000000000000000000000000000..857c17b8fe9f82707a2205add7959dcf2bb6a8f0 GIT binary patch literal 8016 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 literal 0 HcmV?d00001 diff --git a/.agent/skills/impeccable/scripts/picker/assets/brand/brand-commitments-foil.png b/.agent/skills/impeccable/scripts/picker/assets/brand/brand-commitments-foil.png new file mode 100644 index 0000000000000000000000000000000000000000..a9a5a8984c98df63e5a7b8fd4043210952561864 GIT binary patch literal 9303 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�I72@G#Cpv>}7JH-zUp@tY!I{o2ilH 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 literal 0 HcmV?d00001 diff --git a/.agent/skills/impeccable/scripts/picker/assets/brand/brand-principles-foil.png b/.agent/skills/impeccable/scripts/picker/assets/brand/brand-principles-foil.png new file mode 100644 index 0000000000000000000000000000000000000000..89a64393b235a86f77d7165a6464476de44342f9 GIT binary patch literal 4124 zcma);X*3jI+s9`@vJ)j+C@F*xChJ(Tk0m2(DEpQ|7?MfW2$6ly&e$`^GIrV5VHo>b zw!xHb7O&^i`+R)Px$f(_&bfd85BG=roL`ioz9s`LCoKQ~V9?f5e+B>mFIOPo8pY*s zLzqDU01AMi9`vc6%UfO+8hQ#KE#;MyZREm(YYY^Z=#|+{r}c!=NVnMi(evNKr!mXmZm-5t!|6>{%%Dh!>i z@hed+$N6r#w;+BEH4-O1k*YWpBR-XDRAR^Ur_FsJ?#a$i>%qwT{ZXP@KTO9G9^=}b zCK4sr5!&biGi5~cL(v-nE6@pzJ4mK8H9M6?N2x;>gh*dIFE>H1>E zk!{bl+vZsPQL!;dv^z$j%#~xU-louvACs&3>+_>cblGT%%0bWTH*oV}U&*aHbNoUj zI#XpSTV}n=cr;0Vbs)MoLJV7=+wHja+GPi8Y`%`{-0zn>vtT*q>!;Aj-m>9;2r5!1l%CTvx$2ax^&(JV8(Cc9)xX zhoX+AQ}XQC{$g`>x?xL2km+>rW~cwz{tzZhRVvccEIZ_GEDT#=HvCOBC`fm>z`;l7 zRzoN#+x0mNzbiniP2>hto{IJXUVy}F<%-*6pb-wO3++O5;iceU1wCdU& z`O7b{>GMqA7(l_wOaY_@0x9T7bPOaCiTIzI;31L-WFnD3BwQyEFQ>j1L4}}6B3#~$ zt-6s3L=qc;NG6d9=cG%BNMxV?6HXwV6UZZ^crxjdBZV!SEUXa;ZsG2+gKPeaL;}fo zZFL@e8Co53H6jO8Q@i`WClk)xFVn>3TX3TIG}iEtbbLxC5JpE=b>_(%=W}8UWYW~?1y>2moKJyqh;<50MN1i=KulenYS*NF>Q4fsQ=vFLZA<;$!+Qb zoSq;=5R%b0;pFUMLHXHZ@_EfSCm0lld&X?_;xO~y17T{)o*Pic{cJSFwlKoq%xdOS zd83F0n>yy^4Hg~PkH1gpFzhf)k#Us>gk~=8IA?xP8^+=H=UgfQqA(q$EU#6Nhj~@YiNIUByB1sqSDQ*}D z61cDQ!ya=LY`b;sa6*Y5D+6w-tpry<{GBmKpzW5&;F`WpgeORDu6sGILA9eUyr_F^xNXj{_+UM`uYD2rIreB807h&KPp2p|ts5ZwYKN z$1^c9G6r~_THC(b7s@>T4B|*&M2MZeTKMqmEk&a0q1R~47%{t#s2}R@9wj@pM@YE1 zCss!9z))hv_kc1kHNoV*pxMNzC-(%M9}0XIbVi{y;`NHNL&_z)vp8<)zymC{ZOmbW zK9womTvplar)CF29s)Ne3U%JCra8n~+>(~dqRPZ?;kwPgbXIoesBfy=P$lO~80 zHO}0jH@8HhV<9N9tfl7T%r!Y~#)z&hgBb;Dkc&W_9&}Gzba0opQ3l?(9sB~+(lztp z#etxr;t4rEt{d_E`9{V3Pk=imuT^};EWpNls$e+Vz%xf&@P@VjhgWtRQE)mqd$XNd zFIZ-IEu?kOFHh;|(8l4dB&ie{4?K!*6rbsH%^+fu6_$wWS`Al}US5KM)d9Xmu1qv< z@6gJHH(p&{S}I#P`iD>Zth1vODMz^&bNk(nWes_BK)6(qNF{3zv<0S(v996kRgMSg z9pjAjgo*vfCpzU_#6|K)_OqpmF^}V&-9eN_wc{M(THR;_T)H6dZcsr93%_~1McS6< zoo+rye5yxhykkh;i9YYnPKYVTM1WlxiiVvPu31o595lV@cjp_l&7-e{pP^mUC638I z2m!=ufHrsy^lqS^w6>v=Sy-BM$C(`2(;_4RvA?K>m6U;bI+Cx$+MYrI)@>+jM|?9& zsPwMZu>a(R3_xM@aDGGC4UX?S>1zbVu7P5=n%oWt(0Y(F@XQ0-VFTp>Z-qEq@bRRd zETY3hv~2vT8N8mm?{En;-A^PI$LQxlEkydy&~u6_wk;IlO)+?IOzOVMjZ9q1-*xa1nMtN`3Dt z`#-#l74LbZbj*NP%x+$3uYCW7ixTt_?PhutbPa%KY7I7B{mRofcXO3hAfKauxPMqn zL+a*pC+=B`79c>f4F6I5D^Pt^*FKk%qhzGf`#6=XJ&Kz5dHMKFhXR%64237g#J6PK z@rG?2M?BL5O8WNOcCj3Wm`;zCYJTpHVoj`^)RqE($O>SNEel~^rFuR*BBPFFzjc&m*Gd3g@!S?@rOBq(7sh_8Wngqp5<2d|bS}d1u64 z>^{36OE>vvU+emGrDDUhXy)}6>#Aj6_N1FhKO3a;5K`8jHRbR2kVwNp&itl2Y{HUL z%wAnag=3JlYp0J%L&tT_w1h?l*Pp^8P|QsJ4Abwx=D)od-E_>z5HwL3y5!(4EAS6z z@k&Nta&CBfD3k+Z0-C7Cq|0K#3Z0i% z6{?`qFQIv^d6*;R_wXb$r9Nm%Dew(!mc_VAX_z@^y^w}v886nPyl6@7lgtxIe>=|p z@v%+Ew^u%Gtg9NCTWme7$|{_RW7e{J6+J-zX#GJWp0K)D%8$-Q8jE$DO+`R1%R zJlt!eIDdi{sfwLMk8i$f5%^;88E85?J8PR1luuHiR}CxvQH$VY2*!hASpNM(#x^w% zj|c6nt=;|^Yu)|{`GmSFa8x_Sj$TGxR?=g$XB&Ekp|7v^@aZxa-0BwffFn3Uky~->tFUEm)DwTt)bM{PNiJB!wAEMAQ<Fb$iKabs>0cPFaD2g}SnFR_spMefpMyUB7aEXQ+GR9_9y4uWT4e%)Wkz@` zS-9A)mzBCr{5V$UvGyiHr=$!-vzn{+8mk}Hx(@|5JZ~k3exIQ_`)<$|+8~s;E5QTl zAibkgTjVJW+}x#;*e{U+ASJeA6}V9qQf1PcYyx-r&HtKou6x-hhyQ(3YrT=#>pGGq zBvFvbxs)&BdFdg}ZfgEZX;k2#aEEbo$X;mQdTfujyd$@v$5g{}2UJF1=56C)ugbo? zn~C4`J}0p&2d|qr;6%_H?$XRpbkkA%E`&q}U8R8FLeot)9zYs?S<~#w?#COEAts*l zp%4tTh6xssFNiJE{Jt0o=_$;R0sflglGcD6D?z^B)_}Y!z4Nm72^ubq(*;rBJCr^uS1 zITl2qkUSe0$2xTLlY<5BUi4gohgMkKmFZeI1gtsuPqy^P>rt}m&d_!Ep|!aI4qaXjzF@LpO9`G9e{wqC7dw{JY)&=C zLk*jIX5I(RmHDW$02J5A66|T;&5nvZ=W;I5;S)nJcrZgHL4S zZxzNgwx{xuRvu35v@G&V6rW-Tkiyb6(mC!C^M^~(-qv;<-0>qYUWUV$|AL=+BT@kl z$AM(T-+2AR44XjC!EU{z7Z^@4d08X%4rjgOREo{*>NoL_dfW};DK@)|B(tsHrjo|h z7$xI&D=ziEf*+waQ9|i}q?Lk5{uRv$rI-h=J8j|f5|a5Ulb#bdqaOrp9otpPa&H{? zrN?_mv%eOf2YSJ*#@Z}Oov%wZDzEulZcWUJr7ej*+VSdN|0rp|JV5tTsTcw^%KCNt z7k?KRKExEy*XlDX+xpgJ_39n}Z1yBLC<~mcm%a+=Y%442cJUR-110b2t!Lfu_YK8Lug&0Wcv-&UL{og#9e`ZDbyhQm1 UPDHx9yK()oteqhYSBrL+bCyqMd3-oXn{`s)Nt1&v?X`Nf(^23~yWUcn^zFKDiW%8r z0dJly?RJBFl?&x~I)AP?!AR7%%cY>#s|qP+v#Bh>xkBmVVQcV^Zh`^vNsn@y2l0BT zz+4W`RIbEovqftleUv7CcN|}X51kAN+`unkCS&!LI>W;@`MH#D56hq*dh(5SxFd;7 z)xNAtmC6%|>~qD+dyQfuNuh^BZXIz_vg*Rsc7)Bol%*E958&n=KhiV;8=%IxE~k;BBVAe3+LiIty;$-(UIs5o8*so0(C{XF&cVZ_i;f4mr2 zrh`byM|-)FRBeSHtAuhq9hat!nyii0m##LI$e>3L*BwN4G3WYCNjy^($A;EPB@A!F4qax2 zyU`ouVJ?vQ6L~Ta|9n13$IE;!UxJ4UG0TCe!Wy^B5xX~%MK3qLGDy@^>U*BQ)ZJ$4 z^;X_WndISo{P~P;iZ<3iBt!~%y;`Bz0`FnYaH`g;K1?u810z`z>t-n=TMwf*;v2|P zPPjDVdM7^($a>hJq$EP$kq1h3<_$MwF|t*=p7+j=G3W}W->H^cE)glUCOR5+0uP(D zxRV4*A|@!KaZrA~KP(52SnYM&4pQoK+N50Vog% zGzz5x82nV|v)_>gpgytRc`t~ZM@-HvLJooMO=X=4MoW$}1 zWdC3At?MC#&$w`@y1xbTwl&)k;uj2ofFQH~C2k%<`pk+C783uC$G^n2`y4|Sw%#v; zPI_M;kgJQ`=eLUD(>A}^Zl6;2f9(OuUP{Xe06_Wj-+}^UWZ?k-qyT9#VKw))b02dd z)yJ0)r$i@5Rw-yCKA{yaicDPoontp0%I70t?|?7|65(t zAUK(R@N@Q)=N_F1vjC!RvEoQ-iM#*F&u;uONhDr*27Ahe+B{38w=Nt zp_LxuX!K4!h4-4-2p&hz{Myy3%I; z^^?s8@xqL}`gs?>YV=TvWG=J+(c_Cfp^Ove%waArzXWHG^yGtajbiOa+qn7l26jFFvkvxK}9@swvmjFHKM+-<}?$u<4+IzI0) z@r{wN>p_s(1&Dc3B=d|dJNMi~VC~J`loi00XOJAbwHKc@EJ}zb#LZDxOK-m)Fn?Jp zDDuhgMQGHYwZ;CoIU|Dum%VH_y;et8B{K9+(wyzHU$&$xio&#$Eco%Nse{k@TO8@r zEo3TaKe62jcsQ=lHp=yf!v%fB!wc=XANn(0r}=S-p!U_R!4Wx6pK)K~qG^s5*|){y z{oWJtLfDu}1MdT6T0tY=Yjz{3aX?cgC&T85AAqSXLz{<& z8W#UmhoOXfJ5H~!D=&gQ0DyfkuT?n@v^r+qVgw>drp))`AvoOVjJDCig^xBA@{etT z_-Jvt(4T|=7hQW5{R-GvUR%#Luh$`~Kx08TXh32B(;b&wSY30gH79Z8_*(X_6X}rM z9`7{?r7THRccRrAr3NbQ0?I&Y~MxKE`q<~qd?z_JiLLWHA zve+GAG}fUHLj??0yLdIz$I8Jla(LHyS6|4y=DQGiPRPJ;xcPGOSAk$G;-ZOZ!9e?+ zYZODnIE7sr-Iktv?`(Yv@^nuRN~)a9d4ZxHqdL*0S*oknP0~#A+5n=jwojf#XkXbG z*m$ajF`|&))F5pm-{0?z6=CQ2SD}TJSMEbScJ9!*-fTX0&qrBF7}-gx7zp?wvCz64 z$J^=5rfmK{j!toN0vsjM>ktxzy4C}RIcrM!KHF?-jNJZ-)P)-5GRIJdjvnEA--+FK zI%ZHov>~-K?M;2zm+|^bhp|BN`Nost`}z^qD)U>*CyK4OIY!?LFq&a4_{gs786exs zoi!=_X4wKro7dL&R1+qp6aO!{38aDm zJ;BVw78I$GQ-cui(|qFM2_9>Nq7_*H*;KWBN%5kFD^oB?q(M7CQ~KPdxd7D?g&O$1 z%W0jyRnrt^uBxUhGEtEfhP(86c)0U@6zKFsTL!tm8vD)%FJmXQ;mvn`yZ>mD{p@Pv z#ciL5xYZ2GZZ))+1DhBFbmFpJHQ@7Qd|HG%&>Tm+OS>E$A~m)ApU9&txwm;S!+uLfx#upYr4&S_*aG!ipb2)mt? z&a(Murw%uA~c;5clFqFEEFSPDn;R(!pE%6d%|KTKP{c-cG_y{#73ZK$JH zBO4arTOFxxPd7*4^>jMAKMq%0KOXyh>N>D$~WO){nxa!d|b65#|(Gv*_y37C5KcbD9kGC>o(CI6BG#;Y>S|He$ z;vX2JIp6uD&E}uhzU21}y*hF>v&(8oc^#%AZ_*^u_44$E)km?2UV9_Dz~$L%ydR>478K>|7<76pE)vIKb+WYySFCq)Gfo(C3`S; z-2Y@S&@D<>(exLrSv8lQWMU^Ibr?u?$O<`Os;5Ug3UYA(e-pQpeR+XkNCu4bFpH4? zY;>Ow3!nG-Jiq--<>U$E#g7>%+Tvx1vktO)N8!9hBx0?(b~U$%s)k#Cu!p)v{E0uG z|CG}6KpuJ#yR=oSfQ&WjR^}lzKi_OwpL@z|j(goO@e5HhtRm3&(VI?55xhq`V!BcU ze*O36*jh`vhTu;c$hf+s&Eb`9OrJYdW%3dylR_=7uo{co3B?s5?Vgu|v z8v3>>xwhk=DXt)}0%I`D8MF+>9p^IM!|-L{j(7Q-($zJJFph()fFP)TtXQpFjtZvv zm5X`6SW8wb{}-C6{1Tyu-QMzY*`w4SsIM@4Nmv|)Ssgn@ZvYeba=$@FSMn%zd z0r-PO*ha{+rTtqrr`7LS0blrAGl|9#`QE?F9|~csGdi_KK?7Mx#FhT3XBOSD1J#d& z6kT032)uF+IowwGCQhaGn6J%H8xJh zdPeT%tB>+L^cB@^BDPp6$5Qpk=<(2u2Q{tKJi(;uwLX80@6_QKqO_P2I$p@my_Da= zpgnx_d8=Cuj$(LCT}IqwX#7^7|1e+Sjf zsY(nIS-PjB>--r&NR|7_IJ;|!-B;EuqNI+WPX7ZmM$B)eWl$}jk)KLu@0SdoH@?yA zM(b&JoxOK3l|s#X?+^0yty6=!aMxRGG`X~Uvx9e(!+NfH^5Zthz1G`in~waNq_;EF zn_a}DGp)nJOKILg%GJCD`&&ZiXQP}<35?s)=X*?ys>(@0Gm6L`{e(i2jtVCC+M5>`X@GS`I6X%d6X~`1ySEou)IndIH7p1wSSYO ziZh=Zr`*H;WbfTm*CE*7-Qk#At!-ISV))U+h#-cCUt5$mh8T!Wu)Ly5eC|Mp(?C0z zd_emhh%d(}WuMKTtG9YQ;M~DHI=_P{x@$>Rt&*mGkJH%m(9J4>)|1qO2Qa|9z@?PK z5|TCZmsj^Oc)+DgDN&E>nOnB2{5vx0;(NBlz4&N?!%u)rGV>vHvMe9aR@Pp*evsc$ zYtNV##)giWdWoD;6V$R(CHra0tgj&H8~91zim$sc>dFRD1(8=$yxAZ(bbbhW>cb`j zkITd(#P9RsyY7W>RN+zsLn&ytMSD;_LD!EgGL!jns*QULUjXWf*2p&T4v+<(CQ!o6 z+tqdZc)#X<`53*0f!rW6iaG9uI9+d@(!!aLB@em&l_5(QtJk|25i?X0)AS7eXPEz4!=Y9>gwcV50x)zP<_PDTiV_GhRNNeLG9~uUUC=_#BMFB7VvOG zWtjZXhbt?hu_y=w5(nXCNuW>O~3t9d!1`IkdV1rgTYk_GA)N_+b0MW$*y=`BkZ zEFmFfW+GMm44%Y{Bh0c=rdlpWL-!dJZtP7YhWIsM1fea-%bG&jhx7WmtnXC@$+u>? z7t-mM#g(;KsPS1`R$SYz+$ZZ}>2@DTcF60$(f^WF<(K6+g0Pe16ZA~jhPiD=Ye+Pp zMt@4|h-cn1YrY{|;w})$wSQeIF$l@QR%DdP&E20>Gf%Tfho;o+=HD!kiqJvrU`17vN_4tTTk}T&l-2-4cZ+DJWEZ27Chz3w`&N9`^mVlv2Mx zcn`ykz#n7oFX@ymgK@1PY+Y&{H0aZ4sPX_;_mGaIy7%hT0>M=ngRL*nKJ}NnnUG;7 zf@R{9ujk~AS!ZWT4b-Kx5b@TG+%0I$_-xOp#iE^$Y}#RWMu+uF2t4ReJVHe+~EdYCqXs?~>d zxYRO}GoQ#!+bF07Bss-G_tm>&df_54)nhG|mJHJeam;bu-JSBY! zuIv%GRt)rct953iq;6G3&rVuyN#_D**+)9Qo8n|i*t_DUa=`+@AiR*d)dxB{f8!zX zTj*clCdx#!yLi0o&ePH$lz}VF;&mkoF5ZQYPq=2O_~vjgzITN;QrkSC>eT~1SClJS zKz&aqw{k`2Qp~EDL=Qq#;2Jsnh}CfXgO)kKPFU%stK(E41jZTlXVOxBt~ytjwN1@s z)dLC;ChExGUPMucaroe?ka`Ar(d%68=EIzE;0!qzVv8a@=%+Hwi;)Rn#lx5V(nMT| zYLUCh2`g)wp!F?L6NZqBhJRu4vRZx|EsQ_4V5&1+U=_no;PUGsXycx6lbN&BChwP2QxrO3q8b z)pOiA<+&WQWzx#SNSh7_0NF7uDj)MMpZ9v=E$HWyA^V4HFKm19eaVs`l{pIJ7eZT- zJt#SrOv%K0Tlx(vyF?V?ItsDgi{z7xd z9lI8bUro|v`G9~DaxxQpw#+&Kmx@1K4--e{XDTBxGsrFOM)35RhLKkSZb}@x1+j`cM!1~9-LBo4Aaa7 zIHS3=S_Eti_I5di;V(k9v33c$g}NweG~knOT4{E!O^xOw&ofCWX)_!?aq*GY%S>TN zU#mb5SRK&D7HG|Q9i!AIF8CWJAV4iUW2TWFMs5`Aqy_E3i>yoT-W zFw2Anmr*h0km!(TxWXo;f^Z+562IFo!n(w_doE_5{;N z=p8}j zMG*wSURjifR~NPeN6N;}zI_-ob5y7GtXDBwEIdmPYhI(0gtB4IS9U$^kC2GDtxrn( z5`0%&XEx-352$0@Pqxts#*`h^T zff8@9cHGlB3uQtFa5Q034ymTO1gd8bv#1u3?9k=wr%yC}f?~c1N-fg$ho!$hU8y5O zI8XXL_32dMYt=*e2>-HU4-$%$*Sk7jUeZzlu$Nm{qEWBwcD{(M*awT;pAF`m zdlwUNJ3nb4@Ir_UR?oU{z0Fzddnq#W9q+5g2<-7UR<-sBTc;jDfu~ z8YxBA5yV}T!4_cx<)97W1=(7Iaog>_>#!yEE2AYnG+V~-^>~MDfO<-k<*;p~SnK(_ zJ#w#!GcI@kVI-%1KlbrXNI4W7bB@RB3!y57cR|`zM?njF9W6L(_bdfZ1;?YY$lH$6 zuj6pGm~Naz-ae}8D)(0U_3Xsur_Cqc){sxm7GA-u-sc_M+cT8EIE=8J*bCs@aqHM7 zo2E{z>VZ&M0zFT92F*i(v$Wl!w=*bSA=URU{l0!dht<%;9FJP(U%Ff_J4&`xr|rcG zot6O-==;Aiw3jz#m4rmUe`yx%JSZe4wGZFY81~dxzBbMPjsy`7$m7MH97U6UhxfG<+I)NdH=#Y*53SMca-p zB2ETbi?E16bs`??q)k**&|w3;eVm->`Juc+1kMS{J$sPKW!0)cFO!KFh6C?y4=qBL z$Xwhbt(XW8+7BrYuFJ?xPp>{&U8jdq5Iw|w`%st6jWXGCmp(LX6{07sW1yt+T?vCL zcu`}~rvk^el$~5N7t~w|g(YWh2{%RNs^UGz_|8KRwe>lmw!RR1RA5M0%VN9RmXRQA zeAq}n6vuT1=iyoC>bC~s`CTE-ANt;AI0#^4_NS}4QksCxA$3+G-gX9`T=g{aapUZz z4?9D0iixsaeVBhoiqV%BxdrIrr;{VT7rNi(cS?O_W= zJo8uuPvPBfC-pkc(o`4JZ3_w*PSF|p^gM&IE~6t+$57z;#{GA!hLPC5 zfE1i!-zkq-+{0uuk@4pS-)c_BlZG~nY3+FRZ!t^AQ1)R6FWX}Upmd=QFrqAIT!abR|f?I4pmAy1Jd!M9wyc;D>Lri$k9Ji zFyrNV!VwV~I%;_^LKoqm6v1RHsCl5qu$FY)$1_SGazD zVPwl>+@d)k1wLpJg| z2djE4uqLrP9DEEvj=wNXd+2gS~vOj2IJ zrl4oPb1aM6Szyp#rfm#QAyGYC=3D~oEQC}pE2dQG9!sg0st3^s(jp&1Lc--SG4PM% zF1@EZMs~?gY425?Q_9#J6W?KR^JAwQo~RGZ0Oo|503^YB*#4+){l^6&=v1mE%b*Jh zE_Ntdf`dV`t4kuMK8KuZ(*2Qb1yvb|bKI#IR{1(Q|0_d$yUj>zYv%$I5(&Nv*a(`Y^|Z3N%Kb*MRxReyq$QP-t}1`wD}97D5`|w z(MKSW$>7`Nn99)R=5JOf!h@|Am%W)EMTqDgR4GR`G&(&oyDYE281*;GB$2gMfJo-r zS!Bo}?+<6&?HJ8x8)KZnt-HdCh?Y1o{#!8m$8f?hs=HDd0p%`O(^NGV;I(^^rfD)&ns8LzTT^~ZTL{?H%oDWVSQu^#)>*qBWrwg0 z7zCz$<(STK8*$8)#SVFleMVfypn!4iefUtGL5GEXdK;c&?4(=|{dj<`oG3-S#JT3+ zfCW^$w72}=S(0<=CZb?{RLnV{?;)P7H^|c5s~u;BVkURW2pd-S8jl`Ld$<><0m*b3 zF{3*rVe2kCt|Hii&vWhLE*%{2(&_9^df-fdI@32%QeF;Q6g$m=HX4N99NA?WmSIGD z5{V< z4gyj|qw>f)vhIC(&K89qY%Lc z(Ngl`)_`s)S0MvCH}Bw;s>yGH#Wg9Q^?(Tw;_B-F<4dCjiY-&{HgSQQW4g1nG> zKX53_O<{xuzi3{h56$lV{v5Wo-|QTsJ)O4t;`3r4iT(K%NLY`X8y*&ca^%pUPc$&c zANmT*Lp@+80EzvoL7#L{Xs??<6A%*e*nO}*?2Q|R<{V{z7lgsipn?7iEbcduD_=n znN8`gZdIW{&>2O$z2tv>jCkR`6=gB}D{nO#z=#nscWHPWFD6Z0@Kei>lf-@jcKP9M z!B={Jo)&R^5mD9dOw{R`u&2AD8ChcgF){2qV8FG8xhsAJOF8wUFLLeCmU=CQMtYoI z2>%%;8`>0DRI{91+Ig!bz^})jd3Iwm#xYSEWFmQqy!S-TWu#)f;nf@I&g4V2&=}uKtSo;T3_N(cWpa0G5EX)n z3FQyI>)$L5d%DXoF`NynPfc2!)4tUWl5zUiWNxoD1wLEOEfYisRrnMG@OgNBw8~xi z&I02o+y#cE3GNF9KR>-uomb^0cl%0{kxQwGrXxi}$GI~_AVGIFLof4t$ZKj1PnzlA z`^*G81$TX?ykl-+^8BSY=^1AGhF7;=@{;zVj7zgY#%HYu$H8_+srkjg3!N&b7ij&O z)8(~&yc~7$OQIuuT>=ODP_@bTZ79ZhUvez@3GcQw6EzvCmkQ})Fu3B`h01!KyPc-$ znpJWn0*~*+H0!(4mm2eJYD_C*g?-uBnv%IVl3P7IU1dh&nD%Va=h$N^*&h@v4|=i# zE{eK6!bFm(4dv)j%%Q(v_$J&nuo6N0+z|P->xNJ9Tv(OlCMp3JW?XsZ8-|&G$ z4JaSVQ{=gW(|@Sng2DUEY?BsUsJ~MzPio|EQ zXuvJoAzybRY}&1Q|Lox+%kw-tV!JnNKdg%Au)syGILI+2TlP(J{@xZpfKI}vZ?gT+ zA#nJdvoJit9RhKR%U=xI#!6ys3e-#wTRy~GlpV!*@b;#736|PY&-qkGc`{2Y zpAmay?3)_RtTzi<Szcr-)RLir%=!Gf;41s2p- ztvabm%>MZM@q_59veM8SLrSLtiuV!Y5V-$k8yb^g=tsT*gQI7MuPa)4Xeb}6%Sq=lQs1pwyzg#6h8x_J_!$} zL* zkAFjG?obs;Xf3d6OfXdAa29<{n)AeZTtue9=p^FdK8Xc{2P%U8EQ54^D3xilTh5V8 z7Q9GuHLek#jzLs~OMjRi2neCKZ z!$ltC`berEBmn`KG8x$EB=nBiLHNmv99D78(n>Me)Vm{igJJ@EKqHFSj~Ai> zyS?tT2%TM{>YGml5c*_gi)MoFa{cD({5Q~};U)lJ<$9zqjWrg0^Oa|GIk&R&!{Cla z>WRJ4Awu*qu@98RAWJW5Sru>Jn>Qw(-fYS6jLoS}Pon`p=-1^qn)UpP@m5!kGO#SB;^<&}Uz8BeXf*M|exjs1&9o=1{6W z?g2whOTK5WtU$saoXn5Xm&fpEShT{i@254s9+8^9c<|+Gc>JcClW0NjC6Xrd(ea5zJTW4(Bwr$(CZQHi3Gq(46w`zaIRwb3rmsI*nb>~WVC*rT1 zI2`mJXaE2JCn+JK2mpZmCxQSV|2Gut-F5$O@>fP#RK~(Vi4uwlAC8|x+C>OblM~*M z22zY!VSl`VN6e?RcuJHRS(pI2y}X5)oY6-ehKdo(K>(MIfPw~>h?k%2>v>6m8Ly)_ zo*V;%5eH+jt&9y1HO9?*b!tYMh4J59%)@rxa!Vou9?D)vxH=PNg_FQbF2~h);%k-i z-AcB-yo?$XsWB(X!=$I3x$5!M!1+vrj=O0?jO$sIYqYL>W{A;ilbx%Y=-H6MaC_wW ztc#C0U5o~6er1lkr_)it_F=TcUH8^RE&O`z0l_I;>(y~izD*KmecFJ z(dVA;`7?shuCO}EVFMRtM|*jg6F?V!rAH_}!vQ<4(&ZYjg}ZQ=K^%Tz37qzKsE zq{U1O_C=#ufjY!!INr}&(?J=}$8mDzU$B2&LSO4T&uhLv@4dPD2#0mN-{*nzsbo)m zyx+Gq0aDNw+)xj#jFF1aryUCZ{9wiANZj|{$ z1^iW-;2RZEb*`k%Mi65`WIKr{70zha)9zk+6i#w*dDg^(@l4VBh)ZGkreg4BCd__r z+-U|_MbYB6jsnx}aP@&qqv@h^1zeuytUiHqEpdVy^*TOsI67h^Hp;|t_LNaZ)JKDM zKi}8UinvDJvWXsC*yzxj)?x*oO!i^wX4QdNd0KIyA_2*|5;Azw3T*bN)=GvP3aweM zr`0}Xj?(_Bda*`7KcADuioX|%jXBC%>Ll9PE(!5UU&9QvqPT(<(nd<00|A`BM_iJ{ zA>xS^QC8v=C01T7k==DBdAiiB@*E8vKGA6o3!Qeq5B4cl?m5EHoJKU6{h@vX`MstT z3p3$Yo)qcx=%+NJV{ph3w@Y{roon%-dGY9{srF{RFIJ{Cu>n{EXdheE(E^G=FXn9xQy} zgykFkw6H7!=U zXfzxXvbMcO9EARmk_bo$_4SwRg3_g73w22nB*zOt6OPC=9qrmoT=qzBdF^dbax-)H z@dJPD>)Hm`Wg}jB|J)yqbv5ShJm$VObJ7D4K?VOmX;G-a{DFQfi@!Jc=5HJQfcATA zzVE&s;87r0f9%?WUymYH3n#y47vtFXD0V2=uYdZ0?!BxZe9d0vWDFTGXmub!s5lUS zgaPDmPK%$xkK{kUIUoZ(@q1vyK->>-|7G{xp4J)&ThE#eqy@yE-bLi(p#r%mHeONd zfob_7!29eWf`9}1k6&o{zvv+G3w)_Je?u20{7K%+@WG4#;QgQV7t$l$szpr!GoEV5=RTwis(p**kc|+-28sNvy zfr84g4av0F&^ipyu12Qk0-Ozm2_(k`Y&VpoiKqm&2>gvfOa%$v&u_dY4+8L)GBL5^ zrXUZ%`l7Me0|*!!V^T_9hT_2BKIB6NR|^B2{j2FrHSezzC((Yplf#v}kb(CMu#A^N z-H#CPdXIZ7u8UIfP4J&&uHSZX`*i#s%SeHiV4+a{I|skJSiNBMOZZ)A|Az>Xku*9G z`_UX0tvhCTfP4M|q#a!v?cXY=81fV|%L~_+^q~mKbKbEve=I*SdPOeBj!UTLbf4H& zQftoR0yApT7ejy|*LYNuiPHfGi1ZI9 zuj>>)ryFAo{E1&Aivj{xG`B1`7?l6*83=+uyaM^&-=~b&Je`b0I{7#*bV54u1|RL;1BBoYxZu6&V~#mF_PkpyX8pMQ zDkU(O)7154p6A`^L6(bp#I*Rc#*e(z1TFo6dmC+KU%@|}Z33+oA)nzH|6_fo2I@_j zV~e0_wIL3AX`K|%oE`T--&U%HX3^GBk2;6v{ z`T8;dbdSyCopMwZmw)}sDYCAm{0I;`8JD5QMvAL+inJu+?u(w1Kgz7$LiV3D?6D2B_rG#elSVB80LGC?2mYN8q__!74)tsPq z`^UkdIEa|H+3Npi^Ov?T{s?F6USM+I_CKh-);>66l~yKUZqBPe8rS`QQH*K<<~f2*bjtD6SPcKND9FbtU08#JflRIGwX#%PpJ79H;Hw96j&LF zea!bTbnSQyq^Fj8MUWWW%*IGsYi`bBwL9yT?&SLZuCY5aOy5w>+Fq9{{0@emG<(N_ zD8h~cvO&7lr1_Y1EKb}u_AqO$^%30=&r7AWt-zi|Z6;oCWtK<%DJ)WBP%-ZhOa$87 zNhbc9ZoCfcM7Kk~p;rz)AiejVy_i5qPk~b)rumJhz^(h-Xqu_hz9`e@crg6#=MQ`^ zK&kflDuQl%+7=&$a69f}mfFMi{2*ew*2?xmg%g1Jqtd|+z~0p&d|AM=w_@G?Lcg!~ zU6#8Jgp|d^JTYlqbJR}G{J}j$24bK%M8+D;ZgKndFTkZL7GTTh_6hQg#RzMLF)$(; zja|}sNS)@)Bh=Hph@G}tRDx!vuRL!_b|Jm>aEf^kTa(!5Gw1c5dk9EU!MIDy4AfRW zm91{op0a02ojxNt`}w9x{A?riBiCRI*{`oEgO@TDpu3{Rz)x>Bb>52Z!)&1H*$=f+rokEZ5= zn4BsxEwVEy>~KcuPa4_Hl@a1@e!mntX0Vd~TriwvK_1+G#HVA)weYQJ)3%FbD! z)Wi-D&vmdq8F2ohwc&Lg?eVt}syIsK_9$)~RREpB9LhP3TK(92)}}EX7F3~~JZg9G zX}WHw5!bl?`pdG`yoQ`kT!t7L)2RIh7x&L|Wv!@3lRkn<9-y{~QKr^_o)6orw6eA} zP-{r~wTHU%^5yZ~FFfXvxOdx%ZosIdeH#(Y_!=DQ8^s~IqE>%`dHyXF6dm9d8%{Ll z;6M(<+W%nl`vb_BwLcHyXW8g`>Vb5b+5Gt^IBwY#xXR#gB|ydnS*6eO(21TrOw>$M zOuUKf0`7FPofA#vTL8smB!8`h3x$WV#d`yEX_>3w90el5YLAtZ`=e zsF(-{b*~n&TeNWo>H259_9Q#Q0~kv5sVk`J^>rT?WY^ zwe*omjHaVmg`Mmi;htPBn@Qb#599K~SaHQt!x)t_ZE3S6kd81XP7PH1rP<0EQsEC= z&en>_k1K7cbJf9&TiY}Y5c7Wz<{-T%Th0}|27JQv>+tzLth-goz=*H;{Tv+znBO~( z=vyFd=*w*hW5*;n-HRU;;%H-p{0HRoPy4_R^ji#gG>MjcL@KW5kO?&X=W2wW8Uacn zBTj|dvmHQ<#$7#$ijidY0{KDZU;so7=jP)W_`~E*zc~q5j+iuVnB@GjAk(Q;6F2J~ z3ugT%+C0jux|hb&dq-fg@U-e_X$lo`y<+|!tUeoiMLqg$&q>S-04E3W7MPsxcREhh z9NwF_`P03@*Im2zRk@}e-8KqqB_YA?`yp@)qzM4)f5r5eVs%~TpI6U8eGT-X=-O*( zZX)Q%i}9eL@R(m=y_0ojf2~7o)n}_i6l*H*tGnRNlBP+Hc(Mo!80+w%ck#PT+{tM_ zn*a`JtaDJOf_R3B`7YkJ^=2+(4=ADFj#qPMX$ehRb)~`X^g-4B;7wHxFXMZ7+U(yc zu%dS5E2(j?lLWrED}zHd;((Ls?7fd`za)19s+^irBhotM^jyO@4M&6$2EYgGUS!mD z_uju2mi4tO?6nzI&PJE;$mC#0NhFV1u;Hpi75z{zbSiV~hHxdOWpwmAl2kG_IhNGP z&EBg;>J7D0hvG3$ig@ll#X8MMK(9!RP@gd+Lbv%{XUNcoNb@`V1UqVMz#?m?mF`qs zV~EFnPN(YXtdD+1LVI?F_tx=zn2s%|UWwaz6cq4dt8G51WVazHLGUI9`=KIv&v+r5 z%VKmijnwFybHM*+NVwPEv|W9$zUp)xo%gRV0zurf&7wTgLZzL#k`bikcB9z}odtRH zSvo=>5FES44|14lJr&97;FGKqf6;c$h65>jd@lM)`KR)*j*gbYbf#lYMVTnSwTx<0 zl~`+aha;uxRSUiNqP5zu#z6l%+C*H}CbRnG;v-zj4PDDAW=hL&u_nSGIp&h|yidJO zVhk?gV(GNR-kAiuP3!%AzM^0EX7?UOdeAecO#CE;mbA$>PG&OeLa5!1 zsH-ZC5I=E|*#!<0?4l;)BGdXB1h@NQA{TnR?_q%n_^k`eIeF>1LRURlld8r*ycYts z`gcMe%>*{*p)q;Uj7G4a$m4Uad@`icfab%PHoo5Si>Z(`RW%h{I30^2ZIjaT-WiHy ztf;obR$&%`WLNCLRETQ8m<=SYW?s}G!;@&52u3Ktc(A@fBx*5<4!b` zFbh@7up>IzVnSCjc}Cn=`&4B2Dm$ty<>*MRwPu&6$E>iJ+mv1IW~MXWJo0pQvqSt} zEw(B^F~{M) zPjCCo>e>2!4Bw5dmD5Ym{o_ll%%R9im^5=DX;E~c6|_-nq!L%>NkZd}UewJZBWjb1 zkR<3?MBcdz3OX&2r_tW_5TlETUhW-^R;Cu!Z#DSYL~jc$7>V+t0)Xt_;(aY&*iN!X zO5+h<$z5|*UF715Ahk3#a|D%Z4XtX5;GQ+1gaK;`-Od0_nQ!}@$KAX6N&P8`!{wvu zn&GC_=DF;9Oo4OttReF#`YEn!7r3{|(YBOx+8md76@h0brL`Ve1|R|Fauz z);#F=jwvi<-l`pzL}}SXBYHW{?J`35XWsm{(OLT^npwuSCf99Zi=5f7oa+R$l&p%X z=l6n`jtCZFPB}38tZ%l<$n&ugQ|-rS7d-%Y>%x0cMBDXQD%%_mnhsD~;b}1-95+AT z6p3b2bETF=5xI&^Ke31)v_ik?wyE>}NE6)!=I?t=o(RoLtIw#susOPSA!FEn($wy` zb^FvyFj0ee<6RR0M?3-`;(d&=2LJ=&eeUV*mdD%rRqCHP)+H4H01xzVu!9SeN5VQT zmb5Ka)8sjf3_7vq8RQ+6X^p-Yaud8*h{YT^J*834R;+ZgOWs4e5>i4|dHRVbVzANV zzccX3vQ>gR6D8QC4HR!J{7vp|VEc&YcD6q_VJqx=z5{jlCJ48#J2;I*x#1u> z6V+9`q|#2(Vhu!SHEhhcp~tUv&Q-|EU0O0Q>z;hbVL5e;d*v_TH*V^Zyb$ zg=8}8X`M?}c#B%KG%l?|-3S-8*BCT27fN<+@)-F>rZS$b^#}$eE8sRfYmrC^CybEg zFrZ#7b%G7`^Q!esPm7UXwoGE`%D9pQ4AX} z>q+7YVZ^&ArDwcbTsbXygd$7o5vdqq|bE8!U{OtrQ_wPlSg??hehK0`6jNU8cHO7-z zi&fD1b5Ng;a<>;(lSCel*uHGb(_ZsE>5|H&fKBBoQIXm58;+*_%MI^X%GT(Th$1LU z<3kjfFUzeyF_~?vdN>n4&U7K`Y=^M8aWs`M_Ob}Fadm6Q zwWHn|5DNr=Km!0u;Qzag=YRwtfB?)(fkIIa<~W{S&Cp=B#m0w@B2^w;_Rc3*W1*=b zL)u4Iyz~*UfQ(VEe2VFAxm3HD%2Fu$6&n4eTH$h8JP9L>MasyLsOu=c81}1`;B&p) z0`gRt1&tT|1)bVs07(Y!RQLKC7uxu$Uaq}L{i`J}Sk!2G(EhD1ct!R>M^= zmj)l@+TDU9NLQU{$Q**=iPiT}$%dlL3`{ZY5^6)+A6#9F84=Adq?F3@Q_#uG9v`m9E}0*%b@0n~ zUwf3Qytv6I;(Cq`AjCBTmG7^(lTgeJRuA4v*lz4uud^j4^ROmpMkg2=+qd{_<3pH# z*XnenjzUY~dMQ)hG)z6Ax0!+ag8<&R?`-vFl;Hj}k7u$!eJszvjo{B|^of&51PMTP zKUcCt2mxAfCuxjy(zr>r7#P++vfP?G(t9P3XS?IWz(;eP8e&VJ}t|h961x0V(mB>UTAA%g%zXks5qV*+Wt~~ejE6W zbngE9J+Mk!)OLDaiknK*AW5T$=qe9RS3$Y-cP=LaJ9dtmtg6mU&GHs4n=xqRT1hVx zrm=HbndoXn&Q(v;JdkAti~4=nCSTONPq?90h;>Fr9lL+a+vNRiqaFIX;N=Kq# z4Ldm9!{hYY3%u#wv$<>SwWPmiPrausK=F?#8K~#NW2c{i)u`%TP2WysyO0erC?VOF zfeTgbiJ)+MAByW%+1Ijeqb!W-_|?npw9oH(7N7pzy_aOvTzOfT`GW>j(7cZ#UZW znF*Czjgh{`ArhV&D9RM^1_}(xv zdT)5&mv?G!QW2$T9Oh_6IT7Ugyv0w}oFeJURttcKpV~V z%+TB6jPTt{G@KUnx9;s{)M5T|&M;AVW4jxf!yxDU>{n%cEq-9IX*2SgG3ZvS zTv2sJ=(P_2)bXV=Q=vs%EZ2Zk2Jh&k^d{Z zs+y$gS>ZHRAPpGF0y-wm8utbnVbHeGb*WE#P_S+Z2Q1G6et6d;(!*MQzhVR zu+nc7yRdP?pg23F^r^JTq?usI|85_lw*WOZ5nmgj+`hDS%oW5h%NrsyNGwl{n}l*K|0Y7n<)o?3KWDgm&4?^ff(VbVVvZyU zbzfpPA@3DV0G%7+0??x3r_pmpW;<}k?eO@pP@R6S59iMMczp~JyV^w)mn@EtKVW{D z$aal$Y)pb|TTNwFm{tr0jb4kB(0)pUN8c|aPL*YQJV>$fE544Za(mpfpG7F(&w$+3 z{`}^_h1o~P7Ka~FFUZZb8@DzP=1ozbqEaJot|yD4RwasHRp}6CS;1nCYdQ=vnu=)nTu_zL)GW#SgM7K;#U`ab=$f2iJjZGmPWPJKm<9naH15O}wfIZra zN;2g^un&zo9`^Z0snVonuHf`Ax$v&9G}lzj*O4oyXHE61!<95&fvHhoCU(^vx`~0Q zlzxXxV~J6qZ{tV=bV@)7%&@KuagR|+fh@vx8|xJ?r@T}1<|ZFSuI-{p$bf2?oPb6! z;Osga(5$39MBQVd4Z&XxS#n94DRh^SsbNa$L4!%1B|MD#mXX(B$X)0iL1rE~g!;|F zYd!!Zuwo4>dYQXqMoE(s?l#G`Dy^ zD#$}5=;CAY03MsA!NKTml=^|apNtBrI3ouK954rdEtxdr1 z`h-{9h|m zx#2MhQmk?YvA&KK-|0ocT9*d7c2Z`~_`ZZt!jpqV`SM5RZGuX90D7EEhw!TMK931$ zhf(|f6pa*Heg6a&WU)K|LPf7sOlw(>18s-YyQuzVZMQAS?%W~OV}=Rf z=&mi=SAJyslANf*mxwm=C}kpaw)a{8J~S@j@?$^*K?Uo>7FC-1#dW(Uv1?mds^$JVgd-cPwk(>@Up;@2$^5d_$f+5UD!|+0 zj5%y?u~+tGDH&#)LZV*9^|AEVZnA9($se|ESXk3#BYaK}D_2PFa>yuhZc`0%CvpX9 zzqX{s5mjLOU|rtfD6b0+mkr*!H@_c%0BQsy744D!e^&2nDg;yNw0fNp(r>EeFc_E zaBlc2TF~dxE?d=(ko23_a)n4pQGQJI_5SAO&co$`%!_t_el%>C;BangconFoHDWs} zC}YKvFZx}^IpkW|wjY`OajtuosU~YxSk>8@nSiascyHkQUX{G3NgLwCOYxU3qBJq} zSfEhgrBl(g)^6ZSRU$Vgmwj$oXE$QOLJLZ)MP#~z|9`arTT-WXzbo=mJm17VWwn-k zZO;K+uI5s>Gw;A%B1HKtV?9>?T{ANQusirR@v?^!Vk#Z^s3So5$C&qj;J7&PT>XQW2ETno!t zdWXpw0S8h`GKW@mdGt0pQ-Pcp53t;+XIng1y-)LN{9nrn308sxASo|7`|NX6pnQ0y zyDK99<+NKQvjP6Z@+}#=@ynoTJ?G|-Mk6o_juXK=e_5n07U4E^4dq`msrS5p$bYc8 zAZU7F{T*80k>7F8G?dg7f;KvYu9BpdS1P>;?!s)qo5m` zrYA#oT{Gni4!|A4DTj|vguzlbFE-R01eqz9^o?i*Et8E?pkkB^%Hh*x$c3xN#e*fi zFGwRwrZelCv$xWDoA2sAT`y8?+z*9ESd zH~p8G=Ey2pJ9jmn1su+*c99(oTt0)huQW|K=O&sRoG0GkazN1a0QO8(JS9GX#AYFr zgiW3_!I9aAB%Am%i+vOuys9MZi<=vkP-jUC2RWhuu{=Nq?bFs8JGfXt9CbSG3C9QFY?@+z37+TX5 z-#4e40wFa=d+U*BJ?XTILLGz>RP}aNoLr*nBf?7t75)Tdj+#RE9eQQ7Z z%$*hE02Djh_s4w>vslzDks};wV(B^YHrXi~KCRALXfvonXA?g*r%rT00v|Zjh#ZHG2=#O_4@{(xO!!K_ZvLLsI0%QJ+UDI0PW}d`(d=Jfh~0!J;C? z<=Jf4Xf?R?6t=poXi=~EcIF9V!gpiO8Q*h=p)?PV`+g;CK~M*Ebb<+8=4$d=z^!kS z%5P7gRgBtydN)xM8cwTM(0d+<0XpAS1!&b9-1iQUU%J_g^77LRm4(@Pn}1pmzS&|N zIOfo5yH7+itSFfc!A%>Ce9xxFP0PB{r)74gbuU1CtE~Ad2_7{&sylm~1ZrNb@hMV6 zr0FjO2*;JxnYB~M?TmV4fVDW)%U~FIaxDH>px;FZ@?^RplK{V=*xYgKV z$b@v|#uFu-^hVx6oY-$RIGh(q0q?g<&dqgPJ5$mn#wLP7A@9`dnzA1eGRQ-i9X=_e9ga#R$wzc*BAumm1Af`tqd%%D9ZXyl$N=&k#)xd77a*tU$m^gEdI4E6r>@1IfW|1|IN(%`mW`_=ebY?X!!)+2m+e0!{ zb%`a}6nLnYm8!L))ZUn2rvdEasO`3kS*uEabQ7AXyV2C7b|#*Ap=;+#^P~)$yI-8X z-UCH!xuWcWXWnJdJJu{_$tL9`pW#C13r1m1!1eyBv@IVMm_j3qc;b)@m#8(KDifp$ zBFQMkcq)I_N}VhrH<0DewpY{59RO{vWTT!YX+96-C`%d`t%a^tAl7{mQqY?>8YN+P z``|Oac!eg8ZLoS7r^NF@)M zT(#KkaI1(4`~EAGOZ*qZ2`hxL137-Fb2*-_#CRH%q=9O7Nj7Y`A_7;4FN^GaFo&+I zjY0BnHi&RL&b*Op;V5nLTZu{H2@C-xrgf7RjW@*o4? zpkpg7eUi;|8B_$7ok>$xetBgl0__(JhM+g-s_DB^;5BJmWuzxV8}U?onWj_FdeiVe z#-IxISga1#$; z7g6STNmCDwP-L-`5+A=r(2SDCtlgA%5iChHMR-tNgCPlStDlbG+gr+~6h}UG#f51h zD~&@ap>;SFzM1)MJIQsEkHu8I_uR0IDbOS>=kwH0+`G$q8EZG&I;G3rukpj|V`flp zm~%|hy>@M9*y{{JpvM>Y4RW^$6{>t#k|d3M_U_%kF^k)cdjLAuV+BzwqmY>OI0|x# z(u(1byxiwRa*_|NL7MHn93&G)%E3aGW&rKQI#nkZgTtA);uMpyn}Y|Yk`;P2>+4IB zcWAtjD=Cd}vc?Ok8|sWTnm!6^@hk2k9R()s;d7Lr!m%?}P!>rKmfFvaC(&d{^cfP= zi;>~pw07}}$S!3DP4@-gWn@#Qpjx-IN+nsLnwwUN72INlo%dE(99d02gqLgXe6iZE zj-@N{Q(DwpI6naFqvFE++MwS+~QgzG7s(IIspn-Z5& zKTej2OfKjQgyn2jB|kHiY14k_FTb8n%BJjuJO>GRsfqPn$OyLUEf>w3F?UEEhrAd~ zwW;S?ZzTXb+;oNk-~*HC-@Jh}ZdLLs;A(h?sZt{)3K*6(s@mR~TvaVX*7sUX~=W>A%%kGQ&Yy~4sgsE;Qvpu_-& zNPc|1|3pMM*y#0~vqY&4Ube_#(4RBu z#w<|)Q|uQxIkXxMj?!FPK`h>!c#&p0)7`=_Ow)avWOh1=NVNXej;PrBX96?WJRIV8 z(Q>RUVob^QW1ds){m=ZKUOR6#_S;Y>xTN-#_>!kz((>}Wwc?m(MvKbtj_Kg_6}Olw8f8%CCN@9KUUexQiiVrJ?A)sI!7ns`Bcs9b(X0l z)!{qbrJI3)J5Akf6V)ubAht<8kS#T<^SUTAn=}w}suUw$mRz!CWS=g1giSsrNt9?; z>tfra1jSu(dV7<87E2|0#VYaedC7C71y?eeflY_S`M(&MtgeEGq0q|j-A1rN`lKn& zBiO3Mrh)!rAe;7!Hc$imxufTlTc7Q8+$y8$tNLf`Qpaz*6@{Gc?FK{K66MLAnWXg$ z&J|AS z31v;6%+Yxvp7g_^FJLW1>heA!%gNPH?#h)BBd%Rf6E=LbFtw?wpc#6HXRusa6!*yG zLugyX`(1Dz+!%4p71R{)h-&|Tu4WMu30kugJKt8NEA9enEQP5o4YYL^Y|koKFRkBn z8s0bmNG;|T-&ut{N*c#y;370!0}-th6s_*mN0u7>#|YSc&oN3u>hx&XcWZsjlTB*f zIF<1BNxUwXUD3o@_LXPpWig;725pIG(b@TvDi&nkHJ#mbdk2UBI@-hp-9!L^S|)Vn zcU)tZX(-WHrHRxFG^SAGN(e2OF?F&!>J4^u?Y}iR@H3!jo^~5o6f>p^A6#G=1IFK- z&K?p`v1&yFS#_$K#|CIxZmcwvKAKS~?itbTJ!HeV7ZmF2>U~04`nf$RtNcvMZocnH zYI;7;-d^Gt{Rn&-7FTZ*I&rl8Ig@U=%JTu4get3M4@r(a>L&`dZ~`L$u>s`l*c$&~k0W%(KxS0sKG ziNt9qIS>)r+c8Go@7+4rsQkqeST86pJLwJH@YM5cG|6b`iqUk8GlgLSZpgZ|G>~ls zJCr5QzfHVKvP%)zicn|eA-4Cis$fcs4kz69db0rmYC6$}$jD8ovr=X^vVVK51{*ZB zf)_dDOCiG)$!#1HY@nxnHSrSL#v)%IAWylsv`v~Y)(kT^ zQUO#@0hJgMc!(jep8;6(zdsQ39tqmj3RJR`8wsQr5aKG^vTbsp?{tI=MC6(v9*kIQ z&#aAv7IN6O%jD}9J_@^{pDihQUQ9TW;dPG;kY?ToK?h+&kMUn1?R1XDYEse+@y6nsFa( zac2KcS3V4_f)PNzmm(2k+udmxgPjfMn+7+5sxl$%sZJ<3i#Fc>Q^gA($k~6~ORhqU zpP^E}_660TVK?c2Y|lLFm`1{iY;iN)5t@uFR*nsuLytW^_64_ta73Bo4J4#D*# znhF=DRkCz#@$NtXdhB9;JNHyWm^}}6)7LkNRYpTbk(vz^hbhlbl&S>X1~DzpBV@KY zz(D6mTHs1q)3d|lmDbP#m`cRsi&3QM(+oFUuO+O&=RfIGO^L6W5L6owlbSJOX^tAT zaebWpr)k_w{3|6+YW113F$*RNKaB0PJ01IVA;~;*@ge&YSGLt5ioGHKYOhRu99Ey`MMO7c0V>v3d+JjjY!H>~m(K9i7h+Fvb}Do@K@Nb8x~j3MnH(ra(VD@V<0C zzKR5AzchvI(#ptR3zjxTKGh@5hL=|j$uPa-=2rVNt8mHH#*c?)Hv8k5Q_6=iaTQ7$ ztuHGBzDhPl;39dtA!CX`A*S75$JnJLEv7<2#n zt$0J41HnNtqa-R)zCW)D(wf(V(CR$n6x3BI(P7?oSIJ0zfn`C{@hawTn(gv=%&MAq zzx=R;y2HV1!|ge{c@9W66DCr^8^_GxpyFZ5SE7Sr`HPhF1zu6uTn;SIZF;RuRn@&! zlOhqaN|-A=z2Xbi^;{eAC16mAtbseLj;s-^BWB9PJK0RA@i$~{fdnIWnNzwsBOLBt zxkIL=jb+xBdCx-SxI4KYB>QYH;17Uj?f_FvDOlNnukpI35N34+q*53}aP&Ept{`2b zl4kl3vPvIY<>J|yC*R?3x+$I0PMF~RWh-$Re)=&_2~b6+T&^@@>6lU%ahi+K!t=AN z(LFX1ut-$d`w_wGz*52d&6DI+@rKMxxMh7}@q7jM+bM=N6KCgzjJ~-B-QV!nIS33P zsd##5ORq5F_m)b>{;@5whZR#IB~vTfUg&>wdyQfkE@cj1In^KI46yz8&hu?Uz?(11 zxl6cjE2mP;z94!`oAWsYm{qRL0Nie4B{aWYu47J((8a~84-dw-w;{6Uvei?oMylUI zw3H{|j{MOFXROnj)4BgR{EExZ?|<)`va|l~2eO>798%N38siuzl|XTqH)~CvK8Juu zmEli8B6a=+mZg7P*Y%T$MQL!Xj2)#|Gv$0qholOOe-P-jZ2O)CeoL*!-s=VaD{z=y z<2&@gDWVkec-Wr1?YTN@Q|3mwfa(3tjLPHb;gvW^!7(Uzyc`9SKMKwJeQGE1?Qs%7 zwCTn*2bLlU0LCDl2|158NiBDj9mJ?N}>b&Q22oZKo)IoHO5n#wyz<%ra{aCw(;B#g{ zFWam0@Z`CpKEe!I)B84jkc1tbe30R(qUhXUklm#FVmBQF;)iU3)hDz2vL5%R_H{xA zkNlgl(y^N)Tkk~YI_i>wFK;@HbB1#!9@09a6A2GlR|JUQG}-NflQm5{^{FLTTu4%R zr)4u^%L_X1usaNxr9+B@x~+9J@-)O`^m2Mzn+;Ym*s!%azIt`z7E&MVwP8)9Z`K4T zRAB^tKyOWm?NPiS>CrlB10mC$=^- zlhd8D&2F}Z>H}y@Wk}SnIj(i)3E_Y(LG9kd-$(eW%Sn#|_jy`$R~!*)h-} zI@AnW8#!=t`IMNBGf{xu+zj%MssF1IfQB>KQt~E~QL|$GkK~p#rAbb-!&T}W_!Kt2xw@90${aZp&W~-%*NH=PiQ*qwPub|| zgUh{oy$S^OOYaa<=hER!CN}R+i0@#whjlFymmFe$83%Sf>1wesRWT659IiRgaNf(* z&cewC9AdcMTc!R&X#dLU5@ptf`1a#xP@_84ny;nLS1x<0Y}2IEoo{&}Cb(?L5Y#pzL{}|R_vWJ*Tla*wfs$Rx5;l0wil_T-qSv=lC8(M(-$y4b*0?eRP#2RF6 z9acQYGEvs}j#4jDs%=VmDHkNRBWA|SLKiEpaDg%=xqJlsQV=B*b2skQz1-GqVwhIH zzD_${KT`^#C;`T9H$3NVG}t@Ws(!8Pg>lr5|A4PWowJ2a!GyWiy7gL$rEP_z78wcG zs^R7=RHMV_dN$`w92K8>H1CfbXo#8UTH4q6%gm18#v!K`8!IXZ_q$kTyn--*7v}cf zxg2!z&`%w>PF;;7%Wxe?=r@3qZ=55P_3#;|F%l8_G7+8bJp5llvMDEfH&xP~ZqF+^ z{$||Lp&5alLAvT4HuvA=q$id0>POHr+0tY4Jb_d+#=x6Tt15ekWk-VeGv8j@(J?Q` zbGh(7CHoYv&K9}QgwWx9 zjxe2c^3u*6n8=XBWU8Ch0u!_7%u=9gAwX#Sr~f-<+86^H^Ovk? zcR%k|pn70t?P!Or@QsM3CML~VBwgT{uJZ`8-^NeLIyV*~&+G?Fr9h1`5{4S6#Bgwn z1bK82buO9q|6%MKqBP;TZlAJk+qP}%Ep^%GvTfV8ZQHhO+s5s0@Xv3C$x3o^a*~ym z?7ag4zPq|rdO??>SEt4RS>~KijPmJ5ukO!~`46(#?b)#=dBpyD ztp1VU?t87|itedU(&KB*2MLG!-esCMK-Q@(mazX{rkMq43x764?6kwQV6T;tL)xSY~J`7P>qL13UKcNUbcz%0O| zQh;2yY$cSuh=L>ifTveIE@F?BYS*!icqnwmNp)2|30?v*YBF-eQSK{r$p9bXS20v) z>BV;Y*=>l$IyEH0dM^XC_>$4Dv$%M*MILANSM*1fVhpFe8PF*z6WC6OZ3+M^xK;o- zW|qKmuGnZkbWDwxD~qKKusLSJNsANG*M&Htz;6Ss0i&}e*p2lXRWtU;PW}nsz1A1P zYz5{@?YYWFhxKgqbpX-lmAXF}RlVcF!~LC#ImfnHFn@mo1w6}ElckBtJ#EfPI5xbBOo+isIhdD_&R73DK-t$_z)LyrM|r@F}VEWA*CJgic~Sl=|^>XMPfYKzg4E4^LE z2fw2`o};5mxt~9?S64Gux2iPN9=8d{D!+Yx~Dt4?Y)jS-Lv7#97}`*r)yJg#b-5w$7HW4TF2s8rf$xpBISJ$>vcfx;2ddfH1Y}uN_uTClo7W z$L18F5FWShaju?!XJfI-g>PS}Ye7}{`-pM7-7E*!_uvm;tmU4Gmb5_1vEcx1LLd}C z{T{io0INZWES6$hQxa~yZge7;ZO9m-@k5a zp5iLv?j+>0rwc(OMU8OVbx&N+vfTB@lhX)SETG5gE7^`*d)Wk>uhCxh3qHQ~76-Z^ zHV0XbfV~PFD4WCo15W~NH+rD#67DiJ8Ut)OKUSrI;^wK(6DyY=;9x#gEe zbZZNHT)XrPS=u(4Fd#agjfD|i(0A|;>k59K-YF!e2xQ?f{4>hv)^??kF;j34(y^WT zXk{c?RZgsRON+&D=sQ_!MmtjfG9=;TwzFsLKQuH?4 zrKN=mq?Gd?Y67yl9Y^cE7guqnN{!^IDza1*$>TP>FpGF!?Y$TOccE~z!-*~#G>$87YZ*B_MAcE8% zvyPcOCka9@)qre_KSwQch3p#m$~G5>Ppld3c#OY=di!o57oG#35 znr@GRF@8Oc5;;7|(lJx@?Wj3lCU?J&r1p{SZ>h5a)G}!y#>1&fD|B{PlL4$GBZ5dD zJr_wH|ENuk*578triQ$qUPhj^R{j|~f;3%gBSI1T7r`3@J71y*{l`0V3@qTUxjsM} zHcFmx{ro=TK}N=p1TaU(vY*5;WNL3*$kYdDoRE$Dq_Sg=vlN1YGPCGcyh?-!Q$y20 z;IUw>Xw_$2_3sOR3Og$UYA+Hnpc$$ZI|3{^Sn;MoKWG1;v7PQI_KNPtmtT9lB%jZq zf3d-k%l53eu4}s#_mD?GnDPZVo6g8w55Ud8es{9-m9^zpBSFM7U$q@mTof=ut%g>IIdWOZjqC(prmkDpdfMUYVk-+Dl zD+f*P^N=2C>gb2F_!E4*UrE7__V^&<>MMHx_QZc-bC(?ZwBm>ty+BgI(dymLP;l8= z%fZ%rf-cJq>VdEBa*nfIu864HYxfdC z*Un45@oqo#9H@tzkrBQE-m8}G_{5p@3)z4iZwcO*Q~^FYd$#LPVnXFKLj#!Rh>wlQ zP-kd>Ro$6f|L9l8O(etF{Mt0kr|)x%_O2;%mRbfq?e`|gjsa_vaU7j`Sb?PR}zWdGT;jbx*A^>e2wbv)WXJHmkwK6)xe zH-`wJ!m+>1v#M@jjZhX}R;dJQ=i!%|&F3_pff2-0O4gah^QQ(BpCUk1wfaPs-kDis zZ>Uo6y^43&V4SkyEAsWacJd>RE|z4_m0`8Tj{C=Hrl2HLZkJkqrf>=opha}I6>S=i z|21()MNuv4gztHaFp?Mo_O0OPwBi6|0T$)Loq7%=V)&+}T^ z+Cj0X1kCBU{nHrMB}tN+LhE+8#o0sC>^N)g&4YPP*x)W;|CUOS^;Y(uz3FD-EMLu2 zas2n;ea(gGZ+oMu2z(#jXYs`jy=(lBi#Xpz=N9@#c>owpD-UO~5%Ti|NOHfcgBTiK zp_a<4RnMjyBJu`v==gFa>i~ts4OcPozwct*{q{?F||$s7(;) zxUkCfk?h&YhMqDzfZ&cvUs)HAfX^>Qd+v_Wm6;uLwasfD#mjlJq}!G)BLL-SoPk4D zQshr6H4;Z@&V~FvXYuxt)OLmAm%*~vS66%v?9V{&bNtM1byEUM9#Dz;2XyJrTLJ?O zeh|s=4?y8Yspegr+lL(_`!F}?{WZjI;M{g>Ua#ipnBH=y!SK;^vOb$gs9Bw8K7SRD zhKwvGRv=*m#lqyb@2-4j6Qs9O)0&DMkt$haToU;sPJ_BN71?H}S-X_W^N;u?gk-IB z+cS!oMG()3E#CO>ZRfc}puJ(oFd=x@qUT6MGEmj@g&G|{hN$2N;SFwd1JPWx8bB-% zJ&iR8A>zeMf!EyajMA>B!&!FHwrc$+ihTc&wGhZ_R!y;3GB2c~lTyy(@8WvIf%tbefu$C; z^3|C*M$Jn{AGL@Ob4-ve-gqb&Dq7dYI=FPBM#d}+4~0=+W(ZGkfek|2JjkQIZq1t{ zBv3R=b~)%#(!#?)3SHWjpSy|S+=zfE8#l z+(`)w={yPa4sLJt63@wm-o2aN{oUw({`;92edy(`;Txx3G8YCxDUHB3lADv;NO@_OBcM8G=tpy?y-@3u3h|}0R3yr?KaFaQPdLm0^`>&g->hI zl{8+84zCoLcoz-5RJK6Uqr9NhmI=oDs1Ti_t7L0@o9z`d+AnKqyMwZca_al79#gwX zueRjg;-@`uD}DR;sz%4+WF_fA_(!sg54CwhD4K=3n&{~be$_+)gVto~>NG~7UWf6p zE=NjU?%T>DPtNw-(>XU8ALUMC=~=wvj%db)09=Q2g$PtZhYU%R>XEiULwodM^%R|C zcBDm@8ut8=Z&wq;?CFxsR*0?rxJ_5?(!MF^ez*H@TZ5C;1{e-F@pf+Sr*Y~>lc>en z@(V-Wkh(Fwf36|ko;a4jF8W2=d8N(0**h?dyJM!KSQJU^%eSOpukT{64FXlO(JLPm zgIk!B_b*5d+u6L|1$WMz>=}c-qJxg*QgOJw`&U7)FQYIUZXO>E#r)Np`OlF>Z9Ixx zzU(OR&6?ojK;kc@=%D{OxDclh?zoCVPunGSE06pHxS_n*WV&(>%XEnFeEZ*D?9ppK zV=YdvnyklUChh!t-B?xD=UP0J>v5F%sQtcXdcBVg0Xw-!4>*!1%h0C?W;I)eIZDxD zqaC5;y`?!36b~hu=DZ0#L+s1GEFjBIokz!Ee|LC!VH&H*suSq#DBq5Mo``M6-%bc! zgG`iGJg={n2E9?y90Uqb^}`_s5^NN=WN3lsgj>l=<4Imz%_FXnuh>!`ki+%p)v(G} z>lQhHPm51O7HnnI%^$Ho_%otL_UmUKR3N3NbdeIvr6bR`@zy`;&?Bljh*kj# zvAMEk`W&nIEjO9s(5cR(5xUc#=|V=SOwrOhhO}s+ix4YuKl!U17LJ$ylmKvwaREFi zz$d{y21%ATuAJM)T?)HRo98R2DSAHlWr($I!*a|k=VL6ae%XU}>U_P@!8>>U^*L=> z^xx>g%_9GHRa@hvVL1Bw-Z7-Za$QC3=_;u;?4z^yafExpGOd^kOV{5U9x2?fDA4mg z%CzYRr?4tg`;G6)-0`r+njX{=V!(d%Tt_?;KLZ?%Ad~p!jY<{C7EakN;ZFMaKoHlq zn+%rU;m2KjTLBTAzAd=da-{Av^mHg9*W?&C#ZNM2>reC0^`?(jDwIhVW7yE&+JDt3 zS}eKjI2OFCbhDw2#{XTje2k3TM0axG(7Loe|MQ078kFXOC@RJ=G!gC|4xiSfwwUjp z(L;zPU6c%(=hz5xm*_%G?q0e^fNlwXY*gxDaSH=1v^YQ98wEws`*_c`(AjAXlqGws zpv%65P#nYwaj7&O38In%XZ=owKKb8!r;q%vS7Cdx=u>g=Qo|76xr(_6Q7umJ`F zFB3GAT!}%_IhS&^(r36%0B~vyYB6o4I>zAH+&w#Wboh^q&gY$Giq9JCv-cc0U(ILy z(e#}c1a0iz!cNilJ>~ulAS0JPd4B(RD~LQnI2GF`_U703FvMg5U3JeB1!ulNb` z0_z#~udd+n2`~Y#OCbDHr~Y7luMdu(O;#pyJw=ShAT%R7$e8ry)6o(9btu(MLJXPaKHw1*c^94K;|a;34P)mr zg1d_aTd46DE8~}|ZO&_&hef>Eq=0NsEIT!LxwQubvb#IzA$FylFu$j_mCE;IWfr_~ zWWGOvMULOUzGU2A(-^RLlVMglyjggfJq<+x6?6z#q})FfRadUoVwneMyX6)1A@ND= zF{4yBMrWjWB?W6WqXH6O`69j`JD(IM2%CqCwvurWAabivP*J1MPdYTyxc+1E4e)oh zoiu4;91ural4Uajyas6W7h&|Em1mW7xZD-;q>S7RtD!88`+5;E=UD5`WK;*i*{B?2 zxH?cd1fL_gvtkPJeGgTCCy<`5K}sj@AZ=OWUAvL~Hib(OWHWmIY-tKzh#bclq2%KU zyzw%AD^srjx{F16Am!8M1wWw3LG_=BRp2RgL7 zlP2?FAb052-$`A*oAX6>nL?8<`ZpdP5Cl-*la~%;)My=UKZzQgsG$Bs%JtZLZoF7< z!#gEAOiv}h@;^toOVsynX!+c_g&)Ba73NZ9t{w0c7ry(qaq9um{f8l0iRb=3pAmf8 z5Q6$0oh3Segwvub^VGa4$@Nekn}!2~XovNr^GeEAeoMy?(~dW1deoQ1BcZ$9SBQZ7bvc^FlcUU_&$zw9e+p|1G&Vz3E_$v2 zm26|tUWw+~9Nf-&3HXJkCZHfeGgsd_r^e6=$8ebaJBz+nFpYoA)I;2SmG9j1h70BA zC$UI}e`x$DXh|I;C1x0}8aDvzqkMfz2TQE9R7HKQ_*|}CoMJ7@pjnH}<}gO)Nm24* z*IeA3JINv7Fgg%j198@)Vc1~{3NFl^ze$7)@i+}u!=%o&hIh__6gpFV+c#DmU6>e{ zGt`i!CP&7hxUoxkMK|$`CYetEExtbrWLUE%F!$w_%e=vXnQH1NTQ3ElJ;#)TDGw3W z$%Qgt(u1b_JXX~5-)Y8^vsf{Sshk5RIx4D(67Flb?f12r#%#|+U1b#S&r6fKC}4&Z z{{n4@RaciVsfx6a9q3vvGn~^&emj5_5pA?JnktKRxxSCKLsY8ej=&pE4pa4?bOO(7 zwv)2s$PbWWNFy2Y>nU7j&iVCt{fK1)vXGAV5aA(3`H`a z-(rYa_D)_Y59Yz7)vqUrhW~W2vP>%l@0w=?F+Ds2A4%I6kYhEDnU%KIE&?C27Z#mFDyjdNLN%tV7Y!TIV-!R%s&=+ z`0%1@Z3Otdo-wy}&uVp8$Xu6_!?SA5oP#dDE;<6n?z-}jOoaSh~AW#P8>f$<>y`vXb|95tt}K%C-1komVgKUK9V;G?-VP|$yN}>oTR;GnHz8t(6#5r zz!dSP{j-47COh?WiKQJ$i>I_R!!~#P4FzQkwp;%r1~}eCRqwSY73^Wj@c&KaM_GvpH8(;*5OAxcs;ku7Mjno``=|lBrADmWr$v zkc1no>VxKMWVW}QJwAE#oMp!;ZuQauRZ zta$HCy_=gS5Ht#4B$H({is^rountlghCx0mCdRLtrooRMj^3_akIBE5R&2xIebBQS z&XofAoo$9)ZB^Jtf5G^JXNs0Q5y7(Ejnb7w*keqZxr?`igz1_uX=RF-J6C_ji*|xa zg`$F@jc^^2glY3CjnyW4&)ODkg^oTxRiileyT3jiiPHM({@ai(z6v`O${Ft^LjH)n zu~jAzmh|-V^ZaBEUg%f^Q8l4-S#!so9rzedF5zY}?>wcI&!5nJJ@_@<+C9f1aZLcA zuto^4`@5_Tx?aySAR^1krCIE%WU!PhibodyF%yut?l}n!VcnTrQ%+}-|7r_Y_PAB> z&faiNjB11bbpt*#5-D%_(K2CT?m9@AUi!GnTH;aJT(CTDg12``1C&gFFA!{{8Z355 zHcB^PY}T#0yKcMD^h-5+JsUl*Z5qQ32vn)AESVT{(_XaKOhfsjb=bmnz|2fF?kGjx znoUax(!~8+d-mVt{7%{R!O)wvL}KBJXXlxA;R@1&4zJ7CT?WgzzWzT8?hfB}l0)*J zLvK1!&6&!}`t8}Fem6Yr+NC3j zlAOIY_tIa-{)=%t0^zc3JGX9!9>7%~8lp&AdlJZoCcQHkWUas*y=W$I-R5fIh?NWI zB{vu9M@W54{7?34@22+6{U;LJksqHB=96M4z(#|?c2*?j>g3|!A@IspN~Y+q}) z9dfuD21{0Q<(=)(BIW6}D0fm0m!koawA9mJfGDF)RF{CP6G?@H+Vt$=1emOf4ssDv z+Tsg>;K179tjWBHs`)MHcH--bpe?lpEqz;D6QX#D>QJqO3Je58&AG#OkZX6Z(@(>| zdnjIj0tWTL((|hTCxWH3e^701y1-DUut$)a9f58yiN*cVeES?oV$yYqafAlo zaTDWcpVED^yPkfRIr=$tx7)B#za}uTrOQKCNNbP|T~*#SU!g97M;Hyde)~V#)^q9$ zn#=s5R=5sgwMme`c!LdB#n4wwcC~ggaNnzQlv-~GxBQ8#toYl^g$Um(UB-A{b#(lx z2A0%s*h_$(41#RBnMQ=DcNX>kc=;q;2ia8hQ+8KhCDj$JhMX*`cz*rmgyocaF7?}y z&P5F-E_&I-O(!xlcD1cJPD@mD`5P;B(-NFQyBh?| z7+M*Lo9Gqb?6)rPiS`m&e&~w{-Y2>zfrsmCHQIA!cNOEhx5K3i^r3)XCj!Ne0&n97 zWxn_H=RK6bVB>8Im45wB*M4^Jvw##IQM>^+((pSvwbjHK6F=zls?vF~qEkzEOphQV zoq{axZU62NP%HibzpEM#&vO>fMF=RkHPjLFgb$oU5~<^quaLo&_6!2)q)Rva1#p(j zB0?O6>V>8%Gp+~!$D_?A27vJuPFQ$nUr<>OhiEhRpT`=Gb5O9=@X)-593C^P7-}f! zQC&$_0`y5GVssc8^uEo-+Wx~>sOsYwH0A*LsU>T;nAd;TjS3Ds@@~D*PuHdhRG-## ze}G^Z!;{{q05^VJ6LcygCZq$`3LsX8Hv@Qqb=;Jf^yI^f(kv@YdqWqKE;!tT=$bV} z6A~lo>5y?Zf>dYMgdH=fO{1X(@6i|}g%aQq;H5rqfqva?2e&oFfC2&|aR1oZ!{5w6 zs3&zQiGDIm{F5@FP~FFXEiKa8@VJ~Ml$o*SYk04R`Tf$nv4IWgw2^yJp`rMSU}+ml zjEkAO1}KN)3C8u2yZ7Q&n6A3>yun+;IB{=| zF_X7TCd}pg{%p-0Cm8c0qe_IOca~i7NOXPUeiRpu=yshYvbKe$o)97GHV=3?u4cFo z`B7SKW6^))QL>`zes=0qS~85V$o$WV_BxzXcQ=djZERVDwq~mex;(vp5J{u-)=j#T zvn6UkSrDzTgq#{KYGaBVQtd zzw&|qZ6gr1i^{W=d-f%Js8gVmhyRcW8fxwE?*o+vufy*lr51ShHFjA|*V)Zz&yzw* z#f3b*K<`O*r(QX}M{SY+R|y%*zr&E7G9k<$O7JHrc+H1sdZdihANYmmIdTKT|Jc?* zwOsqUA2rSddCRA8MA$1S&-6A3`593o@td3yLoJh&wz^ zBA$bBiGN&3xLBoMv|))k>p$0I;!FyT%gUJ9FL*O>%E1J@dwkjZ?10W+!FqVcNI6Dp zlZxNP(Lv;z<%&bK01G>}2e0f*-xZ9IsSqIEgPR@C3(?@Zx2=mvkm-bAlFE-p>^spc zTQO9o(5d`pw9eD-{80g%PETV`4l!=jT*~N{?|hsdl#n8O=&pm>2>9?#<3$p+xj4w@ zBMiFT>gme(KYm~o_Q5pIwhYX_=zU%D!nQVf62!Sjj$*`E{0R%u52WEC{tL4k11!1_ z15)RuR1z*0p7t@We?Q@Np$?1gai3264S<8w!VAmhMh|>^pw9`8`d@?2?%+BB z^`b8hbE>{;-(~A8dG3Crr&984F=CEte*T)NOcA-gc;{2X+;i7JN?`5jxMntY(Cb8d zYLdwwsdJjVS+Q2!z1?{krX$8?1(DX7%&nuiQw68-Myw{#6p#P3xcZRd?QyFrA^u@* z1^wvt1O$cXp^s2|y04?)`&~xcRZmz1G&sT*h^yS)xHh^CH4Z!Wj z?iX3Zq4LlI)bA;E&tcxhK6`Gl_JBzreDy)p06&AsQn)o9$qECGK@BBKq&+9aqk$+= z5%@6j{zJG!m+uFf?*GAOaikF!1e^% z0Y>%T>A%;+vKsVx^JF8YQuf0k(*8Qi{%9>ky2n+Z=i^zRs6wr9Yf543A{y@*g8S8Z z3YECzH!}!z*0+-&T)IWXQH}6-xx`|G_J3lOKf6GNGivsgGz+-AvW3m1)RY|l>v1`) zva-?GaAxPRyqas;dLyCQYWgNWf(e6UX@aSb6HfA+HvOeKALjs`*!cbJ#RZMRNZv)0 z>9OZ;c9#UT)5KVmqk|>r?i{U9mY)%aa``%2U?S1~q09uGRRbMTr#IIDVz;JuMb6C{ zbB2nJoYoVvz`y}~r>--eqm2zAh!Q?q5!lV2xdN2Z-e%=YkE%3+eqXrk_LGVnic+ ztCov2rKp0>7GTi*<@#sG3Ad=Oa$4~4JOjN%(cdv4AFl*d{iWWK3L{mz}|`*QGkc_X~t~uWkaV0x1MDEi{lj;$w2(v#LSwn zCtr>Xj#m6w`=I-Nx$s7$05BhT=$`n!lZ)WQ)*as@QgBYfc@dT zyb>J2rW+$9TWO@#u1?+;0G=7x-Y-1})dI0(S4DsTn6B@flZ9FjK{BvbYp{cAFo@N^ zs>q6C%|zP(Kq+X8TEO_LEhgDKCk^1&6@yR`HKG8m+!x09vos5jmNgVnf$Biz4Av-yaCaW}Jj3@@D5n}qzzw<_Sis-*RaFzDP_ z7{9}>N8fKHoZlA1{IZqNe*^PW3IoL*HLEqng<-rEdvXfH3r@?1EIUSUAO%xahb3ek zwhcj&Zm3K(fcpghvlIy{WbBUZl^2wlqEn|=NpuV{7l8c0X5_8of_G?o{VPrkh%X0E zmI6 zo)f%F;jyY;EGEqa+LB~K><_YxA@}ak-1*n4;ioFdN1{wf|2I>(a>EgcZLOnuWhejU;6%n@LdJ?E# z#d65|p~aop3~Zv`Q`*#V(Y~}f>VYorR5H_j!+#Svi5l$wG;rwlW;+Fz`ey#7B*4PH zD>9^xSa(3X#|m=sV>u#P+g6}XB0FM6c>3s+HHCL(4#jy-M5KhpU5pCn`qQ~&BEp2g z#%2XMBnSbNWzccjCQ86FTgD~~0rkex@PtPlY`YI#6d>)X@#yh=sN2Z;v+-ceg$R8V zq}$tKQe=RH2OvM?%Yr{^)@`)u1punC`~Qec{sjG;{>@EG5DwA-A5EZw7ld|3GhBcx zH(cI5G0Tv8e#-c6Cer`^pZg7z7WI8oRIb>(C8O*=gAHWBUljl zOgY7-$@yzCivzuhg6-mpz3r($L&S!46rM8Jl&(XDk*S~(f|X@x2GL9c_LCRpFKR1{ zelTsXm??APqDH)4y`qMb0Ek8BTmEM9jq3dx%oGrD8sAy5Bwod{5QL}XAu@ry zFNm7VWza!x$9bRx`J{#bbDt%ly1+Tw^aB8>Zbss1pX}Zsg<#l&SiEO<--dw9NRXiM zRKVz)4F`9KffBER21-;T6{8Gzu%NwCFA^nLupk^P0!?yv6`;;I4j6JqJSy%W1f=1$ zoskTKW}U&X&Nv2m&)85K3cx?(b`b0WzUUUZhGINU3Pzcn;158JD!(C!i9p-&q-ueg zO5lR`1NcS_m~4y{!hLdK*I))%fes}I!3#nr1Mw|oSZ-5v};DYu8`QVNT4MLX*kRR`67sO--(;qJ))j)?J4DdklQ&1rXCaBY4 zOp%55r$n8^rj2q-B1{7|pwHcg7)=m@_VcTwhN$BoTZEYa@5BjGV+S@IFGHlPjn(XM zvNR^maihq^mu}c3)LdC&}(9ljiI9n21JMqx#4C|CczLjgS_HX`1mp+lZp{^N2>nOG=q;PCCU-d1Hr>9 zCfuNK6kRVy_%Fk+&4ob0rWos5n$6RR7OM?Qe!e&Q6b0IXa1HfeFCTz@U|*ypqLjbI z*;ka5G9_F9pe8aO3t$q!Oc6O3$8ytg$sxq z%*D(1bh_%VH!c8%tY$#3wcy_w{$HUW7@>cAGp?cH<2R+J9c`R{=DwtO;Woq#P*gY4 zY(hL!+=8KXMLp&^HKk0554m%DEDT|5y%v%ta~-tk0qk_~W`BPUj!ejiVA&QigWx(v ze?q)B0NG5D2Nbgfaw4HVk8%@KfBa4`ESSu3I=9&u{r^7!072fMw0F6-f8we@>Wp!{ z0E9n}zJwYO`s1*RzX&S7vEDM{zvaMQlJWn_r!+Seh(G~%{v@dYKWeDozv=_#n1oVa z7#n@ufXS^opMPJ3)y@L~LT=g++-|K8l>npc{i9k!lKtV6Dlw>wg8;xC)C!QsNyalw zn=pw1FQ_6In($$Fs!V4+#a>_bEmbPs+J~e3FD4L8k5=QSJ|ial?0S};v!86UPmgSr z)Qm_nFGc*;VO*d_44KDrE{?gYG9?Tjnf4dLaRbaWL#%Ai2X$YnfBxIn6odxE81Ewm z092U-IV2&4{cFE6bH_mvr-ro@{DU0Z6@?8sn(<8;!2*HsCR{oy-hoH`?zli{U>PIo5qwy1fgolw|LQtXOL@ z;n5{!?@LMl09w2oh3!TUZH$OTFZ$_!O8~p~8;ndeUSsbj_)urmu@w0Ey9W49Q8sPy zYN9nBOb1H0uW82}2uFcv;jBVR!B9%rvDv`!IeUO^b@|H>qTR|oW#aie6Rt)}3%w68$JP)3V~$7VXlPPrE%+8! zbr@E=a3)j9D|5vqc@`4JqQ#i6z_A&t-Y(L)e@uw5eM=#sK=4m<17tjeV45CbXE4ZU z5{FV^hwb%*hPw&$3^+ITpN~bp#MmU#!JzGbl;o!<(6J+e!r8Zi%min<>U!j9_ukXt_#}NGgsNxjanOiNfq)i& z#~a`Po1teVpLQ8G|4^O8-%uLy9xbA?Xj>!sRT!#5#$fOvX@$z-Yh^{Uig_l^Q55uF zG{n6M=(^6H>(Pk_TooOb1(@%}e$>dEXyQQV&|#dktFt)B$8BC#VkeU(J0A|L$*HHj zBzb5n4`~Xn9gmk+z4uaSVC<2_|L1ry-uJNh0c;x;%lvOu6v1fBukF0XI!-`j8xRcB z@!V=)8M=^nB$TjYG$(OYMu8DZtgNohqCp1^C$42hrhfV<;}nTWGM5VjyOwWG!KES#ob9)av`waE{by{sn^A zSs(;`JVKH^X6+bGKk6$c4Bww3S7% zH=M;i^wKF?DJT(q;)ikfRGZ$*lMpIy!q^gb z;y!Lc(>}n@dqHRhtMy*^a?rO6vY5vN*xTuJ2u){8D-TFu#Gl15fchp09MP-b_d^d; z>$&oIy|J}BmZKv~k1Xxk5MMT_3f)yg?HB$+W#7;Ja7GmZ``5E1Z#N3iKg-F%nU5JR zG2}rx5Rq`)?7++ntn4Tik6v|Nk~kq{=|*WjU0&RevY&74KAndYfA^|Li%dsv=gkQEB>+JV6v+beBx8kqObsHO|F>PoI_lCpRq(PyGjlEo< z#v0$(J6VtsVP0POPi5P?94uxsR!7ndPQOwRD^Onw{?3*^pWpzD>SlwX1z#7&4_W~D zK7r)XiUjy3MBz>F;Ns{)zcW$OE~0miNpTu8G;yNZp5m@?KV`&P^8j%+E5i#@=f0f- ztq6K+rDqwAhr4_KDH}m-!7MFR-`edDLR?ns!#@n}?ftX5_2Y*amylGS$LRdMr6X$l zyKuWJ;Pfp+lDAWjE`3@=e}MK`lhq^Owa9JwbfoC^ zp&B!+EJpxLUT$dNB?gcn{`&S-1tU8NRFn(n``P>=x9UMUDIk%|ly10FDyFs?Q1x=A z(IUw=%s@C51fp~#!tYLBb~k%C0Ji_)ojGucrnA&HLbP0z-=V590Q(n@I9}(id)Ey( zFNfQuoZr*jn0Vv_&}j85%pcnPd%o;HRw>pRJR#rCnV)dkoGc>jsLSVS8EtI462x8l zRWOJXU4TAU_}}jmPHm7|XBFPdv1;f9gDOGqSK>58P>jmsnWV-|EaHKA)iIPpq!xj? zIIV&))%Q3LkI}#Pqejc$j;!1F04V-x><88pe^#3OPb;H@OkX8Kb+uSh4=iW+ChN1J zOB=2;@Wi$TTQ*bVXY#*qZ7!mM9a7;Pl_61tu|pymB9Z z0rr~R-w^rx)p+(H&VHIrzT+q0r?vDR8gOYTph1R#4{Rg#RCq+HCxwSK0RxbMx{3^` zCUE9=8e>TJQ5MPHt=#33*13Dg_q4u~P_q$}+}5jrzzrs69hbhK2jy6=1;aG$4#(sX z{^CM!y3Y{ptqY~F_r=HSppsEW&zmleAMW-C5;fqGRIt6r1_r6F8V3af`+y z*Pp|eW?$SK#5FinQ>RlTI(5!$P4^<@1q!{_)PwPP=@|DdJ0V#^YK>?V zPNA*Hz56WO_H>>A$J`$ib8ju@rIeJ=z>;C>l8Ud4X0Fl3*r2v5kUmy%VegzO#uDw2 zyG`(}rxEzV!4F6urS!qXj2W2^X#Re=wx()ZgV7PG9e@m6@g|04tpbrvrik_l@NbYae%?lObW& zf?4Xs$DXJvK=UDOYTf1Af1@MbG9YM0j$FjWZjT|~ z_g^WrA4y|&Ek7AVxkxEaM)R4usJ3PJO#&7M4ICk5RT^K7HOAcRLvv1wHU`dbyE{ER zTzdp&c={g5i1%k;PhbtoQfcIpb^66ddg$hEKK2F*R(?Zg_)Ut#Ix)#`t<+}3`hlPrwy0ZY~JHk{+JNeGu6uF=1x{=xnYz+ z4SsUNdcQC21m4Y4EPupEu$xLlWIUBY<7rpX9&lmN5ts5^Z+dR`cm^vGs5zv^y z%X$2}0aLRSluJIK91rzxOE!ph%SfIpv%|wxqUSoAA`oUwqMU1qRESblZiT0_Q9xHM z=~B_E2<5tY=gTVCXI$mm*gXtCsxHjNxp}h?Q)Ezz@pl?{DO39BtELx;KqbE~(*5(3 zeY|fVUti|n2UU~}S|o;?mHVGz3Zd%nnI2`9v;R5UpcnB%J*&;j6=O^_Q?qAP=_$x+ zvS|I)qqwg0_TRK$chK=1+OC`PRlCE6IN}7r--$Sum%}^-?65Kb3k@$u3rsGQ<<--6 zradhaRuB(lv;1j7p-SRNQzdBrxgzK`5uNW*k{TKH59N?iV4ekfK+$wSJk%W53`gfw zB}D^G?LL|_{q0&cldD~E_s@d4PtT53sq=B=?6@Ml=Gm+_HczE9L-VpYSkYQ3c0qVo zCh>uv1$6%Ft)U^156S`MYa$mvmlD-Wr;)`=gz!QhT$b-oTdlfD?5zj!kuk(U2_G^> zXRiUVC{&(>^ey!paxGuWVpL8%YxDT1iQrhDo(+hR((lf6bLkOrSc*2ne&@?7Zl|}v zeJGMa{8M{iDdm zC%y}ksss^&*SXJ{Y)2(@>yl!|Qm|n8+QWIb%S>qxu#>_h4lUEoaHs5vmFyeT0~A!z zo5#tF`0FK*VX${2uPtg>?MfUZ60_;c;|vvfE3}@Z%qpwBwftTzk+PUC%iEv{x)Eh- zUDl#+0Zn!P-EeA=P?`VzFQ>T?p7EP@ZwbR0R|4@{*3a}ceN_(wDiJqRtq=vS(j_;I zBZUQBDa6h~(^hZkq#!}Ji9NotM6glR{+|H4JeTEykNZ!M z+!`9D@O_x2$loAiG=1?)^sn6*Y;+O`*p;*IW236?SwSAoTK3(X>{C*#0g|WUrKd0Q z&IKGfu&2|8iP3P?Q&ksbS8MM{eG-3AQO)>|oSYSMiL_8}7q}O*Oms)|Ij9gxUc0>% zS6$gYa~Ar8MbmvBw50Kizi3RZ*yfO^0QT-tzN)jB1$U1D%CsVR>b= zeok%JP7v<~cM|+co&^d=Y0Qwx$Va!8IgZoUV%6Rp$HU+72GL$az{I@qCv0Z= z!F=EA{t1SXi28XIyk4Qb+?fyvtpx!j%1BdjRCtSbtT$YocT5v1y=%k2oAqiQmr3Gc z1`{VBx%ib@Wp}k4HAnq7S!7cQV9Gt0>m(Sq?pVa9^nCML`s@ix0|!|9{eI%XP67p0 z2>V_;>i{$JRF#j8v<%o%QXb|^ntCyfF&Le~5LuYS#e(=&96ZMiIv(D`snSfm(ltaR zM3W7&5pOOpAtrIh@jI2*;>&?4@?DUu93?EKJ03czq{%I!aytM3EKi?~eH!EdFaWt% zpZSey!jB;JBpC=~siKs(0iZlf*c<_hz?%oo6>K}=J?pzvRQbh}Lj+$MmUbOn ziMxHncw$Kus?+C~kQ@I#I6s3&>aBg@9MPc&v&%GV5Iz6NjbV}B8XXwom?|%bCTURB{ zsw1bwxrjPxFz9VPqDUfnY>6^PswQ{L!>|0R?F==w+*A;4lv;wZzRANr_wX9*5WZER zYAOx!^(IUkGXX?LQ$iJexmPL@3j_#0&|~}`?7e4v9QD2b`<|YSnwSBukci z#oZVi(?STCn#u|P5Yiw7QcjYSljIyi5=eoBL+B-7z&2o8?nSbCUum_{_THxK%r$krA_ZzY9(dx>)p!!%COfhbEegPwWlrkuvVEo2SozJ%7zAuRV87L zQ)$KeKt5G>zSKFVHcbf`IRiqBb&$M5EXsRzH4+tB0N@I}CTUv-*}C(sK(D0jp`Cq| zBLx@eiv4Npe$*Gqn4=|@lMr4hGw*pMXZ3Mg-<5P6Ge=}nNUc60ZSNK|x2I1`ZEval z`cKY)a%kJ6V$PYcBB018Hp5_AC#J&S?aNerA3zUizQH%*1txONT^N%S} zmO*Nax4fy!J|j8k`u@;E?9MuQ4#6t&0~Lz%NV(4ARAgY*gb?(yPid1i9skAyA|uBF zm}i0P%$F~ar5OtWfP+ox%bL-99&{glJZU^zNCRC-|5EpP6tW|NK8d95#zEuCuoC z&~a3s%_`F3LrM_9qo7q_&(^j`T~w~F#P+s!VKf9Sgi0`w*c0D;c3o22wEKyKjVO3P za0M&ERHPK1Zfn_ni4Q3oZJjV~bqAZOBp+wY7w6NLAGq)3FljowA)I=9dgsQ^U~=_p zZBBu$KY{m0s`=G^nG<#Rk-S7LX>tcb%Vi3LcbRoCBCd1cP_O`34CfjyToZCg@j*r*vTqSwt{Dfz&X0jX7T+o2cC=_9><&rR6YR^uooWkPcuV%at#TAb0@)0H)Ti zZ|yxL)isPVy$L^jB_MMzaPxm@?~$=?~f7GrCQyW!_7;cVwAr9O4P2 zsVOr9Ak^Zu50y1iT;##}<& z@*h06@(`6VncTH`{dAH`pldxV@y_H_Mi-IWl@U?(`M7GVY*k3Fpe89?nb&5r2T!{* z8qy9_OtLvxaDlGKVb`%0Nf}VDP1K59L)Gue3W~krZcr3ez2tRL&bL0!ie@D|GA9rD1shvanMj*JcUi<(V%= zCiz5|mPr~5LGYD1{+)Z@-ca)r3^-w|{J^Kr767;!p|JP&ch=t`EMM-5+0}URlcKyt zG1YOAdM!awZ)~m}*{%CWK{?VIb2q@SFNfwGRkR3{Ba&<f_7Q0vAHE>!*}{ z?w-E#IdaZt&W9D=sZ}l)o2ql0Wl}h_FJUhhk^z#gV>J#a` zJY8!2=q8HRid3G%yuL=JWh)aSjDf&Z3ZNT!?Jdonh^W zWZE)jR`5tJmlf8$!YqKU74ZUiGYUR`bKx+-oElXx(nN7l4G z*w``Gj-Q)x)Vf6^bipTh$48ai=iItK)Mxwlgp8Ugl9CVYKXaiHo0n3M^54OS+x4je*`;8ToP@Q5~w|SS<0$osIKQd7iWeQUWU?EcO(J@v>#I=13wGg zx=ln0@mlpR7c79cv;bTn+A$$9yt%1$tOJe;vYm${gB9t5Sg%?(C`PHDoyBwc$D0mC z)*r$5p7gQd+8XhSaQ0(PW7>qCt4tM_&Qe$c7?JzVOMM2>)E|B%IK`!Z0%#lo9R1gb zR-J+9J=0J~gI=577 zafZSRy+Bu{PT&5G_4|6WPmZ+sSS$Ej4ZWvabA@h*s~HL4oQ8Nd4=^@ctYokgIYV1z zzr`!h;bk>rRl#h;+Tg2VVgO^dXwEwSLuvX~Dmi%@KOIabu?`LZq}db{+M%!1$+z;) zkm4USXM)9}!=|I%{r40ifU9Z*fZ?ODgI~InXKn01#DrT9$c60a%iehDp;LZo)Fz7k zd7^k?Y&fO+zTIH+3-7#1wDa~#C4gP&5ceLI5_x|LUnt4n1@Jr0R)F-=?x$GEvhJPl z;~)Z;)mJb8SJ?_s6fXZVAO0RZ`_{>)U&$U1ivk^rf9Ps@H63=j|Fzd0m5Wj2-GO$6 zCV!s!$*eBOVI&Dr{XKy|h5;xH$GwsRoKChY;H@pcqC+VaDxE5?Ir_*#TgJICyQD!S z2fg=&nWaOTiaE*?MCEfNN?8a&j3UQa1pge*p{ta&2h<0Buv-SY99*U;uDfXzE`W zK`;UeT~(a|=JChg2uVZR4~bqy<_v{e7+kA;N;m)osTAOx1`x133;>XK&VwcjISxC{ z|3}yi3vyh?g0KLN-@Lk2Gr&TmVkQV0{S>zR_-s$X0$kg)(0>UW7XbhTxQP0j%E5wt zF!6%;E#(#Gt$qUrqnIffXB#u)@YkAx4|Hwqz<*)z@Bbv|fBzAHfrUJ&X+g}ch~AH~ zV=M-&9^BY&DcLZsH&#MH|9^)X8S|fFr~l(eW`WNsLl?vZ%gQx=j3h}W#wgdrpeBh% zXTsjXrI^B58WsQt9>Z7+SeYDSdtL|k97&%0qoMHf3TH`J01)$<7wT2G3=dHTp~f^# zn@QEHB^p&pl!g*nlMvlIXTKut9Pw?#Z1AdrsSC52tSwzpazi|2@f7gRV)!3Cmu ze|bYTpQ;9vCk;7l?MYQso-h?Mp@p*~EC9}H4&UL3rqCoAH_7sjp_wgxD@E4-^*UR4 zfrYaaEC9GW;gGup$xCl$r(@GP$?1|l)65sD3Sn^JECm1O^O0~ zQj2a5V|;9Bn*f60IGOW?6^KtL*Z^3xS0Vujy0hnwUG7YOM=)DHMq?sitFRS{ukO{V3rtpFlSiD&v0QPL(nvC(;o)K z%TI8D5dC_tpykEv0s%*gcN`9yL!vysew3msC$?Sa<6_KG{QPsasyA-R zhKgrL+L%cHB}9)-7ZSpYItGB5-fya6s<)z&WgNRN^H#pGWpc}@s^nKqOD+l^fL5+M z`|9UE?AD&9MI~9WL4tt@FNk>&#{j?pB^MjwbV(*WAVOX=v*>WtVJuF6l~hQnr6zy8 zC`j0-VQ721_{ItWDWr31rp}8$`N~=VM59ZgxqP zg9)IEs@}XDI#~VuB(FasD(-aE&*^2F`T0U;;GzaV%*V#>l~1rFn+)DFowgW^)6~kF zhlZG7U~DLlp%zB3@bw(yL#7uLOXXq=K`YBnH_AKyt($4i19CEXDwIrx zWN)vVDC*SH{oN+KgEA3^8|9mo{p7# ze*d|yGh*e*9Ygx$+P5$xnT}$jmP=WB@hzs1F1xGr)kxJq8sl&V%I}}=e7i$(QWsFy zYJ5q?qtb1X`HgfWy?yRO#@%wV0Kg�C1lAu=TjGJ(Q97+b}x9AeJ3Hq8b#t>C&h< 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 literal 0 HcmV?d00001 diff --git a/.agent/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-seasonal-moodboard.webp b/.agent/skills/impeccable/scripts/picker/assets/brand/placeholders/hanazono-seasonal-moodboard.webp new file mode 100644 index 0000000000000000000000000000000000000000..41df02250162da7e1837cc3687f799ae7a66142b GIT binary patch literal 41660 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 literal 0 HcmV?d00001 diff --git a/.agent/skills/impeccable/scripts/picker/assets/color/color-palette-foil.png b/.agent/skills/impeccable/scripts/picker/assets/color/color-palette-foil.png new file mode 100644 index 0000000000000000000000000000000000000000..6646d533dfcca76c885e1b802b23d2299abd5e1f GIT binary patch literal 10064 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 nVxgG-AM%p_X;I$dKVTsiGhu=Vhs^IKw@Bf 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 I>UOdJ2l6i6kpKVy literal 0 HcmV?d00001 diff --git a/.agent/skills/impeccable/scripts/picker/assets/components/hanazono-ikebana-card.jpg b/.agent/skills/impeccable/scripts/picker/assets/components/hanazono-ikebana-card.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ea92422008062e1ca772dec91b5e4695299fb156 GIT binary patch literal 73550 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 GfB)HHZj)jF literal 0 HcmV?d00001 diff --git a/.agent/skills/impeccable/scripts/picker/assets/hero-dark.jpg b/.agent/skills/impeccable/scripts/picker/assets/hero-dark.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1bfecfefa5d18e2a76945b3ddf763d84f1dd5ad7 GIT binary patch literal 307182 zcmbTddpy(c|3ChmjUmms$efy-DmlgGIQ7agXGKye!c=UQ(}bZ^S~JJQ%zBw)Aw@`v z9Oe*{2{|)a2stGZ-@V_T-}n2w-F|=le!s_Vd+vGL^*lYU>v~?-<8i;=uf3tYNkGij z(#8@1fdIgo_W|~%fU{>JFn$1FZx3h!03Zl}?qdK5Z;y8faESK>05BZ{fO)^5|NKYi z``@Jk03H0l_y2PO?`n$x(kUSLb}&957^|eGr41lY+1Nw=r|^IFkNo#Qv3_~d*JR)o zWR575_2c)cn7u|oTo3{X0ASEzfKMC*76Vj0r7z$`~pxxA>n2f2W4ar9Z^+N*U;2IX<&#%8J+&;jHQ*ejjgNOx%2KG7d(A@ulxB2U;^>CL&L%& zA_)n1?}2tIz*&i?{tB&;B2NiSzv8gFwI#=zshI z@rD1#ad8O0vW|d+g){UjPV%sBoS@XHlxLMqLI^#VpVHStJ_{dE(Vsf9@*mg!>)HQ1 z$KwBgdG>!C`@j7f0Zs#a|1}67A4C8Gfd~i+@Jvux@INLjBK%(y`M(VIUlaR}N&Fw% z<6VT;pkRIozaRu6D7k;%e#!sOwl~J>mfm~AfCw1G>r7yAz#Q0-8%u6LZ#nA2C$mA% zm7V}3$$_WwdQ84_h5Q0l)TlieM$Oh1QVG%EqB^8VdaMFKt+OGrh~$@z-z+&TJ#z>+ z&kRH(do)^R`ZPK?)Lu}B`Em6nP!XQ$pY3?r$cYce_{HF$q{czhPv9v7MAc3oGDaKJ zjGwdBMFqMDnxzBzCZ$PXZXx?saT8@g3R++?s{d9OzIA`%b}s;T0t>3lgqUJDLLEhM zG@NZ$a>o4y^uFA&m1S%6RWieAO9h{VX+p9bZ6T0f0@RT1vtyZ@YIUaRcbS0=Y0ZtM zd}3q)m}D4B08(&O*?v;g^#T_s3$>xMCa$3Sa+NdfS7vFU(JujNTu25^x?0bFRcL%F+hgINJ}7^2Ey*X(PU?s2$Se)z@!r- zid|7=OnWqt;fmd|v|g}3LDoyKh8&4&W}m+L(8N`!gK6s)dMzBh8;yBD4I!+#?2MtO z^JiufHW)pk?UDK-l+2OLxwFWgrKg1@OjC>eVAH(iYJ$ZtQDok{MC{jMH z*SKsQmR4UxXTa)ElZv)pBuX0*%5q3&QAz409tl69Hj8ajbw;WI+xxO8MGN~F(SeLB zM=4f)&#*RKxZl0thtRlg>wM@@Cw~=ggLP5w3i?qjLTid$XkMUwCpmH1@tRQk^6&quRa5epTFwcBnz$r3gJ{OWe3Ns%lWV=P8hui-ZU-vGnWic!w{aHQ~Y)T`Q6M>QI=J z?*=RQXQ4PXl-2J9xfjQ}=`y2Wyt$ikaDQr)OFTHnq!--Sd~4ob>my^c6)CdDPTO|N ziArJ4p#^+onVuLgDp?(zmX?-H$xuJ{u<3_+E`YuW7KvOhT_)|!mc0p!TbL*hRJ}A2 zRdgCHrrv`tTm-$c_nfj3#?7r43ocZxpbtEys4r<0`AwGe5M2AO8&p6)Y^@iP78{xR zpaa^iS8CSQ8Cda}6W<)$WL5^NEiGlX8vZze_kjChA<^nGiaL|GPaaAY;*zU1LK0Lc zq6+=M4zyEAWw)v^C(aGtw?t9`qqr&x@6(g;zX{Y{a9ghdIlrW^79C+4YfGpXv(++P z$#&Qmq?Qd}5HjsDj8nRH3L3IoBeZG-%ZSCHYyc0ZM7iDT)fj0iemSWhX9F%--|owo z_-fMUQ~CPj_M5K$7#7= zK@Z^mq}$uKOOF5wK7615#yaj+`yVVU=+KH+26@mdjmRzikCeR6IXVoP_mm#pKY@f0 z{I|{#>5qw1$!dA+=l;E*LY8`*Pr6+Uv$Rui3|<>9YC`Pm5%u&JX?YJQq>qS=&WKa5 zQPj=#Ru<1+$TwF75cDex|5Uao!KWJHxO+ea`azdvhy~L-zZ}zjhy$6r@A;yhY)fvK zKQkiRrC|QRe|8TrTL(zRcZ+9I24C(0hqCBbt3|)XF?C{#&%p5NK8!`RKghR%E5_qPgjHl2Yx z%_9|ifCnMX{rD}_a}snHQAmwajDNNGS1*@T$5REl1ud)0{iU*gDIZHu9Q))b%pYVU zBxxf}KZdU{+nG^kon6Tbd~sentxLph8I*@am?tZ2d|9L|b+{aU{_4t!z)8tLj0$z} z*ALyOew!+0zPt8RQXjI}PHRiRuB|lY^1C1tiRjXPSuNj8`4k1>OXz#u*utYOmvjdP z!d#Vd+lN2Z2@3U~&0C`Po9)}T&-d_kCwG&MH68fmpXk7#Pa~K3?@l~=7V5hPeDGRq zY)9q!R{b=WWm5b=>RSQPeaSzRD?c7zyL{<+pK&njQQC z=>mvhB2;$Kg&NulSP?BTgr7!9E@PERSJl*l<%>a9Cfm*={{dRjH|5%b9=9bEC;qVG zv;Zg#^9kyZ4#XaUn0n@>)adtEFbR%X$piqeMOaJ1&JC6+od?sZmh@J8wK*U3e*!4A zoxd0_3$R@ZCcfU zn$*e~R@62bKI5Ma0A8yY#?i1=FxIsvx>)Wl*@n(P3{~6eyVo(ZVpju5;4Fki`G_j0 zeVMaq88gBHI<+nw71}gWoNOtopU>YA04P2|GMc`l=|U(-$!r=RLbEBZ;YUHuzG&K{ zwE|k7NiaQ|dn0MR1lNbdSeVZ5KB8V6T70MZJH~Jk`Q0?oPX-yJsqL}TPz?I#F%`yd zVn7I$7I&o*qWT^;a^Ss?Tu1oyHHH_(0cYFv;eHVTu;@(~XPk%5XaD`;@mAviM9RRk zNos0chva|Sf_iU=l`LcaLy}}k$2DblM%U1hn9buf_m9OfgQ7ED)Erq=bw6?UX}~ieeAK6FL|=lVZB~2@@wiyEXW(v=>>>#EpaDlxxUP0M$5= zeWWmj4E5D7AsV@`ss5Zxzfl zbP}XFWwOSVRG&V^xXr@Z(@|Vxt4VwpbF64l>09LV)0Z%)KG0{=(GyYJ_3~0tJfSZ` z?tKuUKkqg?lrEs*9eyZ=(?i(Quk%@R4V%nt(g(?@u3GPugz=Ie)Oxpx_Xc;pVA%1p zSvpAeT$|&Sv$39+l3>=H57iDH%KYzdhB5q_8atS8`1xd0o5|@PPs2|*FS~GOyJg26 z!R#`?aQ1Xf-1ctNqH@{d%9Fs9CB3r{pW~bM;6rX7z$w;NrWhtT;kRoI{CY7E zazP-<)m<~3-2YQ2J~k6$4a{sVse=;Hj@{!4sZ^TA3&u%$(dp$e-HV7^j?87QMqn6?{DC_^F5>S z_J9aZW-RTyS+(SWk;b;zLpczN#c1>gmcCB(5VRr?cwy~ix5AWaY#IWcfBAIlExD=@ z-MLAJ`g}9t3=>1@@$51g)OZU!(fm=i0HD5LZ5z7D8QBBMT<$JK$d?Eg8zeAEKj=vr1{-B{+bGsR+ysmeHZ5w*~lK`H0uyrBD3F}>jz zIC2DH;Q6G+SRajaFk`Y0^eF^ul;jrV5UHAF^Ii0EU6HlN<9r~>6?Ab%R^E6I*qEcg z2BfB9SzE1#OGL27E_aHSy`y^hYD_BU+M+c|N5fdF1;$h?=9wz%Nv&8kp^wiJ0XDy9 zEQ1REn16kkZ&h#y?;tFjsJ+ig;OrEm$TK-q=iu`8oxWmQq5 zGgDSbCmT}&AXGZ(yZ9a2aQnS%eUz#5M=O=W8yB-GrDzu)e>VIi_nAP6`PsgF;Y%9H z>)&eqB54hkPg~`?LzH6Y2mgu_8LJ>Q+@{LFom8wlQnts~f1n`MT*FD=7)jp43p0hpra%9OJZqOTH!tJX-lf>FRNHaJxZG$gn<@XkpzFYVFbo|-- zDQwag%893k-pjy!sETW??kO4M=}39w{>7uHX8Etbm|N19O=^%`hpzdqq$`Dh)K;Gd z`IBUNDOX70y!JYGa@eX9q}D(ELUqpT-zfv~_=m@;g127@#mwz{>7(ed{(TBFqM}(U z@>l2lo$ANL2k}Eo?_y*Z&iPr$-BP;0dHAlXd#V*>ISd8I@7ym?`k11;z~1@eO7^|P z1k^rw?Eyv@%)SH8DLcjTj~s>`d#I1F;~g9;PKq6Gi}W++{w#uv$d5dPuMka3Kcbp1 z#-Dn#545lc4A5ntsZ<=Z34Soxc_a~ls+C*Ma3>1P1Q-ALKH-PiCuSfpS@~TX#i~Zf z9frLu7nHeX&RV!Q|DZHp_MZahi|WEtE7Utfe~L)!s{fuJvT6AAfL{A@?C|sFmDf?6 zLW`ZZZWqg!{H+i3hl!}m16;K-&!{YuXE(Gs`azBI6CcNtP4OLNc3GUh?4@S=uO(;n zZ^+aR&mA%gmsFV6jlHX*@GiV0^ibb$a*8QopGw-5$S_M4;X1)e_1zQiTDW*U@h%+` ztTwV_`NR{)(}i{#*9soWQ(huO@Ey#X+h2~NW~#rUCM1`xs~AkxKqcYo{Ot-AI0X3&;I;zjqzeWAkTMZ`K;h!!EG{rQ{he^iCaeUBY7 z9Db#DCkfSoNbMnj`u=@QyAf5PbHHZO`=DNE(7WP=AMZ0p9@)E|Kl8<9EW6uRTlw6l zz{Ud__4GUV_=tjNQ?8Fjy)n}@EB+k*7!Kv(8=Q6fI4QTqzo>#OU7UI7S^xUqgUvts zCgxB3rwNYzDKs}&ia^x;&@}bD#P_lD!tI47d~r0r?dHE${^I;c7IUq z3M}EWAwkXz7CKKul0!zRAq( zXBXu$zroq3#rUD}b1h^kg#abd%!H1GzARW5IL;-+q1icun_%CiL5IGX9^J^ly2&^u z1i@mOOP0|@KG+%kb(BeetxAwdl8Z1Yh1#ooa+6^qS&MV=4(B}{m1?N?7|_9r(n}5k zl5>68(91Y$ZIl$Sd9C@RM7)rT2GcZJW0VFZ06|zi3eIs98dG&OM6^H#n!NVAmv0GJ zwbDP(-m1#VIh^)v4_N4hgz)Jt4-QkrsWWb5ZSAO}AQ?P03CM`X%%oAN{ej3ym$Z)I z0KT)FWnl!uG`b{TWd^G*;)@IfcyqaXa-b7h(GyPruJoi_R4b3E0;vk2Ox2Y@Y}96n zSUgO0YumX>vKBr~M0~v0v>lt~0IW9b=Vi-8fcB0JGZJmw18f0HCtaO9+p~ZCo`i9T zxFj?-L>*)xz%A3B3Tb4MMZ0NLq?8fuFuSJvjxF}9QKmpd`*cW@+tpw3 z^q6Rkc^*WQx3se5TnlXi{_@iA$5~uqLZ9!N{xCU!P8bHRxquok(bE)%OXrQreXQc~4?T6^o18l@2gxF&(e@ z-TV^yUu}IW<`Ymfv~?Z)reB~PM$-sEAE~1Y-tWY*rImWH`^}FI7MzS*ZlXh%!6n_G z^p&PUlE}Sn7i^4koBBS{+kR*xmVrHGQd3KB~!l+HRIcBKm##` zjU*G$0#>KnPzBA%EkY93mAYG{r>F620WF57ra2%HO1we6q?aR)_+^gWR`j!ZFd5>fELF>%Z>VuYGJJwTvFEfU^dT^{Gk+eP_Ax(m#?1U+MMM^ zkEpXX6Cnd^&k_&)FytGvD${uzuW>Q#N9Bx5u(!1uY60DG5ZGyBxL7)J&z|KAqnWlM z4=82Kz^Vkb-w{#zK>(+A{RhT+^xo^n;tm8c08}*7!%hywrU7D+g+Xelow*i3*B+1~ zhx?SFE?La@($>3~$azyeyR@|W6ttw)(mpt+!8{7EULMa9&dX`g=*r81^zs=@nq5vG zRJqe2O28l}=z{h(d%(D4Ts;QVv9J}RnohQK)W55{GC-82;@I+kT;C8!YRzqfER635 z3d&VBv8t8e9;D|q)BXA{=kl^sa%dALq&}jN@|ZZ3d5Z(IOefh-s!whyDa;c4l~uDr z=O1Co^V_ZdBqR*=UnRWcD6CH@%XZKOjH%q30z(LiWB%BVi0?+|Ccll84*=E58)s)k zY&jxJf7rqOSBj3^BMY$tftN^>C8s~>YTNjve>uiNnRs<|n^*VnLx4;<4`0N!5w_i^ zX*F>2`ot3eRy0mLsG>ExtDnsZEEu2b5>SI8`)90z}e4!z@3%s?KmC7W)w8s0Dzv~=vtiKmLE z{lE}+_2OEQ5U6>c)Kjd31<>oUVfrBh(7dUVT))AK^fBdt3V96E60bv}RTb14UqsET z^VRvmC5affN|_$PUALdl$q~}32TNE*o)B%I7D^?pbi>4-czffw_JHlVB>*}19|Uu& zN7TFwjPRBcCtFQfsikxj+>yLDorW>NGcN~#=BjO2vg;*=kBgvu`GAjn<$}w<-glVW zhXBm5rPac&RGyMb=x+L^rhrkDzkYKqoa(#2N$3B#$TEqk8XvKeEeg8zRV~jp$Q>n* z0VzY{MPp;Ts4g$Bt9_C=zA&;e=b%!btk0284*r;E>Yy$9VU6x{!TQe+oUOA(Gv0a0 znL{Ro&*IPmTHkTB(2|0d4zv%l1|6RMSzGmxOulDG%LAc>lAAjvY)ZzH_J4*h%5u zbrHwz-g93bhb^f@fd*HK&%qWOvF46tH)H(*&F~{zXMN8GId{koioLIfIr50>($NF^D{tYOTkQ-3Q=52qU9%07?=_;EqH`I>nGu_Q#0WtU|0#? z&op*TmEv$;j4I8lkaq(9Uva6zgzez_3ZVMK|I))4}nB?fGG;VrY25Z5h#1 z?%W_+)!)hYKe&TC+pgyg1TCPl9V}ZH%O#irU)_M(R-p9@*67w`UU=`kyn7PeZn%h03T4XbC#xi# z_4cPR`X6|n3X{Jt!^!LKRhHyZ;`0%MJAw8oLV~e52n5x85AY-(8LJcfR>#^}c0VUG z+4)sofUryL6+NXavAS9#Pn^lyt-e&V4_+FsfuInQZ*q%E@?SlDc&qFiDR-PU7ATc8 ze^S>r3{Q@Z))`d%OE`8q@0xGD*!ZzOQt1@=vQ0VaBx&88Qa(Ik)jw`?land~8L5%A zKI7(e=|PyN??T6G#0N|iSuQmG*p@%FO4IC}I@P;c@{6Z25RWR#?_?9)+)qc0RlcVAlDS9)x z48^xbD+vp81J(cFY~D^HJ-+Ny)We!Of}*HDMFF>;7I>V*r_vUiOeh9Ht~1p&&i-=I z*9T?(kR*O(qKB;ovTk>x^E)pm^!5e(qA>KVB%e#4Zx^v}LX8d1sujsUKmYlblL3fA zO_Xh9a#^N(fbi!V@&-|PnxC!O-_>qKHgz~T0P=J8b9K~9EIsII-rHI9H|Fs~x?yZNzIu8;-sGE{$)U}JAkI5y4L!O>5)c4&_ zH5fL0l^Qa`Rl%*M5hGue!I*A0o-*FjkdxP#x|DEjsN6Yx0`t?@!7`j}HL5wAkY6a} zFB`)CoE;<0-qEEUuDs=ioU zCeRRW9ckmQqW|6rhm_x6qBr@AipFK)>CU$o(Bl}hy6AJ(pp^LX_-7R0*{DTLVvCv?To4vO;rB-KI(QaBrg5>+nB0S3lq1qpyg}JE_bIgxNA= zp&1u{2&uog{vm?Lx1}XeQ>QySTBvfcM;#@C-*1&}&N6`-C6)6#5e{mEy9x%$8lT*?re;F}#`ZZN+7 z6j}lF^7)?dJQsw?kHn>LTZDVQVbsjo?u>jUg z>$j?xdrMmfp~Ar`E~z2fQMZc+Q?2DOFe3#Ww8U#)k=`MM58N#hPT{waqb@ReVYa$} zLu{GOpgfb^SD>_(&{+6V>6<`w0H5jTB)MuQ9#sgBV=ma1TgWa96II&VtQ^*x$fwwk zR>N^S#RyzGj|7C4$d+JF-|o==0+E=_cn}Eq8N6Yiy{3&W($T~=qc)4TP(K2IX8#ly zCFE{;>GOJ0!m^7HRMWxqJIGSUVbXW~nFl^0#W5%{xX}p=H@qBEHP&*cVb0@v9cQCZ zXDoND7&Lo!e?B>KH~r~HAJZu3#2$dL)f}QjTNmUpO`@ta-RJcM+7cm9UJS;Y6KJ}iAQrdlo@+g8xt8UGJ&v9hqdrn1Jaj>ZUg&O$x1-T<2@WV^MH)aT0Ctq7Ugs+07155b2;y=yh_HthY@bS^F(Lr^SdCWCBhzvp%sr$6gokf_6 zI#jVq@s?+RvrhHiq;0qQU#Sf5O|?888}AN^U{-7`yC}R1+u*Fz`PHSk=J&K`d{bBh z=`U4^XOi^NY81-=oys3o54y-LE{5$)YF>f*c*Kt=C&+wfW4VJdZ2!s1WZaxBNZ#6< zJ8*wOru}O&v4_`%J+Ue7Ki<#nZX*S5Yt$5ywN>t);Dj z+3d2l5WM4%HFHh>mPwv10IgUnIOY(>S+FDd;3kv2M5mg%0cB0pf>UnGqD6`al-rN2=J{gK&Oq~6|S_zN@1QSjbU54eJ(Cyw8v z1S+%9L>J)m*qI1_uYMVH)0ZHblXSC0cqb%d91L>u0Af=Aqqa7k2?O2`fI`QeA8r16;RQB%yAF6GUrUar$XHZ5A_!X zv_mVd>^7XKt6W{<4Mo4OC^hqflRa1)F1zoZ$-y2y2aotSeYlA|U=S^cwG`^sTB}JJ zBv<_qp^~i#?&w+-e?%b`hn9Z2nOoPP$XzKafgf0yvz`QiWvcIPLN)kXvjUIqN4}Yi zoOJOG#aVy)WENs?Tme}_i`>fRJ#2$AI0%a1K`dX7iJAz9$cA4xT4#VK0y*9z$*$DD zm>dB^$;V&K?-}C2nqSpwezQf0Z%la*7p)(pySQY)8OUuAy~%6Qk5B8e#9%tZ6w({R z&_d9UQiT*+Kx)i$!&HD{L| zoD*J+Jm!79%`pfA60(AjX8Ly89bkfgHE){PSahH6SuDkhLV4qbk(RN9B^ssJy1ebW zT{5gkp2_=WFTTW|*qCKO^2(G`PJGfK|J8G0%5`YAC0)q6Cv2S72&T>EC=A3EYKhltbg1Cx z*b3{j86uj`tg$x7Y43@!q3ym8S4ZkX=2ZL23oGBcCq+C>>Ge*(O0k%UKNET&dm@pM zbftP<&IPp$*~f45CoS`iKGzdCk1_MxM>e`G{qfx+3jLNsRfEGpsQd!z^EruGEom=< zlc8fb&aE6MQ?0DQ_`^&C4+!^v-e*g*s#b82=*n zb|qNlr|E9SDbTeq-7ZK3y zJ%cxklr8mk9c}Mib(lI34vP%ZS+KmSB+mdbFLSrQ6fYHy5lioU$dT7IYxsVob3{BV z=NP+0Mz&*pXU?O8c-_U|@8|Dk@2j3=E?$p3@~IA@G3k>#%7uqXS$aK}3x4|KXX7vV z@3oPc<%bhzwFh)6SMxEdw`!TDBjMe<9h?e6qD;B(y(MQrJo&dc%fTpxTu6ny5b;6a zAaSF=+F3qZ=j-h;2$8nNd(A1z#t(WTWBGSqprPNd<;4(i!_Qhb@nYZ>2+fgEygXZeNw!zN#@aA_7zJLJ zw=~zY%25sbDh|~G|9dpkCwDAjW__9U`&`>&lZlhkJ~Af$blDyo^IWSU{^aYeOm!#% zsRrK#n@A44J$~9cJ3waQRkKv1?mvz_jgs+ziQ01mp+)=Gx!*r=U%oVa_HQkDTEFQ+ zK1`gfM^qF+oA|@0-wGD6$9{E^JWA9X7sm#ZcWVfhMFG=GU!Emiw@!(2iOG%;B)Im48MD4ndkd4jQ)0#Ko1_K{ZtGN!7wJbowcs2i} z39YuIY;kGkA1mF%*3ZB~&`hYxQiqIMd2ghOyU+2mDyObnBAt@<^_4c6on>MfY4MD#ymgO2 zO!X1!8R=>n;n;ku*{PX*sTZ$-21A~hkR*vWByRZSruKXnX{MO84VTKHlxB#~bJGnP zsq@{p%1=YJZ&f}1e7wWWTssAy8OE~ohMkH0-Put>&*qiLk%4=$8D{|mqt~1+ z)`J)Cj0QZf-%Ahs+{8V&b{&|VKHuIP+5rY9{luG``5uKDyI9KpeCOAe-f-hp-rLIE zA3WN#BHEJc+Oms$JNQnv$a4sz)9KkWFs-clv84Xy3*F|PV=;cMgy8$CzmuO2x0X)K z2SaKMLo96tr*#FJbY-8$cv~aA5>hVL1Wz5chki87^M6UZ*!4yXJ$_-8a{oHo(()@f&AI9^^>)#n@uxfqz|%!rK@QIvwx@^N!g7QPSH3Z6H&*+LX`ID7xTF5Fxv^kc=BZp;aYy&b}yeHv>XHNqA+Rw3bkP9I0=hK@2kzD zP(f%PlJGgN6Huvo8?XP6A@=XMg;D)kCQuW@28sYH0fU>R_-;~Y~uC%*$-?w26D^>+%12bV>2Y67v1D1=mRlOs5r(#g2f5dDW2SO+Wp zxx2n-(R7+h;C|rRkJP;~KNOp$<^^}*J6?nWuN0M!GuDfcOxc;+d%)p;xv8TBCvX>6 z>F==LQc`nrzYB*{DYKYucFh8@QV2M}EZWr9^hi!atWWz-;(7?Zkk(aQX7<4&wc9R} zM4_GUGdp9zG*RWee90%FJL2n`#k*eOeN+ns1e6W%f=t^$o@&{32xv*5x(JXI34rJ+ z=1!nqZ3P_f2-B%A*6)*{fy`|IABpG^k2)~LEInZs#qta(mxBd>z6wtm1`{w4An>|U zDpVo8j~LPrt%nwBl1rA7a1bTz!&ikC(%!9a_ky!BSw*YGk91IrE)|fp#`SI)h?wK$ zexOufY~&TDyhW#pvs(0iswQ^IdZwatGPy_}$cdYzik1hWWwaKDr0$jrpHOsl(MoxLF+qW9lm1jf7+uKGB{9px5^MZ3n*XGOg%iP*D1v1s z7l6FMm7EFv7oSAC2eRGbni}Ob=9}wgDJ>m0`E(t(c1ps%GY~1ur^UVw8RU6tgC^Nx z+9Ul@)A@7#q025X8)02g@tA9nO*?l1Epf}G-iAw;pPRtK#c5f^=bqFAx8-IcjxxWY zMUQz%XafsY<46Rmkh(Opb~=};pbqL3GImpl*6>huux2>d%dI4rSvLY6FkW5`V{fv| z`j>K1bRD&nw7Kj65k?%3%(;#g-hFqCVpUI_EgF^yoz5O&b^nf~_JR$xj5zYfy#lQ1 z-KrOjI!(+P&qpYT0*xyL{H^FLGW(0%b^~+*EYJp~c|`Hq>^e zv&U@1HcP^aev)R`ktpX)t3Nz8eY+TRU&Q7+Fr9&Q;>Kh4N#-`oY!-==J$Tyei%LG_ zrh$4a)x7=<<~l=mSHhe%Ks<=}eIMMQ>Mk2Z?>o^68;?EYhwe~YW9VX=$oS;)0G67m z=$yTa$FkZmEj(o*338HgykoId=hEpQa9)|odXouT9v(ikeT}G4tB6-&C-z#SiY>Wn zrlx^TOgP*X^o?w3lzchwFF|lDS(~J|v`*JzQ~OdG8DmvZPM~>EqkKu{Id?4Zmq!-l zq>A>0@EgM%rrH@gf092rK=Il4@@{yqICyJ^5Zo-1PwlY9rk6mh(_66{b6LtYS1qGr zY3b`;8-Mak*7IXgOnH)f+Hyp9YnuvJArL3KV?m^SBg@Hwg}tYZMUdLJ}8x6-6s=4$8_@628arZPo5SNX?sQ!hZEz(wP%bSO(uWw@{uoh61UDJ z8sn|6yj&d2z6LnD=qz+2b3f_Y&|iC}ecXH{PUPQ8raXTy~CD= z@7Z@+h05}j!u{>(#@EcBCIhg-jLu2|)8UEJ`veDeZ#O>laO)wF>$yF>?P*NjRh@S~bK94m?*H~7VvQ=k`F6e4u3({yfyusiH*A32QGDiCcxuEB z^PXPqmYO-DQpT?h$2@fdsO$j0T$sC{g|V5q{yW?FNa44ecaOO7WY(T8FFM4{SX3B;n-Q+y?$gNJFzx1HbE=W7v)fLp zSI{Pz=Vd9A;cFE?>Yush~6%I3JYqBdAg8&f6)xBg;$7Z=T-z?X*}omG399dcrDW0 zDYopQWF%=;bd2N;5AsGW&j(cB59?5)tz!NO7n#tUvXV!wFGbILTsnOI99S1?6{^Jj zhMJ^htrrjQi__N>Arjxx$x#5lCpxe((Ol($jU~%C*`dL_Xsw{&?#N-kFzkhgS99x3 z8|um~-nI-)92M~Yv*RtojmHnZxp9(S`xqx{vhh7)!+dbPEE;v`LpLv@T6dpFoi70?zSZ)*)Im-4+VE+Y*LZT?U1A~pTB9j5BQxb= z3d`k+8cC9**p>9d#C-b0Z_C@w&*w5X&kyImoA14JRrMiO=u)Nihojt#upVP!X6=W5 z9sy{!G#iOOmTdCllc7nE%?S;)%#Ct_Zb-)46YqJz$5WY%&hpLRH<^cDCtkR8r%hy( zsBN^iT1x)SlNL|Bd*sAkRALXflTi;dI3SB-7ENl#NgVR~>JIrEE;cEjj-E)p$hFjD zQFmHGIhBi-_%jw;`wX`aONn?aKT+b~nwlVKL+hqTF;y8OC?8qF$`3^sVliIKTM|qD z%D{Y%4JziH=JvX@RtbG*;-bF65&2a2NrF0(X^!Q9Y4&zzudkX`9b^$oq6xla59zZw z&wuKKW#U0&g8@ANH+%W^$>wL=hCGv$hw~vB&P2Wlw$SE>^ zaC`9cvGwoc#}9YfO+{Uoy-+Uy^YVpJ3dA{$D77eKy3lv$%Jhl*!-n_PD@5jM7GC6f zHr)!|X}^4<__Ae}jW9*nBH(qo{DAF7Zvqy`*ag@>ab4?&)YF4Jtjq2kiHK&)z}3z-0STL;1Dq zKO!h+UjO-)IDJ9P+ourk;i+$S(B7!|bjUI1U7M#n%&$`5W6$9?JuMJidCE=%l+t@xGx%FfJDdQ+1rc0oLW zC+TQya`!E=nitLH~A(nZ1>#l z)N})eZ!M)2tRN8M-0OlG#s={6ajCm;oond*$4�bl*Gz8i44`p>HwM(D#sS2g`&T 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%0AG&AsOIqEC(jO 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�CN^9u1^FVzfAM`(x@dEmg(w$&lMXwqYl9S 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 tior&olsxR~XJQP4hYRAD90CUYh*p29Zg} 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�gTKBVMQ1^)m!rjX6k*QGoR9Otb7fB(|_B-j}9)4e=kbJCr;Reo-LzxwoK zH-5Eb0XR}eQSVF`4f6G;7RMj000MUBIiLox0OQt_^~vk}>QY;+Mm}G?j8HMmc->K) zF~9@TrEP?60~!ASKb13$*iH|<03w1;0mth~PUY*tpyf#!IPNJKi0{Xx04ZOWIqCj! zP2Mw;$F&UHjCG*rJp8l>QpJuJpXp8{i8IoZ4~^M0bCOih1jK^b^yp~k1c8cZJ&)d{ z$sDg3_n>1AS+b`BnYU@cJXFPBZ#0-2uqY6vvEL$^cJi&>;!Q$EU3(csb|jX;%k3&mORbiEtT9) zIqU09&IcLK)|_8Fo=D=6m;s!7b)W=n0fEQ8Ia}rpo`V$4pa3()C}4T+r-}fWk{2Y? zw-R!vbuhP8UzGlJ7-C!GGy!3^jtM^FwL2l0jNtlqq*P+1)9#K5KjBiz=;!6@sbJu06$84I79cdQF*M#r~d$3{{XE{+G8M&eMJH#k*5%piSn$$nMuZW z=NRUTc|`O15%A=28?WK(?N5d%nr|xTl|p`I10;LnJdavisI8axP+~%l#JsLCoM0bb zwJ*qN+}4ej$QE_p`-V3k-I2~ij;B31BBL@G+i_4BWri4mk8Zqr1I;=0R+iapJgC-1 zV*YnNWBMt{+sCk|VtHjI0CuZ_PT~OLCqGZ6WV^__bVZB_86}qtxFGX@eZd_%=cP03 z?GtBf65n^8r=QRI(`{Ki%&`PFq5VG^v&0g9^ld#?)REJi^!{~w6S)+2xL1-)lDWq{ z{d)B4Pn;XIghv`GkCloNSh2~=0(i%KaaLrI%AdVEq%v{_e?8vkpr+f%_IICZMERpQ zE1tc0BvkGvrsde6nXDRgW?OWBERsRYgdPArKMs|4Tdk%zt{Zy6lnw?l*Y9Jx{{VX? zpnzVP4toyua%mcS@)~ATl|d>9*vOgb(T-vK=cO)P04D*10KIXMxlKOc*(-dUnZrVr66lVh@@sG~3 zW44XmE+^d@2?%!_4U*1^5@#LqP4rZ znmsBtO5bB}7>)8x@$kWF%ChT=1x8;2u3 z4^=+7{AzBxgs#35qQBDh4LT3Eo0Xn;*dr;xBdFj5jk)93chb47S}iO4PUu-m+h!|{ zF^3~8K4No&l>~APZ0dd@y}W{Zy;eq)?jw7U0BjzN2+tiq+N-x3j)Q5WzuMiS)KX+e zifE1+8Ig+JHiJjeG{~de-(#2% zy%e>}p1B}&`^TkaXkI7(0ELIBCx!H_IV~@yMS!)vg~z;9qXR=0{_ zy13Ca8!bLUBbLTiZHMmG~~=<*P$$Af46E?&8X_5s(Yy;D$UBJt)*9g5p-5CrM@6V+g8aF)D(ka(-Q)cj`~I zX-lFQtRnK6ES=}_WO-j=E=S6|AGl6QIQ6F7rS*)Lvt8JPjK&krMrC+NE&IsJ;27k_ z3iH>kcgj(O?R|S`7KrA6-g1Q;Ta!bh~xTljcNrAf1E|a0$UYe5^Pbt;qDr zZfynK-|u5{u}p|hm}{ub47;!FG0)NVvfmnh1~D%=vs2_AlE)i49`^ApA^(7Y?7TG+)M z&6I|4?TF(5qluUt=c=etjoqu~F}aoRCwJwt{=HABz~xGuR8m*(yFBTRpaZqD^Eo9(YQC%CzYwp8bv-LziEZZ7qG_jz+yD@at4Fl{ z_jW3}a~K^u?iEYKHhPY+sLpJEe{mVWjR4)ae2jLlE*m@_Voi7Ylj^g0 z8$$atMJ1)8TtyVIh1~9BEW$_5_hmR-922;0u0zBcKg17)UL(_W;cqRC{Hf>JHwwtD zyccyXl*UiW;Bn7t?fT_8N19T+-R<)4`kr6Z>Z+WOji8>t@D8U-(BDOQ^{oUc)7kul zo>m+Pljj7NVgPb-yp6r9*E|WXU9Pg$`hm5+hW0n}W09f(Wl-iXv$)-{nYc`h6OczW z^Zmbu^$jfAY5Jb>w_|*1FDlXujl<^TH@|MR=y7;cQt+;~_8+pno%}<2^2kB~405<) z823S6DT!)VZdYg4QND>I)ioP`6YCaDXKQTMme+!2I+f&6i%4f6`H-*+`;;I7hR)dl zDZw?z=sq95@xOzvF6PxO=kpyQnib2+ij2WN&=+F)d;lcD!i;9S-CtVxH=$^E5?eLj ziKV;!%+czE*~294Ni(y?+nPwe>Ca#ddDfGzcm<>W!`2PWx=jd@d+j`ydC4rwmoQFn z$c!+p8v;jTTr}^<`6Fk2?c0Ap_&+;z%FW(P^Tcg4Mbs{At>7Ahg6SA8$r#SyLg3|x z_dV;V(tJ&E;XO{%UAsf5ypS771;maGuEyOImh&klC0r4X<0BQL18G)Tr1RJTaciF` z9I3aufV&-s%aE19#x{pNdWz?oZxiZTtoGV1xkk5d=3^9OtQ(OS}gQEC`3w<|SwR?%8d49~+>Ve6ZAnss9 zje>$kgIxnH_NyCdcF^2PZZ|6;%9A&IWljQw$IpZO>VB@M$zC?o`t={Q=T^C` z>cV z5(BZ9xGXYw&1&e6rQR7eFAxi;EbbX%XNGj1Q0S!utrYtik+zH~wsYT#)ws9QpTscu zH^TQaU9I{}6!J}PC76V$c2!R`@hiAoou?hSs*f_dwySsjUvKMiNh|BIn=Q_StiE9V z%N>(3JHoSP8-d`D?=qa8DpqS8oggKUggZ+c$XHDjn7|3R?e|q~J?oFMeKJ1|%WXzFG;h(F!8<|S#DMd(@)sRz7__&|66zrl)dX>UqYN2xM+^uhf#?rvaigo$PNl7( z(`v$90>({GP-!kx&Trq^yh_I)^6@Dn0QVjKmBdWe8s4;ZON)Dkg^)m!NQ%vs`M1bM zcXQ}R9=z9W3fkC4FZ7rDJ@hjqaZd^aQzQJKe)9@dfn$tu-lf)FO9(}^wb+nb9h~$4 zWRTC09G;*j9@TNGqoP{BkurmO>}T7{rYy7RYTiUQSl%Qbx-JPS3Lm;VoK=L?FK(V# z?JWe!8xqrG`D7?K*_j;K<)hT#u@cT)O*FBviXjo1fNcKpgAl96cIPA#4lz}3 zyi2RIwht3#5NaG+>l-F$uUDAKMjw0{V}0;F+U zv~$SUYdbqJd8BtEWP=$%qiN3|;8)830PvV=6aN5d8{lS_Q;nmNQsgk)bDlUOftBf= zYg)_9{{VzLQ;!>fxwT^1;Z7wV-tW+GYm3_PxE!WIAfDCqxGb*^MbuG`UhV9YJX}^f zwA34YA5S)kFEq=|Iyi;WfUgqDyI42K+3HlCr~Q-2^sNsFcxzGdPl({qY|hu8amx?_ zs;e<#NdssDC!E$bq|%$8AT|TO3FoJCjPu^TW5sfOHnh{OEHqmisPz)cBHePbz>$%Y zE08{CY@8s#0F0dRUA61V4N{72zNu)u-lr`pF_Lu~vRxlvO$@0teHTd9>?YK%WwX$A zC1Vxxz+@#5m39&C`G|3}^U&8H4EhD!mvdg-`D+$TOR@LNNg!><3IODSewCLzUT{{r zk)#ogsu_t24o(zjf%K~7V;{OjTsQNrVMa-N(%1eE=WYK03mM9!TlZt9_5CBL@qVde zs^3FzrAm`o*+L<=b+=n)VfTr387$d2EX0#s#?!bj2R%Q+kx@X}4^0+z10C{{V$a3`XFzgK8@E4BZDmo^eSK`^N=F4^QP< z(P~c{%`_^I`LX#-sJsQ^I2_>doY6M^$VD!tT|W{|S8$0yCnvXTb^R;TJSneuhSOQn z6&_ik(9y6r zTYtlzt_uq}H0i&`vF3WUqiZ&{qAR%WB#(4$D<;wuorPOde;dXJLrFnOiP7B+qd_DF z(p`em(u_tr6dc_!N@9ehbV#QXGD1>fFuFtX_wM}<&N-owCo#6bpk>|mPdKgo8GlsYsv zSZHrga;?DJTx!B!25Eqzx>+xsY_k9snJY-q9@BfI3WT`oKQm>0X;qU(T2qM zl0dmONy-Jh1<iR@DGbl{$g7t3d3E;KrqIE9D*7 zYTKl965d490 z*aK8wO3s&FQ^o&onE;^QN|c-o4|bx?HVC_e^DBCPUUKq=0`NCe^5QTD zi)9;RUrcX8Wlhqh-Aeo)KubQm5YWMpo!G=V!s=HFA`;-ZHF(X1iz#vL+QBkaFPO+0 zz=E9w3v#RAG6-&#VuAAE#9E;b-hf{yFAv;6&3-qNQ%#3aS*a5)H4Mq?q7YXav+ju8 z)sh!n^h|!!Z&QPHtkH_m&k4qN1f{3&w6mJEOZg95m9sSy}4X;y(~>1+!l(hX;YI3k7uIR=Shw_!U{W_SOYxtQVBDk+Ac6f z9*k!s>Y5AG*kLqYVRy*5?{rxhqq96`*&5o-OZB`E_XRa3;3}l+;HyOZLFKM>Slxjo z1yg51B{_@`T@Mq&)EfLMxJ>XzkV#=QPF(M`3(>g=FR*A)a}pNAx)KQ60HuSYnZETO z;QwKlG_r1qkC;Z@z8quETfeK45#1at@{G-lHDu83cILB4=DgzlH$*iWLW2Nla8HO@ zDYcQznr=FHF@R!z;vjkc|ND=W{tS?B*>`BF<{Fu@=vf;FT{*U9KkIe^{=S+<^02nL z0ve&M4oLoSYKR%FlM@M^hE1ykv}!-2o(db^v9&Cred3wtE3UZ7Pt^cFsSX@JH;hC%Cen zaqx!C)SSxc^feC>`o{b26SxlZ`(ha~p$SbUR#5#W#vr{62t?0iDNd+jsIowirCJXP zH0vva^3;-!m3>SjO3ZBu1pJ4*=dh>hokT0~Ki-L)G6cYlH0J3U{3h zW&qD#8P7Lsmxtt9 zaRR}c@?&8jHEyp^ZhsC(m;1)v$aDM1VRaZb##G6!{C>wDP{%0 z?rOvzD%|ANEZQ1OR)G32A2a=DHqOrJQU>#SO%~LW4w}M#*zQHwVVIZxzieZuKImmV8N~r&x6)Qdq-dSt(J^LzDIQ3#!3lV}d5RboKuM<}ON_$lIAxC>QA-cds8v zWN4bG;`?~jSy&`{`BE@8@nJeyPQkAo_-e*3Dcbs%6%0as4SgNzNs5yp{{bE=-;mcA zK^?Aq^wZz(r;L>V0&W6^v|Bf)3*%->RkDOnw4e02Nv~ZpD2-OU>kR#_2Ky_HuM>bH zp(j@`mZFwnf|sEXVol-mUX7JOK}dg3DETJqubX-utI)F)6%xfiq1^SLp^2TQs?9A% z7&#mr`Ji2@4I;N-Tq1W>9KvG6f}^f6x6Aj{zExPEjinrfEr~k6uMo1*SJ^vstI5%@ zW0zFGD_N_M^_*1jA98B`ttuT_TorQAyuAWP(E|=5yDXFbv^pF3d~syW7_~S*tDt5y z9I?KW!86jS58jsbQro0LmG8!7?H7@!e(8pmAZ0izKYW*skJ9#H9M0y&Dve^tU;ZVH zg+#nDG;edgur&PIkd_yxm>MDBg})g3X@6YP9=WW<)B8grlGl{sXDY^)XbWh=Q0~6{ z#1o@)*6Zw;bz?IB!lsY?3r{3v;GJ5}jp{EAYtL~9y^smM5d)|8?+tffM&JLgT(O8T zIZr`v@#1svr1oA9ak;&3Pw;c5e1FEJ-&xiA3{K>YbA?f1bHaFy-F^S&^dMUg8i9 z<#v8G#~DG;-MrXCdd1%2K>LsHP`2M~e7t8J8Ohm`Yzv8e31waFbF0DHs)_v}bP^K3 z?n+bS#7Ds+4xh0J$#6&i0#4tCUTMpk>e6Dx_M)&wmSl(}C)Lk(H)^@Y=0fAU<)+FItf(smkzAgcm7<~|(Q{!{Q5@on$!HPZJKYdWk>tRg$PL{nDw zZ;cxFo1J~?av+_*Q^Qnd&&~={61))AK2rRd&+^jeDr9>SC!-4mhsqrC%sB|UuLJXofZz`u9qS2IL4Mro&M^7h(gVF_&j!YV;4uvI$^kG+hqk> zzs1(8{mI4;lToIJ9Id&(I=)1XQ7(4-CxK<70~2FELMf!=l3ne{MvzNlzhX>My}f8- z2~`sCtP|r)Rq336d(WJ(mBNhZnH*Dil+RY&n6utcps$;MWfK)=(>36Px!Z+FJEUP=xbGGFYU`OaLti}L&eqnR%{AH3?? z&?dE5b@EiE4DV*P)$kZ?Qnc9`0wp)~P7nt=NK)39{QZ|Pw6}^J3f%sB>#b0qIBMRe zYwjz~WnK9z#NzuqE%0Cvdz)SPUMA`4zWC}ZRqBjC0}?0rH-3>FxH4DR9g=PzaW`^l zyPq%b3YjfCCAYaUvD@I;>m@C}-fEG$iEsP5Mrq)P8t4iEt4>$Xgz=OMxbbm(QLqMRJ{^Q=rn& z)|BUf@?I@MGLJx`zcGgg-kM^M<76vZrYXKIpPY#OM4%~QK2*2!!NvQx?CCZSa9444 zh(nv{nyc-k-dyd+w4#L8dHhKE5y3}TwE0%7_VRm?Vdl<_ zIefR*wdG$&S&sO4=z(Vh8Mw&_ozR?pAIq1$_I|lSz6B zqwNRZ74J!1Hs_~yMd?vS2Je$4wQyXgln?3tmdkVC!!ogmpX(l3!eE;D*tA8 z$K9(!JYe!;#TX`x7<9!A)Vz>`RGH_&LQjX!(rl3SW1YUTnQjJFs^0Iie#^NSSq;m zatB$|m9}6tP78P~e6&3MtXJ)ousN8ns&v-v%O|O0^v*5(ahyBO;@jn?6LeTpH`$-v zcGq85&C^Sy+bch|?vzjm6Dllw_-Iy7v$vEdrQ`nrV(ovs93NO{gMJUV+jG%^m$73w zm`;eP)?90(4NqI5wln0PInTYEYo1eMj>D`vQTi0iIPp}AeG)@!m0BXpvsw45>x5lO zkEF>6&Ds|M2;~$fUcJNDw#p#RP2Yb@tVNP;3boP;hM7ZoKdgc$Cj9wYgf9;X(5m%! zaz(CyIO$q$o|wgd3wfB{^^dkFcLsmYxGLGh9|-Q^C36wR9yLY6(RW=2Ni0J_-bXx2 z+OwE20?WyDY!mRxhltPYb#U`p9;$+x_@z8|{f*8%DUL{UwQSyu-nU5Z5wCF!#)anE^zLz6yBBQv;#-BLTxW zM#QF-naWmf^b8U~s*e3ZG+(DaE$btX*RD zBaxP5Rtj&K@>0L^oAA`B_`B+M=p&Fb&X=(0>NR~dWwOfrmaV;AfdlAOWgB3Nj_B_5 z>=}m|OK3bxHSH@8^(PcRXEK@ctP8~(rX7+xH}&{eqFDj)XKFDKugd^6hR?%O%-Kvp zA2(|F9xJZ!zl|@^N;j;25XhuyhNck2FZt7cq8?VCqiCZmxV*)m%r#K*_(n zLB5A(q)xiMBv&EXa(p$jt~D~Vf+FF7@FDt1yhS@hdX@>cA3>er)ySLI=ie!0^P*$lf(KysJzl5cCoc>ndH>xg z07%(JK2dXLW=w01uAzKhT#cB>`h(l)`D zFj^VQmvq!J&L2PzIX<)~UCk`dGTNJT?&dE?c!%5IWN=N{)L)>fYTz=(<9)89S+v zh`tTi+si0=%U>?dNZYTxg-OIH4)75SJOQbiyUG-r5Y5_%$4ntUEwx07+KoX$7P@Fc zZFk)BN@bz=KY&8sAJG`omqqajM`|3;TKz0+jn(Jow4I^VtIJ>P!Zos!9B>~P1R@&6Peb(C>t#K>ACId{Zy2HX_;SPAC|9O#!i;NYIe zxoYoL>?*hPr)a8$h1pPsC#QR({4o`_NRke=0uVI!wz#PbgF;q9moEu`si~=0;0$J= zF&wjt_@d)H-p^#N*7^M!0<_O7*%f<)ZELi(%bfMrQ?B1cOhS+}l8qxvhttK>U(~G} zS!>6VFAU#md3ixC#t>{yR`&Oe$l9&dMwDp(PjIoi=ms1FA;x@nF4N)eT*hDU^wiKomRDCc_}}_z64x&k0oFJsf3fo9roA+;Tg_b5>c;J^U}OD0cLN^L*`_ zXz5q{#Nts@TDVle7O1W!!ea5wlvS}Z<5v0*ZN4fc{)J78L7;Zup%(6(_XGdh!k?v4 z5mlc`%TI#+z)L6nbT&bC^79v9x=Kv`Kz*iDi|s@+yM>0pO2hMc%#+wM)})5EyZeM! zsnHWcChe1P0-4HR`lnXM_?nDkn>c;HGMNX+dl-aIJ>@{WZ5xD2#lWv<(xw)g|9uU> z@v2y*ehIez*-JId=u^v|PX^zYQ8w8})~xuL|8?gxLKn*@t4$j?bxHjP$jIaSmnCQN zSDzw!}uIjxV1O;6-z6RcDMum(`%I! z4Al`43ce{~YZwSBLnp1dWU5P^3v(-v)mrFar;QAkY3q**)yY`{hN&h(M-d%Z zXOSa?@Mi6G1tK7z*;7RW#CeDm?R@%^q?Co2_*fkWNHqd3q$F%IudSwSXxpTSN&)XU zQcW8?>yq95ww9RopiHEWs-^GCkU{fcdS>Zjs7D_gIc@$VNz>2rPvQ4_aivI+$DpQ| zqI>QTsk<;_IHs<%EPlCJ@QG+jKdZxH7#mKrB1QIVm+1XrIxe{9I2i4RA%YPZ^|-VE zNX%?N72x4{xIr|SmHq=+Q7p@OAzq9Hn$m_=WqsKjBRo0OZ7#wCP;ea_ob|du8|J)J zcqDAv`bacR`}C0laGE@+w6EgZe0=`zcMpf`u4&jN=)n=d0p1-az`N@#*wq~V84*gO z2f?iN$~dw909i@q(jRy17~&<4l1R4H4KiecFfz>tfD?GL2;t6nF(|=}8O`I>+*J6j z4tBl%@Vjxzgyo=HeJ=?wCq>qeU7T2gBxB$*()<^BDfl}67+llj2dWbc_U#=GC?SoD zCxhdpti9e^yOi^Zs*Dcs^RkEk{SDF?KA*zfxdsFSOZD`sgHAT zB*GR-4cD5Xhmh0`!lk%mE#!3g=N@44RM19liuo2pHJ7|NZJcHg%=e;Dff$*ew&t~( zPR-)Max;gk0t*KLq9*||`kz@ML<+`|03;Me zig(5AVb8^}$~>O_o|@_0r0ywe_Rz#;TqluLRZk7_S}5fBh?Sq_%4qEs(ul?Ad1GL6 zY<-Ea`!xP$<(>t8I|aNtf$VF_3tiJy+yK@C@6K=aug@n?&`PjJz9<&KVI$g2`)ImfZoaEnvRpIG+Ub@EPl1E3>HC1??}CeF?8aR zwjP!a5g%`nSpry;@P+fWJax=iY-kWF4tG(h5AaMkMKfT=ca9S}2Mm z&+;1qXT(BCilQ#uZ6`d!UQ~|9N`7%1Kv=>$LHc|;{VsCC5yv)s(nj?cw4({2df-H? zP4}a*Fnx3gsG|f73)I0TGl)6Vq-{{_tx%g}JPZCHJHUWeAX!Qc6XyB@!j|5MmVE`^ zNK1JdXdlLs3YHWNOC9ozlS&}b>YT1brN;lkbg1ASU5a)Kj&PLnsPrmXuea*~Rt!Ko zz%>5D6_U_EBYQeLjvIZFUjZ&x!~X#);m^wlLel|ibOaQ*xKl`c>3}tc^L@RIzhj}2 zSzrcEAd4i5JRdyyX4Za@*dXTmX&61LdnYS081hZ@<3T|)~rC?Dd2vD53+yUGW}tf5=Fr{St8O2w>nf?~NZ|Nq|VjlpWqYkvhsV${zP>5Q)`UV7p<8GW@- zIOb8wK9h~;Gm%rIrkV^5v_|qElto zmWhE_U!H3T&d}fFh*#7qA>wr0j)!MwYQhU6VekXXTvkk^T%FZiro7OwYvmF$*3yE=sz?(pYNUc zN&6^m-mh=n`~jH8ieMG4{XL#i)SDLadO3eyJiMRzs%4m}axrdKdjnqL8D2#k;$T_N zrPB(&`j064!=ui6`ScR54VY8NIO~{@0D2#Ccz9+19N-6i6Rq4pKmQe;U)(e=}+=} zgxHj+Qn>}bz_)5M8(O*v)@L-N@VsI;@xmI-`0Q4Cd9JC(7lY7>_jq%{hT7x# zUBq4{m(;t)_k?S~#)BANui0^Y&`VTm_YJe;omd{Y?R#bxX}LVe809sOW&B|OIM z!@v2JVFUW|^GDq>#Q+C{X)ydo4??WItTv(MXT+JAt`l97u(_I>6^rs^xdG~Xe z<7pW4bD`zIh`O6$n+K%P5zFsRt02VEKIfFE*Nxvx9Tv4odMy!vhqW&Wp zM-qIlJi}z8+wW+Pe&88VF@_=NNJ5(073O_@{s$l(mPnVewiMN)x20Y@Q-KiZ$PuzY zBbVpctH_q>o1&^Zbn43t$3 zX?pdtyCX%~TxSUKS?A073l7Pi1Kb@E3uls-v>0dCBWTx$#!qUJ^htYX&^l#J-m~`h ztl~U0geqfHXMtO7N3rL!B7fclc_?}ZMr7C~3~s9x_fwqPI=Cs3skV(w;u!H~6F1wZ znoPSI86kVq4Zj-4X~xIsQ61W%WhZ!yO;4j1oBEVlX|10h`eR%jzBa5Gp={yrd+3L^ zfG|DJ^ckDV$L{K0b*W}UZAyuyT&vk*dnM@rP3|W)t-vUJcz^@!G^e+1X4N_Oi%$X= z=U`e@G&B^n6?g)jtly}uG}|-g7HfM}Q^4g(kplZkdei1O|75LUsNtvCPam zprOr@YOkEyO1mh`;zT3MSni!WA4VTi0g9_%Y`Ccl(MX#v^)m#_gdJz&Z{JYka~!;z~R+XbJ&IG-{&h$ zWx4#YuZ*P&>D$Y!R$aXosFVdFRVo=nXXkPDp(9N`(e?7hz6Fh9o?Z^xAC9-_3W1Su zn_97q#hCp0M87J@bGzhh(?6{~C<qDqzoSu`}c6W?w4D}^X$C~JV zM!lSYgWn%?IxS|Ss5PAIrQ32oQFUk?r~EQP^H=7A=NvmQ!UJ$@T>T%Q+5Tj%G~lacz? zFjaL_sWVq}S93TIg!R$JqMx^*(`05%!QeR_bP|_ix~}k4AmZqtvFgrM$~jMWNkVYt zMZ&T*NHnn^+Yb~bG>kK|s1hlc8e-r2WxN$fuq9`M=`!(7$O|%dZ@3a_Jj(B$ zzbDTvSd=dQ+B(O3aoO@o2PVvAcupS6Of9Y3BQH$+NAg=mjcCvfe_Uo;g75nmZ$;+Q zdA(%4Bq#N?XIvd-7HX2ImdXhX@shs6?uU7a|4(E7;QYl^Lz`R?#PK2wUnva9$*tyK zwf;&_OIY%{A}$V6JvMiH5GWCO>FC`}V!3NPuhU_1-yH8F7{8uAiu)0M++w$xdL~X= zB!;1m;q(0sYa;ZXyBL(3O|9w`O@01U3CBw}OJm;8Lij{EK&3Qj{o(yMwlY2ZO^C%1 zJ1>XNvWBqGW-U{|?x23e-ZauG*nW?c_zSNF&S@Vc$muyLXsk4R)EZbm%Iz#r#nr;a zXLadbu(@Z|yk%tmTr-sI=LkQ-*h(zce#;MZ#1olB?0+D+DQ1Kvi#nndX)`rural&nFY+23pWA?IJ zPYcjFe5qp6(^4k>?Z}{5uu1BIX|AbFw@LBRi%qasZ-bi7OUZM58DbS_&m7mG(lWNp zD?+Z80cPleIfNqHSZT)h7Ia=w%FKS0?xawV_VA-X^&L&6)F$nR!r z`paL9Qa?&LuArT%ug@q6JJ?l5d#wXNCrNi)EvfQk3tBid1>>%PmQlydvm~1I~7{zTrz@do6zAIq4OCJ|&~(uC}^G zR~MUDyU(p2L@*uUDsd}bF9in9?Ybi|h<8=dR!j1zF^~ukoneurTH8WZd6W~A%QJbE zkp=eg=~0fdMSYC24h}*mn(H_*Z?8Ik;WUG|_VQ72gUUyj6(v0nq~^3pwT^96*=IAh z(Vv?}X*D4}%qez}=22%S*eM#!Dk?nzOC3ppaa-RmbE!MWiQbwls^X=S*0_nQJvwK5 zm4+)D-gS~^JsrIL^px{Sm^GmJM9Qo4fy(~-T%QFP+$7|=+W>}c<94b_>PH@r-Zx$%sr5FgosRR_pi~=omx_!LFzQM-r>~Ys$_7SZCNfw zVH{kxhSWq@=+d|K?xefTF9W}7I92``lo}>~^QYZGnOTHFj{%(ABRPUw#tmX&MFb&! zUp{tFz%x6XL7}l${g1RKsP>ILLSFQ>?$TmWz#%Glkj6JOMJP<+E#xr4`E%R9mXf#s zRQ5Fsv~|mavo~G}K;?Grl0TDu&NBiNAgn~z3Qgfw$JUEI+F~HK92&^KUxSg*4tjT7r5xPB`E?jlcWi@(4!MJ<1?H*Vb6e)Bsd&LjE6dtB5Ww-NML;#agEKHo3R zMjnTlbFAgk(7X>z`&0Wb=H#em-?eBs+L|nSEAYR1A-RmMo0Rb`KRn{?6mhaC`u7Er zVoLdT&mhB!w>v*t-^pS_6w3s7Z+d8PFSYU`pZ|Sh<4=)d^RelAe{nMC*_x!ANV0|a zRmEM)-0tp5wd~7FX#L}1ZQu&c{Lf&i@0iBgFOa4mjlbP8*2ET7?2Wm97`QA^Ppz&0 zWsm>?2ch&FnUFiE6Fpt5YqgDXoJyQ2otv%J8<+{K=HP$|Kr+!W9yFX8B0P2J+-1K= z8<2O%9PP^Zd_eF_?d~eMEtjofDON74mfc|OfO_-n!D*dqOmnPee{$4$`ikhyw7Te3 z==R79QnwDkqN;*q1!Z_9)NTmhZMb_E0^%ngWC%hqI$R=#rZbs&QMR7*bmxa}qbFE7 zxfpr1WmUTfO!0Z;IyWz?01LUUS)PK>)a1G{Fz^R79~!|~-z1fO@2j>Kqe9sBnV{_m z!f10^;nm=pm}!tK6N60#X69lp`kT4Zidrl0Sp*!W?&p-AMgPnf$z=xh^EsUggW} z7{V}^W3fwoxPQ^|D3Un#ot^Iw=AiWCt>oV>gC!MN5dy3HC^YL@0^pnW6Mq)d)9%mm z>kLz_=DPkF<`p(giw$4=v7B;*QBRqK4FgzV#+I9jFaJp^B}g;Gq-ab3BxKEe`6T7_ zPeG#JiOC!bVb~(f0!pp$fY$c2bhW9XQ+HGcG(gsS|4h1WW|OMD$@kt0QGg0?k7J6N zw`@Zmy8T$7{2su=FG%Z%26AlSG8%)YC02<09T~0R(4|`HW6e=R3~bpcIur5XlB++1 zn{RcvKoSaRq-&Ajn9EG3*8f{n270alc6&^VZ^g6?jna>|zR#VIz)GxUu1t<$IY-#Y z3vOotHUasV<2`()jjiFpA7r0}6E{!`q`DLn+@rXZ6?S?uK#Zteovh*f7@6L4*((ZD zL|0%SH6t#8x1_g7EJ5n4So6AKumFB2cRUdI^gp1_Hc4C27lbb+c#+ zj1qg^SA6Tq50Ko^;%Zwa(UP)71DEE)7&;5mnsG17zMn=eA;j=M!X4z&>`Z^Sg(er` zdjaiYC#Ntsq=)_U+#%`fqz(>`n?NeBlMT6@8IE*QAkB*Fw)nVgPni%|t$lpR?^a1+e{D!3jvo3giYNiZ)G zxwK{Yq0zoNW%weADByC$W%INY{CBi0EMQrflP?S+<6HPdSU6w%Emu7II>v_n$vs52 zZM&H1#Nzx|fn+^Km1FK^r5v_XKPMKaI0& zLl+eSJ@2yDE-5gf)9EaH6nUK2CeU4eI*eWi*!pbQ=d!#ZORkB_*M$q^yPf4nl;nuz zL2Qn(aNbrZFnGX_B=S5o$yu0Q1&5--r)sO6$w>CxR?5-a_o;qfBx_K0$SCV}7^z8^ z!mwOpQ5blb)xh>U8FZYVM0NlFhR@U11h`%#j0-hwoe!A^cJdPWj*+xj;;WGqVPRgX zTWadidHTQTQufW1&}x9mjb|%BE=`;Qb$vXSg*QxxkvT_jlPBx;6-b3>8-fftm}0F( zw0-$f=S8PJwe2d9@c!wMNeGp)<|bB_A;y2JS`A?6)C5p5S|iU)JSUu@5`ruI1Ofp{ zktqQPZ#Kte-2VVIISMR}_vL^~I=RmO51@n}h~BBBnS>)wf?R=&NT`P*K2?EmNDHcM zv-}@G3g8Z)?@QX!{^gHY^YGJ)uP&&izrdnDI3b}p@sjesEJ3rT9>)0|fMl^LY@`!I z3eeLzDq51`{HTv%BDyWtp?N^iUEA_AF+*R>WDys7?tn{gVu3OY>Ix){r}>ymxZTau zTD>{c6VmYj7p8OU$vTC>hz}8kg(pCC9M&T71a6rV(2t`UTmHYNUaVEyg?R?+qO?TFiMm#SMLI?WBa7By9 z#?p!7)Eu{i)Z`ohb$Hps<~+ElK}D4jDSqBUhY=?Gu_l$YdU=jlb2?!p{i55b^U=ch zr}K5knqzBjJDl$+e|%6nrw?faY6!-#XWac`kvT*e-(Rq(28rDV zuI}MU+_|*-Wy}`i%vk2Sw3j11^$mSY(q>ZN6thv^X^v(INN`uDD*g{9sQy^#!3_;h zlA02>rf37K>8Pkk=|jLA?9selsvxKW!7q$TE*v2HM1_^X2Z9Km#tpf^(=38;6qSzP zZm}|$5kp30^i{N!fpqDh)X{x4kAO*v?H=mhp6f!lA;5$qfT|bcN0cuWMMaExs;gJ< zYRg6Dz+8Q$V?t>Fna`$@pvyj`%l_z-@_9D`rtPvJp;QF|12mDyWeJS`yo2y~F1Hmr zMIcNf%Zc6pf`!#X${S-Hg#rTBVEQBOl&8*4JQ0lg1Y}YiXnRbs4!o_9;31m7n`o1)i8J z0+Fk|r&{@;d!8ckvAcY;=82qbxZ7LKC2#8_S~}GV>P<1|ScD8ko+6O7f}?zQX-Cue zwZZO0Akm{CCpMVgmkn!-=mBv5VQ=w`)o3*FT1S@m<}RjNm*CS1Xrbp~bNev$4~;Pv z!qMJ_8Ye=eV;*)b#&@Bl#?J!dXC7e~?1;g=Yn@aGN@%Jo{3BjbwYV#sm;W(BP=h;+ zIPm-P!eF&;vzeG0F`)aih+)vWmLdof5@2BRf`u5#JOmGFbZD|m@8u=TYfJgWl(_NR zoS!C>9rYcdZ6qwmFq@OBL+v}c)F=514hg2q(!jP*6HLdnZcw%4Cbf>-9_yDUatnF%WRrH-(w=VJZB!KRa7nZh?;L1{0^UYDy$GnB#Bubb}biBI72st;x< zqqbI!%oI@)8Mdrxypl30k{1`_g5w~eQDR?c57;JQEzlFWSW!KJ>LoD9TRv~h-z?CY z4Gc>4ae4RZ)!;ez^QVC@^f8(Cn|!#jdi!tq(WKsZV)*1cHiR@a@u`u4BgB_h%~aSt7tQ*=!TOuDuWI9LcZ&@C{4AsGd^K{R@wY+w9dM8x_{2PMd-Y|gZRnC ziRmR{DVwXVdDba4`zxv6uY5T`P-*+HZsS4eT9>8_MO#* z*sCP+I>BE)+WkYmaK}s-QXqr#aG-Zj?yHWfOP9nMHM?=;(Ty=ZeCg`q7}juTUxbzm_z*edl5huw63 z5Q(^iRr9x^8uM#d^nGzSSvoiwiiT2?e#|>Z zJOEfPCc|niPRD6<5mtPcy!eeZV`CMJ{HSb^91DEH0_OC;5!nM*$MZGOE>*m{W6c!* z<2&Gm71q%pv%E>Y*X0R$=k8fS`x$L0VZ%zw{q+#_T;wbrm_N{h*5%Iqd;a*tj?8Lst%>p8)s*gOR%sk9vI<|nmV=omn>iJElXEZ z3viO)>+j6hnUE;#d)}3mcDn?;twhw_g33qSWs;MYu^<|)RI}=b(6K@8%-`8L$Fb2}5lc%V3(Ja} z!tWwKRwXS7dr%~Wydn|9YKU08kpFCx$K0XFl>HLZF+hxm8~Z$Qoru14Z>Gc=oPD@R@Ph_-V1bz2gHYzqLk_2k>vt`K< z8ln3YdGOpHeNI<|#D%vc(PD(=yG?9&+#@4~q$VkTqJIoN601#ufEIP1S5{sxMhz@+ zAH@1S|Mt?uI29)~zrTpGzUo6hE7E1Fy)ol;(l23rg@&UMH(aCMAzYW=LGDmzg!xa_ z$b9i;0Dz?6iQjW9aBnYw2GVuh{r86Au;qQ(cPVqrsCF3LXi~{05p;M=`{#j*kTI_q zPw_jpyr1FDpbm3i8t^sB&RiOqnxaZ|n6u@!79*WbFfLrD^Q$31-Sm5ciIBB6HHg$G z1j)>EGfGcIF`DWLL&1uPD^*nHKywKN?aAC`&E73iAAc|O20&5Ypgd!+g}taE#tXO5 zC^CgT5nVI?&rZIsq3@tyHrv_$5N}z4j#<}GAfh{?XX6id+0~cQ3yjFkB)pB~x6gY$ z01D>BK}msrB?*l4%BW;h)(I^?>+@Mmuj`Cguu~A5d(iC}F2_`Qjj={koJPQU4&gBA zawIjo?7&*Ri&wxz|6+S+y()c^Tx6&d1qMBs>cs;vOwMG5{eTQ}N+o1XaF2hxHjA%% zbv9bDu$aQs81>CFmMW>z80#FKBzZAzhzZ#0S*nmUYT9f;SO@){aIe0bylt4w0Qk{i zK&$0H<_hNW+OZ>dVNxUYV!9sDT<~>bDE?nma!eD_qtprjgIO^f2GO?S z=H_%7z7{|xBs*586P9(_FYq2bI_OeSV}P#6EkAbL@fL5EBb_a7pK*&Q{Y5m&qRDlq z%9!r+G2N||3XmdVHXm4BQ$-|h+celiZ<21Xy`^#(R>*Q)3Fejiw?Fw-ZhBLrA;(4( z;(N{F=@e_q0?ju#DNLRszMq-as8rO%5z3ZZaf}lf=1MXiK-(1E zGv(5KCkOrmEYYL|W)zp0H+?(dN;f+T6_M7mBl!s!KX*Ytt@9B_c25)XI>~6g!KN}Z z$n}(g@PIiDyyW!r|B1fhyGyl-d&eaZ$D24PiM*8mZuW*TXX%=)dc@k6F+=zK`B-Tk zO)WiAE`Pyzx-hhJ8`l=5wJuoHg!Eu;Q>#OG7Yv4+iX8C$}K1KDMP z4E>%^*=)x9B8uEz@h{nEa;;Y#{awL#$Ki_+Hr9}*O zVJs`8uRC*b(SUp^_Ztuq~N!MKH@u7sMRlzv~U5GpX9%mmtPb=+N@bV zoD@4XjZV+1U)F+*q6(~rx+WNYrfqT0emiV<_;`VQq&ho?xfD@q6}&CJZ{2=BQM3@t z;m4XfgTnj}zKfw+KEx~ZSu+SqvvuG=PM0zG17U%2cdXw&4vu&2^Lma`FY-UYyk_#cT_21r z09|;&VD|dwv*djEyfTcqY;fTtZABj&LAPU*J1=@$zKgc~kZMvAjT?uG%anv3@Kn`z z!vBdFAg7HDoO2;GGVw6uaUGN34V5FIJ*dTuZ3cc1bq`Ag$IPt}g<+ny)o5WIYppWL;IT;iXW3(!nDb8VmVp-io%{<@cH4_pb;Nv$Zh9 zkm1(Ji|SDy%I>@H#&r6y(hT{wC_+_}g;8qcICpV^8GIx`}~q zcliGHcGVux-IXG)cDX{1)UypP1t+l|_Ip>N4z{!zlVQ*ap8Uqb9Q1BQ6B~O0S3065 zT&@)L;k{8yKX<2tGnch5dEQd8matTEzH?o}Kg|t|c%x?=-VoV=ae~Gayfq^ot*ci1 zv)|J3zl3pXc=8w4<3-JuM=S7GP(H0O3#KLEI>~wCpO?E07Y9hpdVicgt@lAJJCa&X zh_<=OA+PlQb_f$i`|0*#m@Hc+V`3clxb6o30oFo$kDOoP)&AwVmEV8FTHKQ-ZE}55 zpm5@siTM0FNz)JOnar;-o2-)m0RBoGcDPi>qqRcxdPC;mrN!*K?_mhssVRdD?m|yX zQIC_aU9(jy*Me1Mh76q-I~~vXw#mlN))z z>G{P&XsL(?tE;U1q`KY#K53Hb$I}}fz}j~>9AocQ1b~2@LHdzNSww)VAubr<1&AJ_ zT3lj$e_n=c+yL~2T;2!UKGa!oc=>12$b{8MQB)EpB|3$({)J&nqc!~Oy8H~mlY@VV zZ05w$pagk56XEG_JXTywr=q_IAH9KI4g%yk=v3)1goxzc`yZ;cPM8D*>emUy>|xTB z)jgx~`uh-g1#XM>NlA#Dey`O~4yJ_*6So5dN&JM_h}MTMaV*IoApmQ7+1=`NI!14@kU)R}2crW8A_Uqv#Z-dr zM}r5jhpT_5(JO>;(QkxNCsbBX5OX26+`x}k@lQ;l327zGUYLaGa#*lj<0>3YT_}W$ z%Ryb36yOqhQE0>J0>2nmgbab#kbit^{)I+^0fHh5&!j`Y$yu0sb% zP{lalwPnS6GYa}BM#vI*mhent9&nn2fu|EMuj#jlcy!KGH$mP)F(S-m<%{>B!=*qX ztaIYxa?v@SAx$tEM}XxI5@Q$+qyf~J+e6iCulKbDI9zOQbSnS+1Z{`CW8h+YQkQQ7;bYQj=<^r{{=S_$n1~-*S~sx4?oVG zoB+gNP%%_>3~@+CLB~pQ!R1arT4z=}Ni+c7ooNprg*XN$9+ZT0fk1=`qb0i2x(&yv zq|a3x(&G#0f6rP5BOX8hmLd2HI5qq&;#-ZKyrH;LU#7S?M(~-+teRgcGmmAWO~pcG6r%p{OLN3 zjF3GlJ=rI3Lq-5QfS_Z};mJ77FJ6bA^Ti+vbF}kF!?~abka+Z_zIg=lDdV1UDm(yk z2;;9>08jxq&w60bamc9&$R{+4a7+5oBmdU?Dr_*uew7;#2lb~G%HWPaS`H2i8nOt- z83a>-?#G%&!jq1a(}Uld0G*C=wweCu&#o~@2*w!D!Aa(UgP)rQg4=lg#&>`G)2Z8#~#4jfzlw+O5{uB^T-Z{rg1~3tV zdj1)sAoHHR=}5unr=+9N@cMci2pa&d~a!<7xTy4pw6P~@P*$2NA0WL?~Q;c*!(vDnhJ-Mdt zTy)3K(vos}{*(ZR9N?N2csyp4k6);%a+xGG09NHeJ*ZY4s!oKrZ%S&ONX`ME3BK+? zIUd9Ons)9tf-otB@yXzH#Xn&C;BL?1Kmb_C=A`)wW4SoaJ5+3p268z606l08xMQUN zOM{WT?dOC3dr-{mp_`9fdemePGC4HUxN>L$a2FtOMsh*vN>2V5^yGR~UBsSxdQ^Zu zPJawiuv~jFUztFbO1* zdQ@bUzzxAY2jkwFB90T68Vuju76L?r<@gCrIhVFZR8y1zxfp>@2&xq09bRt1E;61e_E1?@!LpoDuaeB z19S&(UUSrEnz?s%2)k))l*XCiS+^DS8RIe;yA%okP`z$g4bYg$gj?vfai3`uF`Q z_Uy$r&C01g^V`?0bWz)B?-E^JT=_&7LaL1H07650VVeu>S@v2z#PURm@`;YkQ;C#5r{{U&Z#a5O^((YsZ#EUe5AW(Jz zyFC>2C$KzV)Vf8HgHD^uVC^F^oP3}K&N1wJan`9%ef^_!@Z7VsxWgAYCukvgJa7l+ z(z8(IUPd#j=PPzP?JGkOthz7n1@*s3egZ{J=Df-^I8E9gQ0PpLKcS17+r= z?A9`f5u;Bi!TST+Q10b;l(YJ;9SW~ta84r(*r*-3EH+(#1| zY37&8Sr}(=F|Z`D`=Am5tSu35Vbl`)QGmURvopf81Y%C?GBycT93Nrzs+#@AoNpQy zvncs3xXb2_bHbcpXVW6STiIRmC9idF#QHyL_MhC%y(Y^^w$kUGDOw5kJ3NuUmgt$| zAn;j_7zd})vGpS}TSsv-$jaC%@*Vlka2p)wJ$luf>(^~23t{`nGUd?mwpd)BAs|( z8M0J?oT|4$=yQQ76?P7yCFSn90#Zl1oyKO&ET~g%8u!h*c5gu6QKQYb#>xNVBU6inRW;oEKRoq%pym^d{t0q_(0d@f76$}p`kGgu3$*ySCc5zC}(B4$_ zP3~{_r&fnlk~pT8bEuXPwh|!>sm{h8NJS2FjNtC;#Z{igbk}V&R*jly)E101V*uxj z5>HN^)yhu>kotSuTioo`Adr~JBu6}0Bz)ZjgWrr)*B@cI^6u^}%%&*uFcNIvCp_Tf zoF1eRNl~&%ZT)&^H#^<1wz7szNv+m73d^0F3XloN#&fjr4hI>f)U~Zg!+L-^S&=2N zk)ml9Prn%lcGPdWaCsbq#~fy}rN5Eol4+)7wwZ#@5)JC3C-;%4!8jex57#xUkWHyt z-s(Cm{&(1$X!%)Ld@+of#RS?Y|FzLDIH+G|^hOes4Ur%jBzNGwSuRk^`A z`h7)j-&mL>eL8a-R}g|;Ser7C17Ta{zzdu($>O<<9w}1jSuf8i1<*D^zBe9DKn^j} z=qpQ3ys?t!a>FEXMy5j_o3y%u*<-&aM4H(Z~}&Hq#inwGB7K#pW0^4T!%dlQUWq~Y*1b=^whV51SNoy6P?_)fPEL+A|L3PQ_Nar{Mq2mUj(~U_b zC2&%4O~kpa_=;VAXidUfMj=Kn&`QM4Sh4e@QrH9!?)L3k6BW1~WLFmRD2r$?2_lzn zNIRU5URj?Y)<1>y%|^>ipH7JR5KBJvi6Ti(NFaH#Fx&$5E1YB8)tk*%Qaa@Nv{BnE z*Cew9Vu`mKb`XFs%m5&Md8(8-Uo2MN*Y#)r00AlA-hE9CJ4d;@A7g0}HV?BBxiOsN z?Gh=*Kp9+s0OqLLH<^DdcaujLiHQ?RH${}r)o_{5P7V%5bcb8;$nf>VQT@6*kNIsC z*;x^kmLItC!tNuFy^Ibk&!(SEx4TI!K)77(Awx%ybB(9|dJkR(PH2Q>Ce)DSB$8;* z)ioIHZzB*pERGmTW!m=c#E~0E832UGau2mwZBFr`YisD^SvHnNwnZEHBQgcX7 z)HPWRn*F9$fn#`3E;dA@?jcCr*#VWgIqTM=ZFiiJ+kRD|kwG~|%UZ62GcOB_*KugDw{q;r6Fl1u%6 zooADJSIM`SlyjbXK68Kp`L>^}ZC=`0$)mwML`OS3k-RFb7iz9nO~9NNVppdX5JM%p z!)D+B518_>R}KSZHl8+uIAPRcraCL4+U{lFYucrPJk~Naa<}f~iPa=UARb2S?LCJ% z0;JQY*0mX<&}51@uC7Fqs>L8iljUQ!c*y{9lejP=xUKnYG;J&*YBNQ>^4@AkEa@9y z{_T$g9rq|akO#LSvf4|iUXQbtx0zWBD*p7QbGbwCc^LI01B%+3PA<{;*v@UHwKgG# zSFkCj!M155QI?Ijs_~tnvxYvH$n>h$6ULV>Ybq!uTL*R&zdtJge*XZW&NEf4)g-xF zYj8|1!6TCfJaTYaJd6Ma3CQc$6)3cl`_4r|o=9hP?X(gB10%ntNF6gxM$YmT^w8Uu z=TWza z;kf)k1oo?1cE9#nBbG}WM=;?`WmtKNGnJ5x634G@)u$G+G_65@b~ObkT_Tr0Tu$JS zatQ<{Odd1TRJ7xwUyZ-u8ff*o2Zb*DK^CJnpW$L2;bD=PBM}xMK^a3PcwFQK`LZ%A zmDRM3e?poz)x@!}Qsd7dnX(RBXl{qTc@RPOnquAQ|oa?;Z8@;v*;9y--@9d^#w z!t%ptA+?R9@;-giHsXBE`33NKz{U-E0*|!Fe8yBPNi5tiJofddZ?D%<)^6|7b}X|y zDsC;cNjO}dcpWoJa5y}DEA4PNNMY%v6|J>>PnN~vWm;{wr$j#P+TPfRl2wt&1e7I^ zWOO8ecMkZ-_ohX#I1J%Na7oF>;5v$PE0el5I|(WmHmjlb+eA8I+BxPaV(s=}3or?I#D;npRd5cXuoS zi2T3~)6+fatj0`vho=-}aNG=@{pp5G@IM_-?!sjYz78> zw`G+8IodLN;B)-znvA{bp1=ESPMWdzY5IPwfrj6ah&zBI2RI&-rDH}4#Hy3j^N+xK zR=Z!`-a{-wS1b^a6-ESk00Z0b>seCy&~A=Ue|S01P&1!i3B_!r-usy}x(R=IbEz~> zcHz8;mIT06+Ztpj`Ej1SlgTHOR7^{Zj8wQ>@Oby8vZiv!@~VtdRzx{A?!*zQ430f1 z$8xU+6wc(1{mlRlnC7TN%;mUa!0qWl4&7T6#xMLt1syR>DA?S2%>o=$=jY&a_!>s} zaK!xq{{R|jBy?hN+MKGS9N=@#4FDsPy9e(YYZ5;8Ti8-Gjk|A5bj1w+06)xgKoVsJ zG6ByuBQQJwG3lCN9Ask^9@Ep0u4ouCj2s+#3IHPrI6vo#cx~KuZ+d%l+I!nDyP#gly!oKD8E9=RIkgh&U#IF8PasagN<`X*dKC z%`|StM^8$VJBHOK`A`HrDab!sFhZVr^rtX6`cpDNCV(EN86&1T&=ihO8Tae;p;QsL zjycUScAWFg06en{sO0wcppY^#)2}o(GE@)7mv+PLu%bV<#hyn5M8@yqsp8jPd~dO(x>UjoG0sLvmKw?SlK^Yi5x_f;o zjf0iX27nw}jFX&G4&ZWn9@L<9&osM8#}p~&lfmmzh)l zt^mjDNZ4QrC)%UV-T~{)KXJzgj`RT52uW{2N~J(0Mn4)t$~zyzl#bK@p1hAt9<=P| z<|mO!hQ%~6&pc2A*_48MQU)DC%{QSW55knD1`B>)=cNEWMjsExMrn@UDLuWYDge*v z>qZDWiQv#8K0yoE)BaG~bJCHvvhB~(kzXeb+JGb>bCPg75@I^#1BDEJRG-AY6eCKKuaEaQUEjSno>&-T46Zg&;z%1-RtX4 Y3<.picker-preview{view-transition-name:pk-test-page}::view-transition-group(*){animation-duration:.34s;animation-timing-function:cubic-bezier(.2,.8,.2,1)}.picker-container{width:100%;max-width:1500px;margin:0 auto;padding-inline:56px;position:relative}.picker-screen[data-screen="01"] .picker-container,.picker-screen[data-screen="12"] .picker-container{padding-inline:75px}.picker-start{justify-items:start;gap:28px;max-width:620px;display:grid}.picker-brand{color:var(--ks-kinpaku);align-items:center;gap:4px;margin-bottom:4px;display:inline-flex}.picker-brand-logo{place-items:center;width:34px;height:34px;display:grid}.picker-brand-logo svg{width:32px;height:32px}.picker-brand-name{font-family:var(--ks-font-wordmark);letter-spacing:.08em;text-transform:uppercase;font-size:1.3rem;font-weight:400;line-height:1}.picker-title{color:var(--ks-champagne);font-family:var(--ks-font-display);font-size:var(--ks-type-display-size);font-weight:var(--ks-type-display-weight);line-height:var(--ks-type-display-line);letter-spacing:var(--ks-type-display-track);text-wrap:balance}.picker-restored-note{color:var(--ks-text-muted);margin:0;font-size:.95rem;line-height:1.5}[data-restored-draft],[data-restored-submitted]{display:none}body[data-hydrated=draft] .picker-restored-note,body[data-hydrated=submitted] .picker-restored-note{display:block}body[data-hydrated=draft] [data-restored-draft],body[data-hydrated=submitted] [data-restored-submitted]{display:inline}.picker-actions{flex-wrap:wrap;gap:14px;margin-top:4px;display:flex}.picker-key-hint{color:var(--ks-text-muted);flex-direction:column;align-items:flex-start;gap:12px;margin-top:12px;display:flex}.picker-key-cluster{gap:4px;display:grid}.picker-key-row{gap:4px;display:flex}.picker-key-row-top{justify-content:center}.picker-keycap{background:var(--ks-lacquer-raised);border:1px solid var(--ks-rule);min-width:26px;height:26px;color:var(--ks-champagne);font-family:var(--ks-mono);font-size:var(--ks-type-mono-size);border-radius:2px;place-items:center;padding-inline:6px;line-height:1;display:inline-grid}.picker-key-caption{color:var(--ks-text-muted);font-size:var(--ks-type-mono-size);line-height:1.5}.picker-shell:has(#picker-form[data-current="01b"]) .picker-hero-art,.picker-shell:has(#picker-form[data-current="02"]) .picker-hero-art,.picker-shell:has(#picker-form[data-current="03"]) .picker-hero-art,.picker-shell:has(#picker-form[data-current="04"]) .picker-hero-art,.picker-shell:has(#picker-form[data-current="04b"]) .picker-hero-art,.picker-shell:has(#picker-form[data-current="05"]) .picker-hero-art,.picker-shell:has(#picker-form[data-current="06"]) .picker-hero-art,.picker-shell:has(#picker-form[data-current="07"]) .picker-hero-art,.picker-shell:has(#picker-form[data-current="08"]) .picker-hero-art,.picker-shell:has(#picker-form[data-current="09"]) .picker-hero-art,.picker-shell:has(#picker-form[data-current="10"]) .picker-hero-art,.picker-shell:has(#picker-form[data-current="11"]) .picker-hero-art{opacity:0}.picker-progress{z-index:5;transition:opacity .18s var(--ks-ease);gap:10px;display:grid;position:fixed;top:32px;left:max(56px,50vw - 694px)}.picker-progress-track{grid-template-columns:repeat(var(--pk-steps,11), minmax(0, 1fr));gap:5px;width:232px;display:grid}.picker-progress-track i{background:var(--ks-rule);height:2px;transition:background-color .26s var(--ks-ease)}.picker-progress-track i[data-off]{display:none}.picker-progress[data-step="1"] .picker-progress-track i:nth-child(-n+1),.picker-progress[data-step="2"] .picker-progress-track i:nth-child(-n+2),.picker-progress[data-step="3"] .picker-progress-track i:nth-child(-n+3),.picker-progress[data-step="4"] .picker-progress-track i:nth-child(-n+4),.picker-progress[data-step="5"] .picker-progress-track i:nth-child(-n+5),.picker-progress[data-step="6"] .picker-progress-track i:nth-child(-n+6),.picker-progress[data-step="7"] .picker-progress-track i:nth-child(-n+7),.picker-progress[data-step="8"] .picker-progress-track i:nth-child(-n+8),.picker-progress[data-step="9"] .picker-progress-track i:nth-child(-n+9),.picker-progress[data-step="10"] .picker-progress-track i:nth-child(-n+10),.picker-progress[data-step="11"] .picker-progress-track i{background:var(--ks-kinpaku)}.picker-progress-label{font-family:var(--ks-font);letter-spacing:.16em;text-transform:uppercase;color:var(--ks-text-muted);align-items:baseline;gap:10px;font-size:.68rem;display:flex}.picker-progress-index b{color:var(--ks-kinpaku);font-weight:500}.picker-progress-name{color:var(--ks-champagne);letter-spacing:.1em}#picker-form[data-current="01"] .picker-progress{opacity:0;visibility:hidden}.picker-palette{gap:48px;padding-block:clamp(32px,5svh,48px) clamp(24px,3.5svh,48px);display:grid}.picker-question-title{color:var(--ks-champagne);font-family:var(--ks-font-display);letter-spacing:-.005em;text-align:center;text-wrap:balance;margin:0;font-size:clamp(3rem,5.6vw,5.5rem);font-weight:100;line-height:1.04}.picker-palette-grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:center;gap:50px;display:grid}.picker-palette-subgrid{grid-template-rows:auto auto;align-self:start;gap:30px;min-width:0;display:grid}.picker-palette-subgrid>.picker-actions-stack{flex-direction:column;align-items:center;gap:14px;display:flex}.picker-deck-column{--picker-card-size:min(39vw, 660px, calc(100svh - 292px));justify-items:center;gap:16px;min-width:0;display:grid}.picker-deck-stage{width:calc(var(--picker-card-size) + 64px);height:var(--picker-card-size);perspective:1000px;perspective-origin:50% 42%;position:relative}.picker-deck-scroller{z-index:1;scroll-snap-type:y mandatory;scrollbar-width:none;overscroll-behavior:contain;position:absolute;inset:0;overflow:hidden auto}.picker-deck-scroller::-webkit-scrollbar{display:none}.picker-snap-point{height:var(--picker-card-size);scroll-snap-align:start;scroll-snap-stop:always}.picker-card-layer{z-index:2;pointer-events:none;transform-style:preserve-3d;position:absolute;inset:0}.picker-card{z-index:0;width:var(--picker-card-size);opacity:0;backface-visibility:hidden;transform-origin:50%;transform-style:preserve-3d;transition:opacity .24s var(--ks-ease), transform .24s var(--ks-ease);position:absolute;top:0;left:0}.picker-card[data-pos="0"]{z-index:5;opacity:1;transform:translate(0)rotateY(0)rotate(0)rotateX(0)translateZ(0)}.picker-card[data-pos="1"]{z-index:4;opacity:.52;transform:translate(11%)rotateY(0)rotate(6deg)rotateX(0)translateZ(-160px)}.picker-card[data-pos="2"]{z-index:3;opacity:.2;transform:translate(19%)rotateY(0)rotate(8deg)rotateX(0)translateZ(-180px)}.picker-card[data-pos="-1"]{z-index:4;opacity:.52;transform:translate(-11%)rotateY(0)rotate(-6deg)rotateX(0)translateZ(-160px)}.picker-card[data-pos="-2"]{z-index:3;opacity:.2;transform:translate(-19%)rotateY(0)rotate(-8deg)rotateX(0)translateZ(-180px)}.picker-card.is-far{opacity:0;transform:translate(0)rotateY(0)rotate(0)rotateX(0)translateZ(-220px)}.picker-card[data-exit=left]{z-index:6;animation:picker-card-exit-left .28s var(--ks-ease) both}.picker-card[data-exit=right]{z-index:6;animation:picker-card-exit-right .28s var(--ks-ease) both}@keyframes picker-card-exit-left{0%{opacity:1;transform:translate(0)rotateY(0)rotate(0)rotateX(0)translateZ(0)}52%{opacity:.78;transform:translate(-116%)rotateY(-24deg)rotate(0)rotateX(2deg)translateZ(-156px)}to{opacity:.52;transform:translate(-11%)rotateY(0)rotate(-6deg)rotateX(0)translateZ(-160px)}}@keyframes picker-card-exit-right{0%{opacity:1;transform:translate(0)rotateY(0)rotate(0)rotateX(0)translateZ(0)}52%{opacity:.78;transform:translate(116%)rotateY(24deg)rotate(0)rotateX(2deg)translateZ(-156px)}to{opacity:.52;transform:translate(11%)rotateY(0)rotate(6deg)rotateX(0)translateZ(-160px)}}.picker-card-face{width:var(--picker-card-size);aspect-ratio:1;background:var(--ks-lacquer-raised);border:1px solid var(--ks-rule);border-radius:2px;position:relative;overflow:hidden}.picker-cue-face img{object-fit:cover;width:100%;height:100%;display:block}.picker-seed-face{grid-template-columns:repeat(4,1fr);display:grid}.picker-seed-face span{background:var(--seed-color)}.picker-ring{left:var(--x);top:var(--y);z-index:2;cursor:grab;opacity:1;pointer-events:none;touch-action:none;width:45px;height:45px;transition:opacity .18s var(--ks-ease);background:0 0;border:0;border-radius:50%;padding:0;position:absolute;transform:translate(-50%,-50%)}.picker-ring:before{content:"";background:var(--marker-color);border:2px solid var(--ks-lacquer-raised);box-shadow:0 0 12px color-mix(in srgb, var(--ks-champagne) 16%, transparent), inset 0 0 0 1px color-mix(in srgb, var(--ks-champagne) 40%, transparent);border-radius:50%;position:absolute;inset:6px}.picker-ring:after{content:"";opacity:0;pointer-events:none;transition:opacity .18s var(--ks-ease), transform .18s var(--ks-ease);border:2px solid #fff;border-radius:50%;position:absolute;inset:1px;transform:scale(.78);box-shadow:0 0 0 1.5px oklch(15% .006 95/.6),inset 0 0 0 1.5px oklch(15% .006 95/.6)}.picker-palette:has(.picker-band[data-band=primary]:is(:hover,:focus-within)) .picker-card[data-pos="0"] .picker-ring[data-role=primary]:after,.picker-palette:has(.picker-band[data-band=secondary]:is(:hover,:focus-within)) .picker-card[data-pos="0"] .picker-ring[data-role=secondary]:after,.picker-palette:has(.picker-band[data-band=tertiary]:is(:hover,:focus-within)) .picker-card[data-pos="0"] .picker-ring[data-role=tertiary]:after,.picker-palette:has(.picker-band[data-band=neutral]:is(:hover,:focus-within)) .picker-card[data-pos="0"] .picker-ring[data-role=neutral]:after{opacity:1;transform:scale(1)}.picker-card[data-pos="0"] .picker-ring{pointer-events:auto}.picker-ring:is(:focus-visible,[data-dragging]){z-index:3}.picker-ring[data-dragging]{cursor:grabbing}.picker-ring[data-detached]{opacity:.4}.picker-ring:focus-visible{outline:none}.picker-ring:focus-visible:before{outline:2px solid var(--ks-patina);outline-offset:3px}.picker-deck-controls{grid-template-columns:44px minmax(120px,1fr) 44px;align-items:center;gap:14px;min-width:260px;display:grid}.picker-ring-guide{max-width:38ch;min-height:2.9em;color:var(--ks-text-muted);text-align:center;transition:opacity .2s var(--ks-ease);font-size:.82rem;line-height:1.45}.picker-ring-guide span{display:block}.picker-ring-guide[aria-hidden=true]{opacity:0}.picker-icon-button{border:1px solid var(--ks-rule);width:44px;height:44px;color:var(--ks-champagne);cursor:pointer;transition:background-color .18s var(--ks-ease), border-color .18s var(--ks-ease), color .18s var(--ks-ease);background:0 0;border-radius:2px;place-items:center;padding:0;display:inline-grid;position:relative}.picker-icon-button:hover{background:var(--ks-graphite);border-color:var(--ks-patina);color:var(--ks-patina)}.picker-icon-button:focus-visible,.picker-band:focus-visible,.picker-band-tool:focus-visible,.picker-tint:focus-visible,.picker-tint-close:focus-visible{outline:2px solid var(--ks-patina);outline-offset:3px}.picker-icon-button:disabled{color:var(--ks-text-mute-deep);cursor:not-allowed}.picker-icon-button svg,.picker-band-tool svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.picker-deck-count{color:var(--ks-text-muted);font-family:var(--ks-mono);font-size:var(--ks-type-mono-size);text-align:center;line-height:1.35}.picker-palette-panel{background:var(--ks-lacquer-raised);border:1px solid var(--ks-rule);border-radius:2px;gap:18px;min-width:0;padding:30px;display:grid;position:relative}.picker-palette-panel>legend{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.picker-reset{z-index:4;background:var(--ks-lacquer-raised);position:absolute;top:-22px;right:18px}.picker-bands{background:var(--ks-rule);border:1px solid var(--ks-rule);grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;display:grid}.picker-band-item{background:var(--ks-lacquer-raised);min-width:0}.picker-band-item:has(.picker-band:is(:hover,:focus-within)),.picker-band-item:has(.picker-band[data-dragging]){z-index:3;position:relative}.picker-band-item:has(.picker-band[data-dragging]){z-index:6}.picker-screen[data-screen="02"] .picker-palette-subgrid{z-index:2;position:relative}.picker-reset:is(:hover,:focus-visible){z-index:5}.picker-band{--band-color:var(--ks-graphite);--band-ink:var(--ks-champagne);background:var(--band-color);height:175px;color:var(--band-ink);position:relative}.picker-band output{font-family:var(--ks-mono);font-size:var(--ks-type-mono-size);letter-spacing:.04em;pointer-events:none;font-weight:500;line-height:1;position:absolute;bottom:14px;left:14px;right:14px}.picker-band-tools{opacity:0;pointer-events:none;transition:opacity .18s var(--ks-ease);flex-direction:column;gap:6px;display:flex;position:absolute;top:12px;right:10px}.picker-band:hover .picker-band-tools,.picker-band:focus-within .picker-band-tools{opacity:1;pointer-events:auto}.picker-band-item[data-tint-open] .picker-band-tool:is([data-copy-color],[data-custom-color]){opacity:0;pointer-events:none}.picker-band-tool{width:32px;height:32px;color:inherit;cursor:pointer;opacity:.72;transition:opacity .18s var(--ks-ease);background:0 0;border:0;border-radius:2px;place-items:center;padding:0;display:grid;position:relative}.picker-band-tool:is(:hover,:focus-visible){opacity:1}.picker-band-tool svg{width:17px;height:17px}.picker-tip:after{content:attr(data-tip);z-index:12;opacity:0;background:var(--ks-lacquer-raised);border:1px solid var(--ks-rule);width:max-content;max-width:210px;color:var(--ks-text);pointer-events:none;transition:opacity .18s var(--ks-ease), transform .18s var(--ks-ease);border-radius:2px;padding:7px 9px;font-size:.76rem;line-height:1.25;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%,3px)}.picker-tip:hover:after,.picker-tip:focus-visible:after{opacity:1;transform:translate(-50%)}.picker-band-tool.picker-tip:after{inset:50% calc(100% + 8px) auto auto;transform:translate(3px,-50%)}.picker-band-tool.picker-tip:is(:hover,:focus-visible):after{transform:translateY(-50%)}.picker-native-color{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;overflow:hidden}.picker-band-grip{z-index:2;width:36px;height:36px;color:inherit;cursor:grab;opacity:.42;touch-action:none;transition:opacity .18s var(--ks-ease);background:0 0;border:0;border-radius:2px;place-items:center;padding:0;display:grid;position:absolute;top:5px;left:5px}.picker-band-grip svg{fill:currentColor;stroke:none;width:22px;height:22px}.picker-band:hover .picker-band-grip,.picker-band:focus-within .picker-band-grip{opacity:.9}.picker-band-grip:focus-visible{opacity:1;outline:2px solid var(--ks-patina);outline-offset:3px}.picker-band-grip[data-dragging]{cursor:grabbing;opacity:1}.picker-band-grip.picker-tip:after{inset:50% auto auto calc(100% + 8px);transform:translate(-3px,-50%)}.picker-band-grip.picker-tip:is(:hover,:focus-visible):after{transform:translateY(-50%)}.picker-band-grip[data-dragging].picker-tip:after{opacity:0;transition:none}.picker-band-alert{z-index:2;background:var(--ks-lacquer-raised);border:1px solid var(--ks-rule);width:24px;height:24px;color:var(--ks-vermilion);cursor:help;border-radius:2px;place-items:center;display:grid;position:absolute;bottom:10px;right:10px}.picker-band-alert[hidden]{display:none}.picker-band-alert svg{width:16px;height:16px}.picker-band-alert:focus-visible{outline:2px solid var(--ks-patina);outline-offset:2px}.picker-band-alert-tip{z-index:12;opacity:0;background:var(--ks-lacquer-raised);border:1px solid var(--ks-rule);width:max-content;max-width:240px;color:var(--ks-text);pointer-events:none;transition:opacity .18s var(--ks-ease), transform .18s var(--ks-ease);border-radius:2px;gap:6px;padding:8px 10px;font-size:.76rem;line-height:1.35;display:grid;position:absolute;bottom:44px;right:6px;transform:translateY(3px)}.picker-band-alert-tip span{display:block}.picker-band-alert-tip:after{content:"";background:var(--ks-lacquer-raised);border-right:1px solid var(--ks-rule);border-bottom:1px solid var(--ks-rule);width:8px;height:8px;position:absolute;bottom:-5px;right:13px;transform:rotate(45deg)}.picker-band-alert:is(:hover,:focus-visible)+.picker-band-alert-tip{opacity:1;transform:translateY(0)}.picker-band[data-dragging] .picker-band-alert-tip{opacity:0;transition:none}.picker-band[data-dragging]{z-index:6;cursor:grabbing}.picker-band:after{content:"";opacity:0;outline:1px solid color-mix(in srgb, currentColor 55%, transparent);outline-offset:-1px;pointer-events:none;transition:opacity .14s var(--ks-ease);position:absolute;inset:0}.picker-band[data-dragging]:after{opacity:1}.picker-band-status{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.picker-band-grip,.picker-band:after{transition:none}}.picker-band-foot{place-items:center;height:46px;display:grid;position:relative}.picker-band-foot h2{color:var(--ks-champagne);font-size:var(--ks-type-title-size);font-weight:var(--ks-type-title-weight);line-height:var(--ks-type-title-line)}.picker-band-item[data-tint-open] .picker-band-foot h2{visibility:hidden}.picker-bands--compact .picker-band{height:calc(var(--pk-band,96px) - 32px)}.picker-bands--compact .picker-band output{text-align:right;bottom:8px;left:8px;right:8px}.picker-bands--compact .picker-band-grip{width:30px;height:30px;top:3px;left:3px}.picker-bands--compact .picker-band-grip svg{width:19px;height:19px}.picker-bands--compact .picker-band-alert{z-index:1;top:3px;bottom:auto;right:3px}.picker-bands--compact .picker-band-alert-tip{bottom:calc(100% + 9px);right:3px}.picker-bands--compact .picker-band-foot{height:30px}.picker-bands--compact .picker-band-foot h2{font-size:.96rem}.picker-tint-strip{z-index:8;background:var(--ks-lacquer-raised);border:1px solid var(--ks-rule);display:flex;position:absolute;top:9px;left:0}.picker-band-item[data-band-item=secondary] .picker-tint-strip{left:-56px}.picker-band-item:is([data-band-item=tertiary],[data-band-item=neutral]) .picker-tint-strip{left:auto;right:0}.picker-tint-strip[hidden]{display:none}.picker-tint,.picker-tint-close{border:0;border-right:1px solid var(--ks-rule);cursor:pointer;border-radius:0;width:28px;height:28px;padding:0;position:relative}.picker-tint{background:var(--tint-color)}.picker-tint[data-current]:after{content:"";background:var(--ks-champagne);height:2px;position:absolute;bottom:3px;left:8px;right:8px}.picker-tint-close{background:var(--ks-lacquer-raised);color:var(--ks-champagne);border-right:0;font-size:1.1rem;line-height:1}.picker-preview{--pv-primary:var(--ks-champagne);--pv-secondary:var(--ks-patina);--pv-tertiary:var(--ks-kinpaku);--pv-neutral:var(--ks-lacquer-raised);--pv-n-ink:var(--ks-champagne);--pv-p-ink:var(--ks-champagne);--pv-surface-2:color-mix(in oklab, var(--pv-neutral) 92%, var(--pv-n-ink));--pv-bone:color-mix(in oklab, var(--pv-neutral) 62%, var(--pv-n-ink));--pv-strong:color-mix(in oklab, var(--pv-neutral) 22%, var(--pv-n-ink));--pv-secondary-wash:color-mix(in oklab, var(--pv-secondary) 28%, var(--pv-neutral));--pv-tertiary-wash:color-mix(in oklab, var(--pv-tertiary) 22%, var(--pv-neutral));aspect-ratio:16/7;grid-template-columns:minmax(0,1fr) auto;gap:3.22916%;width:100%;display:grid}.pv-desktop,.pv-phone{--pv-text:1;background:var(--pv-neutral);border:1px solid var(--ks-rule);min-width:0;min-height:0;overflow:hidden;container-type:inline-size}.pv-desktop{--pv-x:.573013cqw;border-radius:4px;grid-template-rows:auto 1fr;display:grid}.pv-phone{--pv-x:2.13348cqw;aspect-ratio:9/19;border-radius:10px;grid-template-rows:auto 1fr auto;height:100%;display:grid}.pv-nav{gap:calc(4.6559 * var(--pv-x));padding:calc(4.6559 * var(--pv-x)) calc(5.58708 * var(--pv-x));grid-template-columns:auto 1fr auto;align-items:center;display:grid}.pv-logo{width:calc(3.72472 * var(--pv-x));aspect-ratio:1;background:var(--pv-primary);border-radius:50%}.pv-nav-bars{justify-content:flex-end;gap:calc(3.72472 * var(--pv-x));display:flex}.pv-nav-bars i{width:calc(8.38062 * var(--pv-x));height:calc(1.39677 * var(--pv-x));background:var(--pv-bone);border-radius:2px;display:block}.pv-pill{width:calc(14.8989 * var(--pv-x));height:calc(5.58708 * var(--pv-x));background:var(--pv-primary);color:var(--pv-neutral);border-radius:2px;place-items:center;display:grid}.pv-pill:after{content:"";width:calc(8.5 * var(--pv-x));height:calc(1.3 * var(--pv-x));background:currentColor;border-radius:2px}.pv-hero{--pv-x:.523349cqw;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:8%;min-height:0;padding:1.06729% 8% 3.73518%;display:grid;container-type:size}.pv-hero-copy{gap:4.85493cqh;display:grid}.pv-eyebrow{width:22%;height:calc(2.42746 * var(--pv-text) * var(--pv-x));background:var(--pv-tertiary);border-radius:2px}.pv-headline{gap:4.24806cqh;margin-block:1.21374cqh 1.8206cqh;display:grid}.pv-headline i{width:88%;height:calc(4.85492 * var(--pv-text) * var(--pv-x));background:color-mix(in oklab, var(--pv-primary) 80%, var(--pv-strong));border-radius:2px;display:block}.pv-headline i:last-child{width:58%}.pv-copy-bar{width:64%;height:calc(3.03433 * var(--pv-text) * var(--pv-x));background:var(--pv-bone);border-radius:2px}.pv-actions{gap:calc(4.24806 * var(--pv-x));margin-top:6.06866cqh;display:flex}.pv-actions i{width:calc(23.0609 * var(--pv-x));height:calc(7.88925 * var(--pv-x));background:var(--pv-primary);border-radius:2px}.pv-actions i:last-child{border:1px solid var(--pv-secondary);background:0 0}.pv-image{aspect-ratio:4/3;background:linear-gradient(135deg, var(--pv-secondary-wash), color-mix(in oklab, var(--pv-secondary) 52%, var(--pv-neutral)));border:1px solid var(--pv-secondary);border-radius:2px;width:100%;position:relative}.pv-image:after{content:"";top:calc(5.46179 * var(--pv-x));right:calc(5.46179 * var(--pv-x));width:calc(4.24806 * var(--pv-x));aspect-ratio:1;background:var(--pv-tertiary);border-radius:50%;position:absolute}.pv-avatar{width:calc(4.19031 * var(--pv-x));aspect-ratio:1;border:1px solid var(--pv-bone);border-radius:50%}.pv-phone-top{padding:calc(4.19031 * var(--pv-x)) calc(4.6559 * var(--pv-x));background:var(--pv-surface-2);border-bottom:1px solid var(--ks-rule);justify-content:space-between;align-items:center;display:flex}.pv-phone-body{--pv-x:1.80709cqw;grid-template-rows:minmax(0,1fr) auto auto;row-gap:4.80206%;min-height:0;padding:8.94043% 9.93376% 9.93376%;display:grid;container-type:size}.pv-phone-body .pv-image:after{top:calc(6.17364 * var(--pv-x));right:calc(6.17364 * var(--pv-x));width:calc(4.80172 * var(--pv-x))}.pv-phone-body>.pv-image{align-self:center;max-height:100%}.pv-mini-card{gap:calc(3.4298 * var(--pv-x));padding:calc(5.48768 * var(--pv-x)) calc(6.17364 * var(--pv-x));background:var(--pv-surface-2);border:1px solid var(--ks-rule);border-radius:2px;display:grid}.pv-mini-card i,.pv-mini-card span{height:calc(2.05788 * var(--pv-x));background:var(--pv-bone);border-radius:2px;display:block}.pv-mini-card span{width:62%;height:calc(4.11576 * var(--pv-x));background:var(--pv-secondary)}.pv-mini-card+.pv-mini-card span{background:var(--pv-tertiary)}.pv-tabbar{padding:calc(3.72472 * var(--pv-x)) 0;border-top:1px solid var(--ks-rule);justify-content:space-evenly;align-items:center;display:flex}.pv-tabbar i{width:calc(2.32795 * var(--pv-x));aspect-ratio:1;background:var(--pv-bone);border-radius:50%}.pv-tabbar i:first-child{background:var(--pv-primary)}.picker-modes{--pk-pv-natural:min(495.5px, calc(41.667vw - 129.5px));--pk-pv-scale:.62;--pk-mode-frame:calc(var(--pk-pv-natural) * 7 / 16 * var(--pk-pv-scale));--pk-mode-pad:clamp(14px, 2svh, 24px);--pk-mode-gap:clamp(16px, 2.2svh, 24px);justify-items:center;gap:clamp(16px,2.6svh,36px);padding-block:clamp(20px,3svh,44px) clamp(14px,2.2svh,34px);display:grid}@media (height>=1040px){.picker-modes{--pk-pv-scale:.68}}@media (height<=760px){.picker-modes{--pk-pv-scale:.58;--pk-mode-pad:12px;--pk-mode-gap:12px;gap:14px;padding-block:14px 10px}}@media (height<=760px) and (width>=1500px){.picker-modes{--pk-pv-scale:.5}}@media (height<=700px) and (width>=1500px){.picker-modes{--pk-pv-scale:.47}}.picker-modes-grid{gap:var(--pk-mode-gap);border:0;grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(2,minmax(0,1fr));width:min(100%,860px);margin:0;padding:0;display:grid}.picker-modes-grid legend{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.picker-mode-tile{padding:var(--pk-mode-pad);background:var(--ks-lacquer-raised);border:1px solid var(--ks-rule);cursor:pointer;transition:border-color .18s var(--ks-ease), background-color .18s var(--ks-ease);grid-template-rows:auto 1fr;gap:clamp(12px,1.9svh,20px);display:grid;position:relative}.picker-mode-tile input{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.picker-mode-tile:hover{border-color:color-mix(in oklab, var(--ks-patina) 45%, var(--ks-rule))}.picker-mode-tile:has(input:checked){background:color-mix(in oklab, var(--ks-patina) 9%, var(--ks-lacquer-raised));border-color:var(--ks-patina)}.picker-mode-tile:has(input:focus-visible){outline:2px solid var(--ks-patina-deep);outline-offset:-2px;z-index:1}.picker-mode-preview{height:var(--pk-mode-frame);aspect-ratio:16/7;justify-self:center;width:auto;max-width:100%}.picker-mode-preview--exact{display:block;position:relative}.picker-mode-preview--exact>.picker-preview{--pv-primary:#195856;--pv-secondary:#5f7c7a;--pv-tertiary:#3a958b;--pv-neutral:#edefef;--pv-n-ink:var(--pk-ink-dark);width:var(--pk-pv-natural);transform:scale(var(--pk-pv-scale));transform-origin:0 0;position:absolute;top:0;left:0}.picker-preview--ops{--po-ink:var(--pv-bone);--po-ink-soft:color-mix(in oklab, var(--pv-bone) 72%, var(--pv-neutral));--po-wash:color-mix(in oklab, var(--pv-tertiary) 12%, var(--pv-neutral));--po-rule:color-mix(in oklab, var(--pv-neutral) 86%, var(--pv-n-ink))}.picker-preview--ops .pv-nav{border-bottom:1px solid var(--po-rule)}.po-body{--pv-x:.484972cqw;grid-template-columns:18.68% 51.84% minmax(0,1fr);min-height:0;display:grid;container-type:size}.po-side{padding:6.38cqh calc(2.86 * var(--pv-x)) 0 calc(2.22 * var(--pv-x));border-right:1px solid var(--po-rule);align-content:start;gap:5.25cqh;display:grid}.po-item{align-items:center;gap:calc(3.39 * var(--pv-x));padding-left:calc(2.84 * var(--pv-x));display:flex}.po-dot{width:calc(4.07 * var(--pv-x));aspect-ratio:1;background:var(--po-ink);border-radius:50%;flex:none}.po-line{width:calc(13.23 * var(--pv-x));height:calc(1.53 * var(--pv-text) * var(--pv-x));background:var(--po-ink);border-radius:2px}.po-item--on{background:var(--pv-primary);border-radius:2px;padding-block:2.97cqh}.po-item--on .po-dot,.po-item--on .po-line{background:var(--pv-neutral)}.po-main{min-width:0;padding:8.14cqh calc(4.68 * var(--pv-x)) 0 calc(5.23 * var(--pv-x));border-right:1px solid var(--po-rule);align-content:start;display:grid}.po-chart{align-items:flex-end;gap:calc(7.23 * var(--pv-x));height:33.26cqh;margin-inline:calc(9.52 * var(--pv-x)) calc(14.63 * var(--pv-x));padding:0 calc(4.29 * var(--pv-x)) calc(2.56 * var(--pv-x)) calc(4.46 * var(--pv-x));display:flex;position:relative}.po-chart:before{content:"";right:0;bottom:calc(2.56 * var(--pv-x));background:var(--po-ink-soft);height:1px;position:absolute;left:0}.po-chart i{width:calc(6.92 * var(--pv-x));height:var(--h);background:var(--po-ink-soft);flex:none}.po-chart .po-peak{background:var(--pv-primary)}.po-chart i:after{content:"";width:1px;height:calc(1.29 * var(--pv-x));margin-left:calc(3.19 * var(--pv-x));background:var(--po-ink-soft);position:absolute;bottom:0}.po-divider{background:var(--po-rule);height:1px;margin-top:6.46cqh}.po-rows{gap:.5cqh;margin-top:.85cqh;display:grid}.po-row{align-items:center;gap:calc(4.9 * var(--pv-x));height:11.61cqh;padding-left:calc(3.41 * var(--pv-x));display:flex}.po-row .po-dot{width:calc(3.85 * var(--pv-x))}.po-cell{width:calc(var(--w) * var(--pv-x));height:calc(1.45 * var(--pv-text) * var(--pv-x));background:var(--po-ink-soft);border-radius:2px;flex:none}.po-cell+.po-cell{margin-left:calc(12.71 * var(--pv-x))}.po-row--on{background:var(--po-wash)}.po-row--on .po-dot{background:var(--pv-primary)}.po-panel{min-width:0;padding:6.82cqh calc(6.71 * var(--pv-x)) 0 calc(7.21 * var(--pv-x));align-content:start;display:grid}.po-heading{width:calc(17.38 * var(--pv-x));height:calc(1.62 * var(--pv-text) * var(--pv-x));background:var(--pv-primary);border-radius:2px}.po-field{height:calc(8.75 * var(--pv-x));border:1px solid var(--pv-primary);border-radius:2px;align-items:center;margin-top:5.81cqh;display:flex}.po-chev{width:calc(2 * var(--pv-x));aspect-ratio:1;margin:0 calc(3.14 * var(--pv-x)) 0 auto;border-right:1px solid var(--po-ink);border-bottom:1px solid var(--po-ink);align-self:center;transform:rotate(45deg)}.po-switch{height:calc(5.34 * var(--pv-x));align-items:center;margin-top:8.39cqh;display:flex}.po-switch+.po-switch{margin-top:6.19cqh}.po-label{width:calc(17.22 * var(--pv-x));height:calc(1.62 * var(--pv-text) * var(--pv-x));background:var(--po-ink);border-radius:2px;flex:none}.po-toggle{width:calc(10.29 * var(--pv-x));height:calc(5.34 * var(--pv-x));background:var(--po-ink);border-radius:999px;flex:none;margin-left:auto;position:relative}.po-toggle--on{background:var(--pv-primary)}.po-toggle:after{content:"";top:calc(.66 * var(--pv-x));left:calc(.66 * var(--pv-x));width:calc(4.02 * var(--pv-x));aspect-ratio:1;background:var(--pv-neutral);border-radius:50%;position:absolute}.po-toggle--on:after{right:calc(.66 * var(--pv-x));left:auto}.po-phone-body{--pv-x:1.45744cqw;grid-template-columns:minmax(0,1fr);align-content:start;min-height:0;padding:16.19% 4.57% 14.63% 4.27%;display:grid;container-type:size}.po-phone-body .po-chart{gap:calc(6.79 * var(--pv-x));height:36.93cqh;margin-inline:calc(.67 * var(--pv-x)) calc(2.92 * var(--pv-x));padding:0 calc(3.51 * var(--pv-x)) calc(3.36 * var(--pv-x)) calc(3.36 * var(--pv-x))}.po-phone-body .po-chart:before{bottom:calc(3.36 * var(--pv-x))}.po-phone-body .po-chart i{width:calc(6.21 * var(--pv-x))}.po-phone-body .po-chart i:after{height:calc(1.94 * var(--pv-x));margin-left:calc(2.73 * var(--pv-x))}.po-phone-body .po-field{height:calc(11.81 * var(--pv-x));margin-top:10.47cqh}.po-phone-body .po-chev{width:calc(2.77 * var(--pv-x));margin:0 calc(5.03 * var(--pv-x)) 0 auto;align-self:center}.po-prow{align-items:center;gap:calc(4.49 * var(--pv-x));height:18.47cqh;padding-left:calc(2.24 * var(--pv-x));display:flex}.po-field+.po-prow{margin-top:3.85cqh}.po-prow+.po-prow{border-top:1px solid var(--po-rule)}.po-phone-body .po-dot{width:calc(5.76 * var(--pv-x))}.po-phone-body .po-label{width:calc(18.62 * var(--pv-x));height:calc(2.17 * var(--pv-x))}.po-phone-body .po-toggle{width:calc(12.64 * var(--pv-x));height:calc(7.25 * var(--pv-x))}.po-phone-body .po-toggle:after{top:calc(.9 * var(--pv-x));left:calc(.9 * var(--pv-x));width:calc(5.46 * var(--pv-x))}.po-phone-body .po-toggle--on:after{right:calc(.9 * var(--pv-x));left:auto}.po-phone-body .po-chev--next{width:calc(2.99 * var(--pv-x));margin:0 calc(4.86 * var(--pv-x)) 0 auto;border-top:1px solid var(--po-ink);border-bottom:0;align-self:center}.picker-preview--docs{--pd-ink:var(--pv-bone);--pd-quote:var(--pv-tertiary);--pd-strong:color-mix(in oklab, var(--pv-primary) 80%, var(--pv-strong));--pd-rule:color-mix(in oklab, var(--pv-neutral) 86%, var(--pv-n-ink))}.picker-preview--docs .pv-nav{border-bottom:1px solid var(--pd-rule)}.pd-body{--pv-x:.484972cqw;grid-template-columns:23.75% minmax(0,1fr);min-height:0;display:grid;container-type:size}.pd-side{padding:9.24cqh 0 0 calc(7.15 * var(--pv-x));border-right:1px solid var(--pd-rule);align-content:start;gap:8.69cqh;display:grid}.pd-item{align-items:center;gap:calc(3.03 * var(--pv-x));display:flex}.pd-item i{width:calc(2.48 * var(--pv-x));aspect-ratio:1;background:var(--pd-ink);border-radius:50%}.pd-item span{width:calc(19.36 * var(--pv-x));height:calc(1.27 * var(--pv-text) * var(--pv-x));background:var(--pd-ink);border-radius:2px}.pd-item--on i{background:var(--pv-primary)}.pd-item--on span{background:var(--pv-tertiary)}.pd-main{min-width:0;padding:9.74cqh calc(50.06 * var(--pv-x)) 0 calc(16.94 * var(--pv-x));align-content:start;display:grid}.pd-heading{width:var(--w,100%);height:calc(2.53 * var(--pv-text) * var(--pv-x));background:var(--pd-strong);border-radius:2px}.pd-para{gap:3.74cqh;display:grid}.pd-para--lede{margin-top:6.38cqh}.pd-para+.pd-para{margin-top:9.9cqh}.pd-para--lede+.pd-para{margin-top:9.46cqh}.pd-para i{width:var(--w,100%);height:calc(1.1 * var(--pv-text) * var(--pv-x));background:var(--pd-ink);border-radius:2px}.pd-note{gap:calc(3.41 * var(--pv-x));height:14.03cqh;padding:3.52cqh calc(4.4 * var(--pv-x)) 0 calc(5.17 * var(--pv-x));background:var(--pv-surface-2);border-left:calc(1.27 * var(--pv-x)) solid var(--pv-primary);border-radius:0 2px 2px 0;margin-top:7.37cqh;display:flex}.pd-note-dot{width:calc(2.64 * var(--pv-x));aspect-ratio:1;background:var(--pd-quote);border-radius:50%;flex:none;align-self:start}.pd-note-lines{flex:1;align-content:start;gap:3.69cqh;min-width:0;display:grid}.pd-note-lines i{width:var(--w,100%);height:calc(.83 * var(--pv-text) * var(--pv-x));background:var(--pd-quote);border-radius:2px}.pd-phone-body{--pv-x:1.857cqw;grid-template-columns:minmax(0,1fr);align-content:start;min-height:0;padding:8.84% 11.42% 9.33% 10.23%;display:grid;container-type:size}.pd-crumb{width:calc(13.11 * var(--pv-x));height:calc(1.77 * var(--pv-x));background:var(--pd-ink);border-radius:2px;margin-inline:auto}.pd-phone-body .pd-heading{height:calc(3.14 * var(--pv-x));margin-top:9.62cqh}.pd-phone-body .pd-para{gap:4.1cqh}.pd-phone-body .pd-para i{height:calc(1.37 * var(--pv-x))}.pd-phone-body .pd-para--lede{gap:3.62cqh;margin-top:6.55cqh}.pd-phone-body .pd-para+.pd-para{margin-top:10.03cqh}.pd-phone-body .pd-para--lede+.pd-para{margin-top:11.4cqh}.pd-phone-body .pd-note{gap:calc(3.34 * var(--pv-x));height:14.27cqh;padding:4.37cqh calc(1.37 * var(--pv-x)) 0 calc(3.14 * var(--pv-x));border-left-width:calc(1.23 * var(--pv-x));margin-top:6.76cqh}.pd-phone-body .pd-note-dot{width:calc(3.34 * var(--pv-x))}.pd-phone-body .pd-note-lines{gap:2.8cqh}.pd-phone-body .pd-note-lines i{height:calc(1.37 * var(--pv-x))}.picker-preview--gallery{--pg-ink:var(--pv-bone)}.picker-preview--gallery .pv-image{aspect-ratio:auto}.picker-preview--gallery .pv-image:after{top:calc(3.41 * var(--pv-x));right:calc(3.15 * var(--pv-x));width:calc(3.37 * var(--pv-x));background:var(--pv-primary)}.pg-body{--pv-x:.48764cqw;align-content:start;min-height:0;display:grid;container-type:size}.pg-row{grid-template-columns:calc(73.39 * var(--pv-x)) minmax(0, 1fr);column-gap:calc(10.55 * var(--pv-x));height:37.31cqh;padding-inline:calc(31.34 * var(--pv-x)) calc(32.13 * var(--pv-x));margin-top:2.31cqh;display:grid}.pg-row--flip{grid-template-columns:minmax(0, 1fr) calc(73.39 * var(--pv-x));column-gap:calc(11.18 * var(--pv-x));padding-inline:calc(34.97 * var(--pv-x)) calc(33.07 * var(--pv-x));margin-top:7.28cqh}.pg-row .pv-image{height:100%}.pg-cap{align-content:start;gap:3.1cqh;padding-top:12.39cqh;display:grid}.pg-cap i{width:var(--w,100%);height:calc(1.5 * var(--pv-text) * var(--pv-x));background:var(--pg-ink);border-radius:2px}.pg-cap i.pg-cap-title{height:calc(2.01 * var(--pv-text) * var(--pv-x));margin-bottom:.93cqh}.pg-rail{height:calc(3.25 * var(--pv-x));padding-inline:calc(7.78 * var(--pv-x)) calc(8.24 * var(--pv-x));align-items:center;margin-top:4.95cqh;display:flex}.pg-arrow{width:calc(2.3 * var(--pv-x));aspect-ratio:1;border-left:1px solid var(--pg-ink);border-bottom:1px solid var(--pg-ink);flex:none;transform:rotate(45deg)}.pg-arrow--next{border-right:1px solid var(--pg-ink);border-top:1px solid var(--pg-ink);border-bottom:0;border-left:0}.pg-track{align-items:center;gap:calc(3.7 * var(--pv-x));margin-left:calc(7.26 * var(--pv-x));margin-right:auto;display:flex}.pg-track i{width:calc(var(--w) * var(--pv-x));height:calc(1.48 * var(--pv-x));background:var(--pg-ink);border-radius:2px;flex:none}.pg-track i.pg-track-on{background:var(--pv-primary)}.pg-phone-body{--pv-x:1.77072cqw;grid-template-columns:minmax(0,1fr);align-content:start;min-height:0;padding:5.65% 8.34% 10.49%;display:grid;container-type:size}.pg-phone-body .pv-image{height:33.27cqh}.pg-phone-body>.pg-cap+.pv-image{height:31.95cqh;margin-top:5.59cqh}.pg-phone-body .pv-image:after{top:calc(3.02 * var(--pv-x));right:calc(3.26 * var(--pv-x));width:calc(3.4 * var(--pv-x))}.pg-phone-body .pg-cap{gap:2.93cqh;margin-top:4.15cqh;padding-top:0}.pg-phone-body>.pg-cap~.pg-cap{margin-top:3.68cqh}.pg-phone-body .pg-cap i{height:calc(1.52 * var(--pv-x))}.pg-phone-body .pg-cap i.pg-cap-title{height:calc(1.52 * var(--pv-x));margin-bottom:.28cqh}.picker-preview--gallery .pv-tabbar{justify-content:center;gap:calc(5.12149 * var(--pv-x))}.picker-mode-copy{align-content:start;gap:10px;display:grid}.picker-mode-goal{color:var(--ks-text-muted);font-size:16px;line-height:1.5}.picker-mode-pills{flex-wrap:wrap;gap:6px;display:flex}.picker-mode-pills i{color:var(--ks-champagne);letter-spacing:.015em;border:1px solid color-mix(in oklab, var(--ks-champagne) 24%, var(--ks-rule));transition:color .18s var(--ks-ease), border-color .18s var(--ks-ease);border-radius:2px;padding:4px 9px;font-size:12.5px;font-style:normal}.picker-mode-tile:hover .picker-mode-pills i{border-color:color-mix(in oklab, var(--ks-patina) 30%, var(--ks-rule))}.picker-mode-tile:has(input:checked) .picker-mode-pills i{color:color-mix(in oklab, var(--ks-patina) 85%, var(--ks-champagne));border-color:color-mix(in oklab, var(--ks-patina) 55%, var(--ks-rule))}.picker-modes-note{max-width:52ch;color:var(--ks-text-muted);text-align:center;text-wrap:balance;font-size:1.08rem;line-height:1.5}.picker-modes-note strong,.picker-mode-goal strong{color:var(--ks-text);font-weight:600}.picker-strategy{gap:48px;padding-block:clamp(32px,5svh,48px) clamp(24px,3.5svh,48px);display:grid}.picker-strategy-grid{--pk-column:calc(100svh - 346px);max-height:var(--pk-column);grid-template-columns:minmax(340px,420px) minmax(0,1fr);align-items:stretch;gap:50px;display:grid}.picker-strategy-options{background:var(--ks-lacquer-raised);border:1px solid var(--ks-rule);border-radius:2px;gap:0;min-width:0;padding:0;display:grid;overflow:hidden}.picker-strategy-options>legend,.picker-strategy-option input{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.picker-strategy-option{border:0;border-bottom:1px solid var(--ks-rule);cursor:pointer;transition:background-color .18s var(--ks-ease), color .18s var(--ks-ease);background:0 0;border-radius:0;align-items:start;gap:6px;padding:20px 24px 20px 28px;display:grid;position:relative}.picker-strategy-option:last-child{border-bottom:0}.picker-strategy-option:before{content:"";width:3px;transition:background-color .18s var(--ks-ease);background:0 0;position:absolute;inset:0 auto 0 0}.picker-strategy-option:hover{background:color-mix(in oklab, var(--ks-patina) 9%, var(--ks-lacquer-raised))}.picker-strategy-option:hover:before{background:color-mix(in oklab, var(--ks-patina) 55%, transparent)}.picker-strategy-option:has(input:checked){background:color-mix(in oklab, var(--ks-patina) 14%, var(--ks-lacquer-raised))}.picker-strategy-option:has(input:checked):before{background:var(--ks-patina)}.picker-strategy-option:hover :is(.picker-strategy-title,.picker-type-sample-heading),.picker-strategy-option:has(input:checked) :is(.picker-strategy-title,.picker-type-sample-heading){color:var(--ks-patina)}.picker-strategy-option:has(input:focus-visible){outline:2px solid var(--ks-patina-deep);outline-offset:-2px;z-index:1}.picker-strategy-copy{gap:6px;display:grid}.picker-strategy-copy>.picker-strategy-title{color:var(--ks-champagne);font-family:var(--ks-font-display);letter-spacing:-.01em;transition:color .18s var(--ks-ease);font-size:1.22rem;font-weight:400;line-height:1.15}.picker-strategy-copy>.picker-strategy-desc{color:var(--ks-text-muted);font-size:.88rem;line-height:1.5}.picker-strategy-grid>.picker-type-rail{grid-template-rows:minmax(0,1fr);height:100%;min-height:0}.picker-screen[data-screen="03"] .picker-strategy-grid{max-height:calc(100svh - var(--pk-chrome,346px))}.picker-screen[data-screen="03"] .picker-strategy-grid>.picker-type-rail{grid-template-rows:auto auto auto;align-self:start;height:auto}.picker-strategy-choices.picker-type-options{max-height:var(--pk-column);grid-template-rows:none;grid-auto-rows:min(108px, calc((var(--pk-column) - 2px) / 4));align-self:start}.picker-strategy-choices.picker-type-options .picker-strategy-option{align-content:center}.picker-strategy-choices .picker-strategy-copy{gap:2px}.picker-strategy-choices .picker-strategy-title{color:var(--ks-champagne);font-family:var(--ks-font);letter-spacing:-.015em;transition:color .18s var(--ks-ease);font-size:24px;font-weight:400;line-height:1.15}.picker-strategy-choices .picker-strategy-desc{max-width:34ch;font-size:15px;line-height:1.4}.picker-artboard{--pv-primary:var(--ks-champagne);--pv-secondary:var(--ks-patina);--pv-tertiary:var(--ks-kinpaku);--pv-neutral:var(--ks-lacquer-raised);--pv-n-ink:var(--ks-champagne);--pv-p-ink:var(--ks-champagne);--pv-t-ink:var(--ks-dark-ink);--pv-p-on-n:var(--pv-primary);--pv-t-on-n:var(--pv-tertiary);--pv-t-on-p:var(--pv-tertiary);--pv-p-on-p:var(--pk-ink-dark);--pv-t-on-t:var(--pk-ink-light);--pv-p-on-i:var(--pk-ink-light);--pv-surface-2:color-mix(in oklab, var(--pv-neutral) 92%, var(--pv-n-ink));--pv-bone:color-mix(in oklab, var(--pv-neutral) 62%, var(--pv-n-ink));--pv-muted:color-mix(in oklab, var(--pv-neutral) 84%, var(--pv-n-ink));--pv-strong:color-mix(in oklab, var(--pv-neutral) 22%, var(--pv-n-ink));--pvs-ground:var(--pv-neutral);--pvs-ink:var(--pv-n-ink);--pvs-surface:var(--pv-surface-2);--pvs-headline:var(--pv-strong);--pvs-eyebrow:var(--pv-bone);--pvs-copy:var(--pv-muted);--pvs-title:var(--pv-strong);--pvs-cta:var(--pv-primary);--pvs-cta-ink:var(--pv-p-ink);--pvs-cta-text:var(--pv-p-on-p);--pvs-signal:var(--pv-primary);--pvs-signal-ink:var(--pv-p-ink);--pvs-headline-text:var(--pvs-headline);--pvs-mark-text:var(--pv-p-on-n);--pvs-accent-text:var(--pv-p-on-n);--pvs-signal-text:var(--pv-p-on-p);--pvs-copy-mix:34%;--pvs-bars-mix:42%;--pvs-ghost:color-mix(in oklab, var(--pv-neutral) 88%, var(--pv-secondary));--pvs-ghost-edge:color-mix(in oklab, var(--pv-secondary) 55%, var(--pv-neutral));--pvs-image:var(--pv-surface-2);--pvs-image-a:color-mix(in oklab, var(--pv-secondary) 26%, var(--pv-neutral));--pvs-image-b:color-mix(in oklab, var(--pv-secondary) 50%, var(--pv-neutral));--pvs-image-edge:color-mix(in oklab, var(--pv-secondary) 58%, var(--pv-neutral));--pvs-bars:var(--pv-muted);--pvs-rule:var(--ks-rule);--pvs-accent-a:var(--pv-bone);--pvs-accent-b:var(--pv-bone);--pvs-accent-c:var(--pv-primary);--pvs-accent-d:var(--pv-bone);--ps-proof-gap:25px;--pvs-radius-frame:4px;--pvs-radius-frame-phone:5px;--pvs-radius-surface:2px;--pvs-radius-control:2px;--pvs-radius-bar:2px;--pvs-radius-dot:50%;--pvs-frame-w:1px;--pvs-frame-c:var(--pvs-rule);--pvs-divider-w:1px;--pvs-divider-c:var(--pvs-rule);--pvs-band:transparent;--pvs-band-alt:transparent;--pvs-panel:transparent;--pvs-panel-edge:transparent;--pvs-panel-edge-w:0px;--pvs-panel-pad:0px;--pvs-shadow-card:none;--pvs-shadow-control:none;--pvs-shadow-surface:none;--pvs-shadow-chrome:none;--pvs-gutter:5.5%;--pvs-gutter-end:3.2%;--pvs-rows:9.4% 50.6% 9% 22.7% 8.3%;--pvs-nav-cols:auto 1fr auto;--pvs-hero-cols:35.8% minmax(0, 1fr);--pvs-hero-gap:11.3%;--pvs-editorial-cols:27.9% minmax(0, 1fr);--pvs-editorial-gap:6%;--pvs-gallery-cols:1.12fr .9fr .9fr .9fr;--pvs-gallery-gap:3%;--pvs-section-align:center;aspect-ratio:1.865;grid-template-columns:minmax(0,1fr) auto;gap:5.25%;width:100%;display:grid}.picker-artboard--solo{aspect-ratio:1.865;grid-template-columns:minmax(0,1fr);gap:0}.picker-strategy-stage{grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;display:grid}.picker-strategy-stage>.picker-preview{aspect-ratio:auto;grid-row:2;width:100%;height:100%}.picker-strategy-stage>.picker-preview:is(.picker-preview--ops,.picker-preview--gallery) .pv-desktop{--pv-text:1.35}.picker-strategy-stage>.picker-preview.picker-preview--docs{--pv-text:1.65}.picker-strategy-stage>.picker-preview.picker-preview--docs .pv-desktop{--pv-text:1.35}.picker-strategy-stage>.picker-preview.picker-preview--docs .pd-item i{width:calc(4.07 * var(--pv-x))}.picker-strategy-stage>.picker-preview.picker-preview--docs .pd-item span{height:calc(1.53 * var(--pv-text) * var(--pv-x))}.picker-strategy-stage>.picker-preview.picker-preview--docs .pd-para i{height:calc(1.35 * var(--pv-text) * var(--pv-x))}.picker-strategy-stage>.picker-preview.picker-preview--docs .pd-note-dot{width:calc(4.07 * var(--pv-x))}.picker-strategy-stage>.picker-preview.picker-preview--docs .pd-note-lines i{height:calc(1 * var(--pv-text) * var(--pv-x))}.picker-strategy-stage>.picker-preview.picker-preview--docs .pd-phone-body .pd-para i{height:calc(1.37 * var(--pv-text) * var(--pv-x))}.picker-strategy-stage>.picker-preview.picker-preview--docs .pd-phone-body .pd-note-lines i{height:calc(.83 * var(--pv-text) * var(--pv-x))}.picker-strategy-stage>.picker-preview.picker-preview--docs .pd-phone-body .pd-heading{height:calc(2.53 * var(--pv-text) * var(--pv-x))}.picker-strategy-stage>.picker-preview.picker-preview--docs .pd-phone-body .pd-note-dot{width:calc(2.64 * var(--pv-text) * var(--pv-x))}.picker-board-stage>[data-carry][data-surface=read]{--pvs-carry-weight:1.65}.picker-board-stage>[data-carry][data-surface=read] .ps-docs-item>i{width:calc(var(--pt-base) * .34 * var(--pvs-carry-weight))}.picker-board-stage>[data-carry][data-surface=read] :is(.ps-docs-item b,.ps-docs-crumb,.ps-docs-note-copy b){height:calc(var(--pt-base) * .26 * var(--pvs-carry-weight))}.picker-board-stage>[data-carry][data-surface=read] :is(.ps-docs-main .pt-headline i,.ps-phone-body .pt-headline i){height:calc(var(--pt-base) * .72 * var(--pvs-carry-weight))}.picker-board-stage>[data-carry][data-surface=read] .ps-docs-sub{height:calc(var(--pt-base) * .5 * var(--pvs-carry-weight))}.picker-board-stage>[data-carry][data-surface=read] :is(.ps-docs-lede i,.ps-docs-para i,.ps-docs-list li){height:calc(var(--pt-base) * .3 * var(--pvs-carry-weight))}.picker-board-stage>[data-carry][data-surface=read] .ps-docs-note-copy>span i{height:calc(var(--pt-base) * .26 * var(--pvs-carry-weight))}.picker-board-stage>[data-carry][data-surface=read] .ps-docs-list li:before{width:calc(var(--pt-base) * .3 * var(--pvs-carry-weight))}.picker-preview[hidden]{display:none}.picker-surface-tabs{z-index:1;background:var(--ks-lacquer-raised);border:1px solid var(--ks-rule);border-radius:2px;grid-row:1;justify-self:end;gap:3px;margin-bottom:16px;padding:5px;display:flex;position:relative}.picker-surface-tabs[hidden]{display:none}.picker-surface-tab{color:var(--ks-text-muted);letter-spacing:.04em;white-space:nowrap;cursor:pointer;transition:background-color .18s var(--ks-ease), color .18s var(--ks-ease);background:0 0;border:0;border-radius:2px;align-items:center;gap:13px;padding:11px 15px;font-family:inherit;font-size:1rem;line-height:1.15;display:inline-flex}.picker-surface-tab:hover{color:var(--ks-champagne);background:color-mix(in oklab, var(--ks-patina) 9%, var(--ks-lacquer-raised))}.picker-surface-tab[aria-pressed=true]{color:var(--ks-champagne);background:color-mix(in oklab, var(--ks-patina) 14%, var(--ks-lacquer-raised))}.picker-surface-tab:focus-visible{outline:2px solid var(--ks-patina-deep);outline-offset:-2px}.picker-surface-dot{border:1px solid color-mix(in oklab, var(--ks-patina) 55%, transparent);border-radius:50%;flex:none;width:10px;height:10px}.picker-surface-tab[aria-pressed=true] .picker-surface-dot{border-color:var(--ks-patina);background:radial-gradient(circle at center, var(--ks-patina) 2px, transparent 2px)}.picker-surface-tab[data-set=yes] .picker-surface-dot{background:var(--ks-patina);border-color:var(--ks-patina)}.picker-strategy-option.is-blocked{opacity:.42;pointer-events:none}.picker-preview-type{--pvs-ghost:color-mix(in oklab, var(--pv-primary) 14%, var(--pv-neutral));--pvs-ghost-edge:color-mix(in oklab, var(--pv-primary) 42%, var(--pv-neutral));--pvs-image:color-mix(in oklab, var(--pv-primary) 22%, var(--pv-neutral));--pvs-image-a:color-mix(in oklab, var(--pv-primary) 26%, var(--pv-neutral));--pvs-image-b:color-mix(in oklab, var(--pv-primary) 48%, var(--pv-neutral));--pvs-image-edge:color-mix(in oklab, var(--pv-primary) 40%, var(--pv-neutral));--pvs-accent-a:var(--pv-primary);--pvs-accent-b:color-mix(in oklab, var(--pv-primary) 62%, var(--pv-neutral));--pvs-accent-c:color-mix(in oklab, var(--pv-primary) 38%, var(--pv-neutral));--pvs-accent-d:color-mix(in oklab, var(--pv-primary) 20%, var(--pv-neutral));--pvs-cta-text:var(--pv-neutral)}.picker-strategy-stage>.picker-preview{--pv-primary:var(--pkc-primary,var(--ks-champagne));--pv-secondary:var(--pkc-secondary,var(--ks-patina));--pv-tertiary:var(--pkc-tertiary,var(--ks-kinpaku));--pv-neutral:var(--pkc-neutral,var(--ks-lacquer-raised));--pv-n-ink:var(--pkc-n-ink,var(--ks-champagne));--pv-p-ink:var(--pkc-p-ink,var(--ks-champagne))}#picker-form:has(.picker-strategy-option:hover input[name=color-strategy][value=restrained]) .picker-strategy-stage>.picker-preview,#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=restrained]:checked) .picker-strategy-stage>.picker-preview{--pv-secondary:color-mix(in oklab, var(--pkc-neutral) 78%, var(--pkc-n-ink));--pv-tertiary:color-mix(in oklab, var(--pkc-neutral) 86%, var(--pkc-n-ink));--pv-t-ink:var(--pkc-n-ink);--pv-t-on-t:var(--pkc-n-ink);--pv-t-on-n:color-mix(in oklab, var(--pkc-n-ink) 62%, var(--pkc-neutral));--pv-t-on-p:var(--pkc-p-ink)}#picker-form:has(.picker-strategy-option:hover input[name=color-strategy][value=restrained]) .picker-strategy-stage>.picker-preview.picker-preview--docs,#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=restrained]:checked) .picker-strategy-stage>.picker-preview.picker-preview--docs{--pd-quote:var(--pd-ink)}#picker-form:has(.picker-strategy-option:hover input[name=color-strategy][value=restrained]) .picker-strategy-stage>.picker-preview.picker-preview--docs :is(.pd-note-dot,.pd-note-lines i),#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=restrained]:checked) .picker-strategy-stage>.picker-preview.picker-preview--docs :is(.pd-note-dot,.pd-note-lines i){background:var(--pd-ink)}#picker-form:has(.picker-strategy-option:hover input[name=color-strategy][value=drenched]) .picker-strategy-stage>.picker-preview[data-surface=persuade],#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=drenched]:checked) .picker-strategy-stage>.picker-preview[data-surface=persuade]{--pv-secondary:var(--pkc-secondary);--pv-tertiary:var(--pkc-tertiary);--pv-bone:color-mix(in oklab, var(--pkc-p-ink) 55%, var(--pkc-primary));--pv-strong:var(--pkc-p-ink);--pv-secondary-wash:color-mix(in oklab, var(--pkc-p-ink) 16%, var(--pkc-primary))}#picker-form:has(.picker-strategy-option:hover input[name=color-strategy][value=drenched]) .picker-strategy-stage>.picker-preview[data-surface=persuade] .pv-desktop .pv-image,#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=drenched]:checked) .picker-strategy-stage>.picker-preview[data-surface=persuade] .pv-desktop .pv-image{background:linear-gradient(135deg, color-mix(in oklab, var(--pkc-p-ink) 16%, var(--pkc-primary)), color-mix(in oklab, var(--pkc-secondary) 34%, var(--pkc-primary)));border-color:color-mix(in oklab, var(--pkc-secondary) 52%, var(--pkc-primary))}#picker-form:has(.picker-strategy-option:hover input[name=color-strategy][value=drenched]) .picker-strategy-stage>.picker-preview[data-surface=persuade] .pv-desktop .pv-image:after,#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=drenched]:checked) .picker-strategy-stage>.picker-preview[data-surface=persuade] .pv-desktop .pv-image:after{background:var(--pkc-tertiary)}#picker-form:has(.picker-strategy-option:hover input[name=color-strategy][value=drenched]) .picker-strategy-stage>.picker-preview[data-surface=persuade] .pv-desktop .pv-actions i:last-child,#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=drenched]:checked) .picker-strategy-stage>.picker-preview[data-surface=persuade] .pv-desktop .pv-actions i:last-child{border-color:color-mix(in oklab, var(--pkc-secondary) 68%, var(--pkc-p-ink));background:color-mix(in oklab, var(--pkc-secondary) 18%, var(--pkc-primary))}#picker-form:has(.picker-strategy-option:hover input[name=color-strategy][value=drenched]) .picker-strategy-stage>.picker-preview[data-surface=persuade] .pv-desktop .pv-nav-bars i:nth-child(2),#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=drenched]:checked) .picker-strategy-stage>.picker-preview[data-surface=persuade] .pv-desktop .pv-nav-bars i:nth-child(2){background:color-mix(in oklab, var(--pkc-secondary) 72%, var(--pkc-p-ink))}#picker-form:has(.picker-strategy-option:hover input[name=color-strategy][value=committed]) .picker-strategy-stage>.picker-preview.picker-preview--ops,#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=committed]:checked) .picker-strategy-stage>.picker-preview.picker-preview--ops{--pv-neutral:color-mix(in oklab, var(--pkc-neutral) 84%, var(--pkc-primary));--po-wash:color-mix(in oklab, var(--pkc-primary) 24%, var(--pkc-neutral))}#picker-form:has(.picker-strategy-option:hover input[name=color-strategy][value=full-palette]) .picker-strategy-stage>.picker-preview.picker-preview--ops,#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=full-palette]:checked) .picker-strategy-stage>.picker-preview.picker-preview--ops{--po-wash:color-mix(in oklab, var(--pkc-secondary) 22%, var(--pkc-neutral))}#picker-form:has(.picker-strategy-option:hover input[name=color-strategy][value=full-palette]) .picker-strategy-stage>.picker-preview.picker-preview--ops .po-row--on .po-dot,#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=full-palette]:checked) .picker-strategy-stage>.picker-preview.picker-preview--ops .po-row--on .po-dot{background:var(--pkc-tertiary)}#picker-form:has(.picker-strategy-option:hover input[name=color-strategy][value=full-palette]) .picker-strategy-stage>.picker-preview.picker-preview--ops .po-field,#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=full-palette]:checked) .picker-strategy-stage>.picker-preview.picker-preview--ops .po-field{border-color:var(--pkc-secondary)}#picker-form:has(.picker-strategy-option:hover input[name=color-strategy][value=full-palette]) .picker-strategy-stage>.picker-preview.picker-preview--ops .po-chart i:nth-child(2),#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=full-palette]:checked) .picker-strategy-stage>.picker-preview.picker-preview--ops .po-chart i:nth-child(2){background:color-mix(in oklab, var(--pkc-secondary) 78%, var(--pkc-neutral))}#picker-form:has(.picker-strategy-option:hover input[name=color-strategy][value=full-palette]) .picker-strategy-stage>.picker-preview.picker-preview--ops .po-chart i:nth-child(3),#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=full-palette]:checked) .picker-strategy-stage>.picker-preview.picker-preview--ops .po-chart i:nth-child(3){background:color-mix(in oklab, var(--pkc-tertiary) 68%, var(--pkc-neutral))}#picker-form:has(.picker-strategy-option:hover input[name=color-strategy][value=restrained]) .picker-strategy-stage>.picker-preview.picker-preview--gallery:not([hidden]) .pv-desktop .pg-cap,#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=restrained]:checked) .picker-strategy-stage>.picker-preview.picker-preview--gallery:not([hidden]) .pv-desktop .pg-cap,#picker-form:has(.picker-strategy-option:hover input[name=color-strategy][value=committed]) .picker-strategy-stage>.picker-preview.picker-preview--gallery:not([hidden]) .pv-desktop .pg-cap,#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=committed]:checked) .picker-strategy-stage>.picker-preview.picker-preview--gallery:not([hidden]) .pv-desktop .pg-cap,#picker-form:has(.picker-strategy-option:hover input[name=color-strategy][value=drenched]) .picker-strategy-stage>.picker-preview.picker-preview--gallery:not([hidden]) .pv-desktop .pg-cap,#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=drenched]:checked) .picker-strategy-stage>.picker-preview.picker-preview--gallery:not([hidden]) .pv-desktop .pg-cap{gap:2.6cqh;padding-top:5.2cqh}#picker-form:has(.picker-strategy-option:hover input[name=color-strategy][value=restrained]) .picker-strategy-stage>.picker-preview.picker-preview--gallery:not([hidden]) .pv-desktop .pg-cap:before,#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=restrained]:checked) .picker-strategy-stage>.picker-preview.picker-preview--gallery:not([hidden]) .pv-desktop .pg-cap:before{content:"";width:calc(11.5 * var(--pv-x));aspect-ratio:1;border:1px solid color-mix(in oklab, var(--pv-secondary) 55%, var(--pv-neutral));background:linear-gradient(135deg, color-mix(in oklab, var(--pv-secondary) 24%, var(--pv-neutral)), color-mix(in oklab, var(--pv-secondary) 46%, var(--pv-neutral)));border-radius:50%;display:block}#picker-form:has(.picker-strategy-option:hover input[name=color-strategy][value=committed]) .picker-strategy-stage>.picker-preview.picker-preview--gallery:not([hidden]) .pv-desktop .pg-cap:before,#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=committed]:checked) .picker-strategy-stage>.picker-preview.picker-preview--gallery:not([hidden]) .pv-desktop .pg-cap:before{content:"";width:calc(11.5 * var(--pv-x));aspect-ratio:1;border:1px solid color-mix(in oklab, var(--pkc-primary) 42%, var(--pkc-neutral));background:linear-gradient(135deg, color-mix(in oklab, var(--pkc-primary) 16%, var(--pkc-neutral)), color-mix(in oklab, var(--pkc-primary) 30%, var(--pkc-neutral)));border-radius:50%;display:block}#picker-form:has(.picker-strategy-option:hover input[name=color-strategy][value=drenched]) .picker-strategy-stage>.picker-preview.picker-preview--gallery:not([hidden]),#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=drenched]:checked) .picker-strategy-stage>.picker-preview.picker-preview--gallery:not([hidden]){--pv-secondary:var(--pkc-secondary);--pv-tertiary:var(--pkc-tertiary);--pv-bone:color-mix(in oklab, var(--pkc-p-ink) 55%, var(--pkc-primary));--pv-strong:var(--pkc-p-ink);--pv-secondary-wash:color-mix(in oklab, var(--pkc-p-ink) 16%, var(--pkc-primary))}#picker-form:has(.picker-strategy-option:hover input[name=color-strategy][value=drenched]) .picker-strategy-stage>.picker-preview.picker-preview--gallery:not([hidden]) .pv-image,#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=drenched]:checked) .picker-strategy-stage>.picker-preview.picker-preview--gallery:not([hidden]) .pv-image{background:linear-gradient(135deg, color-mix(in oklab, var(--pkc-p-ink) 16%, var(--pkc-primary)), color-mix(in oklab, var(--pkc-secondary) 34%, var(--pkc-primary)));border-color:color-mix(in oklab, var(--pkc-secondary) 52%, var(--pkc-primary))}#picker-form:has(.picker-strategy-option:hover input[name=color-strategy][value=drenched]) .picker-strategy-stage>.picker-preview.picker-preview--gallery:not([hidden]) .pv-image:after,#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=drenched]:checked) .picker-strategy-stage>.picker-preview.picker-preview--gallery:not([hidden]) .pv-image:after{background:var(--pkc-tertiary)}#picker-form:has(.picker-strategy-option:hover input[name=color-strategy][value=drenched]) .picker-strategy-stage>.picker-preview.picker-preview--gallery:not([hidden]) .pg-track i:nth-child(2),#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=drenched]:checked) .picker-strategy-stage>.picker-preview.picker-preview--gallery:not([hidden]) .pg-track i:nth-child(2){background:color-mix(in oklab, var(--pkc-secondary) 78%, var(--pkc-p-ink))}#picker-form:has(.picker-strategy-option:hover input[name=color-strategy][value=drenched]) .picker-strategy-stage>.picker-preview.picker-preview--gallery:not([hidden]) .pg-cap-title,#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=drenched]:checked) .picker-strategy-stage>.picker-preview.picker-preview--gallery:not([hidden]) .pg-cap-title{background:var(--pkc-tertiary)}#picker-form:has(.picker-strategy-option:hover input[name=color-strategy][value=drenched]) .picker-strategy-stage>.picker-preview.picker-preview--gallery:not([hidden]) .pv-nav-bars i:nth-child(2),#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=drenched]:checked) .picker-strategy-stage>.picker-preview.picker-preview--gallery:not([hidden]) .pv-nav-bars i:nth-child(2){background:color-mix(in oklab, var(--pkc-secondary) 72%, var(--pkc-p-ink))}#picker-form:has(.picker-strategy-option:hover input[name=color-strategy][value=drenched]) .picker-strategy-stage>.picker-preview.picker-preview--gallery:not([hidden]) .pv-tabbar i:nth-child(2),#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=drenched]:checked) .picker-strategy-stage>.picker-preview.picker-preview--gallery:not([hidden]) .pv-tabbar i:nth-child(2){background:color-mix(in oklab, var(--pkc-secondary) 70%, var(--pkc-p-ink))}#picker-form:has(.picker-strategy-option:hover input[name=color-strategy][value=drenched]) .picker-strategy-stage>.picker-preview.picker-preview--gallery:not([hidden]) .pv-tabbar i:nth-child(3),#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=drenched]:checked) .picker-strategy-stage>.picker-preview.picker-preview--gallery:not([hidden]) .pv-tabbar i:nth-child(3){background:color-mix(in oklab, var(--pkc-tertiary) 82%, var(--pkc-p-ink))}#picker-form:has(.picker-strategy-option:hover input[name=color-strategy][value=drenched]) .picker-strategy-stage>.picker-preview.picker-preview--gallery:not([hidden]) .pv-desktop .pg-cap:before,#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=drenched]:checked) .picker-strategy-stage>.picker-preview.picker-preview--gallery:not([hidden]) .pv-desktop .pg-cap:before{content:"";width:calc(11.5 * var(--pv-x));aspect-ratio:1;border:1px solid color-mix(in oklab, var(--pkc-secondary) 58%, var(--pkc-primary));background:linear-gradient(135deg, color-mix(in oklab, var(--pkc-secondary) 30%, var(--pkc-primary)), color-mix(in oklab, var(--pkc-p-ink) 20%, var(--pkc-primary)));border-radius:50%;display:block}#picker-form .picker-preview-type--experience .ps-desktop .ps-index-cap{gap:0}#picker-form .picker-preview-type--experience .ps-desktop .ps-index-avatar{margin-bottom:10px}#picker-form .picker-preview-type--experience .ps-desktop .ps-index-note{margin-top:2px;line-height:1.33}#picker-form .picker-preview-type--experience .ps-desktop .ps-index-title{font-size:20px}#picker-form .picker-preview-type--experience .ps-phone :is(.ps-nav-tail,.ps-index-meta){display:none}#picker-form:has(.picker-strategy-option:hover input[name=color-strategy][value=committed]) .picker-strategy-stage>.picker-preview,#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=committed]:checked) .picker-strategy-stage>.picker-preview{--pv-neutral:color-mix(in oklab, var(--pkc-neutral) 95%, var(--pkc-primary));--pv-secondary:var(--pkc-primary);--pv-tertiary:var(--pkc-primary);--pv-t-ink:var(--pkc-p-ink);--pv-t-on-t:var(--pkc-p-on-p);--pv-t-on-n:var(--pkc-p-on-n);--pv-t-on-p:var(--pkc-p-on-p)}#picker-form:has(.picker-strategy-option:hover input[name=color-strategy][value=drenched]) .picker-strategy-stage>.picker-preview,#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=drenched]:checked) .picker-strategy-stage>.picker-preview{--pv-neutral:var(--pkc-primary);--pv-n-ink:var(--pkc-p-ink);--pv-primary:var(--pkc-p-ink);--pv-p-ink:var(--pkc-primary);--pv-p-on-n:var(--pkc-p-ink);--pv-p-on-p:var(--pkc-primary);--pv-secondary:var(--pkc-tertiary);--pv-tertiary:var(--pkc-tertiary);--pv-t-on-n:var(--pkc-t-on-p)}#picker-form:has(.picker-strategy-option:hover input[name=color-strategy][value=committed]) .picker-strategy-preview:not(.picker-preview-type),#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=committed]:checked) .picker-strategy-preview:not(.picker-preview-type),:where(#picker-form:has(input[name=color-strategy][value=committed]:checked)) .picker-preview-type,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=committed]:checked)) [data-artboard]{--pvs-headline:color-mix(in oklab, var(--pv-primary) 80%, var(--pv-strong));--pvs-headline-text:var(--pv-p-on-n);--pvs-eyebrow:var(--pv-primary);--pvs-ghost:color-mix(in oklab, var(--pv-primary) 14%, var(--pv-neutral));--pvs-ghost-edge:var(--pv-primary);--pvs-image:var(--pv-primary);--pvs-image-a:var(--pv-primary);--pvs-image-b:color-mix(in oklab, var(--pv-primary) 72%, var(--pv-neutral));--pvs-image-edge:var(--pv-primary);--pvs-accent-a:var(--pv-primary);--pvs-accent-b:color-mix(in oklab, var(--pv-primary) 70%, var(--pv-neutral));--pvs-accent-c:var(--pv-primary);--pvs-accent-d:color-mix(in oklab, var(--pv-primary) 18%, var(--pv-neutral))}#picker-form:has(.picker-strategy-option:hover input[name=color-strategy][value=full-palette]) .picker-strategy-preview:not(.picker-preview-type),#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=full-palette]:checked) .picker-strategy-preview:not(.picker-preview-type),:where(#picker-form:has(input[name=color-strategy][value=full-palette]:checked)) .picker-preview-type,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=full-palette]:checked)) [data-artboard]{--pvs-headline:color-mix(in oklab, var(--pv-primary) 80%, var(--pv-strong));--pvs-headline-text:var(--pv-p-on-n);--pvs-accent-text:var(--pv-t-on-n);--pvs-eyebrow:var(--pv-tertiary);--pvs-ghost:color-mix(in oklab, var(--pv-secondary) 18%, var(--pv-neutral));--pvs-ghost-edge:var(--pv-secondary);--pvs-image:var(--pv-primary);--pvs-image-a:var(--pv-primary);--pvs-image-b:color-mix(in oklab, var(--pv-secondary) 32%, var(--pv-primary));--pvs-image-edge:var(--pv-primary);--pvs-signal:var(--pv-tertiary);--pvs-signal-ink:var(--pv-t-ink);--pvs-signal-text:var(--pv-t-on-t);--pvs-accent-a:var(--pv-secondary);--pvs-accent-b:color-mix(in oklab, var(--pv-secondary) 42%, var(--pv-neutral));--pvs-accent-c:var(--pv-primary);--pvs-accent-d:var(--pv-tertiary)}#picker-form:has(.picker-strategy-option:hover input[name=color-strategy][value=drenched]) .picker-strategy-preview:not(.picker-preview-type),#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=drenched]:checked) .picker-strategy-preview:not(.picker-preview-type),:where(#picker-form:has(input[name=color-strategy][value=drenched]:checked)) .picker-preview-type,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=color-strategy])):has(input[name=color-strategy][value=drenched]:checked)) [data-artboard]{--pvs-ground:var(--pv-primary);--pvs-ink:var(--pv-p-ink);--pvs-surface:color-mix(in oklab, var(--pv-p-ink) 10%, var(--pv-primary));--pvs-headline:var(--pv-p-ink);--pvs-eyebrow:color-mix(in oklab, var(--pv-p-ink) 70%, var(--pv-primary));--pvs-copy:color-mix(in oklab, var(--pv-p-ink) 55%, var(--pv-primary));--pvs-title:var(--pv-p-ink);--pvs-cta:var(--pv-p-ink);--pvs-cta-ink:var(--pv-primary);--pvs-cta-text:var(--pv-p-on-i);--pvs-mark-text:var(--pv-p-ink);--pvs-accent-text:var(--pv-t-on-p);--pvs-copy-mix:14%;--pvs-bars-mix:16%;--pvs-ghost:color-mix(in oklab, var(--pv-p-ink) 22%, var(--pv-primary));--pvs-ghost-edge:color-mix(in oklab, var(--pv-p-ink) 45%, var(--pv-primary));--pvs-image:color-mix(in oklab, var(--pv-p-ink) 20%, var(--pv-primary));--pvs-image-a:color-mix(in oklab, var(--pv-p-ink) 16%, var(--pv-primary));--pvs-image-b:color-mix(in oklab, var(--pv-p-ink) 28%, var(--pv-primary));--pvs-image-edge:color-mix(in oklab, var(--pv-p-ink) 40%, var(--pv-primary));--pvs-signal:var(--pv-tertiary);--pvs-signal-ink:var(--pv-t-ink);--pvs-signal-text:var(--pv-t-on-t);--pvs-bars:color-mix(in oklab, var(--pv-p-ink) 45%, var(--pv-primary));--pvs-rule:color-mix(in oklab, var(--pv-p-ink) 28%, var(--pv-primary));--pvs-accent-a:var(--pv-secondary);--pvs-accent-b:var(--pv-tertiary);--pvs-accent-c:color-mix(in oklab, var(--pv-p-ink) 30%, var(--pv-primary));--pvs-accent-d:color-mix(in oklab, var(--pv-p-ink) 14%, var(--pv-primary))}.ps-desktop,.ps-phone{background-color:var(--pvs-ground);border:var(--pvs-frame-w) solid var(--pvs-frame-c);min-width:0;min-height:0;overflow:hidden}.ps-desktop{grid-template-rows:var(--pvs-rows);border-radius:var(--pvs-radius-frame);display:grid}.ps-phone{aspect-ratio:8/19;border-radius:var(--pvs-radius-frame-phone);grid-template-rows:7.2% 1fr 7.5%;align-self:stretch;height:100%;display:grid}.ps-nav{grid-template-columns:var(--pvs-nav-cols);padding:0 var(--pvs-gutter);background-color:var(--pvs-band);border-bottom:var(--pvs-divider-w) solid var(--pvs-divider-c);box-shadow:var(--pvs-shadow-chrome);align-items:center;gap:24px;display:grid}.ps-brand-block{aspect-ratio:1;background-color:var(--pvs-cta);border-radius:var(--pvs-radius-dot);width:clamp(8px,1.15vw,12px);height:auto}.ps-nav-bars{justify-content:flex-end;gap:27px;display:flex}.ps-nav-bars i{background-color:var(--pvs-bars);border-radius:var(--pvs-radius-bar);width:clamp(18px,7%,34px);height:4px;display:block}.ps-nav-action{background-color:var(--pvs-signal);border-radius:var(--pvs-radius-control);width:clamp(34px,3.4vw,48px);height:clamp(7px,26%,13px);box-shadow:var(--pvs-shadow-control)}.ps-hero{grid-template-columns:var(--pvs-hero-cols);gap:var(--pvs-hero-gap);align-items:var(--pvs-section-align);min-height:0;padding:2% var(--pvs-gutter-end) 2% var(--pvs-gutter);display:grid}.ps-hero-copy{gap:0;display:grid}.ps-eyebrow{background-color:var(--pvs-eyebrow);border-radius:var(--pvs-radius-bar);width:54%;height:10px;margin-bottom:14px}.ps-headline{gap:8px;margin:0 0 14px;display:grid}.ps-headline i{background-color:var(--pvs-headline);border-radius:var(--pvs-radius-bar);width:100%;height:15px;display:block}.ps-headline i:last-child{width:72%}.ps-copy{gap:8px;margin-bottom:18px;display:grid}.ps-copy i{background-color:var(--pvs-copy);border-radius:var(--pvs-radius-bar);width:64%;height:8px;display:block}.ps-copy i:last-child{width:48%}.ps-actions{gap:clamp(5px,1vw,10px);margin-top:0;display:flex}.ps-actions i{background-color:var(--pvs-cta);border-radius:var(--pvs-radius-control);width:clamp(42px,42%,86px);height:clamp(12px,2.35vw,29px);box-shadow:var(--pvs-shadow-control)}.ps-actions i:last-child{background-color:var(--pvs-ghost);border:1px solid var(--pvs-ghost-edge)}.ps-image{background-color:var(--pvs-image);background-image:linear-gradient(135deg, var(--pvs-image-a), var(--pvs-image-b));border:1px solid var(--pvs-image-edge);border-radius:var(--pvs-radius-surface);width:100%;height:100%;min-height:0;box-shadow:var(--pvs-shadow-surface);position:relative}.ps-image:after{content:"";aspect-ratio:1;background-color:var(--pvs-accent-d);border-radius:var(--pvs-radius-dot);width:clamp(6px,1.1vw,10px);position:absolute;top:8%;right:8%}.ps-proof{align-items:stretch;column-gap:var(--ps-proof-gap);min-width:0;padding:2% var(--pvs-gutter-end) 2% var(--pvs-gutter);background-color:var(--pvs-band-alt);grid-template-columns:1.05fr 1fr 1fr 1.15fr;display:grid;position:relative}.ps-proof:before,.ps-proof:after{content:"";left:var(--pvs-gutter);right:var(--pvs-gutter-end);height:var(--pvs-divider-w);background-color:var(--pvs-divider-c);position:absolute}.ps-proof:before{top:0}.ps-proof:after{bottom:0}.ps-proof-item{align-items:center;gap:10%;min-width:0;height:100%;padding:0;display:flex}.ps-proof-item+.ps-proof-item{border-left:var(--pvs-divider-w) solid var(--pvs-divider-c)}.ps-proof-item i{aspect-ratio:1;background-color:var(--pvs-accent-a);border-radius:var(--pvs-radius-dot);flex:none;width:clamp(7px,1.5vw,13px)}.picker-artboard:not(.picker-preview-type) .ps-proof{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr)}.picker-artboard:not(.picker-preview-type) .ps-proof-item+.ps-proof-item{border-left:0}.picker-artboard:not(.picker-preview-type) .ps-proof-divider{width:var(--pvs-divider-w);background-color:var(--pvs-divider-c);align-self:stretch}.picker-artboard:not(.picker-preview-type) .ps-phone-body .ps-proof{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}.picker-artboard:not(.picker-preview-type) .ps-proof-item:nth-of-type(2) i{background-color:var(--pvs-accent-b)}.picker-artboard:not(.picker-preview-type) .ps-proof-item:nth-of-type(3) i{background-color:var(--pvs-accent-c)}.picker-artboard:not(.picker-preview-type) .ps-proof-item:nth-of-type(4) i{background-color:var(--pvs-accent-d)}.ps-proof-item span{background-color:var(--pvs-bars);border-radius:var(--pvs-radius-bar);flex:1;height:6px}.ps-editorial{grid-template-columns:var(--pvs-editorial-cols);gap:var(--pvs-editorial-gap);align-items:var(--pvs-section-align);min-height:0;padding:2.2% var(--pvs-gutter);display:grid}.ps-editorial-copy{gap:clamp(3px,.55vw,6px);display:grid}.ps-editorial-copy strong{background-color:var(--pvs-title);border-radius:var(--pvs-radius-bar);width:78%;height:11px}.ps-editorial-copy span{gap:6px;display:grid}.ps-editorial-copy span i{background-color:var(--pvs-bars);border-radius:var(--pvs-radius-bar);width:90%;height:6px;display:block}.ps-editorial-copy span i:last-child{width:80%}.ps-editorial-copy>em{background-color:var(--pvs-signal);border-radius:var(--pvs-radius-bar);width:30%;height:6px;margin-top:3px}.ps-gallery{grid-template-columns:var(--pvs-gallery-cols);gap:var(--pvs-gallery-gap);min-width:0;height:100%;display:grid}.ps-gallery-item{min-width:0;padding:var(--pvs-panel-pad);background-color:var(--pvs-panel);border:var(--pvs-panel-edge-w) solid var(--pvs-panel-edge);border-radius:var(--pvs-radius-surface);box-shadow:var(--pvs-shadow-card);grid-template-rows:minmax(0,1fr) auto;gap:12px;display:grid}.ps-desktop .ps-editorial-copy{gap:9px}.ps-desktop .ps-editorial-copy strong{height:11px}.ps-desktop .ps-editorial-copy>em{height:5px;margin-top:9px}.ps-gallery-item>i{background-color:var(--pvs-accent-a);border-radius:var(--pvs-radius-surface);min-height:0;display:block}.ps-gallery-item:nth-child(2)>i{background-color:var(--pvs-accent-b)}.ps-gallery-item:nth-child(3)>i{background-color:var(--pvs-accent-c)}.ps-gallery-item:nth-child(4)>i{background-color:var(--pvs-accent-d)}.ps-gallery-item span{gap:6px;display:grid}.ps-gallery-item b{background-color:var(--pvs-bars);border-radius:var(--pvs-radius-bar);width:76%;height:6px;display:block}.ps-gallery-item b:last-child{width:58%}.ps-footer{padding-inline:var(--pvs-gutter);background-color:var(--pvs-band);border-top:var(--pvs-divider-w) solid var(--pvs-divider-c);justify-content:space-between;align-items:center;display:flex}.ps-footer-links{gap:clamp(8px,2vw,18px);display:flex}.ps-footer-links i,.ps-phone-footer i{background-color:var(--pvs-bars);border-radius:var(--pvs-radius-bar);width:clamp(12px,3vw,28px);height:4px}.ps-footer-mark{background-color:var(--pvs-bars);border-radius:var(--pvs-radius-bar);width:7%;height:5px}.ps-phone-top{background-color:var(--pvs-surface);border-bottom:var(--pvs-divider-w) solid var(--pvs-divider-c);min-height:0;box-shadow:var(--pvs-shadow-chrome);justify-content:space-between;align-items:center;padding:0 6%;display:flex}.ps-phone-top .ps-brand-block{width:9px}.ps-phone-top .ps-nav-action{width:16%;height:6px}.ps-phone-body{grid-template-rows:minmax(0,31%) auto auto auto 34px auto minmax(min-content,1fr);gap:6px;min-height:0;padding:6%;display:grid}.ps-phone-body .ps-image{min-height:0;margin:0}.ps-phone-body .ps-headline i{height:clamp(5px,.75vw,8px)}.ps-phone-body .ps-headline{gap:7px;margin:8px 0 0}.ps-phone-body .ps-headline i:first-child{width:54%;height:9px}.ps-phone-body .ps-headline i:last-child{width:82%;height:8px}.ps-phone-body .ps-copy{gap:7px;margin:4px 0 0}.ps-phone-body .ps-copy i{width:68%;height:6px}.ps-phone-body .ps-copy i:last-child{width:52%;display:block}.ps-phone-body .ps-actions{gap:7px;margin-top:6px}.ps-phone-body .ps-actions i{width:43%;height:18px}.ps-phone-body .ps-proof{margin-inline:0;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;margin-top:5px;padding:2% 3.2% 2% 5.5%}.ps-phone-body .ps-proof-item{height:100%;padding:0}.ps-phone-body .ps-proof-item i{width:10px}.ps-phone-body .ps-proof-item span{height:6px}.ps-phone-body .ps-editorial-copy strong{width:38%;height:7px}.ps-phone-body .ps-editorial-copy{margin-top:10px}.ps-phone-body .ps-editorial-copy span i{height:6px}.ps-phone-body .ps-proof:before,.ps-phone-body .ps-proof:after{left:0;right:0}.ps-phone-body .ps-gallery{grid-template-columns:1.05fr .95fr;gap:10%;margin-top:6px;margin-left:1px}.ps-phone-body .ps-gallery-item{grid-template-rows:36px auto;gap:6px}.ps-phone-body .ps-gallery-item b{height:5px}.ps-phone-body .ps-gallery-item span{align-content:start;gap:6px}.ps-phone-footer{background-color:var(--pvs-surface);border-top:var(--pvs-divider-w) solid var(--pvs-divider-c);justify-content:space-around;align-items:center;min-height:0;padding-inline:6%;display:flex}.picker-artboard:not(.picker-preview-type) :is(.ps-desktop,.ps-phone,.ps-nav,.ps-proof,.ps-proof-item,.ps-footer,.ps-phone-top,.ps-phone-footer,.ps-brand-block,.ps-nav-bars i,.ps-nav-action,.ps-eyebrow,.ps-headline i,.ps-copy i,.ps-actions i,.ps-image,.ps-proof-item i,.ps-proof-item span,.ps-editorial-copy strong,.ps-editorial-copy span i,.ps-editorial-copy>em,.ps-gallery,.ps-gallery-item,.ps-gallery-item>i,.ps-gallery-item b,.ps-footer-links i,.ps-footer-mark,.ps-phone-footer i,.ps-ops-rail,.ps-ops-main,.ps-ops-item,.ps-ops-chart,.ps-ops-table,.ps-ops-row,.ps-ops-panel,.ps-ops-plot>i,.ps-docs-rail,.ps-docs-note,.ps-index-row,.ps-index-rail){transition:background-color .28s var(--ks-ease), background-image .28s var(--ks-ease), border-color .28s var(--ks-ease), border-width .28s var(--ks-ease), border-radius .28s var(--ks-ease), box-shadow .28s var(--ks-ease), margin .28s var(--ks-ease), padding .28s var(--ks-ease)}.picker-preview-type :is(.ps-desktop,.ps-phone,.ps-nav,.ps-proof,.ps-proof-item,.ps-footer,.ps-phone-top,.ps-phone-footer,.ps-brand-block,.ps-nav-bars i,.ps-nav-action,.ps-eyebrow,.ps-headline i,.ps-copy i,.ps-actions i,.ps-image,.ps-proof-item i,.ps-proof-item span,.ps-editorial-copy strong,.ps-editorial-copy>em,.ps-gallery-item>i,.ps-gallery-item b,.ps-footer-links i,.ps-footer-mark,.ps-phone-footer i,.pt-headline,.pt-body,.pt-section-body){transition:background-color .28s var(--ks-ease), background-image .28s var(--ks-ease), border-color .28s var(--ks-ease), color .28s var(--ks-ease)}.picker-actions-stack{justify-items:center;gap:14px;display:grid}.picker-back{color:var(--ks-text-muted);font-family:var(--ks-font);letter-spacing:.02em;cursor:pointer;transition:color .18s var(--ks-ease);background:0 0;border:0;padding:4px 8px;font-size:.86rem}.picker-back:hover{color:var(--ks-champagne)}.picker-back:focus-visible{outline:1px solid var(--ks-kinpaku);outline-offset:3px}.picker-type{gap:48px;padding-block:clamp(32px,5svh,48px) clamp(24px,3.5svh,48px);display:grid}.picker-type-grid{grid-template-columns:minmax(340px,420px) minmax(0,1fr);align-items:stretch;gap:50px;max-height:calc(100svh - 346px);display:grid}.picker-type-stage{--pt-heading:var(--ks-font-display);--pt-body:var(--ks-font);--pt-heading-weight:600;grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);min-width:0;min-height:0;display:grid}.picker-type-stage>.picker-artboard{grid-row:2;width:100%;height:100%}.picker-artboard[hidden]{display:none}.picker-board-stage{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);min-width:0;min-height:0;display:grid}.picker-board-stage>.picker-artboard{grid-row:2;width:100%;height:100%}.picker-type-rail{grid-template-rows:minmax(0,1fr) auto;gap:14px;min-width:0;min-height:0;display:grid}@media (width>=1200px){.picker-type-rail{max-height:570px}}.picker-type-options{scrollbar-width:thin;scrollbar-color:color-mix(in oklab, var(--ks-patina-deep) 35%, transparent) transparent;align-content:start;min-height:0;overflow-y:auto}@keyframes picker-pair-hoisted{0%{background-color:color-mix(in oklab, var(--ks-patina) 32%, var(--ks-lacquer-raised))}}@keyframes picker-pair-hoisted-spine{0%{background-color:var(--ks-patina-pale)}}.picker-type-option[data-hoisted]{animation:picker-pair-hoisted .64s var(--ks-ease)}.picker-type-option[data-hoisted]:before{animation:picker-pair-hoisted-spine .64s var(--ks-ease)}.picker-type-controls{justify-content:space-between;align-items:center;gap:12px;display:flex}.picker-scale{gap:clamp(24px,4.4svh,40px);padding-block:clamp(32px,5svh,48px) clamp(24px,3.5svh,48px);display:grid}.picker-question-head{justify-items:center;gap:clamp(12px,2svh,18px);display:grid}.picker-question-lede{max-width:46ch;color:var(--ks-text);text-align:center;text-wrap:balance;font-size:1.18rem;line-height:1.5}.picker-scale-grid{grid-template-columns:minmax(300px,352px) minmax(0,1.25fr) minmax(0,1fr);align-items:stretch;gap:clamp(22px,2.2vw,34px);max-height:calc(100svh - 420px);display:grid}.picker-scale-options .picker-strategy-copy{gap:4px}.picker-scale-options .picker-strategy-title{font-family:var(--ks-font);letter-spacing:-.015em;align-items:baseline;font-size:20px;display:flex}.picker-scale-options .picker-strategy-desc{max-width:38ch;font-size:14px;line-height:1.45}.picker-scale-ratio{color:var(--ks-text-faint);font-family:var(--ks-mono);font-variant-numeric:tabular-nums;letter-spacing:0;transition:color .18s var(--ks-ease);margin-inline-end:12px;font-size:.94rem;font-weight:400}.picker-strategy-option:hover .picker-scale-ratio,.picker-strategy-option:has(input:checked) .picker-scale-ratio{color:color-mix(in oklab, var(--ks-patina) 70%, var(--ks-champagne))}.picker-scale-note{color:var(--ks-text-faint);letter-spacing:.04em;font-size:.76rem}.picker-scale-sheet{--ts-fit:1;--pt-heading:var(--ks-font-display);--pt-body:var(--ks-font);--pt-heading-weight:400;background:var(--ks-lacquer-raised);min-width:0;min-height:0;color:var(--ks-champagne);border:1px solid var(--ks-rule);border-radius:2px;grid-template-rows:1.34fr 1.2fr 1.1fr repeat(4,minmax(0,1fr));padding:clamp(14px,2.4%,28px) clamp(18px,3.2%,36px);display:grid;overflow:hidden}.ts-row{border-bottom:1px dotted var(--ks-rule);grid-template-columns:minmax(0,1fr) 2.4rem 4.4rem;align-items:center;gap:clamp(12px,3%,24px);min-width:0;min-height:0;display:grid}.ts-row:last-child{border-bottom:0}.ts-sample{min-width:0;color:var(--ks-text-muted);font-family:var(--pt-heading);font-weight:var(--pt-heading-weight);font-size:calc(var(--ts-size) * var(--ts-fit) * 1px);white-space:nowrap;line-height:1.12;overflow:hidden}.ts-row[data-scale-row="6"] .ts-sample,.ts-row[data-scale-row="5"] .ts-sample,.ts-row[data-scale-row="4"] .ts-sample{color:var(--ks-champagne)}.ts-row[data-scale-row="0"] .ts-sample{color:var(--ks-text-faint);font-family:var(--pt-body);font-weight:400}.ts-tag{color:var(--ks-champagne);font-family:var(--ks-font);font-variant-numeric:tabular-nums;letter-spacing:.04em;text-box:trim-both cap alphabetic;font-size:1.02rem;font-weight:600}.ts-values{font-family:var(--ks-mono);font-variant-numeric:tabular-nums;justify-items:end;gap:5px;font-size:.8rem;line-height:1.25;display:grid}.ts-values b,.ts-values i{text-box:trim-both cap alphabetic}.ts-values b{color:var(--ks-text-muted);font-weight:500}.ts-values i{color:var(--ks-text-faint);font-style:normal}.picker-scale-specimen{--pt-heading:var(--ks-font-display);--pt-body:var(--ks-font);--pt-heading-weight:400;--sp-rhythm:calc(var(--ts-step-0) * 1px);--sp-rail:2.6rem;--sp-rail-gap:.85rem;--sp-pad:clamp(18px, 3.2%, 36px);align-content:start;gap:calc(var(--sp-rhythm) * 1.5);min-width:0;min-height:0;padding-block:calc(clamp(14px,2.4%,28px) + 10px) clamp(14px,2.4%,28px);padding-inline:calc(var(--sp-rail) + var(--sp-rail-gap) + 8px) 16px;background:var(--ks-lacquer-raised);color:var(--ks-text);border:1px solid var(--ks-rule);overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:color-mix(in oklab, var(--ks-patina-deep) 35%, transparent) transparent;border-radius:2px;display:grid;overflow-y:auto}.picker-scale-column{grid-template-rows:minmax(0,1fr) auto;gap:14px;min-width:0;min-height:0;display:grid}@media (width>=1200px){.picker-scale-column{max-height:570px}}.picker-scale-column .picker-type-controls{min-height:44px}.picker-scale-specimen>*{overflow-wrap:break-word;min-width:0}.picker-scale-specimen :is(.sp-h1,.sp-h2,.sp-h3,.sp-h4){color:var(--ks-champagne);font-family:var(--pt-heading);font-weight:var(--pt-heading-weight);letter-spacing:-.01em;text-wrap:balance;margin:0;line-height:1.14}.sp-h1{font-size:calc(var(--ts-step-6) * 1px)}.sp-h2{font-size:calc(var(--ts-step-5) * 1px)}.sp-h3{font-size:calc(var(--ts-step-4) * 1px)}.sp-h4{font-size:calc(var(--ts-step-3) * 1px)}.picker-scale-specimen :is(.sp-h2,.sp-h3,.sp-h4){margin-block-start:calc(var(--sp-rhythm) * 2.4)}.picker-scale-specimen [data-sp-label]{position:relative}.picker-scale-specimen [data-sp-label]:before{content:attr(data-sp-label);top:0;color:var(--ks-text-faint);font-family:var(--ks-mono);font-size:var(--ks-type-eyebrow-size);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;text-box:trim-both cap alphabetic;padding-top:6px;font-weight:500;line-height:1.5;position:absolute;inset-inline-end:calc(100% + var(--sp-rail-gap))}.picker-scale-specimen :is(.sp-lede,.sp-p,.sp-list,.sp-quote){font-family:var(--pt-body);margin:0;font-weight:400}.sp-lede{color:var(--ks-champagne);font-size:calc(var(--ts-step-1) * 1px);line-height:1.5}.sp-p{font-size:calc(var(--ts-step-0) * 1px);line-height:1.62}.picker-scale-specimen strong{color:var(--ks-champagne);font-weight:600}.picker-scale-specimen u{text-underline-offset:.16em;text-decoration-thickness:from-font}.sp-list{font-size:calc(var(--ts-step-0) * 1px);padding-inline-start:calc(var(--sp-rhythm) * 1.5);line-height:1.58}.sp-list li+li{margin-block-start:calc(var(--sp-rhythm) * .5)}.sp-list-ordered{font-variant-numeric:tabular-nums}.sp-list::marker,.sp-list li::marker{color:var(--ks-text-faint)}.sp-quote{border-inline-start:1px solid var(--ks-rule);padding-inline-start:calc(var(--sp-rhythm) * 1.2)}.sp-quote p{color:var(--ks-champagne);font-size:calc(var(--ts-step-2) * 1px);margin:0;line-height:1.42}.sp-cite{color:var(--ks-text-muted);font-size:calc(var(--ts-step-0) * 1px);letter-spacing:.02em;margin-block-start:calc(var(--sp-rhythm) * .7);font-style:normal;display:block}.sp-code,.sp-pre{font-size:calc(var(--ts-step-0) * .94px);font-family:var(--ks-mono)}.sp-code{color:var(--ks-champagne)}.sp-pre{color:var(--ks-text-muted);border:1px solid var(--ks-rule);white-space:pre-wrap;border-radius:2px;margin:0;padding:14px 16px;line-height:1.55}.picker-icons{gap:clamp(24px,4.4svh,40px);padding-block:clamp(32px,5svh,48px) clamp(24px,3.5svh,48px);display:grid}.picker-icons-grid{grid-template-columns:minmax(340px,420px) minmax(0,1fr);align-items:stretch;gap:50px;max-height:calc(100svh - 420px);display:grid}.picker-icon-options .picker-strategy-option{padding-block:16px;padding-inline-end:60px}.picker-icon-options .picker-strategy-copy{gap:5px}.picker-icon-options .picker-strategy-title{font-family:var(--ks-font);letter-spacing:-.015em;font-size:21px}.picker-icon-options .picker-strategy-desc{max-width:40ch;font-size:13px;line-height:1.45}.picker-icon-meta{color:var(--ks-text-faint);font-family:var(--ks-mono);font-size:.7rem}.picker-icon-row{display:grid;position:relative}.picker-icon-options .picker-icon-row:not(:last-child) .picker-strategy-option{border-bottom:1px solid var(--ks-rule)}.picker-icon-out{width:30px;height:30px;color:var(--ks-text-mute-deep);transition:color .18s var(--ks-ease), border-color .18s var(--ks-ease);border:1px solid #0000;border-radius:2px;place-items:center;display:grid;position:absolute;top:14px;right:16px}.picker-icon-out svg{fill:none;stroke:currentColor;stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.picker-icon-out:hover{color:var(--ks-patina);border-color:var(--ks-rule)}.picker-icon-out:focus-visible{outline:2px solid var(--ks-patina);outline-offset:2px}.picker-icon-sheet{background:var(--ks-lacquer-raised);border:1px solid var(--ks-rule);border-radius:2px;grid-template-rows:minmax(0,1fr) auto;min-width:0;min-height:0;display:grid;overflow:hidden}.picker-icon-strip{align-items:center;gap:16px;padding:clamp(9px,1.5svh,14px) clamp(16px,2.2%,24px);display:flex}.picker-icon-field{background:var(--ks-rule);border-bottom:1px solid var(--ks-rule);grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:1px;min-height:0;display:grid}.picker-icon-field[data-empty]{background:var(--ks-lacquer-raised);color:var(--ks-text-muted);text-align:center;grid-template-columns:minmax(0,1fr);place-items:center;padding:24px}.picker-icon-cell{background:var(--ks-lacquer-raised);min-width:0;min-height:0;color:var(--ks-champagne);place-items:center;display:grid}.picker-icon-cell svg{width:clamp(22px,2.2vw,32px);height:auto}@media (height<=830px){.picker-icon-field{grid-template-columns:repeat(8,minmax(0,1fr))}}.picker-icon-strip-label{color:var(--ks-text-faint);font-family:var(--ks-mono);flex:none;font-size:.7rem}.picker-icon-strip-row{min-width:0;color:var(--ks-text-muted);flex-wrap:wrap;gap:8px 11px;display:flex}.picker-icon-strip-row svg{width:16px;height:16px}.picker-type-scroll{gap:8px;display:flex}.picker-type-custom{border:1px solid var(--ks-rule);height:36px;color:var(--ks-text-muted);font-family:var(--ks-font);letter-spacing:.04em;cursor:pointer;transition:color .18s var(--ks-ease), border-color .18s var(--ks-ease), background-color .18s var(--ks-ease);background:0 0;border-radius:2px;align-items:center;gap:8px;padding:0 16px;font-size:.8rem;display:inline-flex}.picker-type-custom svg{fill:none;stroke:currentColor;stroke-width:1.4px;stroke-linecap:square;width:14px;height:14px}.picker-type-custom:hover{color:var(--ks-champagne);border-color:color-mix(in oklab, var(--ks-patina) 45%, transparent);background:color-mix(in oklab, var(--ks-patina) 8%, transparent)}.picker-type-custom:focus-visible{outline:1px solid var(--ks-kinpaku);outline-offset:2px}.picker-modal{background:var(--ks-lacquer-raised);border:1px solid var(--ks-rule);width:min(520px,100vw - 48px);color:var(--ks-text);border-radius:2px;margin:auto;padding:0}.picker-modal::backdrop{backdrop-filter:blur(3px);background:oklch(2% .004 95/.72)}.picker-modal-inner{gap:24px;padding:32px;display:grid}.picker-modal-head{gap:8px;display:grid}.picker-modal-head h2{color:var(--ks-champagne);font-family:var(--ks-font);font-size:1.7rem;font-weight:400;line-height:1.1}.picker-modal-head p{color:var(--ks-text-muted);font-size:.9rem;line-height:1.5}.picker-modal-field{border:1px solid var(--ks-rule);border-radius:2px;gap:8px;padding:20px;display:grid}.picker-modal-field legend{color:var(--ks-kinpaku);letter-spacing:.16em;text-transform:uppercase;margin-inline-start:-8px;padding-inline:8px;font-size:.68rem}.picker-modal-label{color:var(--ks-text-muted);letter-spacing:.02em;font-size:.78rem}.picker-modal-input{background:var(--ks-lacquer-deep);border:1px solid var(--ks-rule);height:40px;color:var(--ks-champagne);font-family:var(--ks-font);border-radius:2px;padding:0 12px;font-size:.88rem}.picker-modal-input::placeholder{color:color-mix(in oklab, var(--ks-text-muted) 65%, transparent)}.picker-modal-input:focus-visible{outline:1px solid var(--ks-patina);outline-offset:1px;border-color:#0000}.picker-modal-or{color:var(--ks-text-muted);letter-spacing:.16em;text-transform:uppercase;font-size:.68rem}.picker-modal-file-block{gap:10px;display:grid}.picker-modal-file{align-items:center;gap:12px;min-width:0;display:flex}.picker-modal-file input{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.picker-modal-file-button{border:1px solid var(--ks-rule);color:var(--ks-champagne);cursor:pointer;transition:border-color .18s var(--ks-ease), color .18s var(--ks-ease);border-radius:2px;flex:none;align-items:center;padding:8px 14px;font-size:.8rem;display:inline-flex}.picker-modal-file:hover .picker-modal-file-button{border-color:color-mix(in oklab, var(--ks-patina) 45%, transparent);color:var(--ks-patina)}.picker-modal-file input:focus-visible+.picker-modal-file-button{outline:1px solid var(--ks-kinpaku);outline-offset:2px}.picker-modal-file-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.picker-modal-file-item{background:var(--ks-lacquer-deep);border:1px solid var(--ks-rule);border-radius:2px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 10px;display:grid}.picker-modal-file-item span{min-width:0;color:var(--ks-text);text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.picker-modal-file-remove{width:24px;height:24px;color:var(--ks-text-muted);cursor:pointer;transition:color .18s var(--ks-ease), background-color .18s var(--ks-ease);background:0 0;border:0;border-radius:2px;flex:none;padding:0;font-size:1.1rem;line-height:1}.picker-modal-file-remove:hover{color:var(--ks-champagne);background:color-mix(in oklab, var(--ks-patina) 10%, transparent)}.picker-modal-file-remove:focus-visible{outline:1px solid var(--ks-kinpaku);outline-offset:2px}.picker-modal-status:empty{display:none}.picker-modal-status{color:var(--ks-patina);font-size:.82rem}.picker-modal-hint:empty{display:none}.picker-modal-hint{color:var(--ks-text-muted);font-size:.82rem;line-height:1.45}.picker-modal-actions{flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:18px;display:flex}.picker-type-options .picker-strategy-option{gap:0;padding:18px 26px 18px 28px}.picker-type-copy{gap:2px;min-width:0;display:grid}.picker-type-sample-heading{min-width:0;color:var(--ks-champagne);font-family:var(--pair-heading,var(--ks-font-display));font-size:26px;font-weight:var(--pair-heading-weight,400);letter-spacing:-.015em;overflow-wrap:anywhere;transition:color .18s var(--ks-ease);line-height:1.15}.picker-type-sample-body{min-width:0;color:var(--ks-text);font-family:var(--pair-body,var(--ks-font));font-size:15px;font-weight:var(--pair-body-weight,400);overflow-wrap:anywhere;line-height:1.4}.picker-type-role{color:var(--ks-text-faint);font-family:var(--ks-font);letter-spacing:.02em;white-space:nowrap;transition:color .18s var(--ks-ease);margin-left:9px;font-size:11px;font-weight:400;line-height:1.2}.picker-strategy-option:hover .picker-type-role,.picker-strategy-option:has(input:checked) .picker-type-role{color:color-mix(in oklab, var(--ks-patina) 45%, var(--ks-text-faint))}.picker-type-desc{color:var(--ks-text-muted);font-family:var(--ks-font);margin-top:7px;font-size:13px;font-weight:400;line-height:1.45}.picker-preview-type,[data-carry]{--pt-ratio:1.618;--pt-base:clamp(.72rem, .86vw, .84rem)}.picker-preview-type{--pvs-copy:color-mix(in oklab, var(--pvs-ground) var(--pvs-copy-mix), var(--pvs-ink));--pvs-bars:color-mix(in oklab, var(--pvs-ground) var(--pvs-bars-mix), var(--pvs-ink))}:where(#picker-form:has(input[name=color-strategy][value=drenched]:checked)) .picker-preview-type{--pvs-ghost:color-mix(in oklab, var(--pv-p-ink) 12%, var(--pv-primary));--pvs-surface:color-mix(in oklab, var(--pv-p-ink) 5%, var(--pv-primary))}.picker-preview-type :is(.ps-phone-top,.ps-phone-footer){--pvs-bars:color-mix(in oklab, var(--pvs-surface) var(--pvs-bars-mix), var(--pvs-ink))}.picker-preview-type,.picker-preview-type .ps-phone,[data-carry],[data-carry] .ps-phone{--pt-micro:max(.62rem, calc(var(--pt-base) / var(--pt-ratio)));--pt-title:calc(var(--pt-base) * var(--pt-ratio));--pt-display:calc(var(--pt-base) * var(--pt-ratio) * var(--pt-ratio));--ps-band-y:calc(var(--pt-base) * .9);--ps-gap-xs:calc(var(--pt-base) * .4);--ps-gap-sm:calc(var(--pt-base) * .75);--ps-gap-md:calc(var(--pt-base) * 1.25);--ps-gap-lg:calc(var(--pt-base) * 2)}.picker-preview-type{--ps-gutter:5.5%}.picker-preview-type:not(.picker-preview-type--experience) :is(.ps-nav-action,.ps-nav-tail){display:none!important}.picker-preview-type .ps-editorial-copy>em[data-type-section-link]{display:none}.picker-preview-type .ps-phone{--ps-gutter:6%;grid-template-rows:7.2% 1fr}[data-carry]{--ps-gutter:6%}[data-carry] .ps-phone{--ps-gutter:var(--pvs-phone-gutter,6%)}.picker-preview-type :is(.ps-brand-block,.ps-nav-bars i,.ps-nav-action,.ps-actions i,.ps-proof-item span,.ps-footer-links i,.ps-footer-mark,.ps-phone-footer i,.ps-gallery-item b){text-box:trim-both cap alphabetic}.picker-preview-type .ps-hero-copy{align-content:center;gap:var(--ps-gap-md)}.picker-preview-type .ps-hero{gap:var(--ps-gap-lg);padding:var(--ps-band-y) var(--ps-gutter);grid-template-columns:minmax(0,1fr) 40%}.picker-preview-type .ps-hero>.ps-image{aspect-ratio:4/5;align-self:center;width:100%;height:auto;max-height:100%}.picker-preview-type .ps-desktop{grid-template-rows:9.4% 45% 9% 28.3% 8.3%}.picker-preview-type .ps-editorial{gap:var(--ps-gap-lg);padding:var(--ps-band-y) var(--ps-gutter);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-content:center;align-items:start}.picker-preview-type .ps-editorial-copy{gap:var(--ps-gap-sm)}.picker-preview-type .ps-desktop .ps-gallery{gap:var(--ps-gap-md);grid-template-columns:repeat(3,minmax(0,1fr));justify-items:stretch;height:auto}.picker-preview-type .ps-desktop .ps-gallery-item{text-align:center;justify-items:center}.picker-preview-type .ps-desktop .ps-gallery-item span{align-items:center}.picker-preview-type .ps-gallery-item{gap:var(--ps-gap-xs);grid-template-rows:auto auto;align-content:start}.picker-preview-type .ps-gallery-item>i{aspect-ratio:3/2;border-radius:var(--pvs-radius-frame);width:100%;max-width:none}.picker-preview-type .ps-desktop .ps-gallery-item>i{margin-inline:0}.picker-preview-type .ps-phone-body{gap:var(--ps-gap-sm);padding:var(--ps-band-y) var(--ps-gutter);grid-template-rows:minmax(0,18%) repeat(5,auto);align-content:space-between}.picker-preview-type[data-surface=persuade] .ps-phone-body>.ps-image{display:none}.picker-preview-type[data-surface=persuade] .ps-phone-body{gap:var(--ps-gap-md);grid-template-rows:repeat(5,auto);align-content:start}.picker-preview-type[data-surface=persuade] .ps-phone-body .pt-headline{margin-block-end:0;font-size:26px;line-height:1.15}.picker-preview-type[data-surface=persuade] .ps-phone-body .pt-body,.picker-preview-type[data-surface=persuade] .ps-phone-body .ps-actions{margin-block-end:0}.picker-preview-type[data-surface=persuade] .ps-phone-body .ps-proof{align-items:center;column-gap:var(--ps-gap-md);grid-template-columns:auto minmax(0,1fr) auto;margin-block-end:0}.picker-preview-type[data-surface=persuade] .ps-phone-body .ps-proof-divider,.picker-preview-type[data-surface=persuade] .ps-phone-body .ps-proof-item:nth-of-type(2){display:none}.picker-preview-type[data-surface=persuade] .ps-phone-body .ps-proof-item:first-of-type{grid-column:2;justify-content:center}.picker-preview-type[data-surface=persuade] .ps-phone-body .ps-proof:before,.picker-preview-type[data-surface=persuade] .ps-phone-body .ps-proof:after{content:"";border-left:1px solid color-mix(in oklab, var(--pvs-bars) 38%, transparent);border-bottom:1px solid color-mix(in oklab, var(--pvs-bars) 38%, transparent);background:0 0;align-self:center;width:5px;height:5px;position:static}.picker-preview-type[data-surface=persuade] .ps-phone-body .ps-proof:before{grid-column:1;transform:rotate(45deg)}.picker-preview-type[data-surface=persuade] .ps-phone-body .ps-proof:after{grid-column:3;transform:rotate(-135deg)}.picker-preview-type[data-surface=persuade] .ps-phone-body .ps-editorial-copy{gap:var(--ps-gap-sm)}.picker-preview-type[data-surface=persuade] .ps-phone-body .ps-editorial-copy strong{font-size:calc(var(--pt-title) * 1.12)}.picker-preview-type[data-surface=persuade] .ps-phone-body .pt-section-body{font-size:var(--pt-base)}.picker-preview-type .ps-phone-body>*{margin:0}.picker-preview-type .ps-phone-body .ps-actions{gap:var(--ps-gap-sm);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.picker-preview-type .ps-phone-body .ps-actions i{overflow-clip-margin:.4em;text-overflow:ellipsis;min-width:0;padding-inline:.8em;overflow:clip}.picker-preview-type .ps-phone-body .ps-proof{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);padding-inline:0}.picker-preview-type .ps-phone-body .ps-editorial-copy{align-content:start}.picker-preview-type .ps-phone-top,.picker-preview-type .ps-phone-footer{padding-inline:var(--ps-gutter)}.picker-preview-type .ps-phone-body .ps-gallery{display:none}.picker-preview-type{container:ps-type-board/size}@container ps-type-board (height<500px){.picker-preview-type .ps-phone-body .ps-editorial-copy{display:none}}.pt-headline{max-width:16ch;color:var(--pvs-headline-text);font-family:var(--pt-heading);font-size:var(--pt-display);font-weight:var(--pt-heading-weight);letter-spacing:-.02em;overflow-wrap:break-word;text-wrap:balance;margin:0;line-height:1.15}.pt-body{max-width:42ch;color:var(--pvs-copy);font-family:var(--pt-body);font-size:var(--pt-base);margin:0;line-height:1.55}.pt-section-body{color:var(--pvs-copy);font-family:var(--pt-body);font-size:var(--pt-micro);margin:0;line-height:1.6}.picker-preview-type .ps-phone,[data-carry] .ps-phone{--pt-base:clamp(.66rem, .72vw, .74rem)}.ps-phone .pt-headline,.ps-phone .pt-body{max-width:none;margin:0}.picker-preview-type :is(.ps-nav-bars i,.ps-proof-item span,.ps-editorial-copy>em,.ps-gallery-item b,.ps-footer-links i,.ps-footer-mark,.ps-phone-footer i){width:auto;height:auto;font-family:var(--pt-body);font-size:var(--pt-micro);white-space:nowrap;background:0 0;border-radius:0;font-style:normal;font-weight:500;line-height:1.4;overflow:visible}.picker-preview-type .ps-nav-bars i,.picker-preview-type .ps-footer-links i,.picker-preview-type .ps-footer-mark,.picker-preview-type .ps-phone-footer i{color:var(--pvs-bars)}.picker-preview-type .ps-footer,.picker-preview-type .ps-phone-footer{display:none}.picker-preview-type .ps-phone .pt-headline{font-size:var(--pt-title)}.picker-preview-type .ps-phone-top .ps-brand-block{font-size:var(--pt-micro)}.picker-preview-type .ps-footer-links{align-items:baseline;gap:var(--ps-gap-md)}.picker-preview-type .ps-nav{gap:var(--ps-gap-lg);padding-inline:var(--ps-gutter);grid-template-columns:auto 1fr;align-content:center;align-items:center}.picker-preview-type .ps-nav-bars{justify-content:flex-start;align-items:baseline;gap:var(--ps-gap-md)}.picker-preview-type .ps-nav-action{align-self:center}.picker-preview-type .ps-brand-block{aspect-ratio:auto;width:auto;height:auto;color:var(--pvs-mark-text);font-family:var(--pt-heading);font-size:var(--pt-title);font-weight:var(--pt-heading-weight);letter-spacing:.04em;background:0 0;border-radius:0;line-height:1}.picker-preview-type .ps-nav-action,.picker-preview-type .ps-actions i{width:auto;height:auto;color:var(--pvs-cta-text);font-family:var(--pt-body);font-size:var(--pt-micro);text-align:center;white-space:nowrap;border:1px solid #0000;padding:.7em 1.3em;font-style:normal;font-weight:600;line-height:1;display:block}.picker-preview-type .ps-nav-action{color:var(--pvs-signal-text)}.picker-preview-type .ps-actions{align-items:center;gap:var(--ps-gap-sm)}.picker-preview-type .ps-actions i:last-child{color:var(--pvs-title)}.picker-preview-type .ps-proof{padding:var(--ps-band-y) var(--ps-gutter);border-block:1px solid var(--pvs-rule);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr)}.picker-preview-type .ps-proof:before,.picker-preview-type .ps-proof:after{content:none}.picker-preview-type .ps-proof-item{gap:var(--ps-gap-sm)}.picker-preview-type .ps-proof-item i{width:calc(var(--pt-base) * .55)}.picker-preview-type .ps-proof-item+.ps-proof-item{border-left:0}.picker-preview-type .ps-proof-divider{background-color:var(--pvs-rule);align-self:stretch;width:1px}.picker-preview-type .ps-phone-body .ps-proof{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}.picker-preview-type .ps-proof-item:nth-of-type(2) i{background-color:var(--pvs-accent-b)}.picker-preview-type .ps-proof-item:nth-of-type(3) i{background-color:var(--pvs-accent-c)}.picker-preview-type .ps-proof-item:nth-of-type(4) i{background-color:var(--pvs-accent-d)}.picker-preview-type .ps-proof-item span{overflow-clip-margin:.4em;min-width:0;color:var(--pvs-bars);text-overflow:ellipsis;white-space:nowrap;overflow:clip}.picker-preview-type .ps-editorial-copy strong{width:auto;height:auto;color:var(--pvs-title);font-family:var(--pt-heading);font-size:var(--pt-title);font-weight:var(--pt-heading-weight);white-space:normal;text-wrap:balance;background:0 0;line-height:1.25;overflow:visible}.picker-preview-type .ps-editorial-copy>em{width:auto;height:auto;margin-top:var(--ps-gap-xs);color:var(--pvs-accent-text);background:0 0}.picker-preview-type .ps-gallery-item span{flex-direction:column;gap:4px;display:flex}.picker-preview-type .ps-gallery-item b{color:var(--pvs-bars);white-space:normal;text-box:unset;display:block;overflow:visible}.picker-preview-type .ps-gallery-item [data-type-gallery-caption]{color:var(--pvs-title);font-size:var(--pt-micro);-webkit-line-clamp:2;text-wrap:balance;-webkit-box-orient:vertical;line-height:1.38;display:-webkit-box;overflow:hidden}.picker-preview-type--ops .ps-desktop{grid-template-rows:9.4% minmax(0,1fr) 8.3%}.picker-preview-type--ops{container:ps-ops-board/size}.ps-ops{grid-template-columns:18.68% 51.84% minmax(0,1fr);min-width:0;min-height:0;display:grid}.ps-ops-rail,.ps-ops-main{border-right:1px solid var(--pvs-rule)}.ps-ops-rail,.ps-ops-panel{align-content:start;gap:var(--ps-gap-sm);min-width:0;padding:var(--ps-band-y) calc(var(--pt-base) * .7);display:grid}.ps-ops-main{align-content:space-between;gap:var(--ps-gap-lg);min-width:0;min-height:0;padding:var(--ps-band-y) calc(var(--pt-base) * 1.1);display:grid}.picker-preview-type--ops :is(.ps-ops-item b,.ps-ops-row b,.ps-ops-field b,.ps-ops-switch b,.ps-ops-lanes b){min-width:0;color:var(--pvs-bars);font-family:var(--pt-body);font-size:var(--pt-micro);white-space:nowrap;font-weight:500;line-height:1.4}.ps-ops-item{align-items:center;gap:calc(var(--pt-base) * .5);padding:calc(var(--pt-base) * .35) calc(var(--pt-base) * .45);border-radius:var(--pvs-radius-bar);display:flex}.ps-ops-item>i{width:calc(var(--pt-base) * .4);aspect-ratio:1;background-color:var(--pvs-accent-a);border-radius:50%;flex:none}.ps-ops-item--on{background-color:var(--pvs-cta)}.picker-preview-type--ops .ps-ops-item--on b{color:var(--pv-neutral);font-weight:600}.ps-ops-item--on>i{background-color:var(--pvs-cta-text)}.picker-preview-type--ops .ps-ops-item--on{padding-block:calc(var(--pt-base) * .45);padding-inline:calc(var(--pt-base) * .72) calc(var(--pt-base) * .58)}.picker-preview-type--ops .ps-ops-field{gap:calc(var(--pt-base) * .5);padding-block:calc(var(--pt-base) * .52);padding-inline:calc(var(--pt-base) * .68) calc(var(--pt-base) * .58)}.picker-preview-type--ops .ps-ops-field b{flex:auto;line-height:1.35}.picker-preview-type--ops .ps-ops-chev{margin-inline-end:calc(var(--pt-base) * .08);transform:translateY(-12%)rotate(45deg)}.ps-ops-title{color:var(--pvs-title);font-family:var(--pt-heading);font-size:var(--pt-title);font-weight:var(--pt-heading-weight);overflow-wrap:break-word;line-height:1.2}.ps-ops-metrics{gap:var(--ps-gap-sm);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.ps-ops-metric{gap:var(--ps-gap-xs);min-width:0;display:grid}.ps-ops-metric b{color:var(--pvs-title);font-family:var(--pt-body);font-size:var(--pt-title);font-variant-numeric:tabular-nums lining-nums;font-weight:600;line-height:1.1}.picker-preview-type--ops .ps-ops-metric span{color:var(--pvs-bars);font-family:var(--pt-body);font-size:var(--pt-micro);line-height:1.35}.ps-ops-chart{gap:var(--ps-gap-sm);min-width:0;display:grid}.ps-ops-chart-title{color:var(--pvs-title);font-family:var(--pt-heading);font-size:var(--pt-base);font-weight:var(--pt-heading-weight);overflow-wrap:break-word;line-height:1.3}.ps-ops-plot,.ps-ops-lanes{gap:calc(var(--pt-base) * .7);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid}.ps-ops-plot{height:calc(var(--pt-base) * 5.5);border-bottom:1px solid var(--pvs-rule);align-items:end}.ps-ops-plot>i{height:var(--h);background-color:var(--pvs-ghost)}.ps-ops-plot>.ps-ops-bar--lead{background-color:var(--pvs-cta)}.picker-preview-type--ops .ps-ops-lanes b{text-align:center}.picker-preview-type--ops .ps-phone-body :is(.ps-ops-plot,.ps-ops-lanes),[data-carry][data-surface=operate] .ps-phone-body :is(.ps-ops-plot,.ps-ops-lanes){gap:calc(var(--pt-base) * 2)}.picker-preview-type--ops .ps-phone-body .ps-ops-plot,[data-carry][data-surface=operate] .ps-phone-body .ps-ops-plot{height:calc(var(--pt-base) * 7)}.ps-ops-table{border-top:1px solid var(--pvs-rule);display:grid}.ps-ops-row{gap:calc(var(--pt-base) * .7);padding:calc(var(--pt-base) * .55) calc(var(--pt-base) * .3);grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;display:grid}.ps-ops-row>i{width:calc(var(--pt-base) * .4);aspect-ratio:1;background-color:var(--pvs-accent-c);border-radius:50%}.picker-preview-type--ops .ps-ops-row b:first-of-type{color:var(--pvs-title)}.picker-preview-type--ops .ps-ops-row b:last-of-type{text-align:end;font-variant-numeric:tabular-nums lining-nums}.picker-preview-type--ops .ps-ops-row--head b{color:var(--pvs-copy);font-weight:600}.ps-ops-row--head>i{background-color:#0000}.ps-ops-row--on{background-color:var(--pvs-ghost)}.picker-preview-type--ops .ps-ops-row--on{padding-inline:calc(var(--pt-base) * .68) calc(var(--pt-base) * .58);border-radius:var(--pvs-radius-frame)}.ps-ops-panel-title{color:var(--pvs-title);font-family:var(--pt-body);font-size:var(--pt-base);font-weight:600;line-height:1.3}.ps-ops-field{align-items:center;gap:calc(var(--pt-base) * .4);padding:calc(var(--pt-base) * .4) calc(var(--pt-base) * .5);border:1px solid var(--pvs-ghost-edge);border-radius:var(--pvs-radius-bar);display:flex}.ps-ops-chev{width:calc(var(--pt-base) * .32);aspect-ratio:1;border-right:1px solid var(--pvs-copy);border-bottom:1px solid var(--pvs-copy);flex:none;margin-left:auto;transform:translateY(-25%)rotate(45deg)}.ps-ops-switch{align-items:center;gap:calc(var(--pt-base) * .4);padding-block:calc(var(--pt-base) * .3);display:flex}.ps-ops-toggle{width:calc(var(--pt-base) * 1.5);height:calc(var(--pt-base) * .8);background-color:var(--pvs-bars);border-radius:999px;flex:none;margin-left:auto;position:relative}.ps-ops-toggle--on{background-color:var(--pvs-cta)}.ps-ops-toggle:after{content:"";aspect-ratio:1;background-color:var(--pvs-ground);border-radius:50%;height:75%;position:absolute;top:12.5%;left:8%}.ps-ops-toggle--on:after{left:auto;right:8%}.picker-preview-type--ops .ps-phone-body,[data-carry][data-surface=operate] .ps-phone-body{align-content:space-between;gap:var(--ps-gap-md);grid-template-rows:repeat(4,auto)}.picker-preview-type--ops .ps-phone-body .ps-ops-row,[data-carry][data-surface=operate] .ps-phone-body .ps-ops-row{grid-template-columns:auto minmax(0,1fr) auto}.picker-preview-type--ops .ps-phone-body .ps-ops-panel,[data-carry][data-surface=operate] .ps-phone-body .ps-ops-panel{gap:0;padding:0}@container ps-ops-board (height<500px){.picker-preview-type--ops .ps-ops-main{gap:var(--ps-gap-md)}.picker-preview-type--ops .ps-ops-plot{height:calc(var(--pt-base) * 2.8)}.picker-preview-type--ops .ps-phone-body,[data-carry][data-surface=operate] .ps-phone-body{gap:var(--ps-gap-sm)}.picker-preview-type--ops .ps-phone-body .ps-ops-plot,[data-carry][data-surface=operate] .ps-phone-body .ps-ops-plot{height:calc(var(--pt-base) * 4.4)}}@container ps-ops-board (height<400px){.picker-preview-type--ops .ps-phone-body .ps-ops-plot,[data-carry][data-surface=operate] .ps-phone-body .ps-ops-plot{height:calc(var(--pt-base) * 3.2)}}.picker-preview-type--read .ps-desktop{grid-template-rows:9.4% minmax(0,1fr) 8.3%}.picker-preview-type--read{container:ps-docs-board/size}.ps-docs{grid-template-columns:23.75% minmax(0,1fr);min-width:0;min-height:0;display:grid}.ps-docs-rail{align-content:start;gap:var(--ps-gap-sm);min-width:0;padding:var(--ps-band-y) calc(var(--pt-base) * .6) 0 var(--ps-gutter);border-right:1px solid var(--pvs-rule);display:grid}.picker-preview-type--read .ps-docs{grid-template-columns:minmax(0,21%) minmax(0,1fr)}.picker-preview-type--read .ps-docs-rail{padding-inline-end:calc(var(--pt-base) * .35)}.ps-docs-item{align-items:center;gap:calc(var(--pt-base) * .5);min-width:0;display:flex}.ps-docs-item>i{width:calc(var(--pt-base) * .34);aspect-ratio:1;background-color:var(--pvs-bars);border-radius:50%;flex:none}.picker-preview-type--read .ps-docs-item b{min-width:0;color:var(--pvs-bars);font-family:var(--pt-body);font-size:var(--pt-micro);font-weight:500;line-height:1.4}.ps-docs-item--on>i{background-color:var(--pvs-accent-c)}.picker-preview-type--read .ps-docs-item--on b{color:var(--pvs-accent-text);font-weight:600}.ps-docs-main{min-width:0;min-height:0;padding:var(--ps-band-y) 6% 0 calc(var(--pt-base) * 1.6);align-content:start;display:grid}.picker-preview-type--read .ps-docs-main{padding:var(--ps-band-y) 5% 0 calc(var(--pt-base) * .8)}.picker-preview-type--read .ps-docs-main .pt-headline{max-width:22ch}.picker-preview-type--read :is(.ps-docs-lede,.ps-docs-para){max-width:70ch;color:var(--pvs-copy);font-family:var(--pt-body);font-size:var(--pt-base);margin:0;line-height:1.65}.picker-preview-type--read .ps-docs-lede{margin-top:calc(var(--pt-base) * .9);color:var(--pvs-title);font-weight:500}.picker-preview-type--read .ps-docs-para{margin-top:calc(var(--pt-base) * .7)}.picker-preview-type--read .ps-docs-sub+.ps-docs-para{margin-top:calc(var(--pt-base) * .55)}.ps-docs-sub{margin-top:calc(var(--pt-base) * 1.5);color:var(--pvs-title);font-family:var(--pt-heading);font-size:var(--pt-title);font-weight:var(--pt-heading-weight);overflow-wrap:break-word;line-height:1.25}.picker-preview-type--read .ps-docs-list{margin:calc(var(--pt-base) * 1.2) 0 0;padding-left:calc(var(--pt-base) * 1.2);color:var(--pvs-copy);font-family:var(--pt-body);font-size:var(--pt-base);line-height:1.55;display:none}.picker-preview-type--read .ps-docs-list li{max-width:62ch}.picker-preview-type--read .ps-docs-list li+li{margin-top:calc(var(--pt-base) * .45)}.picker-preview-type--read .ps-docs-list li::marker{color:var(--pvs-bars)}.picker-preview-type--read .ps-docs-note{margin-top:calc(var(--pt-base) * 1.3);padding:calc(var(--pt-base) * .7) calc(var(--pt-base) * .9);background-color:var(--pvs-ghost);border-left:calc(var(--pt-base) * .25) solid var(--pvs-accent-c)}.ps-docs-note-copy{gap:calc(var(--pt-base) * .2);min-width:0;display:grid}.picker-preview-type--read .ps-docs-note-copy b{color:var(--pv-primary);font-family:var(--pt-body);font-size:var(--pt-micro);font-weight:600;line-height:1.4}.picker-preview-type--read .ps-docs-note-copy>span{color:var(--pvs-copy);font-family:var(--pt-body);font-size:var(--pt-micro);line-height:1.5}.ps-docs-crumb{color:var(--pvs-bars);font-family:var(--pt-body);font-size:var(--pt-micro);text-align:center;font-weight:500}.picker-preview-type--read .ps-phone-body,[data-carry][data-surface=read] .ps-phone-body{align-content:start;gap:var(--ps-gap-md);grid-template-rows:repeat(6,auto)}.picker-preview-type--read .ps-phone-body>*{margin-block:0}.picker-preview-type--read .ps-phone-body .pt-headline{font-size:var(--pt-title);margin-top:0}.picker-preview-type--read .ps-phone-body .ps-docs-sub{margin-top:0}.picker-preview-type--read .ps-phone-body .ps-docs-sub+.ps-docs-para{margin-top:calc(var(--pt-base) * .45)}.picker-preview-type--read .ps-phone-body .ps-docs-list,.picker-preview-type--read .ps-phone-body .ps-docs-note{margin-top:0}@container ps-docs-board (height>=545px){.picker-preview-type--read .ps-docs-main{padding-bottom:var(--ps-band-y);align-content:space-between}.picker-preview-type--read .ps-docs-list{display:block}.picker-preview-type--read .ps-phone-body{align-content:space-between}}@container ps-docs-board (height<440px){.picker-preview-type--read .ps-phone-body .ps-docs-note,[data-carry][data-surface=read] .ps-phone-body .ps-docs-note{display:none}}.picker-preview-type--experience .ps-desktop{grid-template-rows:9.4% minmax(0,1fr)}.ps-index{gap:var(--ps-gap-md);min-width:0;min-height:0;padding:var(--ps-band-y) var(--ps-gutter);grid-template-rows:auto minmax(0,1fr) minmax(0,1fr) auto;display:grid}.picker-preview-type--experience .ps-index{gap:var(--ps-gap-sm);grid-template-rows:auto minmax(0,1fr) minmax(0,1fr)}.picker-preview-type--experience .ps-desktop :is(.ps-index-rail,.ps-index-meta,.ps-nav-action){display:none}.picker-preview-type--experience .ps-index>.pt-headline{max-width:none;font-size:var(--pt-title);letter-spacing:0;white-space:nowrap;text-wrap:nowrap}.ps-index-row{grid-template-columns:42% minmax(0,1fr);column-gap:5.14%;min-height:0;display:grid}.ps-index-row--flip{grid-template-columns:minmax(0,1fr) 42%}.ps-index-row--flip>.ps-image{grid-area:1/2}.ps-index-row--flip>.ps-index-cap{grid-area:1/1}.ps-index-cap{align-content:center;gap:calc(var(--pt-base) * .35);min-width:0;display:grid}.picker-preview-type--experience .ps-desktop .ps-index-cap{align-content:center;gap:calc(var(--pt-base) * .42)}.picker-preview-type--experience .ps-desktop .ps-index-row--flip .ps-index-cap{padding-left:20px}.picker-preview-type--experience .ps-index-avatar{display:none}.picker-preview-type--experience .ps-desktop .ps-index-avatar{width:calc(var(--pt-base) * 3.4);margin-bottom:calc(var(--pt-base) * .12);aspect-ratio:1;border:1px solid color-mix(in oklab, var(--pv-secondary) 55%, var(--pv-neutral));background:linear-gradient(135deg, color-mix(in oklab, var(--pv-secondary) 24%, var(--pv-neutral)), color-mix(in oklab, var(--pv-secondary) 46%, var(--pv-neutral)));border-radius:50%;display:block}.ps-index-title{color:var(--pvs-title);font-family:var(--pt-heading);font-size:var(--pt-title);font-weight:var(--pt-heading-weight);overflow-wrap:break-word;line-height:1.2}.picker-preview-type--experience .ps-index-meta{color:var(--pvs-bars);font-family:var(--pt-body);font-size:var(--pt-micro);text-transform:uppercase;letter-spacing:.08em;font-weight:500;line-height:1.4}.picker-preview-type--experience .ps-index-note{max-width:46ch;margin-top:calc(var(--pt-base) * .3);color:var(--pvs-copy);font-family:var(--pt-body);white-space:pre-line;line-height:1.55}.picker-preview-type--experience .ps-desktop .ps-index-note{font-size:16px}.picker-preview-type--experience .ps-phone-body .ps-index-note{font-size:var(--pt-micro)}.ps-index-rail{align-items:center;gap:calc(var(--pt-base) * .9);display:flex}.ps-index-arrow{width:calc(var(--pt-base) * .42);aspect-ratio:1;border-left:1px solid var(--pvs-bars);border-bottom:1px solid var(--pvs-bars);flex:none;transform:rotate(45deg)}.ps-index-arrow--next{border-right:1px solid var(--pvs-bars);border-top:1px solid var(--pvs-bars);border-bottom:0;border-left:0;margin-left:auto}.ps-index-track{align-items:baseline;gap:calc(var(--pt-base) * 1.1);display:flex}.picker-preview-type--experience .ps-index-track b{color:var(--pvs-bars);font-family:var(--pt-body);font-size:var(--pt-micro);white-space:nowrap;font-weight:500;line-height:1.4}.picker-preview-type--experience .ps-index-stop--on{border-radius:var(--pvs-radius-bar);background-color:var(--pvs-cta);color:var(--pv-neutral);padding:.55em .95em;font-weight:600}.picker-preview-type--experience .ps-phone-body,[data-carry][data-surface=experience] .ps-phone-body{gap:var(--ps-gap-sm);grid-template-rows:minmax(0,1fr) auto minmax(0,1fr) auto}.picker-preview-type--experience .ps-phone-body .ps-index-cap,[data-carry][data-surface=experience] .ps-phone-body .ps-index-cap{padding-top:0}.picker-preview-type--experience .ps-phone-body .ps-index-cap{padding-inline:10px}.picker-preview-type--experience .ps-phone :is(.ps-index-meta,.ps-nav-action){display:none}[data-carry]:is([data-surface=operate],[data-surface=read],[data-surface=experience]) .ps-desktop{grid-template-rows:9.4% minmax(0,1fr) 8.3%}[data-carry] :is(.ps-ops-title,.ps-ops-item b,.ps-ops-metric b,.ps-ops-metric span,.ps-ops-chart-title,.ps-ops-lanes b,.ps-ops-row b,.ps-ops-panel-title,.ps-ops-field b,.ps-ops-switch b,.ps-docs-item b,.ps-docs-sub,.ps-docs-crumb,.ps-docs-list li,.ps-docs-note-copy b,.ps-docs-main .pt-headline i,.ps-phone-body .pt-headline i,.ps-docs-lede i,.ps-docs-para i,.ps-docs-note-copy>span i){background-color:var(--pvs-bars);border-radius:var(--pvs-radius-bar);display:block}[data-carry] :is(.ps-ops-title,.ps-docs-main .pt-headline i,.ps-phone-body .pt-headline i){height:calc(var(--pt-base) * .72);background-color:var(--pvs-headline)}[data-carry] .ps-ops-title{width:38%}[data-carry] :is(.ps-docs-sub,.ps-ops-chart-title,.ps-ops-panel-title){height:calc(var(--pt-base) * .5);background-color:var(--pvs-title)}[data-carry] .ps-docs-sub{width:44%}[data-carry] .ps-ops-chart-title{width:46%}[data-carry] .ps-ops-panel-title{width:62%}[data-carry] :is(.ps-docs-main,.ps-phone-body) .pt-headline{gap:calc(var(--pt-base) * 1.3);margin:0;display:grid}[data-carry] :is(.ps-docs-main,.ps-phone-body) .pt-headline i:last-child{width:58%}[data-carry] :is(.ps-docs-lede,.ps-docs-para){gap:calc(var(--pt-base) * 1.25);display:grid}[data-carry] .ps-docs-lede{margin:calc(var(--pt-base) * .9) 0 0}[data-carry] .ps-docs-para{margin:calc(var(--pt-base) * .7) 0 0}[data-carry] .ps-docs-sub+.ps-docs-para{margin-top:calc(var(--pt-base) * .55)}[data-carry] .ps-docs-note-copy>span{gap:calc(var(--pt-base) * .67);margin:0;display:grid}[data-carry] :is(.ps-docs-lede,.ps-docs-para) i{height:calc(var(--pt-base) * .3);background-color:var(--pvs-copy)}[data-carry] .ps-docs-lede i:last-child,[data-carry] .ps-docs-para i:last-child{width:62%}[data-carry] .ps-docs-note-copy>span i{height:calc(var(--pt-base) * .26)}[data-carry] .ps-docs-note-copy>span i:last-child{width:54%}[data-carry] .ps-docs-note-copy b{width:42%;height:calc(var(--pt-base) * .3);background-color:var(--pvs-accent-c)}[data-carry] .ps-docs-crumb{width:46%;height:calc(var(--pt-base) * .26);margin-inline:auto}[data-carry] .ps-docs-list{gap:calc(var(--pt-base) * 1.7);margin:calc(var(--pt-base) * 1.2) 0 0;padding:0;list-style:none;display:grid}[data-carry] .ps-docs-note{margin-top:calc(var(--pt-base) * 1.3)}[data-carry] .ps-docs-list li{height:calc(var(--pt-base) * .3);margin-left:calc(var(--pt-base) * 1.1);background-color:var(--pvs-copy);position:relative}[data-carry] .ps-docs-list li:nth-child(2){width:82%}[data-carry] .ps-docs-list li:before{content:"";top:0;left:calc(var(--pt-base) * -1.1);width:calc(var(--pt-base) * .3);aspect-ratio:1;background-color:var(--pvs-accent-c);border-radius:var(--pvs-radius-dot);position:absolute}[data-carry] :is(.ps-ops-item b,.ps-docs-item b,.ps-ops-lanes b,.ps-ops-row b,.ps-ops-field b,.ps-ops-switch b,.ps-ops-metric span){height:calc(var(--pt-base) * .26)}[data-carry] :is(.ps-ops-item,.ps-docs-item) b{flex:auto;min-width:0}[data-carry] .ps-ops-item b{width:74%}[data-carry] .ps-ops-item--on b{background-color:var(--pvs-cta-ink)}[data-carry] .ps-docs-item b{width:72%}[data-carry] .ps-docs-item:nth-of-type(2) b{width:88%}[data-carry] .ps-docs-item:nth-of-type(3) b{width:60%}[data-carry] .ps-docs-item:nth-of-type(4) b{width:80%}[data-carry] .ps-docs-item--on b{background-color:var(--pvs-accent-c)}[data-carry] .ps-ops-item:nth-of-type(2) b{width:58%}[data-carry] .ps-ops-item:nth-of-type(3) b{width:82%}[data-carry] .ps-ops-metric b{width:56%;height:calc(var(--pt-base) * .62);background-color:var(--pvs-title)}[data-carry] .ps-ops-metric span{width:88%}[data-carry] .ps-ops-lanes b{width:68%;margin-inline:auto}[data-carry] .ps-ops-row b:first-of-type{width:calc(var(--pt-base) * 4.4);background-color:var(--pvs-title)}[data-carry] .ps-ops-row b:nth-of-type(2){width:calc(var(--pt-base) * 3)}[data-carry] .ps-ops-row b:last-of-type{width:calc(var(--pt-base) * 2.2);margin-left:auto}[data-carry] .ps-ops-row--head b{background-color:var(--pvs-copy)}[data-carry] .ps-ops-field b{width:64%}[data-carry] .ps-ops-switch b{width:56%}[data-carry] .ps-ops-switch:nth-of-type(3) b{width:70%}[data-carry] :is(.ps-index-head,.ps-index-name,.ps-index-tag,.ps-index-lines b){background-color:var(--pvs-bars);border-radius:var(--pvs-radius-bar);display:block}[data-carry] .ps-index-head{width:28%;height:calc(var(--pt-base) * .72);background-color:var(--pvs-headline)}[data-carry] .ps-index-name{width:68%;height:calc(var(--pt-base) * .52);background-color:var(--pvs-title)}[data-carry] .ps-index-tag{width:34%;height:calc(var(--pt-base) * .24)}[data-carry] .ps-index-lines{gap:calc(var(--pt-base) * .7);margin-top:calc(var(--pt-base) * .3);display:grid}[data-carry] .ps-index-lines b{width:78%;height:calc(var(--pt-base) * .26);background-color:var(--pvs-copy)}[data-carry] .ps-index-lines b:last-child{width:52%}[data-carry] .ps-index-track b{width:calc(var(--pt-base) * 1.5);height:calc(var(--pt-base) * .24);background-color:var(--pvs-bars);border-radius:var(--pvs-radius-bar)}[data-carry] .ps-index-stop--on{background-color:var(--pvs-cta)}[data-carry] :is(.ps-ops-item,.ps-ops-field,.ps-ops-row){border-radius:var(--pvs-radius-control)}[data-carry] :is(.ps-ops-chart,.ps-ops-table,.ps-ops-panel,.ps-ops-rail,.ps-docs-note,.ps-docs-rail,.ps-index-cap){border-radius:var(--pvs-radius-surface)}[data-carry] .ps-ops-toggle{border-radius:var(--pvs-radius-control)}[data-carry] .ps-ops-plot>i{border-radius:var(--pvs-radius-surface) var(--pvs-radius-surface) 0 0}[data-carry] :is(.ps-ops-chart,.ps-ops-table,.ps-docs-note){box-shadow:var(--pvs-shadow-card)}[data-carry] :is(.ps-ops-item--on,.ps-ops-field,.ps-ops-toggle){box-shadow:var(--pvs-shadow-control)}[data-carry] :is(.ps-ops-rail,.ps-ops-panel,.ps-docs-rail){box-shadow:var(--pvs-shadow-surface)}[data-carry] .ps-ops{grid-template-columns:var(--pvs-shell-cols,calc(var(--pvs-w2,15.3333%) + var(--pvs-gut,1.6%) / 2) calc(var(--pvs-w7,57.6667%) + var(--pvs-gut,1.6%)) minmax(0, 1fr));padding-inline:var(--ps-gutter);column-gap:0}[data-carry] .ps-docs{grid-template-columns:var(--pvs-measure-cols,calc(var(--pvs-w3,23.8%) + var(--pvs-gut,1.6%) / 2) minmax(0, 1fr));padding-inline:var(--ps-gutter)}[data-carry] .ps-ops-metrics{grid-template-columns:var(--pvs-metric-cols,repeat(3, minmax(0, 1fr)))}[data-carry] .ps-index-row{grid-template-columns:var(--pvs-entry-cols,var(--pvs-w6,49.2%) minmax(0, 1fr));column-gap:var(--pvs-gut,1.6%)}[data-carry] .ps-index-row--flip{grid-template-columns:var(--pvs-entry-flip-cols,minmax(0, 1fr) var(--pvs-w6,49.2%))}[data-carry] .ps-ops-rail{padding-left:0}[data-carry] .ps-ops-panel{padding-right:0}[data-carry] .ps-docs-rail{padding-left:0}[data-carry] .ps-docs-main{padding-inline:calc(var(--pvs-gut,1.6%) / 2) 0}[data-carry][data-surface=read]{container:ps-docs-board/size}[data-carry][data-surface=operate]{container:ps-ops-board/size}@container ps-docs-board (height>=300px){[data-carry] .ps-docs-main{padding-bottom:var(--ps-band-y);align-content:space-between}[data-carry] .ps-phone-body:has(.ps-docs-list){align-content:space-between}}@container ps-ops-board (height>=300px){[data-carry] .ps-ops-main{padding-bottom:var(--ps-band-y);grid-template-rows:auto auto minmax(0,1fr) minmax(0,1fr);align-content:stretch}[data-carry] .ps-ops-chart{grid-template-rows:auto minmax(0,1fr) auto}[data-carry] .ps-ops-plot{height:auto;min-height:0}[data-carry] .ps-ops-table{align-content:space-between}[data-carry][data-surface=operate] .ps-phone-body{grid-template-rows:auto auto minmax(0,1fr) auto auto;align-content:stretch}[data-carry][data-surface=operate] .ps-phone-body .ps-ops-plot{height:auto;min-height:0}}.picker-palette-hint{min-height:3.2em;color:var(--ks-text-muted);opacity:1;transition:opacity .18s var(--ks-ease);padding-inline-end:48px;font-size:.84rem;line-height:1.6}.picker-palette-hint.is-changing{opacity:0}.picker-select{width:auto}.picker-placeholder{color:var(--ks-text-muted);justify-items:start;gap:28px;display:grid}.picker-finish{max-width:620px;color:var(--ks-champagne);gap:28px}.picker-finish-loader{background:color-mix(in oklab, var(--ks-text) 14%, transparent);width:100%;height:2px;overflow:hidden}.picker-finish-loader i{background:var(--ks-kinpaku);width:38%;height:100%;animation:picker-finish-sweep 1.4s var(--ks-ease) infinite;display:block}.picker-finish-loader[data-stalled] i{opacity:.35;animation-play-state:paused}@keyframes picker-finish-sweep{0%{translate:-100%}to{translate:380%}}.picker-finish-error{color:var(--ks-text-muted);margin:0;font-size:.94rem;line-height:1.6}.picker-finish [data-doc-error][hidden]{display:none}@media (prefers-reduced-motion:reduce){.picker-finish-loader i{opacity:.5;width:100%;animation:none;translate:0}.picker-hero-art,.picker-progress,.picker-progress span,.picker-card,.picker-ring,.picker-ring:after,.picker-ring-guide,.picker-icon-button,.picker-band-tools,.picker-tip:after,.picker-band-alert-tip,.picker-palette-hint,.picker-strategy-option,.picker-artboard:not(.picker-preview-type) :is(.ps-desktop,.ps-phone,.ps-nav,.ps-proof,.ps-proof-item,.ps-footer,.ps-phone-top,.ps-phone-footer,.ps-brand-block,.ps-nav-bars i,.ps-nav-action,.ps-eyebrow,.ps-headline i,.ps-copy i,.ps-actions i,.ps-image,.ps-proof-item i,.ps-proof-item span,.ps-editorial-copy strong,.ps-editorial-copy span i,.ps-editorial-copy>em,.ps-gallery-item>i,.ps-gallery-item b,.ps-footer-links i,.ps-footer-mark,.ps-phone-footer i,.ps-ops-rail,.ps-ops-main,.ps-ops-item,.ps-ops-chart,.ps-ops-table,.ps-ops-row,.ps-ops-panel,.ps-ops-plot>i,.ps-docs-rail,.ps-docs-note,.ps-index-row,.ps-index-rail),.picker-preview-type :is(.ps-desktop,.ps-phone,.ps-nav,.ps-proof,.ps-proof-item,.ps-footer,.ps-phone-top,.ps-phone-footer,.ps-brand-block,.ps-nav-bars i,.ps-nav-action,.ps-eyebrow,.ps-headline i,.ps-copy i,.ps-actions i,.ps-image,.ps-proof-item i,.ps-proof-item span,.ps-editorial-copy strong,.ps-editorial-copy>em,.ps-gallery-item>i,.ps-gallery-item b,.ps-footer-links i,.ps-footer-mark,.ps-phone-footer i,.pt-headline,.pt-body,.pt-section-body){transition:none}.picker-card[data-exit],.picker-type-option[data-hoisted],.picker-type-option[data-hoisted]:before{animation:none}}.picker-width-gate{display:none}@media (width<=1199px){.picker-width-gate{z-index:10;background:var(--ks-lacquer);color:var(--ks-text);text-align:center;place-items:center;padding:40px;display:grid;position:fixed;inset:0}.picker-width-gate>div{justify-items:center;gap:12px;max-width:560px;display:grid}.picker-width-gate h2{color:var(--ks-champagne);font-family:var(--ks-font-display);font-size:var(--ks-type-headline-size);font-weight:var(--ks-type-headline-weight);line-height:var(--ks-type-headline-line)}.picker-width-gate p{color:var(--ks-text-muted)}.picker-copy-link{background:var(--ks-lacquer-raised);border:1px solid var(--ks-rule);text-align:left;border-radius:2px;align-items:center;gap:14px;width:min(100%,480px);min-width:0;margin-top:14px;padding:13px 12px 13px 18px;display:flex}.picker-copy-link code{min-width:18ch;color:var(--ks-patina);font-family:var(--ks-mono);font-size:var(--ks-type-body-size);letter-spacing:0;white-space:nowrap;user-select:all;background:0 0;border:0;flex:auto;padding:0;overflow-x:auto}.picker-copy-link-button{border:1px solid var(--ks-rule);width:40px;height:40px;color:var(--ks-patina);cursor:pointer;transition:background .18s var(--ks-ease), border-color .18s var(--ks-ease), color .18s var(--ks-ease), transform .12s var(--ks-ease);background:0 0;border-radius:2px;flex:none;place-items:center;padding:0;display:inline-grid;position:relative}.picker-copy-link-button:hover,.picker-copy-link-button.is-copied{background:var(--ks-lacquer);border-color:currentColor}.picker-copy-link-button:active{transform:scale(.96)}.picker-copy-link-button:focus-visible{outline:2px solid var(--ks-patina);outline-offset:3px}.picker-copy-link-icon,.picker-copy-link-check{transition:opacity .14s var(--ks-ease), transform .18s var(--ks-ease);grid-area:1/1}.picker-copy-link-icon{opacity:1;transform:scale(1)}.picker-copy-link-check{opacity:0;transform:scale(.86)}.picker-copy-link-button.is-copied .picker-copy-link-icon{opacity:0;transform:scale(.82)}.picker-copy-link-button.is-copied .picker-copy-link-check{opacity:1;transform:scale(1)}.picker-copy-link-button span{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.picker-copy-status{min-height:1.5em;font-size:var(--ks-type-mono-size)}@media (width<=520px){.picker-width-gate{padding-inline:24px}.picker-copy-link{gap:10px;padding-left:14px}.picker-copy-link code{overflow-wrap:anywhere;white-space:normal;overflow-x:visible}}@media (prefers-reduced-motion:reduce){.picker-copy-link-button,.picker-copy-link-icon,.picker-copy-link-check{transition:none}}}.picker-hub{justify-items:center;gap:clamp(28px,4.5svh,44px);padding-block:clamp(32px,5svh,48px) clamp(24px,3.5svh,48px);display:grid}.picker-hub .picker-question-lede{max-width:800px;font-weight:300}.picker-hub-grid{grid-template-columns:repeat(6,minmax(0,1fr));align-items:stretch;gap:14px;width:min(100%,1080px);display:grid}.picker-hub-card{grid-column:span 2}.picker-hub-card:nth-child(4){grid-column:2/span 2}.picker-hub-card{grid-row:span 4;grid-template-rows:subgrid;text-align:center;background:var(--ks-lacquer-raised);border:1px solid var(--ks-rule);width:100%;transition:background-color .18s var(--ks-ease), border-color .18s var(--ks-ease);border-radius:0;place-items:center;padding:22px 20px;display:grid;position:relative}.picker-hub-card:hover{border-color:color-mix(in oklab, var(--ks-patina) 45%, var(--ks-rule))}.picker-hub-open{color:inherit;font-family:var(--ks-font);cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:0;display:inline-flex}.picker-hub-open:after{content:"";position:absolute;inset:0}.picker-hub-open:focus-visible{outline:2px solid var(--ks-patina-deep);outline-offset:-2px}.picker-hub-title{color:var(--ks-champagne);font-size:var(--ks-type-title-size);font-weight:var(--ks-type-title-weight);line-height:var(--ks-type-title-line)}.picker-hub-arrow{width:14px;height:8px;color:var(--ks-text-faint);transition:color .18s var(--ks-ease), transform .18s var(--ks-ease);flex:none}.picker-hub-card:hover .picker-hub-arrow{color:var(--ks-patina);transform:translate(2px)}.picker-hub-note{max-width:34ch;color:var(--ks-text-faint);align-self:start;font-size:.84rem;line-height:1.5}.picker-hub-note[hidden]{display:none}.picker-hub-line{display:block}.picker-hub-preview{aspect-ratio:1.34;background:var(--ks-lacquer);border:1px solid var(--ks-rule);pointer-events:none;width:100%;max-width:560px;display:block;position:relative;overflow:hidden}.picker-hub-preview>.picker-hub-proof{width:var(--pk-hub-natural,918px);transform:translate(var(--pk-hub-x,0px), var(--pk-hub-y,0px)) scale(var(--pk-hub-scale,.32));transform-origin:0 0;position:absolute;top:0;left:0}.picker-hub-preview--icons>.picker-hub-proof{width:auto;position:absolute;inset:0;transform:none}.picker-hub-preview--icons .picker-icon-strip-row{height:100%;color:var(--ks-text-muted);grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);place-items:center;gap:0;padding:10px 8px;display:grid}.picker-hub-proof{display:block}.picker-hub-slider{z-index:1;background:var(--ks-lacquer-raised);border:1px solid var(--ks-rule);border-radius:2px;align-items:center;gap:4px;max-width:100%;min-height:34px;padding:3px;display:inline-flex;position:relative}.picker-hub-slider[hidden]{display:none}.picker-hub-step{width:26px;height:26px;color:var(--ks-text-muted);cursor:pointer;transition:background-color .18s var(--ks-ease), color .18s var(--ks-ease);background:0 0;border:0;border-radius:2px;place-items:center;padding:0;display:grid}.picker-hub-step:hover{color:var(--ks-champagne);background:color-mix(in oklab, var(--ks-patina) 12%, var(--ks-lacquer-raised))}.picker-hub-step:focus-visible{outline:2px solid var(--ks-patina-deep);outline-offset:-2px}.picker-hub-step[hidden]{display:none}.picker-hub-step svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:square;width:13px;height:13px}.picker-hub-slider-label{color:var(--ks-text-muted);letter-spacing:.015em;padding-inline:8px;font-size:12.5px}.picker-hub-slider-value{color:color-mix(in oklab, var(--ks-patina) 85%, var(--ks-champagne))}@media (prefers-reduced-motion:reduce){.picker-hub-step,.picker-hub-arrow{transition:none}}.picker-hub-card.is-skipped,.picker-hub-card.is-skipped:hover{border-color:var(--ks-rule);cursor:not-allowed;pointer-events:none;background:0 0}.picker-hub-card.is-skipped .picker-hub-title,.picker-hub-card.is-skipped .picker-hub-note,.picker-hub-card.is-skipped .picker-hub-arrow{color:var(--ks-text-mute-deep)}@media (width<=1199px){.picker-hub-grid{grid-template-columns:minmax(0,1fr)}.picker-hub-card,.picker-hub-card:nth-child(4){grid-column:auto}}.picker-preview-motion{--mt:8s;--mt-ease:cubic-bezier(.33, 1, .68, 1);--mt-tf:steps(1, start);--mt-press-scale:1;--mt-lift:0px;--mt-dim:1;--mt-sink:0px;--mt-in-o:1;--mt-in-y:0px;--mt-in-clip:0%}.picker-preview-motion .ps-desktop{position:relative;container-type:size}.picker-preview-motion .ps-cursor{z-index:5;filter:drop-shadow(1px 1.5px 1.5px #0000004d);width:15px;height:21px;animation:mt-path var(--mt) ease-in-out infinite;background:url("data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 14 20\"%3E%3Cpath d=\"M1 1v15l3.9-3.4 2.4 5.6 2.6-1.1-2.4-5.6h5.1z\" fill=\"black\" stroke=\"white\" stroke-width=\"1.3\" stroke-linejoin=\"round\"/%3E%3C/svg%3E") 0 0/contain no-repeat;position:absolute;top:0;left:0}.picker-preview-motion .ps-cursor:after{content:"";border:1.5px solid var(--pvs-ink);opacity:0;width:18px;height:18px;animation:mt-click var(--mt) linear infinite;border-radius:50%;position:absolute;top:-4px;left:-4px}@keyframes mt-path{0%,24%{translate:34cqw 96cqh}33%,36%{translate:21.8cqw 45.8cqh}50%,54%{translate:73.8cqw 80.2cqh}70%,to{translate:34cqw 96cqh}}@keyframes mt-click{0%,33.6%{opacity:0;scale:.35}34%{opacity:.55;scale:.35}36.4%{opacity:0;scale:1.5}50.6%{opacity:0;scale:.35}51%{opacity:.55;scale:.35}53.4%,to{opacity:0;scale:1.5}}.picker-preview-motion .ps-actions i:first-child{animation:mt-seg-off var(--mt) var(--mt-tf) infinite}.picker-preview-motion .ps-actions i:last-child{animation:mt-seg-on var(--mt) steps(1, start) infinite, mt-press-seg var(--mt) linear infinite}@keyframes mt-seg-off{0%,34%{background-color:var(--pvs-cta)}35.5%,88%{background-color:var(--pvs-ghost)}89.5%,to{background-color:var(--pvs-cta)}}@keyframes mt-seg-on{0%,34%{background-color:var(--pvs-ghost)}35.5%,88%{background-color:var(--pvs-cta)}89.5%,to{background-color:var(--pvs-ghost)}}@keyframes mt-press-seg{0%,33.6%{scale:1}34.4%{scale:var(--mt-press-scale)}36%{scale:1}to{scale:1}}.picker-preview-motion .ps-gallery-item:nth-child(3){animation:mt-card-on var(--mt) var(--mt-tf) infinite, mt-card-lift var(--mt) var(--mt-tf) infinite, mt-press-card var(--mt) linear infinite}.picker-preview-motion .ps-gallery-item:not(:nth-child(3)){animation:mt-card-dim var(--mt) var(--mt-tf) infinite}@keyframes mt-card-on{0%,51%{background-color:color-mix(in oklab, var(--pvs-surface) 0%, transparent);box-shadow:inset 0 0 0 0 var(--pvs-cta)}52.5%,88%{background-color:var(--pvs-surface);box-shadow:inset 0 0 0 1.5px var(--pvs-cta)}89.5%,to{background-color:color-mix(in oklab, var(--pvs-surface) 0%, transparent);box-shadow:inset 0 0 0 0 var(--pvs-cta)}}@keyframes mt-card-lift{0%,51%{translate:0}53.5%,88%{translate:0 var(--mt-lift)}89.5%,to{translate:0}}@keyframes mt-press-card{0%,50.6%{scale:1}51.4%{scale:var(--mt-press-scale)}53%{scale:1}to{scale:1}}@keyframes mt-card-dim{0%,52%{filter:opacity();translate:0}54%,88%{filter:opacity(var(--mt-dim));translate:0 var(--mt-sink)}89.5%,to{filter:opacity();translate:0}}.picker-preview-motion .ps-nav{animation:mt-in-1 var(--mt) var(--mt-ease) infinite}.picker-preview-motion .ps-hero-copy>*{animation:mt-in-2 var(--mt) var(--mt-ease) infinite}.picker-preview-motion .ps-hero>.ps-image{animation:mt-in-image var(--mt) var(--mt-ease) infinite}.picker-preview-motion .ps-proof-item{animation:mt-in-4 var(--mt) var(--mt-ease) infinite}.picker-preview-motion .ps-editorial-copy>*,.picker-preview-motion .ps-gallery{animation:mt-in-5 var(--mt) var(--mt-ease) infinite}.picker-preview-motion .ps-footer{animation:mt-in-6 var(--mt) var(--mt-ease) infinite}@keyframes mt-in-1{0%{opacity:var(--mt-in-o);translate:0 var(--mt-in-y)}7%,95%{opacity:1;translate:0}to{opacity:var(--mt-in-o);translate:0}}@keyframes mt-in-2{0%,2.5%{opacity:var(--mt-in-o);translate:0 var(--mt-in-y)}9.5%,95%{opacity:1;translate:0}to{opacity:var(--mt-in-o);translate:0}}@keyframes mt-in-4{0%,7.5%{opacity:var(--mt-in-o);translate:0 var(--mt-in-y)}14.5%,95%{opacity:1;translate:0}to{opacity:var(--mt-in-o);translate:0}}@keyframes mt-in-5{0%,10%{opacity:var(--mt-in-o);translate:0 var(--mt-in-y)}17%,95%{opacity:1;translate:0}to{opacity:var(--mt-in-o);translate:0}}@keyframes mt-in-6{0%,12.5%{opacity:var(--mt-in-o);translate:0 var(--mt-in-y)}19.5%,95%{opacity:1;translate:0}to{opacity:var(--mt-in-o);translate:0}}@keyframes mt-in-image{0%,5%{opacity:var(--mt-in-o);clip-path:inset(0 0 var(--mt-in-clip) 0)}12%,95%{opacity:1;clip-path:inset(0 0 0%)}to{opacity:var(--mt-in-o);clip-path:inset(0 0 var(--mt-in-clip) 0)}}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=restrained]) .picker-preview-motion .ps-cursor,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=restrained]:checked) .picker-preview-motion .ps-cursor{animation:3.8s linear infinite mtr-path}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=restrained]) .picker-preview-motion .ps-cursor:after,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=restrained]:checked) .picker-preview-motion .ps-cursor:after{opacity:0;animation:none}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=restrained]) .picker-preview-motion .ps-gallery-item,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=restrained]:checked) .picker-preview-motion .ps-gallery-item{animation:none}.picker-preview-motion .ps-nav{z-index:3}.picker-preview-motion .ps-nav-bars i:nth-child(-n+2){position:relative}.picker-preview-motion .ps-nav-bars i:nth-child(-n+2):after{content:"";box-sizing:border-box;background-image:linear-gradient(var(--pvs-ground), var(--pvs-ground));border:1.5px solid var(--pvs-cta);border-radius:var(--pvs-radius-control);transform-origin:top;opacity:0;pointer-events:none;z-index:2;width:64px;height:54px;position:absolute;top:calc(100% + 8px);left:-10px}.picker-preview-motion .ps-nav-bars i:nth-child(-n+2):before{content:"";background-image:linear-gradient(var(--pvs-headline), var(--pvs-headline)), linear-gradient(var(--pvs-copy), var(--pvs-copy)), linear-gradient(var(--pvs-copy), var(--pvs-copy));opacity:0;pointer-events:none;z-index:3;background-position:0 0,0 13px,0 26px;background-repeat:no-repeat;background-size:78% 5px,92% 5px,64% 5px;width:41px;height:31px;position:absolute;top:calc(100% + 18.5px);left:1.5px}.picker-preview-motion .ps-actions i:first-child:after{content:"";background-color:var(--pvs-cta);clip-path:polygon(28% 0,100% 50%,28% 100%,6% 82%,42% 50%,6% 18%);opacity:0;pointer-events:none;width:6px;height:8px;position:absolute;top:calc(50% - 4px);right:12%}.picker-preview-motion .ps-actions i:first-child,.picker-preview-motion .ps-gallery-item:first-child>i{position:relative}.picker-preview-motion .ps-gallery-item:first-child>i:after{content:"";background-color:var(--pvs-ground);clip-path:polygon(28% 0,100% 50%,28% 100%,6% 82%,42% 50%,6% 18%);opacity:0;pointer-events:none;width:7px;height:9px;position:absolute;bottom:6px;right:6px}.picker-preview-motion .ps-gallery-item:first-child>i:before{content:"";background-color:var(--pvs-cta);border-radius:inherit;clip-path:inset(0 100% 0 0);opacity:0;pointer-events:none;position:absolute;inset:0}.picker-preview-motion .ps-desktop:after{content:"";background-color:var(--pvs-ground);border-radius:inherit;opacity:0;pointer-events:none;z-index:4;position:absolute;inset:0}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=restrained]) .picker-preview-motion .ps-nav-bars i:first-child,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=restrained]:checked) .picker-preview-motion .ps-nav-bars i:first-child{animation:3.8s linear infinite mtr-nav-1}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=restrained]) .picker-preview-motion .ps-nav-bars i:first-child:before,#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=restrained]) .picker-preview-motion .ps-nav-bars i:first-child:after,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=restrained]:checked) .picker-preview-motion .ps-nav-bars i:first-child:before,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=restrained]:checked) .picker-preview-motion .ps-nav-bars i:first-child:after{animation:3.8s linear infinite mtr-drop-1}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=restrained]) .picker-preview-motion .ps-nav-bars i:nth-child(2),#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=restrained]:checked) .picker-preview-motion .ps-nav-bars i:nth-child(2){animation:3.8s linear infinite mtr-nav-2}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=restrained]) .picker-preview-motion .ps-nav-bars i:nth-child(2):before,#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=restrained]) .picker-preview-motion .ps-nav-bars i:nth-child(2):after,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=restrained]:checked) .picker-preview-motion .ps-nav-bars i:nth-child(2):before,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=restrained]:checked) .picker-preview-motion .ps-nav-bars i:nth-child(2):after{animation:3.8s linear infinite mtr-drop-2}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=restrained]) .picker-preview-motion .ps-actions i:first-child,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=restrained]:checked) .picker-preview-motion .ps-actions i:first-child{animation:3.8s linear infinite mtr-cta-primary}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=restrained]) .picker-preview-motion .ps-actions i:last-child,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=restrained]:checked) .picker-preview-motion .ps-actions i:last-child{animation:3.8s linear infinite mtr-cta-secondary}@keyframes mtr-path{0%{translate:var(--mtr-entry,64.5cqw -8cqh)}9.21%,25%{translate:var(--mtr-nav1,64.8cqw 4.8cqh)}32.89%,40.79%{translate:var(--mtr-nav2,71.4cqw 4.8cqh)}57.89%,75%{translate:var(--mtr-cta1,10.3cqw 48.4cqh)}82.89%,90.79%{translate:var(--mtr-cta2,20.7cqw 48.4cqh)}96.5%,to{translate:var(--mtr-entry,64.5cqw -8cqh)}}@keyframes mtr-nav-1{0%,9.2%{background-color:var(--pvs-bars)}9.21%,24.99%{background-color:var(--pvs-cta)}25%,to{background-color:var(--pvs-bars)}}@keyframes mtr-drop-1{0%,9.2%{opacity:0}9.21%,24.99%{opacity:1}25%,to{opacity:0}}@keyframes mtr-nav-2{0%,32.88%{background-color:var(--pvs-bars)}32.89%,40.78%{background-color:var(--pvs-cta)}40.79%,to{background-color:var(--pvs-bars)}}@keyframes mtr-drop-2{0%,32.88%{opacity:0}32.89%,40.78%{opacity:1}40.79%,to{opacity:0}}@keyframes mtr-cta-primary{0%,57.88%{background-color:var(--pvs-cta);box-shadow:inset 0 0 0 0 var(--pvs-cta)}57.89%,74.99%{background-color:var(--pvs-ghost);box-shadow:inset 0 0 0 1.5px var(--pvs-cta)}75%,to{background-color:var(--pvs-cta);box-shadow:inset 0 0 0 0 var(--pvs-cta)}}@keyframes mtr-cta-secondary{0%,82.88%{background-color:var(--pvs-ghost)}82.89%,90.78%{background-color:var(--pvs-cta)}90.79%,to{background-color:var(--pvs-ghost)}}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=responsive]) .picker-preview-motion .ps-cursor,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=responsive]:checked) .picker-preview-motion .ps-cursor{animation:4.2s ease-in-out infinite mtv-path}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=responsive]) .picker-preview-motion .ps-cursor:after,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=responsive]:checked) .picker-preview-motion .ps-cursor:after{opacity:0;animation:none}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=responsive]) .picker-preview-motion .ps-gallery-item,#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=responsive]) .picker-preview-motion .ps-actions i:last-child,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=responsive]:checked) .picker-preview-motion .ps-gallery-item,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=responsive]:checked) .picker-preview-motion .ps-actions i:last-child{animation:none}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=responsive]) .picker-preview-motion .ps-nav-bars i:first-child,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=responsive]:checked) .picker-preview-motion .ps-nav-bars i:first-child{animation:4.2s linear infinite mtv-nav}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=responsive]) .picker-preview-motion .ps-nav-bars i:first-child:after,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=responsive]:checked) .picker-preview-motion .ps-nav-bars i:first-child:after{animation:4.2s linear infinite mtv-panel}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=responsive]) .picker-preview-motion .ps-nav-bars i:first-child:before,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=responsive]:checked) .picker-preview-motion .ps-nav-bars i:first-child:before{animation:4.2s linear infinite mtv-rows}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=responsive]) .picker-preview-motion .ps-actions i:first-child,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=responsive]:checked) .picker-preview-motion .ps-actions i:first-child{animation:4.2s linear infinite mtv-cta}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=responsive]) .picker-preview-motion .ps-actions i:first-child:after,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=responsive]:checked) .picker-preview-motion .ps-actions i:first-child:after{animation:4.2s linear infinite mtv-cta-chev}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=responsive]) .picker-preview-motion .ps-gallery-item:first-child>i,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=responsive]:checked) .picker-preview-motion .ps-gallery-item:first-child>i{animation:4.2s linear infinite mtv-card-img}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=responsive]) .picker-preview-motion .ps-gallery-item:first-child span b:first-child,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=responsive]:checked) .picker-preview-motion .ps-gallery-item:first-child span b:first-child{animation:4.2s linear infinite mtv-card-label}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=responsive]) .picker-preview-motion .ps-gallery-item:first-child>i:after,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=responsive]:checked) .picker-preview-motion .ps-gallery-item:first-child>i:after{animation:4.2s linear infinite mtv-card-chev}@keyframes mtv-path{0%{translate:var(--mtr-entry,64.5cqw -8cqh)}5.95%,25%{translate:var(--mtr-nav1,64.8cqw 4.8cqh)}34.52%,50%{translate:var(--mtr-cta1,10.3cqw 48.4cqh)}60.71%,83.33%{translate:var(--mtr-card1,40cqw 80cqh)}90%,99.99%{translate:32cqw 115cqh}to{translate:var(--mtr-entry,64.5cqw -8cqh)}}@keyframes mtv-nav{0%,5.95%{background-color:var(--pvs-bars);animation-timing-function:cubic-bezier(.16,1,.3,1)}8.81%,25%{background-color:var(--pvs-cta)}27.86%,to{background-color:var(--pvs-bars)}}@keyframes mtv-panel{0%,5.94%{opacity:0;scale:1 0}5.95%{opacity:1;animation-timing-function:cubic-bezier(.16,1,.3,1);scale:1 0}10.24%,25%{opacity:1;scale:1}27.85%{opacity:1;scale:1 0}27.86%,to{opacity:0;scale:1 0}}@keyframes mtv-rows{0%,5.95%{opacity:0;background-position:0 -6px,0 7px,0 20px}7.14%{opacity:.25;background-position:0 -4.5px,0 7px,0 20px}8.33%{opacity:.5;background-position:0 -3px,0 8.5px,0 20px}10.71%{opacity:1;background-position:0 0,0 11.5px,0 23px}11.9%{opacity:1;background-position:0 0,0 13px,0 24.5px}13.1%,25%{opacity:1;background-position:0 0,0 13px,0 26px}27.86%,to{opacity:0;background-position:0 -6px,0 7px,0 20px}}@keyframes mtv-cta{0%,34.52%{background-color:var(--pvs-cta);box-shadow:inset 0 0 0 0 var(--pvs-cta);animation-timing-function:cubic-bezier(.16,1,.3,1)}38.33%,50%{background-color:var(--pvs-ghost);box-shadow:inset 0 0 0 1.5px var(--pvs-cta)}52.86%,to{background-color:var(--pvs-cta);box-shadow:inset 0 0 0 0 var(--pvs-cta)}}@keyframes mtv-cta-chev{0%,34.52%{opacity:0;animation-timing-function:cubic-bezier(.16,1,.3,1);translate:-6px}39.29%,50%{opacity:1;translate:0}52.38%,to{opacity:0;translate:-6px}}@keyframes mtv-card-img{0%,60.71%{background-color:var(--pvs-accent-a);animation-timing-function:cubic-bezier(.16,1,.3,1)}66.43%,83.33%{background-color:var(--pvs-cta)}87.14%,to{background-color:var(--pvs-accent-a)}}@keyframes mtv-card-label{0%,60.71%{background-color:var(--pvs-bars);animation-timing-function:cubic-bezier(.16,1,.3,1)}66.43%,83.33%{background-color:var(--pvs-cta)}87.14%,to{background-color:var(--pvs-bars)}}@keyframes mtv-card-chev{0%,60.71%{opacity:0;animation-timing-function:cubic-bezier(.16,1,.3,1);translate:-6px}65%,83.33%{opacity:1;translate:0}85.71%,to{opacity:0;translate:-6px}}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion :is(.ps-hero-copy>*,.ps-proof-item,.ps-editorial-copy>*,.ps-gallery,.ps-gallery-item,.ps-actions i),#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion :is(.ps-hero-copy>*,.ps-proof-item,.ps-editorial-copy>*,.ps-gallery,.ps-gallery-item,.ps-actions i){animation:none}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion .ps-cursor,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion .ps-cursor{animation:5.6s ease-in-out infinite mtc-path}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion .ps-cursor:after,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion .ps-cursor:after{opacity:0;animation:none}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion .ps-desktop:after,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion .ps-desktop:after{animation:5.6s linear infinite mtc-curtain}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion .ps-nav,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion .ps-nav{animation:5.6s linear infinite mtc-nav}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion .ps-hero-copy>.ps-eyebrow,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion .ps-hero-copy>.ps-eyebrow{animation:5.6s linear infinite mtc-eyebrow}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion .ps-headline i:first-child,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion .ps-headline i:first-child{animation:5.6s linear infinite mtc-headline-1}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion .ps-headline i:nth-child(2),#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion .ps-headline i:nth-child(2){animation:5.6s linear infinite mtc-headline-2}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion .ps-copy i:first-child,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion .ps-copy i:first-child{animation:5.6s linear infinite mtc-copy-1}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion .ps-copy i:nth-child(2),#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion .ps-copy i:nth-child(2){animation:5.6s linear infinite mtc-copy-2}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion .ps-copy i:nth-child(3),#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion .ps-copy i:nth-child(3){animation:5.6s linear infinite mtc-copy-3}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion .ps-hero-copy>.ps-actions,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion .ps-hero-copy>.ps-actions{animation:5.6s linear infinite mtc-actions}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion .ps-hero>.ps-image,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion .ps-hero>.ps-image{animation:5.6s linear infinite mtc-image}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion .ps-hero>.ps-image:after,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion .ps-hero>.ps-image:after{animation:5.6s linear infinite mtc-dot}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion .ps-proof-item i,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion .ps-proof-item i{animation:5.6s linear infinite mtc-pdot}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion .ps-proof-item span,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion .ps-proof-item span{transform-origin:0;animation:5.6s linear infinite mtc-pline}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion .ps-proof-divider,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion .ps-proof-divider{animation:5.6s linear infinite mtc-pdiv}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion .ps-editorial-copy strong,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion .ps-editorial-copy strong{animation:5.6s linear infinite mtc-ed-title}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion .ps-editorial-copy span i:first-child,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion .ps-editorial-copy span i:first-child{animation:5.6s linear infinite mtc-ed-line-1}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion .ps-editorial-copy span i:nth-child(2),#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion .ps-editorial-copy span i:nth-child(2){animation:5.6s linear infinite mtc-ed-line-2}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion .ps-editorial-copy>em,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion .ps-editorial-copy>em{transform-origin:0;animation:5.6s linear infinite mtc-ed-dash}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion .ps-gallery-item:first-child>i,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion .ps-gallery-item:first-child>i{animation:5.6s linear infinite mtc-g-img-1}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion .ps-gallery-item:nth-child(2)>i,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion .ps-gallery-item:nth-child(2)>i{animation:5.6s linear infinite mtc-g-img-2}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion .ps-gallery-item:nth-child(3)>i,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion .ps-gallery-item:nth-child(3)>i{animation:5.6s linear infinite mtc-g-img-3}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion .ps-gallery-item:nth-child(4)>i,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion .ps-gallery-item:nth-child(4)>i{animation:5.6s linear infinite mtc-g-img-4}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion .ps-gallery-item:first-child span,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion .ps-gallery-item:first-child span{animation:5.6s linear infinite mtc-g-lab-1}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion .ps-gallery-item:nth-child(2) span,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion .ps-gallery-item:nth-child(2) span{animation:5.6s linear infinite mtc-g-lab-2}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion .ps-gallery-item:nth-child(3) span,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion .ps-gallery-item:nth-child(3) span{animation:5.6s linear infinite mtc-g-lab-3}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion .ps-gallery-item:nth-child(4) span,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion .ps-gallery-item:nth-child(4) span{animation:5.6s linear infinite mtc-g-lab-4}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion .ps-footer,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion .ps-footer{animation:5.6s linear infinite mtc-footer}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion .ps-gallery-item:first-child>i:before,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion .ps-gallery-item:first-child>i:before{animation:5.6s linear infinite mtc-tint}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion .ps-gallery-item:first-child span b:first-child,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion .ps-gallery-item:first-child span b:first-child{animation:5.6s linear infinite mtc-label}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion .ps-gallery-item:first-child>i:after,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion .ps-gallery-item:first-child>i:after{animation:5.6s linear infinite mtc-chev}@keyframes mtc-curtain{0%{opacity:1}4.6%{opacity:0}96.4%{opacity:0}to{opacity:1}}@keyframes mtc-nav{0%,1.7%{opacity:0;animation-timing-function:cubic-bezier(.16,1,.3,1);translate:0 8px}8%,to{opacity:1;translate:0}}@keyframes mtc-eyebrow{0%,8%{clip-path:inset(0 100% 0 0);animation-timing-function:cubic-bezier(.16,1,.3,1)}13.4%,to{clip-path:inset(0)}}@keyframes mtc-headline-1{0%,11.6%{clip-path:inset(0 100% 0 0);animation-timing-function:cubic-bezier(.16,1,.3,1)}17.9%,to{clip-path:inset(0)}}@keyframes mtc-headline-2{0%,15.2%{clip-path:inset(0 100% 0 0);animation-timing-function:cubic-bezier(.16,1,.3,1)}21.4%,to{clip-path:inset(0)}}@keyframes mtc-copy-1{0%,20.5%{opacity:0;animation-timing-function:cubic-bezier(.16,1,.3,1);translate:0 6px}25.9%,to{opacity:1;translate:0}}@keyframes mtc-copy-2{0%,22.7%{opacity:0;animation-timing-function:cubic-bezier(.16,1,.3,1);translate:0 6px}28%,to{opacity:1;translate:0}}@keyframes mtc-copy-3{0%,24.8%{opacity:0;animation-timing-function:cubic-bezier(.16,1,.3,1);translate:0 6px}30.2%,to{opacity:1;translate:0}}@keyframes mtc-actions{0%,26.8%{opacity:0;animation-timing-function:cubic-bezier(.16,1,.3,1);translate:0 6px}32.1%,to{opacity:1;translate:0}}@keyframes mtc-image{0%,20.5%{clip-path:inset(0 100% 0 0);animation-timing-function:cubic-bezier(.16,1,.3,1)}33%,to{clip-path:inset(0)}}@keyframes mtc-dot{0%,33%{opacity:0;animation-timing-function:cubic-bezier(.16,1,.3,1);scale:.4}35.7%,to{opacity:1;scale:1}}@keyframes mtc-pdot{0%,35.7%{opacity:0;background-color:var(--pvs-accent-a);animation-timing-function:cubic-bezier(.16,1,.3,1);scale:.6}38.6%,to{opacity:1;background-color:var(--pvs-cta);scale:1}}@keyframes mtc-pline{0%,36.8%{animation-timing-function:cubic-bezier(.16,1,.3,1);scale:0 1}41.8%,to{scale:1}}@keyframes mtc-pdiv{0%,35.7%{opacity:0}38.9%,to{opacity:1}}@keyframes mtc-ed-title{0%,44.6%{clip-path:inset(0 100% 0 0);animation-timing-function:cubic-bezier(.16,1,.3,1)}50%,to{clip-path:inset(0)}}@keyframes mtc-ed-line-1{0%,49.1%{opacity:0;animation-timing-function:cubic-bezier(.16,1,.3,1);translate:0 5px}54.5%,to{opacity:1;translate:0}}@keyframes mtc-ed-line-2{0%,50.9%{opacity:0;animation-timing-function:cubic-bezier(.16,1,.3,1);translate:0 5px}56.3%,to{opacity:1;translate:0}}@keyframes mtc-ed-dash{0%,55.4%{animation-timing-function:cubic-bezier(.16,1,.3,1);scale:0 1}59.8%,to{scale:1}}@keyframes mtc-g-img-1{0%,50.9%{clip-path:inset(0 0 100%);animation-timing-function:cubic-bezier(.16,1,.3,1)}57.3%,to{clip-path:inset(0)}}@keyframes mtc-g-img-2{0%,52.3%{clip-path:inset(0 0 100%);animation-timing-function:cubic-bezier(.16,1,.3,1)}58.8%,to{clip-path:inset(0)}}@keyframes mtc-g-img-3{0%,53.8%{clip-path:inset(0 0 100%);animation-timing-function:cubic-bezier(.16,1,.3,1)}60.2%,to{clip-path:inset(0)}}@keyframes mtc-g-img-4{0%,55.2%{clip-path:inset(0 0 100%);animation-timing-function:cubic-bezier(.16,1,.3,1)}61.6%,to{clip-path:inset(0)}}@keyframes mtc-g-lab-1{0%,54.5%{opacity:0;animation-timing-function:cubic-bezier(.16,1,.3,1);translate:0 5px}59.8%,to{opacity:1;translate:0}}@keyframes mtc-g-lab-2{0%,55.9%{opacity:0;animation-timing-function:cubic-bezier(.16,1,.3,1);translate:0 5px}61.3%,to{opacity:1;translate:0}}@keyframes mtc-g-lab-3{0%,57.3%{opacity:0;animation-timing-function:cubic-bezier(.16,1,.3,1);translate:0 5px}62.7%,to{opacity:1;translate:0}}@keyframes mtc-g-lab-4{0%,58.8%{opacity:0;animation-timing-function:cubic-bezier(.16,1,.3,1);translate:0 5px}64.1%,to{opacity:1;translate:0}}@keyframes mtc-footer{0%,58.9%{opacity:0}64.3%,to{opacity:1}}@keyframes mtc-path{0%,60.7%{translate:45cqw 115cqh}67.9%,85.7%{translate:var(--mtr-card1,40cqw 80cqh)}92%,to{translate:45cqw 115cqh}}@keyframes mtc-tint{0%,67.9%{opacity:0;clip-path:inset(0 100% 0 0)}67.91%{opacity:1;clip-path:inset(0 100% 0 0);animation-timing-function:cubic-bezier(.16,1,.3,1)}72.1%,85.7%{opacity:1;clip-path:inset(0)}88.6%,to{opacity:0;clip-path:inset(0)}}@keyframes mtc-label{0%,71.4%{background-color:var(--pvs-bars);width:76%;animation-timing-function:cubic-bezier(.16,1,.3,1)}75.9%,85.7%{background-color:var(--pvs-cta);width:84%}88.6%,to{background-color:var(--pvs-bars);width:76%}}@keyframes mtc-chev{0%,73.2%{opacity:0;translate:-6px}75.9%{opacity:1;animation-timing-function:cubic-bezier(.16,1,.3,1);translate:-6px}79.5%,85.7%{opacity:1;translate:0}87.5%,to{opacity:0;translate:0}}.picker-preview-motion--index{--pvs-rows:9.4% minmax(0, 1fr) 8.3%}.picker-preview-motion--index .ps-index{padding:2.4% var(--pvs-gutter-end) 2.4% var(--pvs-gutter);gap:13px}.picker-preview-motion--index .ps-index-head{background-color:var(--pvs-headline);border-radius:var(--pvs-radius-bar);width:26%;height:13px;display:block}.picker-preview-motion--index .ps-index-row>.ps-image{overflow:hidden}.picker-preview-motion--index .ps-index-row>.ps-image:before{content:"";background-color:var(--pvs-cta);border-radius:0 0 var(--pvs-radius-surface) var(--pvs-radius-surface);opacity:0;pointer-events:none;height:26%;position:absolute;inset:auto 0 0;translate:0 100%}.picker-preview-motion--index .ps-index-cap{gap:9px}.picker-preview-motion--index .ps-index-name{background-color:var(--pvs-title);border-radius:var(--pvs-radius-bar);width:66%;height:11px;display:block}.picker-preview-motion--index .ps-index-tag{background-color:var(--pvs-bars);border-radius:var(--pvs-radius-bar);width:32%;height:5px;display:block}.picker-preview-motion--index .ps-index-lines{gap:7px;margin-top:3px;display:grid}.picker-preview-motion--index .ps-index-lines b{background-color:var(--pvs-copy);border-radius:var(--pvs-radius-bar);width:76%;height:6px;display:block}.picker-preview-motion--index .ps-index-lines b:last-child{width:54%}.picker-preview-motion--index .ps-index-arrow{width:7px}.picker-preview-motion--index .ps-index-track{align-items:center;gap:13px}.picker-preview-motion--index .ps-index-track b{background-color:var(--pvs-bars);border-radius:var(--pvs-radius-bar);width:22px;height:5px;display:block}.picker-preview-motion--index .ps-index-track .ps-index-stop--on{background-color:var(--pvs-cta)}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=restrained]) .picker-preview-motion--index .ps-cursor,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=restrained]:checked) .picker-preview-motion--index .ps-cursor{animation:3.8s linear infinite mxr-path}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=restrained]) .picker-preview-motion--index .ps-index-row:first-of-type>.ps-image:before,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=restrained]:checked) .picker-preview-motion--index .ps-index-row:first-of-type>.ps-image:before{animation:3.8s linear infinite mxr-band-1}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=restrained]) .picker-preview-motion--index .ps-index-row:first-of-type .ps-index-name,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=restrained]:checked) .picker-preview-motion--index .ps-index-row:first-of-type .ps-index-name{animation:3.8s linear infinite mxr-name-1}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=restrained]) .picker-preview-motion--index .ps-index-row:first-of-type>.ps-image:after,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=restrained]:checked) .picker-preview-motion--index .ps-index-row:first-of-type>.ps-image:after{animation:3.8s linear infinite mxr-mark-1}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=restrained]) .picker-preview-motion--index .ps-index-row:nth-of-type(2)>.ps-image:before,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=restrained]:checked) .picker-preview-motion--index .ps-index-row:nth-of-type(2)>.ps-image:before{animation:3.8s linear infinite mxr-band-2}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=restrained]) .picker-preview-motion--index .ps-index-row:nth-of-type(2) .ps-index-name,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=restrained]:checked) .picker-preview-motion--index .ps-index-row:nth-of-type(2) .ps-index-name{animation:3.8s linear infinite mxr-name-2}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=restrained]) .picker-preview-motion--index .ps-index-row:nth-of-type(2)>.ps-image:after,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=restrained]:checked) .picker-preview-motion--index .ps-index-row:nth-of-type(2)>.ps-image:after{animation:3.8s linear infinite mxr-mark-2}@keyframes mxr-path{0%{translate:var(--mtr-entry,64.5cqw -8cqh)}9.21%,25%{translate:var(--mtr-nav1,64.8cqw 4.8cqh)}32.89%,40.79%{translate:var(--mtr-nav2,71.4cqw 4.8cqh)}57.89%,75%{translate:var(--mxi-work1,25.6cqw 33.3cqh)}82.89%,90.79%{translate:var(--mxi-work2,74.4cqw 60.9cqh)}96.5%,to{translate:var(--mtr-entry,64.5cqw -8cqh)}}@keyframes mxr-band-1{0%,57.88%{opacity:0;translate:0 100%}57.89%,74.99%{opacity:1;translate:0}75%,to{opacity:0;translate:0 100%}}@keyframes mxr-name-1{0%,57.88%{background-color:var(--pvs-title)}57.89%,74.99%{background-color:var(--pvs-cta)}75%,to{background-color:var(--pvs-title)}}@keyframes mxr-mark-1{0%,57.88%{background-color:var(--pvs-accent-d);scale:1}57.89%,74.99%{background-color:var(--pvs-cta);scale:1.4}75%,to{background-color:var(--pvs-accent-d);scale:1}}@keyframes mxr-band-2{0%,82.88%{opacity:0;translate:0 100%}82.89%,90.78%{opacity:1;translate:0}90.79%,to{opacity:0;translate:0 100%}}@keyframes mxr-name-2{0%,82.88%{background-color:var(--pvs-title)}82.89%,90.78%{background-color:var(--pvs-cta)}90.79%,to{background-color:var(--pvs-title)}}@keyframes mxr-mark-2{0%,82.88%{background-color:var(--pvs-accent-d);scale:1}82.89%,90.78%{background-color:var(--pvs-cta);scale:1.4}90.79%,to{background-color:var(--pvs-accent-d);scale:1}}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=responsive]) .picker-preview-motion--index .ps-cursor,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=responsive]:checked) .picker-preview-motion--index .ps-cursor{animation:4.2s ease-in-out infinite mxv-path}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=responsive]) .picker-preview-motion--index .ps-index-row:first-of-type>.ps-image:before,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=responsive]:checked) .picker-preview-motion--index .ps-index-row:first-of-type>.ps-image:before{animation:4.2s linear infinite mxv-band}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=responsive]) .picker-preview-motion--index .ps-index-row:first-of-type .ps-index-name,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=responsive]:checked) .picker-preview-motion--index .ps-index-row:first-of-type .ps-index-name{animation:4.2s linear infinite mxv-name}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=responsive]) .picker-preview-motion--index .ps-index-row:first-of-type>.ps-image:after,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=responsive]:checked) .picker-preview-motion--index .ps-index-row:first-of-type>.ps-image:after{animation:4.2s linear infinite mxv-mark}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=responsive]) .picker-preview-motion--index .ps-index-arrow--next,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=responsive]:checked) .picker-preview-motion--index .ps-index-arrow--next{animation:4.2s linear infinite mxv-arrow}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=responsive]) .picker-preview-motion--index .ps-index-track,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=responsive]:checked) .picker-preview-motion--index .ps-index-track{animation:4.2s linear infinite mxv-track}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=responsive]) .picker-preview-motion--index .ps-index-track b:first-child,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=responsive]:checked) .picker-preview-motion--index .ps-index-track b:first-child{animation:4.2s linear infinite mxv-stop-off}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=responsive]) .picker-preview-motion--index .ps-index-track b:nth-child(2),#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=responsive]:checked) .picker-preview-motion--index .ps-index-track b:nth-child(2){animation:4.2s linear infinite mxv-stop-on}@keyframes mxv-path{0%{translate:var(--mtr-entry,64.5cqw -8cqh)}5.95%,25%{translate:var(--mtr-nav1,64.8cqw 4.8cqh)}34.52%,50%{translate:var(--mxi-work1,25.6cqw 33.3cqh)}60.71%,83.33%{translate:var(--mxi-rail,92.6cqw 87.9cqh)}90%,99.99%{translate:32cqw 115cqh}to{translate:var(--mtr-entry,64.5cqw -8cqh)}}@keyframes mxv-band{0%,34.52%{opacity:0;animation-timing-function:cubic-bezier(.16,1,.3,1);translate:0 100%}39.29%,50%{opacity:1;translate:0}52.86%,to{opacity:0;translate:0 100%}}@keyframes mxv-name{0%,34.52%{background-color:var(--pvs-title);animation-timing-function:cubic-bezier(.16,1,.3,1)}38.33%,50%{background-color:var(--pvs-cta)}52.86%,to{background-color:var(--pvs-title)}}@keyframes mxv-mark{0%,34.52%{background-color:var(--pvs-accent-d);animation-timing-function:cubic-bezier(.16,1,.3,1);scale:1}39.29%,50%{background-color:var(--pvs-cta);scale:1.4}52.86%,to{background-color:var(--pvs-accent-d);scale:1}}@keyframes mxv-arrow{0%,60.71%{border-color:var(--pvs-bars);animation-timing-function:cubic-bezier(.16,1,.3,1)}63.57%,83.33%{border-color:var(--pvs-cta)}86.19%,to{border-color:var(--pvs-bars)}}@keyframes mxv-track{0%,61.9%{animation-timing-function:cubic-bezier(.16,1,.3,1);translate:0}67.62%,99.99%{translate:-6px}to{translate:0}}@keyframes mxv-stop-off{0%,61.9%{background-color:var(--pvs-cta);animation-timing-function:cubic-bezier(.16,1,.3,1)}65.71%,99.99%{background-color:var(--pvs-bars)}to{background-color:var(--pvs-cta)}}@keyframes mxv-stop-on{0%,61.9%{background-color:var(--pvs-bars);animation-timing-function:cubic-bezier(.16,1,.3,1)}65.71%,99.99%{background-color:var(--pvs-cta)}to{background-color:var(--pvs-bars)}}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion--index .ps-cursor,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion--index .ps-cursor{animation:5.6s ease-in-out infinite mxc-path}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion--index .ps-index-head,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion--index .ps-index-head{animation:5.6s linear infinite mxc-head}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion--index .ps-index-row:first-of-type>.ps-image,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion--index .ps-index-row:first-of-type>.ps-image{animation:5.6s linear infinite mxc-plate-1}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion--index .ps-index-row:nth-of-type(2)>.ps-image,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion--index .ps-index-row:nth-of-type(2)>.ps-image{animation:5.6s linear infinite mxc-plate-2}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion--index .ps-index-row:first-of-type .ps-index-cap,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion--index .ps-index-row:first-of-type .ps-index-cap{animation:5.6s linear infinite mxc-cap-1}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion--index .ps-index-row:nth-of-type(2) .ps-index-cap,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion--index .ps-index-row:nth-of-type(2) .ps-index-cap{animation:5.6s linear infinite mxc-cap-2}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion--index .ps-index-arrow,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion--index .ps-index-arrow{animation:5.6s linear infinite mxc-arrow}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion--index .ps-index-track b:first-child,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion--index .ps-index-track b:first-child{animation:5.6s linear infinite mxc-stop-1}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion--index .ps-index-track b:nth-child(2),#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion--index .ps-index-track b:nth-child(2){animation:5.6s linear infinite mxc-stop-2}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion--index .ps-index-track b:nth-child(3),#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion--index .ps-index-track b:nth-child(3){animation:5.6s linear infinite mxc-stop-3}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion--index .ps-index-track b:nth-child(4),#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion--index .ps-index-track b:nth-child(4){animation:5.6s linear infinite mxc-stop-4}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion--index .ps-index-row:first-of-type>.ps-image:before,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion--index .ps-index-row:first-of-type>.ps-image:before{animation:5.6s linear infinite mxc-band}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion--index .ps-index-row:first-of-type .ps-index-name,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion--index .ps-index-row:first-of-type .ps-index-name{animation:5.6s linear infinite mxc-name}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion--index .ps-index-row:first-of-type>.ps-image:after,#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion--index .ps-index-row:first-of-type>.ps-image:after{animation:5.6s linear infinite mxc-mark}@keyframes mxc-path{0%,62.5%{translate:45cqw 115cqh}69.64%,87.5%{translate:var(--mxi-work1,25.6cqw 33.3cqh)}93%,to{translate:45cqw 115cqh}}@keyframes mxc-head{0%,8.04%{clip-path:inset(0 100% 0 0);animation-timing-function:cubic-bezier(.16,1,.3,1)}18.75%,to{clip-path:inset(0)}}@keyframes mxc-plate-1{0%,16.07%{clip-path:inset(0 100% 0 0);animation-timing-function:cubic-bezier(.16,1,.3,1)}30.36%,to{clip-path:inset(0)}}@keyframes mxc-plate-2{0%,33.93%{clip-path:inset(0 0 0 100%);animation-timing-function:cubic-bezier(.16,1,.3,1)}48.21%,to{clip-path:inset(0)}}@keyframes mxc-cap-1{0%,26.79%{opacity:0;animation-timing-function:cubic-bezier(.16,1,.3,1);translate:0 6px}35.71%,to{opacity:1;translate:0}}@keyframes mxc-cap-2{0%,44.64%{opacity:0;animation-timing-function:cubic-bezier(.16,1,.3,1);translate:0 6px}53.57%,to{opacity:1;translate:0}}@keyframes mxc-arrow{0%,55.36%{opacity:0}60.71%,to{opacity:1}}@keyframes mxc-stop-1{0%,57.14%{opacity:0}62.5%,to{opacity:1}}@keyframes mxc-stop-2{0%,58.57%{opacity:0}63.93%,to{opacity:1}}@keyframes mxc-stop-3{0%,60%{opacity:0}65.36%,to{opacity:1}}@keyframes mxc-stop-4{0%,61.43%{opacity:0}66.79%,to{opacity:1}}@keyframes mxc-band{0%,69.64%{opacity:0;animation-timing-function:cubic-bezier(.16,1,.3,1);translate:0 100%}73.21%,87.5%{opacity:1;translate:0}89.29%,to{opacity:0;translate:0 100%}}@keyframes mxc-name{0%,26.79%{clip-path:inset(0 100% 0 0);background-color:var(--pvs-title);width:66%;animation-timing-function:cubic-bezier(.16,1,.3,1)}33.93%,70.54%{clip-path:inset(0);background-color:var(--pvs-title);width:66%;animation-timing-function:cubic-bezier(.16,1,.3,1)}75%,87.5%{clip-path:inset(0);background-color:var(--pvs-cta);width:74%}89.29%,to{clip-path:inset(0);background-color:var(--pvs-title);width:66%}}@keyframes mxc-mark{0%,70.54%{background-color:var(--pvs-accent-d);animation-timing-function:cubic-bezier(.16,1,.3,1);scale:1}74.11%,87.5%{background-color:var(--pvs-cta);scale:1.4}89.29%,to{background-color:var(--pvs-accent-d);scale:1}}@media (prefers-reduced-motion:reduce){.picker-preview-motion .ps-cursor:after,.picker-preview-motion .ps-nav-bars i:before,.picker-preview-motion .ps-nav-bars i:after,.picker-preview-motion .ps-actions i:after,.picker-preview-motion .ps-gallery-item>i:before,.picker-preview-motion .ps-gallery-item>i:after,.picker-preview-motion .ps-image:before,.picker-preview-motion .ps-image:after,.picker-preview-motion .ps-desktop:after,.picker-preview-motion :is(.ps-cursor,.ps-nav,.ps-nav-bars i,.ps-index-head,.ps-index-cap,.ps-index-name,.ps-index-arrow,.ps-index-track,.ps-index-track b,.ps-hero-copy>*,.ps-eyebrow,.ps-headline i,.ps-copy i,.ps-image,.ps-actions i,.ps-proof-item,.ps-proof-item i,.ps-proof-item span,.ps-proof-divider,.ps-editorial-copy>*,.ps-editorial-copy span i,.ps-gallery,.ps-gallery-item,.ps-gallery-item>i,.ps-gallery-item span,.ps-gallery-item b,.ps-footer){animation:none!important}.picker-preview-motion .ps-cursor{translate:73.8cqw 80.2cqh}.picker-preview-motion .ps-actions i:first-child{background-color:var(--pvs-ghost)}.picker-preview-motion .ps-actions i:last-child{background-color:var(--pvs-cta)}.picker-preview-motion .ps-gallery-item:nth-child(3){background-color:var(--pvs-surface);box-shadow:inset 0 0 0 1.5px var(--pvs-cta);translate:0 var(--mt-lift)}.picker-preview-motion .ps-gallery-item:not(:nth-child(3)){filter:opacity(var(--mt-dim));translate:0 var(--mt-sink)}.picker-preview-motion--index .ps-cursor{translate:var(--mxi-work1,25.6cqw 33.3cqh)}.picker-preview-motion--index .ps-index-row:first-of-type>.ps-image:before{opacity:1;translate:0}.picker-preview-motion--index .ps-index-row:first-of-type .ps-index-name{background-color:var(--pvs-cta)}.picker-preview-motion--index .ps-index-row:first-of-type>.ps-image:after{background-color:var(--pvs-cta);scale:1.4}}.picker-preview-motion[data-motion-cell]{display:none}#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=restrained]) .picker-preview-motion[data-motion-cell$=-restrained]:not([hidden]),#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=restrained]:checked) .picker-preview-motion[data-motion-cell$=-restrained]:not([hidden]),#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=responsive]) .picker-preview-motion[data-motion-cell$=-responsive]:not([hidden]),#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=responsive]:checked) .picker-preview-motion[data-motion-cell$=-responsive]:not([hidden]),#picker-form:has(.picker-strategy-option:hover input[name=motion-energy][value=choreographed]) .picker-preview-motion[data-motion-cell$=-choreographed]:not([hidden]),#picker-form:not(:has(.picker-strategy-option:hover input[name=motion-energy])):has(input[name=motion-energy][value=choreographed]:checked) .picker-preview-motion[data-motion-cell$=-choreographed]:not([hidden]){display:grid}.picker-preview-motion.picker-preview-layout[data-surface=persuade] .ps-layout-grid{display:none!important}.picker-preview-motion.picker-preview-layout[data-surface=persuade] .ps-desktop:before,.picker-preview-motion.picker-preview-layout[data-surface=persuade] .ps-phone-body:before{content:none!important}.picker-preview-motion.picker-preview-layout[data-surface=persuade]>.ps-phone,.picker-preview-motion.picker-preview--gallery[data-surface=experience]>.pv-phone{visibility:hidden!important;pointer-events:none!important}#picker-form .picker-board-stage>.picker-preview-motion[data-surface=experience]{aspect-ratio:1.865;height:auto}.picker-preview-motion.picker-preview-layout .ps-search{display:inline!important}[data-carry]{--pvs-gut:1.6%;--pvs-w1:6.8667%;--pvs-w2:15.3333%;--pvs-w3:23.8%;--pvs-w4:32.2667%;--pvs-w5:40.7333%;--pvs-w6:49.2%;--pvs-w7:57.6667%;--pvs-w8:66.1333%;--pvs-w9:74.6%;--pvs-w10:83.0667%}[data-carry][data-surface=persuade]:not(.picker-preview-layout) :is(.ps-nav,.ps-editorial,.ps-footer){padding-right:var(--pvs-gutter-end)}[data-carry]:not(.picker-preview-layout) .ps-desktop>.ps-proof{grid-template-columns:var(--pvs-w3) auto var(--pvs-w3) auto var(--pvs-w3) auto minmax(0, 1fr);column-gap:calc(var(--pvs-gut) / 2)}.picker-preview-layout .ps-desktop{isolation:isolate;position:relative}.picker-preview-layout .ps-layout-grid{z-index:0;pointer-events:none;position:absolute}.picker-preview-layout .ps-desktop>.ps-layout-grid{--pvs-field-col:6.8667%;--pvs-field-gut:1.6%;--pvs-mark:calc(var(--pvs-field-col) + var(--pvs-field-gut) / 2);background-image:repeating-linear-gradient(to right, transparent 0 calc(var(--pvs-mark) - .5px), color-mix(in oklab, var(--pvs-ink) 5%, transparent) calc(var(--pvs-mark) - .5px) calc(var(--pvs-mark) + .5px), transparent calc(var(--pvs-mark) + .5px) calc(var(--pvs-field-col) + var(--pvs-field-gut)));inset:0 6%}.picker-preview-layout .ps-phone-body{isolation:isolate;position:relative}.picker-preview-layout .ps-phone-body>.ps-layout-grid{inset:0 var(--pvs-phone-gutter,6%);border-inline:1px solid color-mix(in oklab, var(--pvs-ink) 5%, transparent)}.picker-preview-layout .ps-search{display:none!important}:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=simple-grid]:checked) [data-carry]:not(.picker-preview-layout){--pvs-gutter:6%;--pvs-gutter-end:6%;--pvs-hero-cols:var(--pvs-w6) minmax(0, 1fr);--pvs-hero-gap:var(--pvs-gut);--pvs-editorial-cols:var(--pvs-w4) minmax(0, 1fr);--pvs-editorial-gap:var(--pvs-gut);--pvs-gallery-cols:repeat(4, minmax(0, 1fr));--pvs-gallery-gap:calc(var(--pvs-gut) * 100 / 66.1333);--pvs-section-align:start;--pvs-rows:9.4% 45.5% 9% 27.8% 8.3%;--pvs-phone-gutter:7%;--pvs-phone-gallery-cols:1fr 1fr}:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=balanced]:checked) [data-carry]:not(.picker-preview-layout){--pvs-gutter:6%;--pvs-gutter-end:6%;--pvs-hero-cols:var(--pvs-w5) minmax(0, 1fr);--pvs-hero-gap:var(--pvs-gut);--pvs-editorial-cols:var(--pvs-w3) minmax(0, 1fr);--pvs-editorial-gap:var(--pvs-gut);--pvs-gallery-cols:23.8fr 15.3333fr 15.3333fr 15.3333fr;--pvs-gallery-gap:calc(var(--pvs-gut) * 100 / 74.6);--pvs-section-align:center;--pvs-rows:9.4% 50.6% 9% 22.7% 8.3%;--pvs-phone-gutter:6%;--pvs-phone-gallery-cols:1.35fr .85fr}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]) .picker-preview-layout,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=simple-grid]:checked) .picker-preview-layout{--pvs-gutter:6%;--pvs-gutter-end:6%;--pvs-hero-cols:var(--pvs-w6) minmax(0, 1fr);--pvs-hero-gap:var(--pvs-gut);--pvs-editorial-cols:minmax(0, 1fr);--pvs-editorial-gap:0%;--pvs-gallery-cols:repeat(4, minmax(0, 1fr));--pvs-gallery-gap:var(--pvs-gut);--pvs-section-align:start;--pvs-rows:9.4% 45.5% 9% 27.8% 8.3%;--pvs-phone-gutter:6%;--pvs-phone-gallery-cols:1fr 1fr}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]) .picker-preview-layout .ps-desktop .ps-editorial-copy,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=simple-grid]:checked) .picker-preview-layout .ps-desktop .ps-editorial-copy,#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]) .picker-preview-layout .ps-phone-body .ps-editorial-copy,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=simple-grid]:checked) .picker-preview-layout .ps-phone-body .ps-editorial-copy{display:none}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]) .picker-preview-layout[data-surface=persuade] .ps-phone-body,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=simple-grid]:checked) .picker-preview-layout[data-surface=persuade] .ps-phone-body{grid-template-rows:minmax(0,31%) auto auto auto 34px minmax(min-content,1fr)}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]) .picker-preview-layout .ps-phone-body .ps-gallery,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=simple-grid]:checked) .picker-preview-layout .ps-phone-body .ps-gallery{gap:6%;margin-left:0}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]) .picker-preview-layout .ps-phone-body .ps-proof,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=simple-grid]:checked) .picker-preview-layout .ps-phone-body .ps-proof{padding-inline:4%}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]) .picker-preview-layout .ps-hero-copy .ps-headline i,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=simple-grid]:checked) .picker-preview-layout .ps-hero-copy .ps-headline i{width:76%}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]) .picker-preview-layout .ps-hero-copy .ps-headline i:last-child,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=simple-grid]:checked) .picker-preview-layout .ps-hero-copy .ps-headline i:last-child{width:54%}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]) .picker-preview-layout .ps-hero-copy .ps-copy i,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=simple-grid]:checked) .picker-preview-layout .ps-hero-copy .ps-copy i{width:58%}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]) .picker-preview-layout .ps-hero-copy .ps-copy i:last-child,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=simple-grid]:checked) .picker-preview-layout .ps-hero-copy .ps-copy i:last-child{width:44%}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]) .picker-preview-layout .ps-hero-copy .ps-eyebrow,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=simple-grid]:checked) .picker-preview-layout .ps-hero-copy .ps-eyebrow{width:38%}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout{--pvs-gutter:6%;--pvs-gutter-end:6%;--pvs-hero-cols:var(--pvs-w5) minmax(0, 1fr);--pvs-hero-gap:var(--pvs-gut);--pvs-editorial-cols:var(--pvs-w3) minmax(0, 1fr);--pvs-editorial-gap:var(--pvs-gut);--pvs-gallery-cols:repeat(4, minmax(0, 1fr));--pvs-gallery-gap:calc(var(--pvs-gut) * 100 / 74.6);--pvs-section-align:start;--pvs-rows:9.4% 48% 8.4% 26.2% 8%;--pvs-phone-gutter:6%;--pvs-drift:1}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout .ps-phone-body .ps-gallery,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout .ps-phone-body .ps-gallery{grid-template-columns:1.5fr .9fr}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade],:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade]{--pvs-rows:9.4% 48% 2.8% 31.8% 8%}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-proof,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-proof{grid-template-columns:51.2% minmax(0,1fr);column-gap:0;padding-block:0}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-desktop :is(.ps-proof-divider,.ps-proof-item:nth-of-type(3),.ps-proof-item:nth-of-type(4)),:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-desktop :is(.ps-proof-divider,.ps-proof-item:nth-of-type(3),.ps-proof-item:nth-of-type(4)){display:none}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-proof-item,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-proof-item{gap:9px}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-proof-item i,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-proof-item i{background-color:var(--pvs-cta)}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-proof-item span,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-proof-item span{flex:none;width:27.6%}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-proof-item:nth-of-type(2) span,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-proof-item:nth-of-type(2) span{width:29%}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-editorial,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-editorial{grid-template-columns:minmax(0,1fr);align-items:start;gap:0;padding-block:1.5% 0}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-editorial-copy,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-editorial-copy{display:none}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery{grid-template-columns:47.2% 24% minmax(0,1fr);gap:4%}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery-item:nth-child(4),:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery-item:nth-child(4){display:none}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-gallery-item>i,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-gallery-item>i{background-color:var(--pvs-image);background-image:linear-gradient(135deg, var(--pvs-image-a), var(--pvs-image-b));border:1px solid var(--pvs-image-edge);box-shadow:var(--pvs-shadow-surface);position:relative}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-gallery-item>i:after,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-gallery-item>i:after{content:"";aspect-ratio:1;background-color:var(--pvs-accent-d);border-radius:var(--pvs-radius-dot);width:clamp(6px,1.1vw,10px);position:absolute;top:10%;right:5%}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-desktop :is(.ps-gallery-item:nth-child(2),.ps-gallery-item:nth-child(3)),:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-desktop :is(.ps-gallery-item:nth-child(2),.ps-gallery-item:nth-child(3)){grid-template-rows:46% auto;align-content:start}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery-item:nth-child(3)>i,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery-item:nth-child(3)>i{background-color:var(--pvs-ghost);background-image:none;border-color:#0000}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-gallery-item span:after,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-gallery-item span:after{content:"";background-color:var(--pvs-cta);border-radius:var(--pvs-radius-bar);width:33%;height:5px;margin-top:3px;display:block}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery-item:first-child,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery-item:first-child{margin-bottom:6px}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery-item:first-child span,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery-item:first-child span{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:9.4%}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery-item:first-child span:before,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery-item:first-child span:before{content:"";background-color:var(--pvs-bars);border-radius:var(--pvs-radius-bar);width:94%;height:6px;display:block}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery-item:first-child b,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery-item:first-child b{width:93%}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery-item:first-child b:nth-of-type(2),:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery-item:first-child b:nth-of-type(2){width:77%}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery-item:first-child b:nth-of-type(3),:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery-item:first-child b:nth-of-type(3){width:57%}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery-item:first-child span:after,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery-item:first-child span:after{grid-column:1;width:38%}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-desktop :is(.ps-gallery-item:nth-child(2),.ps-gallery-item:nth-child(3)) span,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-desktop :is(.ps-gallery-item:nth-child(2),.ps-gallery-item:nth-child(3)) span{gap:5px}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-desktop :is(.ps-gallery-item:nth-child(2),.ps-gallery-item:nth-child(3)) span:after,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-desktop :is(.ps-gallery-item:nth-child(2),.ps-gallery-item:nth-child(3)) span:after{margin-top:2px}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery-item:nth-child(2) b,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery-item:nth-child(2) b{width:68%}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery-item:nth-child(2) b:nth-of-type(2),:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery-item:nth-child(2) b:nth-of-type(2){width:89%}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery-item:nth-child(2) b:nth-of-type(3),:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery-item:nth-child(2) b:nth-of-type(3){width:60%}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery-item:nth-child(3) b,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery-item:nth-child(3) b{width:83%}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery-item:nth-child(3) b:nth-of-type(2),:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery-item:nth-child(3) b:nth-of-type(2){width:72%}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery-item:nth-child(3) b:nth-of-type(3),:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery-item:nth-child(3) b:nth-of-type(3){display:none}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery-item:nth-child(3) span:after,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-desktop .ps-gallery-item:nth-child(3) span:after{width:34%}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-proof,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-proof{grid-template-columns:minmax(0,1fr);padding:0}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-phone-body,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-phone-body{grid-template-rows:minmax(0,31%) auto auto auto 14px auto minmax(min-content,1fr);gap:5px}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-phone-body :is(.ps-proof-divider,.ps-proof-item:nth-of-type(2)),:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-phone-body :is(.ps-proof-divider,.ps-proof-item:nth-of-type(2)){display:none}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-proof-item span,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-proof-item span{flex:none;width:29%}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-editorial-copy,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-editorial-copy{display:none}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-gallery,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-gallery{grid-template-columns:minmax(0,1fr);gap:0;margin-top:0}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-gallery-item:first-child,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-gallery-item:first-child{grid-template-rows:46px auto;gap:6px}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-gallery-item:first-child b,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-gallery-item:first-child b{width:72%}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-gallery-item:first-child b:nth-of-type(2),:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-gallery-item:first-child b:nth-of-type(2){width:51%}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-gallery-item b:nth-of-type(3),:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-gallery-item b:nth-of-type(3){display:none}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-gallery-item span,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-gallery-item span{gap:5px}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-gallery-item span:after,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-gallery-item span:after{width:24%;height:5px;margin-top:0}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-gallery-item:nth-child(2),:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-gallery-item:nth-child(2){grid-template-rows:auto 25px auto;grid-template-columns:auto minmax(0,1fr);gap:4px 9px;margin-top:8px}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-gallery-item:nth-child(2):before,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-gallery-item:nth-child(2):before{content:"";aspect-ratio:1;background-color:var(--pvs-cta);border-radius:var(--pvs-radius-dot);grid-area:1/1;align-self:center;width:10px}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-gallery-item:nth-child(2):after,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-gallery-item:nth-child(2):after{content:"";background-color:var(--pvs-bars);border-radius:var(--pvs-radius-bar);grid-area:1/2;align-self:center;width:23%;height:6px}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-gallery-item:nth-child(2)>i,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-gallery-item:nth-child(2)>i{background-color:var(--pvs-ghost);background-image:none;border-color:#0000;grid-area:2/1/3/3;width:69%}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-gallery-item:nth-child(2) span,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-gallery-item:nth-child(2) span{grid-area:3/1/4/3}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-gallery-item:nth-child(2) b,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-gallery-item:nth-child(2) b{width:54%}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-gallery-item:nth-child(2) b:nth-of-type(2),:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-gallery-item:nth-child(2) b:nth-of-type(2){width:41%}:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) [data-carry]:not(.picker-preview-layout){--pvs-gutter:6%;--pvs-gutter-end:6%;--pvs-hero-cols:var(--pvs-w5) minmax(0, 1fr);--pvs-hero-gap:var(--pvs-gut);--pvs-editorial-cols:var(--pvs-w3) minmax(0, 1fr);--pvs-editorial-gap:var(--pvs-gut);--pvs-gallery-cols:repeat(4, minmax(0, 1fr));--pvs-gallery-gap:calc(var(--pvs-gut) * 100 / 74.6);--pvs-section-align:start;--pvs-rows:9.4% 48% 8.4% 26.2% 8%;--pvs-phone-gutter:6%;--pvs-phone-gallery-cols:1.5fr .9fr;--pvs-drift:1}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout .ps-desktop .ps-hero,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) [data-carry] .ps-desktop .ps-hero{padding:0;display:block;position:relative}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout .ps-desktop .ps-hero>.ps-image,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) [data-carry] .ps-desktop .ps-hero>.ps-image{clip-path:polygon(40% 0,100% 0,100% 78%,66% 84%);height:100%;position:absolute;inset:0}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout .ps-desktop .ps-hero>.ps-hero-copy,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) [data-carry] .ps-desktop .ps-hero>.ps-hero-copy{z-index:1;box-sizing:border-box;width:44%;height:100%;padding-left:var(--pvs-gutter,6%);align-content:center;position:relative}[data-carry][data-surface=persuade] .ps-phone-body>.ps-image{clip-path:polygon(0 0, 100% 0, 100% calc(100% - var(--pvs-drift,0) * 16%), 0 100%)}[data-carry]:not(.picker-preview-layout) .ps-phone-body{padding-inline:var(--pvs-phone-gutter,6%)}[data-carry]:not(.picker-preview-layout) .ps-phone-body .ps-gallery{grid-template-columns:var(--pvs-phone-gallery-cols,1.05fr .95fr)}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]) [data-carry],:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=simple-grid]:checked) [data-carry]{--pvs-shell-cols:calc(var(--pvs-w2) + var(--pvs-gut) / 2) calc(var(--pvs-w7) + var(--pvs-gut)) minmax(0, 1fr);--pvs-measure-cols:calc(var(--pvs-w3) + var(--pvs-gut) / 2) minmax(0, 1fr);--pvs-metric-cols:repeat(3, minmax(0, 1fr));--pvs-entry-cols:var(--pvs-w6) minmax(0, 1fr);--pvs-entry-flip-cols:var(--pvs-w6) minmax(0, 1fr)}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]) [data-carry] .ps-index-row--flip>.ps-image,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=simple-grid]:checked) [data-carry] .ps-index-row--flip>.ps-image{grid-area:1/1}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]) [data-carry] .ps-index-row--flip>.ps-index-cap,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=simple-grid]:checked) [data-carry] .ps-index-row--flip>.ps-index-cap{grid-area:1/2}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]) [data-carry],:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=balanced]:checked) [data-carry]{--pvs-shell-cols:calc(var(--pvs-w2) + var(--pvs-gut) / 2) calc(var(--pvs-w8) + var(--pvs-gut)) minmax(0, 1fr);--pvs-measure-cols:calc(var(--pvs-w3) + var(--pvs-gut) / 2) calc(var(--pvs-w6) + var(--pvs-gut)) minmax(0, 1fr);--pvs-metric-cols:1.45fr 1fr 1fr;--pvs-entry-cols:var(--pvs-w7) minmax(0, 1fr);--pvs-entry-flip-cols:minmax(0, 1fr) var(--pvs-w7)}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) [data-carry],:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) [data-carry]{--pvs-entry-cols:var(--pvs-w7) minmax(0, 1fr);--pvs-entry-flip-cols:minmax(0, 1fr) var(--pvs-w7)}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) [data-carry][data-surface=experience] .ps-index-row>.ps-image,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) [data-carry][data-surface=experience] .ps-index-row>.ps-image{rotate:-1.7deg}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) [data-carry][data-surface=experience] .ps-index-row--flip>.ps-image,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) [data-carry][data-surface=experience] .ps-index-row--flip>.ps-image{rotate:1.4deg}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) [data-carry][data-surface=experience] .ps-index-cap,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) [data-carry][data-surface=experience] .ps-index-cap{z-index:1;position:relative;translate:-9%}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) [data-carry][data-surface=experience] .ps-index-row--flip>.ps-index-cap,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure]))):has(input[name=layout-structure][value=freeform]:checked) [data-carry][data-surface=experience] .ps-index-row--flip>.ps-index-cap{translate:9%}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade],#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade]{--pls-spacer:1}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] :is(*),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] :is(*){box-shadow:none!important;text-shadow:none!important}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-proof,#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-proof{display:none!important}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-phone .ps-gallery,#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-phone .ps-gallery{margin-top:15px!important}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-phone .ps-gallery-item:last-child,#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-phone .ps-gallery-item:last-child{margin-top:14px!important}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-phone .ps-gallery-item:nth-child(2)>i,#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-phone .ps-gallery-item:nth-child(2)>i{box-shadow:none!important;margin-top:0!important}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-gallery-item:nth-child(2):before,#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-gallery-item:nth-child(2):after,#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-gallery-item:nth-child(2):before,#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] .ps-phone-body .ps-gallery-item:nth-child(2):after{content:none!important;display:none!important}[data-layout-editorial-spacer]{display:none}#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]) .picker-preview-layout[data-surface=persuade] [data-layout-editorial-spacer],#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked) .picker-preview-layout[data-surface=persuade] [data-layout-editorial-spacer]{display:block}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=open-space]) .picker-preview-boundaries,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=open-space]:checked)) [data-carry]{--pvs-divider-w:0px;--pvs-band:transparent;--pvs-band-alt:transparent;--pvs-band-top:transparent;--pvs-panel:transparent;--pvs-panel-edge-w:0px;--pvs-panel-pad:0px;--pvs-proof-inset:0px}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=thin-dividers]) .picker-preview-boundaries,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=thin-dividers]:checked)) [data-carry]{--pvs-divider-w:1px;--pvs-divider-c:color-mix(in oklab, var(--pvs-ink) 24%, var(--pvs-ground));--pvs-band:transparent;--pvs-band-alt:transparent;--pvs-band-top:transparent;--pvs-panel:transparent;--pvs-panel-edge-w:0px;--pvs-panel-pad:0px;--pvs-proof-inset:0px}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=surface-changes]) .picker-preview-boundaries,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=surface-changes]:checked)) [data-carry]{--pvs-divider-w:0px;--pvs-band:color-mix(in oklab, var(--pvs-ink) 7%, var(--pvs-ground));--pvs-band-alt:color-mix(in oklab, var(--pvs-ink) 13%, var(--pvs-ground));--pvs-band-top:color-mix(in oklab, var(--pvs-ink) 7%, var(--pvs-ground));--pvs-panel:transparent;--pvs-panel-edge-w:0px;--pvs-panel-pad:0px;--pvs-proof-inset:0px}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=cards-and-panels]) .picker-preview-boundaries,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=cards-and-panels]:checked)) [data-carry]{--pvs-divider-w:0px;--pvs-band:transparent;--pvs-band-alt:color-mix(in oklab, var(--pvs-ink) 5%, var(--pvs-ground));--pvs-band-top:transparent;--pvs-panel:color-mix(in oklab, var(--pvs-ink) 5%, var(--pvs-ground));--pvs-panel-edge:color-mix(in oklab, var(--pvs-ink) 20%, var(--pvs-ground));--pvs-panel-edge-w:1px;--pvs-panel-pad:5%;--pvs-proof-inset:var(--pvs-gutter)}[data-carry] .ps-desktop>.ps-proof{margin-inline:var(--pvs-proof-inset,0px);border:var(--pvs-panel-edge-w) solid var(--pvs-panel-edge);border-radius:var(--pvs-radius-surface)}[data-carry] .ps-phone-top,[data-carry] .ps-phone-footer{background-color:var(--pvs-band-top,var(--pvs-surface))}[data-carry] .ps-gallery-item{padding:var(--pvs-panel-pad,0px)}[data-carry] .ps-phone-body .ps-gallery-item{padding:calc(var(--pvs-panel-pad,0px) * .5)}[data-carry] :is(.ps-ops-rail,.ps-ops-main,.ps-docs-rail){border-right:var(--pvs-divider-w) solid var(--pvs-divider-c)}[data-carry] .ps-ops-table,[data-carry] .ps-ops-row+.ps-ops-row,[data-carry] .ps-index-row+.ps-index-row,[data-carry] .ps-index-rail{border-top:var(--pvs-divider-w) solid var(--pvs-divider-c)}[data-carry] :is(.ps-index-row+.ps-index-row,.ps-index-rail){padding-top:calc(var(--pvs-divider-w) * 8)}[data-carry] :is(.ps-ops-rail,.ps-ops-panel,.ps-docs-rail){background-color:var(--pvs-band)}[data-carry] .ps-index-row--flip,[data-carry] .ps-ops-row--head{background-color:var(--pvs-band-alt)}[data-carry] .ps-docs-note{padding:calc(var(--pt-base) * .7) calc(var(--pt-base) * .9);background-color:var(--pvs-band-alt);border-left:calc(var(--pt-base) * .25) solid var(--pvs-accent-c)}[data-carry] :is(.ps-ops-chart,.ps-ops-table,.ps-ops-panel){background-color:var(--pvs-panel);border:var(--pvs-panel-edge-w) solid var(--pvs-panel-edge)}[data-carry] :is(.ps-ops-chart,.ps-ops-table){padding:var(--pvs-panel-pad,0px)}:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=cards-and-panels]:checked)) [data-carry] .ps-ops-item,#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=cards-and-panels]) .picker-preview-boundaries .ps-ops-item{background-color:var(--pvs-panel)}:is(.picker-screen[data-screen="08"],.picker-screen[data-screen="09"]) .picker-board-stage>[data-artboard][data-surface=persuade] :is(*){box-shadow:none!important;text-shadow:none!important}:is(.picker-screen[data-screen="08"],.picker-screen[data-screen="09"]) .picker-board-stage>[data-artboard][data-surface=persuade] .ps-desktop .ps-proof{grid-template-columns:repeat(4,minmax(0,1fr))!important}:is(.picker-screen[data-screen="08"],.picker-screen[data-screen="09"]) .picker-board-stage>[data-artboard][data-surface=persuade] .ps-phone .ps-proof{position:relative;top:10px;grid-template-columns:repeat(2,minmax(0,1fr))!important}:is(.picker-screen[data-screen="08"],.picker-screen[data-screen="09"]) .picker-board-stage>[data-artboard][data-surface=persuade] .ps-phone .ps-editorial-copy{margin-top:16px!important}:is(.picker-screen[data-screen="08"],.picker-screen[data-screen="09"]) .picker-board-stage>[data-artboard][data-surface=persuade] .ps-desktop .ps-proof-item{padding-right:24px!important}:is(.picker-screen[data-screen="08"],.picker-screen[data-screen="09"]) .picker-board-stage>[data-artboard][data-surface=persuade] .ps-proof-divider{display:none!important}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=surface-changes]) .picker-screen[data-screen="08"] .picker-board-stage>[data-artboard][data-surface=persuade] .ps-proof,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=surface-changes]:checked) .picker-screen[data-screen="08"] .picker-board-stage>[data-artboard][data-surface=persuade] .ps-proof,#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=cards-and-panels]) .picker-screen[data-screen="08"] .picker-board-stage>[data-artboard][data-surface=persuade] .ps-proof,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=cards-and-panels]:checked) .picker-screen[data-screen="08"] .picker-board-stage>[data-artboard][data-surface=persuade] .ps-proof{background-color:color-mix(in oklab, var(--pvs-band-alt) 65%, white)!important}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=surface-changes]) .picker-screen[data-screen="08"] .picker-board-stage>[data-artboard][data-surface=persuade] .ps-footer,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=surface-changes]:checked) .picker-screen[data-screen="08"] .picker-board-stage>[data-artboard][data-surface=persuade] .ps-footer,#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=cards-and-panels]) .picker-screen[data-screen="08"] .picker-board-stage>[data-artboard][data-surface=persuade] .ps-footer,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=cards-and-panels]:checked) .picker-screen[data-screen="08"] .picker-board-stage>[data-artboard][data-surface=persuade] .ps-footer{background-color:color-mix(in oklab, var(--pvs-band) 65%, white)!important}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=surface-changes]) .picker-screen[data-screen="08"] .picker-board-stage>[data-artboard][data-surface=persuade] .ps-phone .ps-proof,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=surface-changes]:checked) .picker-screen[data-screen="08"] .picker-board-stage>[data-artboard][data-surface=persuade] .ps-phone .ps-proof{padding-right:var(--pvs-gutter)!important;column-gap:16px!important}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=cards-and-panels]) .picker-screen[data-screen="08"] .picker-board-stage>[data-artboard][data-surface=persuade] .ps-gallery-item,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=cards-and-panels]:checked) .picker-screen[data-screen="08"] .picker-board-stage>[data-artboard][data-surface=persuade] .ps-gallery-item{background:0 0!important}:is(.picker-screen[data-screen="08"],.picker-screen[data-screen="09"],.picker-screen[data-screen="10"]) .picker-board-stage>.picker-preview{aspect-ratio:1.865;--pv-primary:var(--pkc-primary,var(--ks-champagne));--pv-secondary:var(--pkc-secondary,var(--ks-patina));--pv-tertiary:var(--pkc-tertiary,var(--ks-kinpaku));--pv-neutral:var(--pkc-neutral,var(--ks-lacquer-raised));--pv-n-ink:var(--pkc-n-ink,var(--ks-champagne));--pv-p-ink:var(--pkc-p-ink,var(--ks-champagne));--derived-rule:color-mix(in oklab, var(--pv-strong) 24%, var(--pv-neutral));--derived-band:color-mix(in oklab, var(--pv-strong) 7%, var(--pv-neutral));--derived-band-alt:color-mix(in oklab, var(--pv-strong) 13%, var(--pv-neutral));--derived-panel:color-mix(in oklab, var(--pv-strong) 5%, var(--pv-neutral));--derived-panel-edge:color-mix(in oklab, var(--pv-strong) 20%, var(--pv-neutral));grid-row:2;width:100%}:is(.picker-screen[data-screen="08"],.picker-screen[data-screen="09"],.picker-screen[data-screen="10"]) .picker-board-stage>.picker-preview:not([data-surface=persuade]){--pv-secondary:color-mix(in oklab, var(--pkc-neutral) 78%, var(--pkc-n-ink));--pv-tertiary:color-mix(in oklab, var(--pkc-neutral) 86%, var(--pkc-n-ink));--pv-t-ink:var(--pkc-n-ink);--pv-t-on-t:var(--pkc-n-ink);--pv-t-on-n:color-mix(in oklab, var(--pkc-n-ink) 62%, var(--pkc-neutral));--pv-t-on-p:var(--pkc-p-ink)}:is(.picker-screen[data-screen="08"],.picker-screen[data-screen="09"],.picker-screen[data-screen="10"]) .picker-board-stage>.picker-preview.picker-preview--docs{--pd-quote:var(--pd-ink)}:is(.picker-screen[data-screen="08"],.picker-screen[data-screen="09"],.picker-screen[data-screen="10"]) .picker-board-stage>.picker-preview.picker-preview--docs :is(.pd-note-dot,.pd-note-lines i){background:var(--pd-ink)}:is(.picker-screen[data-screen="08"],.picker-screen[data-screen="09"],.picker-screen[data-screen="10"]) .picker-board-stage>.picker-preview:is(.picker-preview--ops,.picker-preview--docs,.picker-preview--gallery) .pv-desktop{--pv-text:1.35}.picker-screen[data-screen="08"] .picker-board-stage>.picker-preview.picker-preview--docs :is(.pv-desktop,.pv-phone){--pv-text:1.65}.picker-screen[data-screen="08"] .picker-board-stage>.picker-preview.picker-preview--docs .pd-item i,.picker-screen[data-screen="08"] .picker-board-stage>.picker-preview.picker-preview--docs .pd-note-dot{width:calc(4.07 * var(--pv-x))}:is(.picker-screen[data-screen="08"],.picker-screen[data-screen="09"],.picker-screen[data-screen="10"]) .picker-board-stage>.picker-preview--gallery .pv-desktop .pg-cap{gap:2.6cqh;padding-top:5.2cqh}:is(.picker-screen[data-screen="08"],.picker-screen[data-screen="09"],.picker-screen[data-screen="10"]) .picker-board-stage>.picker-preview--gallery .pv-desktop .pg-cap:before{content:"";width:calc(11.5 * var(--pv-x));aspect-ratio:1;border:1px solid color-mix(in oklab, var(--pv-secondary) 55%, var(--pv-neutral));background:linear-gradient(135deg, color-mix(in oklab, var(--pv-secondary) 24%, var(--pv-neutral)), color-mix(in oklab, var(--pv-secondary) 46%, var(--pv-neutral)));border-radius:50%;display:block}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=open-space]) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview :is(.pv-nav,.po-side,.po-main,.pd-side),#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=open-space]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview :is(.pv-nav,.po-side,.po-main,.pd-side){border-color:#0000!important}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=open-space]) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview :is(.po-divider,.pg-row--flip,.pg-rail),#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=open-space]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview :is(.po-divider,.pg-row--flip,.pg-rail){box-shadow:none!important;border-color:#0000!important}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=open-space]) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview .po-divider,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=open-space]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview .po-divider{background:0 0!important}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=thin-dividers]) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview:is(.picker-preview--ops,.picker-preview--docs,.picker-preview--gallery) .pv-nav,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=thin-dividers]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview:is(.picker-preview--ops,.picker-preview--docs,.picker-preview--gallery) .pv-nav{border-bottom:1px solid var(--derived-rule)!important}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=thin-dividers]) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview :is(.po-side,.po-main,.pd-side),#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=thin-dividers]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview :is(.po-side,.po-main,.pd-side){border-right:1px solid var(--derived-rule)!important}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=thin-dividers]) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview .po-divider,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=thin-dividers]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview .po-divider{background:var(--derived-rule)!important}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=thin-dividers]) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview .po-row+.po-row,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=thin-dividers]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview .po-row+.po-row,#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=thin-dividers]) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview:not([data-surface=experience]) .pg-row--flip,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=thin-dividers]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview:not([data-surface=experience]) .pg-row--flip{box-shadow:inset 0 1px 0 var(--derived-rule)}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=thin-dividers]) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview:not([data-surface=experience]) .pg-rail,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=thin-dividers]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview:not([data-surface=experience]) .pg-rail{border-top:1px solid var(--derived-rule)}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=thin-dividers]) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=experience] .pg-row--flip,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=thin-dividers]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=experience] .pg-row--flip{position:relative;box-shadow:none!important;margin-top:10cqh!important}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=thin-dividers]) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=experience] .pg-row--flip:before,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=thin-dividers]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=experience] .pg-row--flip:before{content:"";background:var(--derived-rule);height:1px;position:absolute;top:-5cqh;left:0;right:0}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=thin-dividers]) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=experience] .pg-rail,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=thin-dividers]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=experience] .pg-rail,#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=surface-changes]) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=experience] .pg-rail,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=surface-changes]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=experience] .pg-rail{border-top:0!important}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=thin-dividers]) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=experience] .pg-phone-body>.pg-cap+.pv-image,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=thin-dividers]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=experience] .pg-phone-body>.pg-cap+.pv-image{overflow:visible;margin-top:8cqh!important}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=thin-dividers]) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=experience] .pg-phone-body>.pg-cap+.pv-image:before,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=thin-dividers]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=experience] .pg-phone-body>.pg-cap+.pv-image:before{content:"";background:var(--derived-rule);height:1px;position:absolute;top:-4cqh;left:0;right:0}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=surface-changes]) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=experience] .pg-row--flip,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=surface-changes]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=experience] .pg-row--flip{box-shadow:none!important;background:color-mix(in oklab, var(--derived-band-alt) 60%, white 40%)!important;margin-top:5cqh!important;padding-block:5cqh!important}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=surface-changes]) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=experience] .pg-phone-body>.pg-cap+.pv-image,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=surface-changes]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=experience] .pg-phone-body>.pg-cap+.pv-image{margin-top:8cqh!important}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=surface-changes]) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=experience] .pg-phone-body,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=surface-changes]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=experience] .pg-phone-body{background:linear-gradient(to bottom, transparent 0 50%, color-mix(in oklab, var(--derived-band-alt) 60%, white 40%) 50% 100%)!important}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=surface-changes]) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=experience] .pv-phone .pv-tabbar,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=surface-changes]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=experience] .pv-phone .pv-tabbar{background:color-mix(in oklab, var(--derived-band-alt) 60%, white 40%)!important}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=surface-changes]) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview :is(.pv-nav,.po-side,.po-main,.pd-side),#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=surface-changes]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview :is(.pv-nav,.po-side,.po-main,.pd-side){border-color:#0000!important}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=surface-changes]) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview :is(.pv-nav,.pv-phone-top,.pv-tabbar),#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=surface-changes]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview :is(.pv-nav,.pv-phone-top,.pv-tabbar),#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=surface-changes]) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview :is(.po-side,.po-panel,.pd-side),#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=surface-changes]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview :is(.po-side,.po-panel,.pd-side){background:var(--derived-band)!important}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=surface-changes]) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview:not([data-surface=experience]) :is(.pd-note,.pg-row--flip),#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=surface-changes]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview:not([data-surface=experience]) :is(.pd-note,.pg-row--flip){background:var(--derived-band-alt)!important}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=surface-changes]) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview .po-divider,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=surface-changes]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview .po-divider{background:0 0!important}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=cards-and-panels]) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview :is(.pv-nav,.po-side,.po-main),#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=cards-and-panels]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview :is(.pv-nav,.po-side,.po-main){border-color:#0000!important}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=cards-and-panels]) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview .po-divider,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=cards-and-panels]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview .po-divider{background:0 0!important}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=cards-and-panels]) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview :is(.po-side,.po-chart,.po-rows,.po-panel,.po-phone-body .po-chart,.po-phone-body .po-field,.po-phone-body .po-prow),#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=cards-and-panels]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview :is(.po-side,.po-chart,.po-rows,.po-panel,.po-phone-body .po-chart,.po-phone-body .po-field,.po-phone-body .po-prow){border-radius:3px;background:var(--derived-panel)!important;border:1px solid var(--derived-panel-edge)!important}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=cards-and-panels]) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview .po-chart,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=cards-and-panels]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview .po-chart{padding-inline:calc(3 * var(--pv-x))}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=cards-and-panels]) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=operate] .pv-desktop .po-chart,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=cards-and-panels]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=operate] .pv-desktop .po-chart{padding:calc(3 * var(--pv-x)) calc(5 * var(--pv-x))!important}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=cards-and-panels]) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=operate] .pv-phone .po-toggle,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=cards-and-panels]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=operate] .pv-phone .po-toggle{margin-left:auto!important;margin-right:12px!important;padding-right:12px!important}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=cards-and-panels]) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=operate] .pv-phone .po-prow,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=cards-and-panels]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=operate] .pv-phone .po-prow{padding-left:12px!important}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=cards-and-panels]) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=operate] .pv-phone .po-field>.po-chev,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=cards-and-panels]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=operate] .pv-phone .po-field>.po-chev{align-self:center!important;transform:translateY(-25%)rotate(45deg)!important}#picker-form:has(.picker-strategy-option:hover input[name=boundary-style][value=cards-and-panels]) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview .po-rows,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=cards-and-panels]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview .po-rows{padding-inline:calc(2 * var(--pv-x))}#picker-form:has(.picker-strategy-option:hover input[name=corner-style][value=sharp]) .picker-preview-corners,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=corner-style])):has(input[name=corner-style][value=sharp]:checked)) [data-carry]{--pvs-radius-frame:0px;--pvs-radius-frame-phone:0px;--pvs-radius-surface:0px;--pvs-radius-control:0px;--pvs-radius-bar:0px}#picker-form:has(.picker-strategy-option:hover input[name=corner-style][value=slightly-soft]) .picker-preview-corners,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=corner-style])):has(input[name=corner-style][value=slightly-soft]:checked)) [data-carry]{--pvs-radius-frame:4px;--pvs-radius-frame-phone:5px;--pvs-radius-surface:3px;--pvs-radius-control:3px;--pvs-radius-bar:2px}#picker-form:has(.picker-strategy-option:hover input[name=corner-style][value=friendly]) .picker-preview-corners,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=corner-style])):has(input[name=corner-style][value=friendly]:checked)) [data-carry]{--pvs-radius-frame:7px;--pvs-radius-frame-phone:11px;--pvs-radius-surface:8px;--pvs-radius-control:8px;--pvs-radius-bar:3px}#picker-form:has(.picker-strategy-option:hover input[name=corner-style][value=pill]) .picker-preview-corners,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=corner-style])):has(input[name=corner-style][value=pill]:checked)) [data-carry]{--pvs-radius-frame:9px;--pvs-radius-frame-phone:15px;--pvs-radius-surface:12px;--pvs-radius-control:999px;--pvs-radius-bar:3px}#picker-form:has(.picker-strategy-option:hover input[name=corner-style][value=sharp]) .picker-screen[data-screen="09"] .picker-board-stage,#picker-form:not(:has(.picker-strategy-option:hover input[name=corner-style])):has(input[name=corner-style][value=sharp]:checked) .picker-screen[data-screen="09"] .picker-board-stage{--derived-frame-radius:0px;--derived-phone-radius:0px;--derived-surface-radius:0px;--derived-control-radius:0px;--derived-bar-radius:0px}#picker-form:has(.picker-strategy-option:hover input[name=corner-style][value=slightly-soft]) .picker-screen[data-screen="09"] .picker-board-stage,#picker-form:not(:has(.picker-strategy-option:hover input[name=corner-style])):has(input[name=corner-style][value=slightly-soft]:checked) .picker-screen[data-screen="09"] .picker-board-stage{--derived-frame-radius:4px;--derived-phone-radius:5px;--derived-surface-radius:3px;--derived-control-radius:3px;--derived-bar-radius:2px}#picker-form:has(.picker-strategy-option:hover input[name=corner-style][value=friendly]) .picker-screen[data-screen="09"] .picker-board-stage,#picker-form:not(:has(.picker-strategy-option:hover input[name=corner-style])):has(input[name=corner-style][value=friendly]:checked) .picker-screen[data-screen="09"] .picker-board-stage{--derived-frame-radius:7px;--derived-phone-radius:11px;--derived-surface-radius:8px;--derived-control-radius:8px;--derived-bar-radius:3px}#picker-form:has(.picker-strategy-option:hover input[name=corner-style][value=pill]) .picker-screen[data-screen="09"] .picker-board-stage,#picker-form:not(:has(.picker-strategy-option:hover input[name=corner-style])):has(input[name=corner-style][value=pill]:checked) .picker-screen[data-screen="09"] .picker-board-stage{--derived-frame-radius:9px;--derived-phone-radius:15px;--derived-surface-radius:12px;--derived-control-radius:999px;--derived-bar-radius:3px}.picker-screen[data-screen="09"] .picker-board-stage>.picker-preview .pv-desktop{border-radius:var(--derived-frame-radius)!important}.picker-screen[data-screen="09"] .picker-board-stage>.picker-preview .pv-phone{border-radius:var(--derived-phone-radius)!important}.picker-screen[data-screen="09"] .picker-board-stage>.picker-preview :is(.pv-image,.pv-mini-card,.po-chart,.po-rows,.po-panel,.pg-row){border-radius:var(--derived-surface-radius)!important}.picker-screen[data-screen="09"] .picker-board-stage>.picker-preview .pd-note{border-radius:0 var(--derived-surface-radius) var(--derived-surface-radius) 0!important}.picker-screen[data-screen="09"] .picker-board-stage>.picker-preview :is(.pv-pill,.pv-actions i,.po-item--on,.po-field,.po-row,.po-toggle),.picker-screen[data-screen="09"] .picker-board-stage>.picker-preview .po-toggle:after{border-radius:var(--derived-control-radius)!important}.picker-screen[data-screen="09"] .picker-board-stage>.picker-preview :is(.pv-nav-bars i,.pv-eyebrow,.pv-headline i,.pv-copy-bar,.po-line,.po-cell,.po-heading,.po-label,.pd-item span,.pd-heading,.pd-para i,.pd-note-lines i,.pg-cap i,.pg-track i){border-radius:var(--derived-bar-radius)!important}#picker-form:has(.picker-strategy-option:hover input[name=depth-style][value=flat]) .picker-preview-depth,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=depth-style])):has(input[name=depth-style][value=flat]:checked)) [data-carry]{--pvs-shadow-chrome:none;--pvs-shadow-card:none;--pvs-shadow-control:none;--pvs-shadow-surface:none}#picker-form:has(.picker-strategy-option:hover input[name=depth-style][value=soft-lift]) .picker-preview-depth,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=depth-style])):has(input[name=depth-style][value=soft-lift]:checked)) [data-carry]{--pvs-shadow-chrome:0 1px 2px #0000001a;--pvs-shadow-card:0 1px 1px #00000026, 0 3px 7px #00000024;--pvs-shadow-control:0 1px 2px #0000003d;--pvs-shadow-surface:0 2px 5px #00000024}#picker-form:has(.picker-strategy-option:hover input[name=depth-style][value=floating]) .picker-preview-depth,:where(#picker-form:not(:has(.picker-strategy-option:hover input[name=depth-style])):has(input[name=depth-style][value=floating]:checked)) [data-carry]{--pvs-shadow-chrome:0 2px 6px #00000029;--pvs-shadow-card:0 2px 3px #0003, 0 9px 18px #0000003d;--pvs-shadow-control:0 3px 6px #00000052;--pvs-shadow-surface:0 6px 14px #00000038}#picker-form:has(input[name=boundary-style][value=cards-and-panels]:checked) [data-carry] :is(.ps-gallery-item,.ps-desktop>.ps-proof),#picker-form:has(input[name=boundary-style][value=surface-changes]:checked) [data-carry] .ps-desktop>.ps-proof{box-shadow:var(--pvs-shadow-card)}#picker-form:not(:has(input[name=boundary-style][value=cards-and-panels]:checked)) [data-carry] .ps-gallery-item{box-shadow:none}#picker-form:not(:has(input[name=boundary-style][value=cards-and-panels]:checked)) [data-carry] .ps-gallery-item>i{box-shadow:var(--pvs-shadow-card)}#picker-form:not(:has(input[name=boundary-style][value=surface-changes]:checked)) [data-carry] :is(.ps-nav,.ps-phone-top),#picker-form:not(:has(input[name=boundary-style][value=surface-changes]:checked)) [data-carry] :is(.ps-ops-rail,.ps-docs-rail),#picker-form:not(:has(input[name=boundary-style][value=surface-changes]:checked)):not(:has(input[name=boundary-style][value=cards-and-panels]:checked)) [data-carry] .ps-ops-panel,#picker-form:not(:has(input[name=boundary-style][value=cards-and-panels]:checked)) [data-carry] :is(.ps-ops-chart,.ps-ops-table){box-shadow:none}#picker-form:not(:has(input[name=boundary-style][value=cards-and-panels]:checked)) [data-carry] .ps-ops-plot>i{box-shadow:var(--pvs-shadow-card)}#picker-form:not(:has(input[name=boundary-style][value=surface-changes]:checked)) [data-carry] .ps-docs-note{box-shadow:none}#picker-form:has(input[name=boundary-style][value=surface-changes]:checked) [data-carry] .ps-index-row--flip{box-shadow:var(--pvs-shadow-card)}#picker-form:has(.picker-strategy-option:hover input[name=depth-style][value=flat]) .picker-screen[data-screen="10"] .picker-board-stage,#picker-form:not(:has(.picker-strategy-option:hover input[name=depth-style])):has(input[name=depth-style][value=flat]:checked) .picker-screen[data-screen="10"] .picker-board-stage{--derived-shadow-chrome:none;--derived-shadow-card:none;--derived-shadow-control:none;--derived-shadow-surface:none}#picker-form:has(.picker-strategy-option:hover input[name=depth-style][value=soft-lift]) .picker-screen[data-screen="10"] .picker-board-stage,#picker-form:not(:has(.picker-strategy-option:hover input[name=depth-style])):has(input[name=depth-style][value=soft-lift]:checked) .picker-screen[data-screen="10"] .picker-board-stage{--derived-shadow-chrome:0 1px 2px #00000014;--derived-shadow-card:0 2px 4px #0000001a;--derived-shadow-control:0 1px 2px #0000001a;--derived-shadow-surface:0 2px 4px #0000001a}#picker-form:has(.picker-strategy-option:hover input[name=depth-style][value=floating]) .picker-screen[data-screen="10"] .picker-board-stage,#picker-form:not(:has(.picker-strategy-option:hover input[name=depth-style])):has(input[name=depth-style][value=floating]:checked) .picker-screen[data-screen="10"] .picker-board-stage{--derived-shadow-chrome:0 1px 3px #0000001a;--derived-shadow-card:0 4px 8px #00000024;--derived-shadow-control:0 2px 4px #0000001f;--derived-shadow-surface:0 4px 8px #00000024}.picker-screen[data-screen="10"] .picker-board-stage>.picker-preview :is(.pv-nav,.pv-phone-top){box-shadow:var(--derived-shadow-chrome)!important}.picker-screen[data-screen="10"] .picker-board-stage>.picker-preview :is(.pv-pill,.pv-actions i,.po-item--on,.po-field,.po-toggle){box-shadow:var(--derived-shadow-control)!important}.picker-screen[data-screen="10"] .picker-board-stage>.picker-preview :is(.pv-image,.pv-mini-card,.pd-note),.picker-screen[data-screen="10"] .picker-board-stage>.picker-preview .pg-cap:before{box-shadow:var(--derived-shadow-card)!important}.picker-screen[data-screen="10"] .picker-board-stage>.picker-preview :is(.po-chart i,.po-side,.po-panel){box-shadow:var(--derived-shadow-surface)!important}.picker-screen[data-screen="10"] .picker-board-stage>.picker-preview[data-surface=persuade]{--pv-neutral:var(--pkc-primary);--pv-n-ink:var(--pkc-p-ink);--pv-primary:var(--pkc-p-ink);--pv-p-ink:var(--pkc-primary);--pv-p-on-n:var(--pkc-p-ink);--pv-p-on-p:var(--pkc-primary);--pv-t-on-n:var(--pkc-t-on-p);--pv-secondary:var(--pkc-secondary);--pv-tertiary:var(--pkc-tertiary);--pv-bone:color-mix(in oklab, var(--pkc-p-ink) 55%, var(--pkc-primary));--pv-strong:var(--pkc-p-ink);--pv-secondary-wash:color-mix(in oklab, var(--pkc-p-ink) 16%, var(--pkc-primary))}.picker-screen[data-screen="10"] .picker-board-stage>.picker-preview[data-surface=persuade] .pv-desktop .pv-image{background:linear-gradient(135deg, color-mix(in oklab, var(--pkc-p-ink) 16%, var(--pkc-primary)), color-mix(in oklab, var(--pkc-secondary) 34%, var(--pkc-primary)))!important;border-color:color-mix(in oklab, var(--pkc-secondary) 52%, var(--pkc-primary))!important}.picker-screen[data-screen="10"] .picker-board-stage>.picker-preview[data-surface=persuade] .pv-desktop .pv-image:after{background:var(--pkc-tertiary)!important}.picker-screen[data-screen="10"] .picker-board-stage>.picker-preview[data-surface=persuade] .pv-desktop .pv-actions i:last-child{border-color:color-mix(in oklab, var(--pkc-secondary) 68%, var(--pkc-p-ink))!important;background:color-mix(in oklab, var(--pkc-secondary) 18%, var(--pkc-primary))!important}.picker-screen[data-screen="10"] .picker-board-stage>.picker-preview[data-surface=persuade] .pv-desktop .pv-nav-bars i:nth-child(2){background:color-mix(in oklab, var(--pkc-secondary) 72%, var(--pkc-p-ink))!important}[data-surface=experience]:where(.picker-preview-layout){--portfolio-paper:var(--pv-neutral);--portfolio-pale:color-mix(in oklab, var(--pv-secondary) 24%, var(--portfolio-paper));--portfolio-pale-deep:color-mix(in oklab, var(--pv-secondary) 34%, var(--portfolio-paper));--portfolio-rule:color-mix(in oklab, var(--pv-primary) 13%, var(--portfolio-paper));--portfolio-muted:color-mix(in oklab, var(--pv-primary) 18%, var(--portfolio-paper));--portfolio-tag:#adaeac;--portfolio-copy:#cccdcb;--portfolio-nav:#c2c3c1;--portfolio-green-a:#183d41;--portfolio-green-b:#304f54;--portfolio-light-a:#c2cdd5;--portfolio-light-b:#c5d0d5;--pvs-ground:var(--portfolio-paper);--pvs-surface:var(--portfolio-paper);--pvs-band:transparent;--pvs-band-top:transparent;--pvs-band-alt:transparent;--pvs-rule:var(--portfolio-rule);--pvs-divider-c:var(--portfolio-rule);--pvs-bars:var(--portfolio-muted);--pvs-copy:color-mix(in oklab, var(--pv-primary) 20%, var(--portfolio-paper));--pvs-title:var(--pv-primary);--pvs-radius-frame:2px;--pvs-radius-frame-phone:2px;--pvs-radius-surface:0;--pvs-radius-control:2px;--pvs-radius-bar:3px;--pvs-shadow-card:none;--pvs-shadow-control:none;--pvs-shadow-surface:none;--pvs-shadow-chrome:none}[data-surface=experience]:where(.picker-preview-layout) .ps-desktop,[data-surface=experience]:where(.picker-preview-layout) .ps-phone{border-color:color-mix(in oklab, var(--portfolio-paper) 72%, var(--pv-primary))!important}[data-surface=experience]:where(.picker-preview-layout) .ps-desktop{grid-template-rows:10.8% minmax(0,1fr) 9.4%!important}[data-surface=experience]:where(.picker-preview-layout) .ps-nav{grid-template-columns:auto minmax(0,1fr) auto!important;gap:4%!important;padding-inline:5.2%!important}[data-surface=experience]:where(.picker-preview-layout) .ps-nav-bars{justify-content:flex-start!important;gap:5%!important}[data-surface=experience]:where(.picker-preview-layout) .ps-nav-bars i{opacity:.78!important;width:clamp(20px,8%,38px)!important}[data-surface=experience]:where(.picker-preview-layout) .ps-nav-bars i:first-child{background-color:var(--pv-primary)!important}[data-surface=experience]:where(.picker-preview-layout) .ps-nav-bars i:not(:first-child){background:var(--portfolio-nav)!important}[data-surface=experience]:where(.picker-preview-layout) .ps-nav-bars i:last-child,[data-surface=experience]:where(.picker-preview-layout) .ps-footer-links i:last-child,[data-surface=experience]:where(.picker-preview-layout) .ps-phone-footer i:last-child{opacity:.52!important}[data-surface=experience]:where(.picker-preview-layout) .ps-index-head{display:none!important}[data-surface=experience]:where(.picker-preview-layout) .ps-index-cap{background:0 0!important;border-radius:0!important;align-content:center!important;gap:9px!important}[data-surface=experience]:where(.picker-preview-layout) .ps-index-name{background:var(--pv-primary)!important;border-radius:3px!important;width:64%!important;height:15px!important}[data-surface=experience]:where(.picker-preview-layout) .ps-index-tag{background:var(--portfolio-tag)!important;opacity:.72!important;border-radius:3px!important;width:30%!important;height:8px!important}[data-surface=experience]:where(.picker-preview-layout) .ps-index-lines{gap:8px!important;margin-top:3px!important}[data-surface=experience]:where(.picker-preview-layout) .ps-index-lines b{background:var(--portfolio-copy)!important;opacity:.82!important;border-radius:3px!important;width:74%!important;height:8px!important}[data-surface=experience]:where(.picker-preview-layout) .ps-index-lines b:last-child{opacity:.64!important;width:50%!important}[data-surface=experience]:where(.picker-preview-layout) .ps-image{background:var(--portfolio-pale)!important;border-color:color-mix(in oklab, var(--pv-secondary) 32%, var(--portfolio-paper))!important}[data-surface=experience]:where(.picker-preview-layout) .ps-image:after{background-color:color-mix(in oklab, var(--pv-primary) 42%, var(--portfolio-paper))!important}[data-surface=experience]:where(.picker-preview-layout) .ps-desktop .ps-image:after{right:12px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-desktop .ps-index-row:not(.ps-index-row--flip)>.ps-image:after{top:12px!important}[data-surface=experience]:where(.picker-preview-layout) .ps-index-rail{border-top-color:var(--portfolio-rule)!important;opacity:.82!important}[data-surface=experience]:where(.picker-preview-layout) .ps-index-track{gap:calc(var(--pt-base) * 1.18)!important}[data-surface=experience]:where(.picker-preview-layout) .ps-index-track b{width:calc(var(--pt-base) * 1.62)!important}[data-surface=experience]:where(.picker-preview-layout) .ps-footer{padding-inline:5.7%!important}[data-surface=experience]:where(.picker-preview-layout) .ps-scatter{z-index:3!important;aspect-ratio:1!important;background:color-mix(in oklab, var(--pv-primary) 58%, var(--portfolio-paper))!important;opacity:0!important;pointer-events:none!important;border-radius:50%!important;width:7px!important;position:absolute!important}[data-surface=experience]:where(.picker-preview-layout) .ps-phone{grid-template-rows:9.7% minmax(0,1fr) 8.7%!important}[data-surface=experience]:where(.picker-preview-layout) .ps-phone-top,[data-surface=experience]:where(.picker-preview-layout) .ps-phone-footer{padding-inline:7.2%!important}[data-surface=experience]:where(.picker-preview-layout) .ps-phone-body>.ps-image{min-height:0!important}[data-surface=experience]:where(.picker-preview-layout) .ps-phone-body .ps-index-cap{gap:8px!important}[data-surface=experience]:where(.picker-preview-layout) .ps-phone-body .ps-index-name{width:58%!important;height:9px!important}[data-surface=experience]:where(.picker-preview-layout) .ps-phone-body .ps-index-tag{height:6px!important}[data-surface=experience]:where(.picker-preview-layout) .ps-phone-body .ps-index-lines{gap:6px!important;margin-top:3px!important}[data-surface=experience]:where(.picker-preview-layout) .ps-phone-body .ps-index-lines b{width:72%!important;height:6px!important}.ps-project-rail,.ps-phone-project-rail,.ps-support{display:none!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-desktop{grid-template-rows:61.3px 383px 45.918px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-desktop{grid-template-rows:51px 399.6px 39.618px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-desktop{grid-template-rows:51.8px 368.7px 69.718px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone{grid-template-rows:49.9px 393.8px 46.518px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone{grid-template-rows:44.2px 410.9px 35.118px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone{grid-template-rows:51.3px 384.5px 54.418px!important}[data-surface=experience]:where(.picker-preview-layout) .ps-nav,[data-surface=experience]:where(.picker-preview-layout) .ps-phone-top{padding:0!important;display:block!important;position:relative!important}[data-surface=experience]:where(.picker-preview-layout) .ps-nav-lede,[data-surface=experience]:where(.picker-preview-layout) .ps-nav-tail{width:auto!important;height:auto!important;position:absolute!important;inset:0!important}[data-surface=experience]:where(.picker-preview-layout) .ps-nav-lede>*,[data-surface=experience]:where(.picker-preview-layout) .ps-nav-tail>*{display:block!important;position:absolute!important}[data-surface=experience]:where(.picker-preview-layout) .ps-brand-block,[data-surface=experience]:where(.picker-preview-layout) .ps-avatar,[data-surface=experience]:where(.picker-preview-layout) .ps-phone-top .ps-menu{border-radius:50%!important}[data-surface=experience]:where(.picker-preview-layout) .ps-nav-bars{align-items:center!important;width:auto!important;display:flex!important;position:absolute!important}[data-surface=experience]:where(.picker-preview-layout) .ps-nav-bars i{border-radius:2px!important;flex:none!important;height:100%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-nav .ps-brand-block{width:16.6px!important;height:16.6px!important;top:24.2px!important;left:37.9px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-nav .ps-brand-word,:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-nav .ps-menu{display:none!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-nav-bars{gap:17.7px!important;height:5.7px!important;top:29.3px!important;left:69.3px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-nav-bars i:first-child{width:38.3px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-nav-bars i:nth-child(2){width:41.7px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-nav-bars i:nth-child(3){width:47.4px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-nav-bars i:nth-child(4){display:none!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-nav .ps-nav-action{background:var(--portfolio-nav)!important;border-radius:2px!important;width:33.2px!important;height:5.7px!important;top:29.3px!important;left:562px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-nav .ps-avatar{background:var(--portfolio-nav)!important;width:16.6px!important;height:17.1px!important;top:23.6px!important;left:610.6px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-nav .ps-brand-block{width:15.4px!important;height:14.9px!important;top:17.9px!important;left:30.4px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-nav .ps-brand-word{background:var(--pv-primary)!important;border-radius:2px!important;width:84px!important;height:8px!important;top:21.3px!important;left:64.7px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-nav .ps-menu{display:none!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-nav-bars{gap:21.2px!important;height:4.6px!important;top:23px!important;left:174.5px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-nav-bars i:first-child{width:35.4px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-nav-bars i:nth-child(2){width:34.9px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-nav-bars i:nth-child(3){width:34.3px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-nav-bars i:nth-child(4){width:34.9px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-nav .ps-nav-action{background:var(--portfolio-nav)!important;border-radius:3px!important;width:18.9px!important;height:14.3px!important;top:18.4px!important;left:569.5px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-nav .ps-avatar{background:var(--portfolio-nav)!important;width:21.1px!important;height:21.1px!important;top:15px!important;left:605.5px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-nav .ps-brand-block{width:14.8px!important;height:14.8px!important;top:18.9px!important;left:75.1px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-nav .ps-brand-word,:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-nav .ps-menu{display:none!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-nav-bars{gap:15.3px!important;height:4.5px!important;top:24px!important;left:102.4px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-nav-bars i:first-child{width:35.2px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-nav-bars i:nth-child(2){width:36.4px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-nav-bars i:nth-child(3){width:38.1px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-nav-bars i:nth-child(4){display:none!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-nav .ps-nav-action{background:var(--portfolio-nav)!important;border-radius:2px!important;width:29.5px!important;height:4px!important;top:25.1px!important;left:579px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-nav .ps-avatar{background:var(--portfolio-nav)!important;width:14.8px!important;height:14.8px!important;top:19.5px!important;left:622.2px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-top .ps-brand-block{width:14.3px!important;height:14.3px!important;top:24.7px!important;left:17.3px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-top .ps-brand-word{display:none!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-top .ps-nav-action{background:linear-gradient(to right, var(--portfolio-nav) 0 37%, transparent 37% 38%, var(--portfolio-nav) 38% 100%)!important;border-radius:2px!important;width:48px!important;height:5.1px!important;top:29.3px!important;left:119px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-top .ps-menu{background:var(--portfolio-nav)!important;width:14.3px!important;height:14.9px!important;top:24.7px!important;left:176.2px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-top .ps-brand-block{width:12.6px!important;height:12px!important;top:16.7px!important;left:13.9px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-top .ps-brand-word{background:var(--pv-primary)!important;border-radius:2px!important;width:46.3px!important;height:7.4px!important;top:19px!important;left:36.7px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-top .ps-nav-action{background:var(--portfolio-nav)!important;border-radius:3px!important;width:17.1px!important;height:13.7px!important;top:16.1px!important;left:144.8px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-top .ps-menu{background:var(--portfolio-nav)!important;width:17.7px!important;height:18.3px!important;top:13.9px!important;left:174.5px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-top .ps-brand-block{width:12.5px!important;height:12.5px!important;top:20.6px!important;left:16.6px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-top .ps-brand-word{display:none!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-top .ps-nav-action{background:var(--portfolio-nav)!important;border-radius:3px!important;width:14.8px!important;height:11.9px!important;top:21.2px!important;left:134.8px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-top .ps-menu{background:var(--portfolio-nav)!important;width:14.2px!important;height:14.2px!important;top:20px!important;left:163.2px!important}[data-surface=experience]:where(.picker-preview-layout) .ps-phone-body{padding:0!important;display:block!important;position:relative!important}[data-surface=experience]:where(.picker-preview-layout) .ps-phone-body>.ps-image,[data-surface=experience]:where(.picker-preview-layout) .ps-phone-body>.ps-index-cap,[data-surface=experience]:where(.picker-preview-layout) .ps-phone-body>.ps-phone-pagination{z-index:1!important;margin:0!important;position:absolute!important;translate:0!important}[data-surface=experience]:where(.picker-preview-layout) .ps-phone-body>.ps-index-cap{align-content:start!important;height:48px!important;padding:0!important}[data-surface=experience]:where(.picker-preview-layout) .ps-phone-body .ps-index-tag{background:0 0!important;background-image:linear-gradient(to right, var(--portfolio-tag) 0 44%, transparent 44% 56%, var(--portfolio-tag) 56% 100%)!important;opacity:.86!important;width:58%!important}[data-surface=experience]:where(.picker-preview-layout) .ps-phone-body .ps-index-lines b{width:82%!important}[data-surface=experience]:where(.picker-preview-layout) .ps-phone-body .ps-index-lines b:last-child{width:52%!important}[data-surface=experience]:where(.picker-preview-layout) .ps-phone-body>.ps-phone-pagination{border:0!important;height:11px!important;min-height:0!important;padding:0!important}[data-surface=experience]:where(.picker-preview-layout) .ps-phone-body:after{content:""!important;z-index:0!important;background:var(--portfolio-rule)!important;height:1px!important;position:absolute!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body>[data-project-index]{width:auto!important;left:8.2%!important;right:8.2%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body>.ps-image[data-project-index="1"]{height:85.7px!important;top:14.8px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body>.ps-index-cap[data-project-index="1"]{top:110.3px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body>.ps-image[data-project-index="2"]{height:85.2px!important;top:190.9px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body>.ps-index-cap[data-project-index="2"]{top:286.9px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body:after{top:177.7px!important;left:8.2%!important;right:8.2%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body>.ps-phone-pagination{top:369.8px!important;left:8.2%!important;right:8.2%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body .ps-index-name{width:62%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body .ps-index-tag{background-image:linear-gradient(to right, var(--portfolio-tag) 0 48%, transparent 48% 53%, var(--portfolio-tag) 53% 100%)!important;width:62%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body .ps-index-lines b{width:86.3%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body .ps-index-lines b:last-child{width:54.2%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body>[data-project-index]{width:auto!important;left:7.2%!important;right:7.2%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body>.ps-image[data-project-index="1"]{height:92px!important;top:12.5px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body>.ps-index-cap[data-project-index="1"]{top:113.7px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body>.ps-image[data-project-index="2"]{height:92px!important;top:192px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body>.ps-index-cap[data-project-index="2"]{top:293.2px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body:after{top:179.4px!important;left:7.2%!important;right:7.2%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body>.ps-phone-pagination{top:388.6px!important;left:7.2%!important;right:7.2%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body .ps-index-name{width:56.5%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body .ps-index-lines b{width:65%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body .ps-index-lines b:last-child{width:50%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body>[data-project-index]{width:auto!important;left:9%!important;right:9%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body>.ps-image[data-project-index="1"]{height:77px!important;top:18.1px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body>.ps-index-cap[data-project-index="1"]{top:102.2px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body>.ps-image[data-project-index="2"]{height:77px!important;top:165.8px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body>.ps-index-cap[data-project-index="2"]{top:249.9px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body:after{top:153.9px!important;left:9%!important;right:9%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body>.ps-phone-pagination{top:360.7px!important;left:9%!important;right:9%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body .ps-index-cap{gap:4px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body .ps-index-name{width:46.3%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body .ps-index-tag{background-image:linear-gradient(to right, var(--portfolio-tag) 0 46%, transparent 46% 54%, var(--portfolio-tag) 54% 100%)!important;width:47.5%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body .ps-index-lines{gap:4px!important;margin-top:0!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body .ps-index-lines b{width:67.7%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body .ps-index-lines b:last-child{width:42.2%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout){--portfolio-paper:#f7f6f4;--portfolio-green-a:#204447;--portfolio-green-b:#496567;--portfolio-light-a:#a2afb5;--portfolio-light-b:#d3d8dd}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-index{padding:0!important;display:block!important;position:relative!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-index-row{box-sizing:border-box!important;grid-template-columns:294px minmax(0,1fr)!important;column-gap:26px!important;width:574.5px!important;height:137px!important;position:absolute!important;top:23.4px!important;left:43px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-index-row--flip{border-top-style:solid!important;border-top-width:1px!important;border-top-color:var(--portfolio-rule)!important;height:150.8px!important;padding-top:12px!important;top:175.5px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-index-row--flip>.ps-image{grid-area:1/1!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-index-row--flip>.ps-index-cap{grid-area:1/2!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-desktop .ps-index-cap{translate:0 -2px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-desktop .ps-index-name,:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-desktop .ps-index-tag{width:55%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-desktop .ps-index-tag{background:0 0!important;background-image:linear-gradient(to right, var(--portfolio-tag) 0 47%, transparent 47% 51%, var(--portfolio-tag) 51% 100%)!important;opacity:.86!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-desktop .ps-index-lines b{width:76.2%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-desktop .ps-index-lines b:last-child{width:48.5%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-desktop .ps-index>.ps-index-rail{width:auto!important;position:absolute!important;top:356.1px!important;left:43px!important;right:43px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-desktop .ps-index-track{gap:12px!important;width:168px!important;height:4px!important;position:absolute!important;top:4.3px!important;left:23px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-desktop .ps-index-track b{flex:none!important;width:18px!important;height:4px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-desktop .ps-index-track:after{content:""!important;background:var(--portfolio-nav)!important;width:18px!important;height:4px!important;box-shadow:30px 0 var(--portfolio-nav)!important;border-radius:2px!important;position:absolute!important;top:0!important;left:119px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-pagination .ps-index-track{gap:9.5px!important;width:117px!important;height:4px!important;position:absolute!important;top:5.8px!important;left:27.3px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-pagination .ps-index-track b{flex:none!important;width:15.5px!important;height:4px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-pagination .ps-index-track:after{width:15.5px!important;box-shadow:none!important;left:101px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-index-row>.ps-image:after,:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body>.ps-image:after{background-color:color-mix(in oklab, var(--portfolio-paper) 84%, var(--pv-secondary))!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout){--portfolio-paper:#f1f1f0;--portfolio-pale:color-mix(in oklab, var(--pv-secondary) 32%, var(--portfolio-paper));--portfolio-green-a:#123a3b;--portfolio-green-b:#0b3030;--portfolio-light-a:#d0d7d9;--portfolio-light-b:#d5dbdd}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-index{padding:0!important;display:block!important;position:relative!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-index-row{box-sizing:border-box!important;grid-template-columns:274.4px minmax(0,1fr)!important;column-gap:37.7px!important;width:550px!important;height:138.3px!important;position:absolute!important;top:26.4px!important;left:53.9px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-index-row--flip{border-top-style:solid!important;border-top-width:1px!important;border-top-color:var(--portfolio-rule)!important;grid-template-columns:230.2px 263.5px!important;column-gap:37.3px!important;width:531px!important;height:156.6px!important;padding-top:18.4px!important;top:182.4px!important;left:68.7px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-index-row--flip>.ps-image{grid-area:1/2!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-index-row--flip>.ps-index-cap{grid-area:1/1!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-desktop .ps-index-cap{translate:0 -4px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-desktop .ps-index-row:not(.ps-index-row--flip) .ps-index-cap{translate:0 -5.4px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-desktop .ps-index-name{width:55.5%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-desktop .ps-index-tag{background:0 0!important;background-image:linear-gradient(to right, var(--portfolio-tag) 0 45%, transparent 45% 55%, var(--portfolio-tag) 55% 100%)!important;opacity:.86!important;width:53%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-desktop .ps-index-lines b{width:84%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-desktop .ps-index-lines b:last-child{width:69.5%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-desktop .ps-index>.ps-index-rail{width:auto!important;position:absolute!important;top:365.9px!important;left:54px!important;right:54px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-desktop .ps-index-track{gap:26px!important;width:285px!important;height:4px!important;position:absolute!important;top:5.7px!important;left:121px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-desktop .ps-index-track b{background:var(--portfolio-nav)!important;flex:none!important;width:22px!important;height:4px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-desktop .ps-index-track b:nth-child(4){background:var(--pv-primary)!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-desktop .ps-index-track:after{content:""!important;background:var(--portfolio-nav)!important;width:22px!important;height:4px!important;box-shadow:42px 0 var(--portfolio-nav), 85px 0 var(--portfolio-nav)!important;border-radius:2px!important;position:absolute!important;top:0!important;left:178px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-pagination .ps-index-track{gap:10px!important;width:90px!important;height:4px!important;position:absolute!important;top:5.8px!important;left:35.5px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-pagination .ps-index-track b{background:var(--portfolio-nav)!important;flex:none!important;width:15px!important;height:4px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-pagination .ps-index-track b:nth-child(2){background:var(--pv-primary)!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-pagination .ps-index-track:after{content:none!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-scatter--lead{display:none!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-scatter{opacity:.72!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-scatter--trail{top:54.2%!important;left:4.8%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout){--portfolio-paper:#f5f4f4;--portfolio-pale:color-mix(in oklab, var(--pv-secondary) 42%, var(--portfolio-paper));--portfolio-green-a:#183d41;--portfolio-green-b:#304f54;--portfolio-light-a:#c2cdd5;--portfolio-light-b:#c2cdd3}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-index{padding:0!important;display:block!important;position:relative!important;overflow:visible!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-index-row{border:0!important;min-height:0!important;padding:0!important;display:block!important;position:absolute!important;inset:0!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-index-row>.ps-image{position:absolute!important;rotate:0deg!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-index-row>.ps-index-cap{z-index:2!important;align-content:start!important;gap:5px!important;position:absolute!important;translate:0!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-desktop .ps-index-lines{gap:4px!important;margin-top:2px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-index-row:not(.ps-index-row--flip)>.ps-image{width:306.8px!important;height:248.2px!important;top:43.2px!important;left:-1px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-index-row:not(.ps-index-row--flip)>.ps-image:after{background-color:color-mix(in oklab, var(--portfolio-paper) 84%, var(--pv-secondary))!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-index-row:not(.ps-index-row--flip)>.ps-index-cap{width:127.8px!important;top:110.2px!important;left:324.5px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-index-row:not(.ps-index-row--flip)>.ps-index-cap .ps-index-name,:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-index-row:not(.ps-index-row--flip)>.ps-index-cap .ps-index-tag{width:78%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-index-row:not(.ps-index-row--flip)>.ps-index-cap .ps-index-lines b{width:100%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-index-row:not(.ps-index-row--flip)>.ps-index-cap .ps-index-lines b:last-child{width:67%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-index-row--flip>.ps-image{grid-area:auto!important;width:153.4px!important;height:163px!important;top:17.6px!important;left:481.9px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-index-row--flip>.ps-index-cap{grid-area:auto!important;width:153.4px!important;top:190.9px!important;left:481.9px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-index-row--flip>.ps-index-cap .ps-index-name,:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-index-row--flip>.ps-index-cap .ps-index-tag{width:58%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-index-row--flip>.ps-index-cap .ps-index-lines b{width:82%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-index-row--flip>.ps-index-cap .ps-index-lines b:last-child{width:60%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-desktop .ps-index-tag{background:0 0!important;background-image:linear-gradient(to right, var(--portfolio-tag) 0 46%, transparent 46% 54%, var(--portfolio-tag) 54% 100%)!important;opacity:.86!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-index>.ps-index-rail{z-index:4!important;border-top:0!important;width:416.3px!important;padding-top:0!important;position:absolute!important;inset:336.3px auto auto 141.2px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-project-rail{z-index:5!important;background:var(--portfolio-tag)!important;opacity:.72!important;width:1px!important;display:block!important;position:absolute!important;top:-5.5%!important;bottom:15%!important;left:45.6px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-project-rail i{aspect-ratio:1!important;background:var(--portfolio-tag)!important;width:7px!important;position:absolute!important;left:50%!important;transform:translate(-50%,-50%)!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-project-rail i:first-child{top:0!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-project-rail i:nth-child(2){background:var(--portfolio-paper)!important;border:1px solid var(--portfolio-tag)!important;top:36%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-project-rail i:last-child{top:100%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-support{z-index:3!important;grid-template-columns:minmax(0,2.31fr) minmax(0,1fr)!important;gap:4.8%!important;width:268.8px!important;height:60.2px!important;display:grid!important;position:absolute!important;top:284.1px!important;left:371.1px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-support-meta{align-content:center!important;gap:8px!important;display:grid!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-support-meta i{background:var(--portfolio-tag)!important;border-radius:3px!important;width:74%!important;height:8px!important;display:block!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-support-meta i:first-child{background:var(--pv-primary)!important;width:66%!important;height:15px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-support-meta i:last-child{background:var(--portfolio-copy)!important;opacity:.72!important;width:100%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-scatter--lead{display:none!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-scatter{opacity:.42!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-scatter--trail{top:53%!important;left:4.2%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-project-rail{z-index:2!important;justify-content:space-between!important;align-items:center!important;width:auto!important;height:4px!important;display:flex!important;position:absolute!important;top:0!important;left:9%!important;right:9%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-project-rail i{background:var(--portfolio-tag)!important;border-radius:2px!important;width:25%!important;height:3px!important;margin:0!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-project-rail i:nth-child(2){background:var(--pv-primary)!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-support{z-index:1!important;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr)!important;gap:8%!important;width:auto!important;height:35.2px!important;margin:0!important;position:absolute!important;top:307.2px!important;left:9%!important;right:9%!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-support .ps-support-meta{gap:7px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-support .ps-support-meta i{height:6px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-support .ps-support-meta i:first-child{height:9px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-pagination .ps-index-track{gap:9px!important;width:107px!important;height:4px!important;position:absolute!important;top:6.2px!important;left:25.3px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-pagination .ps-index-track b{background:var(--portfolio-nav)!important;flex:none!important;width:14px!important;height:4px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-pagination .ps-index-track b:nth-child(2){background:var(--pv-primary)!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-pagination .ps-index-track:after{content:""!important;background:var(--portfolio-nav)!important;border-radius:2px!important;width:14px!important;height:4px!important;position:absolute!important;top:0!important;left:92px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-desktop .ps-index-track{gap:38px!important;width:298px!important;height:4px!important;position:absolute!important;top:10.5px!important;left:42px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-desktop .ps-index-track b{flex:none!important;width:18px!important;height:4px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-desktop .ps-index-track:after{content:""!important;background:var(--portfolio-nav)!important;width:18px!important;height:4px!important;box-shadow:56px 0 var(--portfolio-nav)!important;border-radius:2px!important;position:absolute!important;top:0!important;left:224px!important}[data-surface=experience]:where(.picker-preview-layout) .ps-footer,[data-surface=experience]:where(.picker-preview-layout) .ps-phone-footer{position:relative!important}[data-surface=experience]:where(.picker-preview-layout) .ps-footer-links,[data-surface=experience]:where(.picker-preview-layout) .ps-phone-footer{opacity:1!important}[data-surface=experience]:where(.picker-preview-layout) .ps-footer-links i,[data-surface=experience]:where(.picker-preview-layout) .ps-phone-footer i{opacity:0!important}[data-surface=experience]:where(.picker-preview-layout) .ps-footer-links:before,[data-surface=experience]:where(.picker-preview-layout) .ps-phone-footer:before,[data-surface=experience]:where(.picker-preview-layout) .ps-phone-footer:after{content:""!important;background:var(--portfolio-nav)!important;border-radius:2px!important;display:block!important;position:absolute!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-footer-links{width:300px!important;height:5px!important;position:absolute!important;top:23.4px!important;left:39px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-footer-links:before{width:40px!important;height:5px!important;box-shadow:65px 0 var(--portfolio-nav), 130px 0 var(--portfolio-nav), 196px 0 var(--portfolio-nav), 260px 0 var(--portfolio-nav)!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-footer-mark{background:var(--portfolio-nav)!important;width:41px!important;height:5px!important;position:absolute!important;top:23.4px!important;left:583px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-footer-links{width:450px!important;height:5px!important;position:absolute!important;top:21px!important;left:38px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-footer-links:before{width:42px!important;height:5px!important;box-shadow:82px 0 var(--portfolio-nav), 159px 0 var(--portfolio-nav), 254px 0 var(--portfolio-nav), 330px 0 var(--portfolio-nav), 405px 0 var(--portfolio-nav)!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-footer-mark{background:var(--pv-primary)!important;width:45px!important;height:5px!important;position:absolute!important;top:21px!important;left:575px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-footer-links{width:270px!important;height:5px!important;position:absolute!important;top:37.3px!important;left:76px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-footer-links:before{width:36px!important;height:5px!important;box-shadow:58px 0 var(--portfolio-nav), 116px 0 var(--portfolio-nav), 174px 0 var(--portfolio-nav), 231px 0 var(--portfolio-nav)!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-footer-mark{background:var(--portfolio-nav)!important;width:38px!important;height:5px!important;position:absolute!important;top:37.3px!important;left:593px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-footer:before{width:24px!important;height:5px!important;box-shadow:31px 0 var(--portfolio-nav), 63px 0 var(--portfolio-nav), 94px 0 var(--portfolio-nav)!important;top:23.4px!important;left:17.1px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-footer:after{width:27px!important;height:5px!important;top:23.4px!important;left:164.1px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-footer:before{width:20px!important;height:4px!important;box-shadow:32px 0 var(--portfolio-nav), 65px 0 var(--portfolio-nav), 97px 0 var(--portfolio-nav)!important;top:17.5px!important;left:18.8px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-footer:after{background:var(--pv-primary)!important;width:28px!important;height:4px!important;top:17.5px!important;left:159.8px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-footer:before{width:21px!important;height:5px!important;box-shadow:29px 0 var(--portfolio-nav), 57px 0 var(--portfolio-nav), 86px 0 var(--portfolio-nav)!important;top:28px!important;left:16.8px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-footer:after{width:25px!important;height:5px!important;top:28px!important;left:151.8px!important}[data-surface=experience]:where(.picker-preview-layout) [data-project-tone=green]{background-color:var(--pv-primary)!important;background-image:linear-gradient(135deg, var(--portfolio-green-a), var(--portfolio-green-b))!important;border-color:color-mix(in oklab, var(--pv-primary) 86%, black)!important}[data-surface=experience]:where(.picker-preview-layout) [data-project-tone=light],:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body>[data-project-tone=green]{background-color:var(--portfolio-pale)!important;background-image:linear-gradient(135deg, var(--portfolio-light-a), var(--portfolio-light-b))!important;border-color:color-mix(in oklab, var(--pv-secondary) 32%, var(--portfolio-paper))!important}[data-surface=experience]:where(.picker-preview-layout) *,[data-surface=experience]:where(.picker-preview-layout) :before,[data-surface=experience]:where(.picker-preview-layout) :after{transition:none!important;animation:none!important}@media (prefers-reduced-motion:reduce){[data-surface=experience]:where(.picker-preview-layout) *,[data-surface=experience]:where(.picker-preview-layout) :before,[data-surface=experience]:where(.picker-preview-layout) :after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}[data-surface=experience]:where(.picker-preview-layout) .ps-index-rail{display:none!important}[data-surface=experience]:where(.picker-preview-layout) .ps-index-lines{background-color:#0000!important}[data-surface=experience]:where(.picker-preview-layout) .ps-index-lines b{background-color:var(--pvs-bars)!important}[data-surface=experience]:where(.picker-preview-layout) .ps-index-lines>b{color:var(--pvs-bars)!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=simple-grid]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=simple-grid]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body:after,:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body:after,:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-body:after{content:none!important;display:none!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=balanced]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=balanced]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-desktop .ps-scatter.ps-scatter--trail,:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone-project-rail{display:none!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-phone .ps-index-cap{gap:8px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-support.ps-phone-support{margin-top:10px!important}:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-desktop .ps-index-cap,:where(#picker-form:has(.picker-strategy-option:hover input[name=layout-structure][value=freeform]),#picker-form:not(:has(.picker-strategy-option:hover input[name=layout-structure])):has(input[name=layout-structure][value=freeform]:checked)) [data-surface=experience]:where(.picker-preview-layout) .ps-desktop .ps-index-lines{gap:6px!important}.dcx-shell,.dcx-expander{--accent:var(--ks-kinpaku);--accent-hover:var(--ks-kinpaku-pale);--accent-wash:oklch(78% .12 82/.1);--accent-line:oklch(78% .12 82/.32);--panel-bg:oklch(11% .006 95);--shadow-color:oklch(0% 0 0/.4);--viz-ink:var(--ks-text);--viz-mist:oklch(78% 0 0/.3);--viz-accent:var(--ks-kinpaku);font-family:var(--ks-font);color:var(--ks-text);-webkit-font-smoothing:antialiased;font-size:1rem;line-height:1.6}body.is-locked{overflow:hidden}body.dcx-open .picker-shell,body.dcx-open .picker-width-gate{display:none}body.dcx-open{background:linear-gradient(180deg, var(--ks-lacquer), var(--ks-lacquer-deep));overflow:hidden}.dcx-shell{background:linear-gradient(180deg, var(--ks-lacquer), var(--ks-lacquer-deep));height:100svh;max-height:100svh;overflow:hidden}.dcx-expander code{font-family:var(--ks-mono);color:var(--ks-code-fg);background:var(--ks-code-bg);white-space:nowrap;border-radius:3px;padding:.14em .4em;font-size:.82em}.dcx-shell{--dcx-gap:clamp(10px, .9vw, 14px);box-sizing:border-box;padding:var(--dcx-gap) clamp(14px, 2vw, 26px) clamp(16px, 2.2vw, 28px);flex-direction:column;display:flex}.dcx-shell[hidden]{display:none}.dcx-grid{gap:var(--dcx-gap);flex:1 1 0;grid-template-rows:repeat(12,minmax(0,1fr));grid-template-columns:repeat(18,minmax(0,1fr));min-height:0;display:grid;position:relative}.dcx-tile--product{--vz-delay:-1.1s;grid-area:1/1/7/5}.dcx-tile--brand{--vz-delay:-1.9s;grid-area:1/5/6/11}.dcx-tile--audience{--vz-delay:-.4s;grid-area:1/11/7/15}.dcx-tile--typography{--vz-delay:-2.6s;grid-area:1/15/6/19}.dcx-tile--color{--vz-delay:-.7s;grid-area:6/5/13/10}.dcx-tile--iconography{--vz-delay:-1.3s;grid-area:7/1/13/5}.dcx-tile--interface{--vz-delay:-1.6s;grid-area:7/10/13/15}.dcx-tile--material{--vz-delay:-3.2s;grid-area:6/15/13/19}.dcx-tile{background:var(--panel-bg);border:1px solid var(--ks-rule);min-width:0;min-height:0;color:var(--ks-champagne);cursor:pointer;text-align:left;isolation:isolate;transition:transform .22s var(--ks-ease), border-color .22s var(--ks-ease), background .22s var(--ks-ease);border-radius:8px;grid-template-rows:auto minmax(0,1fr);gap:clamp(12px,1.6vw,24px);padding:clamp(18px,2.2vw,36px);font-family:inherit;display:grid;position:relative;overflow:hidden;container-type:inline-size}.dcx-tile:hover,.dcx-tile:focus-visible{border-color:var(--accent);outline:none;transform:translateY(-2px)}.dcx-tile:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.dcx-tile[data-reveal],.dcx-badge[data-reveal]{opacity:0;transition:opacity .8s var(--ks-ease), transform .8s var(--ks-ease);transition-delay:var(--reveal-delay,0s);transform:translateY(30px)}.dcx-badge[data-reveal]{transform:translateY(0)scale(.6)}.dcx-tile[data-reveal].revealed{opacity:1;transition:transform .22s var(--ks-ease), border-color .22s var(--ks-ease), background .22s var(--ks-ease), opacity .8s var(--ks-ease);transition-delay:0s;transform:translateY(0)}.dcx-badge[data-reveal].revealed{opacity:1;transform:translateY(0)scale(1)}.dcx-tile-title{z-index:2;font-family:var(--ks-font-display);letter-spacing:.01em;color:inherit;text-wrap:balance;transition:color .22s var(--ks-ease);margin:0;font-size:clamp(2.3rem,4.8vw,4.4rem);font-weight:100;line-height:1.02;position:relative}.dcx-tile:hover .dcx-tile-title,.dcx-tile:focus-visible .dcx-tile-title{color:var(--accent)}.dcx-tile--typography .dcx-tile-title,.dcx-tile--iconography .dcx-tile-title{font-size:min(clamp(2.3rem,4.8vw,4.4rem),20cqw)}.dcx-badge{z-index:0;width:clamp(82px,7vw,118px);height:clamp(82px,7vw,118px);padding:var(--dcx-gap);background:var(--ks-lacquer);border-radius:calc(9% + var(--dcx-gap));color:var(--ks-kinpaku);pointer-events:none;grid-area:6/10/7/11;place-self:center;place-items:center;display:grid;position:relative}.dcx-badge svg{fill:currentColor;width:100%;height:100%;display:block}.dcx-tile-title{order:1}.dcx-tile-viz{min-width:0;min-height:0;color:var(--viz-ink);order:2;justify-content:center;align-items:center;display:flex}.dcx-viz-svg{width:100%;max-width:100%;height:100%;max-height:100%}.dcx-viz-svg .vz-stroke{stroke-width:3.5px}.dcx-viz-svg .vz-ghost{stroke-width:2.5px}@media (width<=920px){.dcx-viz-svg .vz-stroke{stroke-width:1.5px}.dcx-viz-svg .vz-ghost{stroke-width:1px}}.anim-draw{stroke-dasharray:var(--pl,999px);stroke-dashoffset:var(--pl,999px);animation:draw-breathe 4s ease-in-out var(--vz-delay,0s) infinite}.dcx-tile:hover .anim-draw{animation:draw-in .8s var(--ks-ease) forwards}.anim-draw-delay{stroke-dasharray:var(--pl,999px);stroke-dashoffset:var(--pl,999px)}.dcx-tile:hover .anim-draw-delay{animation:draw-in 1s var(--ks-ease) .2s forwards}@keyframes draw-breathe{0%,to{stroke-dashoffset:var(--pl,999px)}50%{stroke-dashoffset:calc(var(--pl,999px) * .4)}}@keyframes draw-in{0%{stroke-dashoffset:var(--pl,999px)}to{stroke-dashoffset:0}}.anim-move-x{animation:pulse-x 3s ease-in-out var(--vz-delay,0s) infinite}.dcx-tile:hover .anim-move-x{animation:.6s ease-in-out forwards spread-x}.anim-move-x-opp{animation:pulse-x-opp 3s ease-in-out var(--vz-delay,0s) infinite}.dcx-tile:hover .anim-move-x-opp{animation:.6s ease-in-out forwards spread-x-opp}.anim-fade-in{opacity:0;transition:opacity .6s ease-in-out}.dcx-tile:hover .anim-fade-in{opacity:1}@keyframes pulse-x{0%,to{transform:translate(0)}50%{transform:translate(1.5px)}}@keyframes pulse-x-opp{0%,to{transform:translate(0)}50%{transform:translate(-1.5px)}}@keyframes spread-x{0%{transform:translate(0)}to{transform:translate(4px)}}@keyframes spread-x-opp{0%{transform:translate(0)}to{transform:translate(-4px)}}.anim-toggle-move{animation:toggle-drift 3s ease-in-out var(--vz-delay,0s) infinite}.dcx-tile:hover .anim-toggle-move{animation:.35s ease-in-out forwards toggle-snap}@keyframes toggle-drift{0%,to{transform:translate(0)}50%{transform:translate(2px)}}@keyframes toggle-snap{0%{fill:var(--viz-mist);transform:translate(0)}to{fill:var(--viz-accent);transform:translate(8px)}}.anim-blink{animation:blink-key 1s step-end var(--vz-delay,0s) infinite}@keyframes blink-key{0%,to{opacity:1}50%{opacity:0}}.anim-pop{opacity:.35;transition:opacity .35s var(--ks-ease);animation:4.8s ease-in-out infinite pop-glow}.anim-pop-1{animation-delay:calc(var(--vz-delay,0s) + 0s);transition-delay:0s}.anim-pop-2{animation-delay:calc(var(--vz-delay,0s) + 1.2s);transition-delay:70ms}.anim-pop-3{animation-delay:calc(var(--vz-delay,0s) + 2.4s);transition-delay:.14s}.anim-pop-4{animation-delay:calc(var(--vz-delay,0s) + 3.6s);transition-delay:.21s}.dcx-tile:hover .anim-pop{opacity:1;animation:none}@keyframes pop-glow{0%,25%,to{opacity:.35}10%{opacity:1}}.anim-join{opacity:.25;transition:opacity .5s var(--ks-ease)}.dcx-tile:hover .anim-join{opacity:1}.dcx-tile--typography:not(:hover) .anim-join{opacity:0}.dcx-tile--typography:not(:hover) :is(.anim-draw,.anim-draw-delay){stroke-dashoffset:var(--pl,999px);animation:none}.dcx-tile--material .dcx-viz-svg :is(rect,line).vz-stroke{transition:stroke .22s var(--ks-ease)}.dcx-tile--material:not(:hover) .dcx-viz-svg :is(rect,line).vz-stroke{stroke:var(--viz-mist)}.dcx-expander{z-index:500;background:var(--ks-lacquer);color:var(--ks-text);box-shadow:0 18px 46px var(--shadow-color);transition:top .52s var(--ks-ease), left .52s var(--ks-ease), width .52s var(--ks-ease), height .52s var(--ks-ease), border-radius .52s var(--ks-ease);border-radius:8px;position:fixed;overflow:hidden}.dcx-expander.is-full{border-radius:0;width:100vw!important;height:100svh!important;top:0!important;left:0!important}.dcx-expander-inner{opacity:0;width:100%;height:100svh;min-height:0;transition:opacity .42s var(--ks-ease), transform .52s var(--ks-ease);grid-template-columns:264px minmax(0,1fr);transition-delay:.26s;display:grid;transform:translateY(44px)}.dcx-expander.is-ready .dcx-expander-inner{opacity:1;transform:translateY(0)}.dcx-sidebar{border-right:1px solid var(--ks-rule);background:var(--ks-lacquer-deep);scrollbar-width:thin;scrollbar-color:var(--ks-rule) transparent;min-height:0;padding:26px 22px 32px;overflow:hidden auto}.dcx-sidebar-brand{color:var(--ks-kinpaku);align-items:center;gap:6px;margin:2px 0 28px;text-decoration:none;display:inline-flex}.dcx-sidebar-brand svg{fill:currentColor;flex-shrink:0;width:26px;height:26px}.dcx-sidebar-brand-name{font-family:var(--ks-font-display);letter-spacing:.15em;text-transform:uppercase;-webkit-font-smoothing:auto;font-size:1.02rem;font-weight:400;line-height:1}.dcx-nav-label{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:10px;padding-left:14px;font-size:.72rem;font-weight:650;display:block}.dcx-nav-list{margin:0;padding:0;list-style:none}.dcx-nav-list li{margin:0}.dcx-nav-link{width:100%;font-family:var(--ks-font);color:var(--ks-text);text-align:left;cursor:pointer;transition:color .16s var(--ks-ease), border-color .16s var(--ks-ease);background:0 0;border:0;border-left:2px solid #0000;padding:5px 0 5px 12px;font-size:.94rem;font-weight:400;line-height:1.5;text-decoration:none;display:block}.dcx-nav-link:hover,.dcx-nav-link:focus-visible{color:var(--accent-hover);outline:none}.dcx-nav-link[aria-current=page]{color:var(--accent);border-left-color:var(--accent);font-weight:600}.dcx-subnav{padding:2px 0 8px 24px;display:none}.dcx-nav-list li.is-active .dcx-subnav{animation:subnav-in .18s var(--ks-ease) both;gap:2px;display:grid}@keyframes subnav-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.dcx-sub-link{width:100%;font-family:var(--ks-font);color:var(--ks-text-muted);text-align:left;cursor:pointer;transition:color .16s var(--ks-ease);background:0 0;border:0;padding:3px 0;font-size:.85rem;display:block}.dcx-sub-link:hover,.dcx-sub-link:focus-visible{color:var(--accent-hover);outline:none}.dcx-panel{grid-template-rows:64px minmax(0,1fr);min-width:0;min-height:0;display:grid;position:relative}.dcx-topbar{border-bottom:1px solid var(--ks-rule);justify-content:space-between;align-items:center;gap:16px;min-width:0;padding:0 clamp(22px,4vw,48px);display:flex}.dcx-current{min-width:0;font-family:var(--ks-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ks-text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;overflow:hidden}.dcx-close{border:1px solid var(--ks-rule);width:40px;height:40px;color:var(--ks-text);cursor:pointer;transition:color .16s var(--ks-ease), border-color .16s var(--ks-ease), transform .22s var(--ks-ease);background:0 0;border-radius:999px;flex-shrink:0;place-items:center;display:grid}.dcx-close:hover,.dcx-close:focus-visible{color:var(--accent);border-color:var(--accent-line);outline:none;transform:rotate(90deg)}.dcx-close:before,.dcx-close:after{content:"";background:currentColor;grid-area:1/1;width:16px;height:1.5px}.dcx-close:before{transform:rotate(45deg)}.dcx-close:after{transform:rotate(-45deg)}.dcx-main{scrollbar-width:thin;scrollbar-color:var(--ks-rule) transparent;min-height:0;overflow:auto}.dcx-main:focus{outline:none}.dcx-article{max-width:1180px;margin:0 auto;padding:clamp(36px,5vw,64px) clamp(22px,4vw,56px) 110px}.dcx-eyebrow{font-family:var(--ks-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:16px;font-size:.7rem;display:block}.dcx-title{font-family:var(--ks-font-display);letter-spacing:-.01em;color:var(--ks-kinpaku);text-wrap:balance;margin:0 0 18px;font-size:clamp(3rem,6vw,5.2rem);font-weight:100;line-height:1.02}.dcx-lede{max-width:56ch;color:var(--ks-text);margin:0;font-size:1.08rem;line-height:1.65}.dcx-block{margin-top:clamp(34px,5vw,52px)}.dcx-block-label{font-family:var(--ks-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ks-text-faint);margin-bottom:14px;font-size:.68rem;display:block}.dcx-defs{border-top:1px solid var(--ks-rule)}.dcx-def{border-bottom:1px solid var(--ks-rule);grid-template-columns:minmax(180px,.44fr) minmax(0,1fr);align-items:baseline;gap:6px 26px;padding:15px 0;display:grid}.dcx-def dt{color:var(--ks-champagne);margin:0;font-size:.98rem;font-weight:600;line-height:1.4}.dcx-def dd{color:var(--ks-text-muted);margin:0;font-size:.92rem;line-height:1.55}.dcx-chips{flex-wrap:wrap;gap:8px;display:flex}.dcx-chip{border:1px solid var(--accent-line);background:var(--accent-wash);color:var(--accent-hover);border-radius:999px;align-items:center;padding:6px 13px;font-size:.85rem;font-weight:500;display:inline-flex}.dcx-chip--muted{border-color:var(--ks-rule);color:var(--ks-text-muted);background:0 0}.dcx-callout{border:1px solid var(--ks-rule);background:var(--panel-bg);border-radius:10px;padding:clamp(20px,3vw,30px)}.dcx-callout+.dcx-callout{margin-top:12px}.dcx-callout-name{color:var(--ks-champagne);margin:0 0 8px;font-size:1.02rem;font-weight:600}.dcx-callout p:not(.dcx-callout-name){color:var(--ks-text-muted);margin:0;font-size:.92rem;line-height:1.6}.dcx-callout--accent{border-color:var(--accent-line);background:var(--accent-wash)}.dcx-callout p.dcx-callout-success{border-top:1px solid var(--ks-rule);margin-top:10px;padding-top:10px}.dcx-callout-pair{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:12px;display:grid}.dcx-cols{grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));align-items:start;gap:0 clamp(24px,4vw,48px);display:grid}.dcx-purpose{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:14px;display:grid}.dcx-platform-pill{font-family:var(--ks-mono);letter-spacing:.16em;text-transform:uppercase;font-size:.7rem}.dcx-ref-cards{grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:clamp(14px,2vw,22px);display:grid}.dcx-ref-cards+.dcx-chips{margin-top:12px}.dcx-ref-card{border:1px solid var(--ks-rule);background:var(--panel-bg);padding:clamp(18px,2.5vw,26px)}.dcx-ref-name{font-family:var(--ks-font-display);color:var(--ks-text);margin:0 0 8px;font-size:1.3rem;font-weight:300}.dcx-ref-takeaway{color:var(--ks-text-muted);margin:0;font-size:.92rem;line-height:1.6}.dcx-prose{max-width:62ch;color:var(--ks-text-muted);margin:0;font-size:.96rem;line-height:1.6}.dcx-principles{counter-reset:principle;border-top:1px solid var(--ks-rule);margin:0;padding:0;list-style:none}.dcx-principles li{counter-increment:principle;border-bottom:1px solid var(--ks-rule);color:var(--ks-text-muted);grid-template-columns:44px minmax(0,1fr);align-items:baseline;gap:20px;padding:14px 0;font-size:.94rem;line-height:1.55;display:grid}.dcx-principles li:before{content:counter(principle, decimal-leading-zero);font-family:var(--ks-mono);color:var(--accent);font-size:.78rem}.dcx-principles strong{color:var(--ks-champagne);font-weight:600}.dcx-voice{gap:12px;display:grid}.dcx-voice-pair{grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:12px;display:grid}.dcx-voice-cell{border:1px solid var(--ks-rule);background:var(--panel-bg);border-radius:10px;padding:14px 18px}.dcx-voice-cell--say{border-color:var(--accent-line);background:var(--accent-wash)}.dcx-voice-tag{font-family:var(--ks-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ks-text-faint);margin-bottom:6px;font-size:.62rem;display:block}.dcx-voice-cell p{color:var(--ks-text-muted);margin:0;font-size:.92rem;line-height:1.6}.dcx-voice-cell--say p{color:var(--ks-text)}.dcx-principles--cols{grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:0 clamp(24px,4vw,48px);display:grid}.dcx-list{gap:9px;margin:0;padding:0;list-style:none;display:grid}.dcx-list li{color:var(--ks-text-muted);padding-left:20px;font-size:.94rem;line-height:1.55;position:relative}.dcx-list li:before{content:"";background:var(--accent);width:7px;height:1.5px;position:absolute;top:.62em;left:2px}.dcx-list strong{color:var(--ks-champagne);font-weight:600}.dcx-fan{isolation:isolate;border-radius:10px 10px 0 0;height:clamp(150px,16vw,195px);position:relative;overflow:hidden}.dcx-fan:after{content:"";z-index:30;background:var(--ks-rule);pointer-events:none;height:1px;position:absolute;bottom:0;left:0;right:0}.dcx-fan-panel{inset-block:0;left:var(--panel-left);z-index:var(--panel-z);width:var(--panel-width,40%);background:var(--panel-swatch);color:var(--panel-ink);cursor:copy;text-align:left;transform-origin:50% 100%;will-change:transform;backface-visibility:hidden;border:0;border-radius:22px 22px 0 0;padding:0;transition:transform .74s cubic-bezier(.16,1,.3,1),filter .46s cubic-bezier(.16,1,.3,1);position:absolute;transform:translateY(58%);box-shadow:inset 0 0 0 1px oklch(78% 0 0/.14)}.dcx-fan.is-engaged .dcx-fan-panel{transform:translateY(54%)}.dcx-fan.is-engaged .dcx-fan-panel.is-neighbor{transform:translateY(48%)}.dcx-fan.is-engaged .dcx-fan-panel.is-active,.dcx-fan-panel:focus-visible,.dcx-fan-panel.is-copied{filter:saturate(1.04);outline:none;transform:translateY(10%)rotate(-.48deg)}.dcx-fan-info{opacity:0;transition:opacity .32s var(--ks-ease), transform .42s var(--ks-ease);pointer-events:none;justify-content:space-between;align-items:baseline;gap:14px;display:flex;position:absolute;top:clamp(20px,2.6vw,34px);left:clamp(20px,2.6vw,34px);right:clamp(20px,2.6vw,34px);transform:translateY(10px)}.dcx-fan-panel.is-active .dcx-fan-info,.dcx-fan-panel:focus-visible .dcx-fan-info,.dcx-fan-panel.is-copied .dcx-fan-info{opacity:1;transform:translateY(0)}.dcx-fan-name{font-family:var(--ks-font);white-space:nowrap;margin:0;font-size:clamp(.95rem,1.6vw,1.3rem);font-weight:700;line-height:1.1}.dcx-fan-value{font-family:var(--ks-mono);letter-spacing:.04em;opacity:.82;flex:none;margin:0;font-size:clamp(.6rem,1vw,.72rem)}.dcx-fan-note{color:var(--ks-text-faint);margin:10px 0 0;font-size:.8rem}.dcx-specimen{border:1px solid var(--ks-rule);background:var(--panel-bg);border-radius:10px;gap:18px;padding:clamp(24px,3.4vw,40px);display:grid}.dcx-specimen-display{color:var(--ks-champagne);text-wrap:balance;margin:0;font-family:Shippori Mincho,Hiragino Mincho ProN,Yu Mincho,Georgia,serif;font-size:clamp(2.2rem,4.6vw,3.6rem);font-weight:400;line-height:1.15}.dcx-specimen-body{max-width:62ch;color:var(--ks-text-muted);margin:0;font-family:"Source Sans 3",system-ui,sans-serif;font-size:1rem;line-height:1.6}.dcx-specimen-label{letter-spacing:.1em;text-transform:uppercase;color:var(--ks-text-faint);margin:0;font-family:"Source Sans 3",system-ui,sans-serif;font-size:.875rem;font-weight:600}.dcx-radius-row{flex-wrap:wrap;gap:18px;display:flex}.dcx-radius-sample{justify-items:center;gap:8px;display:grid}.dcx-radius-box{border:1.5px solid var(--accent-line);background:var(--accent-wash);width:76px;height:76px}.dcx-radius-caption{font-family:var(--ks-mono);color:var(--ks-text-muted);font-size:.68rem}.dcx-space-rows{gap:8px;display:grid}.dcx-space-row{grid-template-columns:74px minmax(0,1fr) 84px;align-items:center;gap:14px;display:grid}.dcx-space-name,.dcx-space-value{font-family:var(--ks-mono);color:var(--ks-text-muted);font-size:.7rem}.dcx-space-value{text-align:right;color:var(--ks-text-faint)}.dcx-space-bar{height:12px;width:var(--bar,20%);background:var(--accent-wash);border:1px solid var(--accent-line);border-radius:3px;min-width:6px}.dcx-empty{border:1px dashed var(--ks-rule);text-align:left;border-radius:10px;padding:clamp(26px,4vw,40px)}.dcx-empty-title{color:var(--ks-champagne);margin:0 0 8px;font-size:1rem;font-weight:600}.dcx-empty p:not(.dcx-empty-title){color:var(--ks-text-muted);margin:0;font-size:.92rem;line-height:1.6}@media (width<=920px){.dcx-shell{padding:10px}.dcx-grid{flex-direction:column;gap:10px;height:auto;min-height:0;display:flex}.dcx-tile{grid-area:auto;grid-template-rows:auto;grid-template-columns:minmax(0,1fr) auto;align-content:center;align-items:center;gap:16px;min-height:clamp(72px,9svh,104px);padding:16px 20px}.dcx-tile-viz{width:44px;height:44px}.dcx-tile-title,.dcx-tile--typography .dcx-tile-title,.dcx-tile--iconography .dcx-tile-title{font-size:clamp(1.9rem,8vw,2.6rem)}.dcx-tile--product{order:1}.dcx-tile--audience{order:2}.dcx-tile--brand{order:3}.dcx-tile--color{order:4}.dcx-tile--typography{order:5}.dcx-tile--iconography{order:6}.dcx-tile--material{order:7}.dcx-tile--interface{order:8}.dcx-badge{display:none}.dcx-expander-inner{grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr}.dcx-sidebar{border-right:0;border-bottom:1px solid var(--ks-rule);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;padding:10px 12px;display:grid;overflow:hidden}.dcx-sidebar-brand{margin:0}.dcx-sidebar-brand-name,.dcx-nav-label{display:none}.dcx-nav{scrollbar-width:none;min-width:0;overflow-x:auto}.dcx-nav::-webkit-scrollbar{display:none}.dcx-nav-list{gap:4px;display:flex}.dcx-nav-link{white-space:nowrap;border-bottom:2px solid #0000;border-left:0;width:auto;padding:8px 10px}.dcx-nav-link[aria-current=page]{border-left-color:#0000;border-bottom-color:var(--accent)}.dcx-nav-list li.is-active .dcx-subnav{display:none}.dcx-panel{grid-template-rows:56px minmax(0,1fr)}.dcx-topbar{padding:0 16px}.dcx-article{padding:30px 18px 84px}.dcx-def{grid-template-columns:1fr;gap:4px}.dcx-fan{height:210px}.dcx-fan-info{flex-direction:column;align-items:flex-start;gap:4px;top:18px;left:16px;right:16px}.dcx-space-row{grid-template-columns:58px minmax(0,1fr) 70px}}.dcx-proof{border:1px solid var(--ks-rule);background:var(--panel-bg);padding:clamp(14px,2vw,22px)}.dcx-proof--board>.picker-preview{--pv-primary:var(--pkc-primary,var(--ks-champagne));--pv-secondary:var(--pkc-secondary,var(--ks-patina));--pv-tertiary:var(--pkc-tertiary,var(--ks-kinpaku));--pv-neutral:var(--pkc-neutral,var(--ks-lacquer-raised));--pv-n-ink:var(--pkc-n-ink,var(--ks-champagne));--pv-p-ink:var(--pkc-p-ink,var(--ks-champagne))}.dcx-proof--board[data-dcx-strategy=restrained]>.picker-preview{--pv-secondary:color-mix(in oklab, var(--pkc-neutral) 78%, var(--pkc-n-ink));--pv-tertiary:color-mix(in oklab, var(--pkc-neutral) 86%, var(--pkc-n-ink));--pv-t-ink:var(--pkc-n-ink);--pv-t-on-t:var(--pkc-n-ink);--pv-t-on-n:color-mix(in oklab, var(--pkc-n-ink) 62%, var(--pkc-neutral));--pv-t-on-p:var(--pkc-p-ink)}.dcx-proof--board[data-dcx-strategy=committed]>.picker-preview{--pv-neutral:color-mix(in oklab, var(--pkc-neutral) 95%, var(--pkc-primary));--pv-secondary:var(--pkc-primary);--pv-tertiary:var(--pkc-primary);--pv-t-ink:var(--pkc-p-ink);--pv-t-on-t:var(--pkc-p-on-p);--pv-t-on-n:var(--pkc-p-on-n);--pv-t-on-p:var(--pkc-p-on-p)}.dcx-proof--board[data-dcx-strategy=drenched]>.picker-preview{--pv-neutral:var(--pkc-primary);--pv-n-ink:var(--pkc-p-ink);--pv-primary:var(--pkc-p-ink);--pv-p-ink:var(--pkc-primary);--pv-p-on-n:var(--pkc-p-ink);--pv-p-on-p:var(--pkc-primary);--pv-secondary:var(--pkc-tertiary);--pv-tertiary:var(--pkc-tertiary);--pv-t-on-n:var(--pkc-t-on-p)}.dcx-proof--board>.picker-artboard{--pv-primary:var(--pkc-primary,var(--ks-champagne));--pv-secondary:var(--pkc-secondary,var(--ks-patina));--pv-tertiary:var(--pkc-tertiary,var(--ks-kinpaku));--pv-neutral:var(--pkc-neutral,var(--ks-lacquer-raised));--pv-n-ink:var(--pkc-n-ink,var(--ks-champagne));--pv-p-ink:var(--pkc-p-ink,var(--ks-champagne))}.dcx-proof--board[data-dcx-surface=persuade]>.picker-artboard :is(.ps-nav,.ps-editorial,.ps-footer){padding-right:var(--pvs-gutter-end)}.dcx-proof--board[data-dcx-surface=persuade]>.picker-artboard .ps-phone-body>.ps-image{clip-path:polygon(0 0, 100% 0, 100% calc(100% - var(--pvs-drift,0) * 16%), 0 100%)}.dcx-proof--board[data-dcx-strategy=committed]>.picker-artboard{--pvs-headline:color-mix(in oklab, var(--pv-primary) 80%, var(--pv-strong));--pvs-headline-text:var(--pv-p-on-n);--pvs-eyebrow:var(--pv-primary);--pvs-ghost:color-mix(in oklab, var(--pv-primary) 14%, var(--pv-neutral));--pvs-ghost-edge:var(--pv-primary);--pvs-image:var(--pv-primary);--pvs-image-a:var(--pv-primary);--pvs-image-b:color-mix(in oklab, var(--pv-primary) 72%, var(--pv-neutral));--pvs-image-edge:var(--pv-primary);--pvs-accent-a:var(--pv-primary);--pvs-accent-b:color-mix(in oklab, var(--pv-primary) 70%, var(--pv-neutral));--pvs-accent-c:var(--pv-primary);--pvs-accent-d:color-mix(in oklab, var(--pv-primary) 18%, var(--pv-neutral))}.dcx-proof--board[data-dcx-strategy=full-palette]>.picker-artboard{--pvs-headline:color-mix(in oklab, var(--pv-primary) 80%, var(--pv-strong));--pvs-headline-text:var(--pv-p-on-n);--pvs-accent-text:var(--pv-t-on-n);--pvs-eyebrow:var(--pv-tertiary);--pvs-ghost:color-mix(in oklab, var(--pv-secondary) 18%, var(--pv-neutral));--pvs-ghost-edge:var(--pv-secondary);--pvs-image:var(--pv-primary);--pvs-image-a:var(--pv-primary);--pvs-image-b:color-mix(in oklab, var(--pv-secondary) 32%, var(--pv-primary));--pvs-image-edge:var(--pv-primary);--pvs-signal:var(--pv-tertiary);--pvs-signal-ink:var(--pv-t-ink);--pvs-signal-text:var(--pv-t-on-t);--pvs-accent-a:var(--pv-secondary);--pvs-accent-b:color-mix(in oklab, var(--pv-secondary) 42%, var(--pv-neutral));--pvs-accent-c:var(--pv-primary);--pvs-accent-d:var(--pv-tertiary)}.dcx-proof--board[data-dcx-strategy=drenched]>.picker-artboard{--pvs-ground:var(--pv-primary);--pvs-ink:var(--pv-p-ink);--pvs-surface:color-mix(in oklab, var(--pv-p-ink) 10%, var(--pv-primary));--pvs-headline:var(--pv-p-ink);--pvs-eyebrow:color-mix(in oklab, var(--pv-p-ink) 70%, var(--pv-primary));--pvs-copy:color-mix(in oklab, var(--pv-p-ink) 55%, var(--pv-primary));--pvs-title:var(--pv-p-ink);--pvs-cta:var(--pv-p-ink);--pvs-cta-ink:var(--pv-primary);--pvs-cta-text:var(--pv-p-on-i);--pvs-mark-text:var(--pv-p-ink);--pvs-accent-text:var(--pv-t-on-p);--pvs-copy-mix:14%;--pvs-bars-mix:16%;--pvs-ghost:color-mix(in oklab, var(--pv-p-ink) 22%, var(--pv-primary));--pvs-ghost-edge:color-mix(in oklab, var(--pv-p-ink) 45%, var(--pv-primary));--pvs-image:color-mix(in oklab, var(--pv-p-ink) 20%, var(--pv-primary));--pvs-image-a:color-mix(in oklab, var(--pv-p-ink) 16%, var(--pv-primary));--pvs-image-b:color-mix(in oklab, var(--pv-p-ink) 28%, var(--pv-primary));--pvs-image-edge:color-mix(in oklab, var(--pv-p-ink) 40%, var(--pv-primary));--pvs-signal:var(--pv-tertiary);--pvs-signal-ink:var(--pv-t-ink);--pvs-signal-text:var(--pv-t-on-t);--pvs-bars:color-mix(in oklab, var(--pv-p-ink) 45%, var(--pv-primary));--pvs-rule:color-mix(in oklab, var(--pv-p-ink) 28%, var(--pv-primary));--pvs-accent-a:var(--pv-secondary);--pvs-accent-b:var(--pv-tertiary);--pvs-accent-c:color-mix(in oklab, var(--pv-p-ink) 30%, var(--pv-primary));--pvs-accent-d:color-mix(in oklab, var(--pv-p-ink) 14%, var(--pv-primary))}.dcx-proof--board[data-dcx-boundary=open-space]>.picker-artboard{--pvs-divider-w:0px;--pvs-band:transparent;--pvs-band-alt:transparent;--pvs-band-top:transparent;--pvs-panel:transparent;--pvs-panel-edge-w:0px;--pvs-panel-pad:0px;--pvs-proof-inset:0px}.dcx-proof--board[data-dcx-boundary=thin-dividers]>.picker-artboard{--pvs-divider-w:1px;--pvs-divider-c:color-mix(in oklab, var(--pvs-ink) 24%, var(--pvs-ground));--pvs-band:transparent;--pvs-band-alt:transparent;--pvs-band-top:transparent;--pvs-panel:transparent;--pvs-panel-edge-w:0px;--pvs-panel-pad:0px;--pvs-proof-inset:0px}.dcx-proof--board[data-dcx-boundary=surface-changes]>.picker-artboard{--pvs-divider-w:0px;--pvs-band:color-mix(in oklab, var(--pvs-ink) 7%, var(--pvs-ground));--pvs-band-alt:color-mix(in oklab, var(--pvs-ink) 13%, var(--pvs-ground));--pvs-band-top:color-mix(in oklab, var(--pvs-ink) 7%, var(--pvs-ground));--pvs-panel:transparent;--pvs-panel-edge-w:0px;--pvs-panel-pad:0px;--pvs-proof-inset:0px}.dcx-proof--board[data-dcx-boundary=cards-and-panels]>.picker-artboard{--pvs-divider-w:0px;--pvs-band:transparent;--pvs-band-alt:color-mix(in oklab, var(--pvs-ink) 5%, var(--pvs-ground));--pvs-band-top:transparent;--pvs-panel:color-mix(in oklab, var(--pvs-ink) 5%, var(--pvs-ground));--pvs-panel-edge:color-mix(in oklab, var(--pvs-ink) 20%, var(--pvs-ground));--pvs-panel-edge-w:1px;--pvs-panel-pad:5%;--pvs-proof-inset:var(--pvs-gutter)}.dcx-proof--board[data-dcx-boundary=cards-and-panels]>.picker-artboard .ps-ops-item{background-color:var(--pvs-panel)}.dcx-proof--board[data-dcx-corner=sharp]>.picker-artboard{--pvs-radius-frame:0px;--pvs-radius-frame-phone:0px;--pvs-radius-surface:0px;--pvs-radius-control:0px;--pvs-radius-bar:0px}.dcx-proof--board[data-dcx-corner=slightly-soft]>.picker-artboard{--pvs-radius-frame:4px;--pvs-radius-frame-phone:5px;--pvs-radius-surface:3px;--pvs-radius-control:3px;--pvs-radius-bar:2px}.dcx-proof--board[data-dcx-corner=friendly]>.picker-artboard{--pvs-radius-frame:7px;--pvs-radius-frame-phone:11px;--pvs-radius-surface:8px;--pvs-radius-control:8px;--pvs-radius-bar:3px}.dcx-proof--board[data-dcx-corner=pill]>.picker-artboard{--pvs-radius-frame:9px;--pvs-radius-frame-phone:15px;--pvs-radius-surface:12px;--pvs-radius-control:999px;--pvs-radius-bar:3px}.dcx-proof--board[data-dcx-depth=flat]>.picker-artboard{--pvs-shadow-chrome:none;--pvs-shadow-card:none;--pvs-shadow-control:none;--pvs-shadow-surface:none}.dcx-proof--board[data-dcx-depth=soft-lift]>.picker-artboard{--pvs-shadow-chrome:0 1px 2px #0000001a;--pvs-shadow-card:0 1px 1px #00000026, 0 3px 7px #00000024;--pvs-shadow-control:0 1px 2px #0000003d;--pvs-shadow-surface:0 2px 5px #00000024}.dcx-proof--board[data-dcx-depth=floating]>.picker-artboard{--pvs-shadow-chrome:0 2px 6px #00000029;--pvs-shadow-card:0 2px 3px #0003, 0 9px 18px #0000003d;--pvs-shadow-control:0 3px 6px #00000052;--pvs-shadow-surface:0 6px 14px #00000038}.dcx-proof--board[data-dcx-boundary=cards-and-panels]>.picker-artboard :is(.ps-gallery-item,.ps-desktop>.ps-proof),.dcx-proof--board[data-dcx-boundary=surface-changes]>.picker-artboard .ps-desktop>.ps-proof{box-shadow:var(--pvs-shadow-card)}.dcx-proof--board:not([data-dcx-boundary=cards-and-panels])>.picker-artboard .ps-gallery-item{box-shadow:none}.dcx-proof--board:not([data-dcx-boundary=cards-and-panels])>.picker-artboard .ps-gallery-item>i{box-shadow:var(--pvs-shadow-card)}.dcx-proof--board:not([data-dcx-boundary=surface-changes])>.picker-artboard :is(.ps-nav,.ps-phone-top),.dcx-proof--board:not([data-dcx-boundary=surface-changes])>.picker-artboard :is(.ps-ops-rail,.ps-docs-rail),.dcx-proof--board:not([data-dcx-boundary=surface-changes]):not([data-dcx-boundary=cards-and-panels])>.picker-artboard .ps-ops-panel,.dcx-proof--board:not([data-dcx-boundary=cards-and-panels])>.picker-artboard :is(.ps-ops-chart,.ps-ops-table){box-shadow:none}.dcx-proof--board:not([data-dcx-boundary=cards-and-panels])>.picker-artboard .ps-ops-plot>i{box-shadow:var(--pvs-shadow-card)}.dcx-proof--board:not([data-dcx-boundary=surface-changes])>.picker-artboard .ps-docs-note{box-shadow:none}.dcx-proof--board[data-dcx-boundary=surface-changes]>.picker-artboard .ps-index-row--flip{box-shadow:var(--pvs-shadow-card)}.dcx-proof--board[data-dcx-layout=simple-grid]>.picker-artboard{--pvs-gutter:6%;--pvs-gutter-end:6%;--pvs-hero-cols:var(--pvs-w6) minmax(0, 1fr);--pvs-hero-gap:var(--pvs-gut);--pvs-editorial-cols:var(--pvs-w4) minmax(0, 1fr);--pvs-editorial-gap:var(--pvs-gut);--pvs-gallery-cols:repeat(4, minmax(0, 1fr));--pvs-gallery-gap:calc(var(--pvs-gut) * 100 / 66.1333);--pvs-section-align:start;--pvs-rows:9.4% 45.5% 9% 27.8% 8.3%;--pvs-phone-gutter:7%;--pvs-phone-gallery-cols:1fr 1fr;--pvs-shell-cols:calc(var(--pvs-w2) + var(--pvs-gut) / 2) calc(var(--pvs-w7) + var(--pvs-gut)) minmax(0, 1fr);--pvs-measure-cols:calc(var(--pvs-w3) + var(--pvs-gut) / 2) minmax(0, 1fr);--pvs-metric-cols:repeat(3, minmax(0, 1fr));--pvs-entry-cols:var(--pvs-w6) minmax(0, 1fr);--pvs-entry-flip-cols:var(--pvs-w6) minmax(0, 1fr)}.dcx-proof--board[data-dcx-layout=simple-grid]>.picker-artboard .ps-index-row--flip>.ps-image{grid-area:1/1}.dcx-proof--board[data-dcx-layout=simple-grid]>.picker-artboard .ps-index-row--flip>.ps-index-cap{grid-area:1/2}.dcx-proof--board[data-dcx-layout=balanced]>.picker-artboard{--pvs-gutter:6%;--pvs-gutter-end:6%;--pvs-hero-cols:var(--pvs-w5) minmax(0, 1fr);--pvs-hero-gap:var(--pvs-gut);--pvs-editorial-cols:var(--pvs-w3) minmax(0, 1fr);--pvs-editorial-gap:var(--pvs-gut);--pvs-gallery-cols:23.8fr 15.3333fr 15.3333fr 15.3333fr;--pvs-gallery-gap:calc(var(--pvs-gut) * 100 / 74.6);--pvs-section-align:center;--pvs-rows:9.4% 50.6% 9% 22.7% 8.3%;--pvs-phone-gutter:6%;--pvs-phone-gallery-cols:1.35fr .85fr;--pvs-shell-cols:calc(var(--pvs-w2) + var(--pvs-gut) / 2) calc(var(--pvs-w8) + var(--pvs-gut)) minmax(0, 1fr);--pvs-measure-cols:calc(var(--pvs-w3) + var(--pvs-gut) / 2) calc(var(--pvs-w6) + var(--pvs-gut)) minmax(0, 1fr);--pvs-metric-cols:1.45fr 1fr 1fr;--pvs-entry-cols:var(--pvs-w7) minmax(0, 1fr);--pvs-entry-flip-cols:minmax(0, 1fr) var(--pvs-w7)}.dcx-proof--board[data-dcx-layout=freeform]>.picker-artboard{--pvs-gutter:6%;--pvs-gutter-end:6%;--pvs-hero-cols:var(--pvs-w5) minmax(0, 1fr);--pvs-hero-gap:var(--pvs-gut);--pvs-editorial-cols:var(--pvs-w3) minmax(0, 1fr);--pvs-editorial-gap:var(--pvs-gut);--pvs-gallery-cols:repeat(4, minmax(0, 1fr));--pvs-gallery-gap:calc(var(--pvs-gut) * 100 / 74.6);--pvs-section-align:start;--pvs-rows:9.4% 48% 8.4% 26.2% 8%;--pvs-phone-gutter:6%;--pvs-phone-gallery-cols:1.5fr .9fr;--pvs-drift:1;--pvs-entry-cols:var(--pvs-w7) minmax(0, 1fr);--pvs-entry-flip-cols:minmax(0, 1fr) var(--pvs-w7)}.dcx-proof--board[data-dcx-layout=freeform]>.picker-artboard .ps-desktop .ps-hero{padding:0;display:block;position:relative}.dcx-proof--board[data-dcx-layout=freeform]>.picker-artboard .ps-desktop .ps-hero>.ps-image{clip-path:polygon(40% 0,100% 0,100% 78%,66% 84%);height:100%;position:absolute;inset:0}.dcx-proof--board[data-dcx-layout=freeform]>.picker-artboard .ps-desktop .ps-hero>.ps-hero-copy{z-index:1;box-sizing:border-box;width:44%;height:100%;padding-left:var(--pvs-gutter,6%);align-content:center;position:relative}.dcx-proof--board[data-dcx-layout=freeform][data-dcx-surface=experience]>.picker-artboard .ps-index-row>.ps-image{rotate:-1.7deg}.dcx-proof--board[data-dcx-layout=freeform][data-dcx-surface=experience]>.picker-artboard .ps-index-row--flip>.ps-image{rotate:1.4deg}.dcx-proof--board[data-dcx-layout=freeform][data-dcx-surface=experience]>.picker-artboard .ps-index-cap{z-index:1;position:relative;translate:-9%}.dcx-proof--board[data-dcx-layout=freeform][data-dcx-surface=experience]>.picker-artboard .ps-index-row--flip>.ps-index-cap{translate:9%}.dcx-proof--scale>.picker-scale-sheet{grid-template-rows:none;row-gap:10px;height:auto}.dcx-proof--specimen>.picker-scale-specimen{height:auto;max-height:none;overflow:visible}.dcx-proof--icons>.picker-icon-sheet{background:0 0;border:0;height:auto}.dcx-proof--icons .picker-icon-cell{aspect-ratio:1}.dcx-surfaces{grid-template-columns:repeat(auto-fit,minmax(min(440px,100%),1fr));gap:clamp(18px,2.5vw,28px);display:grid}.dcx-surfaces[data-count="1"]{grid-template-columns:minmax(0,1fr)}.dcx-surface-card{flex-direction:column;gap:16px;min-width:0;display:flex}.dcx-surface-copy{padding:0 2px}.dcx-surface-name{font-family:var(--ks-font-display);letter-spacing:.01em;color:var(--ks-text);margin:0 0 8px;font-size:1.45rem;font-weight:300}.dcx-surface-name em{color:var(--accent);font-style:normal}.dcx-surface-goal{max-width:52ch;color:var(--ks-text-muted);margin:0 0 12px;font-size:.94rem;line-height:1.6}.dcx-default-mark{vertical-align:middle;border:1px solid var(--ks-rule);font-family:var(--ks-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ks-text-faint);margin-left:6px;padding:2px 8px;font-size:.62rem;display:inline-block}.dcx-cue{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start;gap:clamp(16px,2.5vw,30px);display:grid}@media (width<=760px){.dcx-cue{grid-template-columns:minmax(0,1fr)}}.dcx-cue-frame{border:1px solid var(--ks-rule);background:var(--panel-bg);margin:0;position:relative}.dcx-cue-frame img{width:100%;height:auto;display:block}.dcx-cue-dot{left:calc(var(--at-x,0) / var(--cue-w,1024) * 100%);top:calc(var(--at-y,0) / var(--cue-h,1024) * 100%);background:var(--dot-fill,var(--accent));border:2px solid var(--ks-champagne);width:16px;height:16px;box-shadow:0 1px 6px var(--shadow-color);transition:opacity .3s var(--ks-ease);border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.dcx-cue-frame:not([data-loaded=yes]) .dcx-cue-dot{opacity:0}.dcx-cue-card{border:1px solid var(--ks-rule);background:var(--panel-bg);flex-direction:column;gap:10px;padding:clamp(14px,2vw,22px);display:flex}.dcx-cue-tag{font-family:var(--ks-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ks-text-faint);font-size:.62rem}.dcx-cue-name{font-family:var(--ks-font-display);color:var(--ks-text);margin:0 0 4px;font-size:1.45rem;font-weight:300}.dcx-cue-role{grid-template-columns:14px minmax(0,1fr) auto auto;align-items:center;gap:10px;display:grid}.dcx-cue-role-dot{background:var(--dot-fill,var(--accent));border:1px solid var(--ks-rule);border-radius:50%;width:14px;height:14px}.dcx-cue-role-name{color:var(--ks-text-muted);font-size:.9rem}.dcx-cue-role code{font-family:var(--ks-mono);color:var(--ks-text-faint);white-space:nowrap;font-size:.78rem}.dcx-cue-strip{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:14px;display:grid}.dcx-cue-thumb{opacity:.6;filter:saturate(.7);margin:0}.dcx-cue-thumb img{border:1px solid var(--ks-rule);width:100%;height:auto;display:block}.dcx-cue-thumb figcaption{font-family:var(--ks-mono);letter-spacing:.08em;color:var(--ks-text-faint);margin-top:6px;font-size:.68rem}.dcx-marks,.dcx-boards{grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:clamp(16px,2.5vw,24px);display:grid}.dcx-mark{margin:0}.dcx-mark-pair{grid-template-columns:1fr 1fr;gap:10px;display:grid}.dcx-mark-chip{border:1px solid var(--ks-rule);background:var(--chip-ground,var(--ks-lacquer-raised));justify-content:center;align-items:center;min-height:128px;padding:18px;display:flex}.dcx-mark-chip img{max-width:70%;max-height:88px;display:block}.dcx-board{margin:0}.dcx-board-frame{border:1px solid var(--ks-rule);background:var(--panel-bg);display:block}.dcx-board-frame img{width:100%;height:auto;display:block}.dcx-asset-caption{margin-top:8px}.dcx-asset-caption code{font-family:var(--ks-mono);color:var(--ks-text-faint);font-size:.78rem}.dcx-asset-caption p{max-width:52ch;color:var(--ks-text-muted);margin:4px 0 0;font-size:.9rem;line-height:1.55}.dcx-swatches{gap:clamp(14px,2vw,20px);display:grid}.dcx-swatch{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center;gap:clamp(16px,2.5vw,30px);display:grid}.dcx-swatch-chip{border:1px solid var(--ks-rule);background:var(--swatch);min-height:128px;color:var(--swatch-ink);cursor:pointer;font:inherit;text-align:left;transition:transform .25s var(--ks-ease);align-items:flex-end;padding:14px 16px;display:flex;position:relative}.dcx-swatch-chip:hover{transform:translateY(-2px)}.dcx-swatch-chip:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.dcx-swatch-hex{font-family:var(--ks-mono);letter-spacing:.08em;font-size:.88rem}.dcx-swatch-copy-hint{font-family:var(--ks-mono);letter-spacing:.16em;text-transform:uppercase;opacity:0;transition:opacity .2s var(--ks-ease);font-size:.62rem;position:absolute;top:12px;right:14px}.dcx-swatch-chip:hover .dcx-swatch-copy-hint,.dcx-swatch-chip:focus-visible .dcx-swatch-copy-hint{opacity:.85}.dcx-swatch-meta h3{font-family:var(--ks-font-display);color:var(--ks-text);margin:0 0 6px;font-size:1.3rem;font-weight:300}.dcx-swatch-meta p{max-width:40ch;color:var(--ks-text-muted);margin:0 0 8px;font-size:.9rem;line-height:1.55}.dcx-swatch-meta code{font-family:var(--ks-mono);color:var(--ks-text-faint);font-size:.78rem}.dcx-ink-pair{align-items:center;gap:10px;margin-top:8px;display:flex}.dcx-ink-tag{font-family:var(--ks-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ks-text-faint);font-size:.62rem}.dcx-ink-sample{border:1px solid var(--ks-rule);background:var(--ink-ground);color:var(--ink-text);font-family:var(--ks-mono);letter-spacing:.08em;align-items:center;padding:4px 10px;font-size:.78rem;display:inline-flex}.dcx-swatch-provenance{font-family:var(--ks-mono);letter-spacing:.16em;text-transform:uppercase;opacity:.75;margin-left:auto;font-size:.62rem}.dcx-pair{grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:clamp(16px,2.5vw,26px);display:grid}.dcx-pair-card{border:1px solid var(--ks-rule);background:var(--panel-bg);padding:clamp(20px,3vw,32px)}.dcx-pair-role{font-family:var(--ks-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ks-text-faint);margin-bottom:14px;font-size:.66rem;display:block}.dcx-pair-name{color:var(--ks-text);text-wrap:balance;margin:0;font-size:clamp(2.1rem,4vw,3.2rem);line-height:1.1}.dcx-pair-source{font-family:var(--ks-mono);color:var(--ks-text-faint);margin-top:12px;font-size:.74rem;display:inline-block}.dcx-pair-why{max-width:62ch;color:var(--ks-text-muted);margin:18px 0 0;font-size:1.02rem;line-height:1.65}.dcx-scale-head{max-width:62ch;color:var(--ks-text-muted);margin:0 0 16px;font-size:.96rem;line-height:1.6}.dcx-scale-head strong{color:var(--ks-text);font-weight:500}.dcx-picks{grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:clamp(14px,2vw,22px);display:grid}.dcx-pick{border:1px solid var(--ks-rule);background:var(--panel-bg);padding:clamp(18px,2.5vw,26px)}.dcx-pick-surface{font-family:var(--ks-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ks-text-faint);margin-bottom:12px;font-size:.66rem;display:block}.dcx-pick-title{font-family:var(--ks-font-display);color:var(--ks-text);margin:0 0 8px;font-size:1.5rem;font-weight:300}.dcx-pick-desc{color:var(--ks-text-muted);margin:0;font-size:.92rem;line-height:1.6}.dcx-matrix{gap:8px;margin:0;display:grid}.dcx-matrix-row{border-bottom:1px solid color-mix(in oklab, var(--ks-rule) 60%, transparent);grid-template-columns:130px minmax(0,1fr);gap:12px;padding:8px 0;display:grid}.dcx-matrix-row dt{font-family:var(--ks-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ks-text-faint);align-self:center;font-size:.68rem}.dcx-matrix-row dd{color:var(--ks-text);margin:0;font-size:.95rem}@media (width<=920px){.dcx-swatch{grid-template-columns:1fr}.dcx-matrix-row{grid-template-columns:110px minmax(0,1fr)}}.dcx-edit,.dcx-request{border:1px solid var(--ks-rule);color:var(--ks-text-muted);font-family:var(--ks-mono);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:color .2s var(--ks-ease), border-color .2s var(--ks-ease);background:0 0;align-items:center;gap:8px;padding:7px 14px;font-size:.68rem;display:none}body.dcx-live .dcx-edit,body.dcx-live .dcx-request{display:inline-flex}.dcx-edit:hover,.dcx-request:hover{color:var(--accent);border-color:var(--accent)}.dcx-edit:focus-visible,.dcx-request:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dcx-pair-why+.dcx-edit{margin-top:18px}.dcx-topbar .dcx-request{margin-left:auto;margin-right:14px}.dcx-topbar{align-items:center;display:flex}.dcx-topbar .dcx-current{flex:1;min-width:0}.dcx-tray{z-index:600;gap:10px;width:min(340px,100vw - 44px);display:grid;position:fixed;bottom:22px;right:22px}.dcx-tray[hidden]{display:none}.dcx-tray-item{border:1px solid var(--ks-rule);background:var(--panel-bg);grid-template-columns:auto minmax(0,1fr);align-items:start;gap:12px;padding:12px 14px;display:grid;box-shadow:0 12px 32px #00000059}.dcx-tray-dot{background:var(--ks-text-faint);border-radius:50%;width:9px;height:9px;margin-top:5px}.dcx-tray-item[data-status=pending] .dcx-tray-dot{background:var(--ks-text-muted)}.dcx-tray-item[data-status=working] .dcx-tray-dot{background:var(--accent);animation:1.2s ease-in-out infinite dcx-tray-pulse}.dcx-tray-item[data-status=done] .dcx-tray-dot{background:var(--ks-patina,#7ba98f)}.dcx-tray-item[data-status=error] .dcx-tray-dot,.dcx-tray-item[data-status=offline] .dcx-tray-dot{background:#c26d5a}@keyframes dcx-tray-pulse{50%{opacity:.35}}.dcx-tray-prompt{color:var(--ks-text);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 3px;font-size:.86rem;line-height:1.4;display:-webkit-box;overflow:hidden}.dcx-tray-note{font-family:var(--ks-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ks-text-faint);margin:0;font-size:.66rem}.dcx-request-modal .dcx-request-prompt{resize:vertical;width:100%;min-height:96px}@media (prefers-reduced-motion:reduce){[class^=dcx-],[class^=dcx-]:before,[class^=dcx-]:after,[class*=\ dcx-],[class*=\ dcx-]:before,[class*=\ dcx-]:after{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.dcx-tile[data-reveal],.dcx-badge[data-reveal]{opacity:1;transform:none}}.dcx-proof--board>.picker-preview{aspect-ratio:1.865;--pv-primary:var(--pkc-primary,var(--ks-champagne));--pv-secondary:var(--pkc-secondary,var(--ks-patina));--pv-tertiary:var(--pkc-tertiary,var(--ks-kinpaku));--pv-neutral:var(--pkc-neutral,var(--ks-lacquer-raised));--pv-n-ink:var(--pkc-n-ink,var(--ks-champagne));--pv-p-ink:var(--pkc-p-ink,var(--ks-champagne));--derived-rule:color-mix(in oklab, var(--pv-strong) 24%, var(--pv-neutral));--derived-band:color-mix(in oklab, var(--pv-strong) 7%, var(--pv-neutral));--derived-band-alt:color-mix(in oklab, var(--pv-strong) 13%, var(--pv-neutral));--derived-panel:color-mix(in oklab, var(--pv-strong) 5%, var(--pv-neutral));--derived-panel-edge:color-mix(in oklab, var(--pv-strong) 20%, var(--pv-neutral));grid-row:2;width:100%}.dcx-proof--board>.picker-preview:not([data-surface=persuade]){--pv-secondary:color-mix(in oklab, var(--pkc-neutral) 78%, var(--pkc-n-ink));--pv-tertiary:color-mix(in oklab, var(--pkc-neutral) 86%, var(--pkc-n-ink));--pv-t-ink:var(--pkc-n-ink);--pv-t-on-t:var(--pkc-n-ink);--pv-t-on-n:color-mix(in oklab, var(--pkc-n-ink) 62%, var(--pkc-neutral));--pv-t-on-p:var(--pkc-p-ink)}.dcx-proof--board>.picker-preview.picker-preview--docs{--pd-quote:var(--pd-ink)}.dcx-proof--board>.picker-preview.picker-preview--docs :is(.pd-note-dot,.pd-note-lines i){background:var(--pd-ink)}.dcx-proof--board>.picker-preview:is(.picker-preview--ops,.picker-preview--gallery) .pv-desktop{--pv-text:1.35}.dcx-proof--board>.picker-preview.picker-preview--docs{--pv-text:1.65}.dcx-proof--board>.picker-preview.picker-preview--docs .pd-item i{width:calc(4.07 * var(--pv-x))}.dcx-proof--board>.picker-preview.picker-preview--docs .pd-item span{height:calc(1.53 * var(--pv-text) * var(--pv-x))}.dcx-proof--board>.picker-preview.picker-preview--docs .pd-para i{height:calc(1.35 * var(--pv-text) * var(--pv-x))}.dcx-proof--board>.picker-preview.picker-preview--docs .pd-note-dot{width:calc(4.07 * var(--pv-x))}.dcx-proof--board>.picker-preview.picker-preview--docs .pd-note-lines i{height:calc(1 * var(--pv-text) * var(--pv-x))}.dcx-proof--board>.picker-preview.picker-preview--docs .pd-phone-body .pd-para i{height:calc(1.37 * var(--pv-text) * var(--pv-x))}.dcx-proof--board>.picker-preview.picker-preview--docs .pd-phone-body .pd-note-lines i{height:calc(.83 * var(--pv-text) * var(--pv-x))}.dcx-proof--board>.picker-preview.picker-preview--docs .pd-phone-body .pd-heading{height:calc(2.53 * var(--pv-text) * var(--pv-x))}.dcx-proof--board>.picker-preview.picker-preview--docs .pd-phone-body .pd-note-dot{width:calc(2.64 * var(--pv-text) * var(--pv-x))}.dcx-proof--board>.picker-preview--gallery .pv-desktop .pg-cap{gap:2.6cqh;padding-top:5.2cqh}.dcx-proof--board>.picker-preview--gallery .pv-desktop .pg-cap:before{content:"";width:calc(11.5 * var(--pv-x));aspect-ratio:1;border:1px solid color-mix(in oklab, var(--pv-secondary) 55%, var(--pv-neutral));background:linear-gradient(135deg, color-mix(in oklab, var(--pv-secondary) 24%, var(--pv-neutral)), color-mix(in oklab, var(--pv-secondary) 46%, var(--pv-neutral)));border-radius:50%;display:block}:is(.picker-screen[data-screen="09"],.picker-screen[data-screen="10"]) .picker-board-stage>.picker-preview .pv-phone .po-field>.po-chev{align-self:center;transform:translateY(-25%)rotate(45deg)}.dcx-proof--board[data-dcx-boundary=open-space]>.picker-preview :is(.pv-nav,.po-side,.po-main,.pd-side),#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=open-space]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview :is(.pv-nav,.po-side,.po-main,.pd-side){border-color:#0000!important}.dcx-proof--board[data-dcx-boundary=open-space]>.picker-preview :is(.po-divider,.pg-row--flip,.pg-rail),#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=open-space]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview :is(.po-divider,.pg-row--flip,.pg-rail){box-shadow:none!important;border-color:#0000!important}.dcx-proof--board[data-dcx-boundary=open-space]>.picker-preview .po-divider,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=open-space]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview .po-divider{background:0 0!important}.dcx-proof--board[data-dcx-boundary=thin-dividers]>.picker-preview:is(.picker-preview--ops,.picker-preview--docs,.picker-preview--gallery) .pv-nav,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=thin-dividers]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview:is(.picker-preview--ops,.picker-preview--docs,.picker-preview--gallery) .pv-nav{border-bottom:1px solid var(--derived-rule)!important}.dcx-proof--board[data-dcx-boundary=thin-dividers]>.picker-preview :is(.po-side,.po-main,.pd-side),#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=thin-dividers]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview :is(.po-side,.po-main,.pd-side){border-right:1px solid var(--derived-rule)!important}.dcx-proof--board[data-dcx-boundary=thin-dividers]>.picker-preview .po-divider,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=thin-dividers]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview .po-divider{background:var(--derived-rule)!important}.dcx-proof--board[data-dcx-boundary=thin-dividers]>.picker-preview .po-row+.po-row,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=thin-dividers]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview .po-row+.po-row,.dcx-proof--board[data-dcx-boundary=thin-dividers]>.picker-preview:not([data-surface=experience]) .pg-row--flip,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=thin-dividers]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview:not([data-surface=experience]) .pg-row--flip{box-shadow:inset 0 1px 0 var(--derived-rule)}.dcx-proof--board[data-dcx-boundary=thin-dividers]>.picker-preview:not([data-surface=experience]) .pg-rail,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=thin-dividers]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview:not([data-surface=experience]) .pg-rail{border-top:1px solid var(--derived-rule)}.dcx-proof--board[data-dcx-boundary=thin-dividers]>.picker-preview[data-surface=experience] .pg-row--flip,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=thin-dividers]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=experience] .pg-row--flip{position:relative;box-shadow:none!important;margin-top:10cqh!important}.dcx-proof--board[data-dcx-boundary=thin-dividers]>.picker-preview[data-surface=experience] .pg-row--flip:before,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=thin-dividers]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=experience] .pg-row--flip:before{content:"";background:var(--derived-rule);height:1px;position:absolute;top:-5cqh;left:0;right:0}.dcx-proof--board[data-dcx-boundary=thin-dividers]>.picker-preview[data-surface=experience] .pg-rail,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=surface-changes]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=experience] .pg-rail{border-top:0!important}.dcx-proof--board[data-dcx-boundary=thin-dividers]>.picker-preview[data-surface=experience] .pg-phone-body>.pg-cap+.pv-image,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=thin-dividers]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=experience] .pg-phone-body>.pg-cap+.pv-image{overflow:visible;margin-top:8cqh!important}.dcx-proof--board[data-dcx-boundary=thin-dividers]>.picker-preview[data-surface=experience] .pg-phone-body>.pg-cap+.pv-image:before,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=thin-dividers]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=experience] .pg-phone-body>.pg-cap+.pv-image:before{content:"";background:var(--derived-rule);height:1px;position:absolute;top:-4cqh;left:0;right:0}.dcx-proof--board[data-dcx-boundary=surface-changes]>.picker-preview[data-surface=experience] .pg-row--flip,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=surface-changes]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=experience] .pg-row--flip{box-shadow:none!important;background:color-mix(in oklab, var(--derived-band-alt) 60%, white 40%)!important;margin-top:5cqh!important;padding-block:5cqh!important}.dcx-proof--board[data-dcx-boundary=surface-changes]>.picker-preview[data-surface=experience] .pg-phone-body>.pg-cap+.pv-image,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=surface-changes]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=experience] .pg-phone-body>.pg-cap+.pv-image{margin-top:8cqh!important}.dcx-proof--board[data-dcx-boundary=surface-changes]>.picker-preview[data-surface=experience] .pg-phone-body,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=surface-changes]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=experience] .pg-phone-body{background:linear-gradient(to bottom, transparent 0 50%, color-mix(in oklab, var(--derived-band-alt) 60%, white 40%) 50% 100%)!important}.dcx-proof--board[data-dcx-boundary=surface-changes]>.picker-preview[data-surface=experience] .pv-phone .pv-tabbar,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=surface-changes]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=experience] .pv-phone .pv-tabbar{background:color-mix(in oklab, var(--derived-band-alt) 60%, white 40%)!important}.dcx-proof--board[data-dcx-boundary=surface-changes]>.picker-preview :is(.pv-nav,.po-side,.po-main,.pd-side),#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=surface-changes]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview :is(.pv-nav,.po-side,.po-main,.pd-side){border-color:#0000!important}.dcx-proof--board[data-dcx-boundary=surface-changes]>.picker-preview :is(.pv-nav,.pv-phone-top,.pv-tabbar),#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=surface-changes]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview :is(.pv-nav,.pv-phone-top,.pv-tabbar),.dcx-proof--board[data-dcx-boundary=surface-changes]>.picker-preview :is(.po-side,.po-panel,.pd-side),#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=surface-changes]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview :is(.po-side,.po-panel,.pd-side){background:var(--derived-band)!important}.dcx-proof--board[data-dcx-boundary=surface-changes]>.picker-preview:not([data-surface=experience]) :is(.pd-note,.pg-row--flip),#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=surface-changes]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview:not([data-surface=experience]) :is(.pd-note,.pg-row--flip){background:var(--derived-band-alt)!important}.dcx-proof--board[data-dcx-boundary=surface-changes]>.picker-preview .po-divider,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=surface-changes]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview .po-divider{background:0 0!important}.dcx-proof--board[data-dcx-boundary=cards-and-panels]>.picker-preview :is(.pv-nav,.po-side,.po-main),#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=cards-and-panels]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview :is(.pv-nav,.po-side,.po-main){border-color:#0000!important}.dcx-proof--board[data-dcx-boundary=cards-and-panels]>.picker-preview .po-divider,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=cards-and-panels]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview .po-divider{background:0 0!important}.dcx-proof--board[data-dcx-boundary=cards-and-panels]>.picker-preview :is(.po-side,.po-chart,.po-rows,.po-panel,.po-phone-body .po-chart,.po-phone-body .po-field,.po-phone-body .po-prow),#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=cards-and-panels]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview :is(.po-side,.po-chart,.po-rows,.po-panel,.po-phone-body .po-chart,.po-phone-body .po-field,.po-phone-body .po-prow){border-radius:3px;background:var(--derived-panel)!important;border:1px solid var(--derived-panel-edge)!important}.dcx-proof--board[data-dcx-boundary=cards-and-panels]>.picker-preview .po-chart,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=cards-and-panels]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview .po-chart{padding-inline:calc(3 * var(--pv-x))}.dcx-proof--board[data-dcx-boundary=cards-and-panels]>.picker-preview[data-surface=operate] .pv-desktop .po-chart,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=cards-and-panels]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=operate] .pv-desktop .po-chart{padding:calc(3 * var(--pv-x)) calc(5 * var(--pv-x))!important}.dcx-proof--board[data-dcx-boundary=cards-and-panels]>.picker-preview[data-surface=operate] .pv-phone .po-toggle,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=cards-and-panels]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=operate] .pv-phone .po-toggle{margin-left:auto!important;margin-right:12px!important;padding-right:12px!important}.dcx-proof--board[data-dcx-boundary=cards-and-panels]>.picker-preview[data-surface=operate] .pv-phone .po-prow,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=cards-and-panels]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=operate] .pv-phone .po-prow{padding-left:12px!important}.dcx-proof--board[data-dcx-boundary=cards-and-panels]>.picker-preview[data-surface=operate] .pv-phone .po-field>.po-chev,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=cards-and-panels]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview[data-surface=operate] .pv-phone .po-field>.po-chev{align-self:center!important;transform:translateY(-25%)rotate(45deg)!important}.dcx-proof--board[data-dcx-boundary=cards-and-panels]>.picker-preview .po-rows,#picker-form:not(:has(.picker-strategy-option:hover input[name=boundary-style])):has(input[name=boundary-style][value=cards-and-panels]:checked) .picker-screen[data-screen="08"] .picker-board-stage>.picker-preview .po-rows{padding-inline:calc(2 * var(--pv-x))}.dcx-proof--board[data-dcx-corner=sharp],#picker-form:not(:has(.picker-strategy-option:hover input[name=corner-style])):has(input[name=corner-style][value=sharp]:checked) .dcx-proof--board{--derived-frame-radius:0px;--derived-phone-radius:0px;--derived-surface-radius:0px;--derived-control-radius:0px;--derived-bar-radius:0px}.dcx-proof--board[data-dcx-corner=slightly-soft],#picker-form:not(:has(.picker-strategy-option:hover input[name=corner-style])):has(input[name=corner-style][value=slightly-soft]:checked) .dcx-proof--board{--derived-frame-radius:4px;--derived-phone-radius:5px;--derived-surface-radius:3px;--derived-control-radius:3px;--derived-bar-radius:2px}.dcx-proof--board[data-dcx-corner=friendly],#picker-form:not(:has(.picker-strategy-option:hover input[name=corner-style])):has(input[name=corner-style][value=friendly]:checked) .dcx-proof--board{--derived-frame-radius:7px;--derived-phone-radius:11px;--derived-surface-radius:8px;--derived-control-radius:8px;--derived-bar-radius:3px}.dcx-proof--board[data-dcx-corner=pill],#picker-form:not(:has(.picker-strategy-option:hover input[name=corner-style])):has(input[name=corner-style][value=pill]:checked) .dcx-proof--board{--derived-frame-radius:9px;--derived-phone-radius:15px;--derived-surface-radius:12px;--derived-control-radius:999px;--derived-bar-radius:3px}.dcx-proof--board>.picker-preview .pv-desktop{border-radius:var(--derived-frame-radius)!important}.dcx-proof--board>.picker-preview .pv-phone{border-radius:var(--derived-phone-radius)!important}.dcx-proof--board>.picker-preview :is(.pv-image,.pv-mini-card,.po-chart,.po-rows,.po-panel,.pg-row){border-radius:var(--derived-surface-radius)!important}.dcx-proof--board>.picker-preview .pd-note{border-radius:0 var(--derived-surface-radius) var(--derived-surface-radius) 0!important}.dcx-proof--board>.picker-preview :is(.pv-pill,.pv-actions i,.po-item--on,.po-field,.po-row,.po-toggle),.dcx-proof--board>.picker-preview .po-toggle:after{border-radius:var(--derived-control-radius)!important}.dcx-proof--board>.picker-preview :is(.pv-nav-bars i,.pv-eyebrow,.pv-headline i,.pv-copy-bar,.po-line,.po-cell,.po-heading,.po-label,.pd-item span,.pd-heading,.pd-para i,.pd-note-lines i,.pg-cap i,.pg-track i){border-radius:var(--derived-bar-radius)!important}.dcx-proof--board[data-dcx-depth=flat],#picker-form:not(:has(.picker-strategy-option:hover input[name=depth-style])):has(input[name=depth-style][value=flat]:checked) .dcx-proof--board{--derived-shadow-chrome:none;--derived-shadow-card:none;--derived-shadow-control:none;--derived-shadow-surface:none}.dcx-proof--board[data-dcx-depth=soft-lift],#picker-form:not(:has(.picker-strategy-option:hover input[name=depth-style])):has(input[name=depth-style][value=soft-lift]:checked) .dcx-proof--board{--derived-shadow-chrome:0 1px 2px #00000014;--derived-shadow-card:0 2px 4px #0000001a;--derived-shadow-control:0 1px 2px #0000001a;--derived-shadow-surface:0 2px 4px #0000001a}.dcx-proof--board[data-dcx-depth=floating],#picker-form:not(:has(.picker-strategy-option:hover input[name=depth-style])):has(input[name=depth-style][value=floating]:checked) .dcx-proof--board{--derived-shadow-chrome:0 1px 3px #0000001a;--derived-shadow-card:0 4px 8px #00000024;--derived-shadow-control:0 2px 4px #0000001f;--derived-shadow-surface:0 4px 8px #00000024}.dcx-proof--board>.picker-preview :is(.pv-nav,.pv-phone-top){box-shadow:var(--derived-shadow-chrome)!important}.dcx-proof--board>.picker-preview :is(.pv-pill,.pv-actions i,.po-item--on,.po-field,.po-toggle){box-shadow:var(--derived-shadow-control)!important}.dcx-proof--board>.picker-preview :is(.pv-image,.pv-mini-card,.pd-note),.dcx-proof--board>.picker-preview .pg-cap:before{box-shadow:var(--derived-shadow-card)!important}.dcx-proof--board>.picker-preview :is(.po-chart i,.po-side,.po-panel){box-shadow:var(--derived-shadow-surface)!important}.dcx-proof--board>.picker-preview[data-surface=persuade]{--pv-secondary:var(--pkc-secondary);--pv-tertiary:var(--pkc-tertiary);--pv-bone:color-mix(in oklab, var(--pkc-p-ink) 55%, var(--pkc-primary));--pv-strong:var(--pkc-p-ink);--pv-secondary-wash:color-mix(in oklab, var(--pkc-p-ink) 16%, var(--pkc-primary))}.dcx-proof--board>.picker-preview[data-surface=persuade] .pv-desktop .pv-image{background:linear-gradient(135deg, color-mix(in oklab, var(--pkc-p-ink) 16%, var(--pkc-primary)), color-mix(in oklab, var(--pkc-secondary) 34%, var(--pkc-primary)))!important;border-color:color-mix(in oklab, var(--pkc-secondary) 52%, var(--pkc-primary))!important}.dcx-proof--board>.picker-preview[data-surface=persuade] .pv-desktop .pv-image:after{background:var(--pkc-tertiary)!important}.dcx-proof--board>.picker-preview[data-surface=persuade] .pv-desktop .pv-actions i:last-child{border-color:color-mix(in oklab, var(--pkc-secondary) 68%, var(--pkc-p-ink))!important;background:color-mix(in oklab, var(--pkc-secondary) 18%, var(--pkc-primary))!important}.dcx-proof--board>.picker-preview[data-surface=persuade] .pv-desktop .pv-nav-bars i:nth-child(2){background:color-mix(in oklab, var(--pkc-secondary) 72%, var(--pkc-p-ink))!important}.dcx-audience{--dcx-audience-icon-size:100px}.dcx-audience>.dcx-audience-hero{margin-bottom:clamp(48px,6vw,76px)}.dcx-audience .dcx-audience-section{margin-top:0;margin-bottom:clamp(48px,6vw,76px);scroll-margin-top:18px}.dcx-audience .dcx-audience-section:last-child{margin-bottom:0}.dcx-audience .dcx-audience-section-head{grid-template-columns:minmax(0, 1fr) var(--dcx-audience-icon-size);align-items:center;gap:clamp(24px,4vw,44px);margin-bottom:18px;display:grid}.dcx-audience .dcx-audience-section-heading{min-width:0}.dcx-audience .dcx-audience-section-title{color:var(--ks-champagne);font-family:var(--ks-font);letter-spacing:0;text-wrap:balance;margin:0;font-size:1.5rem;font-weight:650;line-height:1.25}.dcx-audience .dcx-audience-section-lede{max-width:52ch;color:var(--ks-text-muted);margin:10px 0 0;font-size:.95rem;line-height:1.6}.dcx-audience .dcx-audience-section-icon{width:var(--dcx-audience-icon-size);height:var(--dcx-audience-icon-size);background:0 0;border:0;margin:0;padding:0}.dcx-audience .dcx-audience-section-icon img{object-fit:contain;width:100%;height:100%;display:block}.dcx-audience .dcx-audience-section--people .dcx-defs{border-top:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.dcx-audience .dcx-audience-section--people .dcx-def{background:var(--panel-bg);border:1px solid #0000;border-radius:8px;min-width:0;padding:18px 20px 20px;display:block}.dcx-audience .dcx-audience-section--people .dcx-def dt{color:var(--ks-champagne);font-size:1.05rem;font-weight:600;line-height:1.35}.dcx-audience .dcx-audience-section--people .dcx-def dd{color:var(--ks-text-muted);text-wrap:pretty;margin-top:9px;font-size:.92rem;line-height:1.58}.dcx-audience .dcx-audience-journey{grid-template-columns:minmax(0,1fr) 30px minmax(0,1fr);align-items:stretch;gap:12px;display:grid}.dcx-audience .dcx-audience-journey .dcx-callout{background:var(--panel-bg);border:1px solid #0000;border-radius:8px;min-width:0;padding:18px 20px 20px}.dcx-audience .dcx-audience-journey .dcx-callout+.dcx-callout{margin-top:0}.dcx-audience .dcx-audience-journey-arrow{color:var(--accent);font-family:var(--ks-mono);place-items:center;font-size:1rem;display:grid}.dcx-audience .dcx-audience-list{counter-reset:dcx-audience-item;gap:12px;margin:0;padding:0;list-style:none;display:grid}.dcx-audience .dcx-audience-list li{counter-increment:dcx-audience-item;background:var(--panel-bg);min-width:0;color:var(--ks-text);text-wrap:pretty;border:1px solid #0000;border-radius:8px;grid-template-columns:32px minmax(0,1fr);align-items:baseline;gap:12px;padding:18px 20px;font-size:.96rem;line-height:1.6;display:grid;position:static}.dcx-audience .dcx-audience-list li:before{content:counter(dcx-audience-item, decimal-leading-zero);width:auto;height:auto;color:var(--accent);font-family:var(--ks-mono);letter-spacing:.1em;background:0 0;font-size:.72rem;position:static}@media (width<=620px){.dcx-audience .dcx-audience-section-head{gap:18px}.dcx-audience .dcx-audience-section--people .dcx-defs,.dcx-audience .dcx-audience-journey{grid-template-columns:1fr}.dcx-audience .dcx-audience-journey-arrow{justify-content:start;height:22px;padding-left:20px;transform:rotate(90deg)}}@media (width<=430px){.dcx-audience .dcx-audience-section-head{gap:14px}.dcx-audience .dcx-audience-section-title{font-size:1.3rem}.dcx-audience .dcx-audience-list li{grid-template-columns:26px minmax(0,1fr);padding:16px}}@media (prefers-reduced-motion:reduce){.dcx-audience *,.dcx-audience :before,.dcx-audience :after{transition-duration:.001ms!important;transition-delay:0s!important}}.dcx-detail-article{--dcx-detail-icon-size:100px}.dcx-detail-article>.dcx-detail-hero{margin-bottom:clamp(48px,6vw,76px)}.dcx-detail-article .dcx-detail-section{margin-top:0;margin-bottom:clamp(56px,7vw,88px);scroll-margin-top:18px}.dcx-detail-article .dcx-detail-section:last-child{margin-bottom:0}.dcx-detail-article .dcx-detail-section-head{grid-template-columns:minmax(0,1fr) minmax(80px,150px);align-items:center;gap:clamp(24px,4vw,44px);margin-bottom:20px;display:grid}.dcx-detail-article .dcx-detail-section-head--with-icon{grid-template-columns:minmax(0, 1fr) var(--dcx-detail-icon-size)}.dcx-detail-article .dcx-detail-section-head:not(.dcx-detail-section-head--with-icon):after{content:"";border-inline-end:46px solid var(--accent);background:color-mix(in oklch, var(--ks-patina) 72%, transparent);opacity:.72;width:100%;height:1px}.dcx-detail-article .dcx-detail-section-heading{min-width:0}.dcx-detail-article .dcx-detail-section-title{color:var(--ks-champagne);font-family:var(--ks-font);letter-spacing:0;text-wrap:balance;margin:0;font-size:1.5rem;font-weight:650;line-height:1.25}.dcx-detail-article .dcx-detail-section-lede{max-width:54ch;color:var(--ks-text-muted);text-wrap:pretty;margin:10px 0 0;font-size:.95rem;line-height:1.6}.dcx-detail-article .dcx-detail-section-icon{width:var(--dcx-detail-icon-size);height:var(--dcx-detail-icon-size);background:0 0;border:0;margin:0;padding:0}.dcx-detail-article .dcx-detail-section-icon img{object-fit:contain;width:100%;height:100%;display:block}.dcx-detail-article .dcx-detail-section-body{min-width:0}.dcx-detail-article :is(.dcx-callout,.dcx-voice-cell,.dcx-ref-card,.dcx-pick,.dcx-pair-card,.dcx-proof,.dcx-cue-card,.dcx-empty){background:var(--panel-bg);border-color:#0000;border-radius:8px}.dcx-detail-article .dcx-purpose{grid-template-columns:minmax(0,1fr);gap:0}.dcx-detail-article .dcx-purpose-main{min-width:0}.dcx-detail-article .dcx-purpose .dcx-callout{grid-template-columns:minmax(0,1fr) auto;align-items:baseline;column-gap:18px;display:grid}.dcx-detail-article .dcx-purpose .dcx-callout>:not(.dcx-callout-name,.dcx-platform-pill){grid-column:1/-1}.dcx-detail-article .dcx-platform-pill{color:var(--ks-text-faint);background:0 0;border:0;border-radius:0;justify-self:end;margin:0;padding:0}.dcx-detail-article .dcx-detail-list{counter-reset:dcx-detail-item;gap:12px;margin:0;padding:0;list-style:none;display:grid}.dcx-detail-article .dcx-detail-list li{counter-increment:dcx-detail-item;background:var(--panel-bg);min-width:0;color:var(--ks-text);text-wrap:pretty;border:0;border-radius:8px;grid-template-columns:32px minmax(0,1fr);align-items:baseline;gap:12px;padding:18px 20px;font-size:.96rem;line-height:1.6;display:grid;position:static}.dcx-detail-article .dcx-detail-list li:before{content:counter(dcx-detail-item, decimal-leading-zero);width:auto;height:auto;color:var(--accent);font-family:var(--ks-mono);letter-spacing:.1em;background:0 0;font-size:.72rem;position:static}.dcx-detail-article .dcx-principles,.dcx-detail-article .dcx-principles--cols{counter-reset:principle;border:0;grid-template-columns:1fr;gap:12px;margin:0;padding:0;display:grid}.dcx-detail-article .dcx-principles--cols{grid-template-columns:repeat(2,minmax(0,1fr))}.dcx-detail-article .dcx-principles li{background:var(--panel-bg);min-width:0;color:var(--ks-text-muted);text-wrap:pretty;border:0;border-radius:8px;grid-template-columns:32px minmax(0,1fr);align-items:start;gap:12px;padding:18px 20px;font-size:.94rem;line-height:1.6;display:grid}.dcx-detail-article .dcx-principles li:before{color:var(--accent);letter-spacing:.1em;padding-top:.1em;font-size:.72rem}.dcx-detail-article .dcx-detail-principle-copy{min-width:0}.dcx-detail-article .dcx-detail-principle-copy strong{color:var(--ks-champagne);margin-bottom:5px;font-size:1rem;line-height:1.4;display:block}.dcx-detail-article .dcx-detail-defs{border:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;display:grid}.dcx-detail-article .dcx-detail-defs .dcx-def{background:var(--panel-bg);border:0;border-radius:8px;min-width:0;padding:18px 20px 20px;display:block}.dcx-detail-article .dcx-detail-defs .dcx-def dt{color:var(--ks-champagne);font-size:1rem}.dcx-detail-article .dcx-detail-defs .dcx-def dd{text-wrap:pretty;margin-top:8px}.dcx-detail-article .dcx-voice,.dcx-detail-article .dcx-voice-pair{gap:12px}.dcx-detail-article .dcx-ref-cards,.dcx-detail-article .dcx-picks,.dcx-detail-article .dcx-pair,.dcx-detail-article .dcx-surfaces{gap:clamp(16px,2.5vw,26px)}.dcx-detail-article--brand .dcx-brand-assets-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(18px,2.5vw,26px);margin:0;padding:0;list-style:none;display:grid}.dcx-detail-article--brand .dcx-brand-asset,.dcx-detail-article--brand .dcx-brand-asset figure{min-width:0;margin:0}.dcx-detail-article--brand .dcx-brand-asset figure{gap:12px;display:grid}.dcx-detail-article--brand .dcx-brand-asset-frame{aspect-ratio:4/3;border:1px solid var(--ks-rule);background:var(--panel-bg);border-radius:8px;place-items:center;min-width:0;display:grid;position:relative;overflow:hidden}.dcx-detail-article--brand .dcx-brand-asset[data-asset-kind=logo] .dcx-brand-asset-frame{background-color:var(--panel-bg);background-image:linear-gradient(to right, var(--ks-rule) 1px, transparent 1px), linear-gradient(to bottom, var(--ks-rule) 1px, transparent 1px);background-size:40px 40px}.dcx-detail-article--brand .dcx-brand-asset-frame img{z-index:1;display:block;position:relative}.dcx-detail-article--brand .dcx-brand-asset[data-asset-kind=logo] img{object-fit:contain;width:72%;height:72%}.dcx-detail-article--brand .dcx-brand-asset:not([data-asset-kind=logo]) img{object-fit:cover;width:100%;height:100%}.dcx-detail-article--brand .dcx-brand-asset figcaption{justify-content:space-between;align-items:baseline;gap:16px;min-width:0;padding:0 2px;display:flex}.dcx-detail-article--brand .dcx-brand-asset figcaption strong{min-width:0;color:var(--ks-text);font-family:var(--ks-font);overflow-wrap:anywhere;font-size:1rem;font-weight:600;line-height:1.4}.dcx-detail-article--brand .dcx-brand-asset figcaption span{color:var(--ks-text-faint);font-family:var(--ks-mono);letter-spacing:.14em;text-transform:uppercase;flex:none;font-size:.66rem;line-height:1.45}.dcx-detail-article .dcx-ref-card,.dcx-detail-article .dcx-pick,.dcx-detail-article .dcx-pair-card{padding:clamp(18px,2.5vw,26px)}.dcx-detail-article .dcx-pick{grid-template-columns:minmax(7rem,.65fr) minmax(0,1.35fr);grid-template-areas:"surface title""surface description";align-content:start;gap:7px clamp(18px,2.5vw,28px);display:grid}.dcx-detail-article .dcx-pick-surface{grid-area:surface;align-self:start;margin:4px 0 0}.dcx-detail-article .dcx-pick-title{font-family:var(--ks-font);grid-area:title;margin:0;font-size:1.05rem;font-weight:600;line-height:1.35}.dcx-detail-article .dcx-pick-desc{color:var(--ks-text);text-wrap:pretty;grid-area:description;font-size:.95rem;line-height:1.58}@media (width<=620px){.dcx-detail-article .dcx-pick{grid-template-columns:minmax(0,1fr);grid-template-areas:"surface""title""description";row-gap:8px}.dcx-detail-article .dcx-pick-surface{margin-top:0}}.dcx-detail-article .dcx-surface-card{gap:18px}.dcx-detail-article .dcx-surface-copy{padding:0 clamp(14px,2vw,22px) 4px}.dcx-detail-article .dcx-surface-name{color:var(--ks-champagne);font-family:var(--ks-font);font-size:1.15rem;font-weight:600;line-height:1.4}.dcx-detail-article .dcx-proof--board,.dcx-detail-article .dcx-cue-frame{border-color:#0000;border-radius:8px;overflow:hidden}.dcx-detail-article .dcx-cue{gap:clamp(16px,2.5vw,26px)}.dcx-detail-article .dcx-cue-strip{gap:12px}.dcx-detail-article .dcx-fan{border-radius:8px 8px 0 0;overflow:hidden}.dcx-detail-article--color .dcx-cue{align-items:stretch}.dcx-detail-article--color .dcx-cue-card{background:var(--panel-bg);grid-template-rows:minmax(0,1fr);gap:0;min-width:0;padding:0;display:grid;overflow:hidden;container:dcx-cue-palette/inline-size}.dcx-detail-article--color .dcx-cue-bands{background:var(--ks-rule);grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;min-width:0;min-height:100%;margin:0;padding:0;list-style:none;display:grid}.dcx-detail-article--color .dcx-cue-band-item{background:var(--panel-bg);grid-template-rows:minmax(0,1fr) 46px;min-width:0;display:grid}.dcx-detail-article--color .dcx-cue-band{background:var(--band-color);color:var(--band-ink);min-width:0;min-height:175px;position:relative}.dcx-detail-article--color .dcx-cue-band-value{overflow-wrap:anywhere;color:inherit;font-family:var(--ks-mono);letter-spacing:.04em;background:0 0;padding:0;font-size:clamp(.58rem,.85vw,.7rem);font-weight:500;line-height:1;position:absolute;bottom:14px;left:12px;right:12px}.dcx-detail-article--color .dcx-cue-band-label{overflow-wrap:anywhere;min-width:0;color:var(--ks-champagne);text-align:center;place-items:center;padding:0 6px;font-size:clamp(.76rem,1.1vw,.92rem);font-weight:500;line-height:1.15;display:grid}@container dcx-cue-palette (width<=439px){.dcx-detail-article--color .dcx-cue-bands{grid-template-columns:repeat(2,minmax(0,1fr))}.dcx-detail-article--color .dcx-cue-band{min-height:124px}}.dcx-detail-article .dcx-swatches{gap:12px}.dcx-detail-article .dcx-swatch{background:var(--panel-bg);border-radius:8px;padding:12px}.dcx-detail-article .dcx-swatch-chip{border:0;border-radius:6px;min-height:140px;overflow:hidden}.dcx-detail-article .dcx-swatch-meta h4{color:var(--ks-text);font-family:var(--ks-font-display);margin:0 0 6px;font-size:1.3rem;font-weight:300}.dcx-detail-article .dcx-pair-name{color:var(--ks-champagne);overflow-wrap:anywhere}.dcx-detail-article .dcx-proof--scale,.dcx-detail-article .dcx-proof--specimen,.dcx-detail-article .dcx-proof--icons{padding:clamp(18px,2.5vw,28px)}.dcx-detail-article .dcx-proof--scale>.picker-scale-sheet{row-gap:0;padding-block:clamp(36px,4vw,52px)}.dcx-detail-article .dcx-proof--scale .ts-row{padding-block:clamp(14px,2vw,22px)}.dcx-detail-article .dcx-proof--specimen{min-width:0;max-width:100%;overflow:hidden}.dcx-detail-article .dcx-proof--specimen>.picker-scale-specimen{gap:clamp(28px,3vw,36px);padding-block:clamp(36px,4vw,52px)}.dcx-detail-article .dcx-proof--specimen .sp-h1{font-size:clamp(2.5rem,4.25vw,3.25rem)}.dcx-detail-article .dcx-proof--specimen .sp-h2{font-size:clamp(2rem,3vw,2.5rem)}.dcx-detail-article .dcx-proof--specimen .sp-h3{font-size:1.65rem}.dcx-detail-article .dcx-proof--specimen .sp-h4{font-size:1.35rem}.dcx-detail-article .dcx-proof--specimen .sp-lede{font-size:1.125rem;line-height:1.65}.dcx-detail-article .dcx-proof--specimen :is(.sp-p,.sp-list){font-size:1rem;line-height:1.7}.dcx-detail-article .dcx-proof--specimen .sp-quote p{font-size:1.2rem;line-height:1.55}.dcx-detail-article .dcx-proof--specimen .sp-cite,.dcx-detail-article .dcx-proof--specimen :is(.sp-code,.sp-pre){font-size:.9rem}.dcx-detail-article .dcx-proof--specimen .sp-pre{line-height:1.65}.dcx-detail-article .sp-pre{white-space:pre-wrap;max-width:100%;overflow-x:visible}.dcx-detail-article .sp-pre code{white-space:inherit;overflow-wrap:anywhere}.dcx-detail-article .dcx-fan-note{max-width:72ch;color:var(--ks-text-faint);margin-top:12px;line-height:1.55}.dcx-detail-article .dcx-edit{margin-top:18px}@media (width<=720px){.dcx-detail-article .dcx-principles--cols,.dcx-detail-article .dcx-detail-defs,.dcx-detail-article--brand .dcx-brand-assets-grid,.dcx-detail-article .dcx-swatch{grid-template-columns:1fr}}@media (width<=620px){.dcx-detail-article .dcx-detail-section-head{gap:18px}.dcx-detail-article .dcx-detail-section-head:not(.dcx-detail-section-head--with-icon){grid-template-columns:minmax(0,1fr) 72px}.dcx-detail-article .dcx-purpose{grid-template-columns:1fr}}@media (width<=430px){.dcx-detail-article .dcx-detail-section-head{gap:14px}.dcx-detail-article .dcx-detail-section-title{font-size:1.3rem}.dcx-detail-article .dcx-detail-list li,.dcx-detail-article .dcx-principles li{grid-template-columns:26px minmax(0,1fr);padding:16px}.dcx-detail-article--color .dcx-cue-band-value{bottom:12px;left:8px;right:8px}}@media (prefers-reduced-motion:reduce){.dcx-detail-article *,.dcx-detail-article :before,.dcx-detail-article :after{transition-duration:.001ms!important;transition-delay:0s!important}}.dcx-detail-article--components .dcx-component-stack{gap:clamp(42px,5vw,64px);min-width:0;display:grid}.dcx-detail-article--components .dcx-component-example{min-width:0;margin:0}.dcx-detail-article--components .dcx-component-example>figcaption{margin:0 0 14px}.dcx-detail-article--components .dcx-component-example h4{color:var(--ks-champagne);font-family:var(--ks-font);margin:0;font-size:1.08rem;font-weight:600;line-height:1.4}.dcx-detail-article--components .dcx-component-canvas{box-sizing:border-box;border:1px solid var(--ks-rule);background:var(--ks-lacquer-deep);border-radius:8px;width:100%;min-width:0;min-height:clamp(230px,27vw,300px);padding:clamp(30px,5vw,58px)}.dcx-detail-article--components .dcx-component-canvas--center{place-items:center;display:grid}.dcx-detail-article--components .dcx-component-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;max-width:100%;display:flex}.dcx-detail-article--components .dcx-component-row--baseline{align-items:baseline}.dcx-detail-article--components .dcx-demo-button{box-sizing:border-box;min-height:44px;color:var(--ks-champagne);font-family:var(--ks-font);white-space:nowrap;border:1px solid #0000;border-radius:3px;justify-content:center;align-items:center;gap:9px;padding:0 20px;font-size:.88rem;font-weight:600;line-height:1;display:inline-flex}.dcx-detail-article--components .dcx-demo-button svg,.dcx-detail-article--components .dcx-demo-icon-button svg,.dcx-detail-article--components .dcx-demo-input svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:16px;height:16px}.dcx-detail-article--components .dcx-demo-button--primary{border-color:var(--ks-kinpaku);background:var(--ks-kinpaku);color:var(--ks-lacquer-deep)}.dcx-detail-article--components .dcx-demo-button--secondary{border-color:var(--ks-graphite-2);background:var(--ks-graphite-2);color:var(--ks-champagne)}.dcx-detail-article--components .dcx-demo-button--tertiary{border-color:color-mix(in oklch, var(--ks-patina) 55%, var(--ks-rule));background:color-mix(in oklch, var(--ks-patina) 13%, transparent);color:var(--ks-patina-pale)}.dcx-detail-article--components .dcx-demo-button--outline{border-color:var(--ks-rule);color:var(--ks-champagne);background:0 0}.dcx-detail-article--components .dcx-demo-button--ghost{color:var(--ks-text);background:0 0;padding-inline:12px}.dcx-detail-article--components .dcx-demo-button--danger{border-color:var(--ks-vermilion);background:var(--ks-vermilion);color:var(--ks-champagne)}.dcx-detail-article--components .dcx-demo-button--danger-soft{background:color-mix(in oklch, var(--ks-vermilion) 20%, transparent);color:color-mix(in oklch, var(--ks-vermilion) 74%, var(--ks-champagne));border-color:#0000}.dcx-detail-article--components .dcx-demo-button--small{min-height:36px;padding-inline:16px;font-size:.78rem}.dcx-detail-article--components .dcx-demo-button--large{min-height:54px;padding-inline:26px;font-size:.96rem}.dcx-detail-article--components .dcx-demo-icon-button{width:44px;height:44px;color:var(--ks-champagne);border:1px solid #0000;border-radius:50%;place-items:center;display:inline-grid}.dcx-detail-article--components .dcx-demo-icon-button--secondary{background:var(--ks-graphite-2)}.dcx-detail-article--components .dcx-demo-icon-button--outline{border-color:var(--ks-rule);color:var(--ks-patina)}.dcx-detail-article--components .dcx-demo-icon-button--danger{background:var(--ks-vermilion)}.dcx-detail-article--components .dcx-demo-button--loading{opacity:.72}.dcx-detail-article--components .dcx-demo-spinner{border:2px solid color-mix(in oklch, var(--ks-lacquer-deep) 35%, transparent);border-top-color:var(--ks-lacquer-deep);border-radius:50%;width:14px;height:14px;animation:.9s linear infinite dcx-component-spin}@keyframes dcx-component-spin{to{transform:rotate(360deg)}}.dcx-detail-article--components .dcx-component-canvas--fields,.dcx-detail-article--components .dcx-component-canvas--cards{place-items:center;display:grid}.dcx-detail-article--components .dcx-component-demo-grid{align-items:stretch;gap:clamp(16px,2.2vw,22px);width:min(100%,900px);min-width:0;display:grid}.dcx-detail-article--components .dcx-component-demo-grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}.dcx-detail-article--components .dcx-component-demo-grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}.dcx-detail-article--components .dcx-component-demo-grid--single{grid-template-columns:minmax(0,1fr);width:min(100%,680px)}.dcx-detail-article--components .dcx-component-demo-grid--baseline{align-items:end}.dcx-detail-article--components .dcx-demo-field{align-content:start;gap:8px;min-width:0;display:grid}.dcx-detail-article--components .dcx-demo-field-label{color:var(--ks-text-muted);font-family:var(--ks-font);font-size:.8rem;font-weight:500;line-height:1.4}.dcx-detail-article--components .dcx-demo-input{box-sizing:border-box;border:1px solid var(--ks-rule);background:var(--ks-lacquer-raised);width:100%;min-width:0;min-height:48px;color:var(--ks-champagne);font-family:var(--ks-font);overflow-wrap:anywhere;border-radius:3px;align-items:center;padding:0 14px;font-size:.88rem;line-height:1.4;display:flex}.dcx-detail-article--components .dcx-demo-input.is-placeholder{color:var(--ks-text-mute-deep)}.dcx-detail-article--components .dcx-demo-field small{color:var(--ks-text-muted);font-size:.72rem;line-height:1.45}.dcx-detail-article--components .dcx-demo-field.is-invalid .dcx-demo-input{border-color:var(--ks-vermilion)}.dcx-detail-article--components .dcx-demo-field.is-invalid small{color:color-mix(in oklch, var(--ks-vermilion) 76%, var(--ks-champagne))}.dcx-detail-article--components .dcx-demo-field--small .dcx-demo-input{min-height:38px;font-size:.78rem}.dcx-detail-article--components .dcx-demo-field--large .dcx-demo-input{min-height:58px;font-size:.96rem}.dcx-detail-article--components .dcx-demo-input--affix{gap:10px}.dcx-detail-article--components .dcx-demo-input--affix>span{color:var(--ks-patina);font-family:var(--ks-mono);flex:none;font-size:.74rem}.dcx-detail-article--components .dcx-demo-input--suffix{justify-content:space-between}.dcx-detail-article--components .dcx-demo-input--textarea{align-items:flex-start;min-height:132px;padding-block:14px;line-height:1.6}.dcx-detail-article--components .dcx-showcase-card{box-sizing:border-box;border:1px solid var(--ks-rule);background:var(--panel-bg);border-radius:8px;flex-direction:column;min-width:0;min-height:268px;display:flex;overflow:hidden}.dcx-detail-article--components .dcx-showcase-card-body{box-sizing:border-box;flex-direction:column;flex:1;align-items:flex-start;min-width:0;padding:clamp(20px,2.6vw,28px);display:flex}.dcx-detail-article--components .dcx-showcase-card h5{color:var(--ks-champagne);font-family:var(--ks-font);margin:14px 0 8px;font-size:1.04rem;font-weight:600;line-height:1.38}.dcx-detail-article--components .dcx-showcase-card p,.dcx-detail-article--components .dcx-showcase-card blockquote{color:var(--ks-text);font-family:var(--ks-font);text-wrap:pretty;margin:0;font-size:.88rem;line-height:1.62}.dcx-detail-article--components .dcx-showcase-card blockquote{color:var(--ks-champagne);margin-top:24px;font-size:1.02rem}.dcx-detail-article--components .dcx-showcase-card-meta{color:var(--ks-text-muted);font-family:var(--ks-mono);margin-top:auto;padding-top:22px;font-size:.7rem}.dcx-detail-article--components .dcx-showcase-card dl{gap:10px;width:100%;margin:10px 0 0;display:grid}.dcx-detail-article--components .dcx-showcase-card dl>div{grid-template-columns:72px minmax(0,1fr);gap:12px;display:grid}.dcx-detail-article--components .dcx-showcase-card dt{color:var(--ks-text-faint);font-family:var(--ks-mono);letter-spacing:.08em;text-transform:uppercase;font-size:.66rem}.dcx-detail-article--components .dcx-showcase-card dd{color:var(--ks-text);margin:0;font-size:.82rem}.dcx-detail-article--components .dcx-showcase-card-link{color:var(--ks-patina);margin-top:auto;padding-top:22px;font-size:.84rem;font-weight:600}.dcx-detail-article--components .dcx-showcase-card--media img{object-fit:cover;object-position:50% 38%;width:100%;height:clamp(190px,23vw,240px)}.dcx-detail-article--components .dcx-showcase-card--media-close img{object-position:50% 66%}.dcx-detail-article--components .dcx-component-canvas--single-card{min-height:clamp(300px,34vw,380px)}.dcx-detail-article--components .dcx-showcase-card--horizontal{grid-template-columns:minmax(220px,.85fr) minmax(0,1.15fr);width:min(100%,780px);min-height:290px;display:grid}.dcx-detail-article--components .dcx-showcase-card--horizontal>img{object-fit:cover;object-position:50% 42%;width:100%;height:100%;min-height:290px}.dcx-detail-article--components .dcx-showcase-card--action .dcx-showcase-card-body{min-height:286px}.dcx-detail-article--components .dcx-showcase-card--action .dcx-demo-button{margin-top:auto}@media (width<=1020px){.dcx-detail-article--components .dcx-component-demo-grid--three{grid-template-columns:repeat(2,minmax(0,1fr))}.dcx-detail-article--components .dcx-component-demo-grid--three>:last-child:nth-child(odd){grid-column:1/-1}}@media (width<=640px){.dcx-detail-article--components .dcx-component-stack{gap:36px}.dcx-detail-article--components .dcx-component-canvas{min-height:210px;padding:24px 20px}.dcx-detail-article--components .dcx-component-demo-grid--three,.dcx-detail-article--components .dcx-component-demo-grid--two{grid-template-columns:minmax(0,1fr)}.dcx-detail-article--components .dcx-component-demo-grid--three>:last-child:nth-child(odd){grid-column:auto}.dcx-detail-article--components .dcx-showcase-card--horizontal{grid-template-columns:minmax(0,1fr)}.dcx-detail-article--components .dcx-showcase-card--horizontal>img{height:230px;min-height:0}}.dcx-detail-article--components .dcx-component-kind{color:var(--ks-text-faint);font-family:var(--ks-mono);letter-spacing:.14em;text-transform:uppercase;font-size:.66rem;font-weight:500;line-height:1.45}.dcx-detail-article--components .dcx-components-command{box-sizing:border-box;background:0 0;border:0;gap:12px;width:min(100%,620px);min-width:0;margin-top:clamp(28px,3.5vw,40px);padding:0;display:grid}.dcx-detail-article--components .dcx-components-command-copy h4{color:var(--ks-champagne);font-family:var(--ks-font);margin:0 0 6px;font-size:1rem;font-weight:600;line-height:1.4}.dcx-detail-article--components .dcx-components-command-copy p{max-width:54ch;color:var(--ks-text-muted);margin:0;font-size:.86rem;line-height:1.55}.dcx-expander{--dcx-hierarchy-title:var(--ks-champagne);--dcx-hierarchy-value:var(--ks-text);--dcx-hierarchy-support:var(--ks-text-muted);--dcx-hierarchy-label:var(--ks-text-faint);--dcx-hierarchy-label-size:.68rem;--dcx-hierarchy-value-size:.96rem}.dcx-detail-article .dcx-detail-defs .dcx-def dt,.dcx-audience .dcx-audience-section--people .dcx-def dt{color:var(--dcx-hierarchy-label);font-family:var(--ks-mono);font-size:var(--dcx-hierarchy-label-size);letter-spacing:.14em;text-transform:uppercase;font-weight:500;line-height:1.45}.dcx-detail-article .dcx-detail-defs .dcx-def dd,.dcx-audience .dcx-audience-section--people .dcx-def dd{color:var(--dcx-hierarchy-value);font-size:var(--dcx-hierarchy-value-size);margin-top:9px;font-weight:400;line-height:1.6}.dcx-detail-article .dcx-detail-defs .dcx-def dd strong{color:inherit;font-weight:600}.dcx-detail-article .dcx-callout>p:not(.dcx-callout-name),.dcx-audience .dcx-callout>p:not(.dcx-callout-name),.dcx-detail-article .dcx-principles li,.dcx-detail-article .dcx-voice-cell>p,.dcx-detail-article .dcx-ref-takeaway,.dcx-detail-article .dcx-surface-goal,.dcx-detail-article .dcx-swatch-meta>p,.dcx-detail-article .dcx-scale-head,.dcx-detail-article .dcx-specimen-body,.dcx-detail-article .dcx-pick-desc,.dcx-detail-article .dcx-asset-caption>p,.dcx-detail-article .dcx-prose{color:var(--dcx-hierarchy-value)}.dcx-audience .dcx-audience-journey .dcx-callout-name,.dcx-detail-article .dcx-detail-section--positioning .dcx-callout-name,.dcx-detail-article .dcx-detail-section--primary-conversion .dcx-callout-name,.dcx-detail-article .dcx-detail-section--anti-reference .dcx-callout-name{color:var(--dcx-hierarchy-label);font-family:var(--ks-mono);font-size:var(--dcx-hierarchy-label-size);letter-spacing:.14em;text-transform:uppercase;margin-bottom:9px;font-weight:500;line-height:1.45}.dcx-audience .dcx-audience-journey .dcx-callout-name+p,.dcx-detail-article .dcx-detail-section--positioning .dcx-callout-name+p,.dcx-detail-article .dcx-detail-section--primary-conversion .dcx-callout-name+p,.dcx-detail-article .dcx-detail-section--anti-reference .dcx-callout-name+p{color:var(--dcx-hierarchy-value);font-size:1rem;font-weight:500;line-height:1.6}.dcx-detail-article :is(.dcx-detail-principle-copy strong,.dcx-ref-name,.dcx-surface-name,.dcx-pair-name,.dcx-pick-title,.dcx-empty-title){color:var(--dcx-hierarchy-title)}.dcx-detail-article .dcx-ref-name{font-family:var(--ks-font)}.dcx-detail-article--color .dcx-cue-band-label{color:var(--dcx-hierarchy-label);font-family:var(--ks-mono);font-size:var(--dcx-hierarchy-label-size);letter-spacing:.1em;text-transform:uppercase;font-weight:500}.dcx-detail-article--color .dcx-cue-band-value{font-size:clamp(.7rem,1vw,.78rem);font-weight:600}.dcx-detail-article--typography .ts-sample{color:var(--ks-champagne)!important}.dcx-detail-article--typography .ts-tag{color:var(--dcx-hierarchy-label);font-family:var(--ks-mono);letter-spacing:.1em;font-weight:500;font-size:16px!important}.dcx-detail-article--typography .ts-values{gap:12px}.dcx-detail-article--typography .ts-values b{color:var(--dcx-hierarchy-value);font-size:16px;font-weight:600}.dcx-detail-article--typography .ts-values i{color:var(--dcx-hierarchy-support)}.dcx-command-copy{--dcx-command-accent:var(--ks-kinpaku);--dcx-command-ground:var(--ks-code-block-bg,var(--ks-lacquer-deep));--dcx-command-ink:var(--ks-code-block-fg,var(--ks-text));--dcx-command-copy-border:var(--ks-rule);--dcx-command-copy-hover:oklch(77% .14 82/.08);box-sizing:border-box;border:1px solid var(--dcx-command-accent);background:var(--dcx-command-ground);border-radius:2px;align-items:center;gap:12px;width:100%;min-width:0;min-height:52px;padding:9px 9px 9px 18px;display:flex}.dcx-command-copy__prompt{color:var(--dcx-command-accent);font:500 1.125rem/1 var(--ks-mono);user-select:none;flex:none}.dcx-command-copy>code{min-width:0;color:var(--dcx-command-ink);font:400 .98rem/1.35 var(--ks-mono);letter-spacing:0;scrollbar-width:thin;user-select:all;white-space:nowrap;background:0 0;border:0;flex:auto;margin:0;padding:0;overflow-x:auto}.dcx-command-copy__button{border:1px solid var(--dcx-command-copy-border);width:34px;height:34px;color:var(--dcx-command-accent);cursor:pointer;transition:background-color .18s var(--ks-ease), border-color .18s var(--ks-ease), color .18s var(--ks-ease), transform .12s var(--ks-ease);background:0 0;border-radius:2px;flex:none;place-items:center;padding:0;display:inline-grid;position:relative}.dcx-command-copy__button:hover,.dcx-command-copy__button.copied{background:var(--dcx-command-copy-hover);border-color:currentColor}.dcx-command-copy__button:active{transform:scale(.96)}.dcx-command-copy__button:focus-visible{outline:2px solid var(--ks-patina);outline-offset:4px}.dcx-command-copy__button svg{fill:none;stroke:currentColor;transition:opacity .14s var(--ks-ease), transform .18s var(--ks-ease);grid-area:1/1}.dcx-command-copy__copy-icon{opacity:1;stroke-width:1.6px;width:14px;height:14px;transform:scale(1)}.dcx-command-copy__check-icon{opacity:0;stroke-width:2.1px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px;transform:scale(.86)}.dcx-command-copy__check-icon path{stroke-dasharray:24;stroke-dashoffset:24px}.dcx-command-copy__button.copied .dcx-command-copy__copy-icon{opacity:0;transform:scale(.82)}.dcx-command-copy__button.copied .dcx-command-copy__check-icon{opacity:1;transform:scale(1)}.dcx-command-copy__button.copied .dcx-command-copy__check-icon path{animation:dcx-command-check-draw .26s var(--ks-ease) forwards}.dcx-command-copy__label,.dcx-command-status{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes dcx-command-check-draw{to{stroke-dashoffset:0}}@media (width<=520px){.dcx-command-copy{gap:10px;padding:9px 8px 9px 14px}.dcx-command-copy>code{font-size:.72rem}}@media (prefers-reduced-motion:reduce){.dcx-command-copy__button,.dcx-command-copy__button svg{transition:none}.dcx-command-copy__button.copied .dcx-command-copy__check-icon path{stroke-dashoffset:0;animation:none}}.dcx-topbar-actions{flex:none;align-items:center;gap:10px;margin-left:auto;display:flex}.dcx-topbar-actions .dcx-request{margin:0 4px 0 0}.dcx-topbar-actions .dcx-close:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.dcx-settings-trigger,.dcx-settings-close{border:1px solid var(--ks-rule);width:40px;height:40px;color:var(--ks-text);cursor:pointer;transition:color .16s var(--ks-ease), border-color .16s var(--ks-ease), transform .22s var(--ks-ease);background:0 0;border-radius:999px;flex:none;place-items:center;display:grid}.dcx-settings-trigger svg,.dcx-settings-close svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.45px;width:17px;height:17px}.dcx-settings-trigger:hover,.dcx-settings-trigger:focus-visible,.dcx-settings-close:hover,.dcx-settings-close:focus-visible{border-color:var(--accent-line);color:var(--accent);outline:none}.dcx-settings-trigger:hover svg,.dcx-settings-trigger:focus-visible svg{transform:rotate(24deg)}.dcx-settings-trigger svg{transition:transform .26s var(--ks-ease)}.dcx-settings-close:hover,.dcx-settings-close:focus-visible{transform:rotate(90deg)}.dcx-settings-trigger:focus-visible,.dcx-settings-close:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.dcx-settings-modal{border:1px solid var(--ks-rule);background:var(--ks-lacquer);width:min(680px,100vw - 24px);max-width:none;max-height:calc(100svh - 24px);color:var(--ks-text);opacity:0;border-radius:6px;margin:auto;padding:0;transition:opacity .18s,transform .28s cubic-bezier(.22,1,.36,1);overflow:hidden;transform:translateY(12px)scale(.985);box-shadow:0 32px 90px oklch(0% 0 0/.64)}.dcx-settings-modal::backdrop{backdrop-filter:blur();background:oklch(0% 0 0/0);transition:background-color .18s,backdrop-filter .24s}.dcx-settings-modal.is-visible{opacity:1;transform:translateY(0)scale(1)}.dcx-settings-modal.is-visible::backdrop{backdrop-filter:blur(5px);background:oklch(0% 0 0/.76)}.dcx-settings-panel{box-sizing:border-box;min-width:0;padding:clamp(24px,3vw,30px)}.dcx-settings-head{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:24px;padding-bottom:clamp(20px,2.6vw,26px);display:grid}.dcx-settings-head h2{color:var(--ks-champagne);font-family:var(--ks-font);letter-spacing:-.015em;margin:0;font-size:clamp(1.45rem,2.6vw,1.75rem);font-weight:600;line-height:1.2}.dcx-settings-head p{max-width:52ch;color:var(--ks-text-muted);margin:10px 0 0;font-size:.94rem;line-height:1.6}.dcx-settings-commands{border-top:1px solid var(--ks-rule);gap:20px;margin:0;padding-top:24px;display:grid}.dcx-settings-modal .dcx-command-copy{border-color:var(--ks-rule)}.dcx-settings-command{border-bottom:1px solid var(--ks-rule);gap:12px;padding:0 0 20px;display:grid}.dcx-settings-command-copy{grid-template-columns:minmax(0,1fr);align-items:baseline;gap:5px;min-width:0;display:grid}.dcx-settings-command h3{color:var(--ks-champagne);font-family:var(--ks-font);margin:0;font-size:1.05rem;font-weight:600;line-height:1.35}.dcx-settings-command p{color:var(--ks-text-muted);margin:0;font-size:.86rem;line-height:1.45}.dcx-settings-command:last-child{border-bottom:0;padding-bottom:0}@media (height<=820px){.dcx-settings-panel{padding-block:18px}.dcx-settings-head{padding-bottom:16px}.dcx-settings-head p{margin-top:6px;line-height:1.45}.dcx-settings-commands{gap:12px;padding-top:16px}.dcx-settings-command{gap:8px;padding-bottom:12px}.dcx-settings-command-copy{gap:2px}}@media (width<=620px){.dcx-topbar-actions{gap:8px}.dcx-settings-modal{border-radius:4px;width:calc(100vw - 24px);max-height:calc(100svh - 24px)}.dcx-settings-panel{padding:22px 20px 18px}.dcx-settings-head{gap:18px;padding-bottom:22px}.dcx-settings-head h2{font-size:1.4rem}.dcx-settings-head p{font-size:.88rem}.dcx-settings-command{padding-bottom:18px}.dcx-settings-command-copy{gap:5px}}@media (prefers-reduced-motion:reduce){.dcx-settings-modal,.dcx-settings-modal::backdrop,.dcx-settings-trigger,.dcx-settings-trigger svg,.dcx-settings-close{transition:none}}.dcx-main[data-dcx-continuous=true]{overflow-x:hidden}.dcx-document-title{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.dcx-main[data-dcx-continuous=true]>.dcx-document-article{box-sizing:border-box;scroll-margin-top:18px}.dcx-main[data-dcx-continuous=true]>.dcx-document-article+.dcx-document-article{border-top:1px solid var(--ks-rule);margin-top:clamp(48px,6vw,80px);padding-top:clamp(36px,5vw,64px)}.dcx-expander[data-dcx-document=true] .dcx-sub-link{text-decoration:none}.dcx-expander[data-dcx-document=true] .dcx-nav-link[aria-expanded=true]{color:var(--accent);font-weight:600}@media (width<=920px){.dcx-main[data-dcx-continuous=true]>.dcx-document-article+.dcx-document-article{margin-top:42px;padding-top:30px}}@media (prefers-reduced-motion:reduce){.dcx-main[data-dcx-continuous=true]{scroll-behavior:auto}}.dcx-nav.dcx-material-rail-host{--dcx-rail-text-gap:18px;--dcx-rail-child-indent:14px;--dcx-rail-item-padding-block:8px;--dcx-rail-motion-duration:.52s;--dcx-rail-motion-easing:cubic-bezier(.4, 0, .2, 1);--dcx-rail-category-duration:.52s;--dcx-rail-category-easing:cubic-bezier(.4, 0, .2, 1);--dcx-rail-branch-duration:.32s;isolation:isolate;position:relative}.dcx-material-rail-host .dcx-nav-label,.dcx-material-rail-host .dcx-nav-list{z-index:1;position:relative}.dcx-material-rail-host .dcx-nav-link{border-left-color:color-mix(in oklch, var(--ks-patina) 42%, transparent);padding-inline-start:var(--dcx-rail-text-gap)}.dcx-material-rail-host .dcx-subnav{padding:2px 0 8px var(--dcx-rail-child-indent)}@media (width>=921px){.dcx-expander[data-dcx-document=true] .dcx-material-rail-host .dcx-subnav{opacity:0;visibility:hidden;pointer-events:none;max-height:0;transition:max-height var(--dcx-rail-category-duration) var(--dcx-rail-category-easing), padding-top var(--dcx-rail-category-duration) var(--dcx-rail-category-easing), padding-bottom var(--dcx-rail-category-duration) var(--dcx-rail-category-easing), opacity .24s var(--dcx-rail-category-easing), transform .36s var(--dcx-rail-category-easing), visibility 0s linear var(--dcx-rail-category-duration);gap:2px;padding-top:0;padding-bottom:0;animation:none;display:grid;overflow:hidden;transform:translateY(-4px)}.dcx-expander[data-dcx-document=true] .dcx-material-rail-host li.is-active>.dcx-subnav{max-height:var(--dcx-subnav-height,24rem);opacity:1;visibility:visible;pointer-events:auto;padding-top:2px;padding-bottom:8px;transition-delay:0s;transform:translateY(0)}.dcx-expander[data-dcx-document=true] .dcx-material-rail-host li.is-active>.dcx-subnav--summary{gap:0;padding-top:4px;padding-bottom:10px}}.dcx-material-rail-host .dcx-sub-link{padding:var(--dcx-rail-item-padding-block) 0;border:0;border-left:2px solid color-mix(in oklch, var(--ks-patina) 42%, transparent);transition:color .16s var(--ks-ease), border-color .16s var(--ks-ease);padding-inline-start:var(--dcx-rail-text-gap);line-height:1.45}.dcx-material-rail-host .dcx-sub-link[aria-current=location]{color:var(--accent);font-weight:600}.dcx-material-rail-host .dcx-subnav--summary{gap:0;padding-top:4px;padding-bottom:10px}.dcx-material-rail-host .dcx-subnav--summary .dcx-sub-link{color:var(--ks-text-muted);letter-spacing:.1em;text-transform:uppercase;font-size:.72rem;font-weight:600}.dcx-material-rail-host .dcx-subnav--summary .dcx-sub-link[aria-current=location]{color:var(--accent)}.dcx-material-rail{z-index:0;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.dcx-material-rail__patina-base{fill:var(--ks-patina)}.dcx-material-rail__gold-base{fill:var(--ks-kinpaku)}.dcx-material-rail__patina-image{opacity:.68;filter:saturate(1.18)contrast(1.06)}.dcx-material-rail__gold-image{opacity:.7;filter:saturate(1.15)contrast(1.08)}.dcx-material-rail__track,.dcx-material-rail__active,.dcx-material-rail__transition-track,.dcx-material-rail__transition-active{fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.dcx-material-rail__track{stroke:url(#dcx-material-rail-patina) var(--ks-patina);opacity:0;transition:opacity var(--dcx-rail-category-duration) var(--dcx-rail-category-easing)}.dcx-material-rail-host[data-rail-ready] .dcx-material-rail__track{opacity:.58}.dcx-material-rail__track[data-entering=true]{opacity:0!important;transition:none!important}.dcx-material-rail__active{stroke:url(#dcx-material-rail-gold) var(--accent);opacity:0;transition:stroke-dasharray var(--dcx-rail-motion-duration) var(--dcx-rail-motion-easing), stroke-dashoffset var(--dcx-rail-motion-duration) var(--dcx-rail-motion-easing), opacity .18s ease}.dcx-material-rail__active[data-ready=true]{opacity:1}.dcx-material-rail__active[data-initial=true]{transition-property:opacity}.dcx-material-rail__active[data-entering=true]{opacity:0!important;transition:none!important}.dcx-material-rail__transition-track{opacity:0;transition:opacity var(--dcx-rail-branch-duration) var(--dcx-rail-category-easing)}.dcx-material-rail__transition-active{opacity:0}.dcx-material-rail__transition-track[data-visible=true]{opacity:.58}.dcx-material-rail__transition-active[data-visible=true]{opacity:1}.dcx-material-rail__transition-track[data-initial=true],.dcx-material-rail__transition-active[data-initial=true]{transition:none!important}.dcx-material-rail__transition-active{transform-box:fill-box;transform-origin:50%;transition:transform var(--dcx-rail-category-duration) var(--dcx-rail-category-easing), opacity .18s ease}.dcx-material-rail__track[data-morphing=true]{opacity:.58!important;transition:none!important}.dcx-material-rail__transition-active[data-settling=true]{transition:transform var(--dcx-rail-branch-duration) var(--dcx-rail-category-easing), opacity .18s ease}.dcx-material-rail__active[data-handoff=true],.dcx-material-rail__transition-active[data-handoff=true]{transition:none!important}.dcx-material-rail-host[data-rail-ready] .dcx-nav-link,.dcx-material-rail-host[data-rail-ready] .dcx-sub-link,.dcx-material-rail-host[data-rail-ready] .dcx-nav-link:hover,.dcx-material-rail-host[data-rail-ready] .dcx-nav-link:focus-visible,.dcx-material-rail-host[data-rail-ready] .dcx-sub-link:hover,.dcx-material-rail-host[data-rail-ready] .dcx-sub-link:focus-visible{border-left-color:#0000}@media (width<=920px){.dcx-material-rail{display:none}.dcx-material-rail-host .dcx-nav-link{border-left:0;padding:8px 10px}.dcx-material-rail-host .dcx-subnav{display:none!important}}@media (prefers-reduced-motion:reduce){.dcx-material-rail-host *,.dcx-material-rail-host :before,.dcx-material-rail-host :after{scroll-behavior:auto!important;transition-duration:.001ms!important;transition-delay:0s!important}}.dcx-detail-article--hooks{--dcx-hooks-rule:color-mix(in oklch, var(--ks-text) 18%, transparent);--dcx-hooks-rule-strong:color-mix(in oklch, var(--ks-text) 32%, transparent);--dcx-hooks-ease:cubic-bezier(.22, 1, .36, 1)}.dcx-detail-article--hooks .dcx-detail-section{margin-bottom:clamp(72px,8vw,104px)}.dcx-detail-article--hooks .dcx-detail-section-head{margin-bottom:clamp(24px,3vw,32px)}.dcx-detail-article--hooks .dcx-detail-section-lede{color:var(--ks-text-muted)}.dcx-detail-article--hooks .dcx-hooks-definition{max-width:58ch;color:var(--ks-text-muted);text-wrap:pretty;margin:0;font-size:1rem;line-height:1.72}.dcx-detail-article--hooks .dcx-hooks-status{border-block:1px solid var(--dcx-hooks-rule);justify-content:space-between;align-items:center;gap:28px;margin-top:24px;padding:20px 0;display:flex}.dcx-detail-article--hooks .dcx-hooks-status-copy{min-width:0}.dcx-detail-article--hooks .dcx-hooks-status strong{color:var(--ks-champagne);font:600 1rem/1.4 var(--ks-font);display:block}.dcx-detail-article--hooks .dcx-hooks-status p{color:var(--ks-text-muted);margin:5px 0 0;font-size:.9rem;line-height:1.55}.dcx-detail-article--hooks .dcx-hooks-status-control{flex:none;align-items:center;gap:12px;display:flex}.dcx-detail-article--hooks .dcx-hooks-status-state{min-width:22px;color:var(--ks-text);font:500 .7rem/1 var(--ks-mono);letter-spacing:.08em;text-transform:uppercase}.dcx-detail-article--hooks .dcx-hooks-status.is-paused .dcx-hooks-status-state{color:var(--ks-text-muted)}.dcx-detail-article--hooks .dcx-hooks-flow{grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0;display:grid}.dcx-detail-article--hooks .dcx-hooks-flow>div{min-width:0;padding:20px 0 2px}.dcx-detail-article--hooks .dcx-hooks-flow>div+div{border-left:1px solid var(--dcx-hooks-rule);padding-left:28px}.dcx-detail-article--hooks .dcx-hooks-flow dt,.dcx-detail-article--hooks .dcx-hooks-search>span,.dcx-detail-article--hooks .dcx-hooks-custom-form label>span,.dcx-detail-article--hooks .dcx-hooks-custom-discipline{color:var(--ks-text-muted);font:500 .68rem/1.4 var(--ks-mono);letter-spacing:.1em;text-transform:uppercase}.dcx-detail-article--hooks .dcx-hooks-flow dd{color:var(--ks-text);margin:7px 0 0;font-size:.94rem;line-height:1.58}.dcx-detail-article--hooks .dcx-hooks-switch{cursor:pointer;flex:none;place-items:center;width:46px;height:44px;display:inline-grid;position:relative}.dcx-detail-article--hooks .dcx-hooks-switch input{opacity:0;width:44px;height:44px;cursor:inherit;margin:0;position:absolute}.dcx-detail-article--hooks .dcx-hooks-switch>span{border:1px solid var(--dcx-hooks-rule-strong);background:0 0;border-radius:999px;width:38px;height:20px;transition:border-color .18s,background-color .18s;display:block;position:relative}.dcx-detail-article--hooks .dcx-hooks-switch>span:after{background:var(--ks-text-muted);content:"";width:12px;height:12px;transition:transform .26s var(--dcx-hooks-ease), background-color .18s ease;border-radius:50%;position:absolute;top:3px;left:3px}.dcx-detail-article--hooks .dcx-hooks-switch input:checked+span{border-color:var(--ks-text-muted);background:var(--ks-graphite-2)}.dcx-detail-article--hooks .dcx-hooks-switch input:checked+span:after{background:var(--ks-kinpaku);transform:translate(18px)}.dcx-detail-article--hooks .dcx-hooks-switch input:focus-visible+span{outline:2px solid var(--ks-kinpaku);outline-offset:3px}.dcx-detail-article--hooks .dcx-hooks-browser{border-block:1px solid var(--dcx-hooks-rule);min-width:0}.dcx-detail-article--hooks .dcx-hooks-families{border-bottom:1px solid var(--dcx-hooks-rule);scrollbar-width:thin;align-items:stretch;gap:clamp(24px,4vw,42px);min-width:0;padding-inline:3px;display:flex;overflow-x:auto}.dcx-detail-article--hooks .dcx-hooks-family{min-height:62px;color:var(--ks-text-muted);text-align:left;cursor:pointer;background:0 0;border:0;flex:none;align-items:center;gap:9px;padding:0;display:inline-flex;position:relative}.dcx-detail-article--hooks .dcx-hooks-family:after{content:"";background:0 0;height:1px;position:absolute;bottom:-1px;left:0;right:0}.dcx-detail-article--hooks .dcx-hooks-family:hover{color:var(--ks-patina)}.dcx-detail-article--hooks .dcx-hooks-family.is-active{color:var(--ks-kinpaku)}.dcx-detail-article--hooks .dcx-hooks-family.is-active:after{background:var(--ks-kinpaku)}.dcx-detail-article--hooks .dcx-hooks-family:focus-visible{outline:2px solid var(--ks-kinpaku);outline-offset:-3px}.dcx-detail-article--hooks .dcx-hooks-family-name{font:600 .92rem/1.35 var(--ks-font);white-space:nowrap}.dcx-detail-article--hooks .dcx-hooks-family-count{color:var(--ks-text-muted);font:500 .68rem/1.35 var(--ks-mono);white-space:nowrap}.dcx-detail-article--hooks .dcx-hooks-rule-panel{min-width:0}.dcx-detail-article--hooks .dcx-hooks-toolbar{border-bottom:1px solid var(--dcx-hooks-rule);justify-content:space-between;align-items:end;gap:24px;min-height:68px;padding:12px 0 14px;display:flex}.dcx-detail-article--hooks .dcx-hooks-search{flex:auto;gap:6px;min-width:0;display:grid}.dcx-detail-article--hooks .dcx-hooks-search input,.dcx-detail-article--hooks .dcx-hooks-custom-form input,.dcx-detail-article--hooks .dcx-hooks-custom-form select,.dcx-detail-article--hooks .dcx-hooks-custom-form textarea{box-sizing:border-box;border:1px solid var(--dcx-hooks-rule-strong);width:100%;min-width:0;color:var(--ks-text);font:inherit;background:0 0;border-radius:0}.dcx-detail-article--hooks .dcx-hooks-search input{height:40px;padding:0 12px;font-size:.88rem}.dcx-detail-article--hooks .dcx-hooks-search input::placeholder,.dcx-detail-article--hooks .dcx-hooks-custom-form input::placeholder,.dcx-detail-article--hooks .dcx-hooks-custom-form textarea::placeholder{color:var(--ks-text-muted)}.dcx-detail-article--hooks .dcx-hooks-search input:focus,.dcx-detail-article--hooks .dcx-hooks-custom-form input:focus,.dcx-detail-article--hooks .dcx-hooks-custom-form select:focus,.dcx-detail-article--hooks .dcx-hooks-custom-form textarea:focus{border-color:var(--ks-patina);outline:1px solid var(--ks-patina);outline-offset:0}.dcx-detail-article--hooks .dcx-hooks-summary{color:var(--ks-text-muted);font:500 .68rem/1.4 var(--ks-mono);letter-spacing:.04em;flex:none;margin:0 0 10px}.dcx-detail-article--hooks .dcx-hooks-discipline{border-bottom:1px solid var(--dcx-hooks-rule)}.dcx-detail-article--hooks .dcx-hooks-discipline>summary{min-height:56px;color:var(--ks-text);cursor:pointer;justify-content:space-between;align-items:center;gap:18px;list-style:none;display:flex}.dcx-detail-article--hooks .dcx-hooks-discipline>summary::-webkit-details-marker{display:none}.dcx-detail-article--hooks .dcx-hooks-discipline>summary:before{content:"";width:7px;height:7px;transition:transform .36s var(--dcx-hooks-ease);border-bottom:1px solid;border-right:1px solid;margin-right:10px;transform:rotate(-45deg)}.dcx-detail-article--hooks .dcx-hooks-discipline[open]:not(.is-closing)>summary:before{color:var(--ks-patina);transform:rotate(45deg)translate(-2px,-2px)}.dcx-detail-article--hooks .dcx-hooks-discipline>summary>span:first-child{font:600 .94rem/1.4 var(--ks-font);flex:1}.dcx-detail-article--hooks .dcx-hooks-discipline>summary>span:last-child{color:var(--ks-text-muted);font:500 .68rem/1.4 var(--ks-mono)}.dcx-detail-article--hooks .dcx-hooks-discipline>summary:focus-visible{outline:2px solid var(--ks-kinpaku);outline-offset:-2px}.dcx-detail-article--hooks .dcx-hooks-disclosure{opacity:1;display:block;overflow:clip}.dcx-detail-article--hooks .dcx-hooks-disclosure-inner{min-height:0}.dcx-detail-article--hooks .dcx-hooks-rules{margin:0;padding:0 0 10px;list-style:none}.dcx-detail-article--hooks .dcx-hooks-rule{border-top:1px solid var(--dcx-hooks-rule);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;padding:16px 0;display:grid}.dcx-detail-article--hooks .dcx-hooks-rule-copy{min-width:0;display:grid}.dcx-detail-article--hooks .dcx-hooks-rule-copy code{color:var(--ks-text-muted);font:500 .68rem/1.45 var(--ks-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dcx-detail-article--hooks .dcx-hooks-rule-copy strong{color:var(--ks-champagne);font:600 .96rem/1.4 var(--ks-font)}.dcx-detail-article--hooks .dcx-hooks-rule-copy p{max-width:64ch;color:var(--ks-text-muted);text-wrap:pretty;margin:5px 0 0;font-size:.88rem;line-height:1.58}.dcx-detail-article--hooks .dcx-hooks-rule>.dcx-hooks-switch{margin-inline:2px}.dcx-detail-article--hooks .dcx-hooks-empty{color:var(--ks-text);margin:0;padding:32px 0;font-size:.92rem}.dcx-detail-article--hooks .dcx-hooks-custom{border-top:1px solid var(--dcx-hooks-rule)}.dcx-detail-article--hooks .dcx-hooks-custom-toolbar{border-bottom:1px solid var(--dcx-hooks-rule);justify-content:space-between;align-items:center;gap:24px;min-height:64px;display:flex}.dcx-detail-article--hooks .dcx-hooks-custom-toolbar p{color:var(--ks-text);margin:0;font-size:.92rem;line-height:1.55}.dcx-detail-article--hooks .dcx-hooks-button,.dcx-detail-article--hooks .dcx-hooks-remove{border:1px solid var(--dcx-hooks-rule-strong);min-height:42px;color:var(--ks-text);font:600 .82rem/1 var(--ks-font);cursor:pointer;background:0 0;border-radius:0;transition:border-color .18s,background-color .18s,color .18s}.dcx-detail-article--hooks .dcx-hooks-button{padding:0 17px}.dcx-detail-article--hooks .dcx-hooks-button:hover{border-color:var(--ks-text);background:color-mix(in oklch, var(--ks-text) 8%, transparent)}.dcx-detail-article--hooks .dcx-hooks-button:focus-visible,.dcx-detail-article--hooks .dcx-hooks-remove:focus-visible{outline:2px solid var(--ks-kinpaku);outline-offset:3px}.dcx-detail-article--hooks .dcx-hooks-custom-form{border-bottom:1px solid var(--dcx-hooks-rule);background:0 0;grid-template-columns:minmax(0,1.25fr) minmax(170px,.75fr);gap:20px;padding:26px 0;display:grid}.dcx-detail-article--hooks .dcx-hooks-custom-form[hidden]{display:none}.dcx-detail-article--hooks .dcx-hooks-custom-form label{gap:8px;min-width:0;display:grid}.dcx-detail-article--hooks .dcx-hooks-custom-form input,.dcx-detail-article--hooks .dcx-hooks-custom-form select{height:44px;padding:0 12px;font-size:.9rem}.dcx-detail-article--hooks .dcx-hooks-custom-form textarea{resize:vertical;min-height:104px;padding:11px 12px;font-size:.9rem;line-height:1.55}.dcx-detail-article--hooks .dcx-hooks-custom-form-description,.dcx-detail-article--hooks .dcx-hooks-form-actions{grid-column:1/-1}.dcx-detail-article--hooks .dcx-hooks-form-actions{justify-content:flex-end;gap:10px;display:flex}.dcx-detail-article--hooks .dcx-hooks-custom-list{border-bottom:1px solid var(--dcx-hooks-rule)}.dcx-detail-article--hooks .dcx-hooks-custom-list:empty{display:none}.dcx-detail-article--hooks .dcx-hooks-custom-rule{border-bottom:1px solid var(--dcx-hooks-rule);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;padding:18px 0;display:grid}.dcx-detail-article--hooks .dcx-hooks-custom-rule:last-child{border-bottom:0}.dcx-detail-article--hooks .dcx-hooks-custom-discipline{margin-top:8px}.dcx-detail-article--hooks .dcx-hooks-custom-controls{align-items:center;gap:10px;display:flex}.dcx-detail-article--hooks .dcx-hooks-remove{min-height:36px;color:var(--ks-text-muted);padding:0 11px;font-size:.74rem}.dcx-detail-article--hooks .dcx-hooks-storage-note{color:var(--ks-text-muted);margin:14px 0 0;font-size:.82rem;line-height:1.5}@media (width<=780px){.dcx-detail-article--hooks .dcx-hooks-families{gap:24px}.dcx-detail-article--hooks .dcx-hooks-family{min-height:58px}}@media (width<=560px){.dcx-detail-article--hooks .dcx-detail-section{margin-bottom:64px}.dcx-detail-article--hooks .dcx-hooks-status{gap:18px}.dcx-detail-article--hooks .dcx-hooks-flow{grid-template-columns:minmax(0,1fr)}.dcx-detail-article--hooks .dcx-hooks-flow>div{padding-top:18px}.dcx-detail-article--hooks .dcx-hooks-flow>div+div{border-left:0;padding-left:0}.dcx-detail-article--hooks .dcx-hooks-families{overscroll-behavior-inline:contain;gap:22px}.dcx-detail-article--hooks .dcx-hooks-toolbar,.dcx-detail-article--hooks .dcx-hooks-custom-toolbar{grid-template-columns:minmax(0,1fr);justify-content:stretch;align-items:stretch;gap:12px;padding-block:16px;display:grid}.dcx-detail-article--hooks .dcx-hooks-summary{margin:0}.dcx-detail-article--hooks .dcx-hooks-rule,.dcx-detail-article--hooks .dcx-hooks-custom-rule{gap:14px}.dcx-detail-article--hooks .dcx-hooks-custom-form{grid-template-columns:minmax(0,1fr);padding:22px 0}.dcx-detail-article--hooks .dcx-hooks-custom-form label,.dcx-detail-article--hooks .dcx-hooks-custom-form-description,.dcx-detail-article--hooks .dcx-hooks-form-actions{grid-column:1}.dcx-detail-article--hooks .dcx-hooks-form-actions{justify-content:stretch}.dcx-detail-article--hooks .dcx-hooks-form-actions .dcx-hooks-button{flex:1}}@media (prefers-reduced-motion:reduce){.dcx-detail-article--hooks .dcx-hooks-switch>span,.dcx-detail-article--hooks .dcx-hooks-switch>span:after,.dcx-detail-article--hooks .dcx-hooks-discipline>summary:before{transition:none}} diff --git a/.agent/skills/impeccable/scripts/picker/assets/index.astro_astro_type_script_index_0_lang.Cpn-pC_8.js b/.agent/skills/impeccable/scripts/picker/assets/index.astro_astro_type_script_index_0_lang.Cpn-pC_8.js new file mode 100644 index 000000000..647ccca18 --- /dev/null +++ b/.agent/skills/impeccable/scripts/picker/assets/index.astro_astro_type_script_index_0_lang.Cpn-pC_8.js @@ -0,0 +1,2565 @@ +(()=>{if(window.__dcxSettingsInstalled)return;window.__dcxSettingsInstalled=!0;let e=window.matchMedia(`(prefers-reduced-motion: reduce)`),t=[{label:`Open`,description:`Pick up where you left off.`,command:`/impeccable design-context open`},{label:`Edit`,description:`Make a few changes to this design context.`,command:`/impeccable design-context edit`},{label:`Export`,description:`Save a copy to share or keep elsewhere.`,command:`/impeccable design-context export`},{label:`Import`,description:`Bring a saved design context into this project.`,command:`/impeccable design-context import`}],n=e=>{let t=e?.querySelector?.(`.dcx-topbar`),n=t?.querySelector(`.dcx-close`);if(!t||!n||t.querySelector(`[data-dcx-settings-open]`))return;let r=document.createElement(`div`);r.className=`dcx-topbar-actions`;let i=document.createElement(`button`);i.className=`dcx-settings-trigger`,i.type=`button`,i.dataset.dcxSettingsOpen=``,i.setAttribute(`aria-label`,`Design context settings`),i.setAttribute(`aria-haspopup`,`dialog`),i.setAttribute(`aria-controls`,`dcx-context-settings`),i.setAttribute(`aria-expanded`,`false`),i.innerHTML=` + `;let a=t.querySelector(`.dcx-request`);(a||n).before(r),a&&r.append(a),r.append(i,n)};n(document.querySelector(`#dcx-shell-template`)?.content),document.querySelectorAll(`.dcx-expander`).forEach(n);let r=document.querySelector(`#dcx-context-settings`);r||(r=document.createElement(`dialog`),r.id=`dcx-context-settings`,r.className=`picker-modal dcx-settings-modal`,r.setAttribute(`aria-labelledby`,`dcx-context-settings-title`),r.setAttribute(`aria-describedby`,`dcx-context-settings-lede`),r.innerHTML=` +

`,document.body.appendChild(r));let i=null,a=0,o=()=>{r.querySelectorAll(`[data-dcx-copy-command]`).forEach(e=>{window.clearTimeout(e._dcxCopyTimer),e.classList.remove(`copied`),e.removeAttribute(`data-copied`)});let e=r.querySelector(`.dcx-command-status`);e&&(e.textContent=``)},s=e=>{window.clearTimeout(a),o(),i=e,e.setAttribute(`aria-expanded`,`true`),r.open||r.showModal(),requestAnimationFrame(()=>{r.classList.add(`is-visible`),r.querySelector(`[data-dcx-settings-close]`)?.focus({preventScroll:!0})})},c=({restoreFocus:t=!0,instant:n=!1}={})=>{if(!r.open)return;window.clearTimeout(a),r.classList.remove(`is-visible`);let s=()=>{r.open&&(r.close(),o(),i?.setAttribute?.(`aria-expanded`,`false`),t&&i instanceof HTMLElement&&i.isConnected&&i.focus({preventScroll:!0}),i=null)};n||e.matches?s():a=window.setTimeout(s,200)};window.closeDcxSettings=c,document.addEventListener(`click`,async e=>{let t=e.target.closest?.(`[data-dcx-settings-open]`);if(t){e.preventDefault(),s(t);return}if(e.target.closest?.(`[data-dcx-settings-close]`)){c();return}}),r.addEventListener(`click`,e=>{if(e.target!==r)return;let t=r.getBoundingClientRect();(e.clientXt.right||e.clientYt.bottom)&&c()}),r.addEventListener(`cancel`,e=>{e.preventDefault(),c()}),document.addEventListener(`keydown`,e=>{if(!r.open)return;if(e.key===`Escape`){e.preventDefault(),e.stopImmediatePropagation(),c();return}if(e.key!==`Tab`)return;let t=[...r.querySelectorAll(`button:not([disabled]), a[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex='-1'])`)].filter(e=>e.getClientRects().length>0&&!e.hidden);if(!t.length){e.preventDefault(),r.focus({preventScroll:!0});return}let n=t[0],i=t[t.length-1],a=document.activeElement;e.shiftKey&&(a===n||!r.contains(a))?(e.preventDefault(),i.focus({preventScroll:!0})):!e.shiftKey&&(a===i||!r.contains(a))&&(e.preventDefault(),n.focus({preventScroll:!0}))},!0),document.addEventListener(`dcx:document-mounted`,e=>{n(e.target)})})();var e=e=>{let t=window.dcxDocSession;return!t?.base||!t?.token?e:`${t.base}${e}?token=${encodeURIComponent(t.token)}`};(()=>{(()=>{let e=document.querySelector(`.dcx-tile[data-category="iconography"]`);if(e){e.dataset.category=`components`,e.dataset.name=`Components`,e.setAttribute(`aria-label`,`Open Components`);let t=e.querySelector(`.dcx-tile-title`);t&&(t.textContent=`Components`)}let t=document.querySelector(`#dcx-shell-template`)?.content.querySelector(`li[data-category="iconography"]`),n=t?.querySelector(`.dcx-nav-link`);t&&n&&(t.dataset.category=`components`,n.href=`#components`,n.dataset.dcxNav=`components`,n.textContent=`Components`)})();let t=[`audience`,`product`,`brand`,`color`,`typography`,`components`,`material`,`hooks`],n=window.matchMedia(`(prefers-reduced-motion: reduce)`),r=window.matchMedia(`(max-width: 920px)`),i=new Set(t),a=e=>e===`interface`||e===`dcx-category-interface`||e.startsWith(`dcx-interface-`)?`hooks`:e===`iconography`||e===`dcx-category-iconography`||e.startsWith(`dcx-iconography-`)?`material`:t.find(t=>e===t||e===`dcx-category-${t}`||e.startsWith(`dcx-${t}-`))||``,o=location.hash.slice(1),s=a(o),c=s?o:``,l=null,u=0,d=null,f=e=>e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-|-$/g,``),p=e=>document.querySelector(`.dcx-tile[data-category="${e}"]`)?.dataset.name||e,m=e=>e===`components`?`interface`:e,h=()=>t.every(e=>document.querySelector(`#dcx-detail-${m(e)}`)?.content.querySelector(`.dcx-article`))&&!!document.querySelector(`#dcx-detail-iconography`)?.content.querySelector(`.dcx-article`),g=(e,t)=>{if(!t)return 0;let n=e.main.getBoundingClientRect();return Math.max(0,t.getBoundingClientRect().top-n.top+e.main.scrollTop-18)},_=(e,t,n)=>{let r=e.main.querySelector(`:scope > .dcx-article[data-dcx-category="${n}"]`);return t===`iconography`||t===`dcx-category-iconography`||t.startsWith(`dcx-iconography-`)?e.main.querySelector(`#dcx-material-iconography`)||r:!t||t===n?r:e.main.querySelector(`#${CSS.escape(t)}`)||r},v=async e=>{try{if(navigator.clipboard?.writeText)return await navigator.clipboard.writeText(e),!0}catch{}let t=document.activeElement,n=document.createElement(`textarea`);n.value=e,n.setAttribute(`readonly`,``),n.style.position=`fixed`,n.style.opacity=`0`,document.body.appendChild(n),n.select();let r=!1;try{r=document.execCommand(`copy`)}catch{}return n.remove(),t instanceof HTMLElement&&t.isConnected&&t.focus({preventScroll:!0}),r},y=e=>{e.querySelectorAll(`.dcx-fan:not([data-dcx-document-ready])`).forEach(e=>{let t=[...e.querySelectorAll(`.dcx-fan-panel`)];if(!t.length)return;e.dataset.dcxDocumentReady=`true`;let n=n=>{e.classList.add(`is-engaged`),t.forEach((e,t)=>{e.classList.toggle(`is-active`,t===n),e.classList.toggle(`is-neighbor`,Math.abs(t-n)===1)})},r=()=>{e.classList.remove(`is-engaged`),t.forEach(e=>e.classList.remove(`is-active`,`is-neighbor`))};e.addEventListener(`mousemove`,r=>{let i=e.getBoundingClientRect(),a=Math.min(.999,Math.max(0,(r.clientX-i.left)/i.width)),o=0;t.forEach((e,t)=>{let n=Number.parseFloat(e.style.getPropertyValue(`--panel-left`))/100;a>=n&&(o=t)}),n(o)}),e.addEventListener(`mouseleave`,r),t.forEach((t,i)=>{t.addEventListener(`focus`,()=>n(i)),t.addEventListener(`blur`,()=>{e.matches(`:focus-within`)||r()}),t.addEventListener(`click`,()=>{let e=t.dataset.copyColor;if(!e)return;v(e);let n=t.querySelector(`.dcx-fan-name`),r=t.dataset.colorName||`Color`;t.classList.add(`is-copied`),n&&(n.textContent=`Copied!`),window.clearTimeout(t._dcxCopyTimer),t._dcxCopyTimer=window.setTimeout(()=>{t.classList.remove(`is-copied`),n&&(n.textContent=r)},900)})})})},b=(e,t)=>{let n=document.createElement(`section`);n.className=`dcx-block`,n.dataset.label=e;let r=document.createElement(`span`);r.className=`dcx-block-label`,r.textContent=e;let i=document.createElement(`template`);return i.innerHTML=t,n.append(r,i.content),n},ee=[{src:`/assets/brand/placeholders/hanazono-primary-mark.png`,kind:`logo`,title:`Primary mark`,alt:`Abstract botanical primary mark in textured gold leaf and patina`,width:768,height:768},{src:`/assets/brand/placeholders/hanazono-atelier-seal.png`,kind:`logo`,title:`Atelier seal`,alt:`Circular floral atelier seal in textured gold leaf and patina`,width:768,height:768},{src:`/assets/brand/placeholders/hanazono-seasonal-moodboard.webp`,kind:`moodboard`,title:`Seasonal composition`,alt:`Editorial moodboard of flowers, handmade paper, gold leaf, and vermilion thread`,width:960,height:720},{src:`/assets/brand/placeholders/hanazono-material-reference.webp`,kind:`reference`,title:`Material direction`,alt:`Material study of lacquer, washi paper, gold leaf, and verdigris patina`,width:960,height:720}],x=(e,t)=>{let n=String(e||``).split(/[\\/]/).pop()?.replace(/\.[a-z0-9]+$/i,``).replace(/[-_]+/g,` `).trim();return n?n.replace(/\b\w/g,e=>e.toUpperCase()):t},S=e=>{let t=[],n=(n,r,i)=>{e.querySelectorAll(n).forEach((e,n)=>{let a=e.querySelector(`img`);if(!a)return;let o=e.querySelector(`.dcx-asset-caption p`)?.textContent.trim(),s=e.querySelector(`.dcx-asset-caption code`)?.textContent.trim()||a.getAttribute(`src`)||``,c=o||x(s,`${i} ${n+1}`);t.push({src:a.getAttribute(`src`)||a.src,kind:r,title:c,alt:o||`${c} ${r===`logo`?`logo`:`brand image`}`,width:r===`logo`?1200:1600,height:1200})})};return n(`:scope > .dcx-block[data-label="Marks"] .dcx-mark`,`logo`,`Logo`),n(`:scope > .dcx-block[data-label="Boards and references"] .dcx-board`,`image`,`Brand image`),e.querySelectorAll(`:scope > .dcx-block[data-label="Marks"], :scope > .dcx-block[data-label="Boards and references"], :scope > .dcx-block[data-label="Assets provided"]`).forEach(e=>e.remove()),t},te=t=>{let n=S(t),r=n.length?n:ee,i=b(`Brand assets`,``);i.dataset.dcxBrandAssets=n.length?`uploaded`:`placeholder`;let a=document.createElement(`ul`);a.className=`dcx-brand-assets-grid`,a.setAttribute(`aria-label`,`Available brand assets`),r.forEach(t=>{let n=document.createElement(`li`);n.className=`dcx-brand-asset`,n.dataset.assetKind=t.kind;let r=document.createElement(`figure`),i=document.createElement(`div`);i.className=`dcx-brand-asset-frame`;let o=document.createElement(`img`);o.src=t.src.startsWith(`/assets/`)?e(t.src):t.src,o.alt=t.alt,o.width=t.width,o.height=t.height,o.loading=`lazy`,o.decoding=`async`,i.appendChild(o);let s=document.createElement(`figcaption`),c=document.createElement(`strong`);c.textContent=t.title;let l=document.createElement(`span`);l.textContent=t.kind===`logo`?`Logo`:t.kind===`moodboard`?`Moodboard`:t.kind===`reference`?`Reference`:`Image`,s.append(c,l),r.append(i,s),n.appendChild(r),a.appendChild(n)}),i.appendChild(a),t.appendChild(i);let o=t.querySelector(`:scope > header > .dcx-lede`);o&&(o.textContent=`Identity, voice, references, taste boundaries, and available assets.`)},ne=()=>e(`/assets/components/hanazono-ikebana-card.jpg`),re=e=>{e.querySelectorAll(`:scope > .dcx-block[data-label]`).forEach(e=>e.remove());let t=b(`Buttons`,` +
+
+

Variants

+
+
+ Primary + Secondary + Tertiary + Outline + Ghost + Danger + Danger soft +
+
+
+ +
+

Sizes

+
+
+ Small + Medium + Large +
+
+
+ +
+

With icons

+
+
+ + + Search + + + + Add member + + + + Email + + + + Delete + +
+
+
+ +
+

Icon only

+
+
+ + + + + + + + + +
+
+
+ +
+

Loading

+
+ + + Uploading… + +
+
+
+ `),n=b(`Input fields`,` +
+
+

States

+
+
+
+ Email address + name@example.com + Default +
+
+ Project type + Ceremony florals + Filled +
+
+ Start date + Soon + Enter a date in DD/MM/YYYY format. +
+
+
+
+ +
+

Sizes

+
+
+
+ Small + Hana +
+
+ Medium + Hanazono Atelier +
+
+ Large + Private celebration +
+
+
+
+ +
+

With leading content

+
+
+
+ Search + + + Spring arrangements + +
+
+ Budget + $4,800 +
+
+ Website + hanazono.jp +
+
+
+
+ +
+

Multiline

+
+
+
+ Tell us about the setting + A quiet evening ceremony with seasonal branches, soft candlelight, and room for the architecture to breathe. + 240 characters remaining +
+
+
+
+
+ `),r=b(`Cards`,` +
+
+

Content cards

+
+
+
+
+ Editorial +
Seasonal notes
+

Materials, timing, and the decisions behind the work.

+ Read the story +
+
+
+
+ Testimonial +
“The room felt entirely transformed, but still like us.”
+ Mika & Ren +
+
+
+
+ Details +
Autumn ceremony
+
Season
Late autumn
Setting
Kyoto townhouse
+
+
+
+
+
+ +
+

With media

+
+
+
+ Purple flowers arranged in a black ceramic vase +
+ Garden study +
Line, pause, and negative space
+

A restrained floral study built around one deliberate gesture.

+
+
+
+ Close crop of purple ikebana flowers +
+ Material note +
Dark ceramic, soft bloom
+

The same image can lead with subject or material detail.

+
+
+
+
+
+ +
+

Horizontal

+
+
+ Purple ikebana in a dark ceramic vase +
+ Featured story +
A study in asymmetry
+

How a single stem, a dark vessel, and generous space hold the composition together.

+ Explore the study +
+
+
+
+ +
+

With actions

+
+
+
+
+ Consultation +
Plan the first conversation
+

Share the date and setting so the studio can prepare.

+ Book now +
+
+
+
+ Commission guide +
Understand the process
+

Read the stages, timing, and what the studio needs from you.

+ View the guide +
+
+
+
+
+
+ + `);e.append(t,n,r)},C=e=>{let n=document.createDocumentFragment(),r=document.createElement(`h1`);r.className=`dcx-document-title`,r.textContent=`Design context`,n.appendChild(r),t.forEach(e=>{let t=document.querySelector(`#dcx-detail-${m(e)}`).content.cloneNode(!0).querySelector(`.dcx-article`);if(t){if(e===`components`){re(t);let e=t.querySelector(`:scope > header > .dcx-title`),n=t.querySelector(`:scope > header > .dcx-lede`);e&&(e.textContent=`Components`),n&&(n.textContent=`A compact visual inventory of reusable interface patterns.`)}if(e===`brand`&&te(t),e===`material`){let e=b(`Accessibility`,` +
+
+
Contrast on paper
+
The accent color is reserved for display-scale text. Small links, labels, and inline commands use high-contrast ink on the page ground.
+
+
+
Reading comfort
+
Body copy is set in the committed body face at a 1.65–1.8 line height and a 65–75ch reading measure.
+
+
+
Keyboard focus
+
Interactive elements show a visible focus outline with a clear offset.
+
+
+
Texture & text
+
Text never sits directly on high-contrast texture. Move texture to an edge, or put a solid veil behind the copy.
+
+
+ `),n=t.querySelector(`:scope > .dcx-block[data-label="Motion per surface"], :scope > .dcx-block[data-label="Motion"]`),r=t.querySelector(`:scope > .dcx-block[data-label="Layout structure"]`);n?n.after(e):r?r.before(e):t.appendChild(e);let i=(document.querySelector(`#dcx-detail-iconography`)?.content.querySelector(`.dcx-article`))?.querySelector(`:scope > .dcx-block[data-label="Library"]`)?.cloneNode(!0);if(i){i.dataset.label=`Iconography`,i.dataset.dcxMovedIconography=`true`;let e=i.querySelector(`:scope > .dcx-block-label`);e&&(e.textContent=`Iconography`),t.appendChild(i)}let a=t.querySelector(`:scope > header > .dcx-lede`);a&&(a.textContent=`Motion, accessibility, layout structure, boundaries, corners, depth, and iconography.`)}t.querySelector(`:scope > header > .dcx-eyebrow`)?.remove(),t.dataset.dcxCategory=e,t.id=`dcx-category-${e}`,t.classList.add(`dcx-document-article`),t.setAttribute(`aria-label`,p(e)),t.querySelectorAll(`.dcx-block[data-label]`).forEach(t=>{t.id=`dcx-${e}-${f(t.dataset.label||`section`)}`}),n.appendChild(t)}}),e.main.replaceChildren(n),e.main.dataset.dcxContinuous=`true`,e.expander.dataset.dcxDocument=`true`,y(e.main),e.expander.dispatchEvent(new CustomEvent(`dcx:document-mounted`,{bubbles:!0}))},w=e=>{let t=[...e.querySelectorAll(`:scope > .dcx-block[data-label]`)],n=new Map(t.map(e=>[e.dataset.label,e]));return[{label:`People`,target:n.get(`Who they are`)},{label:`Decision factors`,target:n.get(`Needs`)||n.get(`Trust triggers`)},{label:`Inclusion`,target:n.get(`Who must not be excluded`)}].filter(e=>e.target)},ie=e=>[...e.querySelectorAll(`:scope > .dcx-block[data-label]`)].map(e=>({label:e.dataset.label,target:e})),ae=(e,t,n)=>{let r=t===`audience`?w(n):ie(n),i=e.nav.querySelector(`.dcx-nav-list > li[data-category="${t}"]`)?.querySelector(`:scope > .dcx-subnav`);if(!i)return;let a=r.map(({label:e,target:t})=>`${e}:${t.id}`).join(`|`),o=()=>{let e=[...i.querySelectorAll(`:scope > .dcx-sub-link`)],n=e.map(e=>e.getBoundingClientRect().height);if(!n.some(e=>e>0))return;let r=t===`audience`,a=r?0:2,o=r?14:10,s=n.reduce((e,t)=>e+t,0)+Math.max(0,e.length-1)*a+o;i.style.setProperty(`--dcx-subnav-height`,`${Math.ceil(s)}px`)};if(i.dataset.dcxDocumentSignature===a){o();return}let s=r.map(({label:e,target:n})=>{let r=document.createElement(`a`);return r.className=`dcx-sub-link`,r.href=`#${n.id}`,r.textContent=e,r.dataset.dcxDocumentTarget=n.id,t===`audience`&&(r.dataset.dcxRailSummary=``),r});i.replaceChildren(...s),i.dataset.dcxDocumentSignature=a,i.classList.toggle(`dcx-subnav--summary`,t===`audience`),o()},oe=e=>{t.forEach(t=>{let n=e.main.querySelector(`:scope > .dcx-article[data-dcx-category="${t}"]`);n&&ae(e,t,n)})},se=(e,t,{updateHash:a=!1}={})=>{if(!i.has(t))return;let o=e.main.querySelector(`:scope > .dcx-article[data-dcx-category="${t}"]`);if(!o)return;let s=e.currentCategory;if(s===t){ae(e,t,o),e.expander.querySelector(`.dcx-current`).textContent=p(t);return}if(s&&e.expander.dispatchEvent(new CustomEvent(`dcx:continuouscategorywillchange`,{bubbles:!0,detail:{from:s,to:t,source:e.pinnedCategory===t?`navigation`:`scroll`}})),e.currentCategory=t,e.expander.dataset.dcxCurrentCategory=t,e.expander.querySelector(`.dcx-current`).textContent=p(t),e.nav.querySelectorAll(`.dcx-nav-list > li[data-category]`).forEach(e=>{let n=e.dataset.category===t;e.classList.toggle(`is-active`,n);let r=e.querySelector(`:scope > .dcx-nav-link`),i=e.querySelector(`:scope > .dcx-subnav`);n?(r?.setAttribute(`aria-current`,`page`),r?.setAttribute(`aria-expanded`,`true`),i?.removeAttribute(`aria-hidden`),i&&(i.inert=!1)):(r?.removeAttribute(`aria-current`),r?.removeAttribute(`aria-expanded`),i?.setAttribute(`aria-hidden`,`true`),i&&(i.inert=!0))}),ae(e,t,o),r.matches){let r=e.nav.querySelector(`.dcx-nav-list > li[data-category="${t}"]`);requestAnimationFrame(()=>{r?.scrollIntoView({behavior:n.matches?`auto`:`smooth`,block:`nearest`,inline:`nearest`})})}e.expander.dispatchEvent(new CustomEvent(`dcx:continuouscategorychange`,{bubbles:!0,detail:{category:t,article:o}})),a&&history.replaceState({category:t},``,`#${t}`)},ce=e=>{let t=[...e.main.querySelectorAll(`:scope > .dcx-article[data-dcx-category]`)];if(!t.length)return`audience`;if(e.pinnedCategory)return e.pinnedCategory;let n=e.main.getBoundingClientRect().top+e.main.clientHeight*.24,r=t[0];return t.forEach(e=>{e.getBoundingClientRect().top<=n&&(r=e)}),e.main.scrollTop+e.main.clientHeight>=e.main.scrollHeight-4&&(r=t.at(-1)),r.dataset.dcxCategory},le=e=>{e.scrollFrame||=requestAnimationFrame(()=>{e.scrollFrame=0;let t=ce(e);t!==e.currentCategory&&se(e,t,{updateHash:!0})})},ue=e=>{e.pinnedCategory=``,window.clearTimeout(e.pinTimer)},de=(e,t,r,{instant:a=!1,historyMode:o=`push`,hash:s=r}={})=>{if(!t||!i.has(r))return;e.pinnedCategory=r,se(e,r);let c=t===e.main.firstElementChild?0:g(e,t);e.main.scrollTo({top:c,behavior:a||n.matches?`auto`:`smooth`}),o===`push`&&history.pushState({category:r},``,`#${s}`),o===`replace`&&history.replaceState({category:r},``,`#${s}`),window.clearTimeout(e.pinTimer),e.pinTimer=window.setTimeout(()=>{e.pinnedCategory=``,le(e)},a?80:760)},fe=(e,t,n={})=>{let r=e.main.querySelector(`:scope > .dcx-article[data-dcx-category="${t}"]`);de(e,r,t,n)},T=(e,t)=>{let n=t.target.closest(`.dcx-nav-link[data-dcx-nav]`);if(n&&e.nav.contains(n)){t.preventDefault();let r=n.dataset.dcxNav;fe(e,r);return}let r=t.target.closest(`.dcx-sub-link[data-dcx-document-target]`);if(!r||!e.nav.contains(r))return;t.preventDefault();let i=e.main.querySelector(`#${CSS.escape(r.dataset.dcxDocumentTarget)}`);de(e,i,e.currentCategory,{historyMode:`replace`,hash:r.dataset.dcxDocumentTarget})},pe=(e,{updateHistory:t=!0}={})=>{if(!e||e.closing)return;window.closeDcxSettings?.({restoreFocus:!1,instant:!0}),e.closing=!0,e.expander.dataset.dcxClosing=`true`,ue(e),e.scrollFrame&&cancelAnimationFrame(e.scrollFrame),e.contentFrame&&cancelAnimationFrame(e.contentFrame),e.layoutFrame&&cancelAnimationFrame(e.layoutFrame),e.contentObserver?.disconnect(),e.layoutObserver?.disconnect(),e.main.removeEventListener(`scroll`,e.onScroll),e.main.removeEventListener(`wheel`,e.onManualScroll),e.main.removeEventListener(`touchstart`,e.onManualScroll),e.main.removeEventListener(`pointerdown`,e.onManualScroll),e.nav.removeEventListener(`click`,e.onNavClick);let r=(document.querySelector(`.dcx-tile[data-category="${e.currentCategory}"]`)||e.opener)?.getBoundingClientRect()||e.originRect;e.expander.classList.remove(`is-ready`,`is-full`),e.expander.style.top=`${r.top}px`,e.expander.style.left=`${r.left}px`,e.expander.style.width=`${r.width}px`,e.expander.style.height=`${r.height}px`,t&&history.pushState(null,``,`${location.pathname}${location.search}`);let i=()=>{e.expander.remove(),document.body.classList.remove(`is-locked`),e.background&&(e.background.inert=!1,e.background.removeAttribute(`aria-hidden`)),e.opener?.focus({preventScroll:!0}),l===e&&(l=null)};n.matches?i():e.closeTimer=window.setTimeout(i,540)},E=(e,{historyMode:t=`push`,opener:r=null,targetHash:a=e}={})=>{if(!i.has(e)||!h())return!1;if(l)return fe(l,e,{historyMode:t}),!0;let o=r||document.querySelector(`.dcx-tile[data-category="${e}"]`),s=document.querySelector(`#dcx-shell-template`);if(!o||!s)return!1;let c=o.getBoundingClientRect(),u=document.createElement(`section`);u.className=`dcx-expander`,u.dataset.dcxDocument=`true`,u.setAttribute(`role`,`dialog`),u.setAttribute(`aria-modal`,`true`),u.setAttribute(`aria-label`,`Design context document`),u.style.top=`${c.top}px`,u.style.left=`${c.left}px`,u.style.width=`${c.width}px`,u.style.height=`${c.height}px`,u.appendChild(s.content.cloneNode(!0));let d=document.querySelector(`[data-dcx-shell]`);d&&(d.inert=!0,d.setAttribute(`aria-hidden`,`true`)),document.body.appendChild(u),document.body.classList.add(`is-locked`);let f={expander:u,main:u.querySelector(`.dcx-main`),nav:u.querySelector(`.dcx-nav`),opener:o,originRect:c,background:d,currentCategory:``,pinnedCategory:e,pinTimer:0,scrollFrame:0,contentFrame:0,layoutFrame:0,initialCategory:e,initialHash:a,settleUntil:performance.now()+3200,userInteracted:!1,closing:!1};return l=f,C(f),oe(f),f.onScroll=()=>le(f),f.onManualScroll=()=>{f.userInteracted=!0,f.layoutObserver?.disconnect(),ue(f)},f.onNavClick=e=>{f.userInteracted=!0,T(f,e)},f.contentObserver=new MutationObserver(()=>{f.contentFrame||=requestAnimationFrame(()=>{if(f.contentFrame=0,y(f.main),se(f,f.currentCategory),!f.userInteracted&&performance.now(){f.layoutFrame||f.userInteracted||performance.now()>=f.settleUntil||(f.layoutFrame=requestAnimationFrame(()=>{f.layoutFrame=0;let e=_(f,f.initialHash,f.initialCategory);de(f,e,f.initialCategory,{instant:!0,historyMode:`replace`,hash:f.initialHash})}))}),f.main.querySelectorAll(`:scope > .dcx-article[data-dcx-category]`).forEach(e=>{f.layoutObserver.observe(e)}),f.main.addEventListener(`scroll`,f.onScroll,{passive:!0}),f.main.addEventListener(`wheel`,f.onManualScroll,{passive:!0}),f.main.addEventListener(`touchstart`,f.onManualScroll,{passive:!0}),f.main.addEventListener(`pointerdown`,f.onManualScroll,{passive:!0}),f.nav.addEventListener(`click`,f.onNavClick),u.querySelector(`.dcx-close`)?.addEventListener(`click`,()=>pe(f)),se(f,e),t===`push`&&history.pushState({category:e},``,`#${a}`),t===`replace`&&history.replaceState({category:e},``,`#${a}`),requestAnimationFrame(()=>{u.classList.add(`is-full`);let t=_(f,a,e);de(f,t,e,{instant:!0,historyMode:`none`,hash:a}),window.setTimeout(()=>{u.classList.add(`is-ready`),u.querySelector(`.dcx-close`)?.focus({preventScroll:!0})},n.matches?0:260)}),[180,520,1100,1800,3e3].forEach(t=>{window.setTimeout(()=>{if(l===f&&!f.userInteracted){let t=_(f,f.initialHash,e);de(f,t,e,{instant:!0,historyMode:`replace`,hash:f.initialHash})}},t)}),!0},me=e=>{let t=e.target.closest(`.dcx-tile[data-category]`);!t||!document.querySelector(`[data-dcx-shell]`)?.contains(t)||i.has(t.dataset.category)&&h()&&(e.preventDefault(),e.stopImmediatePropagation(),E(t.dataset.category,{opener:t}))},he=e=>{if(!(e.key===`Escape`&&document.querySelector(`#dcx-context-settings[open]`))){if(e.key===`Escape`&&l){e.preventDefault(),e.stopImmediatePropagation(),pe(l);return}l&&[`ArrowDown`,`ArrowUp`,`PageDown`,`PageUp`,`Home`,`End`,` `].includes(e.key)&&(l.userInteracted=!0,ue(l))}},ge=e=>{let t=location.hash.slice(1),n=a(t);if(l?.closing&&n){e.stopImmediatePropagation(),window.closeDcxSettings?.({restoreFocus:!1,instant:!0});let r=l;window.clearTimeout(r.closeTimer),r.expander.remove(),r.background&&(r.background.inert=!1,r.background.removeAttribute(`aria-hidden`)),document.body.classList.remove(`is-locked`),l=null,E(n,{historyMode:`none`,targetHash:t});return}if(!l){if(!n){s=``,c=``;return}e.stopImmediatePropagation(),h()?E(n,{historyMode:`none`,targetHash:t}):(s=n,c=t,d||(d=new MutationObserver(ve),d.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`class`,`hidden`]})),ve());return}if(e.stopImmediatePropagation(),n){let e=_(l,t,n);de(l,e,n,{historyMode:`none`,hash:t})}else pe(l,{updateHistory:!1})},_e=()=>{if(u=0,!s){document.body.classList.contains(`dcx-open`)&&h()&&(d?.disconnect(),d=null);return}if(l)return;let e=document.querySelector(`[data-dcx-shell]`);if(!document.body.classList.contains(`dcx-open`)||e?.hidden||!h())return;let t=s;E(t,{historyMode:`replace`,targetHash:c||t})&&(s=``,c=``,d?.disconnect(),d=null)},ve=()=>{u||=requestAnimationFrame(_e)};window.dcxDocument={isOpen:()=>!!l,currentCategory:()=>l?.currentCategory||``,remount:()=>{if(!l||l.closing)return;let e=l,t=e.currentCategory||e.initialCategory,n=e.main.scrollTop;e.userInteracted=!0,ue(e),C(e),oe(e),e.currentCategory=``,se(e,t),requestAnimationFrame(()=>{requestAnimationFrame(()=>{e.main.scrollTop=n})})}},s&&history.replaceState(history.state,``,`${location.pathname}${location.search}`),document.addEventListener(`click`,me,!0),document.addEventListener(`click`,async e=>{let t=e.target.closest?.(`[data-dcx-copy-command]`);if(!t)return;let n=t.dataset.dcxCopyCommand,r=t.closest(`[data-dcx-command-context]`)?.querySelector(`.dcx-command-status`),i=await v(n);window.clearTimeout(t._dcxCopyTimer),t.classList.remove(`copied`),t.offsetWidth,t.classList.toggle(`copied`,i),t.dataset.copied=String(i),r&&(r.textContent=i?`Command copied.`:`The command could not be copied.`),t._dcxCopyTimer=window.setTimeout(()=>{t.classList.remove(`copied`),t.removeAttribute(`data-copied`),r&&(r.textContent=``)},1200)}),document.addEventListener(`keydown`,he,!0),window.addEventListener(`popstate`,ge,!0),d=new MutationObserver(ve),d.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`class`,`hidden`]}),ve()})(),(()=>{let t=[{labels:[`Who they are`],slug:`who-they-are`,variant:`people`,lede:`The core people this experience must speak to.`,icon:`audience-groups-foil.png`},{labels:[`Emotional journey`,`Emotional state`],slug:`emotional-journey`,variant:`journey`,lede:`The change in confidence the experience should create.`,icon:`emotional-journey-foil.png`},{labels:[`Needs`],slug:`needs`,variant:`list`,lede:`What the experience must make clear and easy.`,icon:`needs-foil.png`},{labels:[`Trust triggers`],slug:`trust-triggers`,variant:`list`,lede:`The signals that turn interest into confidence.`,icon:`trust-triggers-foil.png`},{labels:[`Who must not be excluded`],slug:`inclusion`,variant:`list`,lede:`Access requirements that belong in the core experience.`,icon:`inclusion-foil.png`}],n=0,r=e=>t.find(t=>t.labels.includes(e)),i=e=>{e.querySelectorAll(`:scope > .dcx-cols`).forEach(e=>{let t=document.createDocumentFragment();[...e.children].forEach(e=>t.appendChild(e)),e.replaceWith(t)})},a=t=>{t.dataset.dcxAudienceEnhanced!==`true`&&(t.classList.add(`dcx-audience`),t.querySelector(`:scope > header`)?.classList.add(`dcx-audience-hero`),i(t),[...t.querySelectorAll(`:scope > .dcx-block[data-label]`)].forEach((n,i)=>{let a=n.dataset.label||``,o=r(a);if(!o)return;n.querySelector(`:scope > .dcx-block-label`)?.remove();let s=document.createElement(`div`);for(s.className=`dcx-audience-section-body`;n.firstChild;)s.appendChild(n.firstChild);let c=document.createElement(`div`);c.className=`dcx-audience-section-heading`;let l=document.createElement(`h3`);l.className=`dcx-audience-section-title`,l.id=`dcx-audience-${o.slug}-title`,l.textContent=a;let u=document.createElement(`p`);u.className=`dcx-audience-section-lede`,u.textContent=o.lede,c.append(l,u);let d=document.createElement(`figure`);d.className=`dcx-audience-section-icon`,d.setAttribute(`data-dcx-hide-on-error`,``),d.setAttribute(`aria-hidden`,`true`);let f=document.createElement(`img`);f.src=e(`/assets/audience/${o.icon}`),f.alt=``,f.width=256,f.height=256,f.decoding=`async`,i>0&&(f.loading=`lazy`),d.appendChild(f);let p=document.createElement(`header`);if(p.className=`dcx-audience-section-head`,p.append(c,d),n.classList.add(`dcx-audience-section`,`dcx-audience-section--${o.variant}`),n.id=`dcx-audience-${o.slug}`,t.dataset.dcxCategory||(n.setAttribute(`role`,`region`),n.setAttribute(`aria-labelledby`,l.id)),o.variant===`journey`){let e=s.querySelector(`.dcx-callout-pair`);if(e&&(e.classList.add(`dcx-audience-journey`),e.children.length>1)){let t=document.createElement(`div`);t.className=`dcx-audience-journey-arrow`,t.setAttribute(`aria-hidden`,`true`),t.textContent=`→`,e.children[0].after(t)}}o.variant===`list`&&s.querySelector(`.dcx-list`)?.classList.add(`dcx-audience-list`),n.append(p,s)}),t.dataset.dcxAudienceEnhanced=`true`)},o=()=>{n=0;let e=document.querySelector(`.dcx-expander`);if(!e)return;let t=e.querySelector(`.dcx-main > .dcx-article[data-dcx-category="audience"]`);if(t){a(t);return}let r=e.querySelector(`.dcx-nav-list li[data-category="audience"].is-active`),i=e.querySelector(`.dcx-main > .dcx-article`);r&&i&&a(i)},s=()=>{n||=requestAnimationFrame(o)};new MutationObserver(s).observe(document.body,{childList:!0,subtree:!0}),window.addEventListener(`pageshow`,s),s()})();var t=JSON.parse(`[{"id":"side-tab","name":"Side-tab accent border","description":"Thick colored border on one side of a card — the most recognizable tell of AI-generated UIs. Use a subtler accent or remove it entirely.","group":"slop","discipline":"Visual Details"},{"id":"border-accent-on-rounded","name":"Border accent on rounded element","description":"Thick accent border on a rounded card — the border clashes with the rounded corners. Remove the border or the border-radius.","group":"slop","discipline":"Visual Details"},{"id":"overused-font","name":"Overused font","description":"Inter, Roboto, Fraunces, Geist, Plus Jakarta Sans, and Space Grotesk are used on so many sites they no longer feel distinctive. Each new wave of AI-generated UIs converges on the same handful of faces. Choose a face that gives your interface personality.","group":"slop","discipline":"Typography"},{"id":"flat-type-hierarchy","name":"Flat type hierarchy","description":"Font sizes are too close together — no clear visual hierarchy. Use fewer sizes with more contrast (aim for at least a 1.25 ratio between steps).","group":"slop","discipline":"Typography"},{"id":"gradient-text","name":"Gradient text","description":"Gradient text is decorative rather than meaningful — a common AI tell, especially on headings and metrics. Use solid colors for text.","group":"slop","discipline":"Color & Contrast"},{"id":"ai-color-palette","name":"AI color palette","description":"Purple/violet gradients and cyan-on-dark are the most recognizable tells of AI-generated UIs. Choose a distinctive, intentional palette.","group":"slop","discipline":"Color & Contrast"},{"id":"cream-palette","name":"Cream / beige palette","description":"A warm cream or beige page background has become the default \\"tasteful\\" AI surface, reached for by reflex. Choose a background that comes from a deliberate palette, not the safe warm off-white.","group":"slop","discipline":"Color & Contrast"},{"id":"nested-cards","name":"Nested cards","description":"Cards inside cards create visual noise and excessive depth. Flatten the hierarchy — use spacing, typography, and dividers instead of nesting containers.","group":"slop","discipline":"Layout & Space"},{"id":"monotonous-spacing","name":"Monotonous spacing","description":"The same spacing value used everywhere — no rhythm, no variation. Use tight groupings for related items and generous separations between sections.","group":"slop","discipline":"Layout & Space"},{"id":"bounce-easing","name":"Bounce or elastic easing","description":"Bounce and elastic easing feel dated and tacky. Real objects decelerate smoothly — use exponential easing (ease-out-quart/quint/expo) instead.","group":"slop","discipline":"Motion"},{"id":"pulsing-dot","name":"Pulsing status dot","description":"Small pulsing status dots simulate liveness decoratively. Reserve pulse animation for indicators tied to genuinely live, changing data; a static indicator with clear labeling is honest and calmer.","group":"slop","discipline":"Motion"},{"id":"blinking-cursor","name":"Decorative blinking cursor","description":"A blinking text cursor animated into a hero or landing section simulates typing where no input exists. It borrows the dev-tool aesthetic as decoration. Real editable fields draw their own caret; anywhere else, let the composition hold attention without a fake prompt.","group":"slop","discipline":"Motion"},{"id":"shape-assembled-illustration","name":"Shape-assembled illustration","description":"A large inline SVG that builds a pictorial scene from a pile of primitive shapes reads as placeholder clip art, not illustration. Icons, logos, and data graphics are fine at their scale; a hero-sized visual deserves real artwork, a photograph, or a deliberately drawn graphic.","group":"slop","discipline":"Imagery"},{"id":"dark-glow","name":"Glowing shadow accents","description":"Colored glow shadows — a zero-offset chromatic halo (box- or text-shadow) on any background, or any colored blurred shadow on a dark background — are the default \\"cool\\" look of AI-generated UIs. Use neutral elevation shadows and subtle, purposeful lighting instead.","group":"slop","discipline":"Color & Contrast"},{"id":"radial-halo","name":"Radial-gradient background halo","description":"A chromatic radial-gradient wash — saturated at the center, fading to transparent — used as a decorative background glow on a dark page. Same tell as glowing shadows, drawn with a gradient instead of a shadow. Ground the surface with a solid or subtly shifted background instead.","group":"slop","discipline":"Color & Contrast"},{"id":"radial-spotlight-glow","name":"Decorative radial spotlight glow","description":"A soft, low-opacity accent-colored radial gradient fading to transparent, dropped behind a hero or section as a \\"spotlight.\\" It is a reflex AI decoration — the translucent cousin of the saturated radial halo. Let the surface stand on its own, or light the composition with a deliberate material accent rather than a floating colored haze.","group":"slop","discipline":"Color & Contrast"},{"id":"marquee","name":"Auto-scrolling marquee","description":"Continuously auto-scrolling content demands attention it has not earned and hides half its content at any moment. Reserve motion for content that changes; let readers move at their own pace.","group":"slop","discipline":"Motion"},{"id":"icon-tile-stack","name":"Icon tile stacked above heading","description":"A small rounded-square icon container above a heading is the universal AI feature-card template — every generator outputs this exact shape. Try a side-by-side icon and heading, or let the icon sit in flow without its own container.","group":"slop","discipline":"Typography"},{"id":"italic-serif-display","name":"Italic serif display headline","description":"Oversized italic serif (Fraunces, Recoleta, Playfair, Newsreader-italic) as the primary hero headline reads as taste in isolation but has become the universal AI-startup landing page hero. Set roman, or move to a non-serif display face. Editorial / magazine register may legitimately want this — judge by context.","group":"slop","discipline":"Typography"},{"id":"hero-eyebrow-chip","name":"Hero eyebrow / pill chip","description":"A tiny uppercase letter-spaced label sitting immediately above an oversized hero headline — or the same shape rendered as a pill chip — is now the default AI SaaS hero. Drop the eyebrow, integrate the kicker into the headline, or run it as a navigation breadcrumb instead.","group":"slop","discipline":"Typography"},{"id":"kicker-above-heading","name":"Kicker / eyebrow label above heading","description":"A tiny tracked uppercase or small-caps label sitting as its own block directly above a heading is banned outright, repeated or not. Generated kickers never earn their place: the heading carries its own weight. Delete the label and let the heading speak; if the words matter, work them into the heading or the body.","group":"slop","discipline":"Typography"},{"id":"numbered-section-labels","name":"Tiny numbered section labels","description":"Small numeric index labels riding next to section headings, repeated section after section, are AI editorial scaffolding — a page numbering its own chapters instead of earning structure. Let hierarchy, content, and rhythm carry the sequence.","group":"slop","discipline":"Layout & Space"},{"id":"em-dash-overuse","name":"Em-dash overuse","description":"Em-dash saturation in body copy is an AI cadence tell. Advisory only: humans use em-dashes legitimately, so this fires only on saturation — at least 8 em-dashes (— or --) at a density near one per 500 characters of body text — never on a long article that uses a few. Prefer commas, colons, periods, or parentheses.","group":"slop","discipline":"Copy"},{"id":"marketing-buzzword","name":"Marketing buzzword","description":"Generic SaaS phrases (streamline / empower / supercharge / world-class / enterprise-grade / next-generation / cutting-edge / etc) are instant AI tells. Pick a specific verb and noun that says what the product literally does.","group":"slop","discipline":"Copy"},{"id":"aphoristic-cadence","name":"Aphoristic-cadence copy","description":"Three or more sections landing on a short rebuttal sentence (\\"X. No Y.\\" / \\"X. Just Y.\\") or a manufactured-contrast aphorism (\\"Not a feature. A platform.\\") reads as AI cadence, not voice. Once is fine; the pattern is the tell.","group":"slop","discipline":"Copy"},{"id":"oversized-h1","name":"Oversized hero headline","description":"A full-sentence headline set at display size ends up dominating the viewport, leaving no room for anything else above the fold. A punchy one- or two-word headline at that size is fine — the problem is a long headline blown up too large. Set long headlines smaller, or tighten the copy.","group":"slop","discipline":"Typography"},{"id":"extreme-negative-tracking","name":"Crushed letter spacing","description":"Letter-spacing pulled tighter than the point where characters keep their own shapes costs legibility. Tighten display type optically, not destructively.","group":"slop","discipline":"Typography"},{"id":"broken-image","name":"Broken or placeholder image","description":" tags with empty src, missing src, or placeholder values ship as broken-image boxes. Use real images, generated assets, or remove the tag.","group":"quality","discipline":"Imagery"},{"id":"script-error","name":"Uncaught script error on load","description":"A script threw an uncaught exception or failed to parse while the page loaded. Broken JavaScript silently kills reveals, interactions, and dynamic content, and can leave most of a page invisible. Fix the error before judging anything else.","group":"quality","discipline":"Quality"},{"id":"content-hidden-at-rest","name":"Content invisible at rest","description":"A large share of the page text sits at opacity 0 or visibility hidden even after every reveal handler had a chance to run. This is the failed-reveal signature: the content shipped but never becomes visible. Make content visible by default and let JavaScript enhance its entrance instead of gating its existence.","group":"quality","discipline":"Layout & Space"},{"id":"edge-flush-cards","name":"Cards flush against the scroller edge","description":"Cards inside a horizontal scroller or tab panel sit flush against the container edge at rest while keeping a gutter on the other side, so their edges and rounded corners get cut off. Usually the panel is sized wider than its clip box. Keep a consistent inset on both sides.","group":"quality","discipline":"Layout & Space"},{"id":"text-occlusion","name":"Text occluded by an overlapping element","description":"Text is painted under an opaque element or a second text run, so part of it cannot be read. A decorative box, a stacked layer, or an inline element with leaked padding lands on the words instead of beside them. Give overlapping layers room, or move the text out from under the layer above it.","group":"quality","discipline":"Layout & Space"},{"id":"first-viewport-column-overflow","name":"One column stretches the first viewport","description":"A multi-column opening section lets one column run far past the fold while its sibling fits in a single viewport, so the short column floats in dead space and the fold falls deep inside one section. Balance the columns, cap the tall one, or let the long content flow below the opening row.","group":"quality","discipline":"Layout & Space"},{"id":"gray-on-color","name":"Gray text on colored background","description":"Gray text looks washed out on colored backgrounds. Use a darker shade of the background color instead, or white/near-white for contrast.","group":"quality","discipline":"Color & Contrast"},{"id":"low-contrast","name":"Low contrast text","description":"Text does not meet WCAG AA contrast requirements (4.5:1 for body, 3:1 for large text). Increase the contrast between text and background.","group":"quality","discipline":"Quality"},{"id":"layout-transition","name":"Layout property animation","description":"Animating width, height, padding, or margin causes layout thrash and janky performance. Use transform and opacity instead, or grid-template-rows for height animations.","group":"quality","discipline":"Motion"},{"id":"line-length","name":"Line length too long","description":"Text lines wider than ~80 characters are hard to read. The eye loses its place tracking back to the start of the next line. Add a max-width (65ch to 75ch) to text containers.","group":"quality","discipline":"Layout & Space"},{"id":"cramped-padding","name":"Cramped padding","description":"Text is too close to the edge of its container. Two shapes: (1) an element with its own text where the padding is too low for the font size, and (2) a wrapper with text-bearing children and near-zero padding against a visible boundary (border, outline, or non-transparent background) — children land flush against the boundary line. Add at least 8px (ideally 12–16px) of padding inside bordered, outlined, or colored containers.","group":"quality","discipline":"Layout & Space"},{"id":"body-text-viewport-edge","name":"Body text touching viewport edge","description":"Body paragraphs render flush against the left or right viewport edge with no container providing horizontal padding. Wrap content in a container with at least 16px (ideally 24-32px) of horizontal padding, or apply max-width with mx-auto.","group":"quality","discipline":"Layout & Space"},{"id":"tight-leading","name":"Tight line height","description":"Line height below 1.3x the font size makes multi-line text hard to read. Use 1.5 to 1.7 for body text so lines have room to breathe.","group":"quality","discipline":"Typography"},{"id":"skipped-heading","name":"Skipped heading level","description":"Heading levels should not skip (e.g. h1 then h3 with no h2). Screen readers use heading hierarchy for navigation. Skipping levels breaks the document outline.","group":"quality","discipline":"Typography"},{"id":"heading-rhythm","name":"Heading crowded against the previous block","description":"A heading binds to the content it introduces, so the rendered space above it should exceed the space below it. When headings across a page sit as close or closer to the block above than to their own content, every section reads as if it captions the previous one. Open up the space above each heading.","group":"quality","discipline":"Layout & Space"},{"id":"justified-text","name":"Justified text","description":"Justified text without hyphenation creates uneven word spacing (\\"rivers of white\\"). Use text-align: left for body text, or enable hyphens: auto if you must justify.","group":"quality","discipline":"Typography"},{"id":"tiny-text","name":"Tiny body text","description":"Body text below 12px is hard to read, especially on high-DPI screens. Use at least 14px for body content, 16px is ideal.","group":"quality","discipline":"Typography"},{"id":"undersized-ui-text","name":"Undersized functional text","description":"Interactive and content-bearing UI text (links, buttons, nav items, labels, table cells, meta rows, timecodes) below 11px is a legibility failure, not a style choice. WCAG sets no absolute pixel floor, but functional text under 11px is a defensible quality bar: it fails on high-DPI and small viewports and it degrades tap and read targets. The 11px floor holds even inside a footer; only non-interactive legal smallprint gets the softer 10px floor. Being ON the DESIGN.md size ramp does not exempt a value here: adding 8px to the ramp launders the token but not the legibility problem, and that is exactly the escape hatch this rule closes. Exempts sup/sub, visually-hidden (sr-only) text, and code/terminal contexts. Decorative letterspaced micro-labels are still functional and stay in scope.","group":"quality","discipline":"Typography"},{"id":"all-caps-body","name":"All-caps body text","description":"Long passages in uppercase are hard to read. We recognize words by shape (ascenders and descenders), which all-caps removes. Reserve uppercase for short labels and headings.","group":"quality","discipline":"Typography"},{"id":"wide-tracking","name":"Wide letter spacing on body text","description":"Letter spacing above 0.05em on body text disrupts natural character groupings and slows reading. Reserve wide tracking for short uppercase labels only.","group":"quality","discipline":"Typography"},{"id":"text-overflow","name":"Content overflowing its container","description":"Content renders wider than its container, spilling out or forcing a horizontal scrollbar. Let text wrap, constrain widths, or give the region a deliberate scroll affordance.","group":"quality","discipline":"Layout & Space"},{"id":"repeated-container-text","name":"Same text repeated inside one container","description":"The same literal text rendered three or more times in structurally different spots inside a single card or panel is redundant messaging — usually a status or label wired into every slot of a template. Say it once, in the slot where it matters most.","group":"quality","discipline":"Quality"},{"id":"clipped-overflow-container","name":"Positioned child clipped by overflow container","description":"A clipping container (overflow hidden or clip) wrapping an absolutely-positioned child cuts off tooltips, menus, and popovers that need to escape. Let the overflow be visible, or move the positioned layer out of the clip.","group":"quality","discipline":"Layout & Space"},{"id":"design-system-font","name":"Font outside DESIGN.md","description":"A font is used that is not declared in DESIGN.md typography. Use the documented type system or update DESIGN.md if this is an intentional brand addition.","group":"quality","discipline":"Typography"},{"id":"design-system-color","name":"Color outside DESIGN.md","description":"A literal color is outside the DESIGN.md palette and sidecar tonal ramps. This may be legitimate, but it should be an intentional design-system addition rather than drift.","group":"quality","discipline":"Color & Contrast"},{"id":"design-system-radius","name":"Radius outside DESIGN.md","description":"A border-radius value is outside the DESIGN.md rounded scale. Use a documented radius token or update the design system if the new shape is intentional.","group":"quality","discipline":"Visual Details"},{"id":"design-system-font-size","name":"Font size outside DESIGN.md","description":"A literal font-size is off the type ramp documented in DESIGN.md typography. Use a documented size step or update the design system if the new step is intentional.","group":"quality","discipline":"Typography"},{"id":"gpt-thin-border-wide-shadow","name":"Hairline border with wide shadow","description":"A hairline border paired with a wide, diffuse shadow is a recurring generated-UI signature. Commit to one — a defined edge or a soft elevation — rather than both at once.","group":"fingerprints","discipline":"Visual Details"},{"id":"repeating-stripes-gradient","name":"Repeating-gradient stripes","description":"Repeating-gradient stripes used as surface decoration are a recurring generated-UI signature. Reach for a deliberate texture or leave the surface plain.","group":"fingerprints","discipline":"Visual Details"},{"id":"codex-grid-background","name":"Decorative grid-line background","description":"A decorative grid or line-field background drawn with hairline linear-gradient layers tiled by a fixed pixel cell is a recurring generated-UI signature. Reserve grid overlays for actual canvas, map, blueprint, or measurement surfaces; elsewhere use product structure or a plain surface.","group":"fingerprints","discipline":"Visual Details"},{"id":"theater-slop-phrase","name":"Theater framing copy","description":"Dismissing something as \\"theater\\" is a recurring generated-copy tic. Say plainly what the thing does or does not do.","group":"fingerprints","discipline":"Copy"},{"id":"image-hover-transform","name":"Image hover transform","description":"Scaling or rotating an image on hover is a recurring generated-UI signature. Let imagery sit still, or use a subtler, purposeful interaction.","group":"slop","discipline":"Motion"}]`);(()=>{let e=`dcx-hooks-preview-v1`,n=window.matchMedia(`(max-width: 560px)`),r=window.matchMedia(`(prefers-reduced-motion: reduce)`),i={fingerprints:{label:`Fingerprints`,description:`Recurring signatures found across generated interfaces.`},slop:{label:`UI tells`,description:`Common generated-UI habits that make a design feel interchangeable.`},quality:{label:`Quality floor`,description:`Measurable defects in legibility, hierarchy, overflow, and system consistency.`}},a=[`Visual Details`,`Typography`,`Color & Contrast`,`Layout & Space`,`Motion`,`Imagery`,`Copy`,`Quality`],o=()=>({enabled:!0,activeFamily:`fingerprints`,disabled:[`em-dash-overuse`],custom:[]}),s=(()=>{let t=o();try{let n=JSON.parse(localStorage.getItem(e)||`null`);return!n||typeof n!=`object`?t:{enabled:n.enabled!==!1,activeFamily:i[n.activeFamily]?n.activeFamily:t.activeFamily,disabled:Array.isArray(n.disabled)?n.disabled.filter(e=>typeof e==`string`):t.disabled,custom:Array.isArray(n.custom)?n.custom.filter(e=>e&&typeof e.id==`string`&&typeof e.name==`string`):[]}}catch{return t}})(),c=new Set(s.disabled),l=new WeakMap,u=new WeakMap,d=0,f=()=>{s.disabled=[...c];try{localStorage.setItem(e,JSON.stringify(s))}catch{}},p=e=>String(e).replaceAll(`&`,`&`).replaceAll(`<`,`<`).replaceAll(`>`,`>`).replaceAll(`"`,`"`),m=e=>String(e).toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-|-$/g,``)||`custom-rule`,h=e=>{let t=String(e).trim();return t.match(/^.*?[.!?](?:\s|$)/)?.[0]?.trim()||t},g=()=>` +
+
+

Hooks

+

Checks that catch design regressions while you work.

+
+
+ How it runs +
+

Hooks watch interface changes and surface problems before they spread.

+
+
+ Enable hooks +

Preview only — project settings are unchanged.

+
+
+ On + +
+
+
+
+
On each edit
+
Checks the changed UI.
+
+
+
At session end
+
Runs a full pass on touched UI files.
+
+
+
+
+
+ Built-in rules +
+
+
+
+ +

+
+
+
+
+
+
+ Custom rules +
+
+

No custom rules.

+ +
+ +
+

Preview only — saved in this browser; custom rules do not run.

+
+
+
+ `,_=()=>{let e=document.querySelector(`.dcx-tile[data-category="interface"]`);if(e){e.dataset.category=`hooks`,e.dataset.name=`Hooks`,e.setAttribute(`aria-label`,`Open Hooks`);let t=e.querySelector(`.dcx-tile-title`);t&&(t.textContent=`Hooks`)}let t=document.querySelector(`#dcx-shell-template`)?.content.querySelector(`li[data-category="interface"]`),n=t?.querySelector(`.dcx-nav-link`);t&&n&&(t.dataset.category=`hooks`,n.href=`#hooks`,n.dataset.dcxNav=`hooks`,n.textContent=`Hooks`)},v=()=>{if(document.querySelector(`#dcx-detail-hooks`))return;let e=document.createElement(`template`);e.id=`dcx-detail-hooks`,e.innerHTML=g(),document.querySelector(`#dcx-detail-interface`)?.after(e)},y=e=>t.filter(t=>t.group===e),b=e=>!c.has(e),ee=e=>{if(!n.matches)return;let t=e.querySelector(`[data-hooks-family][aria-selected="true"]`);if(!t)return;let i=e.getBoundingClientRect(),a=t.getBoundingClientRect(),o=0;a.lefti.right-3&&(o=a.right-i.right+3),!(Math.abs(o)<1)&&e.scrollTo({left:Math.max(0,e.scrollLeft+o),behavior:r.matches?`auto`:`smooth`})},x=(e,t)=>{let n=e.querySelector(`:scope > .dcx-hooks-disclosure`),i=n?.querySelector(`:scope > .dcx-hooks-disclosure-inner`);if(!n||!i){e.open=t;return}let a=l.get(e),o=n.getBoundingClientRect().height,s=Number.parseFloat(getComputedStyle(n).opacity)||0;if(a?.cancel(),r.matches){l.delete(e),e.classList.remove(`is-closing`),e.open=t,n.style.removeProperty(`height`),n.style.removeProperty(`opacity`);return}e.open=!0,e.classList.toggle(`is-closing`,!t);let c=a?o:t?0:o,u=a?s:+!t,d=t?i.scrollHeight:0,f=+!!t,p=n.animate([{height:`${c}px`,opacity:u},{height:`${d}px`,opacity:f}],{duration:360,easing:`cubic-bezier(0.22, 1, 0.36, 1)`,fill:`both`});l.set(e,p),p.finished.then(()=>{l.get(e)===p&&(l.delete(e),e.classList.remove(`is-closing`),e.open=t,p.cancel(),n.style.removeProperty(`height`),n.style.removeProperty(`opacity`))}).catch(()=>{})},S=(e,t)=>{let n=u.get(e),i=e.hidden?0:e.getBoundingClientRect().height,a=e.hidden?0:Number.parseFloat(getComputedStyle(e).opacity)||1;if(n?.cancel(),r.matches){u.delete(e),e.hidden=!t;return}t&&(e.hidden=!1);let o=t?e.scrollHeight:0;e.style.overflow=`clip`;let s=e.animate([{height:`${i}px`,opacity:a},{height:`${o}px`,opacity:+!!t}],{duration:320,easing:`cubic-bezier(0.22, 1, 0.36, 1)`,fill:`both`});u.set(e,s),s.finished.then(()=>{u.get(e)===s&&(u.delete(e),e.hidden=!t,s.cancel(),e.style.removeProperty(`height`),e.style.removeProperty(`opacity`),e.style.removeProperty(`overflow`))}).catch(()=>{})},te=(e,t)=>{let n=t.parentElement,r=!n.open||n.classList.contains(`is-closing`),i=e.querySelector(`[data-hooks-search]`)?.value.trim();r&&!i&&n.parentElement?.querySelectorAll(`:scope > .dcx-hooks-discipline[open]`).forEach(e=>{e!==n&&x(e,!1)}),x(n,r)},ne=e=>{let t=e.querySelector(`[data-hooks-families]`);t&&(t.innerHTML=Object.entries(i).map(([e,t])=>{let n=y(e),r=n.filter(e=>b(e.id)).length,i=s.activeFamily===e;return` + + `}).join(``),e.querySelector(`#dcx-hooks-rule-panel`)?.setAttribute(`aria-labelledby`,`dcx-hooks-family-${s.activeFamily}`),requestAnimationFrame(()=>ee(t)))},re=e=>{let t=e.querySelector(`[data-hooks-rule-groups]`),n=e.querySelector(`[data-hooks-summary]`),r=e.querySelector(`[data-hooks-search]`);if(!t||!n)return;let i=(r?.value||``).trim().toLowerCase(),o=y(s.activeFamily),c=o.filter(e=>!i||`${e.id} ${e.name} ${e.description} ${e.discipline}`.toLowerCase().includes(i)),l=o.filter(e=>b(e.id)).length;n.textContent=i?`${c.length} matching ${c.length===1?`rule`:`rules`}`:`${l} of ${o.length} selected`;let u=new Map;c.forEach(e=>{u.has(e.discipline)||u.set(e.discipline,[]),u.get(e.discipline).push(e)});let d=[...u.entries()].sort(([e],[t])=>{let n=a.indexOf(e),r=a.indexOf(t);return(n===-1?99:n)-(r===-1?99:r)||e.localeCompare(t)});if(!d.length){t.innerHTML=`

No rules match this search.

`;return}t.innerHTML=d.map(([e,t],n)=>{let r=`dcx-hooks-${s.activeFamily}-${m(e)}`,a=`${r}-summary`;return` +
+ + ${p(e)} + ${t.length} + +
+
+
    + ${t.map(e=>` +
  • +
    + ${p(e.name)} +

    ${p(h(e.description))}

    +
    + +
  • + `).join(``)} +
+
+
+
+ `}).join(``)},C=e=>{let t=e.querySelector(`[data-hooks-custom-list]`),n=e.querySelector(`[data-hooks-custom-count]`);if(t){if(n&&(n.textContent=s.custom.length?`${s.custom.length} custom ${s.custom.length===1?`rule`:`rules`}`:`No custom rules.`),!s.custom.length){t.innerHTML=``;return}t.innerHTML=``,s.custom.forEach(e=>{let n=document.createElement(`article`);n.className=`dcx-hooks-custom-rule`;let r=document.createElement(`div`);r.className=`dcx-hooks-rule-copy`;let i=document.createElement(`code`);i.textContent=e.id;let a=document.createElement(`strong`);a.textContent=e.name;let o=document.createElement(`p`);o.textContent=e.description;let s=document.createElement(`span`);s.className=`dcx-hooks-custom-discipline`,s.textContent=e.discipline,r.append(i,a,o,s);let c=document.createElement(`div`);c.className=`dcx-hooks-custom-controls`;let l=document.createElement(`label`);l.className=`dcx-hooks-switch`;let u=document.createElement(`input`);u.type=`checkbox`,u.setAttribute(`role`,`switch`),u.setAttribute(`aria-label`,`Enable ${e.name}`),u.dataset.hooksCustomRule=e.id,u.checked=e.enabled!==!1;let d=document.createElement(`span`);d.setAttribute(`aria-hidden`,`true`),l.append(u,d);let f=document.createElement(`button`);f.className=`dcx-hooks-remove`,f.type=`button`,f.dataset.hooksRemove=e.id,f.setAttribute(`aria-label`,`Remove ${e.name}`),f.textContent=`Remove`,c.append(l,f),n.append(r,c),t.appendChild(n)})}},w=e=>{let t=e.querySelector(`[data-hooks-master]`),n=e.querySelector(`[data-hooks-status]`),r=e.querySelector(`[data-hooks-master-copy]`),i=e.querySelector(`[data-hooks-master-detail]`),a=e.querySelector(`[data-hooks-master-state]`);!t||!n||!r||!i||!a||(t.checked=s.enabled,n.classList.toggle(`is-paused`,!s.enabled),r.textContent=`Enable hooks`,i.textContent=`Preview only — project settings are unchanged.`,a.textContent=s.enabled?`On`:`Off`)},ie=e=>{w(e),ne(e),re(e),C(e)},ae=()=>{d=0,document.querySelectorAll(`.dcx-article[data-dcx-category="hooks"]`).forEach(e=>{e.dataset.dcxHooksReady!==`true`&&(e.dataset.dcxHooksReady=`true`,ie(e))})},oe=()=>{d||=requestAnimationFrame(ae)};document.addEventListener(`click`,e=>{let t=e.target.closest(`.dcx-article[data-dcx-category="hooks"]`);if(!t)return;let n=e.target.closest(`.dcx-hooks-discipline > summary`);if(n){e.preventDefault(),te(t,n);return}let r=e.target.closest(`[data-hooks-family]`);if(r){let e=r===document.activeElement;s.activeFamily=r.dataset.hooksFamily,f(),ne(t),re(t),e&&t.querySelector(`[data-hooks-family="${s.activeFamily}"]`)?.focus({preventScroll:!0});return}let i=e.target.closest(`[data-hooks-add]`);if(i){let e=t.querySelector(`[data-hooks-form]`);if(!e)return;S(e,!0),i.setAttribute(`aria-expanded`,`true`),e.querySelector(`input[name='name']`)?.focus();return}if(e.target.closest(`[data-hooks-cancel]`)){let e=t.querySelector(`[data-hooks-form]`);e?.reset(),e&&S(e,!1);let n=t.querySelector(`[data-hooks-add]`);n?.setAttribute(`aria-expanded`,`false`),n?.focus({preventScroll:!0});return}let a=e.target.closest(`[data-hooks-remove]`);a&&(s.custom=s.custom.filter(e=>e.id!==a.dataset.hooksRemove),f(),C(t),(t.querySelector(`[data-hooks-remove]`)||t.querySelector(`[data-hooks-add]`))?.focus({preventScroll:!0}))}),document.addEventListener(`input`,e=>{if(!e.target.matches(`[data-hooks-search]`))return;let t=e.target.closest(`.dcx-article[data-dcx-category="hooks"]`);t&&re(t)}),document.addEventListener(`keydown`,e=>{let t=e.target.closest(`.dcx-hooks-discipline > summary`);if(t&&[`Enter`,` `].includes(e.key)){if(e.preventDefault(),!e.repeat){let e=t.closest(`.dcx-article[data-dcx-category="hooks"]`);e&&te(e,t)}return}let n=e.target.closest(`[data-hooks-family]`);if(!n||![`ArrowLeft`,`ArrowRight`,`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key))return;let r=n.closest(`.dcx-article[data-dcx-category="hooks"]`),i=[...r.querySelectorAll(`[data-hooks-family]`)],a=i.indexOf(n);if(a<0)return;e.preventDefault();let o=[`ArrowRight`,`ArrowDown`].includes(e.key)?1:-1;i[e.key===`Home`?0:e.key===`End`?i.length-1:(a+o+i.length)%i.length].click(),r.querySelector(`[data-hooks-family="${s.activeFamily}"]`)?.focus()}),document.addEventListener(`change`,e=>{let t=e.target.closest(`.dcx-article[data-dcx-category="hooks"]`);if(t){if(e.target.matches(`[data-hooks-master]`)){s.enabled=e.target.checked,f(),w(t);return}if(e.target.matches(`[data-hooks-rule]`)){e.target.checked?c.delete(e.target.dataset.hooksRule):c.add(e.target.dataset.hooksRule),f(),ne(t);let n=t.querySelector(`[data-hooks-search]`)?.value.trim(),r=t.querySelector(`[data-hooks-summary]`);if(!n&&r){let e=y(s.activeFamily);r.textContent=`${e.filter(e=>b(e.id)).length} of ${e.length} selected`}return}if(e.target.matches(`[data-hooks-custom-rule]`)){let t=s.custom.find(t=>t.id===e.target.dataset.hooksCustomRule);t&&(t.enabled=e.target.checked,f())}}}),document.addEventListener(`submit`,e=>{let n=e.target.closest(`[data-hooks-form]`);if(!n)return;e.preventDefault();let r=n.closest(`.dcx-article[data-dcx-category="hooks"]`);if(!r)return;let i=new FormData(n),a=String(i.get(`name`)||``).trim(),o=String(i.get(`description`)||``).trim(),c=String(i.get(`discipline`)||`Visual Details`);if(!a||!o)return;let l=m(a),u=l,d=2,p=new Set([...t.map(e=>e.id),...s.custom.map(e=>e.id)]);for(;p.has(u);)u=`${l}-${d}`,d+=1;s.custom.push({id:u,name:a,description:o,discipline:c,enabled:!0}),f(),n.reset(),S(n,!1);let h=r.querySelector(`[data-hooks-add]`);h?.setAttribute(`aria-expanded`,`false`),C(r),h?.focus({preventScroll:!0})}),_(),v(),new MutationObserver(oe).observe(document.body,{childList:!0,subtree:!0}),window.addEventListener(`pageshow`,oe),oe()})(),(()=>{let t={product:{Purpose:[`Why the product exists and what success looks like.`,`/assets/product/product-purpose-foil.png`],Positioning:[`The strategic space this product should occupy.`,`/assets/product/product-positioning-foil.png`],"Primary conversion":[`The single action the experience should make inevitable.`,`/assets/product/product-primary-conversion-foil.png`],"What must be clear first":[`The facts people need before anything else.`,`/assets/product/product-clear-first-foil.png`],"Product principles":[`The rules that keep every product decision aligned.`,`/assets/product/product-principles-foil.png`],"Operating context":[`Where and how the product must work.`,`/assets/product/product-operating-context-foil.png`],Surfaces:[`The chosen experiences and the job each one performs.`,`/assets/product/product-surfaces-foil.png`]},brand:{Personality:[`The character every expression should carry.`,`/assets/brand/brand-personality-foil.png`],Voice:[`How the brand sounds—and what it deliberately avoids.`,`/assets/brand/brand-voice-foil.png`],Principles:[`The rules that turn character into consistent choices.`,`/assets/brand/brand-principles-foil.png`],Commitments:[`The promises the brand must keep.`,`/assets/brand/brand-commitments-foil.png`],"Named references":[`Useful signals to borrow without becoming an imitation.`],"Anti-reference":[`The direction the brand must deliberately avoid.`],Marks:[`The identity assets already available to the system.`],"Boards and references":[`Visual evidence that should inform the work.`],"Assets provided":[`The source material available for production.`],"Brand assets":[`Logos, moodboards, and visual references available to the system.`]},color:{"The cue":[``,`/assets/color/color-palette-foil.png`],"Also generated":[`Adjacent directions retained as useful context.`],Palette:[`The core color relationships for the experience.`,`/assets/color/color-palette-foil.png`],"Strategy per surface":[`How the palette changes emphasis across contexts.`,`/assets/color/color-strategy-per-surface-foil.png`]},typography:{"The pair":[`Two typefaces with distinct, complementary jobs.`,`/assets/typography/typography-pair-foil.png`],"Type scale":[`The hierarchy that gives content pace and proportion.`,`/assets/typography/typography-type-scale-foil.png`],"In running text":[`How the pair behaves when the content gets real.`]},components:{Buttons:[`Variants, sizes, icons, and loading states.`],"Input fields":[`States, sizes, affixes, and multiline input.`],Cards:[`Content, media, horizontal, and action compositions.`]},material:{"The page, as chosen":[`What each selected surface represents in this design context.`],"Motion per surface":[`How movement supports each context without becoming spectacle.`],Motion:[`How movement should support the experience.`],Accessibility:[`The rules that keep the material system readable and operable.`],"Layout structure":[`The spatial system that organizes the page.`,`/assets/material/material-layout-structure-foil.png`],"Boundaries per surface":[`Where separation is visible—and where space does the work.`,`/assets/material/material-boundaries-per-surface-foil.png`],"Corners per surface":[`How edge character changes with context.`,`/assets/material/material-corners-per-surface-foil.png`],"Depth per surface":[`How hierarchy is expressed without decorative elevation.`,`/assets/material/material-depth-per-surface-foil.png`],Iconography:[`The chosen icon library, its character, grid, stroke, and license.`]},hooks:{"How it runs":[``],"Built-in rules":[`Choose what the detector watches.`],"Custom rules":[``]}},n=0,r=e=>e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-|-$/g,``),i=(e,t)=>{e.querySelectorAll(`:scope .dcx-principles > li`).forEach(n=>{let r=n.querySelector(`:scope > .dcx-detail-principle-copy`);if(!r){for(r=document.createElement(`div`),r.className=`dcx-detail-principle-copy`;n.firstChild;)r.appendChild(n.firstChild);n.appendChild(r)}if(t===`product`&&e.dataset.label===`Product principles`){let e=r.querySelector(`:scope > strong:first-child`)?.nextSibling;e?.nodeType===Node.TEXT_NODE&&(e.textContent=e.textContent.replace(/^\s*[—–-]+\s*/,` `))}})},a=e=>{e.querySelectorAll(`h3`).forEach(e=>{let t=document.createElement(`h4`);for([...e.attributes].forEach(e=>{t.setAttribute(e.name,e.value)});e.firstChild;)t.appendChild(e.firstChild);e.replaceWith(t)})},o=(e,t)=>{if(t!==`product`||e.dataset.label!==`Purpose`)return;let n=e.querySelector(`:scope .dcx-purpose .dcx-callout`),r=n?.querySelector(`:scope > .dcx-callout-name`),i=e.querySelector(`:scope .dcx-purpose > .dcx-platform-pill`);!n||!r||!i||(i.classList.remove(`dcx-chip`),r.after(i))},s=e=>{e.querySelectorAll(`:scope .dcx-fan-note`).forEach(e=>e.remove())},c=e=>{if(e.dataset.dcxColorCompacted===`true`)return;let t=new Map([...e.querySelectorAll(`:scope > .dcx-block[data-label]`)].map(e=>[e.dataset.label,e])),n=t.get(`The cue`),r=t.get(`Palette`),i=t.get(`Strategy per surface`),a=n?.querySelector(`:scope > .dcx-cue`),o=r?.querySelector(`:scope > .dcx-fan`);if(n?.querySelector(`:scope > .dcx-fan-note`)?.remove(),i?.querySelector(`:scope > .dcx-fan-note`)?.remove(),t.get(`Roles and values`)?.remove(),t.get(`Interview direction`)?.remove(),a&&o){let e=a.querySelector(`:scope > .dcx-cue-card`),t=[...o.querySelectorAll(`:scope > .dcx-fan-panel`)];if(e&&t.length){e.querySelector(`:scope > .dcx-cue-tag`)?.remove(),e.querySelector(`:scope > .dcx-cue-name`)?.remove();let n=document.createElement(`ul`);n.className=`dcx-cue-bands`,n.setAttribute(`aria-label`,`Committed palette`),t.forEach(e=>{let t=e.querySelector(`:scope .dcx-fan-name`)?.textContent.trim()||`Color`,r=e.querySelector(`:scope .dcx-fan-value`)?.textContent.trim()||``,i=e.style.getPropertyValue(`--panel-swatch`),a=e.style.getPropertyValue(`--panel-ink`),o=document.createElement(`li`);o.className=`dcx-cue-band-item`;let s=document.createElement(`div`);s.className=`dcx-cue-band`,s.style.setProperty(`--band-color`,i),s.style.setProperty(`--band-ink`,a);let c=document.createElement(`code`);c.className=`dcx-cue-band-value`,c.textContent=r,s.appendChild(c);let l=document.createElement(`span`);l.className=`dcx-cue-band-label`,l.textContent=t,o.append(s,l),n.appendChild(o)}),e.querySelectorAll(`:scope > .dcx-cue-role`).forEach(e=>e.remove()),e.appendChild(n),r.remove()}}let s=e.querySelector(`:scope > header > .dcx-lede`);s&&(s.textContent=`Committed palette and per-surface strategy.`),e.dataset.dcxColorCompacted=`true`},l=e=>{let t=e.querySelector(`:scope > .dcx-block[data-label="The page, as chosen"]`)?.querySelector(`:scope > .dcx-surfaces`);if(!t)return;let n=Array.isArray(window.dcxSurfaceDefs)?window.dcxSurfaceDefs:[];if(!n.length)return;let r=document.createElement(`dl`);r.className=`dcx-defs`,n.forEach(({label:e,description:t})=>{let n=document.createElement(`div`);n.className=`dcx-def`;let i=document.createElement(`dt`);i.textContent=e;let a=document.createElement(`dd`);a.textContent=t,n.append(i,a),r.appendChild(n)}),t.replaceWith(r)},u=(n,c,l)=>{let u=n.dataset.label||`Section`,[d,f]=t[c]?.[u]||[`The decisions that define this part of the system.`],p=`${c}-${r(u)}`;n.querySelector(`:scope > .dcx-block-label`)?.remove();let m=document.createElement(`div`);for(m.className=`dcx-detail-section-body`;n.firstChild;)m.appendChild(n.firstChild);let h=document.createElement(`div`);h.className=`dcx-detail-section-heading`;let g=document.createElement(`h3`);if(g.className=`dcx-detail-section-title`,g.id=`dcx-${p}-title`,g.textContent=u,h.appendChild(g),d){let e=document.createElement(`p`);e.className=`dcx-detail-section-lede`,e.textContent=d,h.appendChild(e)}let _=document.createElement(`header`);if(_.className=`dcx-detail-section-head`,_.appendChild(h),f){_.classList.add(`dcx-detail-section-head--with-icon`);let t=document.createElement(`figure`);t.className=`dcx-detail-section-icon`,t.setAttribute(`aria-hidden`,`true`),t.setAttribute(`data-dcx-hide-on-error`,``);let r=document.createElement(`img`);r.src=e(f),r.alt=``,r.width=256,r.height=256,r.decoding=`async`,(n.closest(`.dcx-article`)?.dataset.dcxCategory||l>0)&&(r.loading=`lazy`),t.appendChild(r),_.appendChild(t)}n.classList.add(`dcx-detail-section`,`dcx-detail-section--${r(u)}`),n.id=`dcx-${p}`,n.closest(`.dcx-article`)?.dataset.dcxCategory||(n.setAttribute(`role`,`region`),n.setAttribute(`aria-labelledby`,g.id)),n.append(_,m),a(m),m.querySelector(`:scope > .dcx-list`)?.classList.add(`dcx-detail-list`),m.querySelector(`:scope > .dcx-defs`)?.classList.add(`dcx-detail-defs`),i(n,c),o(n,c),s(n)},d=(e,n)=>{if(e.dataset.dcxDetailEnhanced===n)return;n===`color`&&c(e),n===`typography`&&(e.querySelectorAll(`:scope .dcx-pair-why`).forEach(e=>e.remove()),e.querySelector(`:scope > .dcx-block[data-label="Interview direction"]`)?.remove()),n===`iconography`&&e.querySelector(`:scope > .dcx-block[data-label="The hand"]`)?.remove(),n===`material`&&(l(e),e.querySelectorAll(`:scope > .dcx-block[data-label] > .dcx-fan-note`).forEach(e=>e.remove())),e.classList.add(`dcx-detail-article`,`dcx-detail-article--${n}`),e.querySelector(`:scope > header`)?.classList.add(`dcx-detail-hero`);let r=0;e.querySelectorAll(`:scope > .dcx-block[data-label]`).forEach(e=>{let i=!!t[n]?.[e.dataset.label]?.[1];u(e,n,r),i&&(r+=1)}),e.dataset.dcxDetailEnhanced=n},f=()=>{n=0;let e=document.querySelector(`.dcx-expander`),r=e?.querySelectorAll(`.dcx-main > .dcx-article[data-dcx-category]`);if(r?.length){r.forEach(e=>{let n=e.dataset.dcxCategory;n!==`audience`&&t[n]&&d(e,n)});return}let i=e?.querySelector(`.dcx-nav-list > li.is-active[data-category]`),a=e?.querySelector(`.dcx-main > .dcx-article`),o=i?.dataset.category;!a||!o||o===`audience`||!t[o]||d(a,o)},p=()=>{n||=requestAnimationFrame(f)};new MutationObserver(p).observe(document.body,{childList:!0,subtree:!0}),window.addEventListener(`pageshow`,p),p()})(),(()=>{let t=(e,t,n)=>{let r=1-3*n+3*t,i=3*n-6*t,a=3*t;return((r*e+i)*e+a)*e},n=(e,t,n)=>{let r=1-3*n+3*t,i=3*n-6*t,a=3*t;return 3*r*e*e+2*i*e+a},r=e=>{let r=Math.max(0,Math.min(1,e)),i=r;for(let e=0;e<8;e+=1){let e=n(i,.4,.2);if(Math.abs(e)<1e-6)break;i-=(t(i,.4,.2)-r)/e,i=Math.max(0,Math.min(1,i))}return t(i,0,1)},i=0,a=null,o=0,s=(e,t={})=>{let n=document.createElementNS(`http://www.w3.org/2000/svg`,e);return Object.entries(t).forEach(([e,t])=>n.setAttribute(e,t)),n};class c{constructor(e){this.expander=e,this.nav=e.querySelector(`.dcx-nav`),this.main=e.querySelector(`.dcx-main`),this.desktop=window.matchMedia(`(min-width: 921px)`),this.reducedMotion=window.matchMedia(`(prefers-reduced-motion: reduce)`),this.instanceId=++i,this.currentArticle=null,this.currentCategory=``,this.currentSubnav=null,this.contentSignature=``,this.entries=[],this.segments=new Map,this.railLength=0,this.railReady=!1,this.pinnedNode=null,this.scrollFrame=0,this.rebuildFrame=0,this.rebuildTimers=[],this.categoryTransitionBeginFrame=0,this.categoryTransitionFrame=0,this.categoryTransitionHandoffFrame=0,this.categoryTransitionCleanupTimer=0,this.categoryTransitionGeneration=0,this.categoryTransitionActive=!1,this.categoryTransitionStart=0,this.categoryTransitionTarget=null,this.categoryTransitionFinalTarget=null,this.categoryTransitionNode=null,this.categoryTransitionBranchPoints=null,this.categoryTransitionBranchProgress=0,this.categoryTransitionRetractPoints=null,this.categoryTransitionRetractProgress=0,this.categoryTransitionRetractStart=0,this.categoryTransitionRenderedPoints=null,this.categoryTransitionRenderedProgress=0,this.currentPaintNode=null,!(!this.nav||!this.main)&&(this.handleScroll=this.handleScroll.bind(this),this.handleResize=this.handleResize.bind(this),this.handleMediaChange=this.handleMediaChange.bind(this),this.handleReducedMotionChange=this.handleReducedMotionChange.bind(this),this.handleRailClick=this.handleRailClick.bind(this),this.handleContinuousCategoryWillChange=this.handleContinuousCategoryWillChange.bind(this),this.handleContinuousCategoryChange=this.handleContinuousCategoryChange.bind(this),this.clearPinnedNode=this.clearPinnedNode.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.createRail(),this.nav.classList.add(`dcx-material-rail-host`),this.remeasureSubnavs(),this.main.addEventListener(`scroll`,this.handleScroll,{passive:!0}),this.main.addEventListener(`wheel`,this.clearPinnedNode,{passive:!0}),this.main.addEventListener(`touchstart`,this.clearPinnedNode,{passive:!0}),this.main.addEventListener(`pointerdown`,this.clearPinnedNode,{passive:!0}),this.nav.addEventListener(`click`,this.handleRailClick),this.expander.addEventListener(`dcx:continuouscategorywillchange`,this.handleContinuousCategoryWillChange),this.expander.addEventListener(`dcx:continuouscategorychange`,this.handleContinuousCategoryChange),window.addEventListener(`resize`,this.handleResize,{passive:!0}),window.addEventListener(`keydown`,this.handleKeydown),this.desktop.addEventListener(`change`,this.handleMediaChange),this.reducedMotion.addEventListener(`change`,this.handleReducedMotionChange),this.resizeObserver=new ResizeObserver(this.handleResize),this.resizeObserver.observe(this.nav),document.fonts?.ready.then(()=>{a===this&&(this.remeasureSubnavs(),this.scheduleRebuild(!0))}))}createRail(){let t=`dcx-material-rail-patina-${this.instanceId}`,n=`dcx-material-rail-gold-${this.instanceId}`,r=s(`svg`,{class:`dcx-material-rail`,"aria-hidden":`true`,focusable:`false`}),i=s(`defs`),a=s(`pattern`,{id:t,width:`72`,height:`48`,patternUnits:`userSpaceOnUse`}),o=s(`pattern`,{id:n,width:`72`,height:`48`,patternUnits:`userSpaceOnUse`});a.append(s(`rect`,{class:`dcx-material-rail__patina-base`,width:`72`,height:`48`}),s(`image`,{class:`dcx-material-rail__patina-image`,href:e(`/assets/audience/verdigris-patina.png`),width:`72`,height:`48`,preserveAspectRatio:`xMidYMid slice`})),o.append(s(`rect`,{class:`dcx-material-rail__gold-base`,width:`72`,height:`48`}),s(`image`,{class:`dcx-material-rail__gold-image`,href:e(`/assets/audience/kinpaku-gold-leaf.png`),width:`72`,height:`48`,preserveAspectRatio:`xMidYMid slice`})),this.track=s(`path`,{class:`dcx-material-rail__track`,"data-dcx-rail-track":``}),this.active=s(`path`,{class:`dcx-material-rail__active`,"data-dcx-rail-active":``}),this.transitionTrack=s(`path`,{class:`dcx-material-rail__transition-track`}),this.transitionActive=s(`line`,{class:`dcx-material-rail__transition-active`}),this.track.style.stroke=`url("#${t}")`,this.active.style.stroke=`url("#${n}")`,this.transitionTrack.style.stroke=`url("#${t}")`,this.transitionActive.style.stroke=`url("#${n}")`,i.append(a,o),r.append(i,this.transitionTrack,this.track,this.active,this.transitionActive),this.svg=r,this.nav.prepend(r)}prepareAudienceSubnav(e,t){let n=[{label:`Overview`,targetLabels:[],overview:!0},{label:`People`,targetLabels:[`Who they are`,`Emotional journey`,`Emotional state`]},{label:`Decision factors`,targetLabels:[`Needs`,`Trust triggers`]},{label:`Inclusion`,targetLabels:[`Who must not be excluded`]}],r=new Map(t.map((e,t)=>[e.dataset.label,{block:e,index:t}])),i=n.map(e=>{if(e.overview)return e;let t=e.targetLabels.find(e=>r.has(e));return t?{...e,firstTarget:t}:null}).filter(Boolean),a=i.map(e=>e.label).join(`|`),o=[...e.querySelectorAll(`:scope > .dcx-sub-link[data-dcx-rail-summary]`)].map(e=>e.textContent.trim()).join(`|`);if(e.classList.add(`dcx-subnav--summary`),e.dataset.dcxRailSummary=`true`,o===a&&e.childElementCount===i.length)return;let s=i.map(e=>{let t=document.createElement(`button`);return t.className=`dcx-sub-link`,t.type=`button`,t.textContent=e.label,t.dataset.dcxRailSummary=``,t.dataset.dcxRailTarget=e.overview?`__overview__`:e.firstTarget,e.overview||(t.dataset.dcxSubsection=String(r.get(e.firstTarget).index)),t});e.replaceChildren(...s)}refresh(){let e=this.nav.querySelector(`.dcx-nav-list > li.is-active[data-category]`),t=e?.dataset.category||``,n=this.main.dataset.dcxContinuous===`true`,r=n?this.main.querySelector(`:scope > .dcx-article[data-dcx-category="${t}"]`):this.main.querySelector(`:scope > .dcx-article`);if(!e||!r){this.nav.removeAttribute(`data-rail-ready`);return}let i=e.querySelector(`:scope > .dcx-subnav`),o=[...r.querySelectorAll(`:scope > .dcx-block[data-label]`)];if(!i)return;n||this.nav.querySelectorAll(`.dcx-subnav`).forEach(e=>{(e!==i||t!==`audience`)&&(e.classList.remove(`dcx-subnav--summary`),delete e.dataset.dcxRailSummary)}),t===`audience`&&!n&&this.prepareAudienceSubnav(i,o);let s=`${t}::${[...i.querySelectorAll(`:scope > .dcx-sub-link`)].map(e=>e.textContent.trim()).join(`|`)}::${o.map(e=>e.dataset.label).join(`|`)}`,c=[...this.nav.querySelectorAll(`.dcx-nav-list > li > .dcx-nav-link`),...i.querySelectorAll(`:scope > .dcx-sub-link`)],l=c.length>0&&c.every(e=>e.hasAttribute(`data-dcx-rail-node`));if(this.currentArticle===r&&this.currentCategory===t&&this.currentSubnav===i&&this.contentSignature===s&&l)return;this.currentArticle=r,this.currentCategory=t,this.currentSubnav=i,this.contentSignature=s,this.pinnedNode=null,this.rebuildTimers.forEach(e=>window.clearTimeout(e)),this.rebuildTimers=[],this.nav.querySelectorAll(`[data-dcx-rail-node]`).forEach(e=>{e.removeAttribute(`data-dcx-rail-node`)}),this.nav.querySelectorAll(`.dcx-sub-link[aria-current="location"]`).forEach(e=>{e.removeAttribute(`aria-current`)});let u=[...this.nav.querySelectorAll(`.dcx-nav-list > li > .dcx-nav-link`)],d=[...i.querySelectorAll(`:scope > .dcx-sub-link`)];u.forEach(e=>e.setAttribute(`data-dcx-rail-node`,``)),d.forEach(e=>e.setAttribute(`data-dcx-rail-node`,``));let f=e.querySelector(`:scope > .dcx-nav-link`),p=e=>o[Number(e.dataset.dcxSubsection)],m=[];(n||t!==`audience`)&&f&&m.push({node:f,target:r.querySelector(`:scope > header`)||r}),d.forEach(e=>{let t=e.dataset.dcxRailTarget,n=e.dataset.dcxDocumentTarget,i=n?this.main.querySelector(`#${CSS.escape(n)}`):t===`__overview__`?r.querySelector(`:scope > header`)||r:t?o.find(e=>e.dataset.label===t):p(e);i&&m.push({node:e,target:i})}),this.entries=m,this.railReady=!1,this.rebuild(!0),this.categoryTransitionActive||[0,320,650].forEach(e=>{this.rebuildTimers.push(window.setTimeout(()=>{a===this&&this.currentArticle===r&&this.rebuild(!0)},e))})}measureRailPoints(){if(!this.desktop.matches||!this.nav.offsetHeight||!this.track||!this.active)return[];let e=this.nav.getBoundingClientRect(),t=[...this.nav.querySelectorAll(`[data-dcx-rail-node]`)].filter(e=>e.getClientRects().length>0);return t.length?t.map(t=>{let n=t.getBoundingClientRect();return{node:t,x:n.left-e.left+1,yTop:n.top-e.top,yBottom:n.bottom-e.top}}):[]}pathDataForProgress(e,t=1){if(!e.length)return``;let n=e[0].x,r=e=>n+(e-n)*t,i=``,a=null;return e.forEach((e,t)=>{let n=r(e.x);if(t===0)i=`M ${n} ${e.yTop} `;else if(Math.abs(e.x-a.x)<.5)i+=`L ${n} ${e.yTop} `;else{let t=r(a.x),o=(a.yBottom+e.yTop)/2;i+=`C ${t} ${o}, ${n} ${o}, ${n} ${e.yTop} `}i+=`L ${n} ${e.yBottom} `,a=e}),i}buildPath(){let e=this.measureRailPoints();if(!e.length)return!1;let t=``,n=null,r=new Map;return e.forEach((e,i)=>{if(i===0)t=`M ${e.x} ${e.yTop} `;else if(Math.abs(e.x-n.x)<.5)t+=`L ${e.x} ${e.yTop} `;else{let r=(n.yBottom+e.yTop)/2;t+=`C ${n.x} ${r}, ${e.x} ${r}, ${e.x} ${e.yTop} `}this.active.setAttribute(`d`,t);let a=this.active.getTotalLength();t+=`L ${e.x} ${e.yBottom} `,this.active.setAttribute(`d`,t);let o=this.active.getTotalLength();r.set(e.node,{start:a,length:Math.max(1,o-a)}),n=e}),this.track.setAttribute(`d`,t),this.active.setAttribute(`d`,t),this.segments=r,this.railLength=this.active.getTotalLength(),Number.isFinite(this.railLength)&&this.railLength>0}moveRail(e,t=!1){let n=this.segments.get(e);!n||!this.railLength||(this.currentPaintNode=e,(t||this.reducedMotion.matches)&&(this.active.setAttribute(`data-initial`,`true`),this.active.getBoundingClientRect()),this.active.style.strokeDasharray=`${n.length} ${this.railLength+1}`,this.active.style.strokeDashoffset=`${-n.start}`,requestAnimationFrame(()=>{a===this&&(this.active.setAttribute(`data-ready`,`true`),this.nav.setAttribute(`data-rail-ready`,`true`),requestAnimationFrame(()=>this.active.removeAttribute(`data-initial`)))}),this.railReady=!0)}updateCurrent(e=!1){if(!this.entries.length||!this.desktop.matches)return;let t=this.main.getBoundingClientRect().top+this.main.clientHeight*.25,n=this.entries.find(e=>e.node===this.pinnedNode)||this.entries.find(e=>e.node===this.categoryTransitionNode)||this.entries[0];!this.pinnedNode&&!this.categoryTransitionNode&&this.main.scrollTop>4&&(this.entries.forEach(e=>{e.target.getBoundingClientRect().top<=t&&(n=e)}),this.main.scrollTop+this.main.clientHeight>=this.main.scrollHeight-4&&(n=this.entries.at(-1))),this.nav.querySelectorAll(`.dcx-sub-link[aria-current="location"]`).forEach(e=>{e!==n.node&&e.removeAttribute(`aria-current`)}),n.node.matches(`.dcx-sub-link`)&&n.node.setAttribute(`aria-current`,`location`),this.moveRail(n.node,e||!this.railReady)}rebuild(e=!1){if(!this.desktop.matches){this.nav.removeAttribute(`data-rail-ready`),this.active.removeAttribute(`data-ready`);return}this.buildPath()&&this.updateCurrent(e)}scheduleRebuild(e=!1){this.rebuildFrame&&cancelAnimationFrame(this.rebuildFrame),this.rebuildFrame=requestAnimationFrame(()=>{this.rebuildFrame=0,this.rebuild(e)})}handleScroll(){this.scrollFrame||!this.desktop.matches||(this.scrollFrame=requestAnimationFrame(()=>{this.scrollFrame=0,this.main.dataset.dcxContinuous===`true`&&this.refresh(),this.updateCurrent()}))}nodeLine(e){if(!e?.getClientRects().length)return null;let t=this.nav.getBoundingClientRect(),n=e.getBoundingClientRect();return{x:n.left-t.left+1,yTop:n.top-t.top,yBottom:n.bottom-t.top}}scrollTargetNode(e,t){let n=this.main.querySelector(`:scope > .dcx-article[data-dcx-category="${CSS.escape(e)}"]`),r=this.nav.querySelector(`.dcx-nav-list > li[data-category="${CSS.escape(e)}"] > .dcx-subnav`);if(!n||!r)return t;let i=this.main.getBoundingClientRect().top+this.main.clientHeight*.25,a=null;if(n.querySelectorAll(`:scope > .dcx-block[data-label]`).forEach(e=>{e.getBoundingClientRect().top<=i&&(a=e)}),!a)return t;let o=[...r.querySelectorAll(`:scope > .dcx-sub-link[data-dcx-document-target]`)].find(e=>e.dataset.dcxDocumentTarget===a.id);if(o)return o;if(e!==`audience`)return t;let s=a.dataset.label,c=s===`Who they are`||s===`Emotional journey`||s===`Emotional state`?`People`:s===`Needs`||s===`Trust triggers`?`Decision factors`:s===`Who must not be excluded`?`Inclusion`:null;return c&&[...r.querySelectorAll(`:scope > .dcx-sub-link`)].find(e=>e.textContent.trim()===c)||t}remeasureSubnavs(){this.desktop.matches&&this.nav.querySelectorAll(`.dcx-nav-list > li[data-category] > .dcx-subnav`).forEach(e=>{let t=[...e.querySelectorAll(`:scope > .dcx-sub-link`)],n=t.map(e=>e.getBoundingClientRect().height);if(!n.some(e=>e>0))return;let r=e.classList.contains(`dcx-subnav--summary`),i=r?0:2,a=r?14:10,o=n.reduce((e,t)=>e+t,0)+Math.max(0,t.length-1)*i+a;e.style.setProperty(`--dcx-subnav-height`,`${Math.ceil(o)}px`)})}finalNodeLine(e,t){let n=[...this.nav.querySelectorAll(`.dcx-nav-list > li[data-category] > .dcx-nav-link`)],r=n.findIndex(t=>t.dataset.dcxNav===e),i=n[r];if(!t||!i||r<0||!n.length)return null;let a=this.nav.getBoundingClientRect(),o=n[0].getBoundingClientRect(),s=t.getBoundingClientRect(),c=o.top-a.top;for(let e=0;e .dcx-subnav`),u=[...l?.querySelectorAll(`:scope > .dcx-sub-link`)||[]],d=u.indexOf(t);if(!l||d<0)return null;let f=l.classList.contains(`dcx-subnav--summary`),p=f?0:2,m=f?4:2;c+=i.getBoundingClientRect().height+m;for(let e=0;e li[data-category] > .dcx-nav-link`)].filter(e=>e.getClientRects().length>0);if(!e.length)return!1;let t=this.nav.getBoundingClientRect(),n=e[0].getBoundingClientRect(),r=e.at(-1).getBoundingClientRect();return{x:n.left-t.left+1,yTop:n.top-t.top,yBottom:r.bottom-t.top}}buildStraightTrack(){let e=this.measureStraightTrack();return e?(this.transitionTrack.setAttribute(`d`,`M ${e.x} ${e.yTop} L ${e.x} ${e.yBottom}`),!0):!1}fitPointsToStraightTrack(e,t){if(!e?.length||!t)return[];let n=e[0].yTop,r=e.at(-1).yBottom,i=Math.max(1,r-n),a=(t.yBottom-t.yTop)/i,o=e[0].x;return e.map(e=>({...e,x:t.x+e.x-o,yTop:t.yTop+(e.yTop-n)*a,yBottom:t.yTop+(e.yBottom-n)*a}))}moveTransitionActive(e){if(!e)return;let t=Math.max(1,Number(this.transitionActive.getAttribute(`y2`))-Number(this.transitionActive.getAttribute(`y1`))),n=Number(this.transitionActive.getAttribute(`x1`)),r=Number(this.transitionActive.getAttribute(`y1`)),i=Math.max(1,e.yBottom-e.yTop),a=e.x-n,o=e.yTop-r+(i-t)/2,s=i/t;this.transitionActive.style.transform=`translate(${a}px, ${o}px) scaleY(${s})`}clearCategoryTransitionVisuals(){window.clearTimeout(this.categoryTransitionCleanupTimer),this.categoryTransitionCleanupTimer=0,this.transitionTrack.removeAttribute(`data-visible`),this.transitionTrack.removeAttribute(`data-initial`),this.transitionTrack.removeAttribute(`data-settling`),this.transitionActive.removeAttribute(`data-visible`),this.transitionActive.removeAttribute(`data-initial`),this.transitionActive.removeAttribute(`data-settling`),this.transitionActive.removeAttribute(`data-handoff`),this.track.removeAttribute(`data-entering`),this.track.removeAttribute(`data-settling`),this.track.removeAttribute(`data-morphing`),this.active.removeAttribute(`data-entering`),this.active.removeAttribute(`data-handoff`),this.transitionActive.style.removeProperty(`transform`),this.nav.removeAttribute(`data-category-transition`)}cancelCategoryTransitionFrames(){this.categoryTransitionBeginFrame&&cancelAnimationFrame(this.categoryTransitionBeginFrame),this.categoryTransitionFrame&&cancelAnimationFrame(this.categoryTransitionFrame),this.categoryTransitionHandoffFrame&&cancelAnimationFrame(this.categoryTransitionHandoffFrame),this.categoryTransitionBeginFrame=0,this.categoryTransitionFrame=0,this.categoryTransitionHandoffFrame=0}cancelCategoryTransition(){this.categoryTransitionGeneration+=1,this.cancelCategoryTransitionFrames(),this.categoryTransitionActive=!1,this.categoryTransitionTarget=null,this.categoryTransitionFinalTarget=null,this.categoryTransitionNode=null,this.categoryTransitionBranchPoints=null,this.categoryTransitionBranchProgress=0,this.categoryTransitionRetractPoints=null,this.categoryTransitionRetractProgress=0,this.categoryTransitionRetractStart=0,this.categoryTransitionRenderedPoints=null,this.categoryTransitionRenderedProgress=0,this.clearCategoryTransitionVisuals(),this.transitionTrack.removeAttribute(`d`),this.transitionActive.removeAttribute(`x1`),this.transitionActive.removeAttribute(`x2`),this.transitionActive.removeAttribute(`y1`),this.transitionActive.removeAttribute(`y2`)}snapshotCategoryTransition(e){if(!this.desktop.matches||this.reducedMotion.matches||!this.railReady)return!1;let t=this.transitionLineGeometry()||this.nodeLine(this.currentPaintNode),n=this.nav.querySelector(`.dcx-nav-list > li[data-category="${CSS.escape(e.detail?.to||``)}"] > .dcx-nav-link`),r=e.detail?.source===`scroll`?this.scrollTargetNode(e.detail?.to,n):n,i=this.finalNodeLine(e.detail?.to,n),a=this.finalNodeLine(e.detail?.to,r);if(!t||!i||!a)return!1;let o=this.categoryTransitionBranchPoints?.length&&this.categoryTransitionBranchProgress>0?this.categoryTransitionBranchPoints:null,s=this.categoryTransitionRenderedPoints?.length&&this.categoryTransitionRenderedProgress>0?this.categoryTransitionRenderedPoints:null,c=(o||s)?.map(e=>({...e}))||null,l=o?this.categoryTransitionBranchProgress:s?this.categoryTransitionRenderedProgress:0;return this.categoryTransitionGeneration+=1,this.cancelCategoryTransitionFrames(),this.clearCategoryTransitionVisuals(),c?this.transitionTrack.setAttribute(`d`,this.pathDataForProgress(c,l)):this.buildStraightTrack(),this.transitionActive.setAttribute(`x1`,t.x),this.transitionActive.setAttribute(`x2`,t.x),this.transitionActive.setAttribute(`y1`,t.yTop),this.transitionActive.setAttribute(`y2`,t.yBottom),this.transitionActive.style.transform=`translate(0px, 0px) scaleY(1)`,this.transitionTrack.setAttribute(`data-visible`,`true`),this.transitionActive.setAttribute(`data-visible`,`true`),this.transitionTrack.setAttribute(`data-initial`,`true`),this.transitionActive.setAttribute(`data-initial`,`true`),this.track.setAttribute(`data-entering`,`true`),this.active.setAttribute(`data-entering`,`true`),this.nav.setAttribute(`data-category-transition`,`layout`),this.svg.getBoundingClientRect(),this.categoryTransitionTarget=i,this.categoryTransitionFinalTarget=a,this.categoryTransitionNode=r,this.categoryTransitionBranchPoints=null,this.categoryTransitionBranchProgress=0,this.categoryTransitionRetractPoints=c,this.categoryTransitionRetractProgress=l,this.categoryTransitionRetractStart=0,this.categoryTransitionRenderedPoints=c?.map(e=>({...e}))||null,this.categoryTransitionRenderedProgress=l,this.categoryTransitionActive=!0,!0}beginCategoryTransition(e){if(e!==this.categoryTransitionGeneration||!this.categoryTransitionActive||!this.categoryTransitionTarget||!this.categoryTransitionFinalTarget)return;this.transitionTrack.removeAttribute(`data-initial`),this.transitionActive.removeAttribute(`data-initial`),this.moveTransitionActive(this.categoryTransitionTarget);let t=performance.now();this.categoryTransitionStart=t,this.categoryTransitionRetractPoints&&(this.categoryTransitionRetractStart=t),this.categoryTransitionFrame=requestAnimationFrame(t=>{this.animateCategoryTransition(t,e)})}animateCategoryTransition(e,t){if(this.categoryTransitionFrame=0,!(t!==this.categoryTransitionGeneration||!this.categoryTransitionActive||a!==this)){if(this.categoryTransitionRetractPoints){let t=this.measureStraightTrack(),n=this.fitPointsToStraightTrack(this.categoryTransitionRetractPoints,t),i=Math.min(1,(e-this.categoryTransitionRetractStart)/140),a=this.categoryTransitionRetractProgress*(1-r(i));n.length&&(this.transitionTrack.setAttribute(`d`,this.pathDataForProgress(n,a)),this.categoryTransitionRenderedPoints=n.map(e=>({...e})),this.categoryTransitionRenderedProgress=a),(i>=1||!n.length)&&(this.categoryTransitionRetractPoints=null,this.categoryTransitionRetractProgress=0,this.categoryTransitionRetractStart=0,this.categoryTransitionRenderedPoints=null,this.categoryTransitionRenderedProgress=0,this.buildStraightTrack())}else this.buildStraightTrack();if(e-this.categoryTransitionStart<520){this.categoryTransitionFrame=requestAnimationFrame(e=>{this.animateCategoryTransition(e,t)});return}this.beginBranchTransition(t)}}beginBranchTransition(e){if(e!==this.categoryTransitionGeneration||!this.categoryTransitionActive||!this.categoryTransitionFinalTarget)return;this.categoryTransitionFrame&&cancelAnimationFrame(this.categoryTransitionFrame),this.categoryTransitionFrame=0,this.buildStraightTrack();let t=this.measureRailPoints();if(!t.length||!this.buildPath()){this.cancelCategoryTransition(),this.remeasureSubnavs(),this.scheduleRebuild(!0);return}this.updateCurrent(!1),this.categoryTransitionBranchPoints=t,this.categoryTransitionBranchProgress=0,this.categoryTransitionRetractPoints=null,this.categoryTransitionRetractProgress=0,this.categoryTransitionRetractStart=0,this.categoryTransitionRenderedPoints=t.map(e=>({...e})),this.categoryTransitionRenderedProgress=0,this.track.setAttribute(`d`,this.pathDataForProgress(t,0)),this.track.setAttribute(`data-morphing`,`true`),this.transitionTrack.setAttribute(`data-initial`,`true`),this.transitionActive.setAttribute(`data-settling`,`true`),this.nav.setAttribute(`data-category-transition`,`branch`),this.track.removeAttribute(`data-entering`),this.transitionTrack.removeAttribute(`data-visible`),this.svg.getBoundingClientRect(),this.moveTransitionActive(this.categoryTransitionFinalTarget),this.categoryTransitionStart=performance.now(),this.categoryTransitionFrame=requestAnimationFrame(t=>{this.animateBranchTransition(t,e)})}animateBranchTransition(e,t){if(this.categoryTransitionFrame=0,t!==this.categoryTransitionGeneration||!this.categoryTransitionActive||!this.categoryTransitionBranchPoints||a!==this)return;let n=Math.min(1,(e-this.categoryTransitionStart)/320),i=r(n);if(this.categoryTransitionBranchProgress=i,this.categoryTransitionRenderedPoints=this.categoryTransitionBranchPoints.map(e=>({...e})),this.categoryTransitionRenderedProgress=i,this.track.setAttribute(`d`,this.pathDataForProgress(this.categoryTransitionBranchPoints,i)),n<1){this.categoryTransitionFrame=requestAnimationFrame(e=>{this.animateBranchTransition(e,t)});return}this.completeBranchTransition(t)}completeBranchTransition(e){e!==this.categoryTransitionGeneration||!this.categoryTransitionActive||(this.categoryTransitionActive=!1,this.categoryTransitionTarget=null,this.categoryTransitionFinalTarget=null,this.categoryTransitionBranchPoints=null,this.categoryTransitionBranchProgress=0,this.categoryTransitionRetractPoints=null,this.categoryTransitionRetractProgress=0,this.categoryTransitionRetractStart=0,this.categoryTransitionRenderedPoints=null,this.categoryTransitionRenderedProgress=0,this.buildPath(),this.track.removeAttribute(`data-morphing`),this.updateCurrent(!1),this.active.setAttribute(`data-handoff`,`true`),this.transitionActive.setAttribute(`data-handoff`,`true`),this.svg.getBoundingClientRect(),this.active.removeAttribute(`data-entering`),this.transitionActive.removeAttribute(`data-visible`),this.categoryTransitionHandoffFrame=requestAnimationFrame(()=>{this.categoryTransitionHandoffFrame=0,e===this.categoryTransitionGeneration&&(this.active.removeAttribute(`data-handoff`),this.transitionActive.removeAttribute(`data-handoff`))}),this.nav.removeAttribute(`data-category-transition`),this.categoryTransitionCleanupTimer=window.setTimeout(()=>{e===this.categoryTransitionGeneration&&(this.categoryTransitionCleanupTimer=0,this.transitionTrack.removeAttribute(`d`),this.transitionTrack.removeAttribute(`data-initial`),this.transitionTrack.removeAttribute(`data-settling`),this.transitionActive.removeAttribute(`data-settling`),this.track.removeAttribute(`data-settling`),this.transitionActive.style.removeProperty(`transform`),this.transitionActive.removeAttribute(`x1`),this.transitionActive.removeAttribute(`x2`),this.transitionActive.removeAttribute(`y1`),this.transitionActive.removeAttribute(`y2`),this.categoryTransitionNode=null,this.updateCurrent(!1))},220))}handleContinuousCategoryWillChange(e){this.snapshotCategoryTransition(e)}handleContinuousCategoryChange(){if(this.refresh(),this.categoryTransitionActive){let e=this.categoryTransitionGeneration;this.categoryTransitionBeginFrame&&cancelAnimationFrame(this.categoryTransitionBeginFrame),this.categoryTransitionBeginFrame=requestAnimationFrame(()=>{this.categoryTransitionBeginFrame=0,this.beginCategoryTransition(e)})}else this.scheduleRebuild(!0)}handleResize(){this.categoryTransitionActive||(this.remeasureSubnavs(),this.scheduleRebuild(!0))}handleMediaChange(){this.cancelCategoryTransition(),this.remeasureSubnavs(),this.scheduleRebuild(!0)}handleReducedMotionChange(){this.cancelCategoryTransition(),this.remeasureSubnavs(),this.scheduleRebuild(!0)}handleRailClick(e){let t=e.target.closest(`.dcx-sub-link[data-dcx-rail-node]`);t&&this.nav.contains(t)&&(this.pinnedNode=t,this.updateCurrent());let n=e.target.closest(`.dcx-sub-link[data-dcx-rail-summary]`);if(!n||!this.nav.contains(n)||this.main.dataset.dcxContinuous===`true`)return;let r=n.dataset.dcxRailTarget,i=r===`__overview__`?this.currentArticle?.querySelector(`:scope > header`)||this.currentArticle:[...this.main.querySelectorAll(`.dcx-block[data-label]`)].find(e=>e.dataset.label===r);if(!i)return;e.preventDefault(),e.stopPropagation();let a=this.main.getBoundingClientRect(),o=r===`__overview__`?0:i.getBoundingClientRect().top-a.top+this.main.scrollTop-18;this.main.scrollTo({top:Math.max(0,o),behavior:this.reducedMotion.matches?`auto`:`smooth`})}clearPinnedNode(){this.pinnedNode&&=null}handleKeydown(e){[`ArrowDown`,`ArrowUp`,`PageDown`,`PageUp`,`Home`,`End`,` `].includes(e.key)&&this.clearPinnedNode()}destroy(){this.cancelCategoryTransition(),this.main?.removeEventListener(`scroll`,this.handleScroll),this.main?.removeEventListener(`wheel`,this.clearPinnedNode),this.main?.removeEventListener(`touchstart`,this.clearPinnedNode),this.main?.removeEventListener(`pointerdown`,this.clearPinnedNode),this.nav?.removeEventListener(`click`,this.handleRailClick),this.expander?.removeEventListener(`dcx:continuouscategorywillchange`,this.handleContinuousCategoryWillChange),this.expander?.removeEventListener(`dcx:continuouscategorychange`,this.handleContinuousCategoryChange),window.removeEventListener(`resize`,this.handleResize),window.removeEventListener(`keydown`,this.handleKeydown),this.desktop?.removeEventListener(`change`,this.handleMediaChange),this.reducedMotion?.removeEventListener(`change`,this.handleReducedMotionChange),this.resizeObserver?.disconnect(),this.rebuildTimers.forEach(e=>window.clearTimeout(e)),this.scrollFrame&&cancelAnimationFrame(this.scrollFrame),this.rebuildFrame&&cancelAnimationFrame(this.rebuildFrame),this.svg?.remove(),this.nav?.classList.remove(`dcx-material-rail-host`),this.nav?.removeAttribute(`data-rail-ready`)}}let l=()=>{o=0;let e=document.querySelector(`.dcx-expander`);if(!e){a?.destroy(),a=null;return}(!a||a.expander!==e)&&(a?.destroy(),a=new c(e)),a.refresh()},u=()=>{o||=requestAnimationFrame(l)};new MutationObserver(u).observe(document.body,{childList:!0,subtree:!0}),window.addEventListener(`pageshow`,u),u()})();var n=e=>Math.min(1,Math.max(0,e)),r=e=>e<=.04045?e/12.92:((e+.055)/1.055)**2.4,i=e=>e<=.0031308?12.92*e:1.055*e**(1/2.4)-.055,a=e=>e.match(/[\da-f]{2}/gi).map(e=>Number.parseInt(e,16)/255);function o([e,t,n]){let r=n*Math.PI/180,i=t*Math.cos(r),a=t*Math.sin(r),o=(e+.3963377774*i+.2158037573*a)**3,s=(e-.1055613458*i-.0638541728*a)**3,c=(e-.0894841775*i-1.291485548*a)**3;return[4.0767416621*o-3.3077115913*s+.2309699292*c,-1.2684380046*o+2.6097574011*s-.3413193965*c,-.0041960863*o-.7034186147*s+1.707614701*c]}function s([e,t,r]){let a=n(e),s=Math.max(0,t),c=o([a,s,r]);for(;s>0&&c.some(e=>e<0||e>1);)s=Math.max(0,s-.005),c=o([a,s,r]);return`#${c.map(e=>Math.round(n(i(e))*255).toString(16).padStart(2,`0`)).join(``).toUpperCase()}`}function c(e){let[t,n,i]=a(e).map(r),o=Math.cbrt(.4122214708*t+.5363325363*n+.0514459929*i),s=Math.cbrt(.2119034982*t+.6806995451*n+.1073969566*i),c=Math.cbrt(.0883024619*t+.2817188376*n+.6299787005*i),l=.2104542553*o+.793617785*s-.0040720468*c,u=1.9779984951*o-2.428592205*s+.4505937099*c,d=.0259040371*o+.7827717662*s-.808675766*c,f=Math.hypot(u,d);return[l,f,f<1e-5?0:(Math.atan2(d,u)*180/Math.PI+360)%360]}function l(e){let[t,n,r]=c(e);return`oklch(${(t*100).toFixed(1)}% ${n.toFixed(3)} ${r.toFixed(1)})`}function u(e){let[t,n,r]=e.oklch;return{primary:s([t,n,r]),secondary:s([t<.5?t+.18:t-.18,n*.6,r]),tertiary:s([.62,Math.min(.23,Math.max(n,.15)),(r+60)%360]),neutral:s([t<.55?.96:.2,.01,r])}}var d=.0027,f=.9716;function p(e){let t=h(e),n=e=>g(e,t);return n(d)>=n(f)?`var(--pk-ink-dark)`:`var(--pk-ink-light)`}function m(e){return p(e).includes(`light`)?s([.99,.008,95]):s([.14,.018,95])}function h(e){let[t,n,i]=a(e).map(r);return .2126*t+.7152*n+.0722*i}function g(e,t){let[n,r]=e>t?[e,t]:[t,e];return(n+.05)/(r+.05)}function _(e,t,n=4.5){let r=h(t);if(g(h(e),r)>=n)return e;let[i,a,o]=c(e),l=g(d,r)>=g(f,r),u=l?-.015:.015;for(let e=i+u;e>.03&&e<1;e+=u){let t=s([e,a,o]);if(g(h(t),r)>=n)return t}return l?`#000000`:`#FFFFFF`}var v=7,y=3;function b({neutral:e,primary:t}){let n=h(e),r=Math.max(g(d,n),g(f,n)),i=[];return re.ok?e.json():null).catch(()=>null).then(e=>({mode:e?.mode===`doc`?`doc`:`questionnaire`,prior:e?.prior&&typeof e.prior==`object`&&!Array.isArray(e.prior)?e.prior:null,priorSource:e?.priorSource||null,doc:e?.doc||null})),ee}var S,te=new Promise(e=>{S=e});function ne(e){document.body.dataset.hydrated=e||`none`,S(e||null)}var re=[`primary`,`secondary`,`tertiary`,`neutral`],C=[`color-strategy`,`motion-energy`,`layout-structure`,`boundary-style`,`corner-style`,`depth-style`,`type-scale`,`icon-pack`],w=e=>typeof e==`string`?e:``;function ie(e,t){if(!t)return!1;let n=document.querySelector(`input[name="${e}"][value="${CSS.escape(t)}"]`);return!n||n.disabled?!1:(n.click(),!0)}function ae(){return[...document.querySelectorAll(`input[type="hidden"][data-surface-field]`)]}function oe(e,t){if(e){se(e,t);for(let t of C)t in e&&ie(t,w(e[t]));ce(e),le(e,t),ue(e,t),de(e),fe(e,t)}}function se(e,t){let n=e[`surface-modes`],r=new Set(Array.isArray(n)?n:w(n)?[n]:[]);if(r.size&&t.modeInputs.some(e=>r.has(e.value))){for(let e of t.modeInputs)e.checked=r.has(e.value);t.syncModes()}}function ce(e){for(let t of ae()){let n=t.dataset.surfaceField;if(t.disabled||!(n in e))continue;let r=w(e[n]);r&&(t.value=r)}}function le(e,t){let n=w(e[`palette-source`]),r={};for(let t of re){let n=w(e[`palette-${t}`]);n&&(r[t]=n)}if(!n&&!Object.keys(r).length)return;let i=document.querySelector(`[name="palette-source"]`);i&&n&&(i.value=n);for(let e of re){let t=document.querySelector(`[name="palette-${e}"]`);t&&r[e]&&(t.value=r[e])}if(!t.cards.length)return;let a=t.cards.findIndex(e=>e.id===n),o=a===-1?0:a,s=t.states.get(t.cards[o]?.id);s?.colors&&Object.assign(s.colors,r),t.setCurrent(o),t.render(),t.syncDeckScroll()}function ue(e,t){let n=w(e[`font-pair`]),r=w(e[`font-heading`]),i=w(e[`font-body`]),a=t.fontManifest();if(n&&n!==`custom`&&a.pairs.some(({id:e})=>e===n)&&ie(`font-pair`,n)||!r||!i)return;let o={id:`custom`,name:`Custom`,heading:{family:r,weight:600,source:w(e[`font-heading-source`])},body:{family:i,weight:400,source:w(e[`font-body-source`])},why:`From your last run`};a.pairs=[o,...a.pairs.filter(({id:e})=>e!==`custom`)];for(let e of t.pairNodes())e.querySelector(`input`)?.value===`custom`&&t.removePairCard(e);t.addPairCard(o,{checked:!0,first:!0}),t.loadCustomFace(o),t.syncFontPair(o),t.applyHoist({force:!0})}function de(e){for(let t of[`icon-pack-name`,`icon-pack-license`,`icon-pack-url`]){let n=document.querySelector(`[name="${t}"]`),r=w(e[t]);n&&!n.value&&r&&(n.value=r)}}function fe(e,t){let n=null;try{let t=JSON.parse(w(e._chosen)||`null`);Array.isArray(t)&&(n=new Set(t))}catch{}for(let t of ae()){let r=t.dataset.surfaceField;t.disabled||((n?n.has(r):r in e)?t.dataset.chosen=`yes`:delete t.dataset.chosen)}t.syncChosenField()}var T=[`primary`,`secondary`,`tertiary`,`neutral`],pe=document.querySelector(`[data-screen="02"]`),E=(e,t=pe)=>t.querySelector(e),me=(e,t=pe)=>t.querySelectorAll(e),he=E(`[data-deck-scroll]`),ge=E(`[data-deck-points]`),_e=E(`[data-deck-cards]`),ve=E(`[data-deck-count]`),D=E(`.picker-palette-panel`),ye=E(`[data-palette-hint]`),be=E(`[data-ring-guide]`),xe=E(`[data-loupe]`),Se=E(`.picker-preview`),Ce=document.querySelector(`[data-type-stage]`),we=[...document.querySelectorAll(`[data-type-preview]`)],O=document.querySelector(`[data-font-options]`),Te=document.querySelector(`[data-pair-card]`),Ee=document.querySelector(`[data-scale-options]`),De=document.querySelector(`[data-scale-sheet]`),Oe=document.querySelector(`[data-scale-specimen]`),k=new Map,ke=new WeakMap,A=[],j=0,Ae,je,Me={sentence:`Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.`,paragraph:`Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.`,passages:[`Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur sint occaecat cupidatat.`,`Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione.`],note:`Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque.`,items:[`Excepteur sint occaecat`,`Non proident, sunt in culpa`],caption:`Lorem ipsum dolor sit amet, consectetur adipiscing.`},Ne={brand:`Lo`,nav:[`Lorem`,`Ipsum`,`Dolor`,`Amet`],navAction:`Consectetur`,menuAction:`Ipsum`,ctaPrimary:`Lorem ipsum`,ctaSecondary:`Dolor sit`,proof:[`Lorem ipsum dolor`,`Sit amet elit dolor`,`Sed do eiusmod`,`Tempor incididunt`],sectionTitle:`Lorem ipsum dolor`,sectionLink:`Consectetur adipiscing`,gallery:[{title:`Lorem ipsum dolor`,meta:`sit amet consectetur`},{title:`Dolor sit amet`,meta:`consectetur elit`},{title:`Eiusmod tempor`,meta:`sed do eiusmod`}],footerLinks:[`Lorem`,`Ipsum`,`Dolor`,`Amet`],footerMark:`© Lorem ipsum`},Pe={headline:`Lorem ipsum dolor sit amet`},M={rail:[`Lorem`,`Ipsum`,`Dolor`],columns:[`Lorem`,`Ipsum`,`Dolor`],figures:[`1,284`,`98.2%`,`41`],amounts:[`$12,400`,`$3,860`,`$9,215`],panel:[`Lorem ipsum`,`Dolor sit amet`],switches:[`Lorem ipsum`,`Dolor sit`],chartTitle:`Lorem ipsum dolor`,lanes:[`Lorem`,`Ipsum`,`Dolor`,`Amet`,`Elit`]},Fe={rail:[`Lorem ipsum`,`Dolor`,`Consectetur`,`Adipiscing elit`],crumb:`Lorem / Ipsum dolor`,note:`Nota`},Ie={stops:[`Lorem`,`Ipsum`,`Dolor`,`Amet`],caption:`Lorem ipsum dolor sit amet, +consectetur adipiscing elit sed do eiusmod tempor.`},Le=3,Re={version:1,specimen:{headline:`Built for the work at hand`},preview:{brand:`Ab`,nav:[`Product`,`Pricing`,`Docs`,`About`],navAction:`Sign in`,menuAction:`Menu`,ctaPrimary:`Get started`,ctaSecondary:`Learn more`,proof:[`Fast to set up`,`Works anywhere`,`No lock-in`,`Free to try`],sectionTitle:`Everything in one place`,sectionLink:`Read the guide`,gallery:[{title:`Overview`,meta:`Start here`},{title:`Library`,meta:`Browse all`},{title:`Reports`,meta:`See results`}],footerLinks:[`Product`,`Company`,`Support`,`Legal`],footerMark:`© Your product`},pairs:[{id:`source-editorial`,name:`Source editorial`,heading:{family:`Source Serif 4`,weight:600},body:{family:`Source Sans 3`,weight:400},why:`Considered and editorial`},{id:`literary-clarity`,name:`Literary clarity`,heading:{family:`Libre Baskerville`,weight:700},body:{family:`Libre Franklin`,weight:400},why:`Bookish and plain-spoken`},{id:`warm-structure`,name:`Warm structure`,heading:{family:`Bitter`,weight:600},body:{family:`Cabin`,weight:400},why:`Sturdy slab warmth`},{id:`bold-utility`,name:`Bold utility`,heading:{family:`Archivo Black`,weight:400},body:{family:`Archivo`,weight:400},why:`Headlines that shout`},{id:`technical-signal`,name:`Technical signal`,heading:{family:`Azeret Mono`,weight:600},body:{family:`Noto Sans`,weight:400},why:`Machined and precise`},{id:`classical-poise`,name:`Classical poise`,heading:{family:`Marcellus`,weight:400},body:{family:`Karla`,weight:400},why:`Inscriptional and formal`}]},ze=e=>Object.fromEntries(T.map(t=>[t,e(t)])),N=()=>A[j],P=()=>k.get(N().id),Be=()=>be.setAttribute(`aria-hidden`,`true`),Ve=/serif|mincho|baskerville|bitter|marcellus|slab|antiqua|garamond|didot|bodoni/i,He=e=>`"${e.replaceAll(`"`,`\\"`)}", ${Ve.test(e)?`serif`:`sans-serif`}`;function Ue(e){return{colors:e.type===`cue`?ze(t=>(e.palette[t].snapped||e.palette[t].hex).toUpperCase()):u(e),detached:ze(()=>!1),rings:ze(()=>[50,50])}}function We(e){let t=ke.get(e);return t||(t=document.createElement(`canvas`),t.width=e.naturalWidth,t.height=e.naturalHeight,t.getContext(`2d`,{willReadFrequently:!0}).drawImage(e,0,0),ke.set(e,t),t)}function Ge(e){if(e.type!==`cue`)return;let t=k.get(e.id);me(`.picker-ring`,e.node).forEach(e=>{let n=e.dataset.role,[r,i]=t.rings[n];e.style.setProperty(`--x`,`${r}%`),e.style.setProperty(`--y`,`${i}%`),e.style.setProperty(`--marker-color`,t.colors[n]),e.setAttribute(`aria-valuetext`,t.colors[n]),e.toggleAttribute(`data-detached`,t.detached[n])})}function Ke(e,t,n){let[r,i]=k.get(t.id).rings[e.dataset.role],a=We(n),o=E(`canvas`,xe).getContext(`2d`),s=r/100*(a.width-1),c=i/100*(a.height-1),l=Math.max(8,Math.min(a.width,a.height)/128);o.clearRect(0,0,80,80),o.imageSmoothingEnabled=!1,o.drawImage(a,s-l/2,c-l/2,l,l,0,0,80,80);let u=xe.parentElement.getBoundingClientRect(),d=e.getBoundingClientRect();xe.style.left=`${d.left-u.left+d.width/2}px`,xe.style.top=`${d.top-u.top}px`,xe.dataset.visible=``}function qe(e){let t=P().colors[e],n=E(`[data-band="${e}"]`,D);n.style.setProperty(`--band-color`,t),n.style.setProperty(`--band-ink`,p(t)),E(`output`,n).textContent=t,E(`input`,n).value=t,Je()}function Je(){if(A.length){for(let e of T)Se.style.setProperty(`--pv-${e}`,P().colors[e]);Se.style.setProperty(`--pv-n-ink`,p(P().colors.neutral)),Fn()}}function Ye(e,t=`pv`){let n=ze(e=>E(`[name="palette-${e}"]`).value);if(!e||Object.values(n).some(e=>!e))return;let r=(n,r)=>e.style.setProperty(`--${t}-${n}`,r);for(let e of T)r(e,n[e]);r(`n-ink`,p(n.neutral)),r(`p-ink`,p(n.primary)),r(`t-ink`,p(n.tertiary)),r(`p-on-n`,_(n.primary,n.neutral)),r(`t-on-n`,_(n.tertiary,n.neutral)),r(`t-on-p`,_(n.tertiary,n.primary)),r(`p-on-p`,_(n.primary,n.primary)),r(`t-on-t`,_(n.tertiary,n.tertiary)),r(`p-on-i`,_(n.primary,m(n.primary)))}function Xe(e){return!e||typeof e!=`object`?!1:[`brand`,`navAction`,`menuAction`,`ctaPrimary`,`ctaSecondary`,`sectionTitle`,`sectionLink`,`footerMark`].every(t=>e[t]===void 0||typeof e[t]==`string`)&&Object.entries({nav:4,proof:4,footerLinks:4}).every(([t,n])=>e[t]===void 0||Array.isArray(e[t])&&e[t].length===n&&e[t].every(e=>typeof e==`string`))&&(e.gallery===void 0||Array.isArray(e.gallery)&&e.gallery.length===Le&&e.gallery.every(e=>typeof e?.title==`string`&&typeof e?.meta==`string`))}function Ze(e){return{...e,preview:{...Re.preview,...e.preview}}}function Qe(e){return e?.version===1&&typeof e.specimen?.headline==`string`&&(!e.preview||Xe(e.preview))&&e.pairs?.length===6&&e.pairs.every(e=>typeof e.id==`string`&&typeof e.name==`string`&&typeof e.heading?.family==`string`&&Number.isFinite(e.heading?.weight)&&typeof e.body?.family==`string`&&Number.isFinite(e.body?.weight)&&typeof e.why==`string`&&(!e.preview||Xe(e.preview)))}function $e(e){let t=new Map,n=(e,n)=>{t.has(e)||t.set(e,new Set),t.get(e).add(n)};for(let t of e)n(t.heading.family,t.heading.weight),n(t.body.family,t.body.weight),n(t.body.family,700);let r=[...t].map(([e,t])=>`family=${encodeURIComponent(e).replaceAll(`%20`,`+`)}:wght@${[...t].sort((e,t)=>e-t).join(`;`)}`).join(`&`),i=document.createElement(`link`);i.rel=`stylesheet`,i.href=`https://fonts.googleapis.com/css2?${r}&display=swap`,i.dataset.pickerFonts=``,document.head.append(i)}function F(e,t,n){e&&e.querySelectorAll(t).forEach((e,t)=>{e.textContent=n[t]??``})}function et(e){let t=Ne,n=Pe,r=e.querySelector(`.ps-desktop`),i=e.querySelector(`.ps-phone-body`),a=e.dataset.surface===`read`?Fe.rail:M.rail,o=(t,n)=>{for(let r of e.querySelectorAll(t))r.textContent=n};o(`[data-type-brand]`,t.brand),o(`[data-type-nav-action]`,t.navAction),o(`[data-type-menu-action]`,t.menuAction),o(`[data-type-headline]`,n.headline),o(`[data-type-body]`,Me.sentence),o(`[data-type-cta-primary]`,t.ctaPrimary),o(`[data-type-cta-secondary]`,t.ctaSecondary),o(`[data-type-section-title]`,t.sectionTitle),o(`[data-type-section-body]`,`${Me.paragraph} Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.`),o(`[data-type-section-link]`,t.sectionLink),o(`[data-type-footer-mark]`,t.footerMark),o(`[data-type-note-label]`,Fe.note),o(`[data-type-note-body]`,Me.note),o(`[data-type-crumb]`,Fe.crumb),o(`[data-type-caption]`,Ie.caption),o(`[data-type-chart-title]`,M.chartTitle);let s=(e,t)=>{e&&e.querySelectorAll(`.ps-gallery-item [data-type-gallery-caption]`).forEach((e,n)=>{let r=t[n];r&&(e.textContent=`${r.title} ${r.meta}`)})};for(let e of[r,i])F(e,`[data-type-nav]`,t.nav),F(e,`[data-type-proof]`,t.proof),F(e,`[data-type-gallery-title]`,t.gallery.map(({title:e})=>e)),F(e,`[data-type-gallery-meta]`,t.gallery.map(({meta:e})=>e)),F(e,`[data-type-passage]`,Me.passages),F(e,`[data-type-item]`,Me.items),F(e,`[data-type-stop]`,Ie.stops),F(e,`[data-type-rail]`,a),F(e,`[data-type-lane]`,M.lanes),F(e,`[data-type-column]`,M.columns),F(e,`[data-type-figure]`,M.figures),F(e,`[data-type-amount]`,M.amounts),F(e,`[data-type-panel]`,M.panel),F(e,`[data-type-switch]`,M.switches),s(e,t.gallery);F(r?.querySelector(`.ps-footer`),`[data-type-footer-link]`,t.footerLinks),tt(e)}function tt(e){let t=e.dataset.surface;if(t===`persuade`){e.querySelectorAll(`.ps-editorial-copy > em[data-type-section-link]`).forEach(e=>e.remove());let t=`Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.`;e.querySelectorAll(`[data-type-section-body]`).forEach(e=>{if(e.hasAttribute(`data-type-section-body-2`)){e.remove();return}let n=e.nextElementSibling;if(n?.hasAttribute(`data-type-section-body-2`)){e.textContent=t,n.remove();return}e.textContent=t});let n=[`Lorem ipsum dolor sit amet consectetur`,`Dolor sit amet consectetur elit`,`Eiusmod tempor sed do eiusmod`];e.querySelectorAll(`.ps-gallery-item`).forEach((e,t)=>{let r=n[t];if(!r)return;let i=e.querySelector(`[data-type-gallery-caption]`);if(i){i.textContent=r;return}let a=e.querySelector(`[data-type-gallery-title]`),o=e.querySelector(`[data-type-gallery-meta]`);a&&(a.removeAttribute(`data-type-gallery-title`),a.setAttribute(`data-type-gallery-caption`,``),a.textContent=r,o?.remove())})}t===`read`&&e.querySelectorAll(`[data-type-section-title]`).forEach(e=>{e.textContent.trim()===`Lorem ipsum dolor sit`&&(e.textContent=`Lorem ipsum dolor`)}),t===`experience`&&(e.querySelectorAll(`[data-type-caption]`).forEach(e=>{e.textContent=`Lorem ipsum dolor sit amet, +consectetur adipiscing elit sed do eiusmod tempor.`}),e.querySelectorAll(`.ps-desktop .ps-index-cap`).forEach(e=>{if(e.querySelector(`.ps-index-avatar`))return;let t=document.createElement(`i`);t.className=`ps-index-avatar`,t.setAttribute(`aria-hidden`,`true`),e.insertBefore(t,e.firstChild)}))}function nt(e){for(let t of[Ce,De,Oe])t.style.setProperty(`--pt-heading`,He(e.heading.family)),t.style.setProperty(`--pt-body`,He(e.body.family)),t.style.setProperty(`--pt-heading-weight`,e.heading.weight);for(let e of we)et(e);document.querySelector(`[name="font-heading"]`).value=e.heading.family,document.querySelector(`[name="font-body"]`).value=e.body.family,document.querySelector(`[name="font-heading-source"]`).value=e.heading.source||``,document.querySelector(`[name="font-body-source"]`).value=e.body.source||``}var rt=[];function it(e,{checked:t=!1,first:n=!1}={}){let r=Te.content.firstElementChild.cloneNode(!0),i=r.querySelector(`input`);return i.value=e.id,i.checked=t,i.setAttribute(`aria-label`,`${e.heading.family} for headings with ${e.body.family} for body text. ${e.why}`),r.style.setProperty(`--pair-heading`,He(e.heading.family)),r.style.setProperty(`--pair-body`,He(e.body.family)),r.style.setProperty(`--pair-heading-weight`,e.heading.weight),r.style.setProperty(`--pair-body-weight`,e.body.weight),r.querySelector(`[data-pair-heading]`).textContent=e.heading.family,r.querySelector(`[data-pair-body]`).textContent=e.body.family,r.querySelector(`[data-pair-why]`).textContent=e.why,n?rt.unshift(r):rt.push(r),O.append(r),r}function at(e){let t=rt.indexOf(e);t!==-1&&rt.splice(t,1),e.remove()}function ot(e,t){je=Ze(e),O.toggleAttribute(`data-fallback`,t),e.pairs.forEach((e,t)=>it(e,{checked:t===0})),$e(e.pairs),nt(e.pairs[0]),zr(),vt()}O.onchange=({target:e})=>{if(!e.matches(`input[name="font-pair"]`))return;let t=je.pairs.find(({id:t})=>t===e.value);t&&nt(t),yt()};function st(e){let t=[...e.closest(`.picker-type-rail, .picker-scale-column`).querySelectorAll(`[data-list-scroll]`)],n=()=>{let n=e.scrollHeight-e.clientHeight;for(let r of t){let t=r.dataset.listScroll===`1`?e.scrollTop>=n-1:e.scrollTop<=1;r.disabled=n<2||t}};for(let n of t)n.onclick=()=>{let t=e.querySelector(`.picker-strategy-option`)?.offsetHeight||Math.round(e.clientHeight*.82);e.scrollBy({top:t*Number(n.dataset.listScroll),behavior:`smooth`})};return e.addEventListener(`scroll`,n,{passive:!0}),new ResizeObserver(n).observe(e),n}var ct=st(O);st(Ee);function lt(e,t){let n;return()=>{cancelAnimationFrame(n),n=requestAnimationFrame(()=>{e.matches(`:hover`)||t(e.contains(document.activeElement)?document.activeElement:null)})}}var ut=O.closest(`.picker-type-rail`),dt=new Set([`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`,`Home`,`End`,` `]),ft=!1,pt=!1,mt=!1,ht,gt=()=>pt||ut.matches(`:hover`)||mt&&ut.contains(document.activeElement);function _t(e){clearTimeout(ht);for(let e of rt)e.removeAttribute(`data-hoisted`);e.offsetWidth,e.dataset.hoisted=``,ht=setTimeout(()=>e.removeAttribute(`data-hoisted`),700)}function vt({force:e=!1}={}){ft=!1;let t=O.querySelector(`input[name="font-pair"]:checked`)?.closest(`.picker-type-option`);if(!t)return;let n=[t,...rt.filter(e=>e!==t)],r=[...O.querySelectorAll(`.picker-type-option`)],i=n.some((e,t)=>e!==r[t]);if(i){let e=document.activeElement;for(let e of n)O.append(e);O.contains(e)&&document.activeElement!==e&&e.focus({preventScroll:!0})}!i&&!e||(O.scrollTo({top:0}),ct(),i&&_t(t))}function yt(){ft=!1}function bt(){ft&&!gt()&&vt()}ut.addEventListener(`pointerenter`,()=>{pt=!0}),ut.addEventListener(`pointerleave`,()=>{pt=!1,requestAnimationFrame(bt)}),ut.addEventListener(`pointerdown`,()=>{mt=!1}),ut.addEventListener(`keydown`,({key:e})=>{dt.has(e)&&(mt=!0)}),ut.addEventListener(`focusout`,({relatedTarget:e})=>{ut.contains(e)||(mt=!1,bt())});var xt=16,St=13,Ct=.5,wt=[...De.querySelectorAll(`[data-scale-row]`)],Tt=document.querySelector(`[name="type-scale-ratio"]`),Et=()=>Ee.querySelector(`input[name="type-scale"]:checked`),Dt=e=>e?.closest(`.picker-strategy-option`)?.querySelector(`input`),Ot=e=>e.replace(/\.0+$/,``).replace(/(\.\d*[1-9])0+$/,`$1`);function kt(){if(De.style.setProperty(`--ts-fit`,`1`),!De.clientHeight)return;let e=1;for(let t of wt){let n=t.querySelector(`[data-scale-sample]`);e=Math.max(e,n.scrollWidth/Math.max(n.clientWidth,1),n.scrollHeight/Math.max(t.clientHeight,1))}e>1.001&&De.style.setProperty(`--ts-fit`,(1/e).toFixed(4))}function At(e){let t=Number(e.dataset.ratio),n=e.dataset.scaleName;for(let e of wt){let r=Number(e.dataset.scaleRow),i=xt*t**r,a=(St*t**(r*Ct)).toFixed(3);e.style.setProperty(`--ts-size`,a),Oe.style.setProperty(`--ts-step-${r}`,a),e.querySelector(`[data-scale-sample]`).textContent=n,e.querySelector(`[data-scale-px]`).textContent=`${Math.round(i)}px`,e.querySelector(`[data-scale-rem]`).textContent=`${Ot((i/xt).toFixed(2))}rem`}kt()}function jt(e){At(e),Tt.value=Number(e.dataset.ratio).toFixed(3)}Ee.addEventListener(`pointerover`,e=>{let t=Dt(e.target);t&&At(t)}),Ee.addEventListener(`focusin`,e=>{let t=Dt(e.target);t&&At(t)});var Mt=lt(Ee,e=>{At(Dt(e)??Et())});Ee.addEventListener(`pointerleave`,Mt),Ee.addEventListener(`focusout`,Mt),Ee.onchange=({target:e})=>{e.matches(`input[name="type-scale"]`)&&jt(e)};var Nt=st(Oe);new ResizeObserver(kt).observe(De),document.fonts?.addEventListener(`loadingdone`,kt),jt(Et());var Pt=document.querySelector(`[data-icon-options]`),Ft=document.querySelector(`[data-icon-sheet]`),It=Ft.querySelector(`[data-icon-field]`),Lt=Ft.querySelector(`[data-icon-strip]`),Rt=[`name`,`license`,`url`].map(e=>[e,document.querySelector(`[name="icon-pack-${e}"]`)]),zt,Bt,Vt;st(Pt);var Ht=()=>Pt.querySelector(`input[name="icon-pack"]:checked`),Ut=e=>e?.closest(`.picker-icon-row`)?.querySelector(`input`);function Wt(e,t){let n=Object.entries(e.attrs).map(([e,t])=>`${e}="${t}"`).join(` `);return``}function Gt(e){let t=zt?.get(e);!t||Vt===e||(Vt=e,delete It.dataset.empty,It.innerHTML=t.glyphs.map(e=>`${Wt(t,e)}`).join(``),Lt.innerHTML=t.glyphs.map(e=>Wt(t,e)).join(``))}function Kt(e){for(let[t,n]of Rt)n.value=e.dataset[`pack${t[0].toUpperCase()}${t.slice(1)}`];Gt(e.value)}function qt(){return Bt??=fetch(`/icon-packs.json`).then(e=>e.ok?e.json():Promise.reject()).then(e=>{zt=new Map(e.packs.map(e=>[e.id,e])),Gt(Ht().value)}).catch(()=>{It.dataset.empty=``,It.textContent=`Icon sets could not be loaded.`}),Bt}Pt.addEventListener(`pointerover`,e=>{let t=Ut(e.target);t&&Gt(t.value)}),Pt.addEventListener(`focusin`,e=>{let t=Ut(e.target);t&&Gt(t.value)});var Jt=lt(Pt,e=>{Gt(Ut(e)?.value??Ht().value)});Pt.addEventListener(`pointerleave`,Jt),Pt.addEventListener(`focusout`,Jt),Pt.onchange=({target:e})=>{e.matches(`input[name="icon-pack"]`)&&Kt(e)},Kt(Ht());var Yt=document.querySelector(`[data-question="motion"] .picker-strategy-choices`),Xt=`
`,Zt=``;function Qt(){for(let e of document.querySelectorAll(`.picker-preview-motion[data-motion-cell]`)){if(e.dataset.surface===`persuade`){let t=e.querySelector(`.ps-desktop`);if(!t)continue;e.classList.remove(`picker-artboard--solo`),e.classList.add(`picker-strategy-preview`,`picker-preview-layout`),e.setAttribute(`data-carry`,``),t.querySelector(`:scope > .ps-layout-grid`)||t.insertAdjacentHTML(`afterbegin`,``),e.querySelector(`:scope > .ps-phone`)||e.insertAdjacentHTML(`beforeend`,Xt),t.querySelector(`:scope > [data-layout-editorial-spacer]`)?.remove();continue}if(e.dataset.surface!==`experience`)continue;let t=document.createElement(`template`);t.innerHTML=Zt;let n=t.content.firstElementChild;if(n){for(let t of e.attributes)t.name!==`class`&&n.setAttribute(t.name,t.value);e.replaceWith(n)}}}Qt();var $t=[...document.querySelectorAll(`.picker-preview-motion`)],en=()=>Yt.querySelector(`input:checked`).value,tn;function nn(e){if(e!==tn){tn=e;for(let e of $t){for(let t of e.getAnimations({subtree:!0}))t.cancel(),t.play();e.__replayMotion?.()}}}var rn={"--mtr-nav1":`.ps-nav-bars i:nth-child(1), .pv-nav-bars i:nth-child(1)`,"--mtr-nav2":`.ps-nav-bars i:nth-child(2), .pv-nav-bars i:nth-child(2)`,"--mtr-cta1":`.ps-actions i:first-child`,"--mtr-cta2":`.ps-actions i:last-child`,"--mtr-card1":`.ps-gallery-item:nth-child(1) > i`,"--mxi-work1":`.ps-index-row:nth-of-type(1) > .ps-image, .pg-row:nth-of-type(1) > .pv-image`,"--mxi-work2":`.ps-index-row:nth-of-type(2) > .ps-image, .pg-row:nth-of-type(2) > .pv-image`,"--mxi-rail":`.ps-index-arrow--next, .pg-arrow--next`};function an(e=null){for(let t of e?[e]:$t){let e=t.querySelector(`.ps-desktop, .pv-desktop`);if(!e?.clientWidth)continue;let n=t=>{let n=t.offsetWidth/2,r=t.offsetHeight/2;for(let i=t;i&&i!==e;i=i.offsetParent)n+=i.offsetLeft,r+=i.offsetTop;return{x:n/e.clientWidth*100,y:r/e.clientHeight*100}};for(let[r,i]of Object.entries(rn)){let a=e.querySelector(i);if(!a)continue;let o=n(a);t.style.setProperty(r,`${o.x.toFixed(2)}cqw ${o.y.toFixed(2)}cqh`)}let r=e.querySelector(`.ps-nav-bars i:nth-child(1), .pv-nav-bars i:nth-child(1)`);r&&t.style.setProperty(`--mtr-entry`,`${n(r).x.toFixed(2)}cqw -8cqh`)}}for(let e of $t)new ResizeObserver(()=>an(e)).observe(e.querySelector(`.ps-desktop, .pv-desktop`));var on=e=>e?.closest(`.picker-strategy-option`)?.querySelector(`input`).value;Yt.addEventListener(`pointerover`,e=>{let t=on(e.target);t&&nn(t)}),Yt.addEventListener(`focusin`,e=>{let t=on(e.target);t&&nn(t)});var sn=lt(Yt,e=>{nn(on(e)??en())});Yt.addEventListener(`pointerleave`,sn),Yt.addEventListener(`focusout`,sn),Yt.addEventListener(`change`,({target:e})=>{e.matches(`input[name="motion-energy"]`)&&nn(e.value)});function cn(e){return{head:document.head,documentElement:document.documentElement,createElement:e=>document.createElement(e),getElementById:e=>document.getElementById(e),querySelector:t=>e.matches(t)?e:e.querySelector(t),querySelectorAll:t=>e.matches(t)?[e]:e.querySelectorAll(t)}}function ln(){let e=[];for(let t of document.querySelectorAll(`.picker-preview-motion[data-motion-cell]`)){let n=cn(t),r=window,i=t.dataset.motionCell;e.push({cell:i,board:t,installPerfectCursorLoop:()=>{if(!n?.head||t.hasAttribute(`data-premium-restrained-landing-perfect-loop`))return;t.setAttribute(`data-premium-restrained-landing-perfect-loop`,``);let e=n.createElement(`style`);e.id=`restrained-landing-perfect-loop`,e.textContent=` + #picker-form .picker-preview-motion[data-motion-cell="persuade-restrained"] .ps-cursor { + animation: 3.8s ease-in-out infinite mtr-path-perfect-loop !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-restrained"] .ps-nav-bars i:nth-child(2), + #picker-form .picker-preview-motion[data-motion-cell="persuade-restrained"] .ps-nav-bars i:nth-child(2)::before, + #picker-form .picker-preview-motion[data-motion-cell="persuade-restrained"] .ps-nav-bars i:nth-child(2)::after, + #picker-form .picker-preview-motion[data-motion-cell="persuade-restrained"] .ps-actions i:last-child { + animation: none !important; + } + + /* Cursor movement matched to the Responsive cell: ease-in-out glide + with ~0.4s hops between stops (the old timing was linear with a + 1.25s nav-to-CTA crawl inherited from the original 5-stop path). */ + @keyframes mtr-path-perfect-loop { + 0%, 22% { + translate: var(--mtr-nav1, 64.8cqw 4.8cqh); + } + 32.5%, 47.5% { + translate: var(--mtr-cta1, 10.3cqw 48.4cqh); + } + 58%, 85% { + translate: var(--mtr-email, 17.8cqw 84.2cqh); + } + 100% { + translate: var(--mtr-nav1, 64.8cqw 4.8cqh); + } + } + + /* The captured hover states are synced to the old path percentages; + re-declare them against the retimed dwells (last definition wins). */ + @keyframes mtr-nav-1 { + 0%, 21.99% { background-color: var(--pvs-cta); } + 22%, 100% { background-color: var(--pvs-bars); } + } + @keyframes mtr-drop-1 { + 0%, 3.99% { opacity: 0; } + 4%, 18.99% { opacity: 1; } + 19%, 100% { opacity: 0; } + } + @keyframes mtr-cta-primary { + 0%, 32.49% { background-color: var(--pvs-cta); box-shadow: inset 0 0 0 0 var(--pvs-cta); } + 32.5%, 47.49% { background-color: var(--pvs-ghost); box-shadow: inset 0 0 0 1.5px var(--pvs-cta); } + 47.5%, 100% { background-color: var(--pvs-cta); box-shadow: inset 0 0 0 0 var(--pvs-cta); } + } + + /* Hover color change on the email capture button while the cursor + dwells on it, mirroring the captured instant-flip hover pattern. */ + #picker-form .picker-preview-motion[data-motion-cell="persuade-restrained"] .ps-editorial-copy > em { + animation: + mt-in-4 var(--mt) var(--mt-ease) infinite, + mtr-email-hover 3.8s linear infinite !important; + } + #picker-form .picker-preview-motion[data-motion-cell="persuade-restrained"] .ps-editorial-copy > em::after { + animation: mtr-email-hover-icon 3.8s linear infinite; + } + @keyframes mtr-email-hover { + 0%, 57.99% { background-color: var(--pvs-ghost); } + 58%, 84.99% { background-color: var(--pvs-cta); } + 85%, 100% { background-color: var(--pvs-ghost); } + } + @keyframes mtr-email-hover-icon { + 0%, 57.99% { background-color: var(--pvs-cta); } + 58%, 84.99% { background-color: var(--pvs-cta-text); } + 85%, 100% { background-color: var(--pvs-cta); } + } + + @media (prefers-reduced-motion: reduce) { + #picker-form .picker-preview-motion[data-motion-cell="persuade-restrained"] .ps-cursor { + animation: none !important; + translate: var(--mtr-nav1, 64.8cqw 4.8cqh) !important; + } + #picker-form .picker-preview-motion[data-motion-cell="persuade-restrained"] .ps-editorial-copy > em, + #picker-form .picker-preview-motion[data-motion-cell="persuade-restrained"] .ps-editorial-copy > em::after { + animation: none !important; + } + } + `,n.getElementById(e.id)||n.head.appendChild(e)},installResponsiveLandingCorrections:()=>{if(!n?.head||t.hasAttribute(`data-premium-responsive-landing-corrections`))return;t.setAttribute(`data-premium-responsive-landing-corrections`,``);let e=n.createElement(`style`);e.id=`responsive-landing-corrections`,e.textContent=` + /* Keep the Preview 33 layout continuously present. The shared motion + entrance loops were restarting underneath the responsive interaction + and briefly collapsing most of the desktop and phone content. */ + #picker-form .picker-preview-motion[data-motion-cell="persuade-responsive"] :is( + .ps-nav, + .ps-hero-copy > *, + .ps-hero > .ps-image, + .ps-proof-item, + .ps-editorial-copy > strong, + .ps-editorial-copy > span, + .ps-gallery, + .ps-footer + ) { + animation: none !important; + opacity: 1 !important; + clip-path: none !important; + translate: none !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-responsive"] .ps-cursor { + animation: 4.2s ease-in-out infinite mtv-path-perfect-loop !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-responsive"] .ps-gallery-item:first-child > i::after { + top: 50% !important; + bottom: auto !important; + transform: translateY(-50%); + } + + @keyframes mtv-path-perfect-loop { + 0%, 25% { + translate: var(--mtr-nav1, 64.8cqw 4.8cqh); + } + 34.52%, 50% { + translate: var(--mtr-cta1, 10.3cqw 48.4cqh); + } + 60.71%, 83.33% { + translate: var(--mtr-email, 17.8cqw 84.2cqh); + } + 100% { + translate: var(--mtr-nav1, 64.8cqw 4.8cqh); + } + } + + @media (prefers-reduced-motion: reduce) { + #picker-form .picker-preview-motion[data-motion-cell="persuade-responsive"] .ps-cursor { + animation: none !important; + translate: var(--mtr-nav1, 64.8cqw 4.8cqh) !important; + } + } + `,n.getElementById(e.id)||n.head.appendChild(e)},installChoreographedPremium:()=>{if(!n?.head||t.hasAttribute(`data-premium-choreographed-landing-premium`))return;t.setAttribute(`data-premium-choreographed-landing-premium`,``);let e=n.createElement(`style`);e.id=`choreographed-landing-premium`,e.textContent=` + /* Premium pass: the page is fully present for the whole loop; motion is + carried by light, focus, and filters instead of staged reveals. All + reveal keyframes are re-declared empty (last definition wins), which + leaves their elements at their natural resting styles. */ + @keyframes mtc-curtain {} + @keyframes mtc-nav {} + @keyframes mtc-eyebrow {} + @keyframes mtc-headline-1 {} + @keyframes mtc-headline-2 {} + @keyframes mtc-copy-1 {} + @keyframes mtc-copy-2 {} + @keyframes mtc-copy-3 {} + @keyframes mtc-actions {} + @keyframes mtc-dot {} + @keyframes mtc-pdot {} + @keyframes mtc-pline {} + @keyframes mtc-pdiv {} + @keyframes mtc-ed-title {} + @keyframes mtc-ed-line-1 {} + @keyframes mtc-ed-line-2 {} + @keyframes mtc-ed-dash {} + @keyframes mtc-g-img-1 {} + @keyframes mtc-g-lab-1 {} + @keyframes mtc-g-lab-2 {} + @keyframes mtc-g-lab-3 {} + @keyframes mtc-g-lab-4 {} + @keyframes mtc-footer {} + + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-desktop::after { + animation: none !important; + opacity: 0 !important; + } + + /* The reveals ended on the visible state; with the reveal keyframes + emptied, the elements' hidden base styles (clip-path insets, + opacity 0, small translates) must be overridden to their resting + visible state. Pseudo-elements are excluded so the hover/tint + choreography keeps animating. */ + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] :is( + .ps-nav, .ps-nav-bars i, + .ps-headline i, .ps-copy i, + .ps-proof *, .ps-footer, .ps-footer *, + .ps-gallery, .ps-gallery-item, .ps-gallery-item > i, + .ps-gallery-item span, .ps-gallery-item span b, + .ps-brand, .ps-brand i + ) { + opacity: 1 !important; + clip-path: none !important; + translate: none !important; + scale: none !important; + } + + /* The proof dots' reveal ended on the CTA color; without the reveal + they must rest there. */ + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-proof-item i { + background-color: var(--pvs-cta); + } + + /* Cursor route: a closed circuit that ends exactly where it starts. + CTA (glow) -> gallery card (tint) -> email capture (submit story) -> + hero (light pass) -> back to the CTA. */ + @keyframes mtc-path { + 0%, 14% { translate: var(--mtr-cta1, 12.9cqw 49.2cqh); } + 22%, 36% { translate: var(--mtr-card1, 43.5cqw 75.8cqh); } + 44%, 62% { translate: var(--mtr-email, 17.8cqw 84.2cqh); } + 70%, 84% { translate: 72.8cqw 34.9cqh; } + 100% { translate: var(--mtr-cta1, 12.9cqw 49.2cqh); } + } + + /* Specular sweep over the hero image: an ambient opening pass, then a + second pass while the cursor rests on the hero. */ + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-hero > .ps-image::before { + content: ""; + position: absolute; + inset: 0; + border-radius: inherit; + pointer-events: none; + background-image: linear-gradient(115deg, + transparent 42%, + color-mix(in oklab, var(--pvs-ground) 30%, transparent) 50%, + transparent 58%); + background-size: 320% 100%; + background-repeat: no-repeat; + background-position: 115% 0; + animation: 5.6s linear infinite mtc-hero-sheen; + } + @keyframes mtc-hero-sheen { + 0% { background-position: 115% 0; animation-timing-function: cubic-bezier(.45, 0, .25, 1); } + 14%, 67.99% { background-position: -15% 0; } + 68% { background-position: 115% 0; animation-timing-function: cubic-bezier(.45, 0, .25, 1); } + 84%, 100% { background-position: -15% 0; } + } + + /* CTA glow bloom while the cursor dwells on the filled button. */ + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-actions i:first-child { + animation: 5.6s linear infinite mtc-cta-glow !important; + } + @keyframes mtc-cta-glow { + 0%, 0.8% { filter: drop-shadow(0 0 0 transparent) brightness(1); animation-timing-function: cubic-bezier(.16, 1, .3, 1); } + 2.5%, 12.5% { filter: drop-shadow(0 4px 11px color-mix(in oklab, var(--pvs-cta) 72%, transparent)) brightness(1.14); animation-timing-function: cubic-bezier(.16, 1, .3, 1); } + 17%, 100% { filter: drop-shadow(0 0 0 transparent) brightness(1); } + } + + /* Card hover: the tint fades in cleanly (no wipe, no blur), slightly + translucent so the artwork shades it. */ + @keyframes mtc-tint { + 0%, 21.5% { opacity: 0; clip-path: inset(0); animation-timing-function: cubic-bezier(.16, 1, .3, 1); } + 24.5%, 34.5% { opacity: .92; clip-path: inset(0); animation-timing-function: cubic-bezier(.16, 1, .3, 1); } + 38.5%, 100% { opacity: 0; clip-path: inset(0); } + } + @keyframes mtc-label { + 0%, 23% { background-color: var(--pvs-bars); width: 76%; animation-timing-function: cubic-bezier(.16, 1, .3, 1); } + 26%, 34.5% { background-color: var(--pvs-cta); width: 84%; animation-timing-function: cubic-bezier(.16, 1, .3, 1); } + 38.5%, 100% { background-color: var(--pvs-bars); width: 76%; } + } + @keyframes mtc-chev { + 0%, 24% { opacity: 0; translate: -6px; } + 26.5% { opacity: 1; translate: -6px; animation-timing-function: cubic-bezier(.16, 1, .3, 1); } + 30%, 34.5% { opacity: 1; translate: 0; } + 38%, 100% { opacity: 0; translate: 0; } + } + + /* Hero lift while the cursor and the light pass rest on it (no blur). */ + @keyframes mtc-image { + 0%, 70% { filter: saturate(1) brightness(1); animation-timing-function: cubic-bezier(.16, 1, .3, 1); } + 74%, 84% { filter: saturate(1.1) brightness(1.03); animation-timing-function: cubic-bezier(.16, 1, .3, 1); } + 90%, 100% { filter: saturate(1) brightness(1); } + } + @keyframes mtc-g-img-2 {} + @keyframes mtc-g-img-3 {} + @keyframes mtc-g-img-4 {} + + /* Email capture submit story, timed to the cursor's 44-62% dwell: + press, click ring, the paper plane pulls back and launches on an + arc with a sharp two-ghost trail, the button fills while a sonar + ring radiates, the field line clears, the check pops with an + overshoot, then everything settles back before the loop wraps. */ + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-editorial-copy > em { + transform-origin: 50% 50% !important; + animation: mtc-email-btn 5.6s linear infinite !important; + } + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-editorial-copy > em::after { + animation: mtc-email-flight 5.6s linear infinite !important; + } + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-editorial-copy > em::before { + animation: mtc-email-check 5.6s linear infinite !important; + } + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-editorial-copy > span i:last-child { + transform-origin: 0 50%; + animation: mtc-email-line 5.6s linear infinite !important; + } + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-cursor::after { + animation: mtc-email-click 5.6s linear infinite !important; + } + @keyframes mtc-email-btn { + 0%, 44.6% { scale: 1; background-color: var(--pvs-ghost); box-shadow: inset 0 0 0 1px var(--pvs-cta), 0 0 0 0 transparent; animation-timing-function: cubic-bezier(.16, 1, .3, 1); } + 45.6% { scale: .93; animation-timing-function: cubic-bezier(.16, 1, .3, 1); } + 47.4% { scale: 1; background-color: var(--pvs-ghost); } + 48.2% { box-shadow: inset 0 0 0 1px var(--pvs-cta), 0 0 0 0 color-mix(in oklab, var(--pvs-cta) 50%, transparent); } + 50.5% { background-color: var(--pvs-cta); } + 56% { box-shadow: inset 0 0 0 1px var(--pvs-cta), 0 0 0 12px transparent; } + 76% { background-color: var(--pvs-cta); } + 82%, 100% { scale: 1; background-color: var(--pvs-ghost); box-shadow: inset 0 0 0 1px var(--pvs-cta), 0 0 0 12px transparent; } + } + @keyframes mtc-email-flight { + 0%, 46% { opacity: 1; transform: translate(-50%, -50%) rotate(0deg); background-color: var(--pvs-cta); filter: drop-shadow(0 0 0 transparent) drop-shadow(0 0 0 transparent); } + 47.2% { transform: translate(-64%, -34%) rotate(9deg); background-color: var(--pvs-cta); animation-timing-function: cubic-bezier(.5, 0, .8, .4); } + 49.4% { opacity: 1; transform: translate(calc(-50% + 30px), calc(-50% - 12px)) rotate(-16deg); background-color: var(--pvs-cta-text); filter: drop-shadow(-6px 3px 0 color-mix(in oklab, var(--pvs-cta-text) 45%, transparent)) drop-shadow(-12px 6px 0 color-mix(in oklab, var(--pvs-cta-text) 18%, transparent)); animation-timing-function: cubic-bezier(.2, .6, .4, 1); } + 52.5% { opacity: 0; transform: translate(calc(-50% + 78px), calc(-50% - 16px)) rotate(-4deg); background-color: var(--pvs-cta-text); filter: drop-shadow(-6px 3px 0 transparent) drop-shadow(-12px 6px 0 transparent); } + 52.6%, 80% { opacity: 0; transform: translate(-50%, -50%) rotate(0deg); background-color: var(--pvs-cta); filter: drop-shadow(0 0 0 transparent) drop-shadow(0 0 0 transparent); } + 85%, 100% { opacity: 1; transform: translate(-50%, -50%) rotate(0deg); } + } + @keyframes mtc-email-check { + 0%, 50.5% { opacity: 0; transform: translate(calc(-50% - 14px), -62%) rotate(45deg) scale(.5); animation-timing-function: cubic-bezier(.34, 1.56, .64, 1); } + 55% { opacity: 1; transform: translate(calc(-50% - 14px), -62%) rotate(45deg) scale(1.12); } + 57.5%, 74% { opacity: 1; transform: translate(calc(-50% - 14px), -62%) rotate(45deg) scale(1); } + 80%, 100% { opacity: 0; transform: translate(calc(-50% - 14px), -62%) rotate(45deg) scale(.5); } + } + @keyframes mtc-email-line { + 0%, 48.5% { scale: 1 1; animation-timing-function: cubic-bezier(.16, 1, .3, 1); } + 53%, 78% { scale: 0 1; } + 84%, 100% { scale: 1 1; } + } + @keyframes mtc-email-click { + 0%, 44.4% { opacity: 0; scale: .35; } + 44.9% { opacity: .55; scale: .35; } + 47.6%, 100% { opacity: 0; scale: 1.5; } + } + + @media (prefers-reduced-motion: reduce) { + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-cursor { + animation: none !important; + translate: var(--mtr-cta1, 12.9cqw 49.2cqh) !important; + } + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] :is( + .ps-hero > .ps-image, + .ps-actions i:first-child, + .ps-gallery-item > i, + .ps-gallery-item:first-child span b:first-child, + .ps-editorial-copy > em, + .ps-editorial-copy > span i:last-child + ), + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-hero > .ps-image::before, + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-gallery-item:first-child > i::before, + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-gallery-item:first-child > i::after, + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-editorial-copy > em::before, + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-editorial-copy > em::after, + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-cursor::after { + animation: none !important; + } + } + `,n.getElementById(e.id)||n.head.appendChild(e);let i=n.createElement(`style`);i.id=`choreographed-hero-stagger-only`,i.textContent=` + #picker-form#picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"], + #picker-form#picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] *, + #picker-form#picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] *::before, + #picker-form#picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] *::after { + animation: none !important; + transition: none !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-desktop::after { + opacity: 0 !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-cursor { + opacity: 0 !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-hero > .ps-image::before { + content: none !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-editorial-copy > em::before { + opacity: 0 !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] :is( + .ps-eyebrow, + .ps-headline, + .ps-copy, + .ps-actions, + .ps-proof + ) { + opacity: 1; + filter: none; + transform: none; + clip-path: none !important; + translate: none !important; + scale: none !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-choreo-viewport { + z-index: 1; + min-width: 0; + min-height: 0; + height: 90.6%; + overflow: hidden; + position: absolute; + inset: 9.4% 0 auto; + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-nav { + z-index: 3; + position: relative; + background-color: var(--pvs-ground); + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-choreo-track { + display: grid; + grid-template-rows: repeat(2, minmax(0, 1fr)); + width: 100%; + height: 200%; + min-height: 0; + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-choreo-page { + display: grid; + grid-template-rows: 50.6fr 9fr 22.7fr 8.3fr; + min-width: 0; + min-height: 0; + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-choreo-page > .ps-proof { + margin-inline: var(--pvs-proof-inset, 0px); + border: var(--pvs-panel-edge-w) solid var(--pvs-panel-edge); + border-radius: var(--pvs-radius-surface); + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-pricing-page { + --ps-pricing-accent-muted: #607272; + --ps-pricing-accent-dark: #0b3f3f; + box-sizing: border-box; + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + align-items: center; + gap: 4%; + min-width: 0; + min-height: 0; + padding: 0 7.9%; + background-color: var(--pvs-ground); + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-pricing-card { + --ps-pricing-accent: var(--ps-pricing-accent-dark); + box-sizing: border-box; + display: grid; + grid-template-rows: auto auto 1px minmax(0, 1fr) auto; + gap: 4cqh; + align-self: center; + width: 100%; + height: 50.8cqh; + min-width: 0; + min-height: 0; + padding: 5cqh 1.3cqw 2.4cqh; + overflow: hidden; + background-color: var(--pvs-ground); + border: 1px solid var(--ps-pricing-accent); + border-radius: var(--pvs-radius-surface); + translate: 0 -3cqh; + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-pricing-card:nth-child(1) { + --ps-pricing-accent: var(--ps-pricing-accent-muted); + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-pricing-card:nth-child(n + 2) { + border-width: 2px; + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-pricing-tier, + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-pricing-price > *, + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-pricing-features > i, + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-pricing-action { + display: block; + border-radius: var(--pvs-radius-bar); + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-pricing-tier { + justify-self: center; + width: 32%; + height: 2cqh; + background-color: var(--ps-pricing-accent); + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-pricing-price { + display: grid; + justify-items: center; + gap: 2.6cqh; + min-width: 0; + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-pricing-price > b { + width: 54%; + height: 4.9cqh; + background-color: var(--ps-pricing-accent); + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-pricing-price > i { + width: 33%; + height: .9cqh; + background-color: var(--pvs-bars); + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-pricing-divider { + display: block; + justify-self: center; + width: 90%; + height: 1px; + background-color: var(--pvs-bars); + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-pricing-features { + display: grid; + align-content: center; + gap: 2.5cqh; + min-height: 0; + padding-inline: 1.5cqw; + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-pricing-features > i { + display: flex; + align-items: center; + gap: 1.2cqw; + width: 100%; + height: auto; + background-color: transparent; + border-radius: 0; + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-pricing-features > i::before { + content: ""; + flex: none; + width: 2cqh; + height: 2cqh; + background-color: var(--ps-pricing-accent); + border-radius: var(--pvs-radius-dot); + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-pricing-features > i::after { + content: ""; + width: var(--pricing-feature-width, 70%); + height: .9cqh; + background-color: var(--pvs-bars); + border-radius: var(--pvs-radius-bar); + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-pricing-features > i:nth-child(2) { + --pricing-feature-width: 70%; + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-pricing-features > i:nth-child(3) { + --pricing-feature-width: 70%; + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-pricing-action { + width: 100%; + height: 5.1cqh; + background-color: var(--ps-pricing-accent); + border-radius: var(--pvs-radius-control); + } + + @media (prefers-reduced-motion: reduce) { + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] :is( + .ps-eyebrow, + .ps-headline, + .ps-copy, + .ps-actions, + .ps-proof + ) { + opacity: 1 !important; + filter: none !important; + transform: none !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-choreo-track { + transform: translateY(-50%) !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-nav { + opacity: 0 !important; + filter: none !important; + transform: none !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-choreographed"] .ps-pricing-card { + opacity: 1 !important; + filter: none !important; + clip-path: none !important; + transform: none !important; + } + } + `,n.getElementById(i.id)||n.head.appendChild(i);let a=n.querySelector(`.picker-preview-motion[data-surface="persuade"]`),o=a?.querySelector(`.ps-desktop`);if(o&&!o.querySelector(`:scope > .ps-choreo-viewport`)){let e=n.createElement(`div`),t=n.createElement(`div`),r=n.createElement(`div`),i=n.createElement(`div`);e.className=`ps-choreo-viewport`,t.className=`ps-choreo-track`,r.className=`ps-choreo-page`,i.className=`ps-pricing-page`,i.setAttribute(`aria-hidden`,`true`),i.innerHTML=Array.from({length:3},()=>`
`).join(``),[o.querySelector(`:scope > .ps-hero`),o.querySelector(`:scope > .ps-proof`),o.querySelector(`:scope > .ps-editorial`),o.querySelector(`:scope > .ps-footer`)].filter(Boolean).forEach(e=>r.appendChild(e)),t.append(r,i),e.appendChild(t),o.querySelector(`:scope > .ps-nav`)?.insertAdjacentElement(`afterend`,e)}let s=[[`.ps-desktop .ps-eyebrow`,`.ps-desktop .ps-headline`,`.ps-desktop .ps-copy`,`.ps-desktop .ps-actions`,`.ps-desktop .ps-proof`],[`.ps-phone-body > .ps-headline`,`.ps-phone-body > .ps-copy`,`.ps-phone-body > .ps-actions`,`.ps-phone-body > .ps-proof`]],c=()=>{let e=Math.sqrt(120),t=20/(2*Math.sqrt(120)),n=e*Math.sqrt(1-t**2);return Array.from({length:73},(r,i)=>{let a=i/72,o=1050*a/1e3,s=i===72?0:Math.exp(-t*e*o)*(Math.cos(n*o)+t*e/n*Math.sin(n*o)),c=Math.max(0,Math.min(1,1-s));return{offset:a,opacity:Number(c.toFixed(4)),filter:`blur(${(4*(1-c)).toFixed(3)}px)`,transform:`translateY(${(40*s).toFixed(3)}px)`}})},l=r.matchMedia(`(prefers-reduced-motion: reduce)`);if(a&&r.Element?.prototype.animate&&!l.matches){let e=[],n=c();for(let t of s)t.map(e=>a.querySelector(e)).filter(Boolean).forEach((t,r)=>{e.push(t.animate(n,{duration:1050,delay:r*100,easing:`linear`,fill:`both`}))});let i=7200,o=1750,u=5400,d=e=>e/i,f=a.querySelector(`.ps-choreo-track`);f&&e.push(f.animate([{offset:0,transform:`translateY(0)`},{offset:d(o),transform:`translateY(0)`,easing:`cubic-bezier(.65, 0, .35, 1)`},{offset:d(2850),transform:`translateY(-50%)`},{offset:d(u),transform:`translateY(-50%)`,easing:`cubic-bezier(.65, 0, .35, 1)`},{offset:d(6500),transform:`translateY(0)`},{offset:1,transform:`translateY(0)`}],{duration:i,easing:`linear`,fill:`both`}));let p=a.querySelector(`.ps-desktop > .ps-nav`);p&&e.push(p.animate([{offset:0,opacity:1,filter:`blur(0px)`,transform:`translateY(0px)`},{offset:d(o),opacity:1,filter:`blur(0px)`,transform:`translateY(0px)`,easing:`cubic-bezier(.4, 0, 1, 1)`},{offset:d(2200),opacity:0,filter:`blur(4px)`,transform:`translateY(-10px)`},{offset:d(u),opacity:0,filter:`blur(4px)`,transform:`translateY(-10px)`,easing:`cubic-bezier(.16, 1, .3, 1)`},{offset:d(5850),opacity:1,filter:`blur(0px)`,transform:`translateY(0px)`},{offset:1,opacity:1,filter:`blur(0px)`,transform:`translateY(0px)`}],{duration:i,easing:`linear`,fill:`both`}));let m={left:[{opacity:.12,filter:`blur(8px)`,clipPath:`inset(0 100% 0 0)`,transform:`translateX(-64px) scale(.985)`},{opacity:1,filter:`blur(0px)`,clipPath:`inset(0)`,transform:`translateX(0px) scale(1)`}],center:[{opacity:.12,filter:`blur(7px)`,clipPath:`inset(0 49%)`,transform:`scale(.96)`},{opacity:1,filter:`blur(0px)`,clipPath:`inset(0)`,transform:`scale(1)`}],right:[{opacity:.12,filter:`blur(8px)`,clipPath:`inset(0 0 0 100%)`,transform:`translateX(64px) scale(.985)`},{opacity:1,filter:`blur(0px)`,clipPath:`inset(0)`,transform:`translateX(0px) scale(1)`}]};for(let[t,n,r]of[[`.ps-pricing-card:nth-child(1)`,`left`,2140],[`.ps-pricing-card:nth-child(2)`,`center`,2280],[`.ps-pricing-card:nth-child(3)`,`right`,2420]]){let i=a.querySelector(t);i&&e.push(i.animate(m[n],{duration:720,delay:r,easing:`cubic-bezier(.16, 1, .3, 1)`,fill:`both`}))}let h=()=>{if(l.matches){e.forEach(e=>e.cancel());return}e.forEach(e=>{e.pause(),e.currentTime=0,e.play()})};t.__replayMotion=h,l.addEventListener(`change`,({matches:t})=>{t?e.forEach(e=>e.cancel()):h()}),r.addEventListener(`pagehide`,()=>{e.forEach(e=>e.cancel())})}let u=0,d=()=>{!e.isConnected||u>=3||(u+=1,e.textContent+=` +.imp-paint-nudge-`+u+` { --imp-nudge: `+u+`; }`,u<3&&r.setTimeout(d,700*u))};r.requestAnimationFrame(()=>r.requestAnimationFrame(d))},installEmailCapture:()=>{if(!n?.head||t.hasAttribute(`data-premium-landing-email-capture`))return;t.setAttribute(`data-premium-landing-email-capture`,``);let e=n.createElement(`style`);e.id=`landing-email-capture`,e.textContent=` + .picker-preview-motion[data-surface="persuade"] .ps-desktop .ps-editorial-copy { + grid-template-columns: minmax(0, 1fr) !important; + grid-template-rows: auto 20px 20px !important; + align-items: center !important; + column-gap: 0 !important; + row-gap: 5px !important; + } + + .picker-preview-motion[data-surface="persuade"] .ps-desktop .ps-editorial-copy > strong { + grid-column: 1 / -1; + width: 58% !important; + height: 7px !important; + background-color: var(--pvs-bars) !important; + } + + .picker-preview-motion[data-surface="persuade"] .ps-desktop .ps-editorial-copy > span { + box-sizing: border-box; + grid-column: 1; + grid-row: 2; + display: flex !important; + align-items: center; + gap: 5px !important; + min-width: 0; + height: 20px; + padding: 0 7px; + border-radius: var(--pvs-radius-control); + box-shadow: inset 0 0 0 1px var(--pvs-bars); + } + + .picker-preview-motion[data-surface="persuade"] .ps-desktop .ps-editorial-copy > span i:first-child { + box-sizing: border-box; + flex: 0 0 auto; + width: 6px !important; + height: 6px !important; + border: 1px solid var(--pvs-bars); + border-radius: 50%; + background: transparent !important; + } + + .picker-preview-motion[data-surface="persuade"] .ps-desktop .ps-editorial-copy > span i:last-child { + flex: 0 1 56%; + width: 56% !important; + height: 3px !important; + border-radius: var(--pvs-radius-bar); + } + + .picker-preview-motion[data-surface="persuade"] .ps-desktop .ps-editorial-copy > em { + box-sizing: border-box; + grid-column: 1; + grid-row: 3; + position: relative; + width: 100% !important; + height: 20px !important; + margin: 0 !important; + border-radius: var(--pvs-radius-control); + background-color: var(--pvs-ghost); + box-shadow: inset 0 0 0 1px var(--pvs-cta); + transform-origin: 50% 50%; + } + + .picker-preview-motion[data-surface="persuade"] .ps-desktop .ps-editorial-copy > em::after, + .picker-preview-motion[data-surface="persuade"] .ps-desktop .ps-editorial-copy > em::before { + content: ""; + box-sizing: border-box; + position: absolute; + top: 50%; + left: 50%; + pointer-events: none; + } + + .picker-preview-motion[data-surface="persuade"] .ps-desktop .ps-editorial-copy > em::after { + width: 10px; + height: 8px; + background-color: var(--pvs-cta); + clip-path: polygon(0 0, 100% 50%, 0 100%, 22% 59%, 68% 50%, 22% 41%); + transform: translate(-50%, -50%); + } + + .picker-preview-motion[data-surface="persuade"] .ps-desktop .ps-editorial-copy > em::before { + width: 5px; + height: 8px; + border-right: 1.5px solid var(--pvs-cta-text); + border-bottom: 1.5px solid var(--pvs-cta-text); + opacity: 0; + transform: translate(-50%, -62%) rotate(45deg) scale(.7); + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-responsive"] .ps-gallery-item:first-child > i, + #picker-form .picker-preview-motion[data-motion-cell="persuade-responsive"] .ps-gallery-item:first-child span b:first-child, + #picker-form .picker-preview-motion[data-motion-cell="persuade-responsive"] .ps-gallery-item:first-child > i::after { + animation: none !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-responsive"] .ps-gallery-item:first-child > i::after { + opacity: 0 !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-responsive"] .ps-editorial-copy > em { + animation: + mt-in-4 var(--mt) var(--mt-ease) infinite, + mtv-email-submit 4.2s linear infinite !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-responsive"] .ps-editorial-copy > em::after { + animation: mtv-email-send 4.2s linear infinite; + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-responsive"] .ps-editorial-copy > em::before { + animation: mtv-email-check 4.2s linear infinite; + } + + #picker-form .picker-preview-motion[data-motion-cell="persuade-responsive"] .ps-cursor::after { + animation: mtv-email-click 4.2s linear infinite !important; + } + + /* The cursor path keyframes (mtr-/mtv-path-perfect-loop) are owned by + the per-cell correction styles; do not redefine them here. */ + + @keyframes mtv-email-submit { + 0%, 63% { + background-color: var(--pvs-ghost); + box-shadow: inset 0 0 0 1px var(--pvs-cta); + scale: 1; + } + 65% { + background-color: var(--pvs-ghost); + box-shadow: inset 0 0 0 1px var(--pvs-cta); + scale: .9; + } + 69%, 83.33% { + background-color: var(--pvs-cta); + box-shadow: var(--pvs-shadow-control); + scale: 1; + } + 88%, 100% { + background-color: var(--pvs-ghost); + box-shadow: inset 0 0 0 1px var(--pvs-cta); + scale: 1; + } + } + + @keyframes mtv-email-send { + 0%, 63% { + opacity: 1; + transform: translate(-50%, -50%) scale(1); + } + 66%, 84% { + opacity: 0; + transform: translate(-18%, -50%) scale(.72); + } + 88%, 100% { + opacity: 1; + transform: translate(-50%, -50%) scale(1); + } + } + + @keyframes mtv-email-check { + 0%, 66% { + opacity: 0; + transform: translate(-50%, -62%) rotate(45deg) scale(.7); + } + 69%, 83.33% { + opacity: 1; + transform: translate(-50%, -62%) rotate(45deg) scale(1); + } + 88%, 100% { + opacity: 0; + transform: translate(-50%, -62%) rotate(45deg) scale(.7); + } + } + + @keyframes mtv-email-click { + 0%, 63.5% { + opacity: 0; + scale: .35; + } + 64% { + opacity: .55; + scale: .35; + } + 67%, 100% { + opacity: 0; + scale: 1.5; + } + } + + @media (prefers-reduced-motion: reduce) { + #picker-form .picker-preview-motion[data-surface="persuade"] .ps-editorial-copy > em, + #picker-form .picker-preview-motion[data-surface="persuade"] .ps-editorial-copy > em::before, + #picker-form .picker-preview-motion[data-surface="persuade"] .ps-editorial-copy > em::after { + animation: none !important; + } + } + `,n.getElementById(e.id)||n.head.appendChild(e);let i=()=>n.querySelector(`.picker-preview-motion[data-surface="persuade"] .ps-desktop .ps-editorial-copy > em`),a=()=>{let e=i(),t=e?.closest(`.picker-preview-motion`),n=e?.closest(`.ps-desktop`),a=t?.querySelector(`.ps-cursor`);if(!t||!n||!e||!a)return;let o=n.getBoundingClientRect(),s=e.getBoundingClientRect();if(!n.clientWidth||!n.clientHeight)return;let c=r.getComputedStyle(n),l=r.getComputedStyle(e,`::after`),u=r.getComputedStyle(a),d=parseFloat(c.borderLeftWidth)||0,f=parseFloat(c.borderTopWidth)||0,p=(e,t)=>{let n=parseFloat(e);return Number.isFinite(n)?e.trim().endsWith(`%`)?n/100*t:n:t/2},m=p(l.left,s.width),h=p(l.top,s.height),g=parseFloat(u.width)||a.offsetWidth,_=parseFloat(u.height)||a.offsetHeight,v=Math.min(g/14,_/20),y=v*2.2,b=v*3.9,ee=(s.left-o.left-d+m-y)/n.clientWidth*100,x=(s.top-o.top-f+h-b)/n.clientHeight*100;t.style.setProperty(`--mtr-email`,`${ee.toFixed(2)}cqw ${x.toFixed(2)}cqh`)};r.requestAnimationFrame(()=>{a(),r.requestAnimationFrame(a)});let o=i()?.closest(`.ps-desktop`);if(o&&r.ResizeObserver){let e=new r.ResizeObserver(a);e.observe(o),t.__emailCaptureObserver=e}},installPortfolioFixes:()=>{if(!n?.head||t.hasAttribute(`data-premium-portfolio-motion-fixes`))return;t.setAttribute(`data-premium-portfolio-motion-fixes`,``);let e=n.createElement(`style`);if(e.id=`portfolio-motion-fixes`,e.textContent=` + /* ============================================================ + A. Preview 48's rendered gallery topology. Its desktop artifact + leads; the phone is a static supporting adaptation. The current + palette remains mapped through the existing --pv-* properties. + ============================================================ */ + #picker-form .picker-preview-motion[data-surface="experience"] { + --pvs-title: var(--pg-ink); + --pvs-cta: var(--pv-primary); + --pvs-bars: var(--pg-ink); + --pvs-accent-d: var(--pv-primary); + --pvs-ink: var(--pv-n-ink); + grid-row: 2; + width: 100%; + height: 100%; + aspect-ratio: auto; + } + #picker-form .picker-preview-motion[data-surface="experience"] .pv-desktop { + --pv-text: 1.35; + position: relative; + container-type: size; + } + #picker-form .picker-preview-motion[data-surface="experience"] .pv-desktop .pv-pill { + color: var(--pv-neutral); + display: grid; + place-items: center; + } + #picker-form .picker-preview-motion[data-surface="experience"] .pv-desktop .pv-pill::after { + content: ""; + width: calc(8.5 * var(--pv-x)); + height: calc(1.3 * var(--pv-x)); + background: currentColor; + border-radius: 2px; + } + #picker-form .picker-preview-motion[data-surface="experience"] .pv-desktop .pg-cap { + padding-top: 5.2cqh !important; + gap: 2.6cqh !important; + } + #picker-form .picker-preview-motion[data-surface="experience"] .pv-desktop .pg-cap::before { + content: ""; + display: block; + width: calc(11.5 * var(--pv-x)); + aspect-ratio: 1; + border: 1px solid color-mix(in oklab, var(--pv-secondary) 55%, var(--pv-neutral)); + border-radius: 50%; + background: linear-gradient( + 135deg, + color-mix(in oklab, var(--pv-secondary) 24%, var(--pv-neutral)), + color-mix(in oklab, var(--pv-secondary) 46%, var(--pv-neutral)) + ); + } + #picker-form .picker-preview-motion[data-surface="experience"] :is(.pg-row--flip, .pg-rail) { + border-color: transparent !important; + box-shadow: none !important; + } + + /* Existing motion is remapped onto Preview 48's desktop-only hooks. */ + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .pv-nav-bars i:first-child { + animation: 3.8s linear infinite mtr-nav-1--portfolio; + } + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .pg-row:first-child .pg-cap-title { + animation: 3.8s linear infinite mxr-name-1; + } + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .pg-row:first-child > .pv-image::after { + animation: 3.8s linear infinite mxr-mark-1; + } + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .pg-row:nth-child(2) .pg-cap-title { + animation: 3.8s linear infinite mxr-name-2; + } + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .pg-row:nth-child(2) > .pv-image::after { + animation: 3.8s linear infinite mxr-mark-2; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .pv-nav-bars i:first-child { + animation: 4.2s linear infinite mxv-nav-1; + } + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .pg-row:first-child .pg-cap-title { + animation: 4.2s linear infinite mxv-name; + } + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .pg-row:first-child > .pv-image::after { + animation: 4.2s linear infinite mxv-mark; + } + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .pg-arrow--next { + animation: 4.2s linear infinite mxv-arrow; + } + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .pg-track { + animation: 4.2s linear infinite mxv-track; + } + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .pg-track i:first-child { + animation: 4.2s linear infinite mxv-stop-off; + } + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .pg-track i:nth-child(2) { + animation: 4.2s linear infinite mxv-stop-on; + } + + /* Choreographed keeps every project visible. Focus travels through the + existing image, caption, marker, and pagination controls with bounded + blur and transform motion; no component is revealed from opacity 0. */ + #picker-form .picker-preview-motion[data-motion-cell="experience-choreographed"] .ps-cursor { + animation: 5.6s linear infinite pgc-path !important; + } + #picker-form .picker-preview-motion[data-motion-cell="experience-choreographed"] .ps-cursor::after { + animation: none !important; + opacity: 0 !important; + } + #picker-form .picker-preview-motion[data-motion-cell="experience-choreographed"] .pv-desktop .pv-nav-bars i:first-child { + animation: 5.6s linear infinite pgc-nav; + } + #picker-form .picker-preview-motion[data-motion-cell="experience-choreographed"] .pv-desktop .pg-row:first-child > .pv-image { + transform-origin: 50% 50%; + animation: 5.6s linear infinite pgc-image-1; + } + #picker-form .picker-preview-motion[data-motion-cell="experience-choreographed"] .pv-desktop .pg-row:first-child .pg-cap { + animation: 5.6s linear infinite pgc-cap-1; + } + #picker-form .picker-preview-motion[data-motion-cell="experience-choreographed"] .pv-desktop .pg-row:first-child .pg-cap-title { + animation: 5.6s linear infinite pgc-name-1; + } + #picker-form .picker-preview-motion[data-motion-cell="experience-choreographed"] .pv-desktop .pg-row:first-child > .pv-image::after { + animation: 5.6s linear infinite pgc-mark-1; + } + #picker-form .picker-preview-motion[data-motion-cell="experience-choreographed"] .pv-desktop .pg-arrow--next { + animation: 5.6s linear infinite pgc-arrow; + } + #picker-form .picker-preview-motion[data-motion-cell="experience-choreographed"] .pv-desktop .pg-track i:first-child { + animation: 5.6s linear infinite pgc-stop-off; + } + #picker-form .picker-preview-motion[data-motion-cell="experience-choreographed"] .pv-desktop .pg-track i:nth-child(2) { + animation: 5.6s linear infinite pgc-stop-on; + } + #picker-form .picker-preview-motion[data-motion-cell="experience-choreographed"] .pv-desktop .pg-row:nth-child(2) > .pv-image { + transform-origin: 50% 50%; + animation: 5.6s linear infinite pgc-image-2; + } + #picker-form .picker-preview-motion[data-motion-cell="experience-choreographed"] .pv-desktop .pg-row:nth-child(2) .pg-cap { + animation: 5.6s linear infinite pgc-cap-2; + } + #picker-form .picker-preview-motion[data-motion-cell="experience-choreographed"] .pv-desktop .pg-row:nth-child(2) .pg-cap-title { + animation: 5.6s linear infinite pgc-name-2; + } + #picker-form .picker-preview-motion[data-motion-cell="experience-choreographed"] .pv-desktop .pg-row:nth-child(2) > .pv-image::after { + animation: 5.6s linear infinite pgc-mark-2; + } + + /* ============================================================ + B. Restrained cell (3.8s linear cycle). + New route: entry -> nav1 (one nav hover only) -> work1 -> work2 -> exit. + The -tip variables are set by plotIndexTips() below; fallbacks + are the precomputed tip-compensated stops. + ============================================================ */ + @keyframes mxr-path { + 0% { translate: var(--mtr-entry, 62.73cqw -8cqh); } + 9.21%, 30% { translate: var(--mxi-nav1-tip, 62.4cqw 3.9cqh); } + 45%, 62% { translate: var(--mxi-work1-tip, 24.5cqw 33.8cqh); } + 72%, 88% { translate: var(--mxi-work2-tip, 77.3cqw 66.8cqh); } + 96.5%, 100% { translate: var(--mtr-entry, 62.73cqw -8cqh); } + } + /* Nav 1 highlight + dropdown follow the longer nav dwell. */ + @keyframes mtr-nav-1--portfolio { + 0%, 9.2% { background-color: var(--pvs-bars); } + 9.21%, 29.99% { background-color: var(--pvs-cta); } + 30%, 100% { background-color: var(--pvs-bars); } + } + @keyframes mtr-drop-1--portfolio { + 0%, 9.2% { opacity: 0; } + 9.21%, 29.99% { opacity: 1; } + 30%, 100% { opacity: 0; } + } + /* Nav 2 never hovers: pin its highlight and dropdown to rest. */ + @keyframes mtr-nav-2 { + 0%, 100% { background-color: var(--pvs-bars); } + } + @keyframes mtr-drop-2 { + 0%, 100% { opacity: 0; } + } + /* Work-row hovers retimed to the new dwells (45-62 and 72-88). + Name bars keep Preview 48's ink at rest and use the existing primary + only while the cursor is actually over that project. */ + @keyframes mxr-name-1 { + 0%, 44.99% { background-color: var(--pg-ink); } + 45%, 61.99% { background-color: var(--pv-primary); } + 62%, 100% { background-color: var(--pg-ink); } + } + @keyframes mxr-mark-1 { + 0%, 44.99% { background-color: var(--pvs-accent-d); scale: 1; } + 45%, 61.99% { background-color: var(--pvs-cta); scale: 1.4; } + 62%, 100% { background-color: var(--pvs-accent-d); scale: 1; } + } + @keyframes mxr-name-2 { + 0%, 71.99% { background-color: var(--pg-ink); } + 72%, 87.99% { background-color: var(--pv-primary); } + 88%, 100% { background-color: var(--pg-ink); } + } + @keyframes mxr-mark-2 { + 0%, 71.99% { background-color: var(--pvs-accent-d); scale: 1; } + 72%, 87.99% { background-color: var(--pvs-cta); scale: 1.4; } + 88%, 100% { background-color: var(--pvs-accent-d); scale: 1; } + } + + /* ============================================================ + C. Responsive cell (4.2s cycle). Ground nav/work windows are + kept (their companion animations already align); the rail + dwell is extended to 86% so the click -> slide -> swap story + completes while the cursor is still on the arrow. + ============================================================ */ + @keyframes mxv-path { + 0% { translate: var(--mtr-entry, 62.73cqw -8cqh); } + 5.95%, 25% { translate: var(--mxi-nav1-tip, 62.4cqw 3.9cqh); } + 34.52%, 50% { translate: var(--mxi-work1-tip, 24.5cqw 33.8cqh); } + 60.71%, 86% { translate: var(--mxi-rail-tip, 96.0cqw 85.4cqh); } + 92%, 99.99% { translate: 32cqw 115cqh; } + 100% { translate: var(--mtr-entry, 62.73cqw -8cqh); } + } + @keyframes mxv-nav-1 { + 0%, 5.94% { background-color: var(--pvs-bars); } + 5.95%, 24.99% { background-color: var(--pvs-cta); } + 25%, 100% { background-color: var(--pvs-bars); } + } + /* Name bar: same window as ground mxv-name, new rest color. */ + @keyframes mxv-name { + 0%, 34.51% { background-color: var(--pg-ink); animation-timing-function: cubic-bezier(.16, 1, .3, 1); } + 38.33%, 50% { background-color: var(--pv-primary); } + 52.86%, 100% { background-color: var(--pg-ink); } + } + /* Pagination advances AFTER the click ring (click at ~63%, + slide + swap 66.5 -> 70). */ + @keyframes mxv-track { + 0%, 66.49% { translate: 0; animation-timing-function: cubic-bezier(.16, 1, .3, 1); } + 70%, 99.99% { translate: -6px; } + 100% { translate: 0; } + } + @keyframes mxv-stop-off { + 0%, 66.49% { background-color: var(--pvs-cta); animation-timing-function: cubic-bezier(.16, 1, .3, 1); } + 70%, 99.99% { background-color: var(--pvs-bars); } + 100% { background-color: var(--pvs-cta); } + } + @keyframes mxv-stop-on { + 0%, 66.49% { background-color: var(--pvs-bars); animation-timing-function: cubic-bezier(.16, 1, .3, 1); } + 70%, 99.99% { background-color: var(--pvs-cta); } + 100% { background-color: var(--pvs-bars); } + } + + /* ============================================================ + D. Choreographed cell (5.6s cycle). A closed cursor circuit and + non-destructive focus choreography. Every element remains visible. + ============================================================ */ + @keyframes pgc-path { + 0%, 14% { translate: var(--mxi-nav1-tip, 62.4cqw 3.9cqh); } + 22%, 38% { translate: var(--mxi-work1-tip, 24.5cqw 33.8cqh); } + 48%, 64% { translate: var(--mxi-rail-tip, 96cqw 85.4cqh); } + 74%, 88% { translate: var(--mxi-work2-tip, 77.3cqw 66.8cqh); } + 100% { translate: var(--mxi-nav1-tip, 62.4cqw 3.9cqh); } + } + @keyframes pgc-nav { + 0%, 14% { background-color: var(--pv-primary); } + 18%, 100% { background-color: var(--pg-ink); } + } + @keyframes pgc-image-1 { + 0%, 18% { filter: blur(0) saturate(1); scale: 1; clip-path: inset(0); } + 22% { filter: blur(.8px) saturate(.98); scale: 1.006; clip-path: inset(0); animation-timing-function: cubic-bezier(.16, 1, .3, 1); } + 28%, 36% { filter: blur(0) saturate(1.04); scale: 1.012; clip-path: inset(0); } + 42%, 100% { filter: blur(0) saturate(1); scale: 1; clip-path: inset(0); } + } + @keyframes pgc-cap-1 { + 0%, 18% { filter: blur(0); translate: 0 0; opacity: 1; } + 22% { filter: blur(.7px); translate: 0 1.5px; opacity: 1; animation-timing-function: cubic-bezier(.16, 1, .3, 1); } + 28%, 36% { filter: blur(0); translate: 0 0; opacity: 1; } + 42%, 100% { filter: blur(0); translate: 0 0; opacity: 1; } + } + @keyframes pgc-name-1 { + 0%, 21.99% { background-color: var(--pg-ink); } + 28%, 36% { background-color: var(--pv-primary); } + 42%, 100% { background-color: var(--pg-ink); } + } + @keyframes pgc-mark-1 { + 0%, 21.99% { scale: 1; } + 28%, 36% { scale: 1.35; } + 42%, 100% { scale: 1; } + } + @keyframes pgc-arrow { + 0%, 47.99% { translate: 0; filter: blur(0); } + 53%, 60% { translate: 1.5px 0; filter: blur(0); animation-timing-function: cubic-bezier(.16, 1, .3, 1); } + 66%, 100% { translate: 0; filter: blur(0); } + } + @keyframes pgc-stop-off { + 0%, 52% { background-color: var(--pv-primary); scale: 1; } + 58%, 64% { background-color: var(--pg-ink); scale: .82; } + 70%, 100% { background-color: var(--pv-primary); scale: 1; } + } + @keyframes pgc-stop-on { + 0%, 52% { background-color: var(--pg-ink); scale: 1; } + 58%, 64% { background-color: var(--pv-primary); scale: 1.18; } + 70%, 100% { background-color: var(--pg-ink); scale: 1; } + } + @keyframes pgc-image-2 { + 0%, 70% { filter: blur(0) saturate(1); scale: 1; clip-path: inset(0); } + 74% { filter: blur(.8px) saturate(.98); scale: 1.006; clip-path: inset(0); animation-timing-function: cubic-bezier(.16, 1, .3, 1); } + 80%, 88% { filter: blur(0) saturate(1.04); scale: 1.012; clip-path: inset(0); } + 94%, 100% { filter: blur(0) saturate(1); scale: 1; clip-path: inset(0); } + } + @keyframes pgc-cap-2 { + 0%, 70% { filter: blur(0); translate: 0 0; opacity: 1; } + 74% { filter: blur(.7px); translate: 0 1.5px; opacity: 1; animation-timing-function: cubic-bezier(.16, 1, .3, 1); } + 80%, 88% { filter: blur(0); translate: 0 0; opacity: 1; } + 94%, 100% { filter: blur(0); translate: 0 0; opacity: 1; } + } + @keyframes pgc-name-2 { + 0%, 73.99% { background-color: var(--pg-ink); } + 80%, 88% { background-color: var(--pv-primary); } + 94%, 100% { background-color: var(--pg-ink); } + } + @keyframes pgc-mark-2 { + 0%, 73.99% { scale: 1; } + 80%, 88% { scale: 1.35; } + 94%, 100% { scale: 1; } + } + + /* ============================================================ + E. Click ring. Restrained starts from a quiet default here; its + modal sequence below owns the two intentional clicks. Responsive + clicks once on the next-arrow before pagination advances. + (Keyframes are document-global, so the per-cell split lives in + these scoped assignment rules.) + ============================================================ */ + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .ps-cursor::after { + animation: none; + opacity: 0; + } + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .ps-cursor::after { + animation: 4.2s linear infinite mxi-rail-click !important; + } + @keyframes mxi-rail-click { + 0%, 62.49% { opacity: 0; scale: .35; } + 62.9% { opacity: .55; scale: .35; } + 65.3% { opacity: 0; scale: 1.5; } + 100% { opacity: 0; scale: 1.5; } + } + + @media (prefers-reduced-motion: reduce) { + #picker-form .picker-preview-motion[data-surface="experience"] .ps-cursor::after { + animation: none !important; + opacity: 0 !important; + } + #picker-form .picker-preview-motion[data-surface="experience"] .pv-desktop :is( + .pv-nav-bars i, + .pv-image, + .pv-image::before, + .pv-image::after, + .pg-cap, + .pg-cap-title, + .pg-arrow, + .pg-track, + .pg-track i + ) { + animation: none !important; + opacity: 1 !important; + clip-path: none !important; + filter: none !important; + translate: none !important; + scale: 1 !important; + } + #picker-form .picker-preview-motion[data-motion-cell="experience-choreographed"] .ps-cursor { + animation: none !important; + translate: var(--mxi-nav1-tip, 62.4cqw 3.9cqh) !important; + } + } + `,n.getElementById(e.id)||n.head.appendChild(e),i.slice(i.indexOf(`-`)+1)===`restrained`){let e=n.createElement(`style`);e.id=`restrained-portfolio-perfect-loop`,e.textContent=` + /* Preview 29's whole story is one closed interaction loop: + nav dropdown -> first gallery image -> modal -> close -> nav. */ + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .pv-nav { + position: relative; + z-index: 3; + } + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .pv-nav-bars i:first-child { + position: relative; + animation: 4s linear infinite mxr-modal-nav !important; + } + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .pv-nav-bars i:first-child::after { + content: ""; + box-sizing: border-box; + width: 64px; + height: 54px; + position: absolute; + z-index: 4; + top: calc(100% + 8px); + left: -10px; + transform-origin: top; + pointer-events: none; + border: 1.5px solid var(--pv-primary); + border-radius: 2px; + background: var(--pv-neutral); + opacity: 0; + animation: 4s linear infinite mxr-modal-dropdown; + } + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .pv-nav-bars i:first-child::before { + content: ""; + width: 41px; + height: 31px; + position: absolute; + z-index: 5; + top: calc(100% + 18.5px); + left: 1.5px; + pointer-events: none; + background-image: + linear-gradient(var(--pg-ink), var(--pg-ink)), + linear-gradient(var(--pg-ink), var(--pg-ink)), + linear-gradient(var(--pg-ink), var(--pg-ink)); + background-position: 0 0, 0 13px, 0 26px; + background-repeat: no-repeat; + background-size: 78% 5px, 92% 5px, 64% 5px; + opacity: 0; + animation: 4s linear infinite mxr-modal-dropdown; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .ps-cursor { + z-index: 15; + animation: 4s cubic-bezier(.16, 1, .3, 1) infinite mxr-modal-path !important; + } + + #picker-form#picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .ps-cursor::after { + left: -7.95px !important; + top: -7.95px !important; + animation: 4s linear infinite mxr-modal-click !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .pg-row .pg-cap-title, + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .pg-row > .pv-image::after { + animation: none !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .pg-row .pg-cap-title { + background-color: var(--pg-ink) !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .mxr-modal-scene { + display: block; + position: absolute; + z-index: 8; + inset: 0; + overflow: hidden; + pointer-events: none; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .mxr-modal-backdrop { + display: block; + position: absolute; + inset: 0; + background: color-mix(in oklab, var(--pv-neutral) 52%, transparent); + opacity: 0; + -webkit-backdrop-filter: blur(0); + backdrop-filter: blur(0); + animation: 4s linear infinite mxr-modal-backdrop; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .mxr-modal-surface { + display: block; + box-sizing: border-box; + position: absolute; + inset: 13cqh 12cqw 12cqh; + overflow: hidden; + padding: 7cqh 4cqw 4.2cqh; + border: 1px solid color-mix(in oklab, var(--pv-secondary) 58%, var(--pv-neutral)); + background: var(--pv-neutral); + opacity: 0; + animation: 4s linear infinite mxr-modal-surface; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .mxr-modal-close { + display: grid; + place-items: center; + box-sizing: border-box; + width: 4cqw; + aspect-ratio: 1; + position: absolute; + z-index: 2; + top: 2.3cqh; + right: 1.8cqw; + border: 0; + background: transparent; + box-shadow: none; + color: var(--pv-primary); + animation: 4s linear infinite mxr-modal-close-press; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .mxr-modal-close::before, + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .mxr-modal-close::after { + content: ""; + width: 48%; + height: 1px; + position: absolute; + left: 50%; + top: 50%; + translate: -50% -50%; + background: currentColor; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .mxr-modal-close::before { + rotate: 45deg; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .mxr-modal-close::after { + rotate: -45deg; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .mxr-modal-bento { + display: grid; + width: 100%; + height: 100%; + grid-template-columns: 1.2fr .8fr .8fr; + grid-template-rows: 1fr 1fr; + gap: 2.1cqw; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .mxr-modal-image { + display: block !important; + width: 100% !important; + height: 100% !important; + min-width: 0; + min-height: 0; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .mxr-modal-image--hero { + grid-row: 1 / 3; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .mxr-modal-image--wide { + grid-column: 2 / 4; + } + + @keyframes mxr-modal-path { + 0%, 6% { + translate: var(--mxi-nav1-tip, 69.15cqw 5.47cqh); + } + 18%, 25.5% { + translate: var(--mxi-work1-tip, 33cqw 29.74cqh); + } + 38%, 76% { + translate: var(--mxr-modal-close-tip, 83.88cqw 17.95cqh); + } + 88.5%, 100% { + translate: var(--mxi-nav1-tip, 69.15cqw 5.47cqh); + } + } + + @keyframes mxr-modal-nav { + 0%, 6% { background-color: var(--pvs-cta); } + 9%, 85.5% { background-color: var(--pvs-bars); } + 88.5%, 100% { background-color: var(--pvs-cta); } + } + + @keyframes mxr-modal-dropdown { + 0%, 6% { opacity: 1; } + 9%, 85.5% { opacity: 0; } + 88.5%, 100% { opacity: 1; } + } + + @keyframes mxr-modal-click { + 0%, 20.99% { opacity: 0; scale: .35; } + 21% { opacity: .55; scale: .35; } + 25.5% { opacity: 0; scale: 1.5; } + 25.51%, 71.49% { opacity: 0; scale: .35; } + 71.5% { opacity: .55; scale: .35; } + 76% { opacity: 0; scale: 1.5; } + 76.01%, 100% { opacity: 0; scale: .35; } + } + + @keyframes mxr-modal-backdrop { + 0%, 25.49% { + opacity: 0; + -webkit-backdrop-filter: blur(0); + backdrop-filter: blur(0); + } + 25.5% { + opacity: 0; + -webkit-backdrop-filter: blur(0); + backdrop-filter: blur(0); + animation-timing-function: cubic-bezier(.16, 1, .3, 1); + } + 38%, 75.99% { + opacity: 1; + -webkit-backdrop-filter: blur(3px); + backdrop-filter: blur(3px); + } + 76% { + opacity: 1; + -webkit-backdrop-filter: blur(3px); + backdrop-filter: blur(3px); + animation-timing-function: cubic-bezier(.4, 0, 1, 1); + } + 86%, 100% { + opacity: 0; + -webkit-backdrop-filter: blur(0); + backdrop-filter: blur(0); + } + } + + @keyframes mxr-modal-surface { + 0%, 25.49% { + opacity: 0; + clip-path: inset(9% 7% 9% 7%); + filter: blur(7px); + scale: 1; + } + 25.5% { + opacity: 0; + clip-path: inset(9% 7% 9% 7%); + filter: blur(7px); + scale: 1; + animation-timing-function: cubic-bezier(.16, 1, .3, 1); + } + 38%, 75.99% { + opacity: 1; + clip-path: inset(0); + filter: blur(0); + scale: 1; + } + 76% { + opacity: 1; + clip-path: inset(0); + filter: blur(0); + scale: 1; + animation-timing-function: cubic-bezier(.4, 0, 1, 1); + } + 86% { + opacity: 0; + clip-path: inset(3%); + filter: blur(4px); + scale: 1; + } + 86.01%, 100% { + opacity: 0; + clip-path: inset(9% 7% 9% 7%); + filter: blur(7px); + scale: 1; + } + } + + @keyframes mxr-modal-close-press { + 0%, 71.49% { scale: 1; } + 73.25% { scale: .82; } + 76%, 100% { scale: 1; } + } + + @media (prefers-reduced-motion: reduce) { + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .pv-nav-bars i:first-child::before, + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .pv-nav-bars i:first-child::after { + animation: none !important; + opacity: 1 !important; + scale: 1 !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .ps-cursor::after { + animation: none !important; + opacity: 0 !important; + scale: 1 0 !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .pv-nav-bars i:first-child, + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .ps-cursor { + animation: none !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .pv-nav-bars i:first-child { + background-color: var(--pvs-cta) !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .ps-cursor { + translate: var(--mxi-nav1-tip, 62.4cqw 3.9cqh) !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-restrained"] .pv-desktop .mxr-modal-scene { + display: none !important; + } + } + `;let t=n.querySelector(`.picker-preview-motion--index`)?.querySelector(`.pv-desktop`);t&&!t.querySelector(`.mxr-modal-scene`)&&t.insertAdjacentHTML(`beforeend`,``),n.getElementById(e.id)||n.head.appendChild(e)}if(i.slice(i.indexOf(`-`)+1)===`responsive`){let e=n.createElement(`style`);e.id=`responsive-portfolio-perfect-loop`,e.textContent=` + /* Preview 30 keeps preview 27's responsive dropdown, then follows + one focused interaction: first gallery image -> modal -> close. */ + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .pv-nav { + position: relative; + z-index: 3; + } + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .pv-nav-bars i:first-child { + position: relative; + animation: 4.2s linear infinite mxv-modal-nav !important; + } + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .pv-nav-bars i:first-child::after { + content: ""; + box-sizing: border-box; + width: 64px; + height: 54px; + position: absolute; + z-index: 4; + top: calc(100% + 8px); + left: -10px; + transform-origin: top; + pointer-events: none; + border: 1.5px solid var(--pv-primary); + border-radius: 2px; + background: var(--pv-neutral); + opacity: 0; + animation: 4.2s linear infinite mxv-drop-panel; + } + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .pv-nav-bars i:first-child::before { + content: ""; + width: 41px; + height: 31px; + position: absolute; + z-index: 5; + top: calc(100% + 18.5px); + left: 1.5px; + pointer-events: none; + background-image: + linear-gradient(var(--pg-ink), var(--pg-ink)), + linear-gradient(var(--pg-ink), var(--pg-ink)), + linear-gradient(var(--pg-ink), var(--pg-ink)); + background-position: 0 -6px, 0 7px, 0 20px; + background-repeat: no-repeat; + background-size: 78% 5px, 92% 5px, 64% 5px; + opacity: 0; + animation: 4.2s linear infinite mxv-drop-rows; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .ps-cursor { + z-index: 15; + animation: 4.2s linear infinite mxv-modal-path !important; + } + + #picker-form#picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .ps-cursor::after { + left: -7.95px !important; + top: -7.95px !important; + animation: 4.2s linear infinite mxv-modal-click !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .pg-row .pg-cap-title, + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .pg-row > .pv-image::after, + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .pg-arrow--next, + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .pg-track, + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .pg-track i { + animation: none !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .pg-row .pg-cap-title { + background-color: var(--pg-ink) !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .pg-track { + translate: 0 !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .pg-track i:first-child { + background-color: var(--pvs-cta) !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .pg-track i:not(:first-child) { + background-color: var(--pvs-bars) !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .mxv-modal-scene { + display: block; + position: absolute; + z-index: 8; + inset: 0; + overflow: hidden; + pointer-events: none; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .mxv-modal-backdrop { + display: block; + position: absolute; + inset: 0; + background: color-mix(in oklab, var(--pv-neutral) 52%, transparent); + opacity: 0; + -webkit-backdrop-filter: blur(0); + backdrop-filter: blur(0); + animation: 4.2s linear infinite mxv-modal-backdrop; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .mxv-modal-surface { + display: block; + box-sizing: border-box; + position: absolute; + inset: 13cqh 12cqw 12cqh; + overflow: hidden; + padding: 7cqh 4cqw 4.2cqh; + border: 1px solid color-mix(in oklab, var(--pv-secondary) 58%, var(--pv-neutral)); + background: var(--pv-neutral); + opacity: 0; + animation: 4.2s linear infinite mxv-modal-surface; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .mxv-modal-close { + display: grid; + place-items: center; + box-sizing: border-box; + width: 4cqw; + aspect-ratio: 1; + position: absolute; + z-index: 2; + top: 2.3cqh; + right: 1.8cqw; + border: 0; + background: transparent; + box-shadow: none; + color: var(--pv-primary); + animation: 4.2s linear infinite mxv-modal-close-press; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .mxv-modal-close::before, + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .mxv-modal-close::after { + content: ""; + width: 48%; + height: 1px; + position: absolute; + left: 50%; + top: 50%; + translate: -50% -50%; + background: currentColor; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .mxv-modal-close::before { + rotate: 45deg; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .mxv-modal-close::after { + rotate: -45deg; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .mxv-modal-bento { + display: grid; + width: 100%; + height: 100%; + grid-template-columns: 1.2fr .8fr .8fr; + grid-template-rows: 1fr 1fr; + gap: 2.1cqw; + opacity: 0; + filter: blur(10px); + translate: 0 4cqh; + animation: 4.2s linear infinite mxv-modal-content; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .mxv-modal-image { + display: block !important; + width: 100% !important; + height: 100% !important; + min-width: 0; + min-height: 0; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .mxv-modal-image--hero { + grid-row: 1 / 3; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .mxv-modal-image--wide { + grid-column: 2 / 4; + } + + @keyframes mxv-modal-path { + 0%, 25% { + translate: var(--mxi-nav1-tip, 69.15cqw 5.47cqh); + animation-timing-function: cubic-bezier(.16, 1, .3, 1); + } + 34.52%, 43% { + translate: var(--mxi-work1-tip, 33cqw 29.74cqh); + animation-timing-function: cubic-bezier(.16, 1, .3, 1); + } + 60%, 84% { + translate: var(--mxv-modal-close-tip, 83.88cqw 17.95cqh); + animation-timing-function: cubic-bezier(.16, 1, .3, 1); + } + 94%, 100% { + translate: var(--mxi-nav1-tip, 69.15cqw 5.47cqh); + } + } + + @keyframes mxv-modal-nav { + 0%, 5.95% { + background-color: var(--pvs-bars); + animation-timing-function: cubic-bezier(.16, 1, .3, 1); + } + 8.81%, 25% { background-color: var(--pvs-cta); } + 27.86%, 100% { background-color: var(--pvs-bars); } + } + + @keyframes mxv-drop-panel { + 0%, 5.94% { opacity: 0; scale: 1 0; } + 5.95% { + opacity: 1; + scale: 1 0; + animation-timing-function: cubic-bezier(.16, 1, .3, 1); + } + 10.24%, 25% { opacity: 1; scale: 1; } + 27.85% { opacity: 1; scale: 1 0; } + 27.86%, 100% { opacity: 0; scale: 1 0; } + } + @keyframes mxv-drop-rows { + 0%, 5.95% { + opacity: 0; + background-position: 0 -6px, 0 7px, 0 20px; + } + 7.14% { + opacity: .25; + background-position: 0 -4.5px, 0 7px, 0 20px; + } + 8.33% { + opacity: .5; + background-position: 0 -3px, 0 8.5px, 0 20px; + } + 10.71% { + opacity: 1; + background-position: 0 0, 0 11.5px, 0 23px; + } + 11.9% { + opacity: 1; + background-position: 0 0, 0 13px, 0 24.5px; + } + 13.1%, 25% { + opacity: 1; + background-position: 0 0, 0 13px, 0 26px; + } + 27.86%, 100% { + opacity: 0; + background-position: 0 -6px, 0 7px, 0 20px; + } + } + + @keyframes mxv-modal-click { + 0%, 39.99% { opacity: 0; scale: .35; } + 40% { opacity: .55; scale: .35; } + 43% { opacity: 0; scale: 1.5; } + 43.01%, 71.99% { opacity: 0; scale: .35; } + 72% { opacity: .55; scale: .35; } + 75% { opacity: 0; scale: 1.5; } + 75.01%, 100% { opacity: 0; scale: .35; } + } + + @keyframes mxv-modal-backdrop { + 0%, 42.99% { + opacity: 0; + -webkit-backdrop-filter: blur(0); + backdrop-filter: blur(0); + } + 43% { + opacity: 0; + -webkit-backdrop-filter: blur(0); + backdrop-filter: blur(0); + animation-timing-function: cubic-bezier(.22, .72, .2, 1); + } + 55%, 74.99% { + opacity: 1; + -webkit-backdrop-filter: blur(3px); + backdrop-filter: blur(3px); + } + 75% { + opacity: 1; + -webkit-backdrop-filter: blur(3px); + backdrop-filter: blur(3px); + animation-timing-function: cubic-bezier(.4, 0, 1, 1); + } + 82%, 100% { + opacity: 0; + -webkit-backdrop-filter: blur(0); + backdrop-filter: blur(0); + } + } + + @keyframes mxv-modal-surface { + 0%, 42.99% { + opacity: 0; + clip-path: inset(0 0 100% 0); + filter: blur(7px); + scale: 1; + } + 43% { + opacity: 0; + clip-path: inset(0 0 100% 0); + filter: blur(10px); + scale: 1; + animation-timing-function: cubic-bezier(.22, .72, .2, 1); + } + 60%, 74.99% { + opacity: 1; + clip-path: inset(0); + filter: blur(0); + scale: 1; + } + 75% { + opacity: 1; + clip-path: inset(0); + filter: blur(0); + scale: 1; + animation-timing-function: cubic-bezier(.4, 0, 1, 1); + } + 82% { + opacity: 0; + clip-path: inset(0 0 14% 0); + filter: blur(4px); + scale: 1; + } + 82.01%, 100% { + opacity: 0; + clip-path: inset(0 0 100% 0); + filter: blur(10px); + scale: 1; + } + } + + @keyframes mxv-modal-content { + 0%, 46.99% { + opacity: 0; + filter: blur(10px); + translate: 0 4cqh; + } + 47% { + opacity: 0; + filter: blur(10px); + translate: 0 4cqh; + animation-timing-function: cubic-bezier(.16, 1, .3, 1); + } + 61%, 74.99% { + opacity: 1; + filter: blur(0); + translate: 0 0; + } + 75% { + opacity: 1; + filter: blur(0); + translate: 0 0; + animation-timing-function: cubic-bezier(.4, 0, 1, 1); + } + 81.5% { + opacity: 0; + filter: blur(4px); + translate: 0 -1cqh; + } + 81.51%, 100% { + opacity: 0; + filter: blur(10px); + translate: 0 4cqh; + } + } + + @keyframes mxv-modal-close-press { + 0%, 52.99% { + opacity: 0; + filter: blur(4px); + scale: 1; + } + 53% { + opacity: 0; + filter: blur(4px); + scale: 1; + animation-timing-function: cubic-bezier(.16, 1, .3, 1); + } + 60%, 71.99% { + opacity: 1; + filter: blur(0); + scale: 1; + } + 73.5% { + opacity: 1; + filter: blur(0); + scale: .82; + } + 75% { + opacity: 1; + filter: blur(0); + scale: 1; + animation-timing-function: cubic-bezier(.4, 0, 1, 1); + } + 82% { + opacity: 0; + filter: blur(3px); + scale: 1; + } + 82.01%, 100% { + opacity: 0; + filter: blur(4px); + scale: 1; + } + } + + @media (prefers-reduced-motion: reduce) { + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .pv-nav-bars i:first-child::before, + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .pv-nav-bars i:first-child::after { + animation: none !important; + opacity: 0 !important; + scale: 1 0 !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .ps-cursor::after { + animation: none !important; + opacity: 0 !important; + scale: 1 0 !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .pv-nav-bars i:first-child, + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .ps-cursor { + animation: none !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .pv-nav-bars i:first-child { + background-color: var(--pvs-bars) !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .ps-cursor { + translate: var(--mxi-nav1-tip, 69.15cqw 5.47cqh) !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .mxv-modal-scene { + display: none !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .mxv-modal-backdrop, + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .mxv-modal-surface, + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .mxv-modal-bento, + #picker-form .picker-preview-motion[data-motion-cell="experience-responsive"] .pv-desktop .mxv-modal-close { + animation: none !important; + } + } + `;let t=n.querySelector(`.picker-preview-motion--index`)?.querySelector(`.pv-desktop`);t&&!t.querySelector(`.mxv-modal-scene`)&&t.insertAdjacentHTML(`beforeend`,``),n.getElementById(e.id)||n.head.appendChild(e)}if(i.slice(i.indexOf(`-`)+1)===`choreographed`){let e=n.createElement(`style`);e.id=`choreographed-portfolio-stagger-only`,e.textContent=` + #picker-form#picker-form .picker-preview-motion[data-motion-cell="experience-choreographed"], + #picker-form#picker-form .picker-preview-motion[data-motion-cell="experience-choreographed"] *, + #picker-form#picker-form .picker-preview-motion[data-motion-cell="experience-choreographed"] *::before, + #picker-form#picker-form .picker-preview-motion[data-motion-cell="experience-choreographed"] *::after { + animation: none !important; + transition: none !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-choreographed"] .ps-cursor, + #picker-form .picker-preview-motion[data-motion-cell="experience-choreographed"] .ps-cursor::after { + opacity: 0 !important; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-choreographed"] .pv-desktop .pg-row--scroll-one { + margin-top: 12cqh; + } + + #picker-form .picker-preview-motion[data-motion-cell="experience-choreographed"] :is( + .pv-desktop .pg-row:first-child > .pv-image, + .pv-desktop .pg-row:first-child > .pg-cap, + .pv-desktop .pg-row:nth-child(2) > .pv-image, + .pv-desktop .pg-row:nth-child(2) > .pg-cap, + .pg-phone-body > .pv-image:nth-child(1), + .pg-phone-body > .pg-cap:nth-child(2), + .pg-phone-body > .pv-image:nth-child(3), + .pg-phone-body > .pg-cap:nth-child(4), + .pv-tabbar + ) { + opacity: 1; + filter: none; + transform: none; + clip-path: none !important; + translate: none !important; + scale: 1 !important; + } + + @media (prefers-reduced-motion: reduce) { + #picker-form .picker-preview-motion[data-motion-cell="experience-choreographed"] :is( + .pv-desktop .pg-row:first-child > .pv-image, + .pv-desktop .pg-row:first-child > .pg-cap, + .pv-desktop .pg-row:nth-child(2) > .pv-image, + .pv-desktop .pg-row:nth-child(2) > .pg-cap, + .pg-phone-body > .pv-image:nth-child(1), + .pg-phone-body > .pg-cap:nth-child(2), + .pg-phone-body > .pv-image:nth-child(3), + .pg-phone-body > .pg-cap:nth-child(4), + .pv-tabbar + ) { + opacity: 1 !important; + filter: none !important; + transform: none !important; + } + } + `,n.getElementById(e.id)||n.head.appendChild(e);let i=n.querySelector(`.picker-preview-motion--index`),a=i?.querySelector(`.pv-desktop .pg-body`),o=i?.querySelector(`.pv-phone .pg-phone-body`);a?.querySelectorAll(`:scope > .pg-rail`).forEach(e=>e.remove()),a&&!a.querySelector(`.pg-row--scroll-one`)&&a.insertAdjacentHTML(`beforeend`,``),o&&!o.querySelector(`.pg-phone-more-start`)&&o.insertAdjacentHTML(`beforeend`,``);let s=[[`.pv-desktop .pg-row:first-child > .pv-image`,`.pv-desktop .pg-row:first-child > .pg-cap`,`.pv-desktop .pg-row:nth-child(2) > .pv-image`,`.pv-desktop .pg-row:nth-child(2) > .pg-cap`],[`.pg-phone-body > .pv-image:nth-child(1)`,`.pg-phone-body > .pg-cap:nth-child(2)`,`.pg-phone-body > .pv-image:nth-child(3)`,`.pg-phone-body > .pg-cap:nth-child(4)`,`.pv-tabbar`]],c=()=>{let e=Math.sqrt(120),t=20/(2*Math.sqrt(120)),n=e*Math.sqrt(1-t**2);return Array.from({length:73},(r,i)=>{let a=i/72,o=1050*a/1e3,s=i===72?0:Math.exp(-t*e*o)*(Math.cos(n*o)+t*e/n*Math.sin(n*o)),c=Math.max(0,Math.min(1,1-s));return{offset:a,opacity:Number(c.toFixed(4)),filter:`blur(${(4*(1-c)).toFixed(3)}px)`,transform:`translateY(${(40*s).toFixed(3)}px)`}})},l={imageFromLeft:[{opacity:.12,filter:`blur(9px)`,clipPath:`inset(0 100% 0 0)`,transform:`translateX(-72px) scale(1.025)`},{opacity:1,filter:`blur(0px)`,clipPath:`inset(0)`,transform:`translateX(0px) scale(1)`}],copyFromRight:[{opacity:0,filter:`blur(5px)`,clipPath:`inset(0 0 0 100%)`,transform:`translateX(44px)`},{opacity:1,filter:`blur(0px)`,clipPath:`inset(0)`,transform:`translateX(0px)`}],imageFromRight:[{opacity:.12,filter:`blur(9px)`,clipPath:`inset(0 0 0 100%)`,transform:`translateX(72px) scale(1.025)`},{opacity:1,filter:`blur(0px)`,clipPath:`inset(0)`,transform:`translateX(0px) scale(1)`}],copyFromLeft:[{opacity:0,filter:`blur(5px)`,clipPath:`inset(0 100% 0 0)`,transform:`translateX(-44px)`},{opacity:1,filter:`blur(0px)`,clipPath:`inset(0)`,transform:`translateX(0px)`}]},u=r.matchMedia(`(prefers-reduced-motion: reduce)`);if(i&&r.Element?.prototype.animate&&!u.matches){let e=[],n=c();for(let t of s)t.map(e=>i.querySelector(e)).filter(Boolean).forEach((t,r)=>{e.push(t.animate(n,{duration:1050,delay:r*100,easing:`linear`,fill:`both`}))});let d=7200,f=e=>e/d,p=(t,n,r)=>{if(!t||!n||!r)return;let i=r.offsetTop-n.offsetTop;i>0&&e.push(t.animate([{offset:0,transform:`translateY(0px)`},{offset:f(1750),transform:`translateY(0px)`,easing:`cubic-bezier(.65, 0, .35, 1)`},{offset:f(2850),transform:`translateY(${-i}px)`},{offset:f(5400),transform:`translateY(${-i}px)`,easing:`cubic-bezier(.65, 0, .35, 1)`},{offset:f(6500),transform:`translateY(0px)`},{offset:1,transform:`translateY(0px)`}],{duration:d,easing:`linear`,fill:`both`}))};p(a,a?.querySelector(`:scope > .pg-row:first-child`),a?.querySelector(`:scope > .pg-row--scroll-one`)),p(o,o?.querySelector(`:scope > .pv-image:first-child`),o?.querySelector(`:scope > .pg-phone-more-start`));for(let[t,n,r]of[[`.pv-desktop .pg-row--scroll-one > .pv-image`,`imageFromLeft`,2020],[`.pv-desktop .pg-row--scroll-one > .pg-cap`,`copyFromRight`,2160],[`.pv-desktop .pg-row--scroll-two > .pv-image`,`imageFromRight`,2400],[`.pv-desktop .pg-row--scroll-two > .pg-cap`,`copyFromLeft`,2540],[`.pv-phone .pg-phone-more-start`,`imageFromLeft`,2020],[`.pv-phone .pg-phone-more-copy-one`,`copyFromRight`,2160],[`.pv-phone .pg-phone-more-image-two`,`imageFromRight`,2400],[`.pv-phone .pg-phone-more-copy-two`,`copyFromLeft`,2540]]){let a=i.querySelector(t);a&&e.push(a.animate(l[n],{duration:n.startsWith(`image`)?720:620,delay:r,easing:`cubic-bezier(.16, 1, .3, 1)`,fill:`both`}))}let m=()=>{if(u.matches){e.forEach(e=>e.cancel());return}e.forEach(e=>{e.pause(),e.currentTime=0,e.play()})};t.__replayMotion=m,u.addEventListener(`change`,({matches:t})=>{t?e.forEach(e=>e.cancel()):m()}),r.addEventListener(`pagehide`,()=>{e.forEach(e=>e.cancel())})}}let a=()=>{for(let e of n.querySelectorAll(`.picker-preview-motion--index`)){let t=e.querySelector(`.pv-desktop`),n=e.querySelector(`.ps-cursor`);if(!t?.clientWidth||!t.clientHeight||!n)continue;let a=t.getBoundingClientRect(),o=r.getComputedStyle(t),s=parseFloat(o.borderLeftWidth)||0,c=parseFloat(o.borderRightWidth)||0,l=parseFloat(o.borderTopWidth)||0,u=parseFloat(o.borderBottomWidth)||0,d=a.width-s-c,f=a.height-l-u,p=r.getComputedStyle(n),m=parseFloat(p.width)||n.offsetWidth,h=parseFloat(p.height)||n.offsetHeight,g=Math.min(m/14,h/20),_=[`restrained`,`responsive`].includes(i.slice(i.indexOf(`-`)+1)),v=g*(_?1:2.2),y=g*(_?1:3.9),b=(n,r)=>{let i=t.querySelector(r);if(!i)return;let o=i.getBoundingClientRect(),c=(o.left+o.width/2-a.left-s-v)/d*100,u=(o.top+o.height/2-a.top-l-y)/f*100;e.style.setProperty(n,c.toFixed(2)+`cqw `+u.toFixed(2)+`cqh`)};b(`--mxi-nav1-tip`,`.pv-nav-bars i:nth-child(1)`),b(`--mxi-work1-tip`,`.pg-row:nth-of-type(1) > .pv-image`),b(`--mxi-work2-tip`,`.pg-row:nth-of-type(2) > .pv-image`),b(`--mxi-rail-tip`,`.pg-arrow--next`),b(`--mxr-modal-close-tip`,`.mxr-modal-close`),b(`--mxv-modal-close-tip`,`.mxv-modal-close`)}};r.requestAnimationFrame(()=>{a(),r.requestAnimationFrame(a)});let o=n.querySelector(`.pv-desktop`);if(o&&r.ResizeObserver){let e=new r.ResizeObserver(a);e.observe(o),t.__portfolioTipObserver=e}}})}let t=t=>{let n=e.map(({board:e})=>[e,e.getAttribute(`style`)]);for(let{board:n}of e)n.style.setProperty(`display`,n===t?`grid`:`none`,`important`);return()=>{for(let[e,t]of n)t===null?e.removeAttribute(`style`):e.setAttribute(`style`,t)}},n=(e,n)=>{let r=t(e.board);try{n()}finally{r()}};for(let t of e)t.cell===`persuade-restrained`&&n(t,t.installPerfectCursorLoop);for(let t of e)t.cell===`persuade-responsive`&&n(t,t.installResponsiveLandingCorrections);for(let t of e)t.cell===`persuade-choreographed`&&n(t,t.installChoreographedPremium);for(let t of e)t.cell.startsWith(`persuade-`)&&n(t,t.installEmailCapture);for(let t of e)t.cell.startsWith(`experience-`)&&n(t,t.installPortfolioFixes)}var un=!1;function dn(){if(un)return;let e=document.querySelector(`.picker-screen[data-screen="06"] .picker-board-stage`),t=e?[...e.querySelectorAll(`.picker-preview-motion[data-motion-cell]`)]:[];!t.length||!t.some(e=>e.getBoundingClientRect().width>0)||(un=!0,ln())}var I=document.querySelector(`[data-font-modal]`),fn=I.querySelector(`[data-custom-status]`),pn=e=>I.querySelector(`[data-custom-file="${e}"]`),mn=e=>I.querySelector(`[data-custom-url="${e}"]`),hn=I.querySelector(`[data-font-custom-save]`),gn=I.querySelector(`[data-custom-hint]`),_n=` +`,vn=new Set([`.woff2`,`.woff`,`.ttf`,`.otf`]),L={heading:[],body:[]};function yn(e){let t=e.lastIndexOf(`.`);return t===-1?``:e.slice(t).toLowerCase()}function bn(e){return vn.has(yn(e.name))}function xn(e,t){let n=new DataTransfer;for(let e of t)n.items.add(e);e.files=n.files}function Sn(e,t){return e.name===t.name&&e.size===t.size&&e.lastModified===t.lastModified}function Cn(e,t){let n=[...e];for(let e of t)n.some(t=>Sn(t,e))||n.push(e);return n}function wn(e){let t=I.querySelector(`[data-custom-file-list="${e}"]`),n=L[e];t.replaceChildren(),t.hidden=n.length===0;for(let r of n){let n=document.createElement(`li`);n.className=`picker-modal-file-item`;let i=document.createElement(`span`);i.textContent=r.name;let a=document.createElement(`button`);a.type=`button`,a.className=`picker-modal-file-remove`,a.setAttribute(`aria-label`,`Remove ${r.name}`),a.textContent=`×`,a.onclick=()=>{L[e]=L[e].filter(e=>!Sn(e,r)),xn(pn(e),L[e]),wn(e),En(),fn.textContent=``},n.append(i,a),t.append(n)}}var Tn=e=>L[e].length>0||mn(e).value.trim()!==``;function En(){let e=[`heading`,`body`].filter(e=>!Tn(e));hn.disabled=e.length>0,gn.textContent=e.length===2?`Heading and body each need a URL or a file.`:e.length===1?`${e[0]===`heading`?`Heading`:`Body`} still needs a URL or a file.`:``}function Dn(e){return e?e.includes(_n)?e.split(_n).filter(Boolean):[e]:[]}document.querySelector(`[data-font-custom-open]`).onclick=()=>{fn.textContent=``;for(let e of[`heading`,`body`])L[e]=[],pn(e).value=``,xn(pn(e),[]),mn(e).value=``,wn(e);En(),I.showModal()},document.querySelector(`[data-font-custom-close]`).onclick=()=>I.close();for(let e of[`heading`,`body`])pn(e).onchange=({target:t})=>{let n=[...t.files].filter(bn);fn.textContent=n.length===t.files.length?``:`Only .woff2, .woff, .ttf, and .otf files are accepted.`,L[e]=Cn(L[e],n),xn(t,L[e]),t.value=``,wn(e),En()},mn(e).oninput=En;async function On(e){let t=await fetch(`/font-upload`,{method:`POST`,headers:{"X-Font-Filename":e.name,"Content-Type":`application/octet-stream`},body:e}),n=await t.json();if(!t.ok)throw Error(n.error||`Upload failed`);return n.path}async function kn(e){let t=L[e].filter(bn);if(t.length){let e=await Promise.all(t.map(e=>On(e)));return{family:t[0].name.replace(/\.[^.]+$/,``),source:e.join(_n)}}let n=mn(e).value.trim();return n?{family:n.split(`/`).pop().replace(/\.[^.]+$/,``)||`Custom`,source:n}:null}hn.onclick=async()=>{fn.textContent=`Saving…`;let e,t;try{[e,t]=await Promise.all([kn(`heading`),kn(`body`)])}catch(e){fn.textContent=e.message;return}if(!e||!t){fn.textContent=`Add a URL or a file for both the heading and the body.`;return}let n={id:`custom`,name:`Custom`,heading:e,body:t,why:`Your own faces`};je.pairs=[n,...je.pairs.filter(({id:e})=>e!==`custom`)];for(let e of[...rt])e.querySelector(`input`).value===`custom`&&at(e);it(n,{checked:!0,first:!0}),An(n),nt(n),vt({force:!0}),I.close()};function An({heading:e,body:t}){for(let n of[e,t])if(n?.source){if(/\.(css)(\?|$)/i.test(n.source)||!n.source.includes(_n)&&!/\.(woff2?|ttf|otf)(\?|$)/i.test(n.source)){let e=document.createElement(`link`);e.rel=`stylesheet`,e.href=n.source,document.head.append(e);continue}for(let e of Dn(n.source)){let t=e.startsWith(`http`)?e:`/fonts/${e.split(`/`).pop()}`;document.fonts.add(new FontFace(n.family,`url(${t})`))}document.fonts.load(`16px "${n.family}"`)}}function jn(e){ye.textContent!==ye.dataset[e]&&(ye.classList.add(`is-changing`),setTimeout(()=>{ye.textContent=ye.dataset[e],ye.classList.remove(`is-changing`)},90))}var Mn=E(`[data-contrast-alert]`,D),Nn=E(`[data-contrast-tip]`,D);function Pn(e,t,n){e.hidden=n.length===0,t.replaceChildren(...n.map(e=>{let t=document.createElement(`span`);return t.textContent=e,t}))}function Fn(){Pn(Mn,Nn,A.length?b(P().colors):[])}function In(e,t,n=!0){let r=P();r.colors[e]=t.toUpperCase(),r.detached[e]=n,qe(e),Ge(N()),jn(e)}function Ln(e,t,n,r,i){let a=k.get(t.id),o=We(n),s=e.dataset.role;r=Math.min(100,Math.max(0,r)),i=Math.min(100,Math.max(0,i));let c=o.getContext(`2d`).getImageData(Math.round(r/100*(o.width-1)),Math.round(i/100*(o.height-1)),1,1).data,l=`#${[c[0],c[1],c[2]].map(e=>e.toString(16).padStart(2,`0`)).join(``).toUpperCase()}`;a.rings[s]=[r,i],a.colors[s]=l,a.detached[s]=!1,Ge(t),t===N()&&qe(s),jn(s),Ke(e,t,n)}function Rn(e,t,n){let r=r=>{let i=n.getBoundingClientRect();Ln(e,t,n,(r.clientX-i.left)/i.width*100,(r.clientY-i.top)/i.height*100)};e.onpointerdown=t=>{t.button===0&&(e.focus(),e.setPointerCapture(t.pointerId),e.dataset.dragging=``,r(t))},e.onpointermove=t=>{e.hasPointerCapture(t.pointerId)&&(Be(),r(t))},e.onpointerup=t=>{r(t),e.releasePointerCapture(t.pointerId),delete e.dataset.dragging,document.activeElement!==e&&delete xe.dataset.visible},e.onfocus=()=>n.complete&&Ke(e,t,n),e.onblur=()=>{`dragging`in e.dataset||delete xe.dataset.visible},e.onkeydown=r=>{let i={ArrowLeft:[-1,0],ArrowRight:[1,0],ArrowUp:[0,-1],ArrowDown:[0,1]};if(!i[r.key])return;r.preventDefault(),Be();let a=r.shiftKey?5:1,[o,s]=k.get(t.id).rings[e.dataset.role];Ln(e,t,n,o+i[r.key][0]*a,s+i[r.key][1]*a)}}function zn(e){let t=E(`[data-${e.type}-card]`).content.firstElementChild.cloneNode(!0);t.dataset.id=e.id;let n=E(`.picker-card-face`,t);if(e.type===`seed`)me(`span`,n).forEach((t,n)=>{t.style.setProperty(`--seed-color`,k.get(e.id).colors[T[n]])});else{let t=E(`img`,n);t.alt=`Visual cue ${e.id}`,t.src=`/cues/${encodeURIComponent(e.id)}.png`,me(`.picker-ring`,n).forEach(n=>{let r=n.dataset.role;n.setAttribute(`aria-valuetext`,k.get(e.id).colors[r]),Rn(n,e,t)}),t.addEventListener(`load`,()=>{e.defaultRings=ze(n=>{let[r,i]=e.palette[n].at;return[r/t.naturalWidth*100,i/t.naturalHeight*100]}),k.get(e.id).rings=structuredClone(e.defaultRings),Ge(e),e===N()&&We(t)})}return e.node=t,t}function Bn(){if(!Ae)return;let e=Ae,t=E(`[data-band-item="${e}"]`,D),n=E(`[data-tints]`,t),r=n.contains(document.activeElement);delete t.dataset.tintOpen,n.hidden=!0,Ae=null;let i=E(`[data-edit-tints="${e}"]`,D);i.setAttribute(`aria-expanded`,`false`),i.dataset.tip=`Edit tints`,r&&i.focus()}function Vn(){let e=N();A.forEach(({node:e},t)=>{let n=t-j;e.dataset.pos=Math.max(-2,Math.min(2,n)),e.classList.toggle(`is-far`,Math.abs(n)>2),e.setAttribute(`aria-hidden`,n!==0)}),E(`[data-deck-prev]`).disabled=j===0,E(`[data-deck-next]`).disabled=j===A.length-1,ve.textContent=`${j+1} / ${A.length}`;for(let e of T)qe(e);if(Ge(e),e.type===`cue`){let t=E(`img`,e.node);t.complete&&t.naturalWidth&&We(t)}Bn()}function Hn(e){let t=Math.min(A.length-1,Math.max(0,e)),n=matchMedia(`(prefers-reduced-motion: reduce)`).matches?`auto`:`smooth`;ge.children[t].scrollIntoView({behavior:n,block:`start`})}function Un(e){if(e.key===`Escape`&&Ae){e.preventDefault(),Bn();return}let t={ArrowLeft:-1,ArrowRight:1}[e.key];t&&(e.target instanceof Element&&e.target.closest(`[role="slider"], input`)||R?.keyboard||(e.preventDefault(),Hn(j+t)))}var Wn=e=>document[e?`addEventListener`:`removeEventListener`](`keydown`,Un,!0);function Gn(e){Bn(),Ae=e,jn(e);let t=E(`[data-band-item="${e}"]`,D),n=E(`[data-tints]`,t),r=P().colors[e],[i,a,o]=c(r);me(`[data-tint]`,n).forEach((e,t)=>{let n=t-3,c=n<0?i+(.96-i)*(-n/3):i-(i-.16)*(n/3),l=n===0?r:s([c,a*(1-Math.abs(n)/3*.3),o]);e.dataset.tint=l,e.style.setProperty(`--tint-color`,l),e.setAttribute(`aria-label`,l),e.toggleAttribute(`data-current`,n===0)}),n.hidden=!1,t.dataset.tintOpen=``;let l=E(`[data-edit-tints="${e}"]`,D);l.setAttribute(`aria-expanded`,`true`),l.dataset.tip=`Close tints`,E(`button`,n)?.focus()}var Kn=220,qn=1.02,Jn=getComputedStyle(document.documentElement).getPropertyValue(`--ks-ease`).trim()||`ease`,Yn=new Set([` `,`Enter`,`ArrowLeft`,`ArrowRight`,`Home`,`End`,`Escape`]),Xn=new WeakMap,Zn=E(`.picker-bands`,D),Qn=document.querySelector(`[data-band-scope="strategy"]`),$n=document.querySelector(`.picker-screen[data-screen="03"] .picker-strategy-grid`),er=()=>matchMedia(`(prefers-reduced-motion: reduce)`).matches,tr=e=>T.map(t=>E(`[data-band="${t}"]`,e)),nr=e=>T.map(t=>E(`[data-grip="${t}"]`,e)),rr=(e,t)=>E(`[data-band-item="${T[e]}"] .picker-band-foot h2`,t).textContent,ir=(e,t)=>{let n=E(`[data-reorder-status]`,e.closest(`.picker-screen`)??e);n&&(n.textContent=t)},R=null,ar=null;function or(e,t){let n=T.map((e,t)=>t);return n.splice(t,0,...n.splice(e,1)),n}function sr(e,t,n,r){e.style.transform=n?`translateX(${n}px)`:``,Xn.get(e)?.cancel(),r&&Xn.set(e,e.animate([{transform:`translateX(${t}px)`},{transform:`translateX(${n}px)`}],{duration:Kn,easing:Jn}))}function cr(e,t){let n=R.nodes[R.from],r=R.offsets[R.from],i=e=>`translateX(${e}px) scale(${qn})`;R.offsets[R.from]=e,n.style.transform=i(e),Xn.get(n)?.cancel(),t&&Xn.set(n,n.animate([{transform:i(r)},{transform:i(e)}],{duration:Kn,easing:Jn}))}function lr(e,t){or(R.from,e).forEach((e,n)=>{if(e===R.from)return;let r=R.homes[n].left-R.homes[e].left;r!==R.offsets[e]&&(sr(R.nodes[e],R.offsets[e],r,t),R.offsets[e]=r)}),R.to=e}function ur(e){let{homes:t,from:n}=R,r=t[n].left+t[n].width/2+e,i=e=>Math.abs(t[e].left+t[e].width/2-r);return t.reduce((e,t,n)=>i(n){let n=T[t],s=T[e];i[n]=r.colors[s],a[n]=r.detached[s],o[n]=r.rings[s]}),Object.assign(r,{colors:i,detached:a,rings:o}),Vn(),n!==Zn&&fr()}function fr(){if(E(`[name="palette-source"]`).value){for(let e of T)E(`[name="palette-${e}"]`).value=P().colors[e];hr(),Br();for(let e of document.querySelectorAll(`.picker-screen[data-active] [data-artboard]`))Ye(e)}}var pr=E(`[data-contrast-alert]`,Qn),mr=E(`[data-contrast-tip]`,Qn);function hr(){let e=ze(e=>E(`[name="palette-${e}"]`).value);if(!Object.values(e).some(e=>!e)){for(let t of T){let n=E(`[data-band="${t}"]`,Qn);n.style.setProperty(`--band-color`,e[t]),n.style.setProperty(`--band-ink`,p(e[t])),E(`output`,n).textContent=e[t]}Pn(pr,mr,b(e))}}function gr(){let e=$n?.parentElement;if(!e||!e.offsetParent)return;let t=`${Math.ceil(e.getBoundingClientRect().height-$n.getBoundingClientRect().height)}px`;e.style.getPropertyValue(`--pk-chrome`)!==t&&e.style.setProperty(`--pk-chrome`,t)}$n&&new ResizeObserver(gr).observe($n.parentElement);function _r(e,t){let{colors:n}=P();return or(e,t).map((e,t)=>`${T[t]} ${n[T[e]]}`).join(`, `)}function vr(e,t,n){R&&yr(!0),ar?.(),Bn();let r=tr(n);for(let e of r)Xn.get(e)?.cancel(),e.style.transform=``;R={from:e,to:e,keyboard:t,scope:n,nodes:r,grips:nr(n),homes:r.map(e=>e.getBoundingClientRect()),offsets:T.map(()=>0),id:N().id,pointerId:null,startX:0},r[e].dataset.dragging=``,R.grips[e].dataset.dragging=``,cr(0,!1)}function yr(e,t){let{nodes:n,grips:r,from:i,to:a,homes:o,id:s,scope:c}=R,l=e?0:o[a].left-o[i].left;if(e&&lr(i,!er()),R=null,delete n[i].dataset.dragging,delete r[i].dataset.dragging,ar=()=>{ar=null,!e&&a!==i&&N().id===s&&dr(i,a,c);for(let e of n)Xn.get(e)?.cancel(),e.style.transform=``;t?.()},er()){ar();return}let u=n[i],d=u.style.transform,f=`translateX(${l}px) scale(1)`;u.style.transform=f;let p=u.animate([{transform:d},{transform:f}],{duration:Kn,easing:Jn});Xn.set(u,p),p.finished.then(()=>ar?.(),()=>{})}function br(e){let{from:t,to:n,scope:r}=R;if(n===t){yr(!0);return}let i=`Palette reordered. ${_r(t,n)}`;yr(!1,e?()=>nr(r)[n].focus():null),ir(r,i)}var xr=e=>e instanceof Element?e.closest(`[data-grip]`):null,Sr=e=>e.closest(`.picker-bands`);function Cr(e){e.addEventListener(`pointerdown`,e=>{let t=xr(e.target);!t||e.button!==0||!A.length||(e.preventDefault(),vr(T.indexOf(t.dataset.grip),!1,Sr(t)),R.pointerId=e.pointerId,R.startX=e.clientX,t.setPointerCapture(e.pointerId))}),e.addEventListener(`pointermove`,e=>{if(!R||R.keyboard||e.pointerId!==R.pointerId)return;let{homes:t,from:n}=R,r=Math.min(t.at(-1).left-t[n].left,Math.max(t[0].left-t[n].left,e.clientX-R.startX));cr(r,!1);let i=ur(r);i!==R.to&&lr(i,!er())}),e.addEventListener(`pointerup`,e=>{!R||R.keyboard||e.pointerId!==R.pointerId||br(!1)}),e.addEventListener(`pointercancel`,e=>{!R||R.keyboard||e.pointerId!==R.pointerId||yr(!0)}),e.addEventListener(`keydown`,e=>{let t=xr(e.target);if(!t||!Yn.has(e.key)||!A.length)return;let n=Sr(t),r=!!R?.keyboard,i=e.key===` `||e.key===`Enter`;if(!r&&(R||!i))return;if(e.preventDefault(),!r){vr(T.indexOf(t.dataset.grip),!0,n),ir(n,`${rr(R.from,n)} color lifted, position ${R.from+1} of ${T.length}. Arrow keys move it, space drops it, escape puts it back.`);return}if(i){br(!0);return}if(e.key===`Escape`){yr(!0),ir(n,`Reorder cancelled.`);return}let a={ArrowLeft:-1,ArrowRight:1,Home:-T.length,End:T.length}[e.key],o=Math.min(T.length-1,Math.max(0,R.to+a));o!==R.to&&(lr(o,!er()),cr(R.homes[o].left-R.homes[R.from].left,!er()),ir(n,`Position ${o+1} of ${T.length}.`))}),e.addEventListener(`focusout`,e=>{if(!R?.keyboard||e.target!==R.grips[R.from])return;let t=R.scope;yr(!0),ir(t,`Reorder cancelled.`)})}Cr(D),Cr(Qn),D.onpointerover=D.onfocusin=({target:e})=>{let t=e.closest(`[data-band]`);t&&jn(t.dataset.band)},D.oninput=({target:e})=>{e.matches(`[data-color-input]`)&&In(e.dataset.colorInput,e.value)},D.onclick=async e=>{let t=e.target.closest(`button`)?.dataset;if(t){if(t.copyColor){let e=P().colors[t.copyColor];await navigator.clipboard.writeText(`${e}\n${l(e)}`);let n=t.tip;t.tip=`Copied`,setTimeout(()=>t.tip=n,1200)}else if(t.editTints)Ae===t.editTints?Bn():Gn(t.editTints);else if(t.customColor)E(`[data-color-input="${t.customColor}"]`,D).click();else if(t.tint)In(Ae,t.tint);else if(`closeTints`in t)Bn();else if(`reset`in t){let e=N(),t=Ue(e);e.type===`cue`&&e.defaultRings&&(t.rings=structuredClone(e.defaultRings)),k.set(e.id,t),Vn()}else if(`selectPalette`in t){let e=N();E(`[name="palette-source"]`).value=e.id;for(let e of T)E(`[name="palette-${e}"]`).value=P().colors[e];hr(),Br()}}},E(`[data-select-palette]`).addEventListener(`click`,D.onclick),E(`[data-deck-prev]`).onclick=()=>Hn(j-1),E(`[data-deck-next]`).onclick=()=>Hn(j+1);function wr(){let e=ge.firstElementChild?.offsetHeight||0;if(!e)return!1;let t=j*e;return Math.abs(he.scrollTop-t)>1&&(he.scrollTop=t),!0}he.addEventListener(`scroll`,()=>{let e=ge.firstElementChild?.offsetHeight||1,t=Math.min(A.length-1,Math.round(he.scrollTop/e));if(t!==j){let e=N().node;e.dataset.exit=t>j?`left`:`right`,setTimeout(()=>delete e.dataset.exit,280),j=t,delete N().node.dataset.exit,Vn()}},{passive:!0}),document.addEventListener(`picker:screenchange`,e=>{Wn(e.detail.screen===`02`),e.detail.screen===`02`&&wr(),e.detail.screen===`04b`&&ti();let t=document.querySelector(`.picker-screen[data-screen="${e.detail.screen}"]`);for(let e of t?.querySelectorAll(`[data-artboard]`)??[])Ye(e);e.detail.screen===`03`&&(hr(),gr());let n=Lr.find(t=>t.screen===e.detail.screen);if(n?.paint(),Rr(n),e.detail.screen===`04`&&(mt=!1,vt({force:!0})),e.detail.screen===`06`&&requestAnimationFrame(()=>{dn(),an(),tn=null,nn(en())}),e.detail.screen===`05`){kt();let e=Et();requestAnimationFrame(()=>{e?.parentElement.scrollIntoView({block:`center`}),e?.focus({preventScroll:!0}),e&&At(e),Nt()})}e.detail.screen===`11`&&(qt(),requestAnimationFrame(()=>{Ht()?.parentElement.scrollIntoView({block:`center`})}))});var z=[...document.querySelectorAll(`input[name="surface-modes"]`)],Tr=document.querySelector(`[data-modes-next]`),Er=()=>{Tr&&(Tr.disabled=!z.some(e=>e.checked))},Dr=z.map(e=>e.closest(`.picker-mode-tile`)),Or=Dr.map(e=>e?.querySelector(`.picker-preview`)),kr=Se.cloneNode(!0),Ar;function jr(){zr();let e=z.findIndex(e=>e.checked);Dr.forEach((t,n)=>{t?.toggleAttribute(`data-lead`,n===e&&!!Or[n])});let t=(e===-1?null:Or[e])??kr;if(t===Ar)return;Ar=t;let n=t.cloneNode(!0);n.setAttribute(`aria-hidden`,`true`);for(let e of[n,...n.querySelectorAll(`[id]`)])e.removeAttribute(`id`);Se.replaceWith(n),Se=n,Je()}var Mr=()=>z.filter(e=>e.checked),Nr=e=>z.find(t=>t.value===e),Pr=document.querySelector(`input[name="_chosen"]`);function Fr(){if(!Pr)return;let e=[...document.querySelectorAll(`input[type="hidden"][data-surface-field][data-chosen="yes"]`)].filter(e=>!e.disabled).map(e=>e.dataset.surfaceField);Pr.value=JSON.stringify(e)}function Ir(e){let t=e.dataset.surfaceTabs,n=e.parentElement,r=e.closest(`.picker-screen`)?.dataset.screen,i=`surfaceStage`in n.dataset,a=`surfaceFlat`in e.dataset,o=`surfaceProperName`in e.dataset,s=()=>[...document.querySelectorAll(`input[name="${t}"]`)],c=e=>s().find(t=>t.value===e)?.closest(`.picker-strategy-option`),l=e=>{let n=Nr(e)?.getAttribute(`data-allow-${t}`);return n==null?null:new Set(n.split(` `).filter(Boolean))},u=e=>Nr(e)?.getAttribute(`data-default-${t}`)||s()[0]?.value,d=e=>document.querySelector(`input[type="hidden"][data-surface-field="${t}-${e}"]`),f=e=>c(e)?.querySelector(`.picker-strategy-title`)?.textContent??e,p=e=>!!d(e),m=()=>Mr().filter(e=>p(e.value)),h=z.some(e=>!p(e.value)),g=e.closest(`.picker-screen`),_=null;function v(e){for(let e of n.querySelectorAll(`[data-surface]:not([data-artboard])`))e.remove();for(let t of e){if(n.querySelector(`[data-artboard][data-surface="${t.value}"]`))continue;let e=Or[z.indexOf(t)];if(!e)continue;let r=e.cloneNode(!0);r.setAttribute(`aria-hidden`,`true`);for(let e of[r,...r.querySelectorAll(`[id]`)])e.removeAttribute(`id`);r.dataset.surface=t.value,n.append(r)}y()}function y(){i&&Ye(n,`pkc`)}function b(){let e=m();if(h){g?.toggleAttribute(`data-skip`,e.length===0);for(let t of s())t.disabled=e.length===0}i&&v(e);for(let e of z){let t=d(e.value);t&&(t.disabled=!e.checked,e.checked?t.value||=u(e.value)??``:(t.value=``,delete t.dataset.chosen))}ee(e),S(e.some(e=>e.value===_)?_:e[0]?.value)}function ee(t){e.hidden=t.length<2,e.replaceChildren(...t.map(e=>{let t=document.createElement(`button`);return t.type=`button`,t.className=`picker-surface-tab`,t.dataset.surfaceTab=e.value,t.innerHTML=``,t.append(e.dataset.surfaceLabel??e.value),t.onclick=()=>te(e.value),t})),x()}function x(){for(let t of e.children){let n=t.dataset.surfaceTab,r=d(n),i=!!r?.dataset.chosen,a=n===_,s=r.value?f(r.value):``,c=t.textContent;t.dataset.set=i?`yes`:`no`,t.setAttribute(`aria-pressed`,a?`true`:`false`),t.tabIndex=a?0:-1;let l=s&&e.dataset.surfaceAnswered.replace(`{}`,o?s:s.toLowerCase());t.setAttribute(`aria-label`,s?`${c}, ${l}${i?``:` by default`}`:`${c}, ${e.dataset.surfaceUnanswered}`)}}function S(e){if(!e)return;_=e;for(let t of n.querySelectorAll(`[data-surface]`))t.hidden=t.dataset.surface!==e;ne();let t=d(e)?.value||u(e),r=s().find(e=>e.value===t);r&&(r.checked=!0),x()}function te(e){S(e),Rr(C)}function ne(){let e=l(_);for(let t of s()){let n=t.closest(`.picker-strategy-option`);if(!n)continue;let r=!e||e.has(t.value),i=n.querySelector(`.picker-strategy-desc`);i.dataset.copy??=i.textContent,i.textContent=r?i.dataset.copy:n.dataset.blockedReason??i.dataset.copy,n.classList.toggle(`is-blocked`,!r),t.disabled=!r}}document.addEventListener(`change`,({target:e})=>{e?.name!==t||!e.checked||re(e.value)});function re(e){let t=a?m().map(e=>e.value):[_];for(let n of t){let t=d(n),r=l(n);!t||r&&!r.has(e)||(t.value=e,t.dataset.chosen=`yes`)}x(),Fr()}e.addEventListener(`keydown`,t=>{let n={ArrowLeft:-1,ArrowRight:1}[t.key];if(!n)return;let r=[...e.children],i=r[(r.findIndex(e=>e.dataset.surfaceTab===_)+n+r.length)%r.length];t.preventDefault(),te(i.dataset.surfaceTab),i.focus()});let C={screen:r,sync:b,paint:y,park:e=>S(p(e)?e:m()[0]?.value),active:()=>_};return C}var Lr=[...document.querySelectorAll(`[data-surface-tabs]`)].map(Ir);function Rr(e){for(let t of Lr)t!==e&&t.park(e?.active())}var zr=()=>{for(let e of Lr)e.sync();Fr()},Br=()=>{for(let e of Lr)e.paint()},Vr=document.querySelector(`.picker-screen[data-screen="04b"]`),Hr={"06":`motion-energy`,"08":`boundary-style`,"09":`corner-style`,10:`depth-style`,11:`icon-pack`},Ur=e=>z.find(t=>t.value===e)?.dataset.surfaceLabel??e;function Wr(e,t){let n=document.querySelector(`input[name="${e}"][value="${t}"]`);return n?n.dataset.scaleName?`${n.dataset.scaleName} · ${n.dataset.ratio}`:n.dataset.packName?n.dataset.packName:n.closest(`.picker-strategy-option`)?.querySelector(`.picker-strategy-title`)?.textContent.trim()??t:t}function Gr(e){return[...document.querySelectorAll(`input[type="hidden"][data-surface-field^="${e}-"]`)].filter(e=>!e.disabled&&e.value).map(t=>({mode:t.dataset.surfaceField.slice(e.length+1),value:t.value,chosen:t.dataset.chosen===`yes`}))}function Kr(e){let t=document.createElement(`span`);return t.className=`picker-hub-line`,t.append(e),t}function qr(e,t){let n=document.querySelector(`input[name="${e}"][value="${t}"]`)?.closest(`.picker-strategy-option`)?.querySelector(`.picker-strategy-desc`);return n?(n.dataset.copy??n.textContent).trim():``}var Jr={strategy:`color-strategy`,boundary:`boundary-style`,corner:`corner-style`,depth:`depth-style`,layout:`layout-structure`};function Yr(e){let t={surface:e};for(let[n,r]of Object.entries(Jr))t[n]=document.querySelector(`input[type="hidden"][data-surface-field="${r}-${e}"]`)?.value||document.querySelector(`input[name="${r}"]:checked`)?.value||``;return t}function Xr(e,t=null){let n=document.createElement(`span`);if(n.className=`picker-hub-proof`,t){n.classList.add(`dcx-proof--board`);for(let[e,r]of Object.entries(t))r&&n.setAttribute(`data-dcx-${e}`,r);Ye(n,`pkc`)}let r=e.cloneNode(!0);r.hidden=!1,r.removeAttribute(`data-surface`);for(let e of[r,...r.querySelectorAll(`[id]`)])e.removeAttribute(`id`);for(let e of[r,...r.querySelectorAll(`[data-icon-field], [data-icon-strip]`)])e.removeAttribute(`data-icon-sheet`),e.removeAttribute(`data-icon-field`),e.removeAttribute(`data-icon-strip`);return n.append(r),n}var Zr=(e,t)=>{let n=[...document.querySelectorAll(`.picker-screen[data-screen="${e}"] .picker-board-stage > :is(.picker-artboard, .picker-preview)[data-surface="${t}"]`)];if(n.length<2)return n[0]??null;let r=document.querySelector(`.picker-screen[data-screen="${e}"] [data-surface-tabs]`)?.dataset.surfaceTabs,i=r&&document.querySelector(`input[type="hidden"][data-surface-field="${r}-${t}"]`)?.value;return n.find(e=>e.dataset.motionCell===`${t}-${i}`)??n[0]};function Qr(e){let t=e.querySelector(`[data-hub-preview]`);if(!t||t.classList.contains(`picker-hub-preview--icons`))return;let n=t.firstElementChild,r=n?.querySelector(`.ps-desktop, .pv-desktop`)??n?.firstElementChild,i=t.clientWidth,a=t.clientHeight;if(!i||!a||!r?.offsetWidth||!r.offsetHeight)return;let o=Math.min(i/r.offsetWidth,a/r.offsetHeight);e.style.setProperty(`--pk-hub-scale`,o),e.style.setProperty(`--pk-hub-x`,`${(i-r.offsetWidth*o)/2}px`),e.style.setProperty(`--pk-hub-y`,`${(a-r.offsetHeight*o)/2}px`)}function $r(e,t,n,r){let i=e.querySelector(`[data-hub-preview]`);if(i.classList.toggle(`picker-hub-preview--icons`,n===`icon-pack`),n===`icon-pack`){i.replaceChildren(Xr(Lt)),!It.querySelector(`.picker-icon-cell`)&&!(`empty`in It.dataset)&&qt().then(ti);return}let a=r?Zr(t,r):null;if(!a){i.replaceChildren();return}if(n===`motion-energy`){Lr.find(e=>e.screen===t)?.park(r);let n=Xr(a);Ye(n.firstChild),i.replaceChildren(n),requestAnimationFrame(()=>{an(n.firstChild),Qr(e)})}else i.replaceChildren(Xr(a,Yr(r)));Qr(e)}function ei(e){let t=e.querySelector(`[data-hub-target]`),n=t?.dataset.hubTarget,r=Hr[n];if(!r)return;let i=e.querySelector(`[data-hub-preview]`),a=e.querySelector(`[data-hub-note]`),o=e.querySelector(`[data-hub-slider]`),s=e.querySelector(`[data-hub-slider-label]`),c=!!document.querySelector(`.picker-screen[data-screen="${n}"]`)?.hasAttribute(`data-skip`);if(e.classList.toggle(`is-skipped`,c),t.disabled=c,t.setAttribute(`aria-disabled`,c?`true`:`false`),c){i.replaceChildren(),a.replaceChildren(Kr(`Not asked of these surfaces`)),a.hidden=!1,o.hidden=!0;return}let l=Gr(r),u=l.map(e=>e.mode),d=u.includes(e.dataset.hubSurface)?e.dataset.hubSurface:u[0];e.dataset.hubSurface=d??``;let f=d?l.find(e=>e.mode===d)?.value:document.querySelector(`input[name="${r}"]:checked`)?.value,p=f?qr(r,f):``;a.textContent=p,a.hidden=!p;let m=document.createElement(`span`);m.className=`picker-hub-slider-value`,m.textContent=f?Wr(r,f):``,s.replaceChildren(...d?[`${Ur(d)} · `,m]:[m]),o.hidden=!1;for(let e of o.querySelectorAll(`[data-hub-step]`))e.hidden=u.length<2;$r(e,n,r,d)}function ti(){if(Vr)for(let e of Vr.querySelectorAll(`.picker-hub-card`))ei(e)}function ni(e,t){let n=Hr[(e?.querySelector(`[data-hub-target]`))?.dataset.hubTarget];if(!n)return;let r=Gr(n).map(e=>e.mode);if(r.length<2)return;let i=r.indexOf(e.dataset.hubSurface);e.dataset.hubSurface=r[(i+t+r.length)%r.length],ei(e)}Vr?.addEventListener(`click`,e=>{let t=e.target.closest(`[data-hub-step]`);if(t){ni(t.closest(`.picker-hub-card`),Number(t.dataset.hubStep));return}let n=e.target.closest(`[data-hub-target]`);!n||n.disabled||document.dispatchEvent(new CustomEvent(`picker:goto`,{detail:{screen:n.dataset.hubTarget}}))}),Vr?.addEventListener(`keydown`,e=>{let t={ArrowLeft:-1,ArrowRight:1}[e.key];!t||!e.target.closest(`[data-hub-slider]`)||(e.preventDefault(),ni(e.target.closest(`.picker-hub-card`),t))}),Vr&&window.ResizeObserver&&new ResizeObserver(()=>{for(let e of Vr.querySelectorAll(`.picker-hub-card`))Qr(e)}).observe(Vr);for(let e of z)e.addEventListener(`change`,()=>{Er(),jr()});Er(),jr();try{let e=e=>fetch(e).then(e=>e.ok?e.json():Promise.reject()),[t,n,r]=await Promise.all([e(`/cues.json`),e(`/palettes.json`),fetch(`/context.json`).then(e=>e.ok?e.json():null).catch(()=>null)]),i=Array.isArray(r?.modes)?r.modes:t.modes;if(Array.isArray(i)){let e=new Set(i);if(z.some(t=>e.has(t.value))){for(let t of z)t.checked=e.has(t.value);Er(),jr()}}A=[...t.cues.map(e=>({id:e,type:`cue`,palette:t.palette[e]})),...n.seeds.map(e=>({...e,type:`seed`}))];for(let e of A)k.set(e.id,Ue(e));_e.append(...A.map(zn)),ge.innerHTML=`
`.repeat(A.length),E(`[data-select-palette]`).disabled=!1,Vn(),Wn(pe.hasAttribute(`data-active`))}catch{ve.textContent=`Palette sources could not be loaded.`}var ri=Re,ii=!0;try{let e=await fetch(`/fonts.json`),t=e.ok?await e.json():null;Qe(t)&&(ri=Ze(t),ii=!1)}catch{}ot(ri,ii);var ai=await x();try{oe(ai.prior,{modeInputs:z,syncModes:()=>{Er(),jr()},states:k,cards:A,setCurrent:e=>{j=e},render:Vn,syncDeckScroll:wr,fontManifest:()=>je,pairNodes:()=>[...rt],addPairCard:it,removePairCard:at,loadCustomFace:An,syncFontPair:nt,applyHoist:vt,syncChosenField:Fr})}catch{}ne(ai.prior?ai.priorSource:null);var B=(e,t=document)=>t.querySelector(e),oi=(e,t=document)=>[...t.querySelectorAll(e)],V=B(`#picker-form`),si=B(`[data-dcx-shell]`),ci=null,li=null,ui=null,di=null,fi=e=>fetch(e).then(e=>e.ok?e.json():null).catch(()=>null),pi=fi(`/cues.json`).then(e=>(ui=e?.palette||null,di=Array.isArray(e?.cues)?e.cues:null,e)),mi=Promise.all([fi(`/context.json`),pi]).then(([e,t])=>{ci=e?.context??t?.context??null;let n=Array.isArray(e?.modes)?e.modes:t?.modes;li=Array.isArray(n)?n:null}),hi=!1,gi=e=>hi?`/cue.png`:`/cues/${encodeURIComponent(e)}.png`,_i=(e,t)=>{let n=ui?.[e]?.[t];return n?String(n.snapped||n.hex||``).toUpperCase():``},vi=[`primary`,`secondary`,`tertiary`,`neutral`],yi=[`persuade`,`operate`,`read`,`experience`],bi={persuade:`Landing page`,operate:`Tool`,read:`Docs`,experience:`Portfolio`},H=e=>{let t=V.elements[e];return t&&typeof t.value==`string`?t.value:``};function xi(e,t){let n=V.querySelector(`input[name="${e}"][value="${t}"]`)?.closest(`label`);if(!n)return{title:t,desc:``};let r=n.querySelector(`.picker-strategy-title, .picker-icon-title`),i=n.querySelector(`.picker-strategy-desc, .picker-icon-meta`);return{title:(r?.textContent||t).replace(/^[\d.]+\s*/,``).trim(),desc:(i?.textContent||``).trim()}}function Si(){return oi(`input[name="surface-modes"]:checked`,V).sort((e,t)=>yi.indexOf(e.value)-yi.indexOf(t.value)).map(e=>{let t=e.closest(`.picker-mode-tile`);return{mode:e.value,label:e.dataset.surfaceLabel||e.value,goal:t?.querySelector(`.picker-mode-goal`)?.textContent.trim()||``,examples:oi(`.picker-mode-pills i`,t||V).map(e=>e.textContent.trim())}})}function Ci(e,t){return t.flatMap(t=>{let n=V.querySelector(`input[data-surface-field="${e}-${t.mode}"]`);if(!n)return[];let r=n.value||H(e);return[{...t,value:r,chosen:n.dataset.chosen===`yes`,...xi(e,r)}]})}function wi(e,t){let[n]=Ci(e,t);return n??{value:``,title:``,desc:``}}function Ti(){let e=Si(),t=vi.map(e=>({role:e[0].toUpperCase()+e.slice(1),hex:H(`palette-${e}`).toUpperCase()})).filter(e=>e.hex),n=V.querySelector(`input[name="type-scale"]:checked`),r=V.querySelector(`input[name="font-pair"]:checked`)?.closest(`.picker-type-option`);return{context:ci,suggestedModes:li,cueSlugs:di,surfaces:e,palette:t,paletteSource:H(`palette-source`),strategy:Ci(`color-strategy`,e),boundaries:Ci(`boundary-style`,e),corners:Ci(`corner-style`,e),depth:Ci(`depth-style`,e),motion:Ci(`motion-energy`,e),layout:wi(`layout-structure`,e),fonts:{heading:H(`font-heading`),body:H(`font-body`),headingSource:H(`font-heading-source`),bodySource:H(`font-body-source`),why:r?.querySelector(`[data-pair-why]`)?.textContent.trim()||``},scale:{name:n?.dataset.scaleName||``,ratio:Number(H(`type-scale-ratio`)||n?.dataset.ratio||0),desc:n?xi(`type-scale`,n.value).desc:``},icons:{pack:H(`icon-pack-name`),license:H(`icon-pack-license`),url:H(`icon-pack-url`)}}}var U=e=>String(e).replaceAll(`&`,`&`).replaceAll(`<`,`<`).replaceAll(`>`,`>`).replaceAll(`"`,`"`),W=(e,t,n,r)=>` +
+ Design context · 0${e} / 08${r?` · ${U(r)}`:``} +

${U(t)}

+

${U(n)}

+
`,G=(e,t)=>` +
+ ${U(e)} + ${t} +
`,Ei=e=>` +
${e.map(({dt:e,dd:t})=>` +
${e}
${t}
`).join(``)} +
`,K=(e,t,n=!1,r=``)=>` +
+

${U(e)}

+

${t}

${r} +
`,Di=e=>` +
    ${e.map(e=>`
  • ${e}
  • `).join(``)}
`,Oi=e=>` +
    ${e.map(e=>e&&typeof e==`object`&&e.title?`
  1. ${U(e.title)}${e.detail?` — ${U(e.detail)}`:``}
  2. `:`
  3. ${U(e)}
  4. `).join(``)}
`,ki=e=>` +
${e.map(e=>`${U(e)}`).join(``)}
`,Ai=(e,t)=>` +
+

${U(e)}

+

${t}

+
`,q=e=>`

${e}

`,ji=(e,t)=>Ai(`Captured in chat`,`${e} in chat, before the browser questionnaire. ${t} is the durable copy.`),Mi=e=>Y?`${Y.base}/brand-assets/${encodeURIComponent(e)}?token=${encodeURIComponent(Y.token)}`:`/brand-assets/${encodeURIComponent(e)}`;document.addEventListener(`load`,e=>{let t=e.target;if(!(t instanceof HTMLImageElement)||!(`dcxCueImg`in t.dataset))return;let n=t.closest(`.dcx-cue-frame`);n&&(n.style.setProperty(`--cue-w`,String(t.naturalWidth||1)),n.style.setProperty(`--cue-h`,String(t.naturalHeight||1)),n.dataset.loaded=`yes`)},!0),document.addEventListener(`error`,e=>{let t=e.target;if(!(t instanceof HTMLImageElement))return;let n=t.closest(`[data-dcx-hide-on-error]`);n&&(n.hidden=!0)},!0);function Ni(e){let[t,n,r]=[1,3,5].map(t=>parseInt(e.slice(t,t+2),16)/255);return .2126*t+.7152*n+.0722*r>.55?`oklch(20% 0.01 95)`:`oklch(95% 0.005 95)`}function Pi(e){let t={};for(let e of vi)t[e]=H(`palette-${e}`);if(Object.values(t).some(e=>!e))return;let n=(t,n)=>e.style.setProperty(`--pkc-${t}`,n);for(let e of vi)n(e,t[e]);n(`n-ink`,p(t.neutral)),n(`p-ink`,p(t.primary)),n(`t-ink`,p(t.tertiary)),n(`p-on-n`,_(t.primary,t.neutral)),n(`t-on-n`,_(t.tertiary,t.neutral)),n(`t-on-p`,_(t.tertiary,t.primary)),n(`p-on-p`,_(t.primary,t.primary)),n(`t-on-t`,_(t.tertiary,t.tertiary)),n(`p-on-i`,_(t.primary,m(t.primary)))}function J(e,{strategy:t=``,kind:n=`board`,marks:r=null}={}){if(!e)return``;let i=e.cloneNode(!0);i.hidden=!1,i.removeAttribute(`data-surface`);for(let e of[i,...i.querySelectorAll(`[id]`)])e.removeAttribute(`id`);for(let e of oi(`button, input`,i))e.setAttribute(`tabindex`,`-1`),e.setAttribute(`disabled`,``);let a=document.createElement(`div`);if(a.className=`dcx-proof dcx-proof--${n}`,a.setAttribute(`aria-hidden`,`true`),t&&(a.dataset.dcxStrategy=t),r)for(let[e,t]of Object.entries(r))t&&a.setAttribute(`data-dcx-${e}`,t);return Pi(a),a.appendChild(i),a.outerHTML}var Fi=e=>B(`[data-surface-stage] [data-surface="${e}"]`),Ii=e=>B(`input[name="surface-modes"][value="${e}"]`)?.closest(`.picker-mode-tile`)?.querySelector(`.picker-preview`),Li=e=>B(`[data-question="boundaries"] .picker-board-stage > :is(.picker-artboard, .picker-preview)[data-surface="${e}"]`),Ri=(e,t)=>({surface:t,boundary:e.boundaries.find(e=>e.mode===t)?.value||``,corner:e.corners.find(e=>e.mode===t)?.value||``,depth:e.depth.find(e=>e.mode===t)?.value||``,layout:e.layout.value||``}),zi=e=>Ei(e.map(e=>({dt:U(e.label),dd:`${U(e.title)} · ${U(e.desc)}${e.chosen?``:` (default for this surface)`}`})));function Bi(e,t){let n=e.context?.audience||{},r=[W(1,`Audience`,`Who it is for, emotional state, needs, trust triggers.`,t)],i=[n.primary&&{dt:`Primary`,dd:U(n.primary)},n.secondary&&{dt:`Secondary`,dd:U(n.secondary)}].filter(Boolean);if(r.push(G(`Who they are`,i.length?Ei(i):ji(`The primary and secondary user read was confirmed`,`PRODUCT.md · Users`))),n.emotion||n.leaving){let e=n.emotion?K(`On arrival`,U(n.emotion),!0):``,t=n.leaving?K(`Leaving with`,U(n.leaving),!0):``;e&&t?r.push(G(`Emotional journey`,`
${e}${t}
`)):r.push(G(e?`Emotional state`:`Emotional journey`,e||t))}let a=Array.isArray(n.needs)&&n.needs.length?G(`Needs`,Di(n.needs.map(U))):``,o=Array.isArray(n.trust)&&n.trust.length?G(`Trust triggers`,Di(n.trust.map(U))):``;return a&&o?r.push(`
${a}${o}
`):(a||o)&&r.push(a||o),Array.isArray(n.inclusion)&&n.inclusion.length&&r.push(G(`Who must not be excluded`,Di(n.inclusion.map(U)))),r.join(``)}function Vi(e,t){return`
${e.surfaces.map((e,n)=>` +
+ ${J(Fi(e.mode)||Ii(e.mode),{kind:`board`})} +
+

${U(e.label)}${n===0?` leading`:``}

+ ${t(e)} +
+
`).join(``)}
`}function Hi(e){if(!Array.isArray(e.suggestedModes)||!e.suggestedModes.length)return``;let t=e.surfaces.map(e=>e.mode),n=new Set(e.suggestedModes),r=new Set(t),i=t=>e.surfaces.find(e=>e.mode===t)?.label||bi[t]||t,a=t.filter(e=>!n.has(e)),o=e.suggestedModes.filter(e=>!r.has(e)),s=`you kept the suggested set`;return a.length&&o.length?s=`you added ${a.map(i).join(`, `)} and dropped ${o.map(i).join(`, `)}`:a.length?s=`you added ${a.map(i).join(`, `)}`:o.length&&(s=`you dropped ${o.map(i).join(`, `)}`),q(`Suggested from PRODUCT.md: ${e.suggestedModes.map(i).join(`, `)}; ${s}.`)}var Ui={web:`Web`,ios:`iOS`,android:`Android`,adaptive:`Adaptive`};function Wi(e,t){let n=e.context?.product||{},r=[W(2,`Product`,`Purpose, surfaces, use cases, what must be clear first.`,t)],i=n.purpose?K(n.name||t||`This product`,U(n.purpose),!1,n.success?`\n

${U(n.success)}

`:``):ji(`The purpose and success definition were confirmed`,`PRODUCT.md · Product Purpose`),a=typeof n.platform==`string`&&n.platform.trim()?`${U(Ui[n.platform.trim()]||n.platform.trim())}`:``;if(r.push(G(`Purpose`,a?`
${i}
${a}
`:i)),n.positioning&&(n.positioning.not||n.positioning.this)){let e=[n.positioning.not&&K(`Not this`,U(n.positioning.not)),n.positioning.this&&K(`This`,U(n.positioning.this),!0)].filter(Boolean).join(``);r.push(G(`Positioning`,`
${e}
`))}n.conversion&&r.push(G(`Primary conversion`,K(`The one action`,U(n.conversion),!0))),Array.isArray(n.clarities)&&n.clarities.length&&r.push(G(`What must be clear first`,Di(n.clarities.map(U)))),Array.isArray(n.principles)&&n.principles.length&&r.push(G(`Product principles`,Oi(n.principles))),n.operatingContext&&r.push(G(`Operating context`,`

${U(n.operatingContext)}

`));let o=n.surfaces&&typeof n.surfaces==`object`?n.surfaces:{};return r.push(G(`Surfaces`,Vi(e,e=>` +

${U((typeof o[e.mode]==`string`?o[e.mode].trim():``)||e.goal||``)}

+ ${e.examples.length?ki(e.examples):``}`)+Hi(e)+q(`Chosen on the questionnaire’s first screen, drawn in the committed palette; the leading surface owns every bare answer key in the sections that follow.`))),r.join(``)}function Gi(e,t){let n=e.context?.brand||{},r=e.context?.interview||{},i=[W(3,`Brand`,`Identity, voice, references, taste boundaries.`,t)];i.push(G(`Personality`,n.personality?K(n.words?.join(` · `)||`Voice`,U(n.personality),!0):Array.isArray(n.words)&&n.words.length?K(n.words.join(` · `),`Three words, voice, and tone were confirmed in chat, before the browser questionnaire. PRODUCT.md · Brand Personality is the durable copy.`,!0):ji(`Three words, voice, and tone were confirmed`,`PRODUCT.md · Brand Personality`)));let a=(Array.isArray(n.voice)?n.voice:[]).filter(e=>e&&typeof e==`object`&&e.say&&e.not);if(a.length&&i.push(G(`Voice`,`
${a.map(e=>` +
+
Say

${U(e.say)}

+
Not

${U(e.not)}

+
`).join(``)}
`+q(`Derived from Brand Personality and Brand Commitments in PRODUCT.md: wording to write with beside wording to refuse.`))),Array.isArray(n.principles)&&n.principles.length&&i.push(G(`Principles`,`
    ${n.principles.map(e=>`
  1. ${U(e)}
  2. `).join(``)}
`+q(`From PRODUCT.md’s principles section; the durable copy lives there.`))),Array.isArray(n.commitments)&&n.commitments.length&&i.push(G(`Commitments`,Di(n.commitments.map(U)))),Array.isArray(r.references)&&r.references.length){let e=r.references.filter(e=>e&&typeof e==`object`&&e.name),t=r.references.filter(e=>typeof e==`string`),n=(e.length?`
${e.map(e=>` +
+

${U(e.name)}

${e.takeaway?` +

${U(e.takeaway)}

`:``} +
`).join(``)}
`:``)+(t.length?ki(t):``);i.push(G(`Named references`,n+q(`Q4 of the seed interview: brands, products, printed objects — not adjectives.`)))}if(r.antiReference){let e=typeof r.antiReference==`object`?K(`Not this`,`${U(r.antiReference.name||``)}${r.antiReference.why?` · ${U(r.antiReference.why)}`:``}`):K(`Not this`,U(r.antiReference));i.push(G(`Anti-reference`,e+q(`Q5 of the seed interview. A hard constraint on every palette and pair that followed.`)))}let o=Array.isArray(e.context?.assets)?e.context.assets:[],s=e=>!!e&&typeof e==`object`&&typeof e.file==`string`&&e.file,c=o.filter(s),l=o.filter(e=>!s(e)),u=c.filter(e=>e.kind===`logo`),d=c.filter(e=>e.kind!==`logo`),f=e=>` +
+ ${U(e.file)}${e.note?` +

${U(e.note)}

`:``} +
`,p=t=>e.palette.find(e=>e.role===t)?.hex||``;return u.length&&i.push(G(`Marks`,`
${u.map(e=>` +
+
+ ${U(e.file)} on the primary color + ${U(e.file)} on the neutral color +
+ ${f(e)} +
`).join(``)}
`+q(`Provided marks proofed on the committed primary and neutral grounds. The files are staged in .impeccable/design-context/assets/.`))),d.length&&i.push(G(`Boards and references`,`
${d.map(e=>` +
+ ${U(e.file)} + ${f(e)} +
`).join(``)}
`+q(`Boards and reference images provided in chat, staged in .impeccable/design-context/assets/.`))),l.length&&i.push(G(`Assets provided`,Di(l.map(e=>U(typeof e==`string`?e:e.note||e.file||``)))+q(`Gathered before the interview; the questions were grounded in what they showed.`))),i.join(``)}var Ki={Primary:`Your main brand color: buttons, links, the color people remember.`,Secondary:`Supports the primary: section accents, hovers, secondary buttons.`,Tertiary:`The rare accent: badges, highlights, one detail per screen.`,Neutral:`Backgrounds and large surfaces: most of every page.`};function qi(e,t){let n=e.context?.interview||{},r=[W(4,`Color`,`Palette, roles, per-surface strategy, copyable values.`,t)],i=Array.isArray(e.cueSlugs)?e.cueSlugs:[],a=e.paletteSource&&(hi||i.includes(e.paletteSource))?e.paletteSource:``;if(a&&e.palette.length){let t=ui?.[a]||{},n=vi.map(e=>{let n=t[e];if(!n||!Array.isArray(n.at)||n.at.length!==2)return``;let r=String(n.snapped||n.hex||``);return``}).join(``),o=e.palette.map(e=>` +
+ + ${U(e.role)} + ${e.hex} + ${U(l(e.hex))} +
`).join(``);r.push(G(`The cue`,`
+
+ The chosen visual cue, ${U(a)} + ${n} +
+
+ Chosen cue +

${U(a)}

+ ${o} +
+
`+q(`The image the palette was sampled from, each role’s sample point marked in its dealt color. The values beside it are the committed ones, which move when a role is edited after sampling.`)));let s=i.filter(e=>e!==a);s.length&&r.push(G(`Also generated`,`
${s.map(e=>` +
+ +
${U(e)}
+
`).join(``)}
`+q(`The directions not taken, kept on disk in .impeccable/visual-cues/.`)))}if(e.palette.length){let t=100/(e.palette.length+1),n=e.palette.map((e,n)=>` + `).join(``);r.push(G(`Palette`,`
${n}
`+q(`Committed on the palette screen${e.paletteSource?` from the ${U(e.paletteSource)} cue`:``}, roles in the order you arranged them. Hover to fan; click to copy the hex.`)));let i=e.context?.color||{};r.push(G(`Roles and values`,`
${e.palette.map(t=>{let n=m(t.hex),r=_i(e.paletteSource,t.role.toLowerCase()),i=r?r===t.hex?`as dealt`:`edited`:``;return` +
+ +
+

${U(t.role)}

+

${U(Ki[t.role]||``)}

+ ${U(l(t.hex))} + Ink${n} +
+
`}).join(``)}
`+(Array.isArray(i.assetLocks)&&i.assetLocks.length?q(`From the assets: ${i.assetLocks.map(U).join(` · `)}.`):``))),r.push(G(`Strategy per surface`,`
${e.strategy.map(e=>` +
+ ${J(Fi(e.mode)||Ii(e.mode),{strategy:e.value,kind:`board`})} +
+

${U(e.label)} · ${U(e.title)}${e.chosen?``:` default`}

+

${U(e.desc)}

+
+
`).join(``)}
`+q(`How much of each surface the palette is allowed to carry, drawn the way the strategy screen previewed it. Options a surface cannot take were withheld there.`)))}else r.push(G(`Palette`,Ai(`No palette committed`,`The palette screen was not completed on this run.`))),r.push(G(`Strategy per surface`,zi(e.strategy)));return(n.colorStrategy||n.hueAnchor)&&r.push(G(`Interview direction`,Ei([n.colorStrategy&&{dt:`Strategy asked for`,dd:U(n.colorStrategy)},n.hueAnchor&&{dt:`Hue anchor`,dd:U(n.hueAnchor)}].filter(Boolean))+q(`Q1 of the seed interview. The cues were generated from this; the picks above are the decision.`))),r.join(``)}function Ji(e,t){let n=e.context?.interview||{},r=[W(5,`Typography`,`Font families, type scale, hierarchy.`,t)];return e.fonts.heading?r.push(G(`The pair`,`
+
+ Headings +

${U(e.fonts.heading)}

+ ${e.fonts.headingSource?`${U(e.fonts.headingSource)}`:``} +
+
+ Body +

${U(e.fonts.body)}

+ ${e.fonts.bodySource?`${U(e.fonts.bodySource)}`:``} +
+
+

${U(e.fonts.why||`Chosen on the font pair screen against every surface this product ships.`)}

+ `)):r.push(G(`The pair`,Ai(`No pair selected`,`The font pair screen was not completed on this run.`))),e.scale.ratio&&(r.push(G(`Type scale`,`

${U(e.scale.name)} · ratio ${e.scale.ratio.toFixed(3)} on a 16px base. ${U(e.scale.desc)}

`+J(B(`[data-scale-sheet]`),{kind:`scale`})+q(`The scale screen’s sheet, kept at rendered size in the chosen faces. Values at a 16px base.`))),r.push(G(`In running text`,J(B(`[data-scale-specimen]`),{kind:`specimen`})+q(`The same scale on the components a page is built from — headings, ledes, lists, quotes, code.`)))),n.typeDirection&&r.push(G(`Interview direction`,K(`Direction asked for`,U(n.typeDirection))+q(`Q2 of the seed interview. All six candidate pairs were composed inside this direction.`))),r.join(``)}function Yi(e,t){let n=[W(6,`Iconography`,`Icon library, license, where it lives.`,t)];if(e.icons.pack){let t=B(`[data-icon-sheet]`),r=t?.querySelector(`.picker-icon-cell`)?J(t,{kind:`icons`}):``;r&&n.push(G(`The hand`,r+q(`${U(e.icons.pack)}’s canonical set, as the icons screen previewed it. One pack, one hand: no mixed sets.`)));let i=V.querySelector(`input[name="icon-pack"]:checked`)?.closest(`label`),a=i?.querySelector(`.picker-strategy-desc`)?.textContent.trim()||``,o=i?.querySelector(`.picker-icon-meta`)?.textContent.trim()||``;n.push(G(`Library`,Ei([{dt:`Pack`,dd:`${U(e.icons.pack)}${o?` · ${U(o)}`:``}`},a?{dt:`Why this hand`,dd:U(a)}:null,e.icons.license?{dt:`License`,dd:U(e.icons.license)}:null,e.icons.url?{dt:`Home`,dd:`
${U(e.icons.url)}`}:null].filter(Boolean))+q(`Chosen on the icons screen. The pack names the hand; stroke weight and metaphor rules resolve during implementation.`)))}else n.push(G(`Library`,Ai(`No pack selected`,`The icons screen was not completed on this run.`)));return n.join(``)}var Xi=e=>`
${e.map(e=>` +
+ ${U(e.label)}${e.chosen?``:` default`} +

${U(e.title)}

+

${U(e.desc)}

+
`).join(``)}
`;function Zi(e,t){let n=e.context?.interview||{},r=[W(7,`Material`,`Motion, layout structure, boundaries, corners, depth.`,t)],i=e.surfaces.map(t=>{let n=Li(t.mode);return n?` +
+ ${J(n,{strategy:e.strategy.find(e=>e.mode===t.mode)?.value||``,kind:`board`,marks:Ri(e,t.mode)})} +
+

${U(t.label)}

+
+
`:``}).filter(Boolean);return i.length&&r.push(G(`The page, as chosen`,`
${i.join(``)}
`+q(`Each surface’s page anatomy carrying every structural answer below at once, the way the question screens accumulated them: color strategy, layout, boundaries, corners, depth.`))),e.motion.length?r.push(G(`Motion per surface`,Xi(e.motion)+q(n.motionEnergy?`The seed interview asked for ${U(n.motionEnergy)}; the motion screen answered it per surface above.`:`Asked of the landing page and the portfolio only. A tool and a document are moved through rather than watched, so their movement follows the interface rather than a house style.`))):r.push(G(`Motion`,Ai(`Not asked on this run`,`The motion screen is shown for a landing page and a portfolio. This run has neither, so no motion energy was chosen and none is recorded.`))),e.layout.value&&r.push(G(`Layout structure`,K(e.layout.title,U(e.layout.desc))+q(`Asked of the landing page and the portfolio, where the composition of the page is itself the decision. One answer is kept for the run, and every surface is drawn on it.`))),r.push(G(`Boundaries per surface`,Xi(e.boundaries)+q(`How sections separate on each surface.`))),r.push(G(`Corners per surface`,Xi(e.corners)+q(`How round shapes are on each surface.`))),r.push(G(`Depth per surface`,Xi(e.depth)+q(`How far off the page things sit on each surface.`))),r.join(``)}function Qi(e,t){let n=[W(8,`Interface`,`Per-surface decisions at a glance, component status.`,t)];n.push(G(`Decisions per surface`,`
${e.surfaces.map(t=>{let n=e.strategy.find(e=>e.mode===t.mode)?.value||``,r=Li(t.mode),i=[[`Color strategy`,e.strategy.find(e=>e.mode===t.mode)],[`Boundaries`,e.boundaries.find(e=>e.mode===t.mode)],[`Corners`,e.corners.find(e=>e.mode===t.mode)],[`Depth`,e.depth.find(e=>e.mode===t.mode)],[`Motion`,e.motion.find(e=>e.mode===t.mode)],[`Layout`,e.layout.value?e.layout:void 0]];return` +
+ ${r?J(r,{strategy:n,kind:`board`,marks:Ri(e,t.mode)}):J(Fi(t.mode)||Ii(t.mode),{strategy:n,kind:`board`})} +
+

${U(t.label)}

+
${i.map(([e,t])=>` +
${U(e)}
${t?U(t.title):`Not asked`}${t&&!t.chosen?` default`:``}
`).join(``)}
+
+
`}).join(``)}
`+q(`Each surface’s anatomy carrying its committed answers, with every per-surface decision beneath it.`)));let r=[e.fonts.heading?{dt:`Faces`,dd:`${U(e.fonts.heading)} for headings, ${U(e.fonts.body)} for body`}:null,e.scale.ratio?{dt:`Type scale`,dd:`${U(e.scale.name)} · ratio ${e.scale.ratio.toFixed(3)} on a 16px base`}:null,e.icons.pack?{dt:`Icons`,dd:`${U(e.icons.pack)}${e.icons.license?` · ${U(e.icons.license)}`:``}`}:null,e.palette.length?{dt:`Palette`,dd:e.palette.map(e=>`${e.hex}`).join(` · `)}:null,e.layout.value?{dt:`Layout`,dd:`${U(e.layout.title)}, one answer for the run`}:null].filter(Boolean);return r.length&&n.push(G(`The kit`,Ei(r)+q(`The tokens the seed DESIGN.md will carry in its frontmatter, gathered from their own pages in this document.`))),n.push(G(`Components`,Ai(`No component library seeded yet`,`Components are documented on the first scan pass, once there is code to capture actual tokens and states from. Re-run /impeccable document then.`))),n.join(``)}var $i={audience:Bi,product:Wi,brand:Gi,color:qi,typography:Ji,iconography:Yi,material:Zi,interface:Qi},ea={persuade:`A public-facing page that introduces the experience and guides visitors toward its primary action.`,operate:`A working surface for completing tasks, where familiar patterns and a predictable layout come first.`,read:`A reading surface for understanding, where type, structure, and pacing carry the page.`,experience:`A project-led page for presenting selected work, its context, and its outcomes.`};function ta(){let e=Ti();window.dcxSurfaceDefs=e.surfaces.map(e=>({label:e.label,description:ea[e.mode]||e.goal||``}));let t=e.context?.product?.name||``;for(let[n,r]of Object.entries($i)){let i=document.getElementById(`dcx-detail-${n}`);i.innerHTML=`
${r(e,t)}
`}t&&(document.title=`Design context — ${t}`)}var na=e=>new Promise(t=>setTimeout(t,e));function ra(){let e={};for(let[t,n]of new FormData(V))e[t]=t in e?Array.isArray(e[t])?[...e[t],n]:[e[t],n]:n;return e}async function ia(){let e=await fetch(`/submit`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(ra())});if(!e.ok&&e.status!==409)throw Error(`Submit failed: ${e.status}`);if(e.ok){let t=await e.json().catch(()=>null);t?.doc?.base&&t?.doc?.token&&ya(t.doc)}}async function aa(){let e=B(`[data-doc-error]`),t=B(`[data-doc-loader]`);e.hidden=!0,t.removeAttribute(`data-stalled`),ta();try{await Promise.all([ia(),na(2400)]),da()}catch{t.setAttribute(`data-stalled`,``),e.hidden=!1}}var oa=!1;document.addEventListener(`picker:screenchange`,({detail:e})=>{e.screen!==`12`||oa||(oa=!0,aa())}),x().then(async e=>{e.mode===`doc`&&(hi=!0,oa=!0,await Promise.all([pi,mi,te,qt().catch(()=>{})]),e.doc?.base&&e.doc?.token&&ya(e.doc),ta(),da())});var sa;document.addEventListener(`picker:screenchange`,()=>{oa||(clearTimeout(sa),sa=setTimeout(()=>{oa||fetch(`/autosave`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(ra())}).catch(()=>{})},500))}),B(`[data-doc-retry]`)?.addEventListener(`click`,aa);var ca=!1,la=()=>document.querySelector(`.dcx-expander[data-dcx-document]`)?.dataset.dcxCurrentCategory||window.dcxDocument?.currentCategory()||``,ua=e=>B(`.dcx-tile[data-category="${e}"]`)?.dataset.name||`Design context`;function da(){ca=!0,document.body.classList.add(`dcx-open`),si.hidden=!1,window.scrollTo(0,0),requestAnimationFrame(()=>{requestAnimationFrame(()=>{oi(`[data-reveal]`,si).forEach(e=>e.classList.add(`revealed`)),fa()})})}function fa(){oi(`.dcx-viz-svg`).forEach(e=>{let t=oi(`.anim-draw, .anim-draw-delay`,e);if(!t.length)return;let n=e.getBoundingClientRect();if(!n.width||!n.height)return;let r=Math.min(n.width,n.height)/40;t.forEach(e=>{let t=Math.max(100,e.getTotalLength()/.6);e.style.setProperty(`--pl`,`${(t*r).toFixed(1)}px`)})})}var pa;window.addEventListener(`resize`,()=>{window.clearTimeout(pa),pa=window.setTimeout(()=>{ca&&fa()},150)});var Y=null,ma=1,ha=!1,ga=[],_a=B(`[data-dcx-tray]`),X=B(`[data-dcx-request-modal]`),va=()=>!!Y;function ya(e){Y=e,window.dcxDocSession=e,document.body.classList.add(`dcx-live`),ka(),Sa(1500)}async function ba(e,t){let n=await fetch(`${Y.base}${e}`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({token:Y.token,...t})});if(!n.ok)throw Error(`${e} failed: ${n.status}`);return n.json()}var xa;function Sa(e){window.clearTimeout(xa),xa=window.setTimeout(Ca,e)}async function Ca(){if(Y)try{let e=await fetch(`${Y.base}/doc/state?token=${encodeURIComponent(Y.token)}`);if(!e.ok)throw Error(`state`);let t=await e.json();wa(!0),ga=t.requests||[],Ma(),t.version!==ma&&(ma=t.version,await Oa(),ka()),Sa(2e3)}catch{wa(!1),Ma(),Sa(8e3)}}function wa(e){ha=e,document.body.classList.toggle(`dcx-live`,!!Y&&e)}async function Ta(){let e=await fetch(`${Y.base}/doc/answers?token=${encodeURIComponent(Y.token)}`);if(!e.ok)return;let{answers:t}=await e.json();for(let[e,n]of Object.entries(t||{})){if(Array.isArray(n)||typeof n!=`string`)continue;let t=V.elements[e];t&&(typeof RadioNodeList<`u`&&t instanceof RadioNodeList||`value`in t&&t.type!==`checkbox`)&&(t.value=n)}Ea(H(`font-heading`)),Ea(H(`font-body`))}function Ea(e){if(!e||document.fonts?.check?.(`16px '${e}'`))return;let t=`dcx-face-${e.replace(/\W+/g,`-`).toLowerCase()}`;if(document.getElementById(t))return;let n=document.createElement(`link`);n.id=t,n.rel=`stylesheet`,n.href=`https://fonts.googleapis.com/css2?family=${encodeURIComponent(e).replace(/%20/g,`+`)}:wght@300..800&display=swap`,document.head.appendChild(n)}async function Da(){let e=await fetch(`${Y.base}/doc/context?token=${encodeURIComponent(Y.token)}`);if(!e.ok)return;let t=await e.json();t.context&&typeof t.context==`object`&&(ci=t.context),Array.isArray(t.modes)&&(li=t.modes)}var Oa=()=>Promise.all([Ta(),Da()]);function ka(){ta(),window.dcxDocument?.remount()}var Aa=`freeform`;document.addEventListener(`click`,e=>{let t=e.target.closest(`[data-dcx-request], [data-dcx-request-kind]`);if(!t||!X)return;Aa=t.dataset.dcxRequestKind||`freeform`;let n=la(),r=n?ua(n):`Design context`;B(`[data-dcx-request-scope]`,X).textContent=Aa===`font`?`Typography change`:`${r} change`,B(`[data-dcx-request-fonts]`,X).hidden=Aa!==`font`;let i=B(`.dcx-request-prompt`,X);i.value=``,B(`[data-dcx-request-upload-note]`,X).textContent=``,X.showModal(),i.focus()}),B(`[data-dcx-request-cancel]`,X)?.addEventListener(`click`,()=>X.close()),B(`[data-dcx-request-send]`,X)?.addEventListener(`click`,async()=>{let e=B(`.dcx-request-prompt`,X).value.trim();if(!e||!va())return;let t=B(`[data-dcx-request-send]`,X);t.disabled=!0;try{let t=B(`[data-dcx-request-files]`,X)?.files||[],n=[];for(let e of t){let t=await fetch(`${Y.base}/font-upload?token=${encodeURIComponent(Y.token)}`,{method:`POST`,headers:{"X-Font-Filename":e.name},body:e});t.ok&&n.push((await t.json()).path)}ma=(await ba(`/doc/request`,{kind:Aa,prompt:e,category:la(),payload:n.length?{fonts:n}:{}})).version,X.close(),Sa(400)}catch{B(`[data-dcx-request-upload-note]`,X).textContent=`The edit session is unreachable; the request was not sent.`}finally{t.disabled=!1}});var ja={pending:`Queued for the agent`,working:`The agent is on it`,done:`Applied`,error:`Could not apply`};function Ma(){if(!_a)return;let e=ga.slice(-4),t=Y&&!ha;_a.hidden=!t&&e.length===0,_a.innerHTML=[t?`

Edit session offline

Changes stay in this tab; reconnecting…

`:``,...e.map(e=>` +
+ +
+

${U(e.prompt)}

+

${U(e.message||ja[e.status]||e.status)}

+
+
`)].join(``)}var Z=(e,t=document)=>t.querySelector(e),Na=Z(`#picker-form`),Pa=Z(`[data-copy-url]`),Fa=Z(`[data-copy-status]`),Q=[...Na.querySelectorAll(`.picker-screen`)],$=Q.findIndex(e=>e.hasAttribute(`data-active`)),Ia=new URL(location.href);Ia.hostname=`localhost`;var La=Ia.href.replace(/\/$/,``);Z(`[data-copy-url-value]`).textContent=La;var Ra=()=>[...Q[$].querySelectorAll(`button:not([disabled]), input:not([disabled]):not([type="hidden"]):not([tabindex="-1"]), select:not([disabled]), textarea:not([disabled]), a[href]`)],za=Z(`.picker-progress`),Ba=Z(`.picker-progress-track`),Va=()=>Q.filter((e,t)=>t>0&&t{let t=Va(),n=t.length,r=t.indexOf(e),i=r>=0?r+1:e===Q[0]?1:n;za.dataset.step=String(i),za.style.setProperty(`--pk-steps`,String(n)),[...Ba.children].forEach((e,t)=>e.toggleAttribute(`data-off`,t>=n)),Z(`[data-progress-index]`).textContent=String(i),Z(`[data-progress-total]`).textContent=String(n),Z(`[data-progress-name]`).textContent=e.dataset.step||``},Ua=new Set([`01b`,`02`,`03`]),Wa=(e,t)=>typeof document.startViewTransition==`function`&&!matchMedia(`(prefers-reduced-motion: reduce)`).matches&&Ua.has(e?.dataset.screen)&&Ua.has(t?.dataset.screen),Ga=(e,t=1)=>{let n=e;for(;Q[n]?.hasAttribute(`data-skip`);)n+=t;let r=Q[n];if(r){if(Wa(Q[$],r)){document.startViewTransition(()=>Ka(n));return}Ka(n)}},Ka=e=>{let t=Q[e];Q.forEach((t,n)=>{let r=n===e;t.toggleAttribute(`data-active`,r),r?t.removeAttribute(`aria-hidden`):t.setAttribute(`aria-hidden`,`true`)}),$=e;let n=t.dataset.screen;Na.dataset.current=n,Ha(t),document.dispatchEvent(new CustomEvent(`picker:screenchange`,{detail:{screen:n}})),Ra()[0]?.focus()},qa=`04b`,Ja=new Set([`06`,`08`,`09`,`10`,`11`]),Ya=e=>Q.findIndex(t=>t.dataset.screen===e);Na.onclick=e=>{let t=e.target.closest(`[data-advance]`);if(!t)return;if(Ja.has(Q[$].dataset.screen)){Ga(Ya(qa));return}let n=t.dataset.advance===`prev`?-1:1;Ga($+n,n)},document.addEventListener(`picker:goto`,e=>{let t=Ya(e.detail.screen);t!==-1&&Ga(t)}),document.addEventListener(`keydown`,e=>{if(e.defaultPrevented||e.target instanceof Element&&e.target.closest(`input, textarea, select, [role="slider"]`))return;if(e.key===`Enter`){if($===0&&matchMedia(`(max-width: 1199px)`).matches)return;let t=$===0?Z(`[data-advance="next"]`,Q[0]):document.activeElement;Ra().includes(t)&&(e.preventDefault(),t.click());return}let t={ArrowUp:-1,ArrowLeft:-1,ArrowDown:1,ArrowRight:1};if(!(e.key in t))return;e.preventDefault();let n=Ra(),r=n.indexOf(document.activeElement);n[r<0?0:(r+t[e.key]+n.length)%n.length]?.focus()}),Na.onsubmit=e=>e.preventDefault(),Pa.onclick=async()=>{try{await navigator.clipboard.writeText(La),Pa.classList.add(`is-copied`),Pa.setAttribute(`aria-label`,`Link copied`),Fa.textContent=`Copied. Paste it into your browser to continue.`,setTimeout(()=>{Pa.classList.remove(`is-copied`),Pa.setAttribute(`aria-label`,`Copy link`)},1200)}catch{Fa.textContent=`Copy failed. Select the link above and copy it instead.`}},Na.dataset.current=Q[$].dataset.screen,Ha(Q[$]); \ No newline at end of file diff --git a/.agent/skills/impeccable/scripts/picker/assets/kinpaku-gold-leaf.jpg b/.agent/skills/impeccable/scripts/picker/assets/kinpaku-gold-leaf.jpg new file mode 100644 index 0000000000000000000000000000000000000000..401c103fdd026d17ef6ef565fdf67349b0ad71bf GIT binary patch literal 119264 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 oZ}8F6k#2`IMfx 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 P!vP91s?xQRW?}yY1tqTb literal 0 HcmV?d00001 diff --git a/.agent/skills/impeccable/scripts/picker/assets/material/material-corners-per-surface-foil.png b/.agent/skills/impeccable/scripts/picker/assets/material/material-corners-per-surface-foil.png new file mode 100644 index 0000000000000000000000000000000000000000..47b01921404dfe9923b9fd96d882f52f73aa148e GIT binary patch literal 4246 zcmai1bx_o8*ZwUbEg~Q#0*``7!vdnPup$UZ2(rM^UD6>POP6#lDJ+eI)Pi(}h=hcc zgmic9vb;R+%=_>6-DmFmy5?MS=00;~&dfOxsw#36q>Q8h08l8%%e)5w&@BZ4#Q3*h zQwE0t06w6q1d~;=cDh>i83-UbY`3^z!y z{eI^=OS9)!Lz=&nna{?p+;zC$J1P%_QXlu}_XgAMcj<4pSzkHEi%? zTtI;%GF=`;d34M&J(c^n)%;{KcsQ1UJ;YvH3#td_ewG}h zZy>JXq+#G=6qf0ymFPK>!P<+UpDPr*=#d^t=O2iCyxXCAGUU8mXC@T>@kgp;aIpDN z?>i%FH6vHuFfVmTyjM=XpJ%GKRf^Bo5BGk4qTQ(f{B zRNEi%{^oiY@v-66GVR%JgJ7cv62l0i0LpvtBJZUS@E!9dD)e zqQsH)w(`M|x+XEM9#*m+t)QyuA%9yf;kiN9QMU8>d^dX`C&QNBPO`opvP!1P{U{B% zE;Lz(+&uVwT2HcDG zOA0Hfx@`%J>w6V-0ACOc!o$Y{;nRU1VcD=)UUM+|`WjNMb+ZAFuR!Bh->tJ_1h;%QnNCU99G+Q9pmpW=@@$m^H5dS&_Wtb>p!SzaBkV)oqx(ufI7xF>{p>ZkQ<8}_=1 z4Rmsa*AY5DW$GSyFb@@&s>e|?PxU;ftXIj}-PvS*=wq3^etg@TV$E%r z^Pd-vC4dm=TvbjQ(*Fy3#MR`z^>}xkUR|6zz)RX8diXSq-FbYicf*OclANH-h~hU- z5uA%e>HbYtro7EK}~dt<&al;Yu)e+^|Az@xV1n+K=x|53NA?b)p83^0)aqoK)q)JKof~v&FqTmWaZx6 z3`N(zO9{N5Z(F(7?%al(t|2sEcjI9o;;&pj!P|=j{Pz(w zVZCC>j5nsQ3^_Abt`Nnv4brug;SvU|56Xhz6!N7Xh&{+u0=sgY-6P$#5i+3h(8YZ3 zV)fCC$nr2(WnE7J~~nkA=&~z{1vVevLM2mZN_r&w*86}93Jxe`^Z2_YRe$O zlM1r357kdRQh_HHf#!xtXf=sIM~Cv^k?#Cv7iZifabHn_Ktdzh;d}OYe=`EZRe~@4 zF)IomGYx178|l|s_ZeN|e^VAy(#^Ig;y+1mKj@0+Sb6!17TK?z_3yVt*2*L@ashdg zkk<-)Vet~u5}?4@Wd%tpx417L9>yQ*9!#Ug0^1x?33Dd$K%E^of;%r?`i)_ z0U#D>-#4@9pt4?4j+puWGRLG$$`^$$T?Om(cC2Tg6nYffcNrdy3w{g5NuC){DpWyY zCfH{M@a21^$7@RHL%J*j#vdOjGS|Ue?tY;r1-0*IN%P2;W?5PgPUm+vI%R3JT;t#r zTq#BGkfsoHlXp!O@AS;vM0&>TXwoQ^rR~&S4B-QPhi!p*0Sn~G62GW+Yr5>B;eQT z(!9F4Dc(O7FqEP3K0&*)bWiKEUgnIV=IONPh-vEc@P2J|`e?f}x${by{!k8}^seR5 z0dsDcjAiz-dqOipT^7-u_Z9bB{i_zo7Tok39cFaR;d+UBiCSo)wPqoJ7+JGJE%Cya zO8TbJ)|dnajD7ST`S@D&@mhUhzIP%?4Ji%%ouTRMCO#bwhB_JwqYx|+$Rc!GC2f_5 z@TxMyqkJBKr(=e6Fc0P?aCMti9!z<@{;RsaO zv#GPJ|29OMf-516A*H@@X`*=@-97SXF?CM|XZp;eeqm@JmsXZ^bgksqa;Br$vX>&1 z{jV$A4fnK_5`9xs5!_;*GD6p4*+hvC34D3=D#NWa_(X*9XQFs1tumh~turB<{nU_4D|@J3HkPQH;4E^TwZ-1_9H4XA${F|wGs2eGGf zH7uuSl(wyVfm{hnmyS+sd^6zQK65R}8clh>P&v_#>?@^`k=E-ONrWDY(Zkafk~kjV z_1M$2gLGqSEqYOt7MA8^ERf12-=Pg7BrEvTA z%`*kar|}GeIMKZbK{Gj!ktg}6TD$A_W&a`+u;8*zxTuSPShlI-ZNvvrV~>s5Qs$iD zLA4EUTRsgMpNn@Crn9NZJe6*5StWQXttq2~eBzdvL0n=y7r0}yl8&JL$I#YdV2EHM zCH!~!)7>YQfy8Y-B{x&myF?AT_z#iKax_3hC3a4WqW0&iH)oAy%!_`9k5tm0>EiUS z?;ksK4Ss<&KTSvU-hXbf5mvV`-$~5RRR$dO@fiu+! z3x6$u;{6$2gA~*kSuMzRo?quqME5&>AN*2muGZzn?Iu9|J>XLJp{#8cs=6Yk9&#^T zmAPw+Hq@aqr2N`3i1UjMwCdwjw`Q^a6kuSiA#t8SA6!idzsOo>^F%g)2@06D@6c{_ zi`w-P1L5yK*i;BU-7}bKe(T1}#uWN)b7ION+N%;R429KN=#f=qxBY5>2*S3dypeEq zz5IuM>{Snd-j=0UzE7@xwzZ#A&}7}a`wpCqVuf^rf4MMm6zesbd}3g=&2#sb_nQK8 zh3qT>8#*@do>tdms#TmdP>UVS4BBV*CWPkBX@+&tP@(1Mnzjfu&Wc4?F6Uf>{j@Y0 z(?1ICdAiXj?jM{TZ9->YxkYxtFE@7zlnLXEXUuSr6U=|gux z7rHD$LLH)n!NL0OG1$E|_sH&Ur}(`Iw`!7vAwhKYihdk)+X zp`Ff=Jv)t9(SyCMXW!b`-M(jAI=B=(&PP))Xz92sEM!7D`+ z91kNna&W#p&shYN+_L5=`k2S3x`_gjY*$(BH|{up;NQVCc}L$lAU1fOQ_k1M8A9j#HLCqI$$ZSSL9{>XdPZ;Wr(P`BUP7)lsNixx2 zG*uJ_yBk@=!x_sP@K4I0dfA^gpzrj!ob}6yaZR z->97xm#(Ho_^-vIaVQKStGdT0=H~Hlu`8Si_0W_!1)F}}P^G+%zI|5o1J(BD!fOY# zs6pdGJ`>te-l|OEE+U!w?xfIZq)Zv5<8m|CX*-LyCJ!z@u39QhHS_ArHEW9HT*X8Cl6iT?qBJEMFWZzBAi9cJUYCG^7yd>-cO% z?QtsCLvc@!V#`OadR<`>F~An&c$Xk{z*-3QH%PKBUYz6HbT0EkQ6)FkY5>ReuKRB2sJL;tpd z{PkH3e8CCk^y9M~e@av|T|wn~9vxlDS@r8H^TQD^-vPhmIzHPz-Pp)R6Qm&(YM9 zjyIuE25C4(!Wz6d%RjPCRT&TKd}mH& zD0uRl#zBjrVO+2k#GorwSR*0$a5D0A%tznF6tfk%P;Ri-Ze!$SQ|Hgq93r3$F)Vjy z=?LYMF;l;sbhWb5m`afpHB*~R6}S50;GPon-IGH<(&v0CaIr{5!NH)}n{%(%`f^um-;RcTIwOQyBE&YDtUAK^4!Yg{wu8m&jkFa7 z&!&SMLcA~sX&E+5mPT^whDtI?32 z=Y>KgDK+tlEF~kjJFm9`I1;AfU}O^?fLxCoOP6*lNzO2(-0N}qm8FqmNaa?PD(B~% zRGwrQ0(Fk}PdBDgb2A-D5}Pg8b8#~Pg?zeRkFCr#FANmt7UK94;?V(rz5HDx$%r~m zm89J1r4iJAzTC{s(Jxi^|;ILXg>6u=jou+a<1%gj~!+Wet#4v&7EQM z@Fk8twbgY1EIc9{EF3H>Y!n)ELxEveLrLfYM;?rtywG$<}KCkEO53{!#r^}t|uCwdiecZ0q`GhnvvZqdVbA?_aO zBglu7`|mMj82?H1`QF`e3<|yT6)97J!5m25-ren^wlQdAejJkX+p2k3XI;H^U!&3v`SRWJ4rn6mdE)+Cj=7 zl2F}c<>?vCcz);zU6ZK{9u*(C*4qHf-$E{{?>Z%GW|XOD1>4soFMCIS@?Eb&$6KyR zfl$k5|GzL4|1g92!zUkSzP?_^4?O1gdCSA_8yDVrT>|8Ni=aL_pfSel;?HR4<^3qF z&JN_IQ}3Tao&)b;xgK0^UPyEpX8lA={{qUFBBaM+#glO8#aJ0e;a#G`iOIMz1EU12~mDSEQ3 zc}s};Lw(D*(bG^N5-fY>r+3Vut2TX-^2nP0X;zCT#vpcf?(5Ni^rTWk8T@Ky+fSb_ zwkkHpF4|xthlKSAqN+5e#d0U8OIDmUi<{s5M9j00{s@^Uxl1XXEE2g$bMKlPm@cSC{ zPTVrn_o?txLj;%q*eyArpMPnw>+JC_+BW0KhNV515TxUNN;Cb>a|$AIF2SS~npU($ zCO+nDgKsx*pMp17tMVL+kz)$D2uo=yRy;Q#b{67NzM_n_VSE-@Z9~Pnu4xsIc-?^C z<0pFB@MlP#vd#zUsne(rxi(maXyG3cZr4os+Qm zAl*%JzPV2^Sy&r-wmr;(+9?{ZggM*V88ELM3XA#nUNHiJUm8Oh2Fd|V*-rt+j(GbqLS|jJ-GIg zHCN3m#(+{58C?I<#3J9!9a7bX8gX|^^_x_Uw2lP1AIt%A6KLspyO$eOv}ukb)vw2~ z^`MhRh3O?(wbWmTC926934xouPCHsKMzeUj2Ri9mY?_)>KeWo z>Ymo~p_N+R>$R-TFni1Qs75f8ngI)_gnR%)9zK){x4KOze_s$=+upi6dp66s=ub!Mq;R~`|k3jr}?=V4%pG@*a>yJQmcle zvLHHeS*o<<>OMere^XgY}X8dF;lQr?m@}x z%V?1s=v@Ulj_M_yrxd@G^)a4bt=xEkneB>igwA7Lev^t>#z*q;8Pn@i zMK}p{YZQOxSD@Jmgyk7_*zA3aFtv#^q2AZRTDdt4)i^A3zZUN8&E)}PUo|xyKE54^ z=R>JHb?+C}*QdLF(K%E^+J=u`K{r~^s8dXX3N9<>|C%GzvzvM;{OD#!@h(OH=7`6*=)AgCwSc`TO|!$waNH^lO^+3R)4H06!5b) zHuhG1O{S~+yUb&*CWtMzN$@9DgB|i+9r1`!LcI;+ZCA_IZFDTw00GIhgY!GfT9M&+ZJJ@h?`h$OKk&Me>_2X!IUEUY(!3Tb z{i{L0lFd+sp2g#q!xW^3$k<5X5RYUJrw-VO5h>8R zGc%Wj7HYI*_``U%BFfdwMDDpmAuEqh52q~ayjRAG5!z6L^Fx5MQf@{pAnaMrJh!-T zU~=09{UkUv5!_rZ%2&Vm-sQED&!Kn#5{lOyAG!QdgHMi}92IL)6L;_AG>5g&U6Yt+6SpF*+i#tx^Yan(A8SO4=m?qGy(3owK5+Z{em&R~+S1I} z{AKtUg*Akm4}CS1on2dOIjJi@k@$+(Z}7yyUa?n7MhCw?kl^%Qxt@ zWeiSvaebgib|z2ce&f8|ME9%h`u;NRjIyka^yvy2ze+Ma8bX(e9VBtkUeQZ15_sI* z(mr>L@a+6@TGRc3S?*QllZ6{ zrvmc=Z9fnb%>th7*4aaiB%d(jc(hDRJSOmcV3pqO{o9>*fN`B^a5jcykrev#QN1nY zTE`OmP?8g)4jx=HVAcC`;%QazC&1+WVYFmI3X!6pO=lEdfuf&Z>gZTAdy)kBQBRVGC@5VY$`(R5eLyId{O*=jOqakiK^xgsFot=Rl&Y<-v zkA?TwyY5e0v5Sz@{(IyZ13i9yPShMjq_YQaa_v-R1IS|qI*-O#e8N!tCYPvSw^W_M z{PPYP`X~A3r&236+YpYo;b+U<)Kv+k>?vS;r5t%1kcyk3yhz^z3I>0uh_4x7W4E0= zbL4uh^aS%HE~}?>!xJ3z$GI(q!^C@96+3YSFRhCWVUoz+ap3{A9u}b&w~XJ6iu_o= z2P;6PP`qC9`_9`(`QKBfxW4}?Ryh$%xzWh8s{EnFVh3V!w%2&Da#S46dRKv7hZCQA zSE7t&M~k=9-%{uFtN_@Q4lZNF1_Mu9zAb506Ig;aWoR%&<6X(ZGzdPfc?#Nz0)@+)X!`uOFu>) zQS`slTcMVU$`hISc5Hhuw)^2fC|}bKIW3QPe{s8M+XM+yoNO)~f%sqT)e3&hG3^>? zBSUYad^ksJ)_#`kDeGAG>rsU=;r3EW()hEakdoiFO;2u`xTypX#?S2Ps#$sTe74;Q zPbayYRSW7X#`q?DN$EGom~yBO#yo-uy}_bBQEUYII5ro@ZMiRtlo2Tfa5TXi(K?4_AvOB^|wx-RA78NamZ?E^b zu<2!c3f`a>@JwE9ejIpA)FxVscI_T#Y(Mj zF0`vZOk3tZ9A+BlpST>8*o#T5doARCu&{Mb%Na4a=5jh96x-fd91Y7Pi;P3p$NtRc zXu}^`e8Pgc#I=G)(J$pRrLUBbt+|w4)mBjec?_#~*6{5diQ^4;g>h3>IRa25{x*?I zDqQ#$G4ZM;t+R5!+ZR`X>!06GI5$*fz-Dx{@F+}%|xC!v!o102x?Ho`CabtH@TkL5D2y{C%`W@PNb z6&x&Z#iG0iu-|p)`I{8s@an|?dM~l!Y$J<0+Ftnklz*pGzB@@?JyeTlNhSya{e~`3 z_{1(<=M+?t!Lk!8evG`C-vEF?ihgsDFVpz7dD7Tm$9LyP*iFOXg*&L!HRqy(!_83t zt}=X=5;WV8-fc2_%l8@VSf-O#g_VjO?bd8yg087{lT0Oi3M?7owOgE#xPRm=nV&S! zn)81R$5yXOpMU02+FUT{T#fwK*ue{SsMb2*xDt$|`qH*=l!No|l1U>@hBH%x!po^9 z-kCK~cPlvBPMFIM*nOY>oF4u#3Jdm6*})Mvk+$QB4Pnn+R`|S3-s5xO8%P-CGhx1J zJ?mnZw74%%I}~LKWfDC3_%&n~rn^&FeL&9Wu*09sjJy~$-g>-Le_|&cbeOI{{RN|% z3Iff+2^_ITs1P_RL&&<__OEI|Q!f55(g(!6=B__Wg~J;O+NzHPA{nUEuw-a|f+Z`X z-~_plwe(act!L@v>v+MBU7f@O%4U1-W#2Gx?^IMR8i3@n2%cSKbp_G%@{;^-l$+~s nwLbs9`~MU8e>gSDH_xc%+Y-BL<-!=i+Acb7=#BHbnI5+W!eNJt0>h;+yj0#X8tl(?WM2qFjz zf-Ecw!UmT+_v8J~yw99x&NK7QoF_h&VTX)_B71Kl$3Oz-LBFw_qxNi} z_|^MRB(z>Fz%R~*JHcV+y?^zqHwDq5p7Otkv+VcY+-Q)-4Bh@aZ?V;>Ig`QhvrDDy zF5TB>{9g*V-X$`v7IGYn8SQi^{Cp|6*Lxe?sk)HIgKia{N?{th&o-CEIsbrpvqkoJ z%5<|`X}L;fyGd^Et-+^!uJ5%%8_kNALFVgC%C2y~Tx0Tu9Jb9Ssr?bdm6wXkmC`fW z0#=D`hr=2@Aq=0(L@{Ifmza269SK`coiDj;i^alUD}>i-Buz7eEF4uVU9}ypAw#iD zs3PJ00p;;j&ePAHM@WOMX2{>qUUlva#@;3#!FJl7`UpQt?3~@%dccn^qmWqVyQu+# zQ4Cu7F=qF@^gQr5>QfPFc>Iz_Rzh{Ze64ecH(9MsrFNpbC z%4Pl>c06x`exq+|Ec-TreWp-)<&|=q57otY-}WGO96DycKx*Z=s9jo+OWi|_1b2t< zyN5{Q)q15QXZd>-={g#cmDXfKsaz6fO8vv)$Garv zg`vtNzV%qZienzfTNY%xRM;}=8p*$ZDz#Z9P(Sq>J-5F7Y|Da1m`wxdux+OTtM!K9MH7*ZBHcQyU%!DUi z-Y~s7iJwt67PbHh4;6@=3=9VG^YC8dzkUbDMZt>`tS4L$i3ES#%Ns--k$8k9U3CK3)YuLwl+&OdzfD?E|^1iObP5;3nX z7Or5Ia74fp4&LKmE+co*gkxd@lDLmMx#BLS+E4@ns(t+L)lc*%Q)v9cA_h-H&k)b| z2unmF7Ehy_IfWsj2xwFjYO3}<2EB0RM_j-Y@B#D0HXIR;LLI%B`ImgWf-9b0B%sb` zX18~z2^*i5mbPcNr-zo&Fj<=9E4@@Jlnd#DdNL5%8*kP$fz7zDUxR8!&1y;;wn7vKZimkcbv@03AiLyC zTT0iS8>^K+GgI_qp4-W8^W4mg6$ZPFG%&HUAm5z~`|cl320!2iOTd(*;1n%B#{Umt-#c3Rcnw)a|Dz`7*D&Rh0RprUq0(4n3hna! z|pX!CL-EAo)-<1RnDeTWTqQ)A=M@pfP_-MMff1z_nW#@xzD`=TaZTm+k$ zPN%oYMSWSjvp!PWs*7-E1+gZVlq4V(IBHUD!c!(M;J?_IT=~31Ete0b)ZS9Q(ONxl zOx@n3@=$*G37(#irt@l1{<1DpgwH?J+%k+*=qWWxQwCLbCK%tUu~*E;$qqbwJzk|D z;3W_h`JHCoqBk82Ux`#<@k}$60@+P;ofdU6Ggr%}(+g<}7Xv4GTo%u_UoLT?@Yj?D zD`}L!KHZ5F;xv|CDhS+hc^ z#DwixNOArlMuV%NrpcR&v%bvCT7AkceC5J5pz-Lpm|;O-nvHzEVg4FGv@Kl8oS7Nk zD8;Rnl?fILRV)1Qq<}`To2D{vV&Jk7dvNnrogK3`Bd=gHyCpCO(_H3omU?k0_cLwj zj~W>F;e%V~qv{6Jkcnn53?7VYUBBwXGjgNo|`+(S!Jpvm484bR#=akw?i;{xt zn7tGKu|4Hec%~ogLS0xYdq2P<+QMkr^gU0Sj{-SF4^q{}Uun zAvi3_u;g=QKCLR^pq)M%F(ek;6tzSBaHGw;@nm(PT-=!%o?m2V{bvKgTJ?;EV^B^` z-iBFgUDZW;lK`9di(LkzIJq8+TS$26Bj6z=NulXjKvjW7xQm*6{_!nyne+-JUbjXD z<0-OKoGw{QW?JosduffGgXzrtN?X5XXs&jWm}tA=0DV}u$i84k2;Wi3>|OfcZhq6igU%r8#5P(tceXsf2xllEv}gzpW9nG z#g-FyZ=LY9Dfb46<~MF%S41} z7&pa3KGPlx$^Jp~>YB8|9onCvDn#8NamR|(fk{_W?~1>@bXV_>>K!_m{S(xJ)0$v% zmHr^Ey}GUN3@Ri9tohwl{_S~8%9wgkNjjW<0Z!pfQhlWy*bXhNHsnmmye4#0-=Ozi zZ6-fo$RslvqJSBAUg4$&%9xLQcVub|SN~GS7JdoOUEqyBvf;X(6Kw#!u|;?}#vrRx z;HWCY2$U82F7i9vsn9V!7kpTMA*|@?Hgo{|(xXjPF*MhIj%uWuP9a&4Y@UcralfZ} zuIg-}{Ul(2CBdcTQ0{?X@F+JsNx@f>$J^hZt&t5TWL;|(s7qv7#G8LGghtW&K)Npn z=+c3a_7SCl2I}uhuw1GKm_X6w{b|JwYwMrqrbsZfwD?3Eu>n?vFGehkQE5>C6`vc^ zY|*6EkvbIU-S5v;Mfrxgr=l#Tx@#}RDToEzc|0?qg$U;;R(T-<;QPEkmwwnsgGY19|GYw6N6ZsH7s-bq?X1zDcnZJn`D2Oj zg!#vp>)z4DF%!E1z%n|h;r0jRslEWE zflm;>)na@=I5GS~4+8{-rJ?x#!-XKq-F--|33=|{xPhFwH)k{&SeEOZ63PBt$+d@E zKM`{@=@dMFx&Y}pt?O2|mkwG<{1jYVdE#znLyJ+q#Q$vFkCpznR-b>ytArJ4-*Gy^ zvM0AgYPYdtqS;Re&@Jab5fAfj&(4t8aB`IPpc8W>x;a?o(IHA7PruXz|88K%2_B)oTE9pzCXjqi**c<-GfxFRZy?o1yQ-)q1LN;qZ(9ZqR zzrIH_hKa^S$TS$*Y2~+wQenugv0bb;*%IXc5G+n?k2$4V_rS}&m* zt7~gHO|i41_PnyT-XHx+1A-UE+hEkF*#@d%Cq&1LWd^49(mX{E^IxR=_<2KkvI{R46l3 ztRORqz#?@+AvJw=M>QE6G=*Vocj#4WF$rJ*)NTOKQP36tz?*c(P2Y3|L`y2ih|mBS zIZ{BR&{5A(Pbp=!1P*0`1qa|Er#1~xF{{fJz8BOyL;miO=%`$+72|88xq;jzgASf+ zLJ$IMAB=!)T4sc8DzSMV&_l)!nM6-DaYBOGp-h}DQrL1_Z+3KCh4uwp#lM<)mIRN@ z&jL|M(44o089Y2kQQT0yQZ^q3ldq&hFWsc>_x?r$Of`LVFrE1FVQ~wg0T*KgkmYX{ zes@;+E%${K=DhuTt(LZJx77k`2@?fB!8($_F-o2mwdx|ACTmJwzHTjCZ%LJV& zeAkOtqEAtg?oHhNWo7(%zV4Wx`#WDdX=c{shS% zBOLo!Gsp%*-*zcUNNKs()mdZ{5YmxHq2?bwK!;D%vZ!j=oGz)J4V^buBfivaY@`s+)?|UYfdAJj`>wG#| zS{%=`Xaty=D3*fn&kw0*i!0pZ%8`(`0Qb&c?$re!kWDWC`P6g1N0}1|64Qdxkq#ge zDk-$`Ua3iVjV$$#UkpuPBbG!Unt}C#%nspuzspdM9uLfCe zXZTJJ8+Sn%L(y5oWq@gz%Bcwlh7;vBJ+E1po9f_U`NMICgwwM^?2D)wtb@p1n!;pW z`xX|cEdG1ZPKS0;w?5AsL1b*U+Fi_>0NiUCJo~(?fqt=6NPhSZ7i31PY^B3Eab1&o`)x_L# z7!cwj^>A;ubd43bzWC8A@M-`ETIqoV0wd4(Y=r!>dtNYcLi)`*57=F?OAVfpWrY(;Dg>O+8Gq=95VA-5eoN9`3Soseg`fY z5Pg`N`_}E(VM`~#dL(||M7Ge4OsxI-QQCuQO0gs?d@NShd)lTClVw0gRX>6oA-0r6C z#}M`(R~SX)n&}+`7gkDkW1>S79+At*uIB~JRTIK5z1rei6)&mRTuek&@~u6BKaG~= z-!}~%c6}77+A#aee#4R;xne*YnJ6QzK9E%8bIo$ms)Suc^!C9m)8dI|-jKWI^=^@v zoqS{Q#*+v$m3ob4r009Zms|%Aay|2q$FJk7Pv{nCO~_4HaFU}9Px6BmRuUe&&rh4m zAj(=ludfddu2;;)m*%mlI`~hl=BNbx{S-Q^rV<%3bTfLYaNzv-4JQ+)W#()GD7yYz zO#Dn6>5fxTOQ+Omqlzn{txI?Jt{M(KF_{$N(7ln_!Ykf}eX$fgEwN?)Yiig}!*WsQ z;_C!{Pk1i-J8wy4gkVY4kEokPQ6J^kvUH%-KD*A*9=eeOi#O2Ey%Il$cX+YW!M>In zcEI`%=S&8iLf^d2<7*%`u6ZeP1WK1`Kkbf1Wz40C%lejHploat7t`msZMqH&(mv(~ zeQ-vH(cV=se|mw=b%sl8z&yw~xHxY^AX{CuDvdkF0Yo~Pp>?R#+^k6qEknCS&*$wj zw`tQ>-ctV#ziV7(ZLV3-zMp0`1qvq(#=*{x4QuvL9Y!sK_0nHG+jk{pC0@K1iO+ca zK?dseVw`XDVe0FRO-Ro|p=4>E`jyOt>hTcXD1~I0OVL}>694BT-FkmXS?XEWr&JFO zEd22sn@P`R#jkqUbx^q9DS_cjPNs~zF3lTbI0hC#gvh;=WeSiR{VhS>#?S3e?wfoc zrb$N*-m2m3s}4`0*4{$(8T9g#9Zj0T{Z?&(XFheV)yy~@pc?f0*mv~7$FzW9gCk^| z^@513+?yXLK3pnK62iYi7NKp|%6&ai?Gyl{DfqVD_3MmSR`UF}UHwlF`+ww*K)kHP XP`u6^v6PN0BMunrTj;gvc%=Rh^~agP literal 0 HcmV?d00001 diff --git a/.agent/skills/impeccable/scripts/picker/assets/product/product-clear-first-foil.png b/.agent/skills/impeccable/scripts/picker/assets/product/product-clear-first-foil.png new file mode 100644 index 0000000000000000000000000000000000000000..624e77a8d2de25a6ba0aea33b221075df9605f45 GIT binary patch literal 8800 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 BOppKo literal 0 HcmV?d00001 diff --git a/.agent/skills/impeccable/scripts/picker/assets/product/product-operating-context-foil.png b/.agent/skills/impeccable/scripts/picker/assets/product/product-operating-context-foil.png new file mode 100644 index 0000000000000000000000000000000000000000..dd365d75e9e039f64b24bcf732f83b3487eb2021 GIT binary patch literal 9508 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 O50IBuk*bz34f$WV(52h} literal 0 HcmV?d00001 diff --git a/.agent/skills/impeccable/scripts/picker/assets/product/product-positioning-foil.png b/.agent/skills/impeccable/scripts/picker/assets/product/product-positioning-foil.png new file mode 100644 index 0000000000000000000000000000000000000000..89f422bc3ea0f890a907380d4d8c9f4c873e7a23 GIT binary patch literal 5503 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 literal 0 HcmV?d00001 diff --git a/.agent/skills/impeccable/scripts/picker/assets/product/product-principles-foil.png b/.agent/skills/impeccable/scripts/picker/assets/product/product-principles-foil.png new file mode 100644 index 0000000000000000000000000000000000000000..51a5086a53906b525d3bd1084770d82f9aae8af8 GIT binary patch literal 8070 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 W#iLCp&42$!09i>Ti5hW}kpBUZV#iSc literal 0 HcmV?d00001 diff --git a/.agent/skills/impeccable/scripts/picker/assets/product/product-purpose-foil.png b/.agent/skills/impeccable/scripts/picker/assets/product/product-purpose-foil.png new file mode 100644 index 0000000000000000000000000000000000000000..54f1ab15ade597f0b5fa90ef11f52680d5d1e1bb GIT binary patch literal 5136 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

?am`5W$<=xZc%{ZSF5glb{2=z_#^BRX8&q=o z^hsG$+8id8Im>MFl&m;dL=?Oc2hMo{iK~^TW_01RC8c(FKCyVJ4@hkGH-Kd=JApxb76no{-hE&iKfPCSm>$kUIsWUQ5C! zHfZ5aoSFf52K73|P5eWusmm61()Op>m&}9*o8RldXK!Dxb`fgQK>_t6=9y$PW9R^n z1$-kJd;E$g)Wg|Lu{8iFxCWKD%HazH)?bCPb0J7l1_WE?7HAjF^H;HV4n9SE9r>ou za840r-WT4Lx|Lok=NGKS+#m6ZdXh&mK+tWN;yx>c8Y7$vZBq2>H0|gpQ+2FF4B;hgf@b8BPii z>E7D#k-aE|QBf$KiYG*wkU6+O)mcKyGekjGb(ZtS{9Jj=VvPM+^;eJ{KcUun>g5v> zBY&?xqHhIVr#3Vyu7~Acq5e#8B#}`5(^iOb3GC_<)i|@{6#<5?P211$$+<0x8IrLY zQVOnT-}3>iLHy`1q&xO-sme~vi%9p0xqdgHGB0&J{k!>Wx`w-e_Y-+_w6CGq zEraf7N4@IHB4fNuV@rXYt8=aKz-_Aody2Th_VvOf`6Z})d0Shfk;33Bk7%NrCjGAG z`T5JGj0LW4NiPnL@3^S;Tj(XU5=|404DGu14{1`S==l1>fs!WZ)VHwx=*gmH~pun)*j$mzR{!+SwL?W@pv_u*};Yp z^1;j=*(GouD&HU+70+?BtwKD~AHGtV^#|(vvk(}GJg6U=5!33&4{IcCoCL4A)iK*0TM^NbB6!e#51=9eMy|? zTkju=u7C4o?lFeLOajN`BbPSmPBfasFBY9Geu6sZdOSbWZT}(hoktJKApq=6u)p6- z^L#75)BZ5uD@_?R=&1;FRkXO1y$~~&CX!G{@bE_sac+;BN5I_la5c}TiR}G~_uh)J z_hf^cOn?>W2Q~RJHY<&m&k>T0Z7W z8ae3B80!!gx^q6nAV}vwIfHYpz&-;wH28(}A^Z;)-`jm(rh4Pi9Pvsj`I*HJW$&X= zgvo|-U7o<_2C)NeLF9;|$2a~@=01^Tht_6jlmkINi_z1yV}+^nJ_C%u-b(G;AtU>C z{|7&7e*Qkrj``TORvz-`} zlr$`=n-ZOpH2Zol~=4b%}% zVVT1%rEyf4aJ`(Qh?+o*3!0QB@9*(lKEVj1W8V(_SmS#7L?5jvkL_+-DPZ8EGXb4d zt=kHNnIvJ9%K7ib_=LCBB1f7wG?kdwZ$n-0Ey&2H_-k*Sc{<}8e8hyxRN(IZC%rWws%+UMfh?~ z+&TQasZwe2gL|w?_QY00WiUcx`2{aQ9-`&0hj8_h$oEBdaP4e^L%E z%3&L}^h^SnQF1fblRmmQL>rJrq+NdG#FeSN#C;o8S6|!xIWE38My?x+iUn)s%}TCq z8JZs+I!Q$NH#I$7utLqE;IAhF&jmV+AHtzrw*yUwwV0Ge@A>4*pR+#LoBlWqL2+pS zWQ^Q)uNTn1I^T^PYRZ)=L6H%)#aLtw5GBhBw*&(8`2b{a3X8u+1i4!m z){rOC!~XiKz=D-XxJsIQ+nG&l$WA!2{YI)yGXGy$1O|au@1@tn;FdNG2NnElQe5uk4t8 zc?i(RsqIH4;`;rk%51AqJGB&-PQvzLnO?q|5wYl3{I+i)gi-7N#I2Jk-Ep~pPaWY^z9RyVS*7p(@7aT>t0Yi8J zwiL<1pt8ZlC7SJ2X4ulK4+8y zW{r7{V!h}i-Qh6@sr5}E7wQs^KtW2f2Di$I=(s-*X;xX5+%=T(i6D7YgyKRj4E_I) eX^mVo0Vu(zqd^k9d~x#+0MJ&~SF3~Azxp4n9`zLf literal 0 HcmV?d00001 diff --git a/.agent/skills/impeccable/scripts/picker/assets/product/product-surfaces-foil.png b/.agent/skills/impeccable/scripts/picker/assets/product/product-surfaces-foil.png new file mode 100644 index 0000000000000000000000000000000000000000..46d0617b4e27f0ea980413e7f87f1004c13c9ccf GIT binary patch literal 9702 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 YmnL@ivrt_8=g|Nt%WKHh$ykK`4|Bw|wEzGB literal 0 HcmV?d00001 diff --git a/.agent/skills/impeccable/scripts/picker/assets/typography/typography-pair-foil.png b/.agent/skills/impeccable/scripts/picker/assets/typography/typography-pair-foil.png new file mode 100644 index 0000000000000000000000000000000000000000..f822d633f544eec2e2dd103e4a4aaca3c0308d2b GIT binary patch literal 5074 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 Gg8UaNiY8A0 literal 0 HcmV?d00001 diff --git a/.agent/skills/impeccable/scripts/picker/favicon.svg b/.agent/skills/impeccable/scripts/picker/favicon.svg new file mode 100644 index 000000000..a6c6d2979 --- /dev/null +++ b/.agent/skills/impeccable/scripts/picker/favicon.svg @@ -0,0 +1,13 @@ + + + + + diff --git a/.agent/skills/impeccable/scripts/picker/icon-packs.json b/.agent/skills/impeccable/scripts/picker/icon-packs.json new file mode 100644 index 000000000..11caacc00 --- /dev/null +++ b/.agent/skills/impeccable/scripts/picker/icon-packs.json @@ -0,0 +1 @@ +{"generated":"2026-07-26","concepts":["home","search","user","settings","bell","heart","star","calendar","mail","message","trash","download","upload","plus","check","close","chevron-right","arrow-right","menu","filter","edit","lock","eye","external-link"],"packs":[{"id":"lucide","name":"Lucide","license":"ISC","url":"https://lucide.dev","note":"Feather’s successor. Same 2px round-cap hand, far wider catalog, still shipping.","grid":"24","weight":"2px stroke","count":2007,"version":"1.27.0","viewBox":"0 0 24 24","attrs":{"fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},"glyphs":[{"concept":"home","name":"home","body":""},{"concept":"search","name":"search","body":""},{"concept":"user","name":"user","body":""},{"concept":"settings","name":"settings","body":""},{"concept":"bell","name":"bell","body":""},{"concept":"heart","name":"heart","body":""},{"concept":"star","name":"star","body":""},{"concept":"calendar","name":"calendar","body":""},{"concept":"mail","name":"mail","body":""},{"concept":"message","name":"message-circle","body":""},{"concept":"trash","name":"trash-2","body":""},{"concept":"download","name":"download","body":""},{"concept":"upload","name":"upload","body":""},{"concept":"plus","name":"plus","body":""},{"concept":"check","name":"check","body":""},{"concept":"close","name":"x","body":""},{"concept":"chevron-right","name":"chevron-right","body":""},{"concept":"arrow-right","name":"arrow-right","body":""},{"concept":"menu","name":"menu","body":""},{"concept":"filter","name":"filter","body":""},{"concept":"edit","name":"pencil","body":""},{"concept":"lock","name":"lock","body":""},{"concept":"eye","name":"eye","body":""},{"concept":"external-link","name":"external-link","body":""}]},{"id":"feather","name":"Feather","license":"MIT","url":"https://feathericons.com","note":"The 2px original most stroke sets descend from. Small, even, no longer growing.","grid":"24","weight":"2px stroke","count":287,"version":"4.29.2","viewBox":"0 0 24 24","attrs":{"fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},"glyphs":[{"concept":"home","name":"home","body":""},{"concept":"search","name":"search","body":""},{"concept":"user","name":"user","body":""},{"concept":"settings","name":"settings","body":""},{"concept":"bell","name":"bell","body":""},{"concept":"heart","name":"heart","body":""},{"concept":"star","name":"star","body":""},{"concept":"calendar","name":"calendar","body":""},{"concept":"mail","name":"mail","body":""},{"concept":"message","name":"message-circle","body":""},{"concept":"trash","name":"trash-2","body":""},{"concept":"download","name":"download","body":""},{"concept":"upload","name":"upload","body":""},{"concept":"plus","name":"plus","body":""},{"concept":"check","name":"check","body":""},{"concept":"close","name":"x","body":""},{"concept":"chevron-right","name":"chevron-right","body":""},{"concept":"arrow-right","name":"arrow-right","body":""},{"concept":"menu","name":"menu","body":""},{"concept":"filter","name":"filter","body":""},{"concept":"edit","name":"edit-3","body":""},{"concept":"lock","name":"lock","body":""},{"concept":"eye","name":"eye","body":""},{"concept":"external-link","name":"external-link","body":""}]},{"id":"phosphor","name":"Phosphor","license":"MIT","url":"https://phosphoricons.com","note":"Drawn on a 256 grid with a soft geometric hand. Six weights upstream, regular here.","grid":"256","weight":"regular weight","count":1512,"version":"2.1.1","viewBox":"0 0 256 256","attrs":{"fill":"currentColor"},"glyphs":[{"concept":"home","name":"house","body":""},{"concept":"search","name":"magnifying-glass","body":""},{"concept":"user","name":"user","body":""},{"concept":"settings","name":"gear-six","body":""},{"concept":"bell","name":"bell","body":""},{"concept":"heart","name":"heart","body":""},{"concept":"star","name":"star","body":""},{"concept":"calendar","name":"calendar","body":""},{"concept":"mail","name":"envelope","body":""},{"concept":"message","name":"chat-circle","body":""},{"concept":"trash","name":"trash","body":""},{"concept":"download","name":"download","body":""},{"concept":"upload","name":"upload","body":""},{"concept":"plus","name":"plus","body":""},{"concept":"check","name":"check","body":""},{"concept":"close","name":"x","body":""},{"concept":"chevron-right","name":"caret-right","body":""},{"concept":"arrow-right","name":"arrow-right","body":""},{"concept":"menu","name":"list","body":""},{"concept":"filter","name":"funnel","body":""},{"concept":"edit","name":"pencil","body":""},{"concept":"lock","name":"lock","body":""},{"concept":"eye","name":"eye","body":""},{"concept":"external-link","name":"arrow-square-out","body":""}]},{"id":"heroicons","name":"Heroicons","license":"MIT","url":"https://heroicons.com","note":"Tailwind’s set. 1.5px strokes at 24, with solid and 20px mini twins for dense UI.","grid":"24","weight":"1.5px stroke","count":324,"version":"2.2.0","viewBox":"0 0 24 24","attrs":{"fill":"none","stroke":"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"},"glyphs":[{"concept":"home","name":"home","body":""},{"concept":"search","name":"magnifying-glass","body":""},{"concept":"user","name":"user","body":""},{"concept":"settings","name":"cog","body":""},{"concept":"bell","name":"bell","body":""},{"concept":"heart","name":"heart","body":""},{"concept":"star","name":"star","body":""},{"concept":"calendar","name":"calendar","body":""},{"concept":"mail","name":"envelope","body":""},{"concept":"message","name":"chat-bubble-left","body":""},{"concept":"trash","name":"trash","body":""},{"concept":"download","name":"arrow-down-tray","body":""},{"concept":"upload","name":"arrow-up-tray","body":""},{"concept":"plus","name":"plus","body":""},{"concept":"check","name":"check","body":""},{"concept":"close","name":"x-mark","body":""},{"concept":"chevron-right","name":"chevron-right","body":""},{"concept":"arrow-right","name":"arrow-right","body":""},{"concept":"menu","name":"bars-3","body":""},{"concept":"filter","name":"funnel","body":""},{"concept":"edit","name":"pencil","body":""},{"concept":"lock","name":"lock-closed","body":""},{"concept":"eye","name":"eye","body":""},{"concept":"external-link","name":"arrow-top-right-on-square","body":""}]},{"id":"tabler","name":"Tabler","license":"MIT","url":"https://tabler.io/icons","note":"The widest stroke catalog here, uniform enough that mixed rows read as one hand.","grid":"24","weight":"2px stroke","count":5112,"version":"3.45.0","viewBox":"0 0 24 24","attrs":{"fill":"none","stroke":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},"glyphs":[{"concept":"home","name":"home","body":""},{"concept":"search","name":"search","body":""},{"concept":"user","name":"user","body":""},{"concept":"settings","name":"settings","body":""},{"concept":"bell","name":"bell","body":""},{"concept":"heart","name":"heart","body":""},{"concept":"star","name":"star","body":""},{"concept":"calendar","name":"calendar","body":""},{"concept":"mail","name":"mail","body":""},{"concept":"message","name":"message-circle","body":""},{"concept":"trash","name":"trash","body":""},{"concept":"download","name":"download","body":""},{"concept":"upload","name":"upload","body":""},{"concept":"plus","name":"plus","body":""},{"concept":"check","name":"check","body":""},{"concept":"close","name":"x","body":""},{"concept":"chevron-right","name":"chevron-right","body":""},{"concept":"arrow-right","name":"arrow-right","body":""},{"concept":"menu","name":"menu-2","body":""},{"concept":"filter","name":"filter","body":""},{"concept":"edit","name":"pencil","body":""},{"concept":"lock","name":"lock","body":""},{"concept":"eye","name":"eye","body":""},{"concept":"external-link","name":"external-link","body":""}]},{"id":"radix","name":"Radix Icons","license":"MIT","url":"https://www.radix-ui.com/icons","note":"A 15px grid built for product chrome. Crisp at control size, thin if you scale it up.","grid":"15","weight":"filled paths","count":332,"version":"112af91ad275a63c3a29b0da2588342af74ef9bf","viewBox":"0 0 15 15","attrs":{"fill":"none"},"glyphs":[{"concept":"home","name":"home","body":""},{"concept":"search","name":"magnifying-glass","body":""},{"concept":"user","name":"person","body":""},{"concept":"settings","name":"gear","body":""},{"concept":"bell","name":"bell","body":""},{"concept":"heart","name":"heart","body":""},{"concept":"star","name":"star","body":""},{"concept":"calendar","name":"calendar","body":""},{"concept":"mail","name":"envelope-closed","body":""},{"concept":"message","name":"chat-bubble","body":""},{"concept":"trash","name":"trash","body":""},{"concept":"download","name":"download","body":""},{"concept":"upload","name":"upload","body":""},{"concept":"plus","name":"plus","body":""},{"concept":"check","name":"check","body":""},{"concept":"close","name":"cross-1","body":""},{"concept":"chevron-right","name":"chevron-right","body":""},{"concept":"arrow-right","name":"arrow-right","body":""},{"concept":"menu","name":"hamburger-menu","body":""},{"concept":"filter","name":"mixer-horizontal","body":""},{"concept":"edit","name":"pencil-1","body":""},{"concept":"lock","name":"lock-closed","body":""},{"concept":"eye","name":"eye-open","body":""},{"concept":"external-link","name":"external-link","body":""}]},{"id":"bootstrap","name":"Bootstrap Icons","license":"MIT","url":"https://icons.getbootstrap.com","note":"Filled paths on a 16 grid, so weight holds at any size. More literal than the stroke sets.","grid":"16","weight":"filled paths","count":1408,"version":"1.13.1","viewBox":"0 0 16 16","attrs":{"fill":"currentColor"},"glyphs":[{"concept":"home","name":"house","body":""},{"concept":"search","name":"search","body":""},{"concept":"user","name":"person","body":""},{"concept":"settings","name":"gear","body":""},{"concept":"bell","name":"bell","body":""},{"concept":"heart","name":"heart","body":""},{"concept":"star","name":"star","body":""},{"concept":"calendar","name":"calendar","body":""},{"concept":"mail","name":"envelope","body":""},{"concept":"message","name":"chat","body":""},{"concept":"trash","name":"trash","body":""},{"concept":"download","name":"download","body":""},{"concept":"upload","name":"upload","body":""},{"concept":"plus","name":"plus","body":""},{"concept":"check","name":"check","body":""},{"concept":"close","name":"x","body":""},{"concept":"chevron-right","name":"chevron-right","body":""},{"concept":"arrow-right","name":"arrow-right","body":""},{"concept":"menu","name":"list","body":""},{"concept":"filter","name":"funnel","body":""},{"concept":"edit","name":"pencil","body":""},{"concept":"lock","name":"lock","body":""},{"concept":"eye","name":"eye","body":""},{"concept":"external-link","name":"box-arrow-up-right","body":""}]},{"id":"iconoir","name":"Iconoir","license":"MIT","url":"https://iconoir.com","note":"1.5px strokes on 24 with an open, geometric hand. Roomier than Lucide at the same size.","grid":"24","weight":"1.5px stroke","count":1383,"version":"7.11.1","viewBox":"0 0 24 24","attrs":{"fill":"none","stroke":"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"},"glyphs":[{"concept":"home","name":"home","body":""},{"concept":"search","name":"search","body":""},{"concept":"user","name":"user","body":""},{"concept":"settings","name":"settings","body":""},{"concept":"bell","name":"bell","body":""},{"concept":"heart","name":"heart","body":""},{"concept":"star","name":"star","body":""},{"concept":"calendar","name":"calendar","body":""},{"concept":"mail","name":"mail","body":""},{"concept":"message","name":"chat-bubble","body":""},{"concept":"trash","name":"trash","body":""},{"concept":"download","name":"download","body":""},{"concept":"upload","name":"upload","body":""},{"concept":"plus","name":"plus","body":""},{"concept":"check","name":"check","body":""},{"concept":"close","name":"xmark","body":""},{"concept":"chevron-right","name":"nav-arrow-right","body":""},{"concept":"arrow-right","name":"arrow-right","body":""},{"concept":"menu","name":"menu","body":""},{"concept":"filter","name":"filter","body":""},{"concept":"edit","name":"edit-pencil","body":""},{"concept":"lock","name":"lock","body":""},{"concept":"eye","name":"eye","body":""},{"concept":"external-link","name":"open-new-window","body":""}]},{"id":"octicons","name":"Octicons","license":"MIT","url":"https://primer.style/octicons","note":"GitHub’s set, redrawn per size rather than scaled. Compact and developer-fluent.","grid":"24","weight":"filled paths","count":350,"version":"19.31.0","viewBox":"0 0 24 24","attrs":{"fill":"currentColor"},"glyphs":[{"concept":"home","name":"home-24","body":""},{"concept":"search","name":"search-24","body":""},{"concept":"user","name":"person-24","body":""},{"concept":"settings","name":"gear-24","body":""},{"concept":"bell","name":"bell-24","body":""},{"concept":"heart","name":"heart-24","body":""},{"concept":"star","name":"star-24","body":""},{"concept":"calendar","name":"calendar-24","body":""},{"concept":"mail","name":"mail-24","body":""},{"concept":"message","name":"comment-24","body":""},{"concept":"trash","name":"trash-24","body":""},{"concept":"download","name":"download-24","body":""},{"concept":"upload","name":"upload-24","body":""},{"concept":"plus","name":"plus-24","body":""},{"concept":"check","name":"check-24","body":""},{"concept":"close","name":"x-24","body":""},{"concept":"chevron-right","name":"chevron-right-24","body":""},{"concept":"arrow-right","name":"arrow-right-24","body":""},{"concept":"menu","name":"three-bars-24","body":""},{"concept":"filter","name":"filter-24","body":""},{"concept":"edit","name":"pencil-24","body":""},{"concept":"lock","name":"lock-24","body":""},{"concept":"eye","name":"eye-24","body":""},{"concept":"external-link","name":"link-external-24","body":""}]},{"id":"hugeicons","name":"Hugeicons","license":"MIT (free core)","url":"https://hugeicons.com","note":"1.5px rounded strokes on 24. The free core is one style; the other styles are paid.","grid":"24","weight":"1.5px stroke","count":5443,"version":"4.2.3","viewBox":"0 0 24 24","attrs":{"fill":"none","stroke":"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"},"glyphs":[{"concept":"home","name":"Home01Icon","body":""},{"concept":"search","name":"Search01Icon","body":""},{"concept":"user","name":"UserIcon","body":""},{"concept":"settings","name":"Settings01Icon","body":""},{"concept":"bell","name":"Notification01Icon","body":""},{"concept":"heart","name":"FavouriteIcon","body":""},{"concept":"star","name":"StarIcon","body":""},{"concept":"calendar","name":"Calendar01Icon","body":""},{"concept":"mail","name":"Mail01Icon","body":""},{"concept":"message","name":"BubbleChatIcon","body":""},{"concept":"trash","name":"Delete02Icon","body":""},{"concept":"download","name":"Download01Icon","body":""},{"concept":"upload","name":"Upload01Icon","body":""},{"concept":"plus","name":"Add01Icon","body":""},{"concept":"check","name":"Tick02Icon","body":""},{"concept":"close","name":"Cancel01Icon","body":""},{"concept":"chevron-right","name":"ChevronRightIcon","body":""},{"concept":"arrow-right","name":"ArrowRight02Icon","body":""},{"concept":"menu","name":"Menu01Icon","body":""},{"concept":"filter","name":"FilterIcon","body":""},{"concept":"edit","name":"PencilEdit01Icon","body":""},{"concept":"lock","name":"SquareLock01Icon","body":""},{"concept":"eye","name":"ViewIcon","body":""},{"concept":"external-link","name":"ExternalLinkIcon","body":""}]},{"id":"remix","name":"Remix Icon","license":"Apache-2.0","url":"https://remixicon.com","note":"Line and fill twins across a broad catalog. Neutral, a touch heavier than the 2px sets.","grid":"24","weight":"filled paths","count":1539,"version":"4.9.1","viewBox":"0 0 24 24","attrs":{"fill":"currentColor"},"glyphs":[{"concept":"home","name":"home-line","body":""},{"concept":"search","name":"search-line","body":""},{"concept":"user","name":"user-line","body":""},{"concept":"settings","name":"settings-3-line","body":""},{"concept":"bell","name":"notification-2-line","body":""},{"concept":"heart","name":"heart-line","body":""},{"concept":"star","name":"star-line","body":""},{"concept":"calendar","name":"calendar-line","body":""},{"concept":"mail","name":"mail-line","body":""},{"concept":"message","name":"message-line","body":""},{"concept":"trash","name":"delete-bin-line","body":""},{"concept":"download","name":"download-line","body":""},{"concept":"upload","name":"upload-line","body":""},{"concept":"plus","name":"add-line","body":""},{"concept":"check","name":"check-line","body":""},{"concept":"close","name":"close-line","body":""},{"concept":"chevron-right","name":"arrow-right-s-line","body":""},{"concept":"arrow-right","name":"arrow-right-line","body":""},{"concept":"menu","name":"menu-line","body":""},{"concept":"filter","name":"filter-line","body":""},{"concept":"edit","name":"pencil-line","body":""},{"concept":"lock","name":"lock-line","body":""},{"concept":"eye","name":"eye-line","body":""},{"concept":"external-link","name":"external-link-line","body":""}]}]} diff --git a/.agent/skills/impeccable/scripts/picker/index.html b/.agent/skills/impeccable/scripts/picker/index.html new file mode 100644 index 000000000..15676e834 --- /dev/null +++ b/.agent/skills/impeccable/scripts/picker/index.html @@ -0,0 +1,5 @@ +Impeccable design interview

Impeccable

Let's build your
design system.

Arrow keys to move

Request a change

Describe the change; the agent applies it to the design document and the page updates here.

Change

Add a custom font

Link a hosted stylesheet or upload a face. Nothing is checked until you finish.

Heading

or

Body

or

\ No newline at end of file diff --git a/.agent/skills/impeccable/scripts/pin.mjs b/.agent/skills/impeccable/scripts/pin.mjs index d80043df7..37c57c330 100644 --- a/.agent/skills/impeccable/scripts/pin.mjs +++ b/.agent/skills/impeccable/scripts/pin.mjs @@ -31,7 +31,7 @@ const CODEX_HARNESSES = new Set(['.codex', '.agents']); // Valid sub-command names const VALID_COMMANDS = [ 'craft', 'init', 'extract', 'document', 'shape', - 'critique', 'audit', + 'critique', 'design-context', 'audit', 'polish', 'bolder', 'quieter', 'distill', 'harden', 'onboard', 'live', 'animate', 'colorize', 'typeset', 'layout', 'delight', 'overdrive', 'clarify', 'adapt', 'optimize', diff --git a/.agent/skills/impeccable/scripts/serve-question.mjs b/.agent/skills/impeccable/scripts/serve-question.mjs index 7c4ff0812..46a0b3b01 100644 --- a/.agent/skills/impeccable/scripts/serve-question.mjs +++ b/.agent/skills/impeccable/scripts/serve-question.mjs @@ -375,7 +375,7 @@ if (hasFlag('start')) { const state = JSON.parse(fs.readFileSync(stateFile(key), 'utf8')); console.log(`QUESTION URL: ${state.url}`); console.log(`QUESTION KEY: ${key}`); - console.log('Open the URL for the user now: in-app browser when the harness has one, otherwise the system opener (macOS `open`, Linux `xdg-open`), otherwise show the URL.'); + console.log('Open the URL for the user now: on Cursor with browser_navigate (the in-IDE browser), on another harness with its in-app browser tool, otherwise the system opener (macOS `open`, Linux `xdg-open`), otherwise show the URL.'); console.log(`Then collect the answer with: node ${fileURLToPath(import.meta.url)} --wait --key ${key}`); process.exit(0); } diff --git a/.agent/skills/impeccable/scripts/visual-cues.mjs b/.agent/skills/impeccable/scripts/visual-cues.mjs new file mode 100644 index 000000000..db00fbe9a --- /dev/null +++ b/.agent/skills/impeccable/scripts/visual-cues.mjs @@ -0,0 +1,317 @@ +#!/usr/bin/env node +// visual-cues.mjs — compile step for document seed visual cues. +// Pipeline doc: skill/reference/visual-cues.md (canonical; this help text is not). +// +// Each cue is one full-bleed hero scene staging a planned four-color palette. +// +// node visual-cues.mjs compile --slug +// [--palette "primary=#RRGGBB;secondary=...;tertiary=...;neutral=..."] +// [--out ] (default: .impeccable/visual-cues) +// Copies the hero untouched to .png (removing the source when it +// is an intermediate inside , so the folder holds one file per +// cue, not a byte-identical pair), finds each planned palette hex's +// closest pixel in the hero, and updates /cues.json. +// The hero must be square: generation happens on a square canvas +// (a size/aspect parameter, not just a prompt line), and a non-square +// input is a generation to redo, not an image to fix up here. +// +// Dependency-free: PNG decode on node:zlib. Rejects interlaced and +// indexed-color PNGs; convert those with sips/ImageMagick/PIL first. + +import { readFileSync, writeFileSync, mkdirSync, copyFileSync, existsSync, realpathSync, unlinkSync } from 'node:fs'; +import { dirname, join, resolve } from 'node:path'; +import { pathToFileURL } from 'node:url'; +import zlib from 'node:zlib'; + +// ---------------------------------------------------------------- PNG codec + +const PNG_SIG = Buffer.from([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]); + +// PNG filter type 4 (Paeth): predicts a byte from its left (a), above (b), +// and above-left (c) neighbors, picking whichever of a, b, or a+b-c lands +// closest to the actual gradient. Used by decodePng's unfilter step. +function paeth(a, b, c) { + const p = a + b - c; + const pa = Math.abs(p - a); + const pb = Math.abs(p - b); + const pc = Math.abs(p - c); + if (pa <= pb && pa <= pc) return a; + if (pb <= pc) return b; + return c; +} + +export function decodePng(buf) { + if (!buf.subarray(0, 8).equals(PNG_SIG)) throw new Error('not a PNG file'); + // Walk the chunk stream: each chunk is [4-byte length][4-byte type][data][4-byte crc]. + // IHDR carries the header fields; IDAT is the (possibly multi-chunk) + // compressed pixel data, concatenated below before inflating; other + // chunk types (tEXt, iCCP, etc.) are skipped since nothing here needs them. + let pos = 8; + let ihdr = null; + const idat = []; + while (pos + 8 <= buf.length) { + const len = buf.readUInt32BE(pos); + const type = buf.toString('ascii', pos + 4, pos + 8); + const data = buf.subarray(pos + 8, pos + 8 + len); + if (type === 'IHDR') { + ihdr = { + width: data.readUInt32BE(0), + height: data.readUInt32BE(4), + bitDepth: data[8], + colorType: data[9], + interlace: data[12], + }; + } else if (type === 'IDAT') { + idat.push(data); + } else if (type === 'IEND') { + break; + } + pos += 12 + len; // length + type + data + crc + } + if (!ihdr) throw new Error('PNG has no IHDR chunk'); + const { width, height, bitDepth, colorType, interlace } = ihdr; + if (interlace) throw new Error('interlaced PNG not supported; re-save without interlacing (sips, ImageMagick, or PIL)'); + if (colorType === 3) throw new Error('indexed-color PNG not supported; convert to RGB/RGBA first (sips, ImageMagick, or PIL)'); + if (bitDepth !== 8 && bitDepth !== 16) throw new Error(`unsupported bit depth ${bitDepth}; convert to 8-bit first`); + const channels = { 0: 1, 2: 3, 4: 2, 6: 4 }[colorType]; + if (!channels) throw new Error(`unsupported color type ${colorType}`); + + const sampleBytes = bitDepth / 8; + const bpp = channels * sampleBytes; // bytes per pixel + const stride = width * bpp; // bytes per scanline, excluding the filter-type byte + const raw = zlib.inflateSync(Buffer.concat(idat)); + + // Each scanline in the inflated stream is prefixed with a 1-byte filter + // type (0-4) that says how it was delta-encoded against the row above + // and/or the pixel to the left; undo that in place, row by row, since + // filter 2-4 need the already-unfiltered previous row to reconstruct. + const px = Buffer.alloc(height * stride); + let rp = 0; + for (let y = 0; y < height; y++) { + const filter = raw[rp++]; + const row = px.subarray(y * stride, (y + 1) * stride); + raw.copy(row, 0, rp, rp + stride); + rp += stride; + const prev = y > 0 ? px.subarray((y - 1) * stride, y * stride) : null; + if (filter === 0) continue; // None: bytes are already the real pixel values + if (filter === 1) { + // Sub: each byte was stored as (value - left). + for (let i = bpp; i < stride; i++) row[i] = (row[i] + row[i - bpp]) & 0xff; + } else if (filter === 2) { + // Up: each byte was stored as (value - above). + if (prev) for (let i = 0; i < stride; i++) row[i] = (row[i] + prev[i]) & 0xff; + } else if (filter === 3) { + // Average: each byte was stored as (value - floor((left + above) / 2)). + for (let i = 0; i < stride; i++) { + const left = i >= bpp ? row[i - bpp] : 0; + const up = prev ? prev[i] : 0; + row[i] = (row[i] + ((left + up) >> 1)) & 0xff; + } + } else if (filter === 4) { + // Paeth: each byte was stored as (value - paeth(left, above, above-left)). + for (let i = 0; i < stride; i++) { + const a = i >= bpp ? row[i - bpp] : 0; + const b = prev ? prev[i] : 0; + const c = prev && i >= bpp ? prev[i - bpp] : 0; + row[i] = (row[i] + paeth(a, b, c)) & 0xff; + } + } else { + throw new Error(`unknown PNG filter ${filter} at row ${y}`); + } + } + + // Normalize every supported color type (grayscale, RGB, grayscale+alpha, + // RGBA) down to one consistent RGBA8 buffer, so everything past this + // point (palette search) only ever deals with one shape. 16-bit samples + // keep only the high byte; visual cues never need more than 8 bits of + // precision per channel. + const rgba = Buffer.alloc(width * height * 4); + const at = (base, ch) => px[base + ch * sampleBytes]; + for (let i = 0; i < width * height; i++) { + const base = i * bpp; + let r, g, b, a; + if (colorType === 0) { + r = g = b = at(base, 0); + a = 255; + } else if (colorType === 2) { + r = at(base, 0); g = at(base, 1); b = at(base, 2); + a = 255; + } else if (colorType === 4) { + r = g = b = at(base, 0); + a = at(base, 1); + } else { + r = at(base, 0); g = at(base, 1); b = at(base, 2); a = at(base, 3); + } + const o = i * 4; + rgba[o] = r; rgba[o + 1] = g; rgba[o + 2] = b; rgba[o + 3] = a; + } + return { width, height, rgba, hasAlpha: colorType === 4 || colorType === 6 }; +} + +// The pipeline ships squares, and squaring after the fact always loses +// something (cropping eats scene, padding invents background), so square +// is required at the source: the generation call must pin a 1:1 canvas. +// A non-square input here means that call must be redone. +function requireSquare(img, label) { + if (img.width !== img.height) { + throw new Error(`${label} is ${img.width}x${img.height}, not square; regenerate it with the tool's square (1:1) size/aspect parameter, a prompt line alone does not pin the canvas`); + } +} + +// ----------------------------------------------------------------- palette + +// role=#RRGGBB per entry; a legacy trailing @x,y is accepted and ignored +// (the search below beats model-reported coordinates every time). +const PALETTE_ENTRY = /^([a-z][a-z-]*)=(#[0-9a-fA-F]{6})(?:@\d+,\d+)?$/; + +function parsePalette(str) { + const out = {}; + for (const part of str.split(';')) { + const m = part.trim().match(PALETTE_ENTRY); + if (!m) throw new Error(`bad palette entry "${part.trim()}" (expected role=#RRGGBB)`); + out[m[1]] = { hex: m[2].toUpperCase() }; + } + return out; +} + +// The parent designed the palette, so the planned hex is known; what needs +// measuring is where and how faithfully the hero staged it. Search the whole +// hero for the pixel closest to each planned hex. hex stays the planned +// value; snapped is the closest rendered pixel; at is its hero position. +function snapPalette(img, palette) { + const out = {}; + // Sample on a grid instead of every pixel: ~150 samples per axis is dense + // enough to find a representative patch of any staged color, and scanning + // a 1500x1500 hero at full resolution for every role adds up otherwise. + const step = Math.max(1, Math.floor(Math.min(img.width, img.height) / 150)); + for (const [role, entry] of Object.entries(palette)) { + const pr = parseInt(entry.hex.slice(1, 3), 16); + const pg = parseInt(entry.hex.slice(3, 5), 16); + const pb = parseInt(entry.hex.slice(5, 7), 16); + let best = Infinity; + let bx = 0; + let by = 0; + // Squared Euclidean distance in RGB space; skipping the sqrt is fine + // since only the relative ordering of distances matters here. + for (let y = 0; y < img.height; y += step) { + for (let x = 0; x < img.width; x += step) { + const o = (y * img.width + x) * 4; + const dr = img.rgba[o] - pr; + const dg = img.rgba[o + 1] - pg; + const db = img.rgba[o + 2] - pb; + const d = dr * dr + dg * dg + db * db; + if (d < best) { best = d; bx = x; by = y; } + } + } + const o = (by * img.width + bx) * 4; + const snapped = `#${[img.rgba[o], img.rgba[o + 1], img.rgba[o + 2]] + .map((v) => v.toString(16).padStart(2, '0')) + .join('') + .toUpperCase()}`; + out[role] = { hex: entry.hex, snapped, at: [bx, by] }; + } + return out; +} + +// ---------------------------------------------------------------- cues.json + +// Reads the existing cues.json (if any) and merges this cue in, so compiling +// the six concepts one after another accumulates into one shared manifest +// instead of each compile overwriting the last. +function updateCuesJson(outDir, slug, palette) { + const path = join(outDir, 'cues.json'); + let data = {}; + if (existsSync(path)) data = JSON.parse(readFileSync(path, 'utf8')); + data.cues = data.cues || []; + if (!data.cues.includes(slug)) data.cues.push(slug); + if (palette) { + data.palette = data.palette || {}; + data.palette[slug] = palette; + } + writeFileSync(path, JSON.stringify(data, null, 2) + '\n'); + return data; +} + +// -------------------------------------------------------------------- CLI + +// Minimal flag parser: positional args collect into `_`, everything after +// a `--name` becomes args.name. Good enough for this script's small, +// fixed set of options; no need for a dependency here. +function parseArgs(argv) { + const args = { _: [] }; + for (let i = 0; i < argv.length; i++) { + if (argv[i].startsWith('--')) { + args[argv[i].slice(2)] = argv[i + 1]; + i++; + } else { + args._.push(argv[i]); + } + } + return args; +} + +// Errors surface as JSON on stderr (matching the success shape on stdout) +// so the calling agent can parse either outcome the same way. +function fail(msg) { + console.error(JSON.stringify({ ok: false, error: msg })); + process.exit(1); +} + +function cmdCompile(args) { + const [heroFile] = args._; + const slug = args.slug; + if (!heroFile || !slug) { + fail('usage: visual-cues.mjs compile --slug [--palette "..."] [--out ]'); + } + if (!/^[a-z0-9]+(-[a-z0-9]+)+$/.test(slug)) fail(`slug "${slug}" must be lowercase words joined by hyphens (e.g. amber-dusk)`); + const outDir = resolve(args.out || '.impeccable/visual-cues'); + const hero = decodePng(readFileSync(resolve(heroFile))); + requireSquare(hero, 'hero'); + + mkdirSync(outDir, { recursive: true }); + const heroPath = join(outDir, `${slug}.png`); + const srcPath = resolve(heroFile); + copyFileSync(srcPath, heroPath); // the hero ships untouched, no crop + // Subagents drop `-hero.png` intermediates into the out dir; once + // the canonical `.png` exists, that intermediate is a byte-identical + // duplicate that doubles the folder, so remove it. A source outside the + // out dir (a native tool's own output folder) is not ours to delete. + if (srcPath !== heroPath && dirname(srcPath) === outDir) unlinkSync(srcPath); + + // --palette is optional: the agent may compile before it has finished + // designing the palette, and can re-run compile later once it has hexes. + let palette = null; + if (args.palette) palette = snapPalette(hero, parsePalette(args.palette)); + + updateCuesJson(outDir, slug, palette); + + console.log(JSON.stringify({ + ok: true, + slug, + hero: heroPath, + palette, + cuesJson: join(outDir, 'cues.json'), + }, null, 2)); +} + +function main() { + const [cmd, ...rest] = process.argv.slice(2); + const args = parseArgs(rest); + try { + if (cmd === 'compile') cmdCompile(args); + else fail('usage: visual-cues.mjs compile --slug [options] (see reference/visual-cues.md)'); + } catch (err) { + fail(err.message); + } +} + +// Only auto-run when invoked directly (`node visual-cues.mjs ...`), not +// when another module imports its exports (decodePng, etc.), e.g. from a +// test file. import.meta.url is Node's realpath of the entry file, so +// argv[1] must be realpath'd too, not just path.resolve'd: a skill +// installed via symlink (the standard `skills link`/install path) makes +// argv[1] the symlink path, which never equality-matches the resolved +// realpath, so main() silently never ran. +if (process.argv[1] && import.meta.url === pathToFileURL(realpathSync(resolve(process.argv[1]))).href) { + main(); +} diff --git a/.agents/skills/impeccable/SKILL.md b/.agents/skills/impeccable/SKILL.md index ea13a0d42..fe01bf7b4 100644 --- a/.agents/skills/impeccable/SKILL.md +++ b/.agents/skills/impeccable/SKILL.md @@ -43,6 +43,7 @@ Choose the mode from the requested surface, not the product, and persist it only | `init` | Build | Capture durable product context in PRODUCT.md | [reference/init.md](reference/init.md) | | `document` | Build | Generate DESIGN.md from existing project code | [reference/document.md](reference/document.md) | | `extract [target]` | Build | Pull reusable tokens and components into design system | [reference/extract.md](reference/extract.md) | +| `design-context [open/edit/export/import]` | Build | Reopen, revise, export, or import the design interview and its document | [reference/design-context.md](reference/design-context.md) | | `critique [target]` | Evaluate | UX design review with heuristic scoring | [reference/critique.md](reference/critique.md) | | `audit [target]` | Evaluate | Technical quality checks (a11y, perf, responsive) | [reference/audit.md](reference/audit.md) · native: [reference/audit.native.md](reference/audit.native.md) | | `polish [target]` | Refine | Final quality pass before shipping | [reference/polish.md](reference/polish.md) | diff --git a/.agents/skills/impeccable/agents/impeccable_finish_reviewer.toml b/.agents/skills/impeccable/agents/impeccable_finish_reviewer.toml index 6b57ec84b..1213d5137 100644 --- a/.agents/skills/impeccable/agents/impeccable_finish_reviewer.toml +++ b/.agents/skills/impeccable/agents/impeccable_finish_reviewer.toml @@ -13,16 +13,16 @@ A hard turn ceiling ends the run without warning; a run that ends before its con ## Input Contract -Expect: the original request; the confirmed user answers; the artifact path(s); the screenshots the parent captured, in `.impeccable/review/` (web: `desktop.png` and `mobile.png`; native: device-class names such as `phone.png` and `tablet.png`, suffixed per OS on adaptive). A screenshot path the calling brief names is authoritative when the file exists; `.impeccable/review/` is where to look when the brief names none or a named path is missing, never a filename you invent. Also expect: the direction contract (THESIS, OWN-WORLD, STORY, FIRST VIEWPORT, FORM); the PRODUCT.md path; existing hook or detector findings; the chosen world's QUALITY BAR card paths; on a comp-led build the approved comp path (a code-led build has none; it passes the chosen decision comp as a separate critique-reference input, labeled as such, and nothing here that binds "the approved comp" binds it); on a comp-led build the build state (`.impeccable/build/state.json`), the measured spec (`.impeccable/build/spec.json`), and the diff directories `.impeccable/review/diff/hero/` and `.impeccable/review/diff/final/` (each holds `side-by-side.png`, `heatmap.png`, `regions/.png` paired crops, and `report.json` with per-region scores and verdicts from `comp-diff.mjs`); and the skill's `reference/craft-floor.md` path. On a native (`ios` / `android` / `adaptive`) build the packet adds the platform reference path(s) (`reference/ios.md` / `reference/android.md`) and a line saying no detector ran: read the platform reference alongside the craft floor, judge every check in the platform's own conventions, treat the screenshots as device captures, and know your floor check is the build's only slop gate. When the harness can view images, open the screenshots, the comp, and the card first, and inventory the comp's salient elements in your own words before reading the direction contract or any builder-authored summary: a review anchored on the contract inherits whatever the builder's abstraction dropped. +Expect: the original request; the confirmed user answers; the artifact path(s); the screenshots the parent captured, in `.impeccable/review/` (web: `desktop.png` and `mobile.png`; native: device-class names such as `phone.png` and `tablet.png`, suffixed per OS on adaptive). A screenshot path the calling brief names is authoritative when the file exists; `.impeccable/review/` is where to look when the brief names none or a named path is missing, never a filename you invent. Also expect: the direction contract (THESIS, OWN-WORLD, STORY, FIRST VIEWPORT, FORM); the PRODUCT.md path; existing hook or detector findings; the chosen world's QUALITY BAR card paths; on a comp-led build the approved comp path (a code-led build has none; it passes the chosen decision comp as a separate critique-reference input, labeled as such, and nothing here that binds "the approved comp" binds it); and the skill's `reference/craft-floor.md` path. On a native (`ios` / `android` / `adaptive`) build the packet adds the platform reference path(s) (`reference/ios.md` / `reference/android.md`) and a line saying no detector ran: read the platform reference alongside the craft floor, judge every check in the platform's own conventions, treat the screenshots as device captures, and know your floor check is the build's only slop gate. When the harness can view images, open the screenshots, the comp, and the card first, and inventory the comp's salient elements in your own words before reading the direction contract or any builder-authored summary: a review anchored on the contract inherits whatever the builder's abstraction dropped. ## Checks, in order 0. **Evidence.** Before any other check, verify the required captures exist and every capture is valid. Required: the platform's full viewport set (web: `desktop.png` and `mobile.png`; native: one capture per shipped device class), plus every capture the calling brief names as required, a reported user viewport (`user-.png`) included. Valid: no black or blank regions, content matching what the filename claims (a visit capture showing the About section is invalid), the document top visible where the file claims a full page, dimensions that make sense for the named viewport. A required capture that is absent fails exactly like one that is malformed: a viewport nobody captured is a viewport nobody inspected, and it cannot ship. When any capture fails, the whole review changes shape: return `disposition: recapture` as the first line, then one section, `recapture`, listing each missing or invalid file and what a valid capture of it shows, and stop. Never build a matrix on malformed evidence; a verdict derived from a broken capture launders the breakage into an approval, and the parent owes you a full re-review on valid captures, not a scoring round. -1. **Persistence.** PRODUCT.md exists. On a comp-led build, `.impeccable/build/state.json` exists and its `comps` (or `skipped` when a surface round locked the comp), `spec`, `plates`, and `hero` phases are `closed`; a comp-led config with no state file, or a state whose `comps` phase never closed, means the comp round was skipped and the build ran from a world description alone, a material finding that outranks craft; a phase closed with a `forced` record is disclosed as a material finding unless the user downgraded the comp in words the packet quotes; a state file whose `hero.gate.score` sits under 0.72, or a missing state file, means the reproduction ran unproven, a material finding, and `.impeccable/review/hero-repro.png` must exist either way. When DESIGN.md predates this build (an extension or redesign), it matches the built world; on a new world it is written after this review by the documenter, so its absence here is not a finding. When comp-round comps exist under `.impeccable/mocks/`, an approval record exists too: the surface brief naming the approved comp, or an `approved` flag in its sidecar. Comp-round comps with no recorded pick mean the approval point was skipped, a material finding. Files under `.impeccable/mocks/decision/` are exempt: they are the direction round's dealt hand, produced before any comp round, and imply no approval whatever the build path; a code-led build has no comp round at all. -2. **Fidelity.** Start from the measurement, then judge what it cannot: read `.impeccable/review/diff/final/report.json` (and hero) first; every region scored `missing` or `contradicted` is a matrix row in that state unless the paired crop under `regions/` shows the score is wrong, and you say why; a region scored `match` still gets your eye for lettering character and material, which the numbers do not measure. Then, against your own element inventory of the approved comp, never against the contract's summary of it: topology, reading order, focal scale, overlaps and z-order, density, signature geometry, the primary action's treatment (a CTA the comp physically works, dissolves, or stamps is a signature element; its plain-rectangle rendition is contradicted), navigation items and icons, headline levels and scale relationships. Classify every salient element: match, acceptable adaptation, missing, contradicted, or added without approval. Three rows are mandatory in every matrix. TYPE: the display lettering's character, compression, width, weight, contrast, terminals, against the comp's; a face of a different character is contradicted however the layout matches. MATERIAL: an element rendered as flat CSS or clean vector where the comp shows painted, textured, dimensional, or photographic material is contradicted regardless of placement; medium is part of the promise. GROUND: the page field's value and temperature against the comp's, sampled from pixels on both sides when tooling allows rather than judged from memory, and read as the net on-screen result where a texture or tile paints over the base color; a ground warmer or cooler than the comp's is contradicted however faithfully the layout matches, and drift toward the rendition prior (warm cream on light grounds, blue-black slate on dark) is the direction to hunt. With no approved comp, TYPE and MATERIAL do not lapse: judge them against the contract's OWN-WORLD and the world's real materials, and treat faked physicality (CSS bevels, embossing, stamped-metal or chalk effects imitating a material the page never renders) as contradicted on its face; imitation material is the single most reliable mark of machine-made design. GROUND narrows rather than lapses: with no comp to sample, a color OWN-WORLD names is the target and the same warmer-or-cooler judgment applies; when OWN-WORLD names none, there is no GROUND authority, and the review says so in place of a verdict, because a target the reviewer invents turns the check into taste. A critique-reference comp on such a build is provocation, not spec: no element matrix, no adaptation citations, no asset obligations; its one contribution is what the image dared that the build did not, and dares worth adopting enter material_fixes as ordinary ordered fixes. An adaptation counts as intentional only when it cites the user answer, surface brief, accessibility need, or product truth that forced it; an uncited deviation is a defect. A missing signature element, a changed topology, or content added without approval fails fidelity and outranks every craft point in material_fixes. When MATERIAL is contradicted on the focal element, or contradiction is the page rather than the exception, stop ordering repairs: make the first material fix a rebuild directive naming the comp regions to re-derive and the assets to produce; a list of patches against a rejected page launders the rejection into an approval. A fix that requires producing an asset says so explicitly ("produce: as a raster asset"), never phrased as a style adjustment the parent will answer with CSS. The comp is the spec for composition, topology, element inventory, density, lettering character, and material; it is not a pixel spec for semantics, accessibility, or responsive reflow, and that allowance covers translation, never replacement. -3. **Ceiling.** Against the QUALITY BAR card: name the world's native devices the build left unused, frame, depth, lettering treatment, ornament density, motion. The card governs commitment and finish, never composition. +1. **Persistence.** PRODUCT.md exists. On a comp-led build, `.impeccable/review/hero-repro.png` exists: the hero reproduction checkpoint's capture at the comp's own dimensions; its absence means the reproduction phase ran unproven, a material finding. When a seed or prior DESIGN.md predates this build, it matches the built world, and "matches" is evidence you grep, not an impression: custom properties DESIGN.md defines that no rule consumes, literals sitting a step from a defined token, geometry a named rule bans (a 999px pill against a Slightly Soft rule). Each hit is a material finding under the craft floor's token rule, and an approved comp excuses none of them: the comp rules composition; the world rules material. On a new world with no seed, DESIGN.md is written after this review by the documenter, so its absence here is not a finding. When comp-round comps exist under `.impeccable/mocks/`, an approval record exists too: the surface brief naming the approved comp, or an `approved` flag in its sidecar. Comp-round comps with no recorded pick mean the approval point was skipped, a material finding. Files under `.impeccable/mocks/decision/` are exempt: they are the direction round's dealt hand, produced before any comp round, and imply no approval whatever the build path; a code-led build has no comp round at all. +2. **Fidelity.** Against your own element inventory of the approved comp, never against the contract's summary of it: topology, reading order, focal scale, overlaps and z-order, density, signature geometry, the primary action's treatment (a CTA the comp physically works, dissolves, or stamps is a signature element; its plain-rectangle rendition is contradicted), navigation items and icons, headline levels and scale relationships. Classify every salient element: match, acceptable adaptation, missing, contradicted, or added without approval. Three rows are mandatory in every matrix. TYPE: the display lettering's character, compression, width, weight, contrast, terminals, against the comp's; a face of a different character is contradicted however the layout matches. MATERIAL: an element rendered as flat CSS or clean vector where the comp shows painted, textured, dimensional, or photographic material is contradicted regardless of placement; medium is part of the promise. GROUND: the page field's value and temperature against the comp's, sampled from pixels on both sides when tooling allows rather than judged from memory, and read as the net on-screen result where a texture or tile paints over the base color; a ground warmer or cooler than the comp's is contradicted however faithfully the layout matches, and drift toward the rendition prior (warm cream on light grounds, blue-black slate on dark) is the direction to hunt. With no approved comp, TYPE and MATERIAL do not lapse: judge them against the contract's OWN-WORLD and the world's real materials, and treat faked physicality (CSS bevels, embossing, stamped-metal or chalk effects imitating a material the page never renders) as contradicted on its face; imitation material is the single most reliable mark of machine-made design. GROUND narrows rather than lapses: with no comp to sample, a color OWN-WORLD names is the target and the same warmer-or-cooler judgment applies; when OWN-WORLD names none, there is no GROUND authority, and the review says so in place of a verdict, because a target the reviewer invents turns the check into taste. A critique-reference comp on such a build is provocation, not spec: no element matrix, no adaptation citations, no asset obligations; its one contribution is what the image dared that the build did not, and dares worth adopting enter material_fixes as ordinary ordered fixes. An adaptation counts as intentional only when it cites the user answer, surface brief, accessibility need, or product truth that forced it; an uncited deviation is a defect. A missing signature element, a changed topology, or content added without approval fails fidelity and outranks every craft point in material_fixes. When MATERIAL is contradicted on the focal element, or contradiction is the page rather than the exception, stop ordering repairs: make the first material fix a rebuild directive naming the comp regions to re-derive and the assets to produce; a list of patches against a rejected page launders the rejection into an approval. A fix that requires producing an asset says so explicitly ("produce: as a raster asset"), never phrased as a style adjustment the parent will answer with CSS. The comp is the spec for composition, topology, element inventory, density, lettering character, and material; it is not a pixel spec for semantics, accessibility, or responsive reflow, and that allowance covers translation, never replacement. +3. **Ceiling.** Against the QUALITY BAR card: name the world's native devices the build left unused, frame, depth, lettering treatment, ornament density, motion. A committed motion energy shows up as eased state changes in the shipped code; a recorded energy with zero transitions is a finding. The card governs commitment and finish, never composition. 4. **Contract, promise by promise.** First verify FORM carries the seed key the concept roll printed; a contract with no seed key, or one the parent cannot corroborate, means the roll was skipped, a material fix ahead of any craft point. Then, for each of the five blocks: does the render keep the promise? Apply the memory test to the first viewport. -5. **Truth.** Demonstration data authored and labeled synthetic; no invented commercial claims; unanswered claims present as marked placeholders, not omissions. Every raster region of the spec shipped as its plate (the spec names the file; the page references it; the region's diff row is not `missing`), not a gradient, an inline SVG, or a many-vertex `clip-path` standing in for it, and every produced asset visibly present in the screenshots; an asset applied at near-zero opacity or buried behind a wash is a compliance token, not a shipped material, and the detector's `buried-raster` and `organic-clip-path` findings in the packet are material fixes. +5. **Truth.** Demonstration data authored and labeled synthetic; no invented commercial claims; unanswered claims present as marked placeholders, not omissions. Every image-native region of the approved comp shipped as a real asset, not a gradient standing in for one, and every produced asset visibly present in the screenshots; an asset applied at near-zero opacity or buried behind other paint is a compliance token, not a shipped material. 6. **Floor.** Read the craft floor's Refuse list and hold the screenshots against it: kickers and eyebrows, hard offset shadows outside a neobrutalist world, glyph icons, system display faces, gradient text, side stripes, and the rest. A banned element is a material fix even when it matches nothing in the comp: the builder loaded the same ban before writing it, and fidelity to a comp cannot authorize what the floor refuses. The parent's hook findings cover this mechanically where hooks run; this check exists because hookless harnesses reach you with none, and the last two live sessions shipped five kickers past a reviewer that never looked. Do not run a second detector pass; mechanical findings belong to the parent's hooks. diff --git a/.agents/skills/impeccable/reference/audit.md b/.agents/skills/impeccable/reference/audit.md index b6a0bb358..bde0db49c 100644 --- a/.agents/skills/impeccable/reference/audit.md +++ b/.agents/skills/impeccable/reference/audit.md @@ -99,7 +99,7 @@ For each issue, document: - **Impact**: How it affects users - **WCAG/Standard**: Which standard it violates (if applicable) - **Recommendation**: How to fix it -- **Suggested command**: Which command to use (prefer: $impeccable adapt, $impeccable animate, $impeccable audit, $impeccable bolder, $impeccable clarify, $impeccable colorize, $impeccable critique, $impeccable delight, $impeccable distill, $impeccable document, $impeccable harden, $impeccable layout, $impeccable onboard, $impeccable optimize, $impeccable overdrive, $impeccable polish, $impeccable quieter, $impeccable shape, $impeccable typeset) +- **Suggested command**: Which command to use (prefer: $impeccable adapt, $impeccable animate, $impeccable audit, $impeccable bolder, $impeccable clarify, $impeccable colorize, $impeccable critique, $impeccable design-context, $impeccable delight, $impeccable distill, $impeccable document, $impeccable harden, $impeccable layout, $impeccable onboard, $impeccable optimize, $impeccable overdrive, $impeccable polish, $impeccable quieter, $impeccable shape, $impeccable typeset) ### Patterns & Systemic Issues @@ -118,7 +118,7 @@ List recommended commands in priority order (P0 first, then P1, then P2): 1. **[P?] `$command-name`**: Brief description (specific context from audit findings) 2. **[P?] `$command-name`**: Brief description (specific context) -**Rules**: Only recommend commands from: $impeccable adapt, $impeccable animate, $impeccable audit, $impeccable bolder, $impeccable clarify, $impeccable colorize, $impeccable critique, $impeccable delight, $impeccable distill, $impeccable document, $impeccable harden, $impeccable layout, $impeccable onboard, $impeccable optimize, $impeccable overdrive, $impeccable polish, $impeccable quieter, $impeccable shape, $impeccable typeset. Map findings to the most appropriate command. End with `$impeccable polish` as the final step if any fixes were recommended. +**Rules**: Only recommend commands from: $impeccable adapt, $impeccable animate, $impeccable audit, $impeccable bolder, $impeccable clarify, $impeccable colorize, $impeccable critique, $impeccable design-context, $impeccable delight, $impeccable distill, $impeccable document, $impeccable harden, $impeccable layout, $impeccable onboard, $impeccable optimize, $impeccable overdrive, $impeccable polish, $impeccable quieter, $impeccable shape, $impeccable typeset. Map findings to the most appropriate command. End with `$impeccable polish` as the final step if any fixes were recommended. After presenting the summary, tell the user: diff --git a/.agents/skills/impeccable/reference/audit.native.md b/.agents/skills/impeccable/reference/audit.native.md index 21bc5586f..a5a5ea5cb 100644 --- a/.agents/skills/impeccable/reference/audit.native.md +++ b/.agents/skills/impeccable/reference/audit.native.md @@ -102,7 +102,7 @@ For each issue, document: - **Impact**: How it affects users - **Guideline**: The HIG / Material rule it violates (if applicable) - **Recommendation**: How to fix it -- **Suggested command**: Which command to use (prefer: $impeccable adapt, $impeccable animate, $impeccable audit, $impeccable bolder, $impeccable clarify, $impeccable colorize, $impeccable critique, $impeccable delight, $impeccable distill, $impeccable document, $impeccable harden, $impeccable layout, $impeccable onboard, $impeccable optimize, $impeccable overdrive, $impeccable polish, $impeccable quieter, $impeccable shape, $impeccable typeset) +- **Suggested command**: Which command to use (prefer: $impeccable adapt, $impeccable animate, $impeccable audit, $impeccable bolder, $impeccable clarify, $impeccable colorize, $impeccable critique, $impeccable design-context, $impeccable delight, $impeccable distill, $impeccable document, $impeccable harden, $impeccable layout, $impeccable onboard, $impeccable optimize, $impeccable overdrive, $impeccable polish, $impeccable quieter, $impeccable shape, $impeccable typeset) ### Patterns & Systemic Issues @@ -121,7 +121,7 @@ List recommended commands in priority order (P0 first, then P1, then P2): 1. **[P?] `$command-name`**: Brief description (specific context from audit findings) 2. **[P?] `$command-name`**: Brief description (specific context) -**Rules**: Only recommend commands from: $impeccable adapt, $impeccable animate, $impeccable audit, $impeccable bolder, $impeccable clarify, $impeccable colorize, $impeccable critique, $impeccable delight, $impeccable distill, $impeccable document, $impeccable harden, $impeccable layout, $impeccable onboard, $impeccable optimize, $impeccable overdrive, $impeccable polish, $impeccable quieter, $impeccable shape, $impeccable typeset. Map findings to the most appropriate command. End with `$impeccable polish` as the final step if any fixes were recommended. +**Rules**: Only recommend commands from: $impeccable adapt, $impeccable animate, $impeccable audit, $impeccable bolder, $impeccable clarify, $impeccable colorize, $impeccable critique, $impeccable design-context, $impeccable delight, $impeccable distill, $impeccable document, $impeccable harden, $impeccable layout, $impeccable onboard, $impeccable optimize, $impeccable overdrive, $impeccable polish, $impeccable quieter, $impeccable shape, $impeccable typeset. Map findings to the most appropriate command. End with `$impeccable polish` as the final step if any fixes were recommended. After presenting the summary, tell the user: diff --git a/.agents/skills/impeccable/reference/craft-floor.md b/.agents/skills/impeccable/reference/craft-floor.md index ae213ce80..4c4dd7a96 100644 --- a/.agents/skills/impeccable/reference/craft-floor.md +++ b/.agents/skills/impeccable/reference/craft-floor.md @@ -2,6 +2,8 @@ Load this after the direction is settled, and build without announcing the checklist. A pinned brief or the committed visual world overrides anything here; your own habit does not. When the design hook is active it already enforces the mechanical checks below as you edit: act on its findings instead of re-auditing each rule. +A wholesale file rewrite, after a hook block or an error recovery, starts by re-opening DESIGN.md and the token sheet, so the new file restates the recorded system rather than your memory of it; memory is where a display token becomes a hand-tuned clamp. The ranking lives in [new-work.md](new-work.md): the comp rules composition; the world rules material, and a rewrite changes neither. + ## Verify Each of these is a check on the built result, not an intention. Run them together in the batched inspection rounds, not as separate screenshot trips; the checks share one render. @@ -11,6 +13,7 @@ Each of these is a check on the built result, not an intention. Run them togethe - **Spacing:** tight groups, generous separation, more space above a heading than below it. Read the computed values. - **Type:** body measure 65–75ch, display max 6rem, tracking floor -0.04em, balanced headings, obvious scale and weight steps. Run the real copy at every breakpoint and fix what overflows. - **Motion:** one authored moment, not scattered effects and not one identical entrance on every section. Exponential ease-out from an already-visible default. Reach past transform and opacity: blur, backdrop-filter, clip-path, mask, and shadow belong to the palette when they stay smooth. +- **Tokens:** a size or color a step from a defined token takes the token: `0.82rem` beside a `0.8rem` token is the token, not a new size, and inline SVG or JS-drawn strokes take `var(--role)` or `currentColor`. Wire or remove what nothing consumes before finish; done means every defined custom property is consumed by at least one rule. - **States:** hover, disabled, loading, error, empty. Plus real content, working controls, responsive composition, keyboard focus. - **Browser surfaces:** the parts you did not draw still carry the design. Text selection, the caret, custom scrollbars, focus rings, underline offset, and the numerals in tabular data all ship with browser defaults that belong to no design system. Theme them from the palette. This is the cheapest signal that a page was built rather than assembled, and the one models skip most reliably. - **Copy:** the product's own language. Controls name their action; errors name the problem and the recovery. @@ -37,7 +40,7 @@ Surface habits: - Sparklines, progress rings, and soft-shadowed rounded rectangles standing in for content. - Monospace as a costume for "technical" rather than for code, data, or measurement. - A system display face (Impact, Arial Black, the platform sans) as the display voice of an own-world page. Source and self-host a face whose character matches the approved lettering; the closest installed font is a failure, not a fallback. -- Unicode glyphs or emoji standing in for an icon system. Icons are drawn, from a real library or authored SVG, in one consistent stroke and weight. +- Unicode glyphs or emoji standing in for an icon system. Icons are drawn, from a real library or authored SVG, in one consistent stroke and weight. When a pack icon fails to fetch, take the nearest icon from the same pack, jsDelivr as the fallback CDN; drawing a replacement from scratch is an exception the user signs off on, so the one-pack promise survives a failed fetch. - Geometric masks standing in for organic contours. A circle, polygon, or radial-gradient cutout approximating a photographic subject's edge is the cheap version of the effect and reads worse than omitting it. Derive an alpha matte from the actual image, or produce a cut-out asset. - Light or dark picked by category. Pick it from the use scene: who, where, under what ambient light. diff --git a/.agents/skills/impeccable/reference/critique.md b/.agents/skills/impeccable/reference/critique.md index cdf30e095..d0a93d9cf 100644 --- a/.agents/skills/impeccable/reference/critique.md +++ b/.agents/skills/impeccable/reference/critique.md @@ -157,7 +157,7 @@ For each issue, tag with **P0-P3 severity** (see [Issue Severity below](#issue-s - **[P?] What**: Name the problem clearly - **Why it matters**: How this hurts users or undermines goals - **Fix**: What to do about it (be concrete) -- **Suggested command**: Which command could address this (from: $impeccable adapt, $impeccable animate, $impeccable audit, $impeccable bolder, $impeccable clarify, $impeccable colorize, $impeccable critique, $impeccable delight, $impeccable distill, $impeccable document, $impeccable harden, $impeccable layout, $impeccable onboard, $impeccable optimize, $impeccable overdrive, $impeccable polish, $impeccable quieter, $impeccable shape, $impeccable typeset) +- **Suggested command**: Which command could address this (from: $impeccable adapt, $impeccable animate, $impeccable audit, $impeccable bolder, $impeccable clarify, $impeccable colorize, $impeccable critique, $impeccable design-context, $impeccable delight, $impeccable distill, $impeccable document, $impeccable harden, $impeccable layout, $impeccable onboard, $impeccable optimize, $impeccable overdrive, $impeccable polish, $impeccable quieter, $impeccable shape, $impeccable typeset) #### Persona Red Flags > *Consult the [Personas reference](#persona-based-design-testing) below.* @@ -279,7 +279,7 @@ List recommended commands in priority order, based on the user's answers: ... **Rules for recommendations**: -- Only recommend commands from: $impeccable adapt, $impeccable animate, $impeccable audit, $impeccable bolder, $impeccable clarify, $impeccable colorize, $impeccable critique, $impeccable delight, $impeccable distill, $impeccable document, $impeccable harden, $impeccable layout, $impeccable onboard, $impeccable optimize, $impeccable overdrive, $impeccable polish, $impeccable quieter, $impeccable shape, $impeccable typeset +- Only recommend commands from: $impeccable adapt, $impeccable animate, $impeccable audit, $impeccable bolder, $impeccable clarify, $impeccable colorize, $impeccable critique, $impeccable design-context, $impeccable delight, $impeccable distill, $impeccable document, $impeccable harden, $impeccable layout, $impeccable onboard, $impeccable optimize, $impeccable overdrive, $impeccable polish, $impeccable quieter, $impeccable shape, $impeccable typeset - Order by the user's stated priorities first, then by impact - Each item's description should carry enough context that the command knows what to focus on - Map each Priority Issue to the appropriate command diff --git a/.agents/skills/impeccable/reference/degraded/finish-reviewer.md b/.agents/skills/impeccable/reference/degraded/finish-reviewer.md index c055569ae..bb1e2f1bc 100644 --- a/.agents/skills/impeccable/reference/degraded/finish-reviewer.md +++ b/.agents/skills/impeccable/reference/degraded/finish-reviewer.md @@ -11,16 +11,16 @@ A hard turn ceiling ends the run without warning; a run that ends before its con ## Input Contract -Expect: the original request; the confirmed user answers; the artifact path(s); the screenshots the parent captured, in `.impeccable/review/` (web: `desktop.png` and `mobile.png`; native: device-class names such as `phone.png` and `tablet.png`, suffixed per OS on adaptive). A screenshot path the calling brief names is authoritative when the file exists; `.impeccable/review/` is where to look when the brief names none or a named path is missing, never a filename you invent. Also expect: the direction contract (THESIS, OWN-WORLD, STORY, FIRST VIEWPORT, FORM); the PRODUCT.md path; existing hook or detector findings; the chosen world's QUALITY BAR card paths; on a comp-led build the approved comp path (a code-led build has none; it passes the chosen decision comp as a separate critique-reference input, labeled as such, and nothing here that binds "the approved comp" binds it); on a comp-led build the build state (`.impeccable/build/state.json`), the measured spec (`.impeccable/build/spec.json`), and the diff directories `.impeccable/review/diff/hero/` and `.impeccable/review/diff/final/` (each holds `side-by-side.png`, `heatmap.png`, `regions/.png` paired crops, and `report.json` with per-region scores and verdicts from `comp-diff.mjs`); and the skill's `reference/craft-floor.md` path. On a native (`ios` / `android` / `adaptive`) build the packet adds the platform reference path(s) (`reference/ios.md` / `reference/android.md`) and a line saying no detector ran: read the platform reference alongside the craft floor, judge every check in the platform's own conventions, treat the screenshots as device captures, and know your floor check is the build's only slop gate. When the harness can view images, open the screenshots, the comp, and the card first, and inventory the comp's salient elements in your own words before reading the direction contract or any builder-authored summary: a review anchored on the contract inherits whatever the builder's abstraction dropped. +Expect: the original request; the confirmed user answers; the artifact path(s); the screenshots the parent captured, in `.impeccable/review/` (web: `desktop.png` and `mobile.png`; native: device-class names such as `phone.png` and `tablet.png`, suffixed per OS on adaptive). A screenshot path the calling brief names is authoritative when the file exists; `.impeccable/review/` is where to look when the brief names none or a named path is missing, never a filename you invent. Also expect: the direction contract (THESIS, OWN-WORLD, STORY, FIRST VIEWPORT, FORM); the PRODUCT.md path; existing hook or detector findings; the chosen world's QUALITY BAR card paths; on a comp-led build the approved comp path (a code-led build has none; it passes the chosen decision comp as a separate critique-reference input, labeled as such, and nothing here that binds "the approved comp" binds it); and the skill's `reference/craft-floor.md` path. On a native (`ios` / `android` / `adaptive`) build the packet adds the platform reference path(s) (`reference/ios.md` / `reference/android.md`) and a line saying no detector ran: read the platform reference alongside the craft floor, judge every check in the platform's own conventions, treat the screenshots as device captures, and know your floor check is the build's only slop gate. When the harness can view images, open the screenshots, the comp, and the card first, and inventory the comp's salient elements in your own words before reading the direction contract or any builder-authored summary: a review anchored on the contract inherits whatever the builder's abstraction dropped. ## Checks, in order 0. **Evidence.** Before any other check, verify the required captures exist and every capture is valid. Required: the platform's full viewport set (web: `desktop.png` and `mobile.png`; native: one capture per shipped device class), plus every capture the calling brief names as required, a reported user viewport (`user-.png`) included. Valid: no black or blank regions, content matching what the filename claims (a visit capture showing the About section is invalid), the document top visible where the file claims a full page, dimensions that make sense for the named viewport. A required capture that is absent fails exactly like one that is malformed: a viewport nobody captured is a viewport nobody inspected, and it cannot ship. When any capture fails, the whole review changes shape: return `disposition: recapture` as the first line, then one section, `recapture`, listing each missing or invalid file and what a valid capture of it shows, and stop. Never build a matrix on malformed evidence; a verdict derived from a broken capture launders the breakage into an approval, and the parent owes you a full re-review on valid captures, not a scoring round. -1. **Persistence.** PRODUCT.md exists. On a comp-led build, `.impeccable/build/state.json` exists and its `comps` (or `skipped` when a surface round locked the comp), `spec`, `plates`, and `hero` phases are `closed`; a comp-led config with no state file, or a state whose `comps` phase never closed, means the comp round was skipped and the build ran from a world description alone, a material finding that outranks craft; a phase closed with a `forced` record is disclosed as a material finding unless the user downgraded the comp in words the packet quotes; a state file whose `hero.gate.score` sits under 0.72, or a missing state file, means the reproduction ran unproven, a material finding, and `.impeccable/review/hero-repro.png` must exist either way. When DESIGN.md predates this build (an extension or redesign), it matches the built world; on a new world it is written after this review by the documenter, so its absence here is not a finding. When comp-round comps exist under `.impeccable/mocks/`, an approval record exists too: the surface brief naming the approved comp, or an `approved` flag in its sidecar. Comp-round comps with no recorded pick mean the approval point was skipped, a material finding. Files under `.impeccable/mocks/decision/` are exempt: they are the direction round's dealt hand, produced before any comp round, and imply no approval whatever the build path; a code-led build has no comp round at all. -2. **Fidelity.** Start from the measurement, then judge what it cannot: read `.impeccable/review/diff/final/report.json` (and hero) first; every region scored `missing` or `contradicted` is a matrix row in that state unless the paired crop under `regions/` shows the score is wrong, and you say why; a region scored `match` still gets your eye for lettering character and material, which the numbers do not measure. Then, against your own element inventory of the approved comp, never against the contract's summary of it: topology, reading order, focal scale, overlaps and z-order, density, signature geometry, the primary action's treatment (a CTA the comp physically works, dissolves, or stamps is a signature element; its plain-rectangle rendition is contradicted), navigation items and icons, headline levels and scale relationships. Classify every salient element: match, acceptable adaptation, missing, contradicted, or added without approval. Three rows are mandatory in every matrix. TYPE: the display lettering's character, compression, width, weight, contrast, terminals, against the comp's; a face of a different character is contradicted however the layout matches. MATERIAL: an element rendered as flat CSS or clean vector where the comp shows painted, textured, dimensional, or photographic material is contradicted regardless of placement; medium is part of the promise. GROUND: the page field's value and temperature against the comp's, sampled from pixels on both sides when tooling allows rather than judged from memory, and read as the net on-screen result where a texture or tile paints over the base color; a ground warmer or cooler than the comp's is contradicted however faithfully the layout matches, and drift toward the rendition prior (warm cream on light grounds, blue-black slate on dark) is the direction to hunt. With no approved comp, TYPE and MATERIAL do not lapse: judge them against the contract's OWN-WORLD and the world's real materials, and treat faked physicality (CSS bevels, embossing, stamped-metal or chalk effects imitating a material the page never renders) as contradicted on its face; imitation material is the single most reliable mark of machine-made design. GROUND narrows rather than lapses: with no comp to sample, a color OWN-WORLD names is the target and the same warmer-or-cooler judgment applies; when OWN-WORLD names none, there is no GROUND authority, and the review says so in place of a verdict, because a target the reviewer invents turns the check into taste. A critique-reference comp on such a build is provocation, not spec: no element matrix, no adaptation citations, no asset obligations; its one contribution is what the image dared that the build did not, and dares worth adopting enter material_fixes as ordinary ordered fixes. An adaptation counts as intentional only when it cites the user answer, surface brief, accessibility need, or product truth that forced it; an uncited deviation is a defect. A missing signature element, a changed topology, or content added without approval fails fidelity and outranks every craft point in material_fixes. When MATERIAL is contradicted on the focal element, or contradiction is the page rather than the exception, stop ordering repairs: make the first material fix a rebuild directive naming the comp regions to re-derive and the assets to produce; a list of patches against a rejected page launders the rejection into an approval. A fix that requires producing an asset says so explicitly ("produce: as a raster asset"), never phrased as a style adjustment the parent will answer with CSS. The comp is the spec for composition, topology, element inventory, density, lettering character, and material; it is not a pixel spec for semantics, accessibility, or responsive reflow, and that allowance covers translation, never replacement. -3. **Ceiling.** Against the QUALITY BAR card: name the world's native devices the build left unused, frame, depth, lettering treatment, ornament density, motion. The card governs commitment and finish, never composition. +1. **Persistence.** PRODUCT.md exists. On a comp-led build, `.impeccable/review/hero-repro.png` exists: the hero reproduction checkpoint's capture at the comp's own dimensions; its absence means the reproduction phase ran unproven, a material finding. When a seed or prior DESIGN.md predates this build, it matches the built world, and "matches" is evidence you grep, not an impression: custom properties DESIGN.md defines that no rule consumes, literals sitting a step from a defined token, geometry a named rule bans (a 999px pill against a Slightly Soft rule). Each hit is a material finding under the craft floor's token rule, and an approved comp excuses none of them: the comp rules composition; the world rules material. On a new world with no seed, DESIGN.md is written after this review by the documenter, so its absence here is not a finding. When comp-round comps exist under `.impeccable/mocks/`, an approval record exists too: the surface brief naming the approved comp, or an `approved` flag in its sidecar. Comp-round comps with no recorded pick mean the approval point was skipped, a material finding. Files under `.impeccable/mocks/decision/` are exempt: they are the direction round's dealt hand, produced before any comp round, and imply no approval whatever the build path; a code-led build has no comp round at all. +2. **Fidelity.** Against your own element inventory of the approved comp, never against the contract's summary of it: topology, reading order, focal scale, overlaps and z-order, density, signature geometry, the primary action's treatment (a CTA the comp physically works, dissolves, or stamps is a signature element; its plain-rectangle rendition is contradicted), navigation items and icons, headline levels and scale relationships. Classify every salient element: match, acceptable adaptation, missing, contradicted, or added without approval. Three rows are mandatory in every matrix. TYPE: the display lettering's character, compression, width, weight, contrast, terminals, against the comp's; a face of a different character is contradicted however the layout matches. MATERIAL: an element rendered as flat CSS or clean vector where the comp shows painted, textured, dimensional, or photographic material is contradicted regardless of placement; medium is part of the promise. GROUND: the page field's value and temperature against the comp's, sampled from pixels on both sides when tooling allows rather than judged from memory, and read as the net on-screen result where a texture or tile paints over the base color; a ground warmer or cooler than the comp's is contradicted however faithfully the layout matches, and drift toward the rendition prior (warm cream on light grounds, blue-black slate on dark) is the direction to hunt. With no approved comp, TYPE and MATERIAL do not lapse: judge them against the contract's OWN-WORLD and the world's real materials, and treat faked physicality (CSS bevels, embossing, stamped-metal or chalk effects imitating a material the page never renders) as contradicted on its face; imitation material is the single most reliable mark of machine-made design. GROUND narrows rather than lapses: with no comp to sample, a color OWN-WORLD names is the target and the same warmer-or-cooler judgment applies; when OWN-WORLD names none, there is no GROUND authority, and the review says so in place of a verdict, because a target the reviewer invents turns the check into taste. A critique-reference comp on such a build is provocation, not spec: no element matrix, no adaptation citations, no asset obligations; its one contribution is what the image dared that the build did not, and dares worth adopting enter material_fixes as ordinary ordered fixes. An adaptation counts as intentional only when it cites the user answer, surface brief, accessibility need, or product truth that forced it; an uncited deviation is a defect. A missing signature element, a changed topology, or content added without approval fails fidelity and outranks every craft point in material_fixes. When MATERIAL is contradicted on the focal element, or contradiction is the page rather than the exception, stop ordering repairs: make the first material fix a rebuild directive naming the comp regions to re-derive and the assets to produce; a list of patches against a rejected page launders the rejection into an approval. A fix that requires producing an asset says so explicitly ("produce: as a raster asset"), never phrased as a style adjustment the parent will answer with CSS. The comp is the spec for composition, topology, element inventory, density, lettering character, and material; it is not a pixel spec for semantics, accessibility, or responsive reflow, and that allowance covers translation, never replacement. +3. **Ceiling.** Against the QUALITY BAR card: name the world's native devices the build left unused, frame, depth, lettering treatment, ornament density, motion. A committed motion energy shows up as eased state changes in the shipped code; a recorded energy with zero transitions is a finding. The card governs commitment and finish, never composition. 4. **Contract, promise by promise.** First verify FORM carries the seed key the concept roll printed; a contract with no seed key, or one the parent cannot corroborate, means the roll was skipped, a material fix ahead of any craft point. Then, for each of the five blocks: does the render keep the promise? Apply the memory test to the first viewport. -5. **Truth.** Demonstration data authored and labeled synthetic; no invented commercial claims; unanswered claims present as marked placeholders, not omissions. Every raster region of the spec shipped as its plate (the spec names the file; the page references it; the region's diff row is not `missing`), not a gradient, an inline SVG, or a many-vertex `clip-path` standing in for it, and every produced asset visibly present in the screenshots; an asset applied at near-zero opacity or buried behind a wash is a compliance token, not a shipped material, and the detector's `buried-raster` and `organic-clip-path` findings in the packet are material fixes. +5. **Truth.** Demonstration data authored and labeled synthetic; no invented commercial claims; unanswered claims present as marked placeholders, not omissions. Every image-native region of the approved comp shipped as a real asset, not a gradient standing in for one, and every produced asset visibly present in the screenshots; an asset applied at near-zero opacity or buried behind other paint is a compliance token, not a shipped material. 6. **Floor.** Read the craft floor's Refuse list and hold the screenshots against it: kickers and eyebrows, hard offset shadows outside a neobrutalist world, glyph icons, system display faces, gradient text, side stripes, and the rest. A banned element is a material fix even when it matches nothing in the comp: the builder loaded the same ban before writing it, and fidelity to a comp cannot authorize what the floor refuses. The parent's hook findings cover this mechanically where hooks run; this check exists because hookless harnesses reach you with none, and the last two live sessions shipped five kickers past a reviewer that never looked. Do not run a second detector pass; mechanical findings belong to the parent's hooks. diff --git a/.agents/skills/impeccable/reference/design-context.md b/.agents/skills/impeccable/reference/design-context.md new file mode 100644 index 000000000..cef8fe309 --- /dev/null +++ b/.agents/skills/impeccable/reference/design-context.md @@ -0,0 +1,93 @@ +# Design Context + +Loaded by `$impeccable design-context`. Owns the design interview record, the document built from it, and its portable form. The interview itself is created by `$impeccable document` seed mode; this command is everything afterwards. + +## Where it lives + +One store, under the project root: + +```text +.impeccable/design-context/ + context.json the chat half of the interview: product, audience, brand, interview + answers.json the questionnaire's decisions + assets/ brand files the user supplied + fonts/ font faces the user uploaded + cue.png the chosen cue image, copied at submit + runtime/ session.json, journal.jsonl, draft.json (local, gitignored) + exports/ the written-out forms (local, gitignored) +``` + +`.impeccable/visual-cues/` is separate on purpose: it is the generation workspace, regenerable and gitignored, and the document no longer depends on it. The store is the user's own record and is theirs to commit. + +## No argument + +Report status in two lines, then act: + +- Whether `answers.json` exists, and when it was last written. +- Whether a draft is waiting (`runtime/draft.json`), whether DESIGN.md is seeded, and whether a session is live (`runtime/session.json` naming a running process). + +With answers on disk, do `open`. Without them, say the design context is created by the questionnaire and offer `$impeccable document`. Never start the questionnaire unasked. + +## open + +Reopen the document, live for edits. + +Run `node .agents/skills/impeccable/scripts/picker-server.mjs --doc` from the project root as a foreground command and parse its `PICKER_URL` line. Open it and wait exactly as [visual-cues.md](visual-cues.md)'s launch paragraph does: its harness-browser ladder (in-IDE browser first, then another browser tool, then the system opener, then telling the user the URL) and its wait-on-the-foreground-process rule. Skip everything earlier in its Step 7: the cue announcement and the `modes` and `context` writes belong to a run that is generating cues, and this one is not. + +Then enter the document edit loop below. The process exiting is the signal: + +- `DOC_SESSION_ENDED` and exit 0: the document was closed. Say so in one line; the loop is over. +- Exit 2: it timed out or was never opened. Say it can be reopened with the same command, and never relaunch unprompted. +- Exit 1: no interview exists. Route to `$impeccable document`. + +## edit + +Re-run the questionnaire over the previous answers. + +Say in one line what it will do before launching, and settle DESIGN.md in the same breath, because a new run replaces the seed the last one produced: *"This re-runs the questionnaire with your previous answers filled in. When you finish, I will refresh DESIGN.md from the new answers. Refresh it, overwrite it, or merge by hand?"* That is the whole consent for this run; do not ask again afterwards. + +Then run `node .agents/skills/impeccable/scripts/picker-server.mjs`, using the same launch ladder and wait rule as `open`. Prefill happens on its own: an unfinished run resumes from its draft, a finished one loads its answers, and `--fresh` starts blank. Cues and `context.json` already exist from the previous run, so do not regenerate cues and do not repeat Step 7's pre-launch writes. + +On exit 0, go to [document.md](document.md) Steps 5-6 and write the seed from the new `answers.json`, honoring the choice made before launch. On exit 2, nothing was answered and nothing changed. + +If `.impeccable/visual-cues/cues.json` is missing, the questionnaire cannot run: its palette screen loads the dealt cues and the built-in seeds together and neither arrives without that file. Say so and offer a full `$impeccable document --seed` run instead. + +## export + +```text +node .agents/skills/impeccable/scripts/design-context-export.mjs [--out DIR] [--no-assets] +``` + +Writes two files and prints an `EXPORTED` line for each. Tell the user what each is for, in one line each: + +- `design-context.md` is the design context as one readable document. It is what to hand another tool, another agent, or a collaborator who needs to follow this design. +- `design-context.bundle.json` is the same context in a form `$impeccable design-context import` reads, including the files the user supplied. + +Do not read the export back into the conversation; the user asked for a file, not a recitation. + +## import + +```text +node .agents/skills/impeccable/scripts/design-context-import.mjs [--design skip|write] [--force] +``` + +It refuses a project that already has a design context unless `--force`, and refuses while a document is open either way. Report what it prints: + +- `DESIGN_MD carried` with a DESIGN.md already here: ask whether to refresh it from the imported context, overwrite it, or merge by hand, then act. +- `DESIGN_MD carried` with none here: offer to write it (`--design write`) or to re-seed from the imported answers through [document.md](document.md) Steps 5-6. +- `DESIGN_MD absent`: say the bundle carried decisions but no design document, and offer to seed one. + +Then offer `open`. + +## The document edit loop + +The document is a working surface. Follow [visual-cues.md](visual-cues.md)'s "The document edit loop" section; it is the canonical contract for polling, the event kinds, and the reply commands. Two things to hold on to while you are in it: + +- **The session is the only writer of the store.** Never edit `answers.json` or `context.json` yourself while a session runs. Values you settle travel on your reply, through `--answers` or `--context`. DESIGN.md and PRODUCT.md are yours to write directly. +- **A `save_batch` is already applied.** The user's values are in the store before you hear about them. Your work is the prose those values leave stale, in whichever document the event's `downstream` names. + +## Pitfalls + +- Never poll `answers.json` while a server runs. The process exiting is the signal. +- Never drive the questionnaire yourself. The answers are the user's, and a run you filled in is a run they did not make. +- Editing in the document changes values that are already there. A field the interview never captured is added by asking through the document's own request control, not by this command. diff --git a/.agents/skills/impeccable/reference/document.md b/.agents/skills/impeccable/reference/document.md index 83abb54b8..cf167da1e 100644 --- a/.agents/skills/impeccable/reference/document.md +++ b/.agents/skills/impeccable/reference/document.md @@ -64,6 +64,7 @@ Omit irrelevant sections rather than filling them with invented rules. Put respo ## When to run - New-work found a coherent incumbent visual system but no `DESIGN.md`. +- New-work paused before its direction roll on a project with no `DESIGN.md` and the user accepted the seed questionnaire recommendation; run seed mode. - The first implementation of a new world is complete and its provisional decisions need to be carbonized. - An existing `DESIGN.md` is stale (the design has drifted). - Before a large redesign, to capture the current state as a reference. @@ -73,9 +74,9 @@ If a `DESIGN.md` already exists, **do not silently overwrite it**. Show the user ## Two paths - **Scan mode** (default): the project has design tokens, components, or rendered output. Extract, then confirm descriptive language. Use when there's code to analyze. -- **Seed mode**: the project is pre-implementation. Ensure PRODUCT.md exists, then reuse new-work's visual-world workshop and write its directional DESIGN.md seed. Re-run in scan mode once there's code. +- **Seed mode**: the project is pre-implementation (fresh init, nothing built yet). Decide first whether the browser questionnaire can run, gather any existing brand assets, interview in chat (three named references and one anti-reference when the questionnaire will run; five high-level answers when it will not), then write a seed DESIGN.md marked `` that carries every decision the interview and the questionnaire made. Re-run in scan mode once there's code. -Decide by scanning first (Scan mode Step 1). If the scan finds no tokens, no component files, and no rendered site, offer seed mode; don't silently switch. `$impeccable document --seed` requests new-work's world workshop, but it does not authorize replacing coherent code: when an incumbent system exists, offer scan mode or route an explicit identity-replacement request through new-work. +Decide by scanning first (Scan mode Step 1). If the scan finds no tokens, no component files, and no rendered site, offer seed mode; don't silently switch. `$impeccable document --seed` forces seed mode on a pre-implementation project, but it does not authorize replacing coherent code: when an incumbent system exists, offer scan mode or route an explicit identity-replacement request through new-work. ## Scan mode (approach C: auto-extract, then confirm descriptive language) @@ -308,7 +309,7 @@ The `html` and `css` fields must be **self-contained, drop-in snippets** that re 1. **Tailwind expansion.** If the source uses Tailwind (className="bg-primary text-white rounded-lg px-6 py-3"), expand every utility to literal CSS properties in the `css` string. Do **not** reference Tailwind classes; do **not** assume a Tailwind CSS bundle is loaded. Each component is self-contained. 2. **Token resolution.** If the project exposes tokens as CSS custom properties on `:root` (e.g. `--color-primary`, `--radius-md`), reference them via `var(--color-primary)`; they inherit through the shadow DOM and stay live-bound. If tokens live only in JS theme objects (styled-components, CSS-in-JS), resolve to literal values at generation time. -3. **Icons.** Inline as SVG. Do not reference Lucide/Heroicons packages, icon fonts, or ``. A typical icon is 16-24px; copy the SVG path data directly. +3. **Icons.** Inline as SVG. Do not reference Lucide/Heroicons packages, icon fonts, or ``. A typical icon is 16-24px; copy the SVG path data directly. This is about how a snippet ships, not about which family the project draws from: when the design names an icon set, keep using that set's glyphs and paste their path data in. 4. **States.** Include `:hover`, `:focus-visible`, and (if meaningful) `:active` rules inline. A static default-only snapshot makes the panel feel dead. Hover + focus rules in the CSS make it feel alive. 5. **Reset bloat.** Extract only the component's *distinctive* CSS (background, color, padding, border-radius, typography, transition). Skip universal resets (`box-sizing: border-box`, `line-height: inherit`, `-webkit-font-smoothing`). The panel already has a neutral canvas; don't re-ship resets. 6. **Scoped class names.** Prefix every class with `ds-` (e.g. `ds-btn-primary`, `ds-input-search`) so component CSS doesn't collide with other components' CSS in the same shadow DOM. @@ -349,46 +350,138 @@ Your own write is the freshest source; subsequent commands in this session don't ## Seed mode -For projects with no visual system to extract yet. Produces a user-chosen visual-world scaffold, not a fabricated token spec. - -### Step 1: Route through new-work's workshop +For projects with no visual system to extract yet. Produces a minimal, user-chosen scaffold, not a fabricated token spec. PRODUCT.md is the prerequisite. If it is missing, load [init.md](init.md) and complete its product interview first. Do not create a visual identity without durable product context. -If PRODUCT.md exists, load [new-work.md](new-work.md) and resolve visual authority. Seed mode requires a concrete first surface: use the target the user named, or ask what they want to make first. Run new-work's **Create or replace the visual world** flow, then **Commit the world**, so the visual world and its first expression are chosen together. Stop after the directional DESIGN.md seed and surface brief; do not implement. A structured simulated user counts as the user and must get the same choice. +### Step 1: Decide the path, confirm seed mode, and ask for assets -If new-work already completed the workshop in this session, use its chosen direction directly. Do not ask again. +The browser questionnaire asks color strategy and motion per surface and picks concrete typefaces and a type scale by eye, so whether it will run decides what the chat interview may ask. Decide the path **before the first question**, never after the interview: -### Step 2: Write seed DESIGN.md +- **The harness has native image generation** (Codex's `image_gen`, an equivalent MCP tool, or similar): the questionnaire path; the cues are generated directly at Step 4, no setup needed. This branch wins even when `.impeccable/.env` already holds an `IMAGE_GEN_API_KEY` or an earlier run in another harness left a wrapper script behind; those are fallbacks for keyless harnesses, not the preferred path. A native tool that **cannot generate** (zero credits, failed auth) counts as absent: fall through to the next branch without asking, and mention the swap in the final report. +- **No usable native path, key already in `.impeccable/.env`**: the questionnaire path, with no pause and no questions. Load [image-api.md](image-api.md) and use its shipped wrapper; it pre-answers everything this path has ever stopped to ask, including which provider the key belongs to. +- **No usable native path, no key**: pause. STOP and use Codex's structured user-input/question tool when available; if unavailable, ask directly in chat to clarify what you cannot infer. Ask whether the user wants generated visual cues to pick a palette by eye. *"I can generate a few small palette-and-mood images so you choose a direction visually instead of from descriptions. That needs an image-generation API key (FLUX and Google Nano Banana are supported out of the box; other providers work too), stored as `IMAGE_GEN_API_KEY` in `.impeccable/.env`. Add one, or skip straight to the chat interview?"* If a key arrives, write it to `.impeccable/.env` together with `IMAGE_GEN_PROVIDER` (`bfl` for FLUX, `gemini` for Nano Banana, the provider's own name for anything else; when the user does not say, let the wrapper infer it from the key). Confirm that file is listed in the project's `.gitignore` (add it if missing; a committed key is a leak), then load [image-api.md](image-api.md). Its shipped wrapper is the whole integration for the built-in providers; only a provider it does not know earns the project-local wrapper that file specifies. A key arriving makes this the questionnaire path. +- **The user opts out, or no key arrives**: the interview-only path. The assets ask below, the five questions in Step 3, then Steps 5-6 from the interview alone. -Use the canonical section order from Scan mode. Populate the selected workshop direction and leave unresolved implementation facts as honest placeholders. The seed commits a world and its invariants; it does not pretend implementation tokens already exist. +Then confirm seed mode and ask for assets, framed for the path: -Lead the file with: +- **Questionnaire path**: *"There's no existing visual system to scan. You'll pick the visual direction by eye in a browser questionnaire; before I generate its options, three quick things. First: if you have any visual assets (a logo, reference or product images, moodboards), drop them in or point me at the files. They're extra context that makes the first DESIGN.md seed more accurate. You can re-run `$impeccable document` once there's code, to capture the real tokens and components. OK?"* +- **Interview-only path**: *"There's no existing visual system to scan. I'll ask five quick questions to seed a starter DESIGN.md. First: if you have any visual assets (a logo, reference or product images, moodboards), drop them in or point me at the files. They'll ground the questions in what you already have. You can re-run `$impeccable document` once there's code, to capture the real tokens and components. OK?"* + +Also glance for assets already in the project (`assets/`, `public/`, `brand/`, image files at the root); name anything found so the user can confirm it's relevant. Assets are optional: one ask, then proceed with whatever arrived. + +If the user prefers to skip entirely, stop. No file. + +### Step 2: Read the assets + +Look at every asset provided (attached in chat or a file path) and record what it tells you, before writing the questions: + +- **Logo**: sample the exact colors, note letterform character (geometric / humanist / serif) and temperature. +- **Reference / product images**: density, palette, type feel; what the user is drawn to. +- **Moodboards**: recurring hues, textures, era, register cues. + +On the questionnaire path, the files themselves also feed the design context document the picker shows after the last question. When the user provided actual files (a logo, a mood board, a reference image), copy each one into `.impeccable/design-context/assets/`, keeping its filename. Record every staged file for Step 4's context write: it becomes an object entry in `context.json` `context.assets`, `{ "file": "", "kind": "logo" | "moodboard" | "reference", "note": "" }`, where the note is what this step read off it. An observation with no file behind it stays a plain string entry, as before. On the interview-only path, stage nothing; the observations feed the questions and the seed alone. + +These observations exist to sharpen Step 3. **No assets: skip straight to Step 3** with generic options. + +### Step 3: The interview + +Group each path's questions into one `AskUserQuestion` interaction. Options must be concrete. Keep skill vocabulary (seed, register, anti-reference) out of question text; ask for the thing in words the user would use. Ask like a magazine editor profiling the brand: curious and narrative, drawing out the feel the surface should carry. + +**Questionnaire path: two questions, nothing more.** With Step 1's assets ask these are the whole chat interview; the questionnaire asks everything else by eye. + +1. **Three named references.** Brands, products, printed objects. Not adjectives. When Step 2 produced observations, ground candidate names in them (references drawn from the moodboard's era). +2. **One anti-reference.** What the product should NOT feel like. Also named. + +**Do not ask about color, typography, or motion here; the questionnaire owns them.** It asks color strategy and motion per surface and picks concrete typefaces and a type scale, so a chat answer would be asked again by eye and one of the two would be thrown away. Both answered, go straight to Step 4. + +**Interview-only path: five questions.** When Step 2 produced observations, ground the options in them: offer the logo's sampled color as a hue anchor in Q1, a type direction that matches the letterforms in Q2, candidate named references drawn from the moodboard's era in Q4. The user should recognize their own material in the choices. + +1. **Color strategy.** Pick one: + - Restrained: tinted neutrals + one accent ≤10% + - Committed: one saturated color carries 30–60% of the surface + - Full palette: 3–4 named color roles, each deliberate + - Drenched: the surface IS the color + + Then: one hue family or anchor reference ("deep teal", "mustard", "Klim #ff4500 orange"). + +2. **Typography direction.** Pick one (specific fonts come later): + - Serif display + sans body + - Single sans (warm / technical / geometric / humanist; pick a feel) + - Display + mono + - Mono-forward + - Editorial script + sans + +3. **Motion energy.** Pick one: + - Restrained: state changes only + - Responsive: feedback + transitions, no choreography + - Choreographed: orchestrated entrances, scroll-driven sequences + +4. **Three named references.** Brands, products, printed objects. Not adjectives. + +5. **One anti-reference.** What it should NOT feel like. Also named. + +### Step 4: Launch the questionnaire (questionnaire path only) + +**Interview-only path: skip this step.** Go to Step 5 and seed from the answers alone. Step 1 already settled the capability question; do not re-open it here. + +On the questionnaire path, **stop and load [visual-cues.md](visual-cues.md)** and follow its pipeline; it owns everything from the one-line user announcement and the persona palette studio through generation, `cues.json`, and the picker pause. Do not restate its mechanics here or in chat. The picker's exit is the handoff: when the server exits 0 and `.impeccable/design-context/answers.json` lands, come back here and run Steps 5-6 with that file in hand. + +### Step 5: Write seed DESIGN.md + +Use the canonical section order from Scan mode. Populate what the interview, the assets, and the questionnaire answer; leave the rest as honest placeholders. The seed is a scaffold, not a fabricated spec, but a decision the user actually made in the picker is real and belongs in the file at full strength. + +Mark the file as a seed with this comment as the first line of the markdown body, immediately after the frontmatter's closing `---` (the frontmatter must open the file or token parsers will not see it): ```markdown ``` -Per-section guidance in seed mode: +**Two seeds exist**, and which one you write depends on whether Step 4's picker ran: -- **Overview**: the chosen design thesis, layout behavior, material character, imagery stance, motion grammar, and reusable signature. Keep the selected first-surface expression in its surface brief; do not promote its composition into the global world. -- **Colors**: the selected palette strategy and roles. Include values only when the user, an existing asset, or new-work's exploration established them; otherwise mark them `[to be resolved during implementation]`. -- **Typography**: the selected type character and role relationship. Include font names only when established; otherwise mark the pairing `[to be resolved during implementation]`. -- **Layout**: the selected spatial grammar and responsive behavior, without pretending exact measurements are settled. -- **Elevation & Depth**: the selected material and depth behavior, stated as an invariant rather than inferred from a generic preset. -- **Shapes**: the selected form and corner language. +**Interview-only seed** (the user opted out of generation, or no key arrived). Per-section guidance: + +- **Overview**: Creative North Star and philosophy phrased from the answers (color strategy + motion energy + references). Reference the user's anti-reference directly. +- **Colors**: Color strategy as a Named Rule (e.g. *"The Drenched Rule. The surface IS the color."*). Hue family or anchor reference. Colors sampled from a provided logo are real; include them with exact values and note the source. Everything else stays `[to be resolved during implementation]`; those sampled anchors are the only hex this seed may carry. +- **Typography**: the direction the user picked (e.g. "Serif display + sans body"). No font names yet: `[font pairing to be chosen at implementation]`. +- **Layout** and **Shapes**: omit unless an asset or answer established a spatial or form preference; do not invent grids or corner language pre-implementation. +- **Elevation & Depth**: inferred from motion energy. Restrained/Responsive → flat by default; Choreographed → layered. One sentence. - **Components**: omit entirely; no components exist yet. -- **Do's and Don'ts**: record the durable guardrails confirmed during the world choice, not task-local refusals. +- **Do's and Don'ts**: carry PRODUCT.md's anti-references directly plus the anti-reference named in Q5. -Seed mode writes a minimal frontmatter with `name` and `description` only; no colors, typography, rounded, spacing, or components yet. Real tokens land on the next Scan-mode run. Skip the `.impeccable/design.json` sidecar in seed mode for the same reason: nothing to render. +This seed writes a minimal frontmatter with `name` and `description` only; no colors, typography, rounded, spacing, or components yet. -### Step 3: Confirm +**Questionnaire seed** (`.impeccable/design-context/answers.json` exists from this run). The user answered every screen by eye, so the seed carries their answers as decisions, not directions. Read the answers file plus the picked cue's palette entry in `.impeccable/visual-cues/cues.json` (`palette-source` names it), and map: + +- **Frontmatter**: `name` and `description`, plus real `colors` (the four `palette-*` hex values under descriptive slugs; these are picked, not sampled) and real `typography` (`font-heading` and `font-body` are exact family names; give each role its family and weight intent, leave sizes for implementation). Derive the two text inks and record them under `colors` too: one near-black and one near-white, the pair the picker's previews already set their text in over these exact surfaces, each holding 4.5:1 against the grounds it will carry copy on, so a builder needing body-text contrast finds ink in the system instead of inventing a fifth color. Still no `rounded`, `spacing`, or `components`: the corner and spacing answers are qualitative, and nothing is built. +- **Overview**: Creative North Star and philosophy phrased from the questionnaire's color-strategy and motion answers plus the chat references; reference the user's anti-reference directly. Name the chosen surfaces (`surface-modes`) and what each is for. Movement stays here, after the North Star, but the questionnaire asks it of a landing page and a portfolio only, so write what the keys support: + - `motion-energy-` keys present, all agreeing: one philosophy sentence for the product, as before. + - Keys present and disagreeing: one sentence per surface, named (*"The landing page moves on state change only; the portfolio stages entrances and drives sequences on scroll."*). The bare `motion-energy` is the leading one of the two. + - **No `motion-energy` key at all**: the run has neither of those surfaces, so movement was never asked. Say nothing about it, and do not fill the gap from the register; this path's chat interview never asked about motion, so there is nothing to borrow. The next Scan-mode run reads the real transitions out of the code. +- **Colors**: the four roles with their picked hex, noting the cue they came from. Name the chosen cue by its slug, and note that the unpicked cue images stay in `.impeccable/visual-cues/` for later art direction. `color-strategy` becomes the Named Rule. When surfaces differ (`color-strategy-` keys), state each surface's strategy and which surface leads (the bare key's owner). +- **Typography**: the real pair by name, the pairing's character, and the type scale as a rule: `type-scale` names it, `type-scale-ratio` is the ratio (e.g. *"Major third: each heading step is 1.25x the last"*). Base size and exact steps stay `[resolved at implementation]`. A `font-heading-source` / `font-body-source` value means a user-provided font file; record where it lives. +- **Layout**: `boundary-style` (how sections separate) per surface when the `-` keys differ, plus `layout-structure` (how pages are composed), which the questionnaire asks of a landing page and a portfolio only. No invented grids beyond what the answers state. + - `layout-structure` present: one bare key and no `-` keys, so state it as a rule for the whole product rather than per surface. + - **No `layout-structure` key at all**: the run has neither of those surfaces, so composition was never asked. Say nothing about how strict the grid is, and let `boundary-style` carry the section. +- **Elevation & Depth**: `depth-style` per surface, stated directly; the questionnaire answered this, so do not re-infer it from motion energy. +- **Shapes**: `corner-style` per surface. +- **Components**: still omit; nothing exists yet. +- **Do's and Don'ts**: the interview-only guidance, plus a Do fixing the icon source: every icon comes from the chosen pack (`icon-pack-name`, license, URL), no mixed sets. + +Per-surface answers come back for every chosen surface, defaults included, and a difference between surfaces is a decision the picker enforced, not an inconsistency to smooth over (the option lists differ per surface). Where all surfaces agree, state the answer once for the product. `motion-energy` and `layout-structure` are the two keys that can be missing entirely, since movement and composition are asked of a landing page and a portfolio only; [visual-cues.md](visual-cues.md) has the full contract. + +Both seeds skip the `.impeccable/design.json` sidecar: nothing to render yet. Real tokens for sizes, spacing, and components land on the next Scan-mode run. + +### Step 6: Confirm 1. Show the seed DESIGN.md. Call out that it is a seed (the marker is the literal commitment). 2. Tell the user: "Re-run `$impeccable document` once you have some code. That pass will extract real tokens and generate the sidecar." +3. On the questionnaire path, add one line: the interview is kept, and `$impeccable design-context` reopens the document, re-runs the questionnaire over these answers, or writes the context out for another tool. See [design-context.md](design-context.md). Your own write is the freshest source; no reload needed. +When the questionnaire ran, the confirm is not the end of the turn: the design context document in the user's tab is live for edits through the session the picker forked. Follow the document edit loop in [visual-cues.md](visual-cues.md): poll, apply `edit_request`s to this same DESIGN.md, reply. A color the user changed in the tab before your seed write is already in `answers.json`; one changed after arrives as a `save_batch` event, its value already in the store and its description in DESIGN.md yours to bring in line. + ## Style guidelines - **Frontmatter first, prose second.** Tokens go in the YAML frontmatter; prose contextualizes them. Don't redefine a token value in two places; the frontmatter is normative. diff --git a/.agents/skills/impeccable/reference/image-api.md b/.agents/skills/impeccable/reference/image-api.md new file mode 100644 index 000000000..e4e8e35ad --- /dev/null +++ b/.agents/skills/impeccable/reference/image-api.md @@ -0,0 +1,54 @@ +# Image API Path (keyless harnesses) + +Loaded when a pipeline needs image generation and the harness has **no usable native tool**. It answers, upfront, every question an agent has historically stopped to ask on this path; with a funded key in place, a run through this file asks the user nothing and debugs nothing. + +**This file never overrides a working native tool.** A harness with native image generation skips this path entirely; the precedence rule lives where the path is picked ([visual-cues.md](visual-cues.md) Step 3, [document.md](document.md) seed Step 1), not here. One refinement to that rule: a native tool that **cannot generate** (zero credits, failed auth, disabled account) counts as absent. Fall through to this path silently and mention the swap in the final report; do not stop to ask which path to use. A stopped question costs hours when the user is away; the swap costs nothing. + +## The setup, already answered + +- **Key**: `IMAGE_GEN_API_KEY` in `.impeccable/.env` at the project root. The wrapper reads that file itself; never `source` it, never export the key by hand, never rename the variable. Never delete or truncate that file either, cleanup included: it is the user's stored credential, not run output, and a wiped key turns the next run's silent keyless path into a stalled question. +- **Provider**: `IMAGE_GEN_PROVIDER` in the same file: `bfl` (FLUX / Black Forest Labs) or `gemini` (Google Nano Banana), both built into the wrapper; any other value routes to a custom wrapper (below). Loose spellings from earlier runs (`flux`, `google`, `nano-banana`) normalize to the built-ins, and a missing provider line is inferred from the key's shape (Google keys start with `AIza` or `AQ.`; anything else runs as `bfl`), so a misworded or absent line is never a reason to stop and ask. +- **Wrapper**: `.agents/skills/impeccable/scripts/image-gen.mjs`, shipped with the skill. Do **not** write a new wrapper for a built-in provider, edit this one, or fall back to raw `curl`/`fetch` calls; every known failure mode below is already handled inside it. Wrappers left by earlier runs under other names (`flux-gen.mjs`, project-local copies) are superseded by the shipped one. +- **No smoke test.** A funded key plus the shipped wrapper is a working path; the first real generation is the test, and the wrapper turns transient failures into internal retries rather than failed calls. + +## The command + +One command regardless of provider; the provider switch happens inside the wrapper, so calling pipelines never branch on it: + +```text +node .agents/skills/impeccable/scripts/image-gen.mjs --prompt "..." --out /abs/path.png \ + [--ref /abs/reference.png] [--width 1408] [--height 1408] +``` + +Run it from the project root (that is where it finds `.impeccable/.env`). It prints the absolute output path on success and exits non-zero with the error on stderr. `--ref` switches text-to-image to image-to-image where the provider supports it. + +## Provider facts, so no one re-derives them + +**bfl** (FLUX): + +- **Models**: `flux-pro-1.1` text-to-image; with `--ref`, `flux-kontext-max` image-to-image (reference sent as base64, aspect ratio pinned 1:1). +- **Size**: BFL accepts 256-1440 px in multiples of 32. The default `1408x1408` is the largest clean square; passing `--width 1500` fails validation locally, before any credit is spent. Output is always square unless you pass unequal values. +- **Concurrency**: BFL allows 24 active tasks (`flux-kontext-max`: 6). A six-spawn wave fits both caps; do not throttle it. +- **Protocol**: submit returns a `polling_url`; the wrapper polls exactly that URL (the global endpoint requires it) and downloads the signed result URL immediately, inside its 10-minute expiry. None of this is the caller's concern. + +**gemini** (Nano Banana): + +- **Model**: `gemini-3.1-flash-image` by default; a `IMAGE_GEN_MODEL` line in `.impeccable/.env` overrides it, and the wrapper retries the `-preview` sibling once when Google's model naming drifts. +- **Size**: the wrapper pins aspect ratio 1:1, so output is always square; Gemini picks the pixel size for its tier (1024 by default) and ignores `--width`/`--height`. A 1024 square passes the pipelines' square gate as a "nearest supported square"; do not upscale it. +- **Format**: Gemini frequently returns JPEG bytes regardless of the `--out` filename; the wrapper converts them, so the written file is always a real PNG. Do not re-check or re-convert it. +- **Protocol**: synchronous; one call returns the image inline, no polling. Moderation arrives as an imageless response, which the wrapper turns into a clear error, not as an HTTP failure. +- **Text rendering**: Gemini paints text well and eagerly, so a prompt that mentions codes, numbers, or labels tends to get them rendered onto the image (hex codes come back as a printed swatch strip). The calling pipeline's prompt rules ([visual-cues.md](visual-cues.md)'s HERO PROMPT skeleton) keep those out of prompts; follow them, not looser habits from other models. + +**Any other provider**: the user names it, so the integration cannot be pre-shipped. Write `.impeccable/image-gen.mjs` implementing the same CLI (same flags, print the absolute output path on success, non-zero exit with the error on stderr, transient retries handled inside), set `IMAGE_GEN_PROVIDER` to the provider's name, and the shipped wrapper delegates to it automatically; calling pipelines keep using the shipped command unchanged. Build it from the provider's API docs, and give it square output; do **not** modify the shipped wrapper to add the provider inline. + +## Failures and what they mean + +The wrapper retries transient failures internally (DNS, network blips, 429 back-pressure, poll hiccups, expired-download re-fetches), so an error that reaches the caller is real and carries its own explanation: + +- **"out of credits"** (bfl, HTTP 402): a human must top up at dashboard.bfl.ai. Report it and stop this path; retrying is pointless, and so is asking the user to choose an alternative that does not exist. +- **"quota or rate limit exhausted"** (gemini, HTTP 429 after the wrapper's own retries): the key's plan is out of headroom. Report it and stop this path; the fix is billing, not retries. +- **"rejected the key"** (either provider): the key in `.impeccable/.env` is wrong or revoked. Report it; do not mint debugging sessions around a dead key. +- **Moderation** ("Content Moderated" / "Request Moderated" / "Prompt was moderated"): the prompt tripped the provider's filter; rewording the prompt is the fix, within the caller's normal generation budget. +- **"cannot resolve"**: the wrapper already tried the system resolver, `dig`, Google, and Cloudflare. **Never debug DNS beyond this**: no `/etc/hosts` edits, no new resolvers, no rewriting the wrapper to use `fetch()` (sandboxed harnesses block the default resolver for these hosts; the wrapper pins IPs via `curl --resolve` for exactly that reason). Report the failure and let the parent decide. + +Subagents on this path inherit the generation-failure budget from their own pipeline ([visual-cues.md](visual-cues.md)'s three-call budget, or the calling pipeline's equivalent); the wrapper's internal retries do not count against it, only whole failed invocations do. diff --git a/.agents/skills/impeccable/reference/new-work.md b/.agents/skills/impeccable/reference/new-work.md index 9e2587219..b3d75806e 100644 --- a/.agents/skills/impeccable/reference/new-work.md +++ b/.agents/skills/impeccable/reference/new-work.md @@ -40,13 +40,15 @@ The script deals three of your structures; the dice pick which three reach the u ### Create or replace the visual world -1. Name the product's unique mechanism in one sentence, the audience's real scene, its cultural home, and what this first surface must prove. Note the page this category always ships and its predictable opposite; both are the rut, kept out of the seven-candidate list. A brief that paints its own picture, a product name, a titled artifact, a governing metaphor, adds its literal reading to the rut: spend at most one candidate on it and derive the rest from elsewhere in the audience's world. -2. From that cultural world, list seven concrete visual systems, artifacts, places, or rituals the audience knows by heart, each with one line on why it resonates and can carry the mechanism, ordered by resonance. The audience's world includes its graphic and screen traditions, not only its physical objects: the notation, publications, identity programs, data graphics, and interfaces it reads daily. A nameable abstract system (a school of poster, a documentation standard) is as concrete a candidate as any artifact. What would this thing look like as a physical object; what did its world look like before the web? Near-duplicates count once. When more than three of the seven share one material family, the derivation stopped at the subject's most obvious artifact; dig until the list spans at least three families. -3. Turn that material into complete directions: each joins a reusable visual world to a concrete first-surface experience. -4. Run `node .agents/skills/impeccable/scripts/concept-seed.mjs --scope direction --mode ` and follow what it prints. No substitute, no skip: on a new or replacement world, writing artifact code before this script has run and its assignment is acknowledged is a contract violation, whatever the harness, the model, or the time pressure; the roll is what keeps every run from converging on the category default. The script assigns the direction to build and deals catalog challengers. Fuse each challenger before judging it: the challenger supplies the form and its system grammar, the product supplies every fact, clarity wins conflicts. Weigh fused challengers against the assigned direction on exactly two axes, audience identification and product clarity. Losing to strong grounded material is a valid outcome; beating a thin or tool-monoculture list is the point. Close with a verdict per challenger, decided before any borrowing: wins (beats the assigned direction on both axes; becomes the build candidate), competitive (holds one axis; stays a full alternate), or declined (loses both). A declined challenger is not spent: name the one discipline of its system the assigned direction lacks, and raise the assigned direction to match before presenting it. A donation transfers ambition and system discipline (a palette's total commitment, a grid's density courage, a form's structural honesty), never the challenger's clothes; a lifted motif is a costume note, not a raise, and one world owns the page. Write each raise into the presented direction as its own line, named for its donor; a raise nobody can read did not happen. -5. Present one direction, fully committed and already raised by the hand it beat, raises visible as named lines: world, first viewport, visitor path, signature interaction, cross-surface reach, honest risk. Route each challenger by verdict: winning and competitive challengers are full alternates with their QUALITY BAR cards and one-line case; declined challengers render demoted, compact and quiet, each carrying its verdict and what the direction kept from it, never full-size, never silently dropped, still adoptable on request. The verdict informs the user's choice, never pre-empts it; the demoted row is the hand's proof of judgment. A hand holds at most three full-card challengers: when the roll deals more, the three strongest join and the rest wait in the re-roll pool, noted in one line; dropping a challenger from the hand itself takes a named product-truth failure, disclosed. Add one card for your own top-ranked grounded candidate when it is not the assigned direction, kicker IMPECCABLE’S PICK, same anatomy as every card, with an honest risk line naming its familiarity when true: the strongest grounded direction is often where most runs in this category land, and the user deciding that trade is the point of showing it. Familiar and effective is a legitimate destination, not a failure of nerve; the pick card and the standing exit serve it at two depths. One pick card, never two, never a ranked list: a lineup of your candidates hands selection back to a taste function and invites the safest card. The pick never takes the lead position; when the dice assign your top candidate there is no pick card, and the assigned card notes it topped your list. Add re-roll with an optional one-line steer, in three registers: plain (a fresh hand, same spread), safer (your remaining conventional grounded candidates plus the canon against named competitors), bolder (foreign forms only, at full commitment). The register is the user's steering on the familiar-to-bold axis, never yours to pre-select; when the answer carries one, re-run the seed with `--register ` and the next `--reroll` round, and follow what it prints. A user saying "bolder" or "safer" while a direction round is open means these registers, never the bolder or harden commands. The two channels share this structure and differ only in richness: cards and boards on the decision page, names and one-liners through the structured tool, whose option list carries the assigned direction, the pick, the winning and competitive challengers, and the standing exit last; declined challengers fold into the assigned option's description as their kept lines, so the raise survives the text channel. +**When DESIGN.md is missing**, pause before any of the work below. STOP and use Codex's structured user-input/question tool when available; if unavailable, ask directly in chat to clarify what you cannot infer. Ask once: recommend `$impeccable document --seed`, the guided interview plus browser questionnaire, because a world established from the user's own choices beats one assigned to them; offer the skip in the same breath. *"There's no design system on record yet. Before I invent directions for [the requested surface], I can run a short interview and browser questionnaire so the visual world is built from your choices; I recommend it. Or skip it and I'll roll a direction now."* The pause is enforced by the script, not by your discipline: with no DESIGN.md on record, the step 4 roll refuses to deal and prints this same offer until the questionnaire has been put to the user. Do not roll first and offer the questionnaire after, the assignment anchors the conversation; do not run document on the user's behalf without their yes. **Accepted:** seed mode in [document.md](document.md) owns the interview and the picker; follow it. When the seed DESIGN.md is written, resume at section 1: the seed world now reads as an established world, so inherit it; the direction roll below no longer applies, and the optional surface roll remains. Through every phase that follows, comp-led included, the comp rules composition; the world rules material, and this seed is that world. **Skipped:** re-run the step 4 command with `--seed-declined=""`; the flag carries the user's own words as evidence of the skip, and the roll deals with nothing in step 4 softened. The build request itself is never a skip answer, a bare flag refuses again, and fabricating or paraphrasing the quote is a contract violation; only words the user typed after being asked qualify. When DESIGN.md exists, there is no pause and no flag. -The standing exit: every direction round offers one quiet, permanent alternative, the category standard, played straight. It is the user's door, never yours: never recommend it, never weigh it against the roll, never let it soften the dealt directions; the counterweights bind the unchosen default, not the chosen one. When the user takes it (the canon action, a safer-steer, or plain words asking for the familiar or competitor-like path), convention becomes the commitment: ask once for two or three products this should sit alongside, make their craft level the bar, and execute the canon at full fidelity, without irony or smuggled quirk. Record a standing preference as a brand commitment in PRODUCT.md. Re-roll eliminates every direction already shown, grounded and challenger alike; after two consecutive re-rolls, ask what quality is missing. Re-roll on your own only on named factual grounds, when the assigned direction cannot carry the product's truth or task; taste is never grounds. The user may re-roll freely, and a user- or brief-pinned direction beats the roll, always. Resolve collisions field by field: preserve every user- or brief-pinned constraint. In dimensions the brief leaves open, the assignment still binds through its topology, controls, state vocabulary, and ritual; when only its materials conflict with a pinned visual direction or PRODUCT.md brand commitment, translate that material expression and name the translation in the presented direction. A look mismatch is not grounds to re-roll. Present the decision visually: write an options payload with the assigned direction leading, its raised lines included; the pick card when one exists; the dealt challengers as alternates with their QUALITY BAR cards, verdicts, and kept lines; re-roll with its safer and bolder registers; steer; canon enabled; and `buildPath` carrying the recorded default with `toggle: true` whenever image generation exists (details in the build-path paragraph below). A degraded roll with no challengers still uses the page, as a single text-only card with re-roll. Give every card the same anatomy: thesis, palette, materials, first viewport, honest risk, and the challengers' case lines (`--schema` prints the exact shape); the page renders identity from these fields, demotes declined challengers to their row on its own, and a challenger's catalog image rides as labeled inspiration, never the promise of the build. Author `canonCard` too: the category standard as one honest card, same anatomy; the page keeps it subordinate, and the counterweights still bind you. Run `node .agents/skills/impeccable/scripts/serve-question.mjs --start --payload ` (`--schema` first for the payload shape). It daemonizes, prints the page URL and a key, and exits; open that URL for the user, in-app browser first, then the system opener, then showing the URL. Collect the choice with `--wait --key `, repeating while it exits 3; the ANSWER prints as JSON. An ANSWER of `{"optionId":"reroll"}` keeps the server alive and the page open on a loading hand: rerun concept-seed with the same `--scope` and `--mode` plus `--from --reroll ` (1 on the first re-roll, counting up), build the next payload, deliver it with `--update --key --payload `, then return to `--wait` on that key. Never `--start` a second server or fall back to chat here: either strands the open tab on a hand that never arrives. Exit 4 means the page closed unanswered: re-present once through the structured question tool, and with no answer there either, proceed unattended with the assigned direction and state the assumptions. A harness that can leave a shell blocked in the background may run the script without `--start` and let it auto-open and block. Never predict the fallback: run the script, and only exit code 2 from starting it routes the decision to the structured tool; that exit is the fallback, never an error to retry. +1. Name the product's unique mechanism in one sentence, the audience's real scene, its cultural home, and what this first surface must prove. Note the page this category always ships and its predictable opposite; name both as the rut and keep them out of the seven-candidate list. A brief that paints its own picture, a product name, a titled artifact, a governing metaphor, adds its literal reading to the rut: spend at most one candidate on it and derive the rest from elsewhere in the audience's world. +2. From that cultural world, list seven concrete visual systems, artifacts, places, or rituals the audience knows by heart, each with one line on why it resonates and can carry the mechanism, ordered by resonance. The audience's world includes its graphic and screen traditions, not only its physical objects: the notation, publications, identity programs, data graphics, and interfaces it reads daily; a nameable abstract system (a school of poster, a documentation standard) is as concrete a candidate as any artifact. What would this thing look like as a physical object; what did its world look like before the web? Near-duplicates count once. When more than three of the seven share one material family, the derivation stopped at the subject's most obvious artifact; dig until the list spans at least three families. +3. Turn that material into complete directions: each joins a reusable visual world to a concrete first-surface experience. +4. Run `node .agents/skills/impeccable/scripts/concept-seed.mjs --scope direction --mode ` and follow what it prints. With no DESIGN.md the script refuses to deal until the seed pause above has run; after the user's explicit skip, and only then, re-run it with `--seed-declined=""` carrying the user's own words. This step has no substitute and no skip condition (the seed pause above exits this subsection before any direction work starts; it is not a skip of the roll): on a new or replacement world, writing artifact code before this script has run and its assignment is acknowledged is a contract violation, whatever the harness, the model, or the time pressure, because the roll is the mechanism that keeps every run from converging on the category default. The script assigns which direction gets built and deals catalog challengers. Fuse each challenger before judging it: the challenger supplies the form and its system grammar, the product supplies every fact, and clarity wins conflicts. Weigh fused challengers against the assigned direction on exactly two axes, audience identification and product clarity; losing to strong grounded material is a valid outcome, and beating a thin or tool-monoculture list is the point. The weighing closes with a verdict per challenger, decided before any borrowing is considered: wins (beats the assigned direction on both axes; it becomes the build candidate), competitive (holds one axis; it stays a full alternate), or declined (loses both). A declined challenger is not spent: name the one discipline of its system the assigned direction lacks, and raise the assigned direction to match before presenting it. A donation transfers ambition and system discipline (a palette's total commitment, a grid's density courage, a form's structural honesty), never the challenger's clothes; a motif lifted from a declined world is a costume note, not a raise, and one world owns the page. Write each raise into the presented direction as its own line, named for its donor; a raise nobody can read did not happen. +5. Present one direction, fully committed and already raised by the hand it beat, its raises visible as named lines: its world, first viewport, visitor path, signature interaction, cross-surface reach, and honest risk. Alongside it, route each dealt challenger by its verdict: winning and competitive challengers are full alternates carrying their QUALITY BAR cards and one-line case, while declined challengers render demoted, compact and quiet, each carrying its verdict plus what the direction kept from it, never full-size and never silently dropped, each still adoptable on request. The verdict informs the user's choice, it never pre-empts it; the demoted row is the hand's proof of judgment, showing why the dealt worlds made the presented direction better. A hand holds at most three full-card challengers: when the roll deals more, the three strongest join the hand and the rest wait in the re-roll pool, noted in one line; dropping a challenger from the hand itself takes a named product-truth failure, disclosed. Add one card for your own top-ranked grounded candidate when it is not the assigned direction, kicker IMPECCABLE’S PICK, same anatomy as every card, with an honest risk line naming its familiarity when true: the strongest grounded direction is often the one most runs in this category land on, and the user deciding that trade is the point of showing it. Familiar and effective is a legitimate destination, not a failure of nerve; the pick card and the standing exit serve it at two depths. One pick card, never two, never a ranked list: the rest of your grounded candidates stay yours, because a lineup of them hands selection back to a taste function and invites the safest card. The pick never takes the lead position, and when the dice assign your top candidate there is no pick card; the assigned card notes it also topped your list. Add re-roll with an optional one-line steer, offered in three registers: plain (a fresh hand, same spread), safer (the familiar register: your remaining conventional grounded candidates plus the canon against named competitors), and bolder (foreign forms only, at full commitment). A register is the user's steering on the familiar-to-bold axis, never yours to pre-select; when the answer carries one, re-run the seed with `--register ` and the next `--reroll` round, and follow what it prints. A user saying "bolder" or "safer" while a direction round is open means these registers, never the bolder or harden commands. The two channels share this structure and differ only in richness: cards and boards on the decision page, names and one-liners through the structured tool; the structured tool's option list carries the assigned direction, the pick, the winning and competitive challengers, and the standing exit as its last option, while declined challengers fold into the assigned option's description as their kept lines, so the raise survives the text channel too. + +The standing exit: every direction round offers one quiet, permanent alternative, the category standard, played straight. It is the user's door, never yours: never recommend it, never weigh it against the roll, never let it soften the dealt directions; the counterweights bind the unchosen default, not the chosen one. When the user takes it (the canon action, a safer-steer, or plain words asking for the familiar or competitor-like path), convention becomes the commitment: ask once for two or three products this should sit alongside, make their craft level the bar, and execute the canon at full fidelity, without irony or smuggled quirk. Record a standing preference as a brand commitment in PRODUCT.md. Re-roll eliminates every direction already shown, grounded and challenger alike; after two consecutive re-rolls, ask what quality is missing. Re-roll on your own only on named factual grounds, when the assigned direction cannot carry the product's truth or task; taste is never grounds. The user may re-roll freely, and a user- or brief-pinned direction beats the roll, always. Present the decision visually: write an options payload with the assigned direction leading, its raised lines included; the pick card when one exists; the dealt challengers as alternates with their QUALITY BAR cards, verdicts, and kept lines; re-roll with its safer and bolder registers; steer; canon enabled; and `buildPath` carrying the recorded default with `toggle: true` whenever image generation exists (details in the build-path paragraph below). A degraded roll with no challengers still uses the page, as a single text-only card with re-roll. Give every card the same anatomy: thesis, palette, materials, first viewport, honest risk, and the challengers' case lines (`--schema` prints the exact shape); the page renders identity from these fields, demotes declined challengers to their row on its own, and a challenger's catalog image rides as labeled inspiration, never the promise of the build. Author `canonCard` too: the category standard as one honest card, same anatomy; the page keeps it subordinate, and the counterweights still bind you. Run `node .agents/skills/impeccable/scripts/serve-question.mjs --start --payload ` (`--schema` first for the payload shape). It daemonizes, prints the page URL and a key, and exits; open that URL for the user, in-app browser first, then the system opener, then showing the URL. Collect the choice with `--wait --key `, repeating while it exits 3; the ANSWER prints as JSON. An ANSWER of `{"optionId":"reroll"}` keeps the server alive and the page open on a loading hand: rerun concept-seed with the same `--scope` and `--mode` plus `--from --reroll ` (1 on the first re-roll, counting up), build the next payload, deliver it with `--update --key --payload `, then return to `--wait` on that key. Never `--start` a second server or fall back to chat here: either strands the open tab on a hand that never arrives. Exit 4 means the page closed unanswered: re-present once through the structured question tool, and with no answer there either, proceed unattended with the assigned direction and state the assumptions. A harness that can leave a shell blocked in the background may run the script without `--start` and let it auto-open and block. Never predict the fallback: run the script, and only exit code 2 from starting it routes the decision to the structured tool; that exit is the fallback, never an error to retry. When image generation exists, every card also declares a `comp` path under `.impeccable/mocks/decision/`, the canon card included. Where the harness sandboxes its shell, start the page through the least-sandboxed command path it offers: a sandboxed shell cannot bind the board's port, and the first-attempt failure costs a retry every session. Serve the page first, then produce the comps; the page shimmer-waits per slot and the user may answer before they land. Each card's image is that direction's north-star comp at full fidelity under [visualize.md](visualize.md)'s comp discipline: the requested surface's first viewport, structure-led prompt, real product name and real content, no invented commercial claims, in that card's own palette, type character, and material world, committed all the way. Generation takes the same time at any fidelity, so an unfinished draft pays comp cost for draft quality; fairness between cards is equal fidelity in each card's own grammar, one surface, one aspect, never shared unfinishedness. The frame's aspect is the surface's own: portrait at device viewport for a native app or mobile-first surface, landscape for desktop web; the decision page adapts to either, and a phone screen comped landscape is a broken frame, not a neutral default. Produce in reading order, the assigned card, then the pick, then the full-card hand, then canon, each file written with its prompt sidecar the moment it is done, so a re-roll's spend front-loads onto the cards read first; declined challengers get no comp, their catalog thumb is their face. With parallel subagents, fan out one agent per card: each spawn is the shipped asset producer with a single-comp packet, that card's fields, PRODUCT.md, the shared frame, and the card's declared path, up to four in flight. Regenerate inline any slot still empty when its agent returns; drop without ceremony any slot still empty when the user answers. No other supervision is owed. Without parallel subagents, generate in the main thread after serving, same order, and let the harness's own generation display carry the progress; the wait for the answer follows the last file. The chosen card's comp is not spent by the choice: comp-led, it enters the comp round as compositional option one; code-led, it returns at the finish review as the critique reference, what the image dared that the build did not. Unchosen comps stay in `.impeccable/mocks/decision/` as the round's spent hand; they carry no approval and imply none. With no image generation, cards carry their identity in palette chips and facts, and that page is complete, not a lesser version; the page then also demotes every challenger's catalog art to a labeled thumbnail on its own, because salience must encode the verdict, never the accident of which cards have images. @@ -68,20 +70,16 @@ Calibration: AI-generated interfaces cluster around a few looks regardless of su ## 5. Record the decision -Before code, record the chosen direction as a development-only contract under `## Direction contract` in the relevant surface brief. A direction contract is durable route or artifact strategy, so create or update the brief even when no other surface strategy needs persistence. Keep the contract to six short blocks and 150 words at most. THESIS: the one idea this surface owns and the category-default arrangement it refuses. OWN-WORLD: the palette and component language, specific enough to be recognizable with all content removed. STORY: what the visitor understands, believes, and does. FIRST VIEWPORT: the exact composition, what is where and at what scale, and where the primary action sits. FORM: the chosen form, its position on your ordered list, and the seed key the script printed. Close with one more line, FINISH: the run's exit condition, verbatim "unreviewed and undocumented is unfinished; this build ends with the finish review, the verdict, DESIGN.md, and every shipping raster carrying its provenance". The surface brief is the reminder later agents reload across edits and sessions: a page that looks complete with the FINISH line undischarged is not done, it is abandoned at the finish line. If a block reads like a mood, the direction is not decided yet; the finishing review audits the render against this contract. - -Never copy the direction contract into implementation source or any browser-delivered artifact. This includes HTML or framework comments, hidden DOM, `