From 641c82de5f012244ad1b87a3a3bed2e796365ee4 Mon Sep 17 00:00:00 2001 From: GVASTETHECREATOR <920957+gvastethecreator@users.noreply.github.com> Date: Sun, 31 May 2026 13:27:13 -0300 Subject: [PATCH 1/3] feat: add workspace lifecycle management functions and tests - Implemented `isDefaultWorkspace` to check if a workspace is the default. - Created `runWorkspaceSwitchLifecycle` to handle workspace switching and ensure the landing view is set to 'studio'. - Developed `runWorkspaceDeleteLifecycle` to manage workspace deletion with a clear-before-delete order. - Added unit tests for workspace lifecycle functions to ensure correct behavior. --- README.md | 170 ++++-- SKILLS.md | 16 + apps/local-server/src/appFactory.test.ts | 328 +++++++++++ apps/local-server/src/codex/rpcClient.test.ts | 57 ++ apps/local-server/src/codex/rpcClient.ts | 62 +- .../src/codex/runtimePolicy.test.ts | 25 + apps/local-server/src/codex/runtimePolicy.ts | 28 + apps/local-server/src/codex/turn.ts | 28 +- apps/local-server/src/jobRoutes.test.ts | 46 ++ apps/local-server/src/jobRoutes.ts | 71 ++- apps/local-server/src/librariesRoutes.test.ts | 91 ++- apps/local-server/src/librariesRoutes.ts | 65 ++- .../src/outputSourceRoutes.test.ts | 152 +++-- apps/local-server/src/outputSourceRoutes.ts | 107 +++- apps/local-server/src/projectRoutes.test.ts | 69 ++- apps/local-server/src/projectRoutes.ts | 50 +- .../src/providers/codexProvider.test.ts | 42 ++ .../src/providers/codexProvider.ts | 6 + .../providers/externalProviderInputs.test.ts | 43 ++ .../src/providers/externalProviderInputs.ts | 12 + .../src/providers/externalProviderResults.ts | 69 ++- .../externalProviderRetryPolicy.test.ts | 40 ++ .../providers/externalProviderRetryPolicy.ts | 21 + apps/local-server/src/settingsRoutes.test.ts | 54 +- apps/local-server/src/settingsRoutes.ts | 50 +- apps/local-server/src/worker.ts | 206 +++---- apps/local-server/src/workerErrors.test.ts | 43 ++ apps/local-server/src/workerErrors.ts | 56 ++ bun.lock | 7 + components/AppContent.tsx | 10 +- components/overlays/StudioSystemOverlays.tsx | 56 +- components/overlays/types.ts | 56 +- .../StylePresetCatalogSearchSurface.tsx | 36 +- .../manifests/presets/pack_05/SP05-231.yaml | 23 +- .../manifests/presets/pack_05/SP05-232.yaml | 23 +- .../manifests/presets/pack_05/SP05-233.yaml | 23 +- .../manifests/presets/pack_05/SP05-234.yaml | 23 +- .../manifests/presets/pack_05/SP05-235.yaml | 23 +- .../manifests/presets/pack_05/SP05-236.yaml | 23 +- .../manifests/presets/pack_05/SP05-237.yaml | 23 +- .../manifests/presets/pack_05/SP05-238.yaml | 24 +- .../manifests/presets/pack_05/SP05-239.yaml | 23 +- .../manifests/presets/pack_05/SP05-240.yaml | 23 +- .../manifests/presets/pack_05/SP05-241.yaml | 23 +- .../manifests/presets/pack_05/SP05-242.yaml | 23 +- .../manifests/presets/pack_05/SP05-243.yaml | 23 +- .../manifests/presets/pack_05/SP05-244.yaml | 23 +- .../manifests/presets/pack_05/SP05-245.yaml | 23 +- .../manifests/presets/pack_05/SP05-246.yaml | 23 +- .../manifests/presets/pack_05/SP05-247.yaml | 23 +- .../manifests/presets/pack_05/SP05-248.yaml | 23 +- .../manifests/presets/pack_05/SP05-249.yaml | 23 +- .../manifests/presets/pack_05/SP05-250.yaml | 23 +- .../manifests/presets/pack_05/SP05-251.yaml | 23 +- .../manifests/presets/pack_05/SP05-252.yaml | 23 +- .../manifests/presets/pack_05/SP05-253.yaml | 23 +- .../manifests/presets/pack_05/SP05-254.yaml | 23 +- .../manifests/presets/pack_05/SP05-255.yaml | 23 +- .../manifests/presets/pack_05/SP05-256.yaml | 23 +- .../manifests/presets/pack_05/SP05-257.yaml | 23 +- .../manifests/presets/pack_05/SP05-258.yaml | 23 +- .../manifests/presets/pack_05/SP05-259.yaml | 23 +- .../manifests/presets/pack_05/SP05-260.yaml | 23 +- .../manifests/presets/pack_07/SP07-001.yaml | 24 +- .../manifests/presets/pack_07/SP07-002.yaml | 25 +- .../manifests/presets/pack_07/SP07-003.yaml | 24 +- .../manifests/presets/pack_07/SP07-004.yaml | 24 +- .../manifests/presets/pack_07/SP07-005.yaml | 24 +- .../manifests/presets/pack_07/SP07-006.yaml | 24 +- .../manifests/presets/pack_07/SP07-007.yaml | 24 +- .../manifests/presets/pack_07/SP07-008.yaml | 24 +- .../manifests/presets/pack_07/SP07-009.yaml | 24 +- .../manifests/presets/pack_07/SP07-010.yaml | 24 +- .../manifests/presets/pack_07/SP07-011.yaml | 23 +- .../manifests/presets/pack_07/SP07-012.yaml | 24 +- .../manifests/presets/pack_07/SP07-013.yaml | 24 +- .../manifests/presets/pack_07/SP07-014.yaml | 24 +- .../manifests/presets/pack_07/SP07-015.yaml | 23 +- .../manifests/presets/pack_07/SP07-016.yaml | 23 +- .../manifests/presets/pack_07/SP07-017.yaml | 23 +- .../manifests/presets/pack_07/SP07-018.yaml | 23 +- .../manifests/presets/pack_07/SP07-019.yaml | 23 +- .../manifests/presets/pack_07/SP07-020.yaml | 23 +- .../manifests/presets/pack_07/SP07-021.yaml | 24 +- .../manifests/presets/pack_07/SP07-022.yaml | 23 +- .../manifests/presets/pack_07/SP07-023.yaml | 23 +- .../manifests/presets/pack_07/SP07-024.yaml | 23 +- .../manifests/presets/pack_07/SP07-025.yaml | 24 +- .../manifests/presets/pack_07/SP07-026.yaml | 24 +- .../manifests/presets/pack_07/SP07-027.yaml | 24 +- .../manifests/presets/pack_07/SP07-028.yaml | 27 +- .../manifests/presets/pack_07/SP07-029.yaml | 25 +- .../manifests/presets/pack_07/SP07-030.yaml | 25 +- .../manifests/presets/pack_07/SP07-031.yaml | 21 +- .../manifests/presets/pack_07/SP07-032.yaml | 20 +- .../manifests/presets/pack_07/SP07-033.yaml | 21 +- .../manifests/presets/pack_07/SP07-034.yaml | 21 +- .../manifests/presets/pack_07/SP07-035.yaml | 21 +- .../manifests/presets/pack_07/SP07-036.yaml | 20 +- .../manifests/presets/pack_07/SP07-037.yaml | 21 +- .../manifests/presets/pack_07/SP07-038.yaml | 21 +- .../manifests/presets/pack_07/SP07-039.yaml | 21 +- .../manifests/presets/pack_07/SP07-040.yaml | 21 +- .../manifests/presets/pack_07/SP07-041.yaml | 20 +- .../manifests/presets/pack_07/SP07-042.yaml | 20 +- .../manifests/presets/pack_07/SP07-043.yaml | 20 +- .../manifests/presets/pack_07/SP07-044.yaml | 21 +- .../manifests/presets/pack_07/SP07-045.yaml | 20 +- .../manifests/presets/pack_07/SP07-046.yaml | 20 +- .../manifests/presets/pack_07/SP07-047.yaml | 21 +- .../manifests/presets/pack_07/SP07-048.yaml | 20 +- .../manifests/presets/pack_07/SP07-049.yaml | 21 +- .../manifests/presets/pack_07/SP07-050.yaml | 21 +- .../manifests/presets/pack_07/SP07-051.yaml | 21 +- .../manifests/presets/pack_07/SP07-052.yaml | 21 +- .../manifests/presets/pack_07/SP07-053.yaml | 21 +- .../manifests/presets/pack_07/SP07-054.yaml | 20 +- .../manifests/presets/pack_07/SP07-055.yaml | 21 +- .../manifests/presets/pack_07/SP07-056.yaml | 21 +- .../manifests/presets/pack_07/SP07-057.yaml | 21 +- .../manifests/presets/pack_07/SP07-058.yaml | 21 +- .../manifests/presets/pack_07/SP07-059.yaml | 20 +- .../manifests/presets/pack_07/SP07-060.yaml | 20 +- .../manifests/presets/pack_07/SP07-061.yaml | 20 +- .../manifests/presets/pack_07/SP07-062.yaml | 20 +- .../manifests/presets/pack_07/SP07-063.yaml | 20 +- .../manifests/presets/pack_07/SP07-064.yaml | 20 +- .../manifests/presets/pack_07/SP07-065.yaml | 20 +- .../manifests/presets/pack_07/SP07-066.yaml | 20 +- .../manifests/presets/pack_07/SP07-067.yaml | 20 +- .../manifests/presets/pack_07/SP07-068.yaml | 20 +- .../manifests/presets/pack_07/SP07-069.yaml | 20 +- .../manifests/presets/pack_07/SP07-070.yaml | 20 +- .../manifests/presets/pack_07/SP07-071.yaml | 20 +- .../manifests/presets/pack_07/SP07-072.yaml | 20 +- .../manifests/presets/pack_07/SP07-073.yaml | 20 +- .../manifests/presets/pack_07/SP07-074.yaml | 20 +- .../manifests/presets/pack_07/SP07-075.yaml | 20 +- .../manifests/presets/pack_07/SP07-076.yaml | 20 +- .../manifests/presets/pack_07/SP07-077.yaml | 20 +- .../manifests/presets/pack_07/SP07-078.yaml | 20 +- .../manifests/presets/pack_07/SP07-079.yaml | 20 +- .../manifests/presets/pack_07/SP07-080.yaml | 20 +- .../manifests/presets/pack_12/SP12-001.yaml | 16 +- .../manifests/presets/pack_12/SP12-002.yaml | 16 +- .../manifests/presets/pack_12/SP12-003.yaml | 16 +- .../manifests/presets/pack_12/SP12-004.yaml | 16 +- .../manifests/presets/pack_12/SP12-005.yaml | 16 +- .../manifests/presets/pack_12/SP12-006.yaml | 16 +- .../manifests/presets/pack_12/SP12-007.yaml | 16 +- .../manifests/presets/pack_12/SP12-008.yaml | 16 +- .../manifests/presets/pack_12/SP12-009.yaml | 16 +- .../manifests/presets/pack_12/SP12-010.yaml | 16 +- .../manifests/presets/pack_12/SP12-011.yaml | 16 +- .../manifests/presets/pack_12/SP12-012.yaml | 16 +- .../manifests/presets/pack_12/SP12-013.yaml | 16 +- .../manifests/presets/pack_12/SP12-014.yaml | 16 +- .../manifests/presets/pack_12/SP12-015.yaml | 16 +- .../manifests/presets/pack_12/SP12-016.yaml | 16 +- .../manifests/presets/pack_12/SP12-017.yaml | 16 +- .../manifests/presets/pack_12/SP12-018.yaml | 16 +- .../manifests/presets/pack_12/SP12-019.yaml | 16 +- .../manifests/presets/pack_12/SP12-020.yaml | 16 +- .../manifests/presets/pack_12/SP12-021.yaml | 16 +- .../manifests/presets/pack_12/SP12-022.yaml | 16 +- .../manifests/presets/pack_12/SP12-023.yaml | 16 +- .../manifests/presets/pack_12/SP12-024.yaml | 16 +- .../manifests/presets/pack_12/SP12-025.yaml | 16 +- .../manifests/presets/pack_12/SP12-026.yaml | 16 +- .../manifests/presets/pack_12/SP12-027.yaml | 16 +- .../manifests/presets/pack_12/SP12-028.yaml | 16 +- .../manifests/presets/pack_12/SP12-029.yaml | 16 +- .../manifests/presets/pack_12/SP12-030.yaml | 16 +- .../manifests/presets/pack_12/SP12-031.yaml | 16 +- .../manifests/presets/pack_12/SP12-032.yaml | 16 +- .../manifests/presets/pack_12/SP12-033.yaml | 16 +- .../manifests/presets/pack_12/SP12-034.yaml | 16 +- .../manifests/presets/pack_12/SP12-035.yaml | 16 +- .../manifests/presets/pack_12/SP12-036.yaml | 16 +- .../manifests/presets/pack_12/SP12-037.yaml | 16 +- .../manifests/presets/pack_12/SP12-038.yaml | 16 +- .../manifests/presets/pack_12/SP12-039.yaml | 16 +- .../manifests/presets/pack_12/SP12-040.yaml | 16 +- .../manifests/presets/pack_12/SP12-041.yaml | 16 +- .../manifests/presets/pack_12/SP12-042.yaml | 16 +- .../manifests/presets/pack_12/SP12-043.yaml | 16 +- .../manifests/presets/pack_12/SP12-044.yaml | 16 +- .../manifests/presets/pack_12/SP12-045.yaml | 16 +- .../manifests/presets/pack_12/SP12-046.yaml | 16 +- .../manifests/presets/pack_12/SP12-047.yaml | 16 +- .../manifests/presets/pack_12/SP12-048.yaml | 16 +- .../manifests/presets/pack_12/SP12-049.yaml | 16 +- .../manifests/presets/pack_12/SP12-050.yaml | 16 +- .../manifests/presets/pack_12/SP12-051.yaml | 16 +- .../manifests/presets/pack_12/SP12-052.yaml | 16 +- .../manifests/presets/pack_12/SP12-053.yaml | 16 +- .../manifests/presets/pack_12/SP12-054.yaml | 16 +- .../manifests/presets/pack_12/SP12-055.yaml | 16 +- .../manifests/presets/pack_12/SP12-056.yaml | 16 +- .../manifests/presets/pack_12/SP12-057.yaml | 16 +- .../manifests/presets/pack_12/SP12-058.yaml | 16 +- .../manifests/presets/pack_12/SP12-059.yaml | 16 +- .../manifests/presets/pack_12/SP12-060.yaml | 16 +- .../manifests/presets/pack_12/SP12-061.yaml | 16 +- .../manifests/presets/pack_12/SP12-062.yaml | 16 +- .../manifests/presets/pack_12/SP12-063.yaml | 16 +- .../manifests/presets/pack_12/SP12-064.yaml | 16 +- .../manifests/presets/pack_12/SP12-065.yaml | 16 +- .../manifests/presets/pack_12/SP12-066.yaml | 16 +- .../manifests/presets/pack_12/SP12-067.yaml | 16 +- .../manifests/presets/pack_12/SP12-068.yaml | 16 +- .../manifests/presets/pack_12/SP12-069.yaml | 16 +- .../manifests/presets/pack_12/SP12-070.yaml | 16 +- .../manifests/presets/pack_12/SP12-071.yaml | 16 +- .../manifests/presets/pack_12/SP12-072.yaml | 16 +- .../manifests/presets/pack_12/SP12-073.yaml | 16 +- .../manifests/presets/pack_12/SP12-074.yaml | 16 +- .../manifests/presets/pack_12/SP12-075.yaml | 16 +- .../manifests/presets/pack_12/SP12-076.yaml | 16 +- .../manifests/presets/pack_12/SP12-077.yaml | 16 +- .../manifests/presets/pack_12/SP12-078.yaml | 16 +- .../manifests/presets/pack_12/SP12-079.yaml | 16 +- .../manifests/presets/pack_12/SP12-080.yaml | 16 +- .../manifests/presets/pack_13/SP05-326.yaml | 19 +- .../manifests/presets/pack_13/SP05-327.yaml | 19 +- .../manifests/presets/pack_13/SP05-328.yaml | 19 +- .../manifests/presets/pack_13/SP05-329.yaml | 19 +- .../manifests/presets/pack_13/SP05-330.yaml | 19 +- .../manifests/presets/pack_13/SP05-331.yaml | 19 +- .../manifests/presets/pack_13/SP05-332.yaml | 19 +- .../manifests/presets/pack_13/SP05-333.yaml | 19 +- .../manifests/presets/pack_13/SP05-334.yaml | 19 +- .../manifests/presets/pack_13/SP05-335.yaml | 19 +- .../manifests/presets/pack_13/SP05-336.yaml | 19 +- .../manifests/presets/pack_13/SP05-337.yaml | 19 +- .../manifests/presets/pack_13/SP05-338.yaml | 19 +- .../manifests/presets/pack_13/SP05-339.yaml | 19 +- .../manifests/presets/pack_13/SP05-340.yaml | 19 +- .../manifests/presets/pack_13/SP05-341.yaml | 19 +- .../manifests/presets/pack_13/SP05-342.yaml | 19 +- .../manifests/presets/pack_15/SP15-031.yaml | 34 +- .../manifests/presets/pack_15/SP15-032.yaml | 37 +- .../manifests/presets/pack_15/SP15-033.yaml | 34 +- .../manifests/presets/pack_15/SP15-034.yaml | 34 +- .../manifests/presets/pack_15/SP15-035.yaml | 34 +- .../manifests/presets/pack_15/SP15-036.yaml | 34 +- .../manifests/presets/pack_15/SP15-037.yaml | 34 +- .../manifests/presets/pack_15/SP15-038.yaml | 34 +- .../manifests/presets/pack_15/SP15-039.yaml | 34 +- .../manifests/presets/pack_15/SP15-040.yaml | 34 +- .../manifests/presets/pack_15/SP15-041.yaml | 34 +- .../manifests/presets/pack_15/SP15-042.yaml | 34 +- .../manifests/presets/pack_15/SP15-043.yaml | 34 +- .../manifests/presets/pack_15/SP15-044.yaml | 34 +- .../manifests/presets/pack_15/SP15-045.yaml | 34 +- .../manifests/presets/pack_15/SP15-046.yaml | 34 +- .../manifests/presets/pack_15/SP15-047.yaml | 34 +- .../manifests/presets/pack_15/SP15-048.yaml | 34 +- .../manifests/presets/pack_15/SP15-049.yaml | 34 +- .../manifests/presets/pack_15/SP15-050.yaml | 34 +- .../manifests/presets/pack_15/SP15-051.yaml | 34 +- .../manifests/presets/pack_15/SP15-052.yaml | 34 +- .../manifests/presets/pack_15/SP15-053.yaml | 34 +- .../manifests/presets/pack_15/SP15-054.yaml | 34 +- .../manifests/presets/pack_15/SP15-055.yaml | 34 +- .../manifests/presets/pack_15/SP15-056.yaml | 34 +- .../manifests/presets/pack_15/SP15-057.yaml | 34 +- .../manifests/presets/pack_15/SP15-058.yaml | 34 +- .../manifests/presets/pack_15/SP15-059.yaml | 34 +- .../manifests/presets/pack_15/SP15-060.yaml | 34 +- .../manifests/presets/pack_15/SP15-061.yaml | 34 +- .../manifests/presets/pack_15/SP15-062.yaml | 34 +- .../manifests/presets/pack_15/SP15-063.yaml | 34 +- .../manifests/presets/pack_15/SP15-064.yaml | 34 +- .../manifests/presets/pack_15/SP15-065.yaml | 34 +- .../manifests/presets/pack_15/SP15-066.yaml | 34 +- .../manifests/presets/pack_15/SP15-067.yaml | 34 +- .../manifests/presets/pack_15/SP15-068.yaml | 34 +- .../manifests/presets/pack_15/SP15-069.yaml | 34 +- .../manifests/presets/pack_15/SP15-070.yaml | 34 +- .../manifests/presets/pack_15/SP15-071.yaml | 5 +- .../manifests/presets/pack_15/SP15-072.yaml | 5 +- .../manifests/presets/pack_15/SP15-073.yaml | 5 +- .../manifests/presets/pack_15/SP15-074.yaml | 5 +- .../manifests/presets/pack_15/SP15-075.yaml | 5 +- .../manifests/presets/pack_15/SP15-076.yaml | 5 +- .../manifests/presets/pack_15/SP15-077.yaml | 5 +- .../manifests/presets/pack_15/SP15-078.yaml | 5 +- .../manifests/presets/pack_15/SP15-079.yaml | 5 +- .../manifests/presets/pack_15/SP15-080.yaml | 5 +- .../manifests/presets/pack_15/SP15-081.yaml | 5 +- .../manifests/presets/pack_15/SP15-082.yaml | 5 +- .../manifests/presets/pack_15/SP15-083.yaml | 5 +- .../manifests/presets/pack_15/SP15-084.yaml | 5 +- .../manifests/presets/pack_15/SP15-085.yaml | 5 +- .../manifests/presets/pack_15/SP15-086.yaml | 5 +- .../manifests/presets/pack_15/SP15-087.yaml | 5 +- .../manifests/presets/pack_15/SP15-088.yaml | 5 +- .../manifests/presets/pack_15/SP15-089.yaml | 5 +- .../manifests/presets/pack_15/SP15-090.yaml | 5 +- .../manifests/presets/pack_15/SP15-091.yaml | 5 +- .../manifests/presets/pack_15/SP15-092.yaml | 5 +- .../manifests/presets/pack_15/SP15-093.yaml | 5 +- .../manifests/presets/pack_15/SP15-094.yaml | 5 +- .../manifests/presets/pack_15/SP15-095.yaml | 5 +- .../manifests/presets/pack_15/SP15-096.yaml | 5 +- .../manifests/presets/pack_15/SP15-097.yaml | 5 +- .../manifests/presets/pack_15/SP15-098.yaml | 5 +- .../manifests/presets/pack_15/SP15-099.yaml | 5 +- .../manifests/presets/pack_15/SP15-100.yaml | 5 +- .../manifests/presets/pack_15/SP15-101.yaml | 5 +- .../manifests/presets/pack_15/SP15-102.yaml | 5 +- .../manifests/presets/pack_15/SP15-103.yaml | 5 +- .../manifests/presets/pack_15/SP15-104.yaml | 5 +- .../manifests/presets/pack_15/SP15-105.yaml | 5 +- .../manifests/presets/pack_15/SP15-106.yaml | 5 +- .../manifests/presets/pack_15/SP15-107.yaml | 5 +- .../manifests/presets/pack_15/SP15-108.yaml | 5 +- .../manifests/presets/pack_15/SP15-109.yaml | 5 +- .../manifests/presets/pack_15/SP15-110.yaml | 5 +- .../manifests/presets/pack_15/SP15-111.yaml | 5 +- .../manifests/presets/pack_15/SP15-112.yaml | 5 +- .../manifests/presets/pack_15/SP15-113.yaml | 5 +- .../manifests/presets/pack_15/SP15-114.yaml | 5 +- .../manifests/presets/pack_15/SP15-115.yaml | 5 +- .../manifests/presets/pack_15/SP15-116.yaml | 5 +- .../manifests/presets/pack_15/SP15-117.yaml | 5 +- .../manifests/presets/pack_15/SP15-118.yaml | 5 +- .../manifests/presets/pack_15/SP15-119.yaml | 5 +- .../manifests/presets/pack_15/SP15-120.yaml | 5 +- .../manifests/presets/pack_15/SP15-121.yaml | 5 +- .../manifests/presets/pack_15/SP15-122.yaml | 5 +- .../manifests/presets/pack_15/SP15-123.yaml | 5 +- .../manifests/presets/pack_15/SP15-124.yaml | 5 +- .../manifests/presets/pack_15/SP15-125.yaml | 5 +- .../manifests/presets/pack_15/SP15-126.yaml | 5 +- .../manifests/presets/pack_15/SP15-127.yaml | 5 +- .../manifests/presets/pack_16/SP05-003.yaml | 20 +- .../manifests/presets/pack_16/SP05-004.yaml | 20 +- .../manifests/presets/pack_16/SP05-005.yaml | 20 +- .../manifests/presets/pack_16/SP05-006.yaml | 20 +- .../manifests/presets/pack_16/SP05-007.yaml | 20 +- .../manifests/presets/pack_16/SP05-008.yaml | 20 +- .../manifests/presets/pack_16/SP05-009.yaml | 20 +- .../manifests/presets/pack_16/SP05-010.yaml | 20 +- .../manifests/presets/pack_16/SP05-011.yaml | 20 +- .../manifests/presets/pack_16/SP05-012.yaml | 20 +- .../manifests/presets/pack_16/SP05-071.yaml | 20 +- .../manifests/presets/pack_16/SP05-072.yaml | 20 +- .../manifests/presets/pack_16/SP05-073.yaml | 20 +- .../manifests/presets/pack_16/SP05-074.yaml | 20 +- .../manifests/presets/pack_16/SP05-075.yaml | 20 +- .../manifests/presets/pack_16/SP05-076.yaml | 20 +- .../manifests/presets/pack_16/SP05-077.yaml | 20 +- .../manifests/presets/pack_16/SP05-078.yaml | 20 +- .../manifests/presets/pack_16/SP05-079.yaml | 20 +- .../manifests/presets/pack_16/SP05-080.yaml | 20 +- .../manifests/presets/pack_16/SP05-141.yaml | 20 +- .../manifests/presets/pack_16/SP05-145.yaml | 24 +- .../manifests/presets/pack_16/SP05-146.yaml | 24 +- .../manifests/presets/pack_16/SP05-147.yaml | 20 +- .../manifests/presets/pack_16/SP05-149.yaml | 20 +- .../manifests/presets/pack_16/SP05-150.yaml | 20 +- .../manifests/presets/pack_16/SP05-151.yaml | 20 +- .../manifests/presets/pack_16/SP05-152.yaml | 20 +- .../manifests/presets/pack_16/SP05-153.yaml | 20 +- .../manifests/presets/pack_16/SP05-154.yaml | 20 +- .../manifests/presets/pack_16/SP05-155.yaml | 20 +- .../manifests/presets/pack_16/SP05-156.yaml | 20 +- .../manifests/presets/pack_16/SP05-157.yaml | 20 +- .../manifests/presets/pack_16/SP05-158.yaml | 20 +- .../manifests/presets/pack_16/SP05-159.yaml | 20 +- .../manifests/presets/pack_16/SP05-160.yaml | 20 +- .../manifests/presets/pack_16/SP05-161.yaml | 20 +- .../manifests/presets/pack_16/SP05-163.yaml | 20 +- .../manifests/presets/pack_16/SP05-164.yaml | 20 +- .../manifests/presets/pack_16/SP05-165.yaml | 20 +- .../manifests/presets/pack_16/SP05-166.yaml | 20 +- .../manifests/presets/pack_16/SP05-167.yaml | 20 +- .../manifests/presets/pack_16/SP05-169.yaml | 20 +- .../manifests/presets/pack_16/SP05-170.yaml | 20 +- .../manifests/presets/pack_16/SP05-173.yaml | 20 +- .../manifests/presets/pack_16/SP05-174.yaml | 20 +- .../manifests/presets/pack_16/SP05-175.yaml | 20 +- .../manifests/presets/pack_16/SP05-179.yaml | 20 +- .../manifests/presets/pack_16/SP05-180.yaml | 20 +- .../manifests/presets/pack_16/SP05-281.yaml | 20 +- .../manifests/presets/pack_16/SP05-282.yaml | 20 +- .../manifests/presets/pack_16/SP05-283.yaml | 21 +- .../manifests/presets/pack_16/SP05-284.yaml | 20 +- .../manifests/presets/pack_16/SP05-285.yaml | 20 +- .../manifests/presets/pack_16/SP05-286.yaml | 20 +- .../manifests/presets/pack_16/SP05-287.yaml | 21 +- .../manifests/presets/pack_16/SP05-288.yaml | 21 +- .../manifests/presets/pack_16/SP05-289.yaml | 21 +- .../manifests/presets/pack_16/SP05-290.yaml | 20 +- .../manifests/presets/pack_16/SP05-291.yaml | 20 +- .../manifests/presets/pack_16/SP05-292.yaml | 20 +- .../manifests/presets/pack_16/SP05-293.yaml | 20 +- .../manifests/presets/pack_16/SP05-294.yaml | 20 +- .../manifests/presets/pack_16/SP05-295.yaml | 20 +- .../manifests/presets/pack_16/SP05-296.yaml | 20 +- .../manifests/presets/pack_16/SP05-297.yaml | 20 +- .../manifests/presets/pack_16/SP05-298.yaml | 20 +- .../manifests/presets/pack_16/SP05-299.yaml | 20 +- .../manifests/presets/pack_16/SP05-300.yaml | 20 +- .../manifests/presets/pack_16/SP05-301.yaml | 20 +- .../manifests/presets/pack_16/SP05-302.yaml | 20 +- .../manifests/presets/pack_16/SP05-303.yaml | 20 +- .../manifests/presets/pack_16/SP05-304.yaml | 20 +- .../manifests/presets/pack_16/SP05-305.yaml | 20 +- .../manifests/presets/pack_16/SP05-306.yaml | 20 +- .../manifests/presets/pack_16/SP05-307.yaml | 20 +- .../manifests/presets/pack_16/SP05-308.yaml | 20 +- .../manifests/presets/pack_16/SP05-309.yaml | 20 +- .../manifests/presets/pack_16/SP05-310.yaml | 20 +- .../manifests/presets/pack_16/SP05-311.yaml | 20 +- .../manifests/presets/pack_16/SP05-312.yaml | 20 +- .../manifests/presets/pack_16/SP05-313.yaml | 20 +- .../manifests/presets/pack_16/SP05-314.yaml | 20 +- .../manifests/presets/pack_16/SP05-315.yaml | 20 +- .../manifests/presets/pack_16/SP05-316.yaml | 20 +- .../manifests/presets/pack_16/SP05-317.yaml | 23 +- .../manifests/presets/pack_16/SP05-318.yaml | 24 +- .../manifests/presets/pack_16/SP05-319.yaml | 24 +- .../manifests/presets/pack_16/SP05-320.yaml | 23 +- .../manifests/presets/pack_16/SP05-343.yaml | 23 +- .../manifests/presets/pack_16/SP05-344.yaml | 23 +- .../manifests/presets/pack_16/SP05-345.yaml | 23 +- .../manifests/presets/pack_16/SP05-346.yaml | 23 +- .../manifests/presets/pack_16/SP05-347.yaml | 23 +- .../manifests/presets/pack_16/SP05-348.yaml | 23 +- .../manifests/presets/pack_16/SP05-349.yaml | 23 +- .../manifests/presets/pack_16/SP05-350.yaml | 23 +- .../manifests/presets/pack_16/SP05-351.yaml | 23 +- .../manifests/presets/pack_16/SP05-352.yaml | 23 +- .../manifests/presets/pack_16/SP05-353.yaml | 23 +- .../manifests/presets/pack_16/SP05-354.yaml | 23 +- .../manifests/presets/pack_16/SP05-355.yaml | 23 +- .../manifests/presets/pack_16/SP05-356.yaml | 23 +- .../manifests/presets/pack_16/SP05-357.yaml | 23 +- .../manifests/presets/pack_16/SP05-358.yaml | 23 +- .../manifests/presets/pack_16/SP05-359.yaml | 23 +- .../manifests/presets/pack_16/SP05-360.yaml | 23 +- .../manifests/presets/pack_16/SP05-361.yaml | 23 +- .../manifests/presets/pack_16/SP05-362.yaml | 23 +- .../manifests/presets/pack_16/SP05-363.yaml | 23 +- .../manifests/presets/pack_16/SP05-364.yaml | 23 +- .../manifests/presets/pack_16/SP05-365.yaml | 23 +- .../manifests/presets/pack_16/SP05-366.yaml | 23 +- .../manifests/presets/pack_16/SP05-367.yaml | 23 +- .../manifests/presets/pack_16/SP05-368.yaml | 23 +- .../manifests/presets/pack_16/SP05-369.yaml | 22 +- .../manifests/presets/pack_16/SP05-370.yaml | 23 +- .../manifests/presets/pack_16/SP05-371.yaml | 23 +- .../manifests/presets/pack_16/SP05-372.yaml | 23 +- .../manifests/presets/pack_16/SP13-026.yaml | 20 +- .../manifests/presets/pack_16/SP13-027.yaml | 20 +- .../manifests/presets/pack_16/SP13-028.yaml | 20 +- .../manifests/presets/pack_16/SP13-029.yaml | 20 +- .../manifests/presets/pack_16/SP13-030.yaml | 20 +- .../manifests/presets/pack_16/SP13-031.yaml | 20 +- .../manifests/presets/pack_16/SP13-032.yaml | 20 +- .../manifests/presets/pack_16/SP13-033.yaml | 20 +- .../manifests/presets/pack_16/SP13-034.yaml | 20 +- .../manifests/presets/pack_16/SP13-035.yaml | 20 +- docs/ARCHITECTURE.md | 5 +- docs/TECHNICAL_DEBT.md | 7 +- .../effect-ts-adoption-workplan-2026-05-31.md | 198 +++++++ docs/active/pipeline-image-quality-plan.md | 10 +- .../style-presets-style-first-refactor.md | 424 +++++++++++++- docs/architecture/DEEPENING-ROADMAP.md | 113 +++- .../architecture-review-2026-05-31.md | 324 +++++++++++ ...rchitecture-review-effect-ts-2026-05-31.md | 538 ++++++++++++++++++ docs/assets/screenshots/recipes-view.png | Bin 0 -> 905145 bytes docs/assets/screenshots/studio-view.png | Bin 0 -> 187859 bytes hooks/useCatalog.ts | 40 +- hooks/useStudioActionConfirmations.ts | 15 +- hooks/useStudioHeaderToolbarConfig.test.ts | 40 +- hooks/useStudioOverlayController.test.ts | 158 ++--- hooks/useStudioOverlayController.ts | 152 +---- hooks/useStudioSettings.ts | 40 -- hooks/useStudioShell.ts | 69 ++- hooks/useWorkspaceStrip.ts | 37 +- lib/buildStudioHeaderToolbarProps.ts | 47 +- lib/recipeAssetCatalog.ts | 56 +- lib/recipeModules.test.ts | 11 + lib/recipeModules.ts | 47 ++ lib/workspaceLifecycle.test.ts | 65 +++ lib/workspaceLifecycle.ts | 47 ++ package.json | 1 + .../shared/src/generationContracts.test.ts | 42 ++ packages/shared/src/generationContracts.ts | 144 +++++ scripts/evaluate-recipe-prompts.ts | 26 + 494 files changed, 8646 insertions(+), 4554 deletions(-) create mode 100644 apps/local-server/src/appFactory.test.ts create mode 100644 apps/local-server/src/codex/rpcClient.test.ts create mode 100644 apps/local-server/src/codex/runtimePolicy.test.ts create mode 100644 apps/local-server/src/codex/runtimePolicy.ts create mode 100644 apps/local-server/src/providers/externalProviderRetryPolicy.test.ts create mode 100644 apps/local-server/src/providers/externalProviderRetryPolicy.ts create mode 100644 apps/local-server/src/workerErrors.test.ts create mode 100644 apps/local-server/src/workerErrors.ts create mode 100644 docs/active/effect-ts-adoption-workplan-2026-05-31.md create mode 100644 docs/architecture/architecture-review-2026-05-31.md create mode 100644 docs/architecture/architecture-review-effect-ts-2026-05-31.md create mode 100644 docs/assets/screenshots/recipes-view.png create mode 100644 docs/assets/screenshots/studio-view.png create mode 100644 lib/workspaceLifecycle.test.ts create mode 100644 lib/workspaceLifecycle.ts diff --git a/README.md b/README.md index c339a132..2fb3fbe2 100644 --- a/README.md +++ b/README.md @@ -1,73 +1,114 @@ # Codex Studio -> Estudio de imágenes local-first que usa tu sesión autenticada de Codex/ChatGPT — sin `OPENAI_API_KEY` para el flujo principal. +> A local-first image generation studio powered by your authenticated Codex/ChatGPT session — no `OPENAI_API_KEY` required for the main workflow. [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE) [![Bun](https://img.shields.io/badge/runtime-Bun-black?logo=bun)](https://bun.sh) [![TypeScript](https://img.shields.io/badge/TypeScript-5.x-blue?logo=typescript)](https://www.typescriptlang.org/) +[![Status](https://img.shields.io/badge/status-open--source%20preview-7c3aed)](#open-source-readiness-checklist) +[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-22c55e)](./CONTRIBUTING.md) -**Estado actual: preview open-source temprana.** La base técnica ya funciona bien en local. El foco ahora es dejar onboarding, documentación y DX en nivel “instalable en minutos”. +Codex Studio is an open-source image creation environment built for fast local iteration, reliable job history, and future workflow expansion. Today it is Codex-first. Over time, it is designed to support multiple workflow types and providers behind a consistent studio UX. -## Ruta rápida +## Who this is for -1. Instala dependencias y prepara la librería local: - - `bun install` - - `bun run studio:init` -2. Arranca el entorno: - - `bun run dev` -3. Verifica que todo responde: - - UI: - - API local: +- Creative developers building image pipelines locally +- Technical artists who need repeatable generation/editing workflows +- Product teams prototyping AI-assisted visual tooling +- Open-source contributors interested in workflow-driven studio systems -## ¿Por qué llama la atención este proyecto? +## Quick start -- **No exige API key** para el flujo principal con Codex. -- **Aprovecha tu sesión local** autenticada de Codex/ChatGPT. -- **Cola persistente de jobs** con trazabilidad sobre SQLite. -- **Assets, logs y transcripts fuera del repo**, en una Studio Library configurable. -- **UI creativa completa**: recetas, workspaces, grid visual y herramientas de revisión. -- **Arquitectura extensible** con frontera de proveedores (Codex-first). +1. Install dependencies and initialize your local studio library. + - `bun install` + - `bun run studio:init` +2. Start the development environment. + - `bun run dev` +3. Confirm everything is healthy. + - UI: + - Local API health: -## Cómo funciona +## Screenshots -1. La UI React/Vite recibe prompts, recetas e imágenes de referencia. -2. El backend local Bun/Hono crea y supervisa jobs persistentes. -3. `codex app-server` ejecuta turns reales para generar/editar imágenes. -4. La Studio Library guarda assets, SQLite, transcripts y logs. -5. La UI sincroniza por HTTP + SSE y mantiene compatibilidad visual para seguir operativa. +### Studio workspace -## Requisitos +![Codex Studio workspace screenshot](./docs/assets/screenshots/studio-view.png) -- **Bun** en PATH — [bun.sh](https://bun.sh) -- **Codex CLI** instalado y autenticado con login de ChatGPT en la misma máquina. -- Soporte de `codex app-server` en esa instalación. -- Navegador moderno con IndexedDB. +### Recipes view -Si falta Codex o la sesión local, la UI puede abrir pero no completará generaciones reales. Ver [`docs/TROUBLESHOOTING.md`](./docs/TROUBLESHOOTING.md). +![Codex Studio recipes view screenshot](./docs/assets/screenshots/recipes-view.png) -## Configuración local +## Why this project -El backend toma variables desde `.env.local`. Puedes dejar que `bun run studio:init` lo cree o copiar `.env.example`. +- **No API key required** for the primary Codex flow. +- **Uses your local authenticated Codex/ChatGPT session**. +- **Persistent job queue + traceability** backed by SQLite. +- **Library-backed storage** keeps assets, logs, and transcripts outside the repo. +- **Full creative UI** with recipes, workspaces, visual grid, and review tools. +- **Extensible architecture** designed for multi-workflow evolution. -Variables principales: +## Product direction: image studio + evolving workflows + +Codex Studio starts with a strong image-generation core and a clear path to broader workflow support. + +| Scope | Current status | Direction | +|------|----------------|-----------| +| Image generation/editing | Production-ready locally | Continue hardening and quality improvements | +| Workflow model | Codex-first runtime | Add more workflow types over time | +| Provider boundary | Adapter-based | Expand provider compatibility without UI rewrites | +| Studio UX | Unified queue + review surfaces | Keep one coherent UX across workflow families | + +## Open-source launch positioning + +Codex Studio is being prepared as an open-source platform for image-first creation that can evolve into a multi-workflow studio runtime. + +| Pillar | What this means in practice | +|------|------------------------------| +| Image-first excellence | Prioritize quality, speed, and reliability for image generation/editing | +| Workflow extensibility | Introduce new workflow families without fragmenting UX | +| Local-first reliability | Keep durable history, assets, and logs under your control | +| Contributor-friendly architecture | Clear boundaries, shared contracts, and docs that reduce onboarding time | + +## How it works + +1. React/Vite UI collects prompts, recipes, and reference assets. +2. Bun/Hono local server creates and supervises persistent jobs. +3. `codex app-server` executes real turns for image generation/editing. +4. Studio Library stores assets, SQLite data, transcripts, and logs. +5. UI syncs via HTTP + SSE and maintains compatibility surfaces for continuity. + +## Requirements + +- **Bun** in PATH — [bun.sh](https://bun.sh) +- **Codex CLI** installed and authenticated with ChatGPT on the same machine +- `codex app-server` support in that installation +- A modern browser with IndexedDB support + +If Codex or local session auth is missing, the UI may open but real generations will not complete. See [`docs/TROUBLESHOOTING.md`](./docs/TROUBLESHOOTING.md). + +## Local configuration + +The backend reads variables from `.env.local`. You can let `bun run studio:init` generate it, or copy from `.env.example`. + +Primary variables: - `STUDIO_LIBRARY_DIR` - `STUDIO_SERVER_PORT` - `STUDIO_CODEX_WS_PORT` - `VITE_STUDIO_API_BASE` -Variables opcionales para shell de Electron: +Optional variables for Electron shell: - `STUDIO_ELECTRON_API_BASE` - `STUDIO_ELECTRON_RENDERER_URL` -Ejemplos de ruta de librería: +Example library paths: - Windows: `%USERPROFILE%\AI-Studio-Library` -- macOS: `/Users//AI-Studio-Library` -- Linux: `/home//AI-Studio-Library` +- macOS: `/Users//AI-Studio-Library` +- Linux: `/home//AI-Studio-Library` -## Scripts útiles +## Useful scripts ```bash bun run dev @@ -84,17 +125,17 @@ bun run validate:fast bun run validate:full ``` -## Detalles clave +## Core technical decisions -| Tema | Decisión | +| Topic | Decision | |------|----------| -| Fuente de verdad durable | `SQLite + Image Catalog` | -| Cache visual compatible | `GenerationBatch[]` en IndexedDB (solo compatibilidad) | -| Eventos en vivo | `GET /api/events` (SSE) | -| Sesión local canónica | `/api/codex/session` | -| Filosofía de producto | Codex-first, local-first, library-backed | +| Durable source of truth | `SQLite + Image Catalog` | +| Compatibility visual cache | `GenerationBatch[]` in IndexedDB (compatibility-only) | +| Live events | `GET /api/events` (SSE) | +| Canonical local session endpoint | `/api/codex/session` | +| Product philosophy | Codex-first, local-first, library-backed | -## Estructura del repositorio +## Repository layout ```text . @@ -108,24 +149,29 @@ bun run validate:full └─ services/ ``` -## Documentación principal +## Documentation map + +- [`CONTEXT.md`](./CONTEXT.md) — canonical domain vocabulary +- [`AGENTS.md`](./AGENTS.md) — operational rules for agents +- [`SKILLS.md`](./SKILLS.md) — specialized workflow guides +- [`docs/ARCHITECTURE.md`](./docs/ARCHITECTURE.md) — current architecture +- [`docs/SERVICES.md`](./docs/SERVICES.md) — service and integration map +- [`docs/DEV_GUIDE.md`](./docs/DEV_GUIDE.md) — development conventions +- [`docs/TOOLING.md`](./docs/TOOLING.md) — tooling and quality commands +- [`docs/TROUBLESHOOTING.md`](./docs/TROUBLESHOOTING.md) — quick diagnostics + +## Open-source readiness checklist -- [`CONTEXT.md`](./CONTEXT.md) — vocabulario canónico del dominio. -- [`AGENTS.md`](./AGENTS.md) — reglas operativas para agentes. -- [`SKILLS.md`](./SKILLS.md) — flujos especializados. -- [`docs/ARCHITECTURE.md`](./docs/ARCHITECTURE.md) — arquitectura vigente. -- [`docs/SERVICES.md`](./docs/SERVICES.md) — mapa de servicios e integraciones. -- [`docs/DEV_GUIDE.md`](./docs/DEV_GUIDE.md) — convenciones de desarrollo. -- [`docs/TOOLING.md`](./docs/TOOLING.md) — comandos y calidad. -- [`docs/TROUBLESHOOTING.md`](./docs/TROUBLESHOOTING.md) — diagnóstico rápido. +- [ ] `bun run studio:init` completes successfully +- [ ] `bun run dev` starts UI + backend +- [ ] `GET /api/health` returns healthy response +- [ ] UI opens and shows readiness status +- [ ] `CONTRIBUTING.md`, `SECURITY.md`, and `CODE_OF_CONDUCT.md` are reviewed before publishing -## Checklist de validación rápida +## Contributing -- [ ] `bun run studio:init` completa sin errores. -- [ ] `bun run dev` levanta UI + backend. -- [ ] `GET /api/health` responde correctamente. -- [ ] Puedes abrir la UI y ver el estado de readiness. +Contributions are welcome. Start with [`CONTRIBUTING.md`](./CONTRIBUTING.md), then review [`ROADMAP.md`](./ROADMAP.md) for product priorities. -## Próximo paso +## License -Si quieres contribuir, empieza por [`CONTRIBUTING.md`](./CONTRIBUTING.md). Si quieres entender prioridades de producto, sigue en [`ROADMAP.md`](./ROADMAP.md). +This project is licensed under the [MIT License](./LICENSE). diff --git a/SKILLS.md b/SKILLS.md index ad52cb11..ed9522bb 100644 --- a/SKILLS.md +++ b/SKILLS.md @@ -109,6 +109,22 @@ bun run test -- packages/shared/src/generationContracts.test.ts apps/local-serve bun run check -- packages/shared/src/generationContracts.ts packages/shared/src/generationContracts.test.ts apps/local-server/src/jobRoutes.ts apps/local-server/src/jobRoutes.test.ts ``` +## Mejorar calidad de generación + +1. Keep quality semantics in provider-independent `Generation Task Spec.quality`, not React surfaces. +2. Use compact quality presets (`image_general`, `image_edit`, `style_reference`, `sprite_sheet`, `texture`, `product_or_ui_asset`) to add intent without restoring huge Recipe Context prompts. +3. Providers should compile quality sections with `composeGenerationQualityPromptSections()` before recipe directives, then keep stable output rules in Provider Session Contract. +4. Do not duplicate the base prompt or `negativePrompt` inside quality fields; only add real structured hints such as style, color, constraints, and reference-role instructions. +5. For live evidence, run dry evaluation first and store only job/catalog/transcript refs plus reviewer notes. + +Focused validation: + +```bash +bun run test -- packages/shared/src/generationContracts.test.ts lib/recipeModules.test.ts apps/local-server/src/providers/codexProvider.test.ts apps/local-server/src/providers/externalProviderInputs.test.ts scripts/evaluate-recipe-prompts.test.ts +bun run providers:verify +bun run recipes:verify +``` + ## Agregar UI o configuración de Settings 1. Ask: is this Bootstrap Configuration, Studio Settings, or Provider Secret? diff --git a/apps/local-server/src/appFactory.test.ts b/apps/local-server/src/appFactory.test.ts new file mode 100644 index 00000000..9b77c8ad --- /dev/null +++ b/apps/local-server/src/appFactory.test.ts @@ -0,0 +1,328 @@ +import { describe, expect, it, vi } from 'vite-plus/test'; + +import type { + CodexModelCatalogResponse, + LocalCodexSessionResponse, +} from '../../../packages/shared/src'; +import type { StudioCatalogStore } from './catalogStore'; +import type { StudioDbStore } from './dbStore'; +import { createStudioApp } from './appFactory'; +import type { WorkerController } from './worker'; + +vi.mock('./db', () => ({ + getSettingValue: vi.fn(() => null), + setSettingValue: vi.fn(() => null), +})); + +vi.mock('./logger', () => ({ + log: vi.fn(), +})); + +function createFakeDbStore(overrides?: Partial): StudioDbStore { + const defaultProject = { + id: 'project-default', + name: 'Default Studio Project', + description: null, + createdAt: '2026-05-31T00:00:00.000Z', + updatedAt: '2026-05-31T00:00:00.000Z', + }; + + const store: StudioDbStore = { + ensureDefaultProject: vi.fn(() => defaultProject), + createProject: vi.fn((name: string, description?: string | null) => ({ + id: 'project-created', + name, + description: description ?? null, + createdAt: '2026-05-31T00:00:00.000Z', + updatedAt: '2026-05-31T00:00:00.000Z', + })), + listProjects: vi.fn(() => [defaultProject]), + createJob: vi.fn(() => { + throw new Error('not used in appFactory composition test'); + }), + updateJobFinalPrompt: vi.fn(() => null), + getJob: vi.fn(() => null), + listJobs: vi.fn(() => []), + listAssets: vi.fn(() => []), + listLogs: vi.fn(() => []), + }; + + return { ...store, ...overrides }; +} + +function createFakeCatalogStore(overrides?: Partial): StudioCatalogStore { + const image = { + id: 'catalog-image-1', + libraryId: 'library-1', + filePath: 'D:/library/outputs/image.png', + thumbnailPath: null, + publicUrl: '/library/outputs/image.png', + thumbnailUrl: null, + prompt: 'Prompt', + negativePrompt: null, + aspectRatio: '1:1', + imageSize: '1K', + width: null, + height: null, + mimeType: 'image/png', + fileSizeBytes: null, + jobId: null, + workspaceId: 'default', + batchId: 'batch-1', + recipeId: null, + isFavorite: false, + isDeleted: false, + deletedAt: null, + tags: [], + generationConfig: null, + createdAt: '2026-05-31T00:00:00.000Z', + }; + + const store: StudioCatalogStore = { + getCatalogImage: vi.fn((id: string) => (id === image.id ? image : null)), + queryCatalog: vi.fn(() => ({ images: [image], total: 1, hasMore: false })), + registerCatalogImage: vi.fn(() => image), + updateCatalogImage: vi.fn(() => image), + softDeleteCatalogImage: vi.fn((id: string) => (id === image.id ? image : null)), + restoreCatalogImage: vi.fn(() => image), + purgeCatalogImage: vi.fn((id: string) => (id === image.id ? image : null)), + }; + + return { ...store, ...overrides }; +} + +function createWorkerDependency(): Pick< + WorkerController, + 'cancelQueuedOrRunningJob' | 'enqueueJob' | 'getWorkerStatus' | 'resetWorkerState' +> { + return { + cancelQueuedOrRunningJob: vi.fn(() => null), + enqueueJob: vi.fn(), + getWorkerStatus: vi.fn(() => ({ + maxConcurrentJobs: 2, + activeWorkerCount: 0, + queuedJobs: 0, + trackedJobs: 0, + })), + resetWorkerState: vi.fn(async () => {}), + }; +} + +describe('createStudioApp', () => { + it('wires injected codex and project adapters through mounted routes', async () => { + const dbStore = createFakeDbStore(); + const catalogStore = createFakeCatalogStore(); + const worker = createWorkerDependency(); + const logger = vi.fn(); + + const codexCatalogFixture: CodexModelCatalogResponse = { + models: [ + { + id: 'gpt-image-1', + model: 'gpt-image-1', + displayName: 'GPT Image', + description: null, + hidden: false, + defaultReasoningEffort: null, + supportedReasoningEfforts: [], + additionalSpeedTiers: [], + inputModalities: ['text'], + supportsPersonality: false, + isDefault: true, + }, + ], + authMode: 'chatgpt', + planType: 'pro', + recommendedDefaultModel: 'gpt-image-1', + source: 'fallback', + fetchedAt: '2026-05-31T00:00:00.000Z', + error: null, + }; + + const localSessionFixture: LocalCodexSessionResponse = { + authMode: 'chatgpt', + planType: 'pro', + usage: null, + source: 'fallback', + fetchedAt: '2026-05-31T00:00:00.000Z', + error: null, + authLabel: 'ChatGPT', + state: 'ready', + reason: null, + isChatgptLogin: true, + isSupportedAuthMode: true, + canRunLocalJobs: true, + }; + + const readCodexModelCatalog = vi.fn(async () => codexCatalogFixture); + const readLocalCodexSession = vi.fn(async () => localSessionFixture); + + const studio = await createStudioApp({ + runInit: false, + dependencies: { + dbStore, + catalogStore, + worker, + logger, + readCodexModelCatalog, + readLocalCodexSession, + }, + }); + + const modelsResponse = await studio.app.request('/api/codex/models'); + expect(modelsResponse.status).toBe(200); + await expect(modelsResponse.json()).resolves.toEqual(codexCatalogFixture); + expect(readCodexModelCatalog).toHaveBeenCalledTimes(1); + + const sessionResponse = await studio.app.request('/api/codex/session'); + expect(sessionResponse.status).toBe(200); + await expect(sessionResponse.json()).resolves.toEqual(localSessionFixture); + expect(readLocalCodexSession).toHaveBeenCalledTimes(1); + + const listProjectsResponse = await studio.app.request('/api/projects'); + expect(listProjectsResponse.status).toBe(200); + await expect(listProjectsResponse.json()).resolves.toEqual([ + { + id: 'project-default', + name: 'Default Studio Project', + description: null, + createdAt: '2026-05-31T00:00:00.000Z', + updatedAt: '2026-05-31T00:00:00.000Z', + }, + ]); + + const createProjectResponse = await studio.app.request('/api/projects', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ name: 'Seam Project', description: 'composition test' }), + }); + expect(createProjectResponse.status).toBe(201); + await expect(createProjectResponse.json()).resolves.toEqual({ + id: 'project-created', + name: 'Seam Project', + description: 'composition test', + createdAt: '2026-05-31T00:00:00.000Z', + updatedAt: '2026-05-31T00:00:00.000Z', + }); + expect(logger).toHaveBeenCalledWith('info', 'api', 'Project created: Seam Project'); + }); + + it('wires catalog command routes through the injected Catalog Entry store', async () => { + const softDeleteCatalogImage = vi.fn((id: string) => + id === 'catalog-image-1' + ? { + id: 'catalog-image-1', + libraryId: 'library-1', + filePath: 'D:/library/outputs/image.png', + thumbnailPath: null, + publicUrl: '/library/outputs/image.png', + thumbnailUrl: null, + prompt: 'Prompt', + negativePrompt: null, + aspectRatio: '1:1', + imageSize: '1K', + width: null, + height: null, + mimeType: 'image/png', + fileSizeBytes: null, + jobId: null, + workspaceId: 'default', + batchId: 'batch-1', + recipeId: null, + isFavorite: false, + isDeleted: true, + deletedAt: '2026-05-31T00:00:00.000Z', + tags: [], + generationConfig: null, + createdAt: '2026-05-31T00:00:00.000Z', + } + : null, + ); + + const catalogStore = createFakeCatalogStore({ + softDeleteCatalogImage, + }); + + const studio = await createStudioApp({ + runInit: false, + dependencies: { + dbStore: createFakeDbStore(), + catalogStore, + worker: createWorkerDependency(), + }, + }); + + const response = await studio.app.request('/api/catalog/catalog-image-1', { + method: 'DELETE', + }); + + expect(response.status).toBe(200); + await expect(response.json()).resolves.toEqual( + expect.objectContaining({ id: 'catalog-image-1', isDeleted: true }), + ); + expect(softDeleteCatalogImage).toHaveBeenCalledWith('catalog-image-1'); + }); + + it('surfaces codex route failures through the composition seam', async () => { + const readCodexModelCatalog = vi.fn(async () => { + throw new Error('catalog unavailable'); + }); + + const studio = await createStudioApp({ + runInit: false, + dependencies: { + dbStore: createFakeDbStore(), + catalogStore: createFakeCatalogStore(), + worker: createWorkerDependency(), + readCodexModelCatalog, + }, + }); + + const modelsResponse = await studio.app.request('/api/codex/models'); + + expect(modelsResponse.status).toBeGreaterThanOrEqual(500); + expect(readCodexModelCatalog).toHaveBeenCalledTimes(1); + }); + + it('wires app-server start route to injected runtime dependencies', async () => { + const ensureAppServer = vi.fn(); + const isAppServerRunning = vi.fn(() => true); + const getAppServerDiagnostics = vi.fn(() => ({ + pid: 4242, + lastStartError: null, + lastEnsureAt: null, + lastEnsureReason: null, + lastExitCode: null, + lastExitAt: null, + lastInvocation: null, + lastStartAt: null, + })); + + const studio = await createStudioApp({ + runInit: false, + dependencies: { + dbStore: createFakeDbStore(), + catalogStore: createFakeCatalogStore(), + worker: createWorkerDependency(), + ensureAppServer, + isAppServerRunning, + getAppServerDiagnostics, + }, + }); + + const response = await studio.app.request('/api/app-server/start', { + method: 'POST', + }); + + expect(response.status).toBe(200); + await expect(response.json()).resolves.toEqual({ + running: true, + wsUrl: expect.any(String), + pid: 4242, + lastStartError: null, + }); + expect(ensureAppServer).toHaveBeenCalledWith('user'); + expect(isAppServerRunning).toHaveBeenCalled(); + expect(getAppServerDiagnostics).toHaveBeenCalled(); + }); +}); diff --git a/apps/local-server/src/codex/rpcClient.test.ts b/apps/local-server/src/codex/rpcClient.test.ts new file mode 100644 index 00000000..0781fcc2 --- /dev/null +++ b/apps/local-server/src/codex/rpcClient.test.ts @@ -0,0 +1,57 @@ +import { beforeAll, describe, expect, it, vi } from 'vite-plus/test'; + +vi.mock('../config', () => ({ + getCodexWsUrl: () => 'ws://127.0.0.1:4317', +})); + +vi.mock('./processSupervisor', () => ({ + ensureAppServer: () => {}, +})); + +let CodexRpcClient: typeof import('./rpcClient').CodexRpcClient; + +beforeAll(async () => { + ({ CodexRpcClient } = await import('./rpcClient')); +}); + +describe('CodexRpcClient', () => { + it('resolves waitForNotification from buffered notifications', async () => { + const client = new CodexRpcClient({ ensureAppServer: () => {} }); + (client as any).handleMessage( + JSON.stringify({ method: 'turn/completed', params: { turn: { id: 'turn-1' } } }), + ); + + const notification = await client.waitForNotification( + (message) => message.method === 'turn/completed', + 100, + ); + + expect(notification.method).toBe('turn/completed'); + }); + + it('resolves waitForNotification when a matching message arrives later', async () => { + const client = new CodexRpcClient({ ensureAppServer: () => {} }); + const waiting = client.waitForNotification((message) => message.method === 'job.progress', 500); + + setTimeout(() => { + (client as any).handleMessage( + JSON.stringify({ method: 'job.progress', params: { id: 'job-1' } }), + ); + }, 10); + + await expect(waiting).resolves.toMatchObject({ method: 'job.progress' }); + }); + + it('rejects waitForNotification on timeout', async () => { + const client = new CodexRpcClient({ ensureAppServer: () => {} }); + const waiting = client.waitForNotification((message) => message.method === 'never', 20); + await expect(waiting).rejects.toThrow('Timed out waiting for Codex notification'); + }); + + it('rejects waiters when client closes', async () => { + const client = new CodexRpcClient({ ensureAppServer: () => {} }); + const waiting = client.waitForNotification((message) => message.method === 'never', 2000); + client.close(); + await expect(waiting).rejects.toThrow('Codex app-server socket closed'); + }); +}); diff --git a/apps/local-server/src/codex/rpcClient.ts b/apps/local-server/src/codex/rpcClient.ts index c43d92d1..ca1deee8 100644 --- a/apps/local-server/src/codex/rpcClient.ts +++ b/apps/local-server/src/codex/rpcClient.ts @@ -44,7 +44,12 @@ export class CodexRpcClient { { resolve: (value: any) => void; reject: (error: Error) => void } >(); private notifications: JsonRpcMessage[] = []; - private notificationWaiters = new Set<(error: Error) => void>(); + private notificationListeners = new Set<{ + predicate: (message: JsonRpcMessage) => boolean; + resolve: (message: JsonRpcMessage) => void; + reject: (error: Error) => void; + timeout: ReturnType; + }>(); constructor({ ensureAppServer: ensureAppServerFn = ensureAppServer, @@ -94,10 +99,7 @@ export class CodexRpcClient { pending.reject(error); } this.pending.clear(); - for (const reject of this.notificationWaiters) { - reject(error); - } - this.notificationWaiters.clear(); + this.rejectNotificationListeners(error); }); resolve(); }); @@ -129,27 +131,24 @@ export class CodexRpcClient { if (existing) return Promise.resolve(existing); return new Promise((resolve, reject) => { - const started = Date.now(); - const handleSocketClose = (error: Error) => { - clearInterval(interval); - this.notificationWaiters.delete(handleSocketClose); - reject(error); + const listener = { + predicate, + resolve: (message: JsonRpcMessage) => { + clearTimeout(listener.timeout); + this.notificationListeners.delete(listener); + resolve(message); + }, + reject: (error: Error) => { + clearTimeout(listener.timeout); + this.notificationListeners.delete(listener); + reject(error); + }, + timeout: setTimeout(() => { + listener.reject(new Error('Timed out waiting for Codex notification')); + }, timeoutMs), }; - const interval = setInterval(() => { - const match = this.notifications.find(predicate); - if (match) { - clearInterval(interval); - this.notificationWaiters.delete(handleSocketClose); - resolve(match); - return; - } - if (Date.now() - started > timeoutMs) { - clearInterval(interval); - this.notificationWaiters.delete(handleSocketClose); - reject(new Error('Timed out waiting for Codex notification')); - } - }, 250); - this.notificationWaiters.add(handleSocketClose); + + this.notificationListeners.add(listener); }); } @@ -162,10 +161,18 @@ export class CodexRpcClient { } close() { + this.rejectNotificationListeners(new Error('Codex app-server socket closed')); this.socket?.close(); this.socket = null; } + private rejectNotificationListeners(error: Error) { + for (const listener of this.notificationListeners) { + listener.reject(error); + } + this.notificationListeners.clear(); + } + private handleMessage(raw: string) { let message: JsonRpcMessage; try { @@ -186,6 +193,11 @@ export class CodexRpcClient { } this.notifications.push(message); + for (const listener of [...this.notificationListeners]) { + if (listener.predicate(message)) { + listener.resolve(message); + } + } } } diff --git a/apps/local-server/src/codex/runtimePolicy.test.ts b/apps/local-server/src/codex/runtimePolicy.test.ts new file mode 100644 index 00000000..fac7da80 --- /dev/null +++ b/apps/local-server/src/codex/runtimePolicy.test.ts @@ -0,0 +1,25 @@ +import { describe, expect, it } from 'vite-plus/test'; +import { isTransientCodexRuntimeErrorMessage, normalizeCodexRetryPolicy } from './runtimePolicy'; + +describe('runtimePolicy', () => { + it('normalizes retry policy values', () => { + expect(normalizeCodexRetryPolicy({})).toEqual({ maxAttempts: 2, retryDelayMs: 1500 }); + expect(normalizeCodexRetryPolicy({ maxAttempts: 0, retryDelayMs: -5 })).toEqual({ + maxAttempts: 1, + retryDelayMs: 0, + }); + expect(normalizeCodexRetryPolicy({ maxAttempts: 3.7, retryDelayMs: 250.8 })).toEqual({ + maxAttempts: 3, + retryDelayMs: 250, + }); + }); + + it('classifies transient Codex runtime messages', () => { + expect(isTransientCodexRuntimeErrorMessage('stream disconnected during turn')).toBe(true); + expect(isTransientCodexRuntimeErrorMessage('Timed out waiting for Codex notification')).toBe( + true, + ); + expect(isTransientCodexRuntimeErrorMessage('socket is not open')).toBe(true); + expect(isTransientCodexRuntimeErrorMessage('validation failed')).toBe(false); + }); +}); diff --git a/apps/local-server/src/codex/runtimePolicy.ts b/apps/local-server/src/codex/runtimePolicy.ts new file mode 100644 index 00000000..d34535d9 --- /dev/null +++ b/apps/local-server/src/codex/runtimePolicy.ts @@ -0,0 +1,28 @@ +export interface CodexRetryPolicy { + maxAttempts: number; + retryDelayMs: number; +} + +export const DEFAULT_CODEX_RETRY_POLICY: CodexRetryPolicy = { + maxAttempts: 2, + retryDelayMs: 1500, +}; + +export function normalizeCodexRetryPolicy(policy: Partial): CodexRetryPolicy { + return { + maxAttempts: Math.max( + 1, + Math.floor(policy.maxAttempts ?? DEFAULT_CODEX_RETRY_POLICY.maxAttempts), + ), + retryDelayMs: Math.max( + 0, + Math.floor(policy.retryDelayMs ?? DEFAULT_CODEX_RETRY_POLICY.retryDelayMs), + ), + }; +} + +export function isTransientCodexRuntimeErrorMessage(message: string) { + return /stream disconnected|Timed out waiting for Codex notification|thread.+not found|unknown thread|invalid thread|socket is not open|socket closed|websocket/i.test( + message, + ); +} diff --git a/apps/local-server/src/codex/turn.ts b/apps/local-server/src/codex/turn.ts index 2ed8366f..771fcd86 100644 --- a/apps/local-server/src/codex/turn.ts +++ b/apps/local-server/src/codex/turn.ts @@ -7,6 +7,11 @@ import { createAssetExtractor, type AssetExtractor } from './assetExtractor'; import { resolveJobExecutionOptions } from './executionOptions'; import { resolveCodexImagegenSessionIdentity } from './sessionIdentity'; import { buildCodexImagegenTurnInput } from './turnInput'; +import { + DEFAULT_CODEX_RETRY_POLICY, + isTransientCodexRuntimeErrorMessage, + normalizeCodexRetryPolicy, +} from './runtimePolicy'; import { closeImagegenSession, getImagegenSession, @@ -50,6 +55,8 @@ export interface CodexTurnDependencies { imagegenSkillPath?: string; logger?: typeof log; sleep?: (durationMs: number) => Promise; + maxAttempts?: number; + retryDelayMs?: number; } function createAbortError() { @@ -124,6 +131,8 @@ interface ResolvedCodexTurnDependencies { imagegenSkillPath: string; logger: typeof log; sleep: (durationMs: number) => Promise; + maxAttempts: number; + retryDelayMs: number; } async function runCodexImagegenTurn( @@ -273,8 +282,12 @@ async function runImagegenJob( }); const { sessionKey, reusable: reusableSession } = sessionIdentity; let lastError: unknown = null; + const retryPolicy = normalizeCodexRetryPolicy({ + maxAttempts: dependencies.maxAttempts, + retryDelayMs: dependencies.retryDelayMs, + }); - for (let attempt = 1; attempt <= 2; attempt += 1) { + for (let attempt = 1; attempt <= retryPolicy.maxAttempts; attempt += 1) { let runResult!: TurnResult; const session = await dependencies.getSession(sessionKey, job.execution); const run = session.queue.then(async () => { @@ -315,18 +328,15 @@ async function runImagegenJob( lastError = error; if (isAbortError(error)) throw error; const message = error instanceof Error ? error.message : String(error); - const retryable = - /stream disconnected|Timed out waiting for Codex notification|thread.+not found|unknown thread|invalid thread|socket is not open|socket closed|websocket/i.test( - message, - ); - if (!retryable || attempt === 2) throw error; + const retryable = isTransientCodexRuntimeErrorMessage(message); + if (!retryable || attempt === retryPolicy.maxAttempts) throw error; dependencies.logger( 'warn', 'codex-session', `Retrying ${job.id} after transient Codex failure on ${sessionKey}: ${message}`, job.id, ); - await dependencies.sleep(1_500); + await dependencies.sleep(retryPolicy.retryDelayMs); } } @@ -349,6 +359,8 @@ export function createCodexTurn({ ), logger = log, sleep = (durationMs: number) => Bun.sleep(durationMs), + maxAttempts = DEFAULT_CODEX_RETRY_POLICY.maxAttempts, + retryDelayMs = DEFAULT_CODEX_RETRY_POLICY.retryDelayMs, }: CodexTurnDependencies = {}): CodexTurn { const dependencies: ResolvedCodexTurnDependencies = { createAssetExtractor: createAssetExtractorFn, @@ -361,6 +373,8 @@ export function createCodexTurn({ imagegenSkillPath, logger, sleep, + maxAttempts, + retryDelayMs, }; return { diff --git a/apps/local-server/src/jobRoutes.test.ts b/apps/local-server/src/jobRoutes.test.ts index 7b513e38..59654a1f 100644 --- a/apps/local-server/src/jobRoutes.test.ts +++ b/apps/local-server/src/jobRoutes.test.ts @@ -304,4 +304,50 @@ describe('jobRoutes', () => { }); expect(enqueueJob).not.toHaveBeenCalled(); }); + + it('rejects malformed JSON and invalid boundary payloads', async () => { + const enqueueJob = vi.fn(); + const routes = createJobRoutes({ + listJobs: () => [], + getJob: () => null, + getJobDetail: async () => null, + cancelQueuedOrRunningJob: () => null, + ensureDefaultProjectId: () => 'project-default', + createJobId: () => 'job-new', + createJob: () => createJob({ id: 'job-new' }), + updateJobFinalPrompt: () => null, + processReferences: async () => ({ + augmentedPrompt: 'draw a lighthouse', + persistedRefs: [], + }), + hydrateSourceSpecAssetPaths: (sourceSpec) => sourceSpec, + readLibraryDir: () => 'D:/library', + resolveProviderExecutionBlocker: () => null, + isReferenceProcessingError, + publishEvent, + logJobCreated: () => {}, + enqueueJob, + }); + + const malformedJson = await routes.request('/', { + method: 'POST', + body: '{"kind":"codex_imagegen",', + headers: { 'Content-Type': 'application/json' }, + }); + expect(malformedJson.status).toBe(400); + await expect(malformedJson.json()).resolves.toMatchObject({ + code: 'invalid_json', + }); + + const invalidPayload = await routes.request('/', { + method: 'POST', + body: JSON.stringify({ kind: 123, prompt: 'draw a lighthouse' }), + headers: { 'Content-Type': 'application/json' }, + }); + expect(invalidPayload.status).toBe(400); + await expect(invalidPayload.json()).resolves.toMatchObject({ + code: 'invalid_request_body', + }); + expect(enqueueJob).not.toHaveBeenCalled(); + }); }); diff --git a/apps/local-server/src/jobRoutes.ts b/apps/local-server/src/jobRoutes.ts index 66690533..2495c72f 100644 --- a/apps/local-server/src/jobRoutes.ts +++ b/apps/local-server/src/jobRoutes.ts @@ -1,4 +1,5 @@ import { Hono } from 'hono'; +import { Either, Schema } from 'effect'; import type { CreateJobRequest, GenerationTaskSpec, @@ -55,6 +56,38 @@ interface JobRoutesDependencies { enqueueJob: (job: Job) => void; } +const CreateJobRequestBoundarySchema = Schema.Struct({ + projectId: Schema.optional(Schema.String), + kind: Schema.Union( + Schema.Literal('dry_run'), + Schema.Literal('codex_imagegen'), + Schema.Literal('image_generate'), + Schema.Literal('image_edit'), + Schema.Literal('style_preset_card'), + Schema.Literal('sprite_sheet'), + Schema.Literal('texture_generate'), + ), + providerId: Schema.optional(Schema.Union(Schema.String, Schema.Null)), + sourceSpec: Schema.optional(Schema.Union(Schema.Unknown, Schema.Null)), + prompt: Schema.optional(Schema.String), + execution: Schema.optional(Schema.Union(Schema.Unknown, Schema.Null)), + references: Schema.optional( + Schema.Array( + Schema.Struct({ + name: Schema.String, + dataUrl: Schema.String, + strength: Schema.Number, + }), + ), + ), +}); + +type CreateJobRequestBoundary = Schema.Schema.Type; + +function decodeCreateJobRequestBoundary(body: unknown) { + return Schema.decodeUnknownEither(CreateJobRequestBoundarySchema)(body); +} + function shouldRequireLocalRunIds(sourceSpec: GenerationTaskSpec | null) { const metadata = sourceSpec?.metadata && @@ -134,7 +167,43 @@ export function createJobRoutes({ }); routes.post('/', async (c) => { - const body = (await c.req.json()) as CreateJobRequest; + const rawBody = await c.req + .json() + .catch(() => ({ __invalidJson: true }) as { __invalidJson: true }); + if ('__invalidJson' in rawBody) { + return c.json( + { + error: 'Invalid request body', + code: 'invalid_json', + reason: 'Request body must be valid JSON.', + }, + 400, + ); + } + + const decodedBody = decodeCreateJobRequestBoundary(rawBody); + if (Either.isLeft(decodedBody)) { + return c.json( + { + error: 'Invalid request body', + code: 'invalid_request_body', + reason: 'Request payload does not match CreateJobRequest boundary schema.', + }, + 400, + ); + } + + const boundaryBody: CreateJobRequestBoundary = decodedBody.right; + const body: CreateJobRequest = { + projectId: boundaryBody.projectId, + kind: boundaryBody.kind, + providerId: boundaryBody.providerId, + sourceSpec: boundaryBody.sourceSpec as CreateJobRequest['sourceSpec'], + prompt: boundaryBody.prompt ?? '', + execution: boundaryBody.execution as CreateJobRequest['execution'], + references: boundaryBody.references as CreateJobRequest['references'], + }; + const projectId = body.projectId || ensureDefaultProjectId(); const prompt = (body.prompt || body.sourceSpec?.prompt || '').trim(); if (!prompt) return c.json({ error: 'Prompt is required' }, 400); diff --git a/apps/local-server/src/librariesRoutes.test.ts b/apps/local-server/src/librariesRoutes.test.ts index 11b093cf..6b3dc27a 100644 --- a/apps/local-server/src/librariesRoutes.test.ts +++ b/apps/local-server/src/librariesRoutes.test.ts @@ -1,21 +1,21 @@ -import { describe, expect, it, vi } from "vite-plus/test"; -import type { StudioLibrary } from "./libraries"; -import { createLibrariesRoutes } from "./librariesRoutes"; +import { describe, expect, it, vi } from 'vite-plus/test'; +import type { StudioLibrary } from './libraries'; +import { createLibrariesRoutes } from './librariesRoutes'; function makeLibrary(overrides: Partial = {}): StudioLibrary { return { - id: overrides.id ?? "library-1", - name: overrides.name ?? "Library 1", - path: overrides.path ?? "D:/Library-1", + id: overrides.id ?? 'library-1', + name: overrides.name ?? 'Library 1', + path: overrides.path ?? 'D:/Library-1', isDefault: overrides.isDefault ?? true, - createdAt: overrides.createdAt ?? "2026-05-29T00:00:00.000Z", + createdAt: overrides.createdAt ?? '2026-05-29T00:00:00.000Z', }; } -describe("librariesRoutes", () => { - it("lists and registers libraries through the route seam", async () => { +describe('librariesRoutes', () => { + it('lists and registers libraries through the route seam', async () => { const listed = [makeLibrary()]; - const created = makeLibrary({ id: "library-2", isDefault: false, name: "New Library" }); + const created = makeLibrary({ id: 'library-2', isDefault: false, name: 'New Library' }); const listLibraries = vi.fn(() => listed); const registerLibrary = vi.fn(() => created); const setDefaultLibrary = vi.fn(() => null); @@ -30,32 +30,32 @@ describe("librariesRoutes", () => { publishEvent, }); - const listResponse = await routes.request("/"); + const listResponse = await routes.request('/'); expect(listResponse.status).toBe(200); await expect(listResponse.json()).resolves.toEqual(listed); - const createResponse = await routes.request("/", { - method: "POST", - body: JSON.stringify({ name: "New Library", path: "D:/new-library", isDefault: false }), - headers: { "Content-Type": "application/json" }, + const createResponse = await routes.request('/', { + method: 'POST', + body: JSON.stringify({ name: 'New Library', path: 'D:/new-library', isDefault: false }), + headers: { 'Content-Type': 'application/json' }, }); expect(createResponse.status).toBe(201); await expect(createResponse.json()).resolves.toEqual(created); expect(registerLibrary).toHaveBeenCalledWith({ - name: "New Library", - path: "D:/new-library", + name: 'New Library', + path: 'D:/new-library', isDefault: false, }); - expect(publishEvent).toHaveBeenCalledWith("library.created", created); + expect(publishEvent).toHaveBeenCalledWith('library.created', created); }); - it("handles set-default and delete responses", async () => { + it('handles set-default and delete responses', async () => { const listLibraries = vi.fn(() => []); const registerLibrary = vi.fn(() => makeLibrary()); const setDefaultLibrary = vi .fn<(...args: [string]) => StudioLibrary | null>() - .mockReturnValueOnce(makeLibrary({ id: "library-2", isDefault: true })) + .mockReturnValueOnce(makeLibrary({ id: 'library-2', isDefault: true })) .mockReturnValueOnce(null); const removeLibrary = vi .fn<(...args: [string]) => boolean>() @@ -71,23 +71,58 @@ describe("librariesRoutes", () => { publishEvent, }); - const setDefaultOk = await routes.request("/library-2/default", { method: "PUT" }); + const setDefaultOk = await routes.request('/library-2/default', { method: 'PUT' }); expect(setDefaultOk.status).toBe(200); - await expect(setDefaultOk.json()).resolves.toEqual(expect.objectContaining({ id: "library-2" })); + await expect(setDefaultOk.json()).resolves.toEqual( + expect.objectContaining({ id: 'library-2' }), + ); - const setDefaultMissing = await routes.request("/missing/default", { method: "PUT" }); + const setDefaultMissing = await routes.request('/missing/default', { method: 'PUT' }); expect(setDefaultMissing.status).toBe(404); - const deleteOk = await routes.request("/library-2", { method: "DELETE" }); + const deleteOk = await routes.request('/library-2', { method: 'DELETE' }); expect(deleteOk.status).toBe(200); await expect(deleteOk.json()).resolves.toEqual({ ok: true }); - const deleteMissing = await routes.request("/missing", { method: "DELETE" }); + const deleteMissing = await routes.request('/missing', { method: 'DELETE' }); expect(deleteMissing.status).toBe(400); expect(publishEvent).toHaveBeenCalledWith( - "library.default", - expect.objectContaining({ id: "library-2" }), + 'library.default', + expect.objectContaining({ id: 'library-2' }), ); }); -}); \ No newline at end of file + + it('rejects malformed JSON and invalid create-library payload', async () => { + const listLibraries = vi.fn(() => []); + const registerLibrary = vi.fn(() => makeLibrary({ id: 'library-2' })); + const setDefaultLibrary = vi.fn(() => null); + const removeLibrary = vi.fn(() => false); + const publishEvent = vi.fn(); + + const routes = createLibrariesRoutes({ + listLibraries, + registerLibrary, + setDefaultLibrary, + removeLibrary, + publishEvent, + }); + + const malformed = await routes.request('/', { + method: 'POST', + body: '{"name":"New Library"', + headers: { 'Content-Type': 'application/json' }, + }); + expect(malformed.status).toBe(400); + await expect(malformed.json()).resolves.toMatchObject({ code: 'invalid_json' }); + + const invalid = await routes.request('/', { + method: 'POST', + body: JSON.stringify({ name: 'x', path: 123 }), + headers: { 'Content-Type': 'application/json' }, + }); + expect(invalid.status).toBe(400); + await expect(invalid.json()).resolves.toMatchObject({ code: 'invalid_request_body' }); + expect(registerLibrary).not.toHaveBeenCalled(); + }); +}); diff --git a/apps/local-server/src/librariesRoutes.ts b/apps/local-server/src/librariesRoutes.ts index 8b3e94d6..8c415a39 100644 --- a/apps/local-server/src/librariesRoutes.ts +++ b/apps/local-server/src/librariesRoutes.ts @@ -1,6 +1,7 @@ -import { Hono } from "hono"; -import type { registerLibrary, listLibraries, removeLibrary, setDefaultLibrary } from "./libraries"; -import type { publishEvent } from "./events"; +import { Hono } from 'hono'; +import { Either, Schema } from 'effect'; +import type { registerLibrary, listLibraries, removeLibrary, setDefaultLibrary } from './libraries'; +import type { publishEvent } from './events'; interface LibrariesRoutesDependencies { listLibraries: typeof listLibraries; @@ -10,6 +11,12 @@ interface LibrariesRoutesDependencies { publishEvent: typeof publishEvent; } +const CreateLibraryBoundarySchema = Schema.Struct({ + name: Schema.optional(Schema.String), + path: Schema.String, + isDefault: Schema.optional(Schema.Boolean), +}); + export function createLibrariesRoutes({ listLibraries, registerLibrary, @@ -19,32 +26,58 @@ export function createLibrariesRoutes({ }: LibrariesRoutesDependencies) { const routes = new Hono(); - routes.get("/", (c) => c.json(listLibraries())); + routes.get('/', (c) => c.json(listLibraries())); + + routes.post('/', async (c) => { + const rawBody = await c.req + .json() + .catch(() => ({ __invalidJson: true }) as { __invalidJson: true }); + if ('__invalidJson' in rawBody) { + return c.json( + { + error: 'Invalid request body', + code: 'invalid_json', + reason: 'Request body must be valid JSON.', + }, + 400, + ); + } + + const decodedBody = Schema.decodeUnknownEither(CreateLibraryBoundarySchema)(rawBody); + if (Either.isLeft(decodedBody)) { + return c.json( + { + error: 'Invalid request body', + code: 'invalid_request_body', + reason: 'Library payload is invalid.', + }, + 400, + ); + } - routes.post("/", async (c) => { - const body = await c.req.json().catch(() => ({})); + const body = decodedBody.right; const library = registerLibrary({ - name: body.name || "Untitled Library", + name: body.name || 'Untitled Library', path: body.path, isDefault: Boolean(body.isDefault), }); - publishEvent("library.created", library); + publishEvent('library.created', library); return c.json(library, 201); }); - routes.put("/:id/default", (c) => { - const library = setDefaultLibrary(c.req.param("id")); - if (!library) return c.json({ error: "Library not found" }, 404); - publishEvent("library.default", library); + routes.put('/:id/default', (c) => { + const library = setDefaultLibrary(c.req.param('id')); + if (!library) return c.json({ error: 'Library not found' }, 404); + publishEvent('library.default', library); return c.json(library); }); - routes.delete("/:id", (c) => { - if (!removeLibrary(c.req.param("id"))) { - return c.json({ error: "Library not found or default library cannot be removed" }, 400); + routes.delete('/:id', (c) => { + if (!removeLibrary(c.req.param('id'))) { + return c.json({ error: 'Library not found or default library cannot be removed' }, 400); } return c.json({ ok: true }); }); return routes; -} \ No newline at end of file +} diff --git a/apps/local-server/src/outputSourceRoutes.test.ts b/apps/local-server/src/outputSourceRoutes.test.ts index 6009f855..719a01ed 100644 --- a/apps/local-server/src/outputSourceRoutes.test.ts +++ b/apps/local-server/src/outputSourceRoutes.test.ts @@ -1,14 +1,14 @@ -import { describe, expect, it, vi } from "vite-plus/test"; -import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs"; -import os from "node:os"; -import path from "node:path"; +import { describe, expect, it, vi } from 'vite-plus/test'; +import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs'; +import os from 'node:os'; +import path from 'node:path'; import { createDefaultEditableStudioSettings, type CatalogImage, -} from "../../../packages/shared/src"; -import type { StudioSettingsStorage } from "./studioSettingsStore"; -import { createOutputSourceRoutes } from "./outputSourceRoutes"; +} from '../../../packages/shared/src'; +import type { StudioSettingsStorage } from './studioSettingsStore'; +import { createOutputSourceRoutes } from './outputSourceRoutes'; function createMemoryStorage(initial?: Record): StudioSettingsStorage { const values = new Map(Object.entries(initial ?? {})); @@ -22,16 +22,16 @@ function createMemoryStorage(initial?: Record): StudioSettingsSt }; } -describe("outputSourceRoutes", () => { - it("registers and lists output source files through the route seam", async () => { - const root = mkdtempSync(path.join(os.tmpdir(), "output-source-routes-")); - const sourceDir = path.join(root, "source"); - const libraryDir = path.join(root, "library"); +describe('outputSourceRoutes', () => { + it('registers and lists output source files through the route seam', async () => { + const root = mkdtempSync(path.join(os.tmpdir(), 'output-source-routes-')); + const sourceDir = path.join(root, 'source'); + const libraryDir = path.join(root, 'library'); try { mkdirSync(sourceDir, { recursive: true }); mkdirSync(libraryDir, { recursive: true }); - writeFileSync(path.join(sourceDir, "one.png"), "png"); + writeFileSync(path.join(sourceDir, 'one.png'), 'png'); const storage = createMemoryStorage(); const publishEvent = vi.fn(); @@ -39,21 +39,21 @@ describe("outputSourceRoutes", () => { const routes = createOutputSourceRoutes({ settingsStorage: storage, readSettings: () => createDefaultEditableStudioSettings(), - readConfig: () => ({ libraryDir }) as ReturnType, + readConfig: () => ({ libraryDir }) as ReturnType, registerCatalogImage: () => { - throw new Error("registerCatalogImage should not be called in this test"); + throw new Error('registerCatalogImage should not be called in this test'); }, publishEvent, }); - const createResponse = await routes.request("/", { - method: "POST", + const createResponse = await routes.request('/', { + method: 'POST', body: JSON.stringify({ - label: "external source", + label: 'external source', path: sourceDir, - providerId: "comfy", + providerId: 'comfy', }), - headers: { "Content-Type": "application/json" }, + headers: { 'Content-Type': 'application/json' }, }); expect(createResponse.status).toBe(201); @@ -63,9 +63,9 @@ describe("outputSourceRoutes", () => { const filesResponse = await routes.request(`/${created.id}/files?limit=10`); expect(filesResponse.status).toBe(200); const filesPayload = (await filesResponse.json()) as { files: Array<{ fileName: string }> }; - expect(filesPayload.files).toEqual([expect.objectContaining({ fileName: "one.png" })]); + expect(filesPayload.files).toEqual([expect.objectContaining({ fileName: 'one.png' })]); expect(publishEvent).toHaveBeenCalledWith( - "output-source.registered", + 'output-source.registered', expect.objectContaining({ id: created.id }), ); } finally { @@ -73,25 +73,25 @@ describe("outputSourceRoutes", () => { } }); - it("imports files and publishes imported event", async () => { - const root = mkdtempSync(path.join(os.tmpdir(), "output-source-routes-import-")); - const sourceDir = path.join(root, "source"); - const libraryDir = path.join(root, "library"); + it('imports files and publishes imported event', async () => { + const root = mkdtempSync(path.join(os.tmpdir(), 'output-source-routes-import-')); + const sourceDir = path.join(root, 'source'); + const libraryDir = path.join(root, 'library'); try { mkdirSync(sourceDir, { recursive: true }); mkdirSync(libraryDir, { recursive: true }); - writeFileSync(path.join(sourceDir, "hero.webp"), "webp"); + writeFileSync(path.join(sourceDir, 'hero.webp'), 'webp'); const storage = createMemoryStorage(); const publishEvent = vi.fn(); const registerCatalogImage = vi.fn((input: any) => { const image = { - id: "catalog-1", - libraryId: "library-1", + id: 'catalog-1', + libraryId: 'library-1', filePath: input.filePath, thumbnailPath: null, - publicUrl: "/library/fake", + publicUrl: '/library/fake', thumbnailUrl: null, prompt: input.prompt ?? null, negativePrompt: null, @@ -110,7 +110,7 @@ describe("outputSourceRoutes", () => { deletedAt: null, tags: input.tags ?? [], generationConfig: input.generationConfig ?? null, - createdAt: "2026-05-25T00:00:00.000Z", + createdAt: '2026-05-25T00:00:00.000Z', } satisfies CatalogImage; return image; }); @@ -118,27 +118,27 @@ describe("outputSourceRoutes", () => { const routes = createOutputSourceRoutes({ settingsStorage: storage, readSettings: () => createDefaultEditableStudioSettings(), - readConfig: () => ({ libraryDir }) as ReturnType, + readConfig: () => ({ libraryDir }) as ReturnType, registerCatalogImage, publishEvent, }); - const createResponse = await routes.request("/", { - method: "POST", + const createResponse = await routes.request('/', { + method: 'POST', body: JSON.stringify({ - label: "external source", + label: 'external source', path: sourceDir, - providerId: "comfy", + providerId: 'comfy', }), - headers: { "Content-Type": "application/json" }, + headers: { 'Content-Type': 'application/json' }, }); const created = (await createResponse.json()) as { id: string }; const importResponse = await routes.request(`/${created.id}/import`, { - method: "POST", - body: JSON.stringify({ files: ["hero.webp"], workspaceId: "workspace-1" }), - headers: { "Content-Type": "application/json" }, + method: 'POST', + body: JSON.stringify({ files: ['hero.webp'], workspaceId: 'workspace-1' }), + headers: { 'Content-Type': 'application/json' }, }); expect(importResponse.status).toBe(201); @@ -147,17 +147,83 @@ describe("outputSourceRoutes", () => { }; expect(payload.imported).toEqual([ - expect.objectContaining({ sourceFile: "hero.webp", catalogId: "catalog-1" }), + expect.objectContaining({ sourceFile: 'hero.webp', catalogId: 'catalog-1' }), ]); expect(registerCatalogImage).toHaveBeenCalled(); expect(publishEvent).toHaveBeenCalledWith( - "output-source.imported", + 'output-source.imported', expect.objectContaining({ - imported: [expect.objectContaining({ sourceFile: "hero.webp", catalogId: "catalog-1" })], + imported: [expect.objectContaining({ sourceFile: 'hero.webp', catalogId: 'catalog-1' })], }), ); } finally { rmSync(root, { recursive: true, force: true }); } }); + + it('rejects malformed JSON and invalid payload shapes', async () => { + const root = mkdtempSync(path.join(os.tmpdir(), 'output-source-routes-invalid-')); + const sourceDir = path.join(root, 'source'); + const libraryDir = path.join(root, 'library'); + + try { + mkdirSync(sourceDir, { recursive: true }); + mkdirSync(libraryDir, { recursive: true }); + + const storage = createMemoryStorage(); + const publishEvent = vi.fn(); + + const routes = createOutputSourceRoutes({ + settingsStorage: storage, + readSettings: () => createDefaultEditableStudioSettings(), + readConfig: () => ({ libraryDir }) as ReturnType, + registerCatalogImage: () => { + throw new Error('registerCatalogImage should not be called in this test'); + }, + publishEvent, + }); + + const malformedRegister = await routes.request('/', { + method: 'POST', + body: '{"path":"x"', + headers: { 'Content-Type': 'application/json' }, + }); + expect(malformedRegister.status).toBe(400); + await expect(malformedRegister.json()).resolves.toMatchObject({ code: 'invalid_json' }); + + const invalidRegister = await routes.request('/', { + method: 'POST', + body: JSON.stringify({ label: 'x', path: 123 }), + headers: { 'Content-Type': 'application/json' }, + }); + expect(invalidRegister.status).toBe(400); + await expect(invalidRegister.json()).resolves.toMatchObject({ code: 'invalid_request_body' }); + + const createResponse = await routes.request('/', { + method: 'POST', + body: JSON.stringify({ label: 'ok', path: sourceDir, providerId: 'comfy' }), + headers: { 'Content-Type': 'application/json' }, + }); + expect(createResponse.status).toBe(201); + const created = (await createResponse.json()) as { id: string }; + + const malformedImport = await routes.request(`/${created.id}/import`, { + method: 'POST', + body: '{"files":["a.png"]', + headers: { 'Content-Type': 'application/json' }, + }); + expect(malformedImport.status).toBe(400); + await expect(malformedImport.json()).resolves.toMatchObject({ code: 'invalid_json' }); + + const invalidImport = await routes.request(`/${created.id}/import`, { + method: 'POST', + body: JSON.stringify({ files: 'hero.webp' }), + headers: { 'Content-Type': 'application/json' }, + }); + expect(invalidImport.status).toBe(400); + await expect(invalidImport.json()).resolves.toMatchObject({ code: 'invalid_request_body' }); + } finally { + rmSync(root, { recursive: true, force: true }); + } + }); }); diff --git a/apps/local-server/src/outputSourceRoutes.ts b/apps/local-server/src/outputSourceRoutes.ts index 4cf45352..e19e2b15 100644 --- a/apps/local-server/src/outputSourceRoutes.ts +++ b/apps/local-server/src/outputSourceRoutes.ts @@ -1,16 +1,17 @@ -import { Hono } from "hono"; +import { Hono } from 'hono'; +import { Either, Schema } from 'effect'; import { detectExternalOutputSourceCandidates, importExternalOutputSourceFiles, listExternalOutputSourceFiles, readExternalOutputSourceRegistry, registerExternalOutputSource, -} from "./outputSources"; -import type { StudioSettingsStorage } from "./studioSettingsStore"; -import type { registerCatalogImage } from "./catalog"; -import type { publishEvent } from "./events"; -import type { getSettings } from "./config"; -import type { EditableStudioSettings } from "../../../packages/shared/src"; +} from './outputSources'; +import type { StudioSettingsStorage } from './studioSettingsStore'; +import type { registerCatalogImage } from './catalog'; +import type { publishEvent } from './events'; +import type { getSettings } from './config'; +import type { EditableStudioSettings } from '../../../packages/shared/src'; interface OutputSourceRoutesDependencies { settingsStorage: StudioSettingsStorage; @@ -20,6 +21,18 @@ interface OutputSourceRoutesDependencies { publishEvent: typeof publishEvent; } +const RegisterOutputSourceBoundarySchema = Schema.Struct({ + label: Schema.optional(Schema.String), + path: Schema.String, + providerId: Schema.optional(Schema.Union(Schema.String, Schema.Null)), +}); + +const ImportOutputSourceBoundarySchema = Schema.Struct({ + files: Schema.Array(Schema.String), + limit: Schema.optional(Schema.Number), + workspaceId: Schema.optional(Schema.Union(Schema.String, Schema.Null)), +}); + export function createOutputSourceRoutes({ settingsStorage, readSettings, @@ -29,7 +42,7 @@ export function createOutputSourceRoutes({ }: OutputSourceRoutesDependencies) { const routes = new Hono(); - routes.get("/", (c) => { + routes.get('/', (c) => { const settings = readSettings(); return c.json({ registry: readExternalOutputSourceRegistry(settingsStorage), @@ -40,44 +53,98 @@ export function createOutputSourceRoutes({ }); }); - routes.post("/", async (c) => { - const body = await c.req.json().catch(() => ({})); + routes.post('/', async (c) => { + const rawBody = await c.req + .json() + .catch(() => ({ __invalidJson: true }) as { __invalidJson: true }); + if ('__invalidJson' in rawBody) { + return c.json( + { + error: 'Invalid request body', + code: 'invalid_json', + reason: 'Request body must be valid JSON.', + }, + 400, + ); + } + + const decodedBody = Schema.decodeUnknownEither(RegisterOutputSourceBoundarySchema)(rawBody); + if (Either.isLeft(decodedBody)) { + return c.json( + { + error: 'Invalid request body', + code: 'invalid_request_body', + reason: 'Output source payload is invalid.', + }, + 400, + ); + } + const result = registerExternalOutputSource({ storage: settingsStorage, libraryDir: readConfig().libraryDir, - input: body, + input: decodedBody.right, }); if (!result.ok) { return c.json({ error: result.reason }, 400); } - publishEvent("output-source.registered", result.source); + publishEvent('output-source.registered', result.source); return c.json(result.source, 201); }); - routes.get("/:id/files", (c) => { + routes.get('/:id/files', (c) => { const url = new URL(c.req.url); const result = listExternalOutputSourceFiles({ storage: settingsStorage, - sourceId: c.req.param("id"), - limit: Number(url.searchParams.get("limit") || 100), + sourceId: c.req.param('id'), + limit: Number(url.searchParams.get('limit') || 100), }); if (!result.ok) return c.json({ error: result.reason }, 404); return c.json({ source: result.source, files: result.files }); }); - routes.post("/:id/import", async (c) => { - const body = await c.req.json().catch(() => ({})); + routes.post('/:id/import', async (c) => { + const rawBody = await c.req + .json() + .catch(() => ({ __invalidJson: true }) as { __invalidJson: true }); + if ('__invalidJson' in rawBody) { + return c.json( + { + error: 'Invalid request body', + code: 'invalid_json', + reason: 'Request body must be valid JSON.', + }, + 400, + ); + } + + const decodedBody = Schema.decodeUnknownEither(ImportOutputSourceBoundarySchema)(rawBody); + if (Either.isLeft(decodedBody)) { + return c.json( + { + error: 'Invalid request body', + code: 'invalid_request_body', + reason: 'Output source import payload is invalid.', + }, + 400, + ); + } + const result = importExternalOutputSourceFiles({ storage: settingsStorage, - sourceId: c.req.param("id"), + sourceId: c.req.param('id'), libraryDir: readConfig().libraryDir, - input: body, + input: decodedBody.right as { + files: string[]; + limit?: number; + workspaceId?: string | null; + }, registerCatalogImage, }); if (!result.ok) return c.json({ error: result.reason }, 400); - publishEvent("output-source.imported", result.result); + publishEvent('output-source.imported', result.result); return c.json(result.result, 201); }); diff --git a/apps/local-server/src/projectRoutes.test.ts b/apps/local-server/src/projectRoutes.test.ts index 2664a037..7c07ea8c 100644 --- a/apps/local-server/src/projectRoutes.test.ts +++ b/apps/local-server/src/projectRoutes.test.ts @@ -1,21 +1,21 @@ -import { describe, expect, it, vi } from "vite-plus/test"; -import type { Project } from "../../../packages/shared/src"; -import { createProjectRoutes } from "./projectRoutes"; +import { describe, expect, it, vi } from 'vite-plus/test'; +import type { Project } from '../../../packages/shared/src'; +import { createProjectRoutes } from './projectRoutes'; function makeProject(overrides: Partial = {}): Project { return { - id: overrides.id ?? "project-1", - name: overrides.name ?? "Default Project", + id: overrides.id ?? 'project-1', + name: overrides.name ?? 'Default Project', description: overrides.description ?? null, - createdAt: overrides.createdAt ?? "2026-05-29T00:00:00.000Z", - updatedAt: overrides.updatedAt ?? "2026-05-29T00:00:00.000Z", + createdAt: overrides.createdAt ?? '2026-05-29T00:00:00.000Z', + updatedAt: overrides.updatedAt ?? '2026-05-29T00:00:00.000Z', }; } -describe("projectRoutes", () => { - it("lists projects and creates new projects through the seam", async () => { +describe('projectRoutes', () => { + it('lists projects and creates new projects through the seam', async () => { const listed = [makeProject()]; - const created = makeProject({ id: "project-2", name: "New Project", description: "desc" }); + const created = makeProject({ id: 'project-2', name: 'New Project', description: 'desc' }); const listProjects = vi.fn(() => listed); const createProject = vi.fn(() => created); @@ -29,20 +29,51 @@ describe("projectRoutes", () => { logProjectCreated, }); - const listResponse = await routes.request("/"); + const listResponse = await routes.request('/'); expect(listResponse.status).toBe(200); await expect(listResponse.json()).resolves.toEqual(listed); - const createResponse = await routes.request("/", { - method: "POST", - body: JSON.stringify({ name: "New Project", description: "desc" }), - headers: { "Content-Type": "application/json" }, + const createResponse = await routes.request('/', { + method: 'POST', + body: JSON.stringify({ name: 'New Project', description: 'desc' }), + headers: { 'Content-Type': 'application/json' }, }); expect(createResponse.status).toBe(201); await expect(createResponse.json()).resolves.toEqual(created); - expect(createProject).toHaveBeenCalledWith("New Project", "desc"); - expect(publishEvent).toHaveBeenCalledWith("project.created", created); - expect(logProjectCreated).toHaveBeenCalledWith("New Project"); + expect(createProject).toHaveBeenCalledWith('New Project', 'desc'); + expect(publishEvent).toHaveBeenCalledWith('project.created', created); + expect(logProjectCreated).toHaveBeenCalledWith('New Project'); }); -}); \ No newline at end of file + + it('returns 400 for malformed JSON and invalid payload', async () => { + const listProjects = vi.fn(() => []); + const createProject = vi.fn(() => makeProject({ id: 'project-2' })); + const publishEvent = vi.fn(); + const logProjectCreated = vi.fn(); + + const routes = createProjectRoutes({ + listProjects, + createProject, + publishEvent, + logProjectCreated, + }); + + const malformed = await routes.request('/', { + method: 'POST', + body: '{"name":"x"', + headers: { 'Content-Type': 'application/json' }, + }); + expect(malformed.status).toBe(400); + await expect(malformed.json()).resolves.toMatchObject({ code: 'invalid_json' }); + + const invalid = await routes.request('/', { + method: 'POST', + body: JSON.stringify({ name: 123 }), + headers: { 'Content-Type': 'application/json' }, + }); + expect(invalid.status).toBe(400); + await expect(invalid.json()).resolves.toMatchObject({ code: 'invalid_request_body' }); + expect(createProject).not.toHaveBeenCalled(); + }); +}); diff --git a/apps/local-server/src/projectRoutes.ts b/apps/local-server/src/projectRoutes.ts index cd754967..f8e2401c 100644 --- a/apps/local-server/src/projectRoutes.ts +++ b/apps/local-server/src/projectRoutes.ts @@ -1,6 +1,7 @@ -import { Hono } from "hono"; -import type { publishEvent } from "./events"; -import type { Project } from "../../../packages/shared/src"; +import { Hono } from 'hono'; +import { Either, Schema } from 'effect'; +import type { publishEvent } from './events'; +import type { Project } from '../../../packages/shared/src'; interface ProjectRoutesDependencies { listProjects: () => Project[]; @@ -9,6 +10,11 @@ interface ProjectRoutesDependencies { logProjectCreated: (projectName: string) => void; } +const CreateProjectBoundarySchema = Schema.Struct({ + name: Schema.optional(Schema.String), + description: Schema.optional(Schema.Union(Schema.String, Schema.Null)), +}); + export function createProjectRoutes({ listProjects, createProject, @@ -17,15 +23,41 @@ export function createProjectRoutes({ }: ProjectRoutesDependencies) { const routes = new Hono(); - routes.get("/", (c) => c.json(listProjects())); + routes.get('/', (c) => c.json(listProjects())); + + routes.post('/', async (c) => { + const rawBody = await c.req + .json() + .catch(() => ({ __invalidJson: true }) as { __invalidJson: true }); + if ('__invalidJson' in rawBody) { + return c.json( + { + error: 'Invalid request body', + code: 'invalid_json', + reason: 'Request body must be valid JSON.', + }, + 400, + ); + } - routes.post("/", async (c) => { - const body = await c.req.json().catch(() => ({})); - const project = createProject(body.name || "Untitled Project", body.description || null); - publishEvent("project.created", project); + const decodedBody = Schema.decodeUnknownEither(CreateProjectBoundarySchema)(rawBody); + if (Either.isLeft(decodedBody)) { + return c.json( + { + error: 'Invalid request body', + code: 'invalid_request_body', + reason: 'Project payload is invalid.', + }, + 400, + ); + } + + const body = decodedBody.right; + const project = createProject(body.name || 'Untitled Project', body.description || null); + publishEvent('project.created', project); logProjectCreated(project.name); return c.json(project, 201); }); return routes; -} \ No newline at end of file +} diff --git a/apps/local-server/src/providers/codexProvider.test.ts b/apps/local-server/src/providers/codexProvider.test.ts index caca2a4c..9868a0a0 100644 --- a/apps/local-server/src/providers/codexProvider.test.ts +++ b/apps/local-server/src/providers/codexProvider.test.ts @@ -265,6 +265,48 @@ describe('codexProvider', () => { expect(compiled.payload.text).toContain('fresh interpretation'); }); + it('adds structured quality intent before recipe directives', () => { + const sourceSpec = createGenerationTaskSpec({ + id: 'spec-quality', + task: 'image_generate', + providerId: 'codex', + prompt: 'glass owl on a plinth', + quality: { + qualityPresetId: 'product_or_ui_asset', + subject: 'glass owl', + composition: 'centered three-quarter product view', + constraints: ['clean silhouette'], + }, + metadata: { + recipeProviderDirectives: createRecipeProviderDirectives({ + recipeId: 'styles', + title: 'Styles', + sections: [ + { + title: 'Visual DNA', + directives: [{ label: 'Core Aesthetic', value: 'polished glass' }], + }, + ], + }), + }, + }); + + const compiled = compileCodexImagegenInput({ + id: 'job-quality', + projectId: 'project-1', + prompt: 'fallback', + execution: null, + sourceSpec, + }); + + expect(compiled.payload.text).toContain('Quality preset:\nproduct_or_ui_asset'); + expect(compiled.payload.text).toContain('- Subject: glass owl'); + expect(compiled.payload.text).toContain('- Constraint: clean silhouette'); + expect(compiled.payload.text.indexOf('Quality intent:')).toBeLessThan( + compiled.payload.text.indexOf('Recipe directives:'), + ); + }); + it('delegates execution to the Codex Product Runtime with compiled input text', async () => { const calls: TurnParams[] = []; const turn: CodexTurn = { diff --git a/apps/local-server/src/providers/codexProvider.ts b/apps/local-server/src/providers/codexProvider.ts index 754205a0..b5fe4b5a 100644 --- a/apps/local-server/src/providers/codexProvider.ts +++ b/apps/local-server/src/providers/codexProvider.ts @@ -1,6 +1,7 @@ import { createCompiledProviderInput, createGenerationTaskSpec, + composeGenerationQualityPromptSections, type CompiledProviderInput, type GenerationTaskSpec, } from '../../../../packages/shared/src/generationContracts'; @@ -111,12 +112,17 @@ function buildCodexPromptText(sourceSpec: GenerationTaskSpec) { const parts = [`Task: ${sourceSpec.task}`, '', 'Prompt:', sourceSpec.prompt]; const recipeProviderDirectives = sourceSpec.metadata.recipeProviderDirectives; const recipeContext = sourceSpec.metadata.recipeContext; + const qualitySections = composeGenerationQualityPromptSections(sourceSpec); const variationBrief = typeof sourceSpec.metadata.variationBrief === 'string' ? sourceSpec.metadata.variationBrief.trim() : ''; const assetLines = buildCodexAssetLines(sourceSpec); + if (qualitySections.length > 0) { + parts.push('', ...qualitySections); + } + if (isRecipeProviderDirectives(recipeProviderDirectives)) { parts.push( '', diff --git a/apps/local-server/src/providers/externalProviderInputs.test.ts b/apps/local-server/src/providers/externalProviderInputs.test.ts index da0d6026..833e050d 100644 --- a/apps/local-server/src/providers/externalProviderInputs.test.ts +++ b/apps/local-server/src/providers/externalProviderInputs.test.ts @@ -59,6 +59,8 @@ describe('external provider input compilers', () => { recipeId: 'image_to_image', stylePresetId: 'SP03-010', sourceProviderId: 'google', + qualityPresetId: null, + hasQualityIntent: false, hasRecipeProviderDirectives: false, }, }); @@ -169,6 +171,47 @@ describe('external provider input compilers', () => { expect(compiled.payload.prompt).toContain('noticeably different'); }); + it('adds structured quality intent to hosted API prompts and metadata', () => { + const sourceSpec = createGenerationTaskSpec({ + id: 'spec-google-quality', + task: 'image_generate', + providerId: 'google', + prompt: 'glass owl on a plinth', + quality: { + qualityPresetId: 'product_or_ui_asset', + subject: 'glass owl', + lighting: 'softbox highlights on glass edges', + referenceRoles: [ + { + role: 'reference', + assetName: 'mood.png', + instruction: 'Use for cool mineral color mood only.', + }, + ], + }, + }); + + const compiled = compileGoogleImageApiInput({ + id: 'job-google-quality', + projectId: 'project-1', + providerId: 'google', + prompt: 'fallback', + execution: null, + sourceSpec, + }); + + expect(compiled.payload.prompt).toContain('Quality preset:\nproduct_or_ui_asset'); + expect(compiled.payload.prompt).toContain('- Subject: glass owl'); + expect(compiled.payload.prompt).toContain('- Lighting: softbox highlights on glass edges'); + expect(compiled.payload.prompt).toContain( + '- Reference role: mood.png (reference): Use for cool mineral color mood only.', + ); + expect(compiled.payload.metadata).toMatchObject({ + qualityPresetId: 'product_or_ui_asset', + hasQualityIntent: true, + }); + }); + it('compiles Comfy local workflow input for adapter conformance fixtures', () => { const sourceSpec = createGenerationTaskSpec({ id: 'spec-comfy-1', diff --git a/apps/local-server/src/providers/externalProviderInputs.ts b/apps/local-server/src/providers/externalProviderInputs.ts index f1a49214..b6446569 100644 --- a/apps/local-server/src/providers/externalProviderInputs.ts +++ b/apps/local-server/src/providers/externalProviderInputs.ts @@ -2,6 +2,7 @@ import { createCompiledProviderInput, createGenerationTaskSpec, createProviderSessionContract, + composeGenerationQualityPromptSections, type CompiledProviderInput, type GenerationOutputContract, type GenerationProviderId, @@ -38,6 +39,8 @@ export interface HostedImageApiCompiledPayload { recipeId: string | null; stylePresetId: string | null; sourceProviderId: GenerationProviderId | null; + qualityPresetId: string | null; + hasQualityIntent: boolean; hasRecipeProviderDirectives: boolean; }; } @@ -53,6 +56,8 @@ export interface ComfyWorkflowCompiledPayload { recipeId: string | null; stylePresetId: string | null; sourceProviderId: GenerationProviderId | null; + qualityPresetId: string | null; + hasQualityIntent: boolean; hasRecipeProviderDirectives: boolean; }; } @@ -204,6 +209,8 @@ function createProviderPayloadMetadata(sourceSpec: GenerationTaskSpec) { recipeId: sourceSpec.recipeId, stylePresetId: sourceSpec.stylePresetId, sourceProviderId: sourceSpec.providerId, + qualityPresetId: sourceSpec.quality?.qualityPresetId ?? null, + hasQualityIntent: Boolean(sourceSpec.quality), hasRecipeProviderDirectives: isRecipeProviderDirectives( sourceSpec.metadata.recipeProviderDirectives, ), @@ -217,6 +224,11 @@ function buildProviderPrompt(sourceSpec: GenerationTaskSpec) { ? sourceSpec.metadata.variationBrief.trim() : ''; const sections = [sourceSpec.prompt]; + const qualitySections = composeGenerationQualityPromptSections(sourceSpec); + + if (qualitySections.length > 0) { + sections.push('', ...qualitySections); + } if (!isRecipeProviderDirectives(recipeProviderDirectives)) { if (variationBrief) { diff --git a/apps/local-server/src/providers/externalProviderResults.ts b/apps/local-server/src/providers/externalProviderResults.ts index af009232..49caa8ec 100644 --- a/apps/local-server/src/providers/externalProviderResults.ts +++ b/apps/local-server/src/providers/externalProviderResults.ts @@ -1,8 +1,14 @@ import { mkdirSync, writeFileSync } from 'node:fs'; import path from 'node:path'; +import { Effect } from 'effect'; import type { CompiledProviderInput } from '../../../../packages/shared/src'; import type { TurnResult } from '../codex/turn'; import { resolveLibraryPath } from '../library'; +import { + getExternalProviderRetryDelayMs, + isRetryableProviderStatus, + normalizeExternalProviderRetryPolicy, +} from './externalProviderRetryPolicy'; export type ExternalProviderFetch = ( input: string | URL | Request, @@ -76,7 +82,7 @@ export function responseSnippet(value: string, secrets: readonly string[] = []) } export function isRetryableStatus(status: number) { - return status === 408 || status === 429 || status >= 500; + return isRetryableProviderStatus(status); } function isAbortError(error: unknown) { @@ -97,27 +103,54 @@ export async function fetchExternalProviderWithRetry({ input: string | URL | Request; init?: RequestInit; } & ExternalProviderRetryOptions) { - let lastNetworkError: unknown = null; - - for (let attempt = 1; attempt <= maxAttempts; attempt += 1) { - try { - const response = await fetch(input, init); - if (response.ok || !isRetryableStatus(response.status) || attempt === maxAttempts) { - return { response, attempts: attempt }; - } - } catch (error) { - if (isAbortError(error) || attempt === maxAttempts) { - throw error; + const retryPolicy = normalizeExternalProviderRetryPolicy({ + maxAttempts, + retryDelayMs, + }); + + const program = Effect.gen(function* () { + let lastNetworkError: unknown = null; + + for (let attempt = 1; attempt <= retryPolicy.maxAttempts; attempt += 1) { + const attemptResult = yield* Effect.tryPromise({ + try: () => fetch(input, init), + catch: (error) => error, + }).pipe( + Effect.map((response) => ({ type: 'response' as const, response })), + Effect.catchAll((error) => Effect.succeed({ type: 'error' as const, error })), + ); + + if (attemptResult.type === 'response') { + if ( + attemptResult.response.ok || + !isRetryableStatus(attemptResult.response.status) || + attempt === retryPolicy.maxAttempts + ) { + return { response: attemptResult.response, attempts: attempt }; + } + } else { + if (isAbortError(attemptResult.error) || attempt === retryPolicy.maxAttempts) { + return yield* Effect.fail(attemptResult.error); + } + lastNetworkError = attemptResult.error; } - lastNetworkError = error; + + const delayMs = getExternalProviderRetryDelayMs(retryPolicy.retryDelayMs, attempt); + yield* Effect.tryPromise({ + try: () => sleep(delayMs), + catch: (error) => + error instanceof Error ? error : new Error(`${label} retry delay failed.`), + }); } - await sleep(retryDelayMs * attempt); - } + return yield* Effect.fail( + lastNetworkError instanceof Error + ? lastNetworkError + : new Error(`${label} failed without a response.`), + ); + }); - throw lastNetworkError instanceof Error - ? lastNetworkError - : new Error(`${label} failed without a response.`); + return await Effect.runPromise(program); } export function findFirstHostedImageUrl(value: unknown): string | null { diff --git a/apps/local-server/src/providers/externalProviderRetryPolicy.test.ts b/apps/local-server/src/providers/externalProviderRetryPolicy.test.ts new file mode 100644 index 00000000..e3355cfb --- /dev/null +++ b/apps/local-server/src/providers/externalProviderRetryPolicy.test.ts @@ -0,0 +1,40 @@ +import { describe, expect, it } from 'vite-plus/test'; +import { + getExternalProviderRetryDelayMs, + isRetryableProviderStatus, + normalizeExternalProviderRetryPolicy, +} from './externalProviderRetryPolicy'; + +describe('externalProviderRetryPolicy', () => { + it('normalizes retry policy bounds', () => { + expect( + normalizeExternalProviderRetryPolicy({ + maxAttempts: 0, + retryDelayMs: -100, + }), + ).toEqual({ maxAttempts: 1, retryDelayMs: 0 }); + + expect( + normalizeExternalProviderRetryPolicy({ + maxAttempts: 3.8, + retryDelayMs: 250.9, + }), + ).toEqual({ maxAttempts: 3, retryDelayMs: 250 }); + }); + + it('marks retryable HTTP status codes', () => { + expect(isRetryableProviderStatus(408)).toBe(true); + expect(isRetryableProviderStatus(429)).toBe(true); + expect(isRetryableProviderStatus(500)).toBe(true); + expect(isRetryableProviderStatus(503)).toBe(true); + expect(isRetryableProviderStatus(400)).toBe(false); + expect(isRetryableProviderStatus(404)).toBe(false); + }); + + it('computes linear retry backoff delay', () => { + expect(getExternalProviderRetryDelayMs(100, 1)).toBe(100); + expect(getExternalProviderRetryDelayMs(100, 2)).toBe(200); + expect(getExternalProviderRetryDelayMs(0, 3)).toBe(0); + expect(getExternalProviderRetryDelayMs(-50, 2)).toBe(0); + }); +}); diff --git a/apps/local-server/src/providers/externalProviderRetryPolicy.ts b/apps/local-server/src/providers/externalProviderRetryPolicy.ts new file mode 100644 index 00000000..0e432472 --- /dev/null +++ b/apps/local-server/src/providers/externalProviderRetryPolicy.ts @@ -0,0 +1,21 @@ +export interface ExternalProviderRetryPolicy { + maxAttempts: number; + retryDelayMs: number; +} + +export function normalizeExternalProviderRetryPolicy( + policy: ExternalProviderRetryPolicy, +): ExternalProviderRetryPolicy { + return { + maxAttempts: Math.max(1, Math.floor(policy.maxAttempts)), + retryDelayMs: Math.max(0, Math.floor(policy.retryDelayMs)), + }; +} + +export function isRetryableProviderStatus(status: number) { + return status === 408 || status === 429 || status >= 500; +} + +export function getExternalProviderRetryDelayMs(baseDelayMs: number, attempt: number) { + return Math.max(0, baseDelayMs * attempt); +} diff --git a/apps/local-server/src/settingsRoutes.test.ts b/apps/local-server/src/settingsRoutes.test.ts index 939d5da6..e701ca61 100644 --- a/apps/local-server/src/settingsRoutes.test.ts +++ b/apps/local-server/src/settingsRoutes.test.ts @@ -1,11 +1,11 @@ -import { describe, expect, it } from "vite-plus/test"; -import { createDefaultEditableStudioSettings } from "../../../packages/shared/src"; -import { createSettingsRoutes } from "./settingsRoutes"; +import { describe, expect, it } from 'vite-plus/test'; +import { createDefaultEditableStudioSettings } from '../../../packages/shared/src'; +import { createSettingsRoutes } from './settingsRoutes'; import { readEditableStudioSettings, updateEditableStudioSettings, type StudioSettingsStorage, -} from "./studioSettingsStore"; +} from './studioSettingsStore'; function createMemoryStorage(initial?: Record): StudioSettingsStorage { const values = new Map(Object.entries(initial ?? {})); @@ -19,43 +19,67 @@ function createMemoryStorage(initial?: Record): StudioSettingsSt }; } -describe("settingsRoutes", () => { - it("returns editable Studio Settings through the route seam", async () => { +describe('settingsRoutes', () => { + it('returns editable Studio Settings through the route seam', async () => { const storage = createMemoryStorage(); const routes = createSettingsRoutes({ readSettings: () => readEditableStudioSettings(storage), updateSettings: (patch) => updateEditableStudioSettings(storage, patch), }); - const response = await routes.request("/"); + const response = await routes.request('/'); expect(response.status).toBe(200); const payload = (await response.json()) as ReturnType< typeof createDefaultEditableStudioSettings >; - expect(payload.defaultProviderId).toBe("codex"); - expect(payload.defaultOutputMode).toBe("studio_library"); + expect(payload.defaultProviderId).toBe('codex'); + expect(payload.defaultOutputMode).toBe('studio_library'); }); - it("updates editable settings and keeps the new value for subsequent reads", async () => { + it('updates editable settings and keeps the new value for subsequent reads', async () => { const storage = createMemoryStorage(); const routes = createSettingsRoutes({ readSettings: () => readEditableStudioSettings(storage), updateSettings: (patch) => updateEditableStudioSettings(storage, patch), }); - const patchResponse = await routes.request("/", { - method: "PATCH", + const patchResponse = await routes.request('/', { + method: 'PATCH', body: JSON.stringify({ commandCenterCompactMode: true }), - headers: { "Content-Type": "application/json" }, + headers: { 'Content-Type': 'application/json' }, }); expect(patchResponse.status).toBe(200); const patched = (await patchResponse.json()) as { commandCenterCompactMode: boolean }; expect(patched.commandCenterCompactMode).toBe(true); - const readBack = await routes.request("/"); + const readBack = await routes.request('/'); const readBackPayload = (await readBack.json()) as { commandCenterCompactMode: boolean }; expect(readBackPayload.commandCenterCompactMode).toBe(true); }); -}); \ No newline at end of file + + it('returns 400 for malformed JSON or non-object payload', async () => { + const storage = createMemoryStorage(); + const routes = createSettingsRoutes({ + readSettings: () => readEditableStudioSettings(storage), + updateSettings: (patch) => updateEditableStudioSettings(storage, patch), + }); + + const malformed = await routes.request('/', { + method: 'PATCH', + body: '{"commandCenterCompactMode":true', + headers: { 'Content-Type': 'application/json' }, + }); + expect(malformed.status).toBe(400); + await expect(malformed.json()).resolves.toMatchObject({ code: 'invalid_json' }); + + const invalidShape = await routes.request('/', { + method: 'PATCH', + body: JSON.stringify(['not', 'an', 'object']), + headers: { 'Content-Type': 'application/json' }, + }); + expect(invalidShape.status).toBe(400); + await expect(invalidShape.json()).resolves.toMatchObject({ code: 'invalid_request_body' }); + }); +}); diff --git a/apps/local-server/src/settingsRoutes.ts b/apps/local-server/src/settingsRoutes.ts index eb9f0da1..6cd2cab6 100644 --- a/apps/local-server/src/settingsRoutes.ts +++ b/apps/local-server/src/settingsRoutes.ts @@ -1,23 +1,51 @@ -import { Hono } from "hono"; -import type { EditableStudioSettings } from "../../../packages/shared/src"; +import { Hono } from 'hono'; +import { Either, Schema } from 'effect'; +import type { EditableStudioSettings } from '../../../packages/shared/src'; interface SettingsRoutesDependencies { readSettings: () => EditableStudioSettings; updateSettings: (patch: unknown) => EditableStudioSettings; } -export function createSettingsRoutes({ - readSettings, - updateSettings, -}: SettingsRoutesDependencies) { +const SettingsPatchBoundarySchema = Schema.Record({ + key: Schema.String, + value: Schema.Unknown, +}); + +export function createSettingsRoutes({ readSettings, updateSettings }: SettingsRoutesDependencies) { const routes = new Hono(); - routes.get("/", (c) => c.json(readSettings())); + routes.get('/', (c) => c.json(readSettings())); + + routes.patch('/', async (c) => { + const rawBody = await c.req + .json() + .catch(() => ({ __invalidJson: true }) as { __invalidJson: true }); + if ('__invalidJson' in rawBody) { + return c.json( + { + error: 'Invalid request body', + code: 'invalid_json', + reason: 'Request body must be valid JSON.', + }, + 400, + ); + } - routes.patch("/", async (c) => { - const body = await c.req.json().catch(() => ({})); - return c.json(updateSettings(body)); + const decodedBody = Schema.decodeUnknownEither(SettingsPatchBoundarySchema)(rawBody); + if (Either.isLeft(decodedBody)) { + return c.json( + { + error: 'Invalid request body', + code: 'invalid_request_body', + reason: 'Settings patch must be a JSON object.', + }, + 400, + ); + } + + return c.json(updateSettings(decodedBody.right)); }); return routes; -} \ No newline at end of file +} diff --git a/apps/local-server/src/worker.ts b/apps/local-server/src/worker.ts index 52b68fad..843ecf7e 100644 --- a/apps/local-server/src/worker.ts +++ b/apps/local-server/src/worker.ts @@ -1,7 +1,7 @@ -import { mkdirSync, statSync, writeFileSync } from "node:fs"; -import path from "node:path"; -import { getSettings } from "./config"; -import { registerCatalogImage } from "./catalog"; +import { mkdirSync, statSync, writeFileSync } from 'node:fs'; +import path from 'node:path'; +import { getSettings } from './config'; +import { registerCatalogImage } from './catalog'; import { addAsset, addJobEvent, @@ -10,24 +10,29 @@ import { setSettingValue, updateJobStatus, upsertCodexTurn, -} from "./db"; -import { publishEvent } from "./events"; -import { resolveLibraryPath, toPublicAssetUrl } from "./library"; -import { log } from "./logger"; -import { createCodexTurn } from "./codex/turn"; -import type { CodexTurn } from "./codex/turn"; -import { resolveJobExecutionOptions } from "./codex/executionOptions"; -import { createCodexGenerationProvider } from "./providers/codexProvider"; -import { createExternalGenerationProvider } from "./providers/externalProvider"; -import type { GenerationProvider } from "./providers/types"; -import { embedMetadata } from "./metadataEmbedder"; -import { parsePromptTransport } from "../../../packages/shared/src/promptTransport"; -import type { Job } from "../../../packages/shared/src/types"; -import { readEditableStudioSettings } from "./studioSettingsStore"; -import { resolveJobCatalogContext } from "./workerCatalogContext"; -import { resolveWorkerRuntimeTarget } from "./workerRouting"; -import { createWorkerAssetPathing, inferGeneratedAssetMimeType } from "./workerAssetPathing"; -import { createWorkerAssetFinalizer } from "./workerAssetFinalizer"; +} from './db'; +import { publishEvent } from './events'; +import { resolveLibraryPath, toPublicAssetUrl } from './library'; +import { log } from './logger'; +import { createCodexTurn } from './codex/turn'; +import type { CodexTurn } from './codex/turn'; +import { resolveJobExecutionOptions } from './codex/executionOptions'; +import { createCodexGenerationProvider } from './providers/codexProvider'; +import { createExternalGenerationProvider } from './providers/externalProvider'; +import type { GenerationProvider } from './providers/types'; +import { embedMetadata } from './metadataEmbedder'; +import { parsePromptTransport } from '../../../packages/shared/src/promptTransport'; +import type { Job } from '../../../packages/shared/src/types'; +import { readEditableStudioSettings } from './studioSettingsStore'; +import { resolveJobCatalogContext } from './workerCatalogContext'; +import { resolveWorkerRuntimeTarget } from './workerRouting'; +import { createWorkerAssetPathing, inferGeneratedAssetMimeType } from './workerAssetPathing'; +import { createWorkerAssetFinalizer } from './workerAssetFinalizer'; +import { + createAbortWorkerError, + createUnsupportedRuntimeTargetError, + formatWorkerErrorMessage, +} from './workerErrors'; export interface WorkerStatus { maxConcurrentJobs: number; @@ -67,13 +72,11 @@ export interface CreateWorkerControllerDependencies { } function createAbortError() { - const error = new Error("Operation cancelled by user"); - error.name = "AbortError"; - return error; + return createAbortWorkerError(); } function isAbortError(error: unknown) { - return error instanceof Error && error.name === "AbortError"; + return error instanceof Error && error.name === 'AbortError'; } function throwIfAborted(signal?: AbortSignal) { @@ -88,25 +91,25 @@ function waitWithAbort(durationMs: number, signal?: AbortSignal) { return new Promise((resolve, reject) => { const timeout = setTimeout(() => { - signal.removeEventListener("abort", handleAbort); + signal.removeEventListener('abort', handleAbort); resolve(); }, durationMs); const handleAbort = () => { clearTimeout(timeout); - signal.removeEventListener("abort", handleAbort); + signal.removeEventListener('abort', handleAbort); reject(createAbortError()); }; - signal.addEventListener("abort", handleAbort, { once: true }); + signal.addEventListener('abort', handleAbort, { once: true }); }); } function svgForPrompt(prompt: string) { const safePrompt = prompt - .replaceAll("&", "&") - .replaceAll("<", "<") - .replaceAll(">", ">") + .replaceAll('&', '&') + .replaceAll('<', '<') + .replaceAll('>', '>') .slice(0, 180); return ` @@ -179,10 +182,10 @@ export function createWorkerController({ imageSize: parsedPrompt.imageSize, negativePrompt: parsedPrompt.negativePrompt, temperature: 0.8, - model: "codex-imagegen", + model: 'codex-imagegen', executionModel: executionOptions.model, executionReasoningEffort: executionOptions.reasoningEffort, - executionSpeed: executionOptions.serviceTier ?? "standard", + executionSpeed: executionOptions.serviceTier ?? 'standard', batchCount: 1, useThinkingAndSearch: false, }; @@ -192,7 +195,7 @@ export function createWorkerController({ if (job.sourceSpec) { const executionOptions = resolveExecutionOptions(job.execution); const recipeContext = - typeof job.sourceSpec.metadata.recipeContext === "string" + typeof job.sourceSpec.metadata.recipeContext === 'string' ? job.sourceSpec.metadata.recipeContext : null; @@ -206,10 +209,10 @@ export function createWorkerController({ imageSize: job.sourceSpec.output.imageSize, negativePrompt: job.sourceSpec.negativePrompt, temperature: 0.8, - model: "codex-imagegen", + model: 'codex-imagegen', executionModel: executionOptions.model, executionReasoningEffort: executionOptions.reasoningEffort, - executionSpeed: executionOptions.serviceTier ?? "standard", + executionSpeed: executionOptions.serviceTier ?? 'standard', batchCount: job.sourceSpec.output.count, useThinkingAndSearch: false, }; @@ -228,10 +231,10 @@ export function createWorkerController({ imageSize: parsedPrompt.imageSize, negativePrompt: parsedPrompt.negativePrompt, temperature: 0.8, - model: "codex-imagegen", + model: 'codex-imagegen', executionModel: executionOptions.model, executionReasoningEffort: executionOptions.reasoningEffort, - executionSpeed: executionOptions.serviceTier ?? "standard", + executionSpeed: executionOptions.serviceTier ?? 'standard', batchCount: 1, useThinkingAndSearch: false, }; @@ -256,14 +259,14 @@ export function createWorkerController({ async function runDryJob(job: Job, signal?: AbortSignal) { const startedAt = Date.now(); - addJobEventFn(job.id, "dry_run.started", "Dry run asset creation started."); - logger("info", "worker", "Dry run job started.", job.id); + addJobEventFn(job.id, 'dry_run.started', 'Dry run asset creation started.'); + logger('info', 'worker', 'Dry run job started.', job.id); await waitWithAbort(500, signal); throwIfAborted(signal); - const filePath = assetPathing.resolveGeneratedAssetTargetPath(job, "dry_run", ".svg"); + const filePath = assetPathing.resolveGeneratedAssetTargetPath(job, 'dry_run', '.svg'); mkdirSync(path.dirname(filePath), { recursive: true }); - writeFileSync(filePath, svgForPrompt(job.finalPromptUsed), "utf8"); + writeFileSync(filePath, svgForPrompt(job.finalPromptUsed), 'utf8'); const asset = addAssetFn({ projectId: job.projectId, jobId: job.id, @@ -273,7 +276,7 @@ export function createWorkerController({ prompt: job.finalPromptUsed, width: 1200, height: 800, - mimeType: "image/svg+xml", + mimeType: 'image/svg+xml', }); const catalogContext = resolveJobCatalogContextFn(job); const parsedPrompt = parsePromptTransportFn(job.finalPromptUsed); @@ -294,27 +297,27 @@ export function createWorkerController({ recipeId: parsedPrompt.recipeId, generationConfig: buildCatalogGenerationConfig(job.finalPromptUsed), }); - addJobEventFn(job.id, "dry_run.completed", "Dry run asset creation completed.", { + addJobEventFn(job.id, 'dry_run.completed', 'Dry run asset creation completed.', { durationMs: Date.now() - startedAt, assetCount: 1, }); - addJobEventFn(job.id, "asset.created", "Dry run asset created.", { assetId: asset.id }); - publishEventFn("asset.created", asset); - publishEventFn("catalog.created", catalogImage); - updateJobStatusFn(job.id, "completed"); - publishEventFn("job.completed", getJobFn(job.id)); + addJobEventFn(job.id, 'asset.created', 'Dry run asset created.', { assetId: asset.id }); + publishEventFn('asset.created', asset); + publishEventFn('catalog.created', catalogImage); + updateJobStatusFn(job.id, 'completed'); + publishEventFn('job.completed', getJobFn(job.id)); logger( - "info", - "worker", + 'info', + 'worker', `Dry run job completed. Asset: ${path.basename(asset.filePath)}`, job.id, ); } async function runCodexJob(job: Job, signal?: AbortSignal) { - addJobEventFn(job.id, "codex.started", "Codex image generation started."); - logger("info", "worker", "Codex imagegen job started.", job.id); - const turnRecordId = upsertCodexTurnFn({ jobId: job.id, status: "running" }); + addJobEventFn(job.id, 'codex.started', 'Codex image generation started.'); + logger('info', 'worker', 'Codex imagegen job started.', job.id); + const turnRecordId = upsertCodexTurnFn({ jobId: job.id, status: 'running' }); const catalogContext = resolveJobCatalogContextFn(job); const executionOptions = resolveExecutionOptions(job.execution); const result = await codexGenerationProvider.run({ @@ -322,13 +325,13 @@ export function createWorkerController({ projectId: job.projectId, prompt: job.finalPromptUsed, execution: job.execution, - providerId: job.providerId ?? job.sourceSpec?.providerId ?? "codex", + providerId: job.providerId ?? job.sourceSpec?.providerId ?? 'codex', sourceSpec: job.sourceSpec, signal, }); throwIfAborted(signal); - addJobEventFn(job.id, "codex.completed", "Codex image generation completed.", { + addJobEventFn(job.id, 'codex.completed', 'Codex image generation completed.', { durationMs: result.durationMs, assetCount: result.assets.length, threadId: result.threadId, @@ -341,16 +344,16 @@ export function createWorkerController({ codexThreadId: result.threadId, codexTurnId: result.turnId, transcriptPath: result.transcript, - status: result.assets.length > 0 ? "completed" : "needs_review", + status: result.assets.length > 0 ? 'completed' : 'needs_review', }); const discoveredImagePath = result.assets[0]?.sourcePath ?? null; if (!discoveredImagePath) { - updateJobStatusFn(job.id, "needs_review"); - publishEventFn("job.progress", getJobFn(job.id)); + updateJobStatusFn(job.id, 'needs_review'); + publishEventFn('job.progress', getJobFn(job.id)); logger( - "warn", - "worker", + 'warn', + 'worker', `Codex turn completed but no image file was discovered. Transcript: ${result.transcript}`, job.id, ); @@ -361,9 +364,9 @@ export function createWorkerController({ job, catalogContext, discoveredImagePath, - providerId: "codex", + providerId: 'codex', options: { - logPrefix: "Codex", + logPrefix: 'Codex', embedMetadata: true, executionOptions, }, @@ -371,9 +374,9 @@ export function createWorkerController({ } async function runExternalJob(job: Job, signal?: AbortSignal) { - const providerId = job.providerId ?? job.sourceSpec?.providerId ?? "unknown"; - addJobEventFn(job.id, "external.started", `External provider job started: ${providerId}.`); - logger("info", "worker", `External provider job started: ${providerId}.`, job.id); + const providerId = job.providerId ?? job.sourceSpec?.providerId ?? 'unknown'; + addJobEventFn(job.id, 'external.started', `External provider job started: ${providerId}.`); + logger('info', 'worker', `External provider job started: ${providerId}.`, job.id); const catalogContext = resolveJobCatalogContextFn(job); const result = await externalGenerationProvider.run({ @@ -388,7 +391,7 @@ export function createWorkerController({ throwIfAborted(signal); - addJobEventFn(job.id, "external.completed", "External provider execution completed.", { + addJobEventFn(job.id, 'external.completed', 'External provider execution completed.', { transcript: result.transcript, durationMs: result.durationMs, assetCount: result.assets.length, @@ -396,11 +399,11 @@ export function createWorkerController({ const discoveredImagePath = result.assets[0]?.sourcePath ?? null; if (!discoveredImagePath) { - updateJobStatusFn(job.id, "needs_review"); - publishEventFn("job.progress", getJobFn(job.id)); + updateJobStatusFn(job.id, 'needs_review'); + publishEventFn('job.progress', getJobFn(job.id)); logger( - "warn", - "worker", + 'warn', + 'worker', `External provider completed but no image file was discovered. Transcript: ${result.transcript}`, job.id, ); @@ -413,7 +416,7 @@ export function createWorkerController({ discoveredImagePath, providerId, options: { - logPrefix: "External provider", + logPrefix: 'External provider', }, }); } @@ -423,35 +426,40 @@ export function createWorkerController({ runningJobControllers.set(job.id, controller); try { - addJobEventFn(job.id, "job.started", "Job execution started.", { + addJobEventFn(job.id, 'job.started', 'Job execution started.', { startedAt: new Date().toISOString(), }); - updateJobStatusFn(job.id, "running"); - publishEventFn("job.running", getJobFn(job.id)); + updateJobStatusFn(job.id, 'running'); + publishEventFn('job.running', getJobFn(job.id)); const runtimeTarget = resolveWorkerRuntimeTargetFn(job); - if (runtimeTarget === "dry_run") { + if (runtimeTarget === 'dry_run') { await runDryJob(job, controller.signal); - } else if (runtimeTarget === "codex") { + } else if (runtimeTarget === 'codex') { await runCodexJob(job, controller.signal); - } else if (runtimeTarget === "external") { + } else if (runtimeTarget === 'external') { await runExternalJob(job, controller.signal); } else { - throw new Error( - `Unsupported job kind received by worker: kind=${job.kind} provider=${job.providerId ?? job.sourceSpec?.providerId ?? "null"} sourceTask=${job.sourceSpec?.task ?? "null"}`, + throw createUnsupportedRuntimeTargetError( + { + kind: job.kind, + providerId: job.providerId ?? job.sourceSpec?.providerId ?? null, + sourceTask: job.sourceSpec?.task ?? null, + }, + { jobId: job.id }, ); } } catch (error) { if (isAbortError(error)) { - addJobEventFn(job.id, "job.cancelled", "Job cancelled by user."); - updateJobStatusFn(job.id, "cancelled"); - publishEventFn("job.cancelled", getJobFn(job.id)); - logger("info", "worker", "Job cancelled by user.", job.id); + addJobEventFn(job.id, 'job.cancelled', 'Job cancelled by user.'); + updateJobStatusFn(job.id, 'cancelled'); + publishEventFn('job.cancelled', getJobFn(job.id)); + logger('info', 'worker', 'Job cancelled by user.', job.id); } else { - const message = error instanceof Error ? error.message : String(error); - updateJobStatusFn(job.id, "failed", message); - publishEventFn("job.failed", getJobFn(job.id)); - logger("error", "worker", message, job.id); + const message = formatWorkerErrorMessage(error); + updateJobStatusFn(job.id, 'failed', message); + publishEventFn('job.failed', getJobFn(job.id)); + logger('error', 'worker', message, job.id); } } finally { runningJobControllers.delete(job.id); @@ -490,18 +498,18 @@ export function createWorkerController({ if (queuedIndex >= 0) { jobQueue.splice(queuedIndex, 1); runningJobs.delete(jobId); - addJobEventFn(jobId, "job.cancelled", "Queued job cancelled before execution."); - const job = updateJobStatusFn(jobId, "cancelled"); - publishEventFn("job.cancelled", job); - logger("info", "worker", "Queued job cancelled before execution.", jobId); + addJobEventFn(jobId, 'job.cancelled', 'Queued job cancelled before execution.'); + const job = updateJobStatusFn(jobId, 'cancelled'); + publishEventFn('job.cancelled', job); + logger('info', 'worker', 'Queued job cancelled before execution.', jobId); return job; } const controller = runningJobControllers.get(jobId); if (controller) { - addJobEventFn(jobId, "job.cancel.requested", "Cancellation requested for running job."); + addJobEventFn(jobId, 'job.cancel.requested', 'Cancellation requested for running job.'); controller.abort(); - logger("info", "worker", "Cancellation requested for running job.", jobId); + logger('info', 'worker', 'Cancellation requested for running job.', jobId); return getJobFn(jobId); } @@ -520,14 +528,14 @@ export function createWorkerController({ for (const queuedJob of queuedJobs) { runningJobs.delete(queuedJob.id); - addJobEventFn(queuedJob.id, "job.cancelled", "Queued job cancelled during studio reset."); - updateJobStatusFn(queuedJob.id, "cancelled"); - publishEventFn("job.cancelled", getJobFn(queuedJob.id)); + addJobEventFn(queuedJob.id, 'job.cancelled', 'Queued job cancelled during studio reset.'); + updateJobStatusFn(queuedJob.id, 'cancelled'); + publishEventFn('job.cancelled', getJobFn(queuedJob.id)); } for (const [jobId, controller] of runningJobControllers.entries()) { if (!controller.signal.aborted) { - addJobEventFn(jobId, "job.cancel.requested", "Studio reset requested cancellation."); + addJobEventFn(jobId, 'job.cancel.requested', 'Studio reset requested cancellation.'); controller.abort(); } } diff --git a/apps/local-server/src/workerErrors.test.ts b/apps/local-server/src/workerErrors.test.ts new file mode 100644 index 00000000..9ca7717c --- /dev/null +++ b/apps/local-server/src/workerErrors.test.ts @@ -0,0 +1,43 @@ +import { describe, expect, it } from 'vite-plus/test'; +import { + WorkerError, + createAbortWorkerError, + createUnsupportedRuntimeTargetError, + formatWorkerErrorMessage, +} from './workerErrors'; + +describe('workerErrors', () => { + it('creates abort error with AbortError name and code', () => { + const error = createAbortWorkerError({ jobId: 'job-1' }); + expect(error.name).toBe('AbortError'); + expect(error.code).toBe('abort'); + expect(error.meta).toMatchObject({ jobId: 'job-1' }); + }); + + it('creates unsupported runtime target error with structured metadata', () => { + const error = createUnsupportedRuntimeTargetError( + { + kind: 'unknown-kind', + providerId: 'local-experiment', + sourceTask: null, + }, + { jobId: 'job-2' }, + ); + + expect(error).toBeInstanceOf(WorkerError); + expect(error.code).toBe('unsupported_runtime_target'); + expect(error.message).toContain('Unsupported job kind received by worker'); + expect(error.meta).toMatchObject({ + jobId: 'job-2', + jobKind: 'unknown-kind', + providerId: 'local-experiment', + sourceTask: null, + }); + }); + + it('formats worker and non-worker errors safely', () => { + expect(formatWorkerErrorMessage(new Error('boom'))).toBe('boom'); + expect(formatWorkerErrorMessage('plain string')).toBe('plain string'); + expect(formatWorkerErrorMessage({ detail: 1 })).toBe('[object Object]'); + }); +}); diff --git a/apps/local-server/src/workerErrors.ts b/apps/local-server/src/workerErrors.ts new file mode 100644 index 00000000..e8979b05 --- /dev/null +++ b/apps/local-server/src/workerErrors.ts @@ -0,0 +1,56 @@ +export type WorkerErrorCode = 'abort' | 'unsupported_runtime_target' | 'unknown_worker_error'; + +export interface WorkerErrorMeta { + jobId?: string; + jobKind?: string; + providerId?: string | null; + sourceTask?: string | null; +} + +export class WorkerError extends Error { + readonly code: WorkerErrorCode; + readonly meta: WorkerErrorMeta; + + constructor(code: WorkerErrorCode, message: string, meta: WorkerErrorMeta = {}) { + super(message); + this.name = 'WorkerError'; + this.code = code; + this.meta = meta; + } +} + +export function createAbortWorkerError(meta: WorkerErrorMeta = {}) { + const error = new WorkerError('abort', 'Operation cancelled by user', meta); + error.name = 'AbortError'; + return error; +} + +export function createUnsupportedRuntimeTargetError( + input: { + kind: string; + providerId: string | null; + sourceTask: string | null; + }, + meta: WorkerErrorMeta = {}, +) { + return new WorkerError( + 'unsupported_runtime_target', + `Unsupported job kind received by worker: kind=${input.kind} provider=${input.providerId ?? 'null'} sourceTask=${input.sourceTask ?? 'null'}`, + { + ...meta, + jobKind: input.kind, + providerId: input.providerId, + sourceTask: input.sourceTask, + }, + ); +} + +export function formatWorkerErrorMessage(error: unknown) { + if (error instanceof WorkerError) { + return error.message; + } + if (error instanceof Error) { + return error.message; + } + return String(error); +} diff --git a/bun.lock b/bun.lock index 9d7485b8..a5e8d033 100644 --- a/bun.lock +++ b/bun.lock @@ -8,6 +8,7 @@ "@fal-ai/client": "^1.10.1", "@gsap/react": "^2.1.2", "clsx": "^2.1.1", + "effect": "^3.19.6", "file-saver": "^2.0.5", "gsap": "^3.15.0", "hono": "^4.12.23", @@ -465,6 +466,8 @@ "detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], + "effect": ["effect@3.21.2", "", { "dependencies": { "@standard-schema/spec": "^1.0.0", "fast-check": "^3.23.1" } }, "sha512-rXd2FGDM8KdjSIrc+mqEELo7ScW7xTVxEf1iInmPSpIde9/nyGuFM710cjTo7/EreGXiUX2MOonPpprbz2XHCg=="], + "electron": ["electron@42.3.0", "", { "dependencies": { "@electron/get": "^5.0.0", "@types/node": "^24.9.0", "extract-zip": "^2.0.1" }, "bin": { "electron": "cli.js", "install-electron": "install.js" } }, "sha512-9ZiLdRXk+WDxW1OgIUz8J2rIQ5TYU9o629gCOjU48Q3dQiOmym7osWsH5Ubs/Jh4uuFLn6m6SBD2rmRXLAPz9g=="], "electron-to-chromium": ["electron-to-chromium@1.5.352", "", {}, "sha512-9wHk8x6dyuimoe18EdiDPWKExNdxYqo4fn4FwOVVper6RxT3cmpBwBkWWfSOCYJjQdIco/nPhJhNLmn4Ufg1Yg=="], @@ -487,6 +490,8 @@ "extract-zip": ["extract-zip@2.0.1", "", { "dependencies": { "debug": "^4.1.1", "get-stream": "^5.1.0", "yauzl": "^2.10.0" }, "optionalDependencies": { "@types/yauzl": "^2.9.1" }, "bin": { "extract-zip": "cli.js" } }, "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg=="], + "fast-check": ["fast-check@3.23.2", "", { "dependencies": { "pure-rand": "^6.1.0" } }, "sha512-h5+1OzzfCC3Ef7VbtKdcv7zsstUQwUDlYpUTvjeUsJAssPgLn7QzbboPtL5ro04Mq0rPOsMzl7q5hIbRs2wD1A=="], + "fd-slicer": ["fd-slicer@1.1.0", "", { "dependencies": { "pend": "~1.2.0" } }, "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g=="], "fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" } }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], @@ -629,6 +634,8 @@ "pump": ["pump@3.0.4", "", { "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA=="], + "pure-rand": ["pure-rand@6.1.0", "", {}, "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA=="], + "react": ["react@19.2.6", "", {}, "sha512-sfWGGfavi0xr8Pg0sVsyHMAOziVYKgPLNrS7ig+ivMNb3wbCBw3KxtflsGBAwD3gYQlE/AEZsTLgToRrSCjb0Q=="], "react-dom": ["react-dom@19.2.6", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.6" } }, "sha512-0prMI+hvBbPjsWnxDLxlCGyM8PN6UuWjEUCYmZhO67xIV9Xasa/r/vDnq+Xyq4Lo27g8QSbO5YzARu0D1Sps3g=="], diff --git a/components/AppContent.tsx b/components/AppContent.tsx index f00a662f..cab33145 100644 --- a/components/AppContent.tsx +++ b/components/AppContent.tsx @@ -14,7 +14,7 @@ const AppOverlays = React.lazy(() => import('./AppOverlays').then((m) => ({ default: m.AppOverlays })), ); -interface AppContentProps {} +interface AppContentProps { } export const AppContent: React.FC = () => { const shell = useStudioShell(); @@ -39,19 +39,15 @@ export const AppContent: React.FC = () => { {shell.headerToolbar.isVisible && } -
- + diff --git a/components/overlays/StudioSystemOverlays.tsx b/components/overlays/StudioSystemOverlays.tsx index 483cf7e6..b18f0c04 100644 --- a/components/overlays/StudioSystemOverlays.tsx +++ b/components/overlays/StudioSystemOverlays.tsx @@ -27,12 +27,6 @@ export const StudioSystemOverlays: React.FC = ({ isOnboardingReady, isStartingAppServer, isSettingsModalOpen, - isLoadingSettings, - isSavingSettings, - isLoadingOutputSources, - isRegisteringOutputSource, - isBackgroundEnabled, - isResettingStudio, }, closeDebugPanel, mergedLogs, @@ -56,24 +50,40 @@ export const StudioSystemOverlays: React.FC = ({ completeOnboarding, refreshOnboardingHealth, ensureAppServer, - closeSettings, - settings, - settingsError, - providerCapabilities, - providerRuntimePreflight, - outputSources, - outputSourceFiles, - loadingOutputSourceFiles, - importingOutputSources, - settingsLibraryDir, - refreshSettings, - updateSettings, - registerOutputSource, - loadOutputSourceFiles, - importOutputSourceFiles, - onToggleBackground, - onResetStudio, + settingsModule, }) => { + const { + close: closeSettings, + settingsDomain: { + settings, + error: settingsError, + isLoading: isLoadingSettings, + isSaving: isSavingSettings, + refresh: refreshSettings, + update: updateSettings, + }, + providerDomain: { + capabilities: providerCapabilities, + runtimePreflight: providerRuntimePreflight, + }, + outputSourcesDomain: { + outputSources, + outputSourceFiles, + isLoadingOutputSources, + loadingOutputSourceFiles, + isRegisteringOutputSource, + importingOutputSources, + registerOutputSource, + loadOutputSourceFiles, + importOutputSourceFiles, + }, + libraryDir: settingsLibraryDir, + isBackgroundEnabled, + onToggleBackground, + onResetStudio, + isResettingStudio, + } = settingsModule; + const mountedSurfaces = getMountedSystemSurfaceKeys({ isDebugPanelOpen, isDashboardModalOpen, diff --git a/components/overlays/types.ts b/components/overlays/types.ts index 5abf0e42..b63f4d6c 100644 --- a/components/overlays/types.ts +++ b/components/overlays/types.ts @@ -86,27 +86,41 @@ export interface StudioSystemOverlaysProps { completeOnboarding: () => void; refreshOnboardingHealth: () => void; ensureAppServer: () => void; - closeSettings: () => void; - settings: EditableStudioSettings | null; - settingsError: string | null; - providerCapabilities: GenerationProviderCapabilitiesResponse | null; - providerRuntimePreflight: GenerationProviderRuntimePreflightResponse | null; - outputSources: ExternalOutputSourcesResponse | null; - outputSourceFiles: Record; - loadingOutputSourceFiles: Record; - importingOutputSources: Record; - settingsLibraryDir: string | null; - refreshSettings: () => void | Promise; - updateSettings: (patch: EditableStudioSettingsPatch) => void | Promise; - registerOutputSource: (input: RegisterExternalOutputSourceInput) => void | Promise; - loadOutputSourceFiles: (sourceId: string) => void | Promise; - importOutputSourceFiles: ( - sourceId: string, - files: string[], - workspaceId?: string | null, - ) => void | Promise; - onToggleBackground: () => void; - onResetStudio: () => void | Promise; + settingsModule: { + close: () => void; + settingsDomain: { + settings: EditableStudioSettings | null; + error: string | null; + isLoading: boolean; + isSaving: boolean; + refresh: () => void | Promise; + update: (patch: EditableStudioSettingsPatch) => void | Promise; + }; + providerDomain: { + capabilities: GenerationProviderCapabilitiesResponse | null; + runtimePreflight: GenerationProviderRuntimePreflightResponse | null; + }; + outputSourcesDomain: { + outputSources: ExternalOutputSourcesResponse | null; + outputSourceFiles: Record; + isLoadingOutputSources: boolean; + loadingOutputSourceFiles: Record; + isRegisteringOutputSource: boolean; + importingOutputSources: Record; + registerOutputSource: (input: RegisterExternalOutputSourceInput) => void | Promise; + loadOutputSourceFiles: (sourceId: string) => void | Promise; + importOutputSourceFiles: ( + sourceId: string, + files: string[], + workspaceId?: string | null, + ) => void | Promise; + }; + libraryDir: string | null; + isBackgroundEnabled: boolean; + onToggleBackground: () => void; + onResetStudio: () => void | Promise; + isResettingStudio: boolean; + }; } export interface StudioWorkspaceOverlaysProps { diff --git a/components/recipes/StylePresetCatalogSearchSurface.tsx b/components/recipes/StylePresetCatalogSearchSurface.tsx index ad4ee6d1..8aa9de0a 100644 --- a/components/recipes/StylePresetCatalogSearchSurface.tsx +++ b/components/recipes/StylePresetCatalogSearchSurface.tsx @@ -1,7 +1,13 @@ import React, { useEffect, useMemo, useState } from 'react'; import { Search, X, ArrowRight, Database, Sparkles, LoaderCircle } from 'lucide-react'; -import { STYLE_DEFAULT_IMAGES, STYLE_PACK_FALLBACK_IMAGES } from '../../lib/recipeAssetCatalog'; -import { resolveStyleCatalogResultImage } from '../../lib/stylePresetVisuals'; +import { + STYLE_CATEGORY_IMAGES, + STYLE_CATEGORY_PREVIEWS, + STYLE_DEFAULT_IMAGES, + STYLE_PACK_FALLBACK_IMAGES, +} from '../../lib/recipeAssetCatalog'; +import { styleCategoryImageKey } from '../../lib/recipeAssetKeys'; +import { resolveStyleCatalogResultImage, resolveStylePreviewImage } from '../../lib/stylePresetVisuals'; import { searchStylePresetCatalog, @@ -50,11 +56,11 @@ export const StylePresetCatalogSearchSurface: React.FC catalog ? searchStylePresetCatalog(catalog, { - query, - packId: packId || undefined, - task: task || undefined, - limit: 80, - }) + query, + packId: packId || undefined, + task: task || undefined, + limit: 80, + }) : [], [catalog, packId, query, task], ); @@ -137,11 +143,10 @@ export const StylePresetCatalogSearchSurface: React.FC setTask(filter.id)} - className={`h-8 rounded-lg px-2.5 text-[9px] font-black uppercase tracking-widest transition-colors ${ - task === filter.id + className={`h-8 rounded-lg px-2.5 text-[9px] font-black uppercase tracking-widest transition-colors ${task === filter.id ? 'bg-white text-black' : 'text-zinc-500 hover:bg-white/8 hover:text-white' - }`} + }`} > {filter.label} @@ -158,12 +163,21 @@ export const StylePresetCatalogSearchSurface: React.FC 0 ? (
{results.map((result) => { - const resultImage = resolveStyleCatalogResultImage({ + const resultImageFromDefault = resolveStyleCatalogResultImage({ presetId: result.id, packId: result.packId, defaultImages: STYLE_DEFAULT_IMAGES, packFallbackImages: STYLE_PACK_FALLBACK_IMAGES, }); + const categoryImage = STYLE_CATEGORY_IMAGES[ + styleCategoryImageKey(result.packId, result.categoryName) + ]; + const resultImageFromPreview = resolveStylePreviewImage({ + categoryImage, + categoryPreviewImage: STYLE_CATEGORY_PREVIEWS[result.categoryName], + packFallbackImage: STYLE_PACK_FALLBACK_IMAGES[result.packId], + }); + const resultImage = resultImageFromDefault || resultImageFromPreview; return (
- + Define una gramática mecha-liturgy reusable donde biotectónica coral, + resonancia musical y monumentalidad sacra articulen la identidad sin + depender de una escena puntual. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_05/SP05-232.yaml b/components/recipes/styles/manifests/presets/pack_05/SP05-232.yaml index 70ec1774..0e444834 100644 --- a/components/recipes/styles/manifests/presets/pack_05/SP05-232.yaml +++ b/components/recipes/styles/manifests/presets/pack_05/SP05-232.yaml @@ -12,16 +12,19 @@ tags: - anime-battle-and-worlds - mecha-and-cyberpunk visualDna: - aesthetic: Warzone youth in spider-like machines, ethnic oppression, radio chatter over dust plains, tactical precision colliding with grief and dehumanization - form_and_line: Hard-edged anime linework, precise machinery, mechanical hatch strokes, panel-line detailing, rigid geometric contours - color_palette: Neon accents, metal greys, electric color pops, cyber-synthwave hues, acidic cyan-magenta contrast - lighting_setup: Industrial glow, digital reflections, fluorescent tube lighting, harsh underlighting, wet-surface specularity - material_texture: Mechanical detail, rain sheen, synthetic surfaces, brushed metal grain, carbon-fiber weave, glossy polymer - render_quality: High-detail sci-fi anime frame, precision mechanical rendering, specular highlight richness, cold techno-finish - spatial_distortion: Sharp perspective, technical silhouettes, wireframe grid vanishing points, cockpit POV framing - atmosphere: Somber, tactical, windswept, tragic - key_features: Spider-mech motion, dustfront horizon lines, military comms mood, squad-loss emotion, battlefield debris - creative_brief: Dust plains carry radio static and the weight of children sent to die in spider-legged coffins. Precision is grief made mechanical; every tactical overlay masks a face someone stopped remembering. The wind howls names that command forgot. + aesthetic: Militarismo trágico de juventud desechable, con mechas arácnidos y austeridad de frente polvoriento. + form_and_line: Geometría baja y artrópoda, patas articuladas funcionales y composición táctica de horizonte horizontal. + color_palette: Arena desaturada, acero pálido, óxido mate y señales de interfaz en rojo de alerta contenido. + lighting_setup: Cielo lechoso de guerra, contraluces de polvo en suspensión y pantallas tácticas como fuente secundaria. + material_texture: Blindaje erosionado, abrasión eólica, barro seco, arañazos de campo y polímero envejecido. + render_quality: Realismo anime táctico con énfasis en desgaste operacional y lectura de escuadra. + spatial_distortion: Perspectiva terrestre comprimida con telemetría superpuesta y sensación de distancia sin salida. + atmosphere: Sombría, ventosa y fatalista, de duelo militar silencioso. + key_features: Unidades spider-mech, overlays de mando, llanura de polvo, ruina bélica y lenguaje de pérdida colectiva. + creative_brief: >- + Construye una gramática dustfront-drone reusable donde hardware arácnido, + paisaje abrasivo y emoción de baja frecuencia expresen deshumanización + sistémica sin caer en épica glorificada. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_05/SP05-233.yaml b/components/recipes/styles/manifests/presets/pack_05/SP05-233.yaml index 8dc30430..02380614 100644 --- a/components/recipes/styles/manifests/presets/pack_05/SP05-233.yaml +++ b/components/recipes/styles/manifests/presets/pack_05/SP05-233.yaml @@ -12,16 +12,19 @@ tags: - anime-battle-and-worlds - mecha-and-cyberpunk visualDna: - aesthetic: Starfortress life, austere uniforms, biomechanical space combat, humanity surviving in a giant drifting ship, stark cosmic isolation and disciplined action - form_and_line: Hard-edged anime linework, precise machinery, mechanical hatch strokes, panel-line detailing, rigid geometric contours - color_palette: Neon accents, metal greys, electric color pops, cyber-synthwave hues, acidic cyan-magenta contrast - lighting_setup: Industrial glow, digital reflections, fluorescent tube lighting, harsh underlighting, wet-surface specularity - material_texture: Mechanical detail, rain sheen, synthetic surfaces, brushed metal grain, carbon-fiber weave, glossy polymer - render_quality: High-detail sci-fi anime frame, precision mechanical rendering, specular highlight richness, cold techno-finish - spatial_distortion: Sharp perspective, technical silhouettes, wireframe grid vanishing points, cockpit POV framing - atmosphere: Austere, cosmic, disciplined, lonely - key_features: Fortress interior scale, biomechanical suits, starfield void contrast, military formation staging, sparse cosmic lighting - creative_brief: A seed ship drifting through absolute void, humanity compressed into corridors where photosynthesis is prayer and every launch is a wager against extinction. Discipline wears austere uniforms; loneliness wears a starfield. Survival has the texture of recycled air. + aesthetic: Supervivencia austera en fortaleza interestelar, con disciplina militar y biotecnología defensiva de último recurso. + form_and_line: Estructura modular cerrada, corredores ortogonales, mecha de perfil sobrio y bloque volumétrico de nave-seed. + color_palette: Gris grafito, verde tenue de sistemas vitales, blanco clínico y negro cósmico profundo. + lighting_setup: Iluminación funcional de habitáculo, franjas frías de emergencia y contraluz de vacío exterior. + material_texture: Aleación reciclada, panelado utilitario, sellos de presión, marcas de mantenimiento y superficies de uso continuo. + render_quality: Sci-fi de precisión sobria con foco en escala interior y sensación de ecosistema cerrado. + spatial_distortion: Profundidad longitudinal de nave-hábitat y contraste radical entre interior denso y exterior infinito. + atmosphere: Ascética, aislada y resiliente, con tensión de extinción permanente. + key_features: Ciudad-nave, uniformidad operativa, launch decks, vacío estelar y ritual de supervivencia cotidiana. + creative_brief: >- + Define una gramática vacuum-fortress reusable donde arquitectura de + hábitat cerrado, disciplina de supervivencia y escala cósmica inhóspita + sostengan identidad coherente. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_05/SP05-234.yaml b/components/recipes/styles/manifests/presets/pack_05/SP05-234.yaml index 1fcbbf1b..8d8ab380 100644 --- a/components/recipes/styles/manifests/presets/pack_05/SP05-234.yaml +++ b/components/recipes/styles/manifests/presets/pack_05/SP05-234.yaml @@ -12,16 +12,19 @@ tags: - anime-battle-and-worlds - mecha-and-cyberpunk visualDna: - aesthetic: Humanity-on-the-brink mecha warfare, alien mass threat, tactical suits in ruined cities, command-screen panic and military sacrifice at desperate scale - form_and_line: Hard-edged anime linework, precise machinery, mechanical hatch strokes, panel-line detailing, rigid geometric contours - color_palette: Neon accents, metal greys, electric color pops, cyber-synthwave hues, acidic cyan-magenta contrast - lighting_setup: Industrial glow, digital reflections, fluorescent tube lighting, harsh underlighting, wet-surface specularity - material_texture: Mechanical detail, rain sheen, synthetic surfaces, brushed metal grain, carbon-fiber weave, glossy polymer - render_quality: High-detail sci-fi anime frame, precision mechanical rendering, specular highlight richness, cold techno-finish - spatial_distortion: Sharp perspective, technical silhouettes, wireframe grid vanishing points, cockpit POV framing - atmosphere: Dire, militarized, relentless, sacrificial - key_features: Tactical suit silhouettes, command-screen overlays, alien swarm contrast, ruined city scale, emergency sortie framing - creative_brief: Tactical screens flicker red over cities already cadavers, and the line between sortie and sacrifice blurs to silence. Mecha stand in formation like headstones waiting for names. The alien mass is not a monster but a mathematics of despair. + aesthetic: Apocalipsis militar de desgaste total, con trajes tácticos y guerra de aniquilación contra masa aliena impersonal. + form_and_line: Silueta de exotraje vectorial, composición de comando en capas y masa enemiga tratada como volumen estadístico. + color_palette: Acero opaco, rojo de alarma, humo gris, naranja de detonación y verde instrumental de HUD. + lighting_setup: Parpadeo de alertas, backlight de incendio urbano y luminancia electrónica de centro de mando. + material_texture: Armadura golpeada, concreto fracturado, residuos térmicos y lluvia sobre superficies bélicas. + render_quality: Campo de batalla sci-fi con claridad operativa, presión visual alta y escala de colapso civilizatorio. + spatial_distortion: Profundidad por enjambre y capas de táctica superpuesta, con compresión de decisiones en tiempo crítico. + atmosphere: Desesperada, militarizada y sacrificial, de urgencia sostenida. + key_features: Tactical suits, overlays de control, enjambre alienígena, ciudad arrasada y salidas de emergencia. + creative_brief: >- + Formula una gramática extinction-war reusable donde interfaz táctica, + desgaste urbano y amenaza masiva no antropomórfica definan el estilo con + rigor de comando y tragedia operacional. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_05/SP05-235.yaml b/components/recipes/styles/manifests/presets/pack_05/SP05-235.yaml index 98545f07..32531534 100644 --- a/components/recipes/styles/manifests/presets/pack_05/SP05-235.yaml +++ b/components/recipes/styles/manifests/presets/pack_05/SP05-235.yaml @@ -12,16 +12,19 @@ tags: - anime-battle-and-worlds - mecha-and-cyberpunk visualDna: - aesthetic: Motorcycle freedom, idol video lies, hidden-simulation city, glossy 80s cyber-youth rebellion, highways and holograms under manufactured skies - form_and_line: Hard-edged anime linework, precise machinery, mechanical hatch strokes, panel-line detailing, rigid geometric contours - color_palette: Neon accents, metal greys, electric color pops, cyber-synthwave hues, acidic cyan-magenta contrast - lighting_setup: Industrial glow, digital reflections, fluorescent tube lighting, harsh underlighting, wet-surface specularity - material_texture: Mechanical detail, rain sheen, synthetic surfaces, brushed metal grain, carbon-fiber weave, glossy polymer - render_quality: High-detail sci-fi anime frame, precision mechanical rendering, specular highlight richness, cold techno-finish - spatial_distortion: Sharp perspective, technical silhouettes, wireframe grid vanishing points, cockpit POV framing - atmosphere: Sleek, rebellious, glossy, revelatory - key_features: Motorcycle silhouettes, hologram-idol motifs, highway city night, hidden-system hints, glossy retro-future fashion - creative_brief: A highway curves through a city that is a lie, hologram idols singing over engines that know the truth. Glossy rebellion wears a motorcycle jacket and refuses the simulated sky. The future was promised; the future was a video loop. + aesthetic: Rebellión pop-cyber ochentera de superficie brillante, entre autopistas nocturnas, cultura idol y simulación encubierta. + form_and_line: Diseño aerodinámico de moto, silueta juvenil estilizada y geometría urbana de cartelería holográfica. + color_palette: Magenta neón, azul eléctrico, negro asfalto, cromo rosado y violeta sintético de videoclub futurista. + lighting_setup: Reflejos húmedos de avenida, signage holográfico pulsante y highlights de vitrina nocturna. + material_texture: Cuero brillante, plástico translúcido, cromo pulido, lluvia fina y granulado retro de pantalla. + render_quality: Retrofuturo anime de acabado glossy con energía urbana y legibilidad de diseño pop. + spatial_distortion: Profundidad de corredor vial con fuga alta velocidad y capas de publicidad simulada. + atmosphere: Seductora, rebelde y revelatoria, con falsedad sistémica bajo glamour. + key_features: Motocicleta icónica, idol holográfica, noche de autopista, moda cyber retro y pistas de ciudad simulada. + creative_brief: >- + Construye una gramática highway-pop-cyber reusable donde brillo urbano, + iconografía motera e ilusión mediática convivan en tensión entre libertad + juvenil y control sintético. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_05/SP05-236.yaml b/components/recipes/styles/manifests/presets/pack_05/SP05-236.yaml index 27d66fc2..d5144c6b 100644 --- a/components/recipes/styles/manifests/presets/pack_05/SP05-236.yaml +++ b/components/recipes/styles/manifests/presets/pack_05/SP05-236.yaml @@ -12,16 +12,19 @@ tags: - anime-battle-and-worlds - mecha-and-cyberpunk visualDna: - aesthetic: Utilitarian armored troopers, mud and rust, industrial war fatigue, scoped visor focus, practical mecha treated like military hardware rather than legend - form_and_line: Hard-edged anime linework, precise machinery, mechanical hatch strokes, panel-line detailing, rigid geometric contours - color_palette: Neon accents, metal greys, electric color pops, cyber-synthwave hues, acidic cyan-magenta contrast - lighting_setup: Industrial glow, digital reflections, fluorescent tube lighting, harsh underlighting, wet-surface specularity - material_texture: Mechanical detail, rain sheen, synthetic surfaces, brushed metal grain, carbon-fiber weave, glossy polymer - render_quality: High-detail sci-fi anime frame, precision mechanical rendering, specular highlight richness, cold techno-finish - spatial_distortion: Sharp perspective, technical silhouettes, wireframe grid vanishing points, cockpit POV framing - atmosphere: Gruff, tactical, muddy, exhausted - key_features: Scoped visor iconography, utilitarian mecha detail, trench-scale staging, rust-and-mud surfaces, hard-war realism - creative_brief: Scopedogs squat in mud like industrial toads, machines that never asked to be mythic but earned every rust streak with blood. War is a logistics problem solved in trenches. The visor does not see glory—it sees the next hill, the next body, the next rain. + aesthetic: Realismo militar utilitario de desgaste extremo, con mecha tratado como hardware desechable de trinchera. + form_and_line: Volúmenes compactos de blindado, óptica visor monocular y panelado funcional sin heroización formal. + color_palette: Verde oliva sucio, marrón barro, gris acero oxidado y rojo de testigo operativo mínimo. + lighting_setup: Cielo plomizo, rebote húmedo de lodo y lectura por focos funcionales de baja intensidad. + material_texture: Óxido activo, barro espeso, soldadura tosca, pintura descascarada y desgaste por fricción mecánica. + render_quality: Mecánica bélica de alta credibilidad con peso físico, suciedad persistente y enfoque anti-glamour. + spatial_distortion: Perspectiva de campo bajo con compresión de trinchera y visibilidad táctica limitada. + atmosphere: Ruda, agotada y pragmática, de guerra sin épica. + key_features: Visor scope, chasis utilitario, barro y herrumbre, staging de trincheras y lenguaje de supervivencia táctica. + creative_brief: >- + Define una gramática scopedog-attrition reusable donde masa compacta, + materialidad de desgaste y puesta en escena logística expresen conflicto + prolongado sin espectacularización heroica. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_05/SP05-237.yaml b/components/recipes/styles/manifests/presets/pack_05/SP05-237.yaml index 88a38001..e9fc3146 100644 --- a/components/recipes/styles/manifests/presets/pack_05/SP05-237.yaml +++ b/components/recipes/styles/manifests/presets/pack_05/SP05-237.yaml @@ -12,16 +12,19 @@ tags: - anime-battle-and-worlds - mecha-and-cyberpunk visualDna: - aesthetic: Sports-like mecha training escalating to impossible cosmic war, determination and scale, hot-blooded sacrifice, old-school mechanical heroism under starfield awe - form_and_line: Hard-edged anime linework, precise machinery, mechanical hatch strokes, panel-line detailing, rigid geometric contours - color_palette: Neon accents, metal greys, electric color pops, cyber-synthwave hues, acidic cyan-magenta contrast - lighting_setup: Industrial glow, digital reflections, fluorescent tube lighting, harsh underlighting, wet-surface specularity - material_texture: Mechanical detail, rain sheen, synthetic surfaces, brushed metal grain, carbon-fiber weave, glossy polymer - render_quality: High-detail sci-fi anime frame, precision mechanical rendering, specular highlight richness, cold techno-finish - spatial_distortion: Sharp perspective, technical silhouettes, wireframe grid vanishing points, cockpit POV framing - atmosphere: Triumphant, emotional, colossal, earnest - key_features: Training-hangar backdrops, giant-mecha launch energy, cosmic scale transitions, heroic shouting poses, sacrifice iconography - creative_brief: Training hangar fluorescence yields to the impossible light of collapsing galaxies, and one girl's determination bends physics into sacrifice. Scale inflates until the human heart is the only unit of measurement left. Triumph tastes like starlight and goodbye. + aesthetic: Heroísmo mecha clásico de sangre caliente que escala de entrenamiento técnico a sacrificio cósmico. + form_and_line: Silueta robusta de super-robot, diagonales de lanzamiento y gestualidad enfática de determinación juvenil. + color_palette: Azul hangar, rojo heroico, blanco de explosión estelar, negro espacial y amarillo de energía núcleo. + lighting_setup: Fluorescente de base militar, flare de ignición y bañado estelar en escenas de escala astronómica. + material_texture: Carcasa metálica marcada, juntas mecánicas visibles, humo térmico y brillo energético de alto contraste. + render_quality: Super robot anime con claridad emocional, expansión de escala y dramatismo de sacrificio final. + spatial_distortion: Transición de escala deportiva a cósmica con foreshortening heroico y verticalidad monumental. + atmosphere: Triunfante, emotiva y colosal, de épica sincera. + key_features: Hangar de entrenamiento, launches masivos, iconografía de sacrificio y encuadres de grito heroico. + creative_brief: >- + Construye una gramática galaxy-sacrifice reusable donde disciplina de + formación, energía de despegue y expansión astronómica converjan en una + épica emocional directa y legible. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_05/SP05-238.yaml b/components/recipes/styles/manifests/presets/pack_05/SP05-238.yaml index 6c76b22f..e6387234 100644 --- a/components/recipes/styles/manifests/presets/pack_05/SP05-238.yaml +++ b/components/recipes/styles/manifests/presets/pack_05/SP05-238.yaml @@ -12,19 +12,19 @@ tags: - anime-battle-and-worlds - mecha-and-cyberpunk visualDna: - aesthetic: Neo-tokusatsu digital anime style with giant-silhouette heroism, lattice-grid iconography, and clean melancholic futurism - form_and_line: Bold hero contour staging, scale-contrast silhouette stacking, geometric effect overlays, restrained technical hatch accents - color_palette: Cool steel base, electric cyan lattices, muted magenta glows, controlled white-hot highlights, low-saturation dusk neutrals - lighting_setup: Monumental backlight silhouettes, grid-emissive overlays, selective rim emphasis, soft atmospheric diffusion against hard key edges - material_texture: Smooth armored composites, semi-gloss synthetic panels, subtle weathering traces, luminous energy-surface interaction cues - render_quality: Crisp modern tokusatsu-anime finish with high silhouette readability, effect-layer precision, and emotionally clean rendering - spatial_distortion: Hero-scale exaggeration via depth compression and vertical dominance, with foreground-midground scale tension - atmosphere: Heroic, wistful, controlled, luminous, resonant - key_features: Giant-form silhouette grammar, digital lattice overlays, disciplined mecha contour language, mood-through-scale composition + aesthetic: Neo-tokusatsu melancólico con heroísmo de silueta gigante y gramática digital de rejilla energética. + form_and_line: Contorno monumental limpio, apilado de escala por capas y overlays geométricos de precisión controlada. + color_palette: Acero frío, cian eléctrico, magenta tenue de crepúsculo y blancos de energía puntuales. + lighting_setup: Contraluz de ícono heroico, emisión de grid holográfico y difusión atmosférica suave sobre key duro. + material_texture: Compuesto sintético semibrillo, panelado depurado, interacción lumínica energía-armadura y desgaste mínimo. + render_quality: Acabado nítido tokusatsu-anime con legibilidad de silueta y limpieza emocional de alto contraste. + spatial_distortion: Compresión de profundidad para escalar la figura central y tensión foreground-midground de ciudad miniaturizada. + atmosphere: Heroica y resonante, con nostalgia tecnológica contenida. + key_features: Silueta colosal, lattice digital, iconografía urbana de kaiju-response y composición por escala sentimental. creative_brief: >- - The style should be recognized by monumental silhouette contrast and - digital-grid visual motifs; keep the emotional tone contemplative while - preserving clean heroic readability across different subjects. + Define una gramática tokusatsu-grid reusable donde contraste de silueta + colosal y motivos de malla digital sostengan una heroicidad contemplativa, + limpia y transferible entre sujetos. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_05/SP05-239.yaml b/components/recipes/styles/manifests/presets/pack_05/SP05-239.yaml index cc668f8d..2d8ab4f1 100644 --- a/components/recipes/styles/manifests/presets/pack_05/SP05-239.yaml +++ b/components/recipes/styles/manifests/presets/pack_05/SP05-239.yaml @@ -12,16 +12,19 @@ tags: - anime-battle-and-worlds - mecha-and-cyberpunk visualDna: - aesthetic: Wild scale shifts, pop-color mecha exuberance, expressive cosmic nonsense, energetic school-age pilots, giant impossible machines with playful confidence and heartbreak - form_and_line: Hard-edged anime linework, precise machinery, mechanical hatch strokes, panel-line detailing, rigid geometric contours - color_palette: Neon accents, metal greys, electric color pops, cyber-synthwave hues, acidic cyan-magenta contrast - lighting_setup: Industrial glow, digital reflections, fluorescent tube lighting, harsh underlighting, wet-surface specularity - material_texture: Mechanical detail, rain sheen, synthetic surfaces, brushed metal grain, carbon-fiber weave, glossy polymer - render_quality: High-detail sci-fi anime frame, precision mechanical rendering, specular highlight richness, cold techno-finish - spatial_distortion: Sharp perspective, technical silhouettes, wireframe grid vanishing points, cockpit POV framing - atmosphere: Exuberant, strange, huge, heartfelt - key_features: Scale-warp cosmic framing, pop-color mecha, playful pilot expressions, giant action silhouettes, impossible spectacle design - creative_brief: Cosmic scale warps into candy-colored chaos as school-age pilots pilot impossible machines with the confidence of children who have not yet learned limits. Geometry breaks, physics blushes, and the universe concedes to exuberance. Heartbreak lives inside the biggest things. + aesthetic: Exuberancia mecha pop-cósmica con elasticidad de escala, energía juvenil y sentimentalidad escondida bajo espectáculo imposible. + form_and_line: Líneas dinámicas de super-robot estilizado, poses expansivas y anatomía de acción expresiva no literal. + color_palette: Rosa bubblegum, azul eléctrico, amarillo solar, violeta espacial y blanco de flare emocional. + lighting_setup: Resplandores cósmicos saturados, contraluces de explosión y gradientes pop de alto impacto cromático. + material_texture: Superficie brillante cartoon-tech, bloom de energía, trazas de velocidad y detalles mecánicos simplificados. + render_quality: Espectáculo anime de escala mutable con lectura pop inmediata y dramatismo afectivo debajo del caos. + spatial_distortion: Warps de tamaño, perspectiva juguetona y composición que alterna micro y macro en el mismo frame. + atmosphere: Exultante, extraña y conmovedora, de caos colorido con corazón. + key_features: Mecha pop saturado, pilotos juveniles, espectáculo desmedido y cambios bruscos de escala cósmica. + creative_brief: >- + Construye una gramática bubblegum-overdrive reusable donde color explosivo, + elasticidad escalar y emoción juvenil convivan en equilibrio entre juego y + tragedia. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_05/SP05-240.yaml b/components/recipes/styles/manifests/presets/pack_05/SP05-240.yaml index adec331f..cb8b84db 100644 --- a/components/recipes/styles/manifests/presets/pack_05/SP05-240.yaml +++ b/components/recipes/styles/manifests/presets/pack_05/SP05-240.yaml @@ -12,16 +12,19 @@ tags: - anime-battle-and-worlds - mecha-and-cyberpunk visualDna: - aesthetic: Graphic neon geometry, fire rescue mecha, angular city infernos, theatrical hero rivalry, poster-bright color blocking and anti-naturalistic heat - form_and_line: Hard-edged anime linework, precise machinery, mechanical hatch strokes, panel-line detailing, rigid geometric contours - color_palette: Neon accents, metal greys, electric color pops, cyber-synthwave hues, acidic cyan-magenta contrast - lighting_setup: Industrial glow, digital reflections, fluorescent tube lighting, harsh underlighting, wet-surface specularity - material_texture: Mechanical detail, rain sheen, synthetic surfaces, brushed metal grain, carbon-fiber weave, glossy polymer - render_quality: High-detail sci-fi anime frame, precision mechanical rendering, specular highlight richness, cold techno-finish - spatial_distortion: Sharp perspective, technical silhouettes, wireframe grid vanishing points, cockpit POV framing - atmosphere: Blazing, graphic, rebellious, maximal - key_features: Tri-color flame blocks, angular mecha silhouettes, rescue iconography, graphic city infernos, poster-like action poses - creative_brief: Tri-color flames eat through angular cities while rescue mecha pose like graphic-novel saints against an inferno that refuses naturalism. Rebellion is rendered in flat color blocks and perfect diagonal lines. Burn bright, burn deliberate, burn as protest. + aesthetic: Incendio geométrico anti-naturalista con mecha de rescate, rivalidad teatral y lenguaje gráfico tricolor de máxima intensidad. + form_and_line: Aristas diagonales agresivas, silueta de bombero-mecha icónica y composición de póster con bloques flameados. + color_palette: Cian intenso, magenta caliente, amarillo ácido, negro carbón y blanco de choque térmico. + lighting_setup: Llama plana de alto croma, backlight de incendio urbano y rims duros para separar masas en conflicto. + material_texture: Acabado gráfico semiplano, metal de respuesta térmica, hollín estilizado y overlays de energía lineal. + render_quality: Acción maximalista de lectura instantánea, con color-blocking extremo y control formal de caos ígneo. + spatial_distortion: Perspectiva en diagonales violentas y compresión dramática para amplificar colisión heroica. + atmosphere: Ardiente, rebelde y estruendosa, de protesta visual en combustión. + key_features: Flama tricolor, mecha angular de rescate, ciudad infernal estilizada y poses de santidad combativa. + creative_brief: >- + Define una gramática tri-fire-riot reusable donde geometría incendiaria, + cromática plana extrema e iconografía de rescate articulen una épica + contestataria, clara y transferible. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_05/SP05-241.yaml b/components/recipes/styles/manifests/presets/pack_05/SP05-241.yaml index e66b10a8..c154231a 100644 --- a/components/recipes/styles/manifests/presets/pack_05/SP05-241.yaml +++ b/components/recipes/styles/manifests/presets/pack_05/SP05-241.yaml @@ -12,16 +12,19 @@ tags: - anime-battle-and-worlds - isekai-and-high-fantasy visualDna: - aesthetic: MMO civilization after the log-in, guild politics, plaza meetings, tactical worldbuilding, glass-and-stone fantasy city life organized around systems and cooperation - form_and_line: Fantasy anime linework, ornate costume detail, decorative trim strokes, layered armor inking, scrollwork contour - color_palette: Magical jewel tones, sky blues, warm adventure accents, enchanted emerald-amber range, sapphire depth richness - lighting_setup: Adventure-ready glow, atmospheric depth, magical emanation lighting, sunbeam shafts, ethereal rim auras - material_texture: Cloaks, armor, stone, magic particles, luminous props, chainmail sheen, enchanted ore glint, weathered leather grain - render_quality: Expansive fantasy anime frame, epic-scope rendering, heroic visual polish, richly detailed finish - spatial_distortion: Heroic proportions, dynamic staging, sweeping landscape depth, monumental scale framing, quest-ready composition - atmosphere: Strategic, communal, thoughtful, adventurous - key_features: Guild emblems, city-plaza staging, party-role clarity, system-overlay hints, collaborative ensemble framing - creative_brief: A glass-and-stone city reorganizes around guild emblems and plaza diplomacy, where the game became the world and strategy became survival. Cooperation is architecture, knowledge is infrastructure. The after-login civilization builds itself one meeting, one contract, one shared meal at a time. + aesthetic: Civilización post-login de fantasía sistémica, con política de gremios, urbanismo social y cooperación como tecnología cultural. + form_and_line: Arquitectura ordenada de plazas y foros, siluetas de party-role claras y linework táctico de interfaz diegética. + color_palette: Azul acero urbano, verde esmeralda administrativo, ámbar cálido de taberna y acentos cian de UI arcana. + lighting_setup: Luz diurna de plaza, interiores de guildhall en tungsteno suave y superposición luminosa de ventanas de sistema. + material_texture: Piedra cívica pulida, madera de cartelera, pergamino de contrato, metal de insignia y tela de uniforme gremial. + render_quality: Fantasía urbana de alta legibilidad estratégica, con composición coral y claridad de roles en escena. + spatial_distortion: Escala comunitaria horizontal, jerarquía visual por grupos y profundidad orientada a mapa social. + atmosphere: Comunal, analítica y esperanzada, de ciudad que aprende a autogobernarse. + key_features: Emblemas de guild, plazas de negociación, pizarras de quest y staging colaborativo de escuadras. + creative_brief: >- + Define una gramática strategy-guild reusable donde infraestructura social, + estética de sistema y cooperación visible articulen identidad de mundo sin + depender de una misión concreta. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_05/SP05-242.yaml b/components/recipes/styles/manifests/presets/pack_05/SP05-242.yaml index 2c8152cd..cdf4d8ed 100644 --- a/components/recipes/styles/manifests/presets/pack_05/SP05-242.yaml +++ b/components/recipes/styles/manifests/presets/pack_05/SP05-242.yaml @@ -12,16 +12,19 @@ tags: - anime-battle-and-worlds - isekai-and-high-fantasy visualDna: - aesthetic: Low-level adventurers in a damp fantasy world, debt and fear, smoky campfires, hesitant teamwork, grounded monster hunting and fragile grief - form_and_line: Fantasy anime linework, ornate costume detail, decorative trim strokes, layered armor inking, scrollwork contour - color_palette: Magical jewel tones, sky blues, warm adventure accents, enchanted emerald-amber range, sapphire depth richness - lighting_setup: Adventure-ready glow, atmospheric depth, magical emanation lighting, sunbeam shafts, ethereal rim auras - material_texture: Cloaks, armor, stone, magic particles, luminous props, chainmail sheen, enchanted ore glint, weathered leather grain - render_quality: Expansive fantasy anime frame, epic-scope rendering, heroic visual polish, richly detailed finish - spatial_distortion: Heroic proportions, dynamic staging, sweeping landscape depth, monumental scale framing, quest-ready composition - atmosphere: Humble, smoky, vulnerable, earnest - key_features: Campfire staging, patched equipment, fearful party spacing, muddy paths, low-level survival details - creative_brief: Smoke curls from a campfire too small to chase the fear away, and patched armor tells stories no epic would remember. A party of underdogs kills one goblin and grieves like it was a king. Fantasy has a smell here—damp wool, iron, hesitation. + aesthetic: Fantasía de bajo nivel marcada por precariedad, duelo íntimo y supervivencia de escuadra sin épica grandilocuente. + form_and_line: Siluetas contenidas, postura defensiva, distancia emocional entre miembros y lectura de movimiento cauteloso. + color_palette: Marrón humo, gris barro, verde apagado, naranja tenue de fogata y azul noche húmeda. + lighting_setup: Fuego débil de campamento, niebla baja, sombras largas y luz ambiental fría de bosque hostil. + material_texture: Cuero remendado, tela mojada, metal sin pulir, barro adherido y desgaste acumulado en equipo improvisado. + render_quality: Realismo anime sobrio con foco en vulnerabilidad corporal y narrativa de pérdidas pequeñas. + spatial_distortion: Escala humana reducida, encuadres cerrados de grupo y profundidad incierta por niebla y maleza. + atmosphere: Frágil, humilde y sincera, con miedo persistente y lealtad emergente. + key_features: Fogata mínima, armadura parchada, senderos lodados y formación insegura de party novata. + creative_brief: >- + Construye una gramática smoke-and-mud reusable donde materialidad precaria, + luz pobre y colaboración temblorosa expresen crecimiento desde la + vulnerabilidad. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_05/SP05-243.yaml b/components/recipes/styles/manifests/presets/pack_05/SP05-243.yaml index 8e1f8c09..0c372300 100644 --- a/components/recipes/styles/manifests/presets/pack_05/SP05-243.yaml +++ b/components/recipes/styles/manifests/presets/pack_05/SP05-243.yaml @@ -12,16 +12,19 @@ tags: - anime-battle-and-worlds - isekai-and-high-fantasy visualDna: - aesthetic: Classic OVA fantasy grandeur, shining armor, party-lined adventure posters, elves and dragons under painterly skies, pure tabletop fantasy sincerity - form_and_line: Fantasy anime linework, ornate costume detail, decorative trim strokes, layered armor inking, scrollwork contour - color_palette: Magical jewel tones, sky blues, warm adventure accents, enchanted emerald-amber range, sapphire depth richness - lighting_setup: Adventure-ready glow, atmospheric depth, magical emanation lighting, sunbeam shafts, ethereal rim auras - material_texture: Cloaks, armor, stone, magic particles, luminous props, chainmail sheen, enchanted ore glint, weathered leather grain - render_quality: Expansive fantasy anime frame, epic-scope rendering, heroic visual polish, richly detailed finish - spatial_distortion: Heroic proportions, dynamic staging, sweeping landscape depth, monumental scale framing, quest-ready composition - atmosphere: Noble, mythic, classic, adventurous - key_features: Party-quest formations, painterly fantasy skies, shining armor, dragon-scale worldbuilding, OVA-era grandeur - creative_brief: Shining armor catches the light of a painterly sky as party-line adventurers stride through tapestry-born quests. Every elf, every dragon, every clanking paladin is rendered with the sincerity of a D&D session believed in completely. The OVA era never stopped dreaming in jewel tones. + aesthetic: Grandilocuencia OVA de fantasy clásico, con sinceridad tabletop y nobleza heroica de aventura coral. + form_and_line: Contorno elegante tradicional, ornamento medieval visible y composición de party frontal tipo póster de campaña. + color_palette: Zafiro profundo, oro heráldico, rojo estandarte, marfil de pergamino y verde bosque épico. + lighting_setup: Cielo pictórico luminoso, key cálido de amanecer de quest y rim heroico en armadura pulida. + material_texture: Cota de malla brillante, estandartes bordados, piedra antigua, cuero noble y escamas dracónicas decorativas. + render_quality: Acabado clásico de fantasía ilustrada con lectura mítica y belleza de cuadro aventurero. + spatial_distortion: Escala heroica tradicional, profundidad de paisaje amplio y staging de formación de grupo. + atmosphere: Mítica, noble y aspiracional, con pureza de aventura antigua. + key_features: Formación de party, armadura reluciente, cielos pintados y códigos visuales de campaña épica. + creative_brief: >- + Define una gramática OVA-quest reusable donde iconografía medieval clásica, + composición de grupo y romanticismo aventurero conserven una épica sincera + y atemporal. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_05/SP05-244.yaml b/components/recipes/styles/manifests/presets/pack_05/SP05-244.yaml index f2353cd9..aa16c921 100644 --- a/components/recipes/styles/manifests/presets/pack_05/SP05-244.yaml +++ b/components/recipes/styles/manifests/presets/pack_05/SP05-244.yaml @@ -12,16 +12,19 @@ tags: - anime-battle-and-worlds - isekai-and-high-fantasy visualDna: - aesthetic: East Asian court-fantasy worldbuilding, beast envoys, throne-room mandate, wandering exile becoming sovereign, dense political mythology and spiritual weight - form_and_line: Fantasy anime linework, ornate costume detail, decorative trim strokes, layered armor inking, scrollwork contour - color_palette: Magical jewel tones, sky blues, warm adventure accents, enchanted emerald-amber range, sapphire depth richness - lighting_setup: Adventure-ready glow, atmospheric depth, magical emanation lighting, sunbeam shafts, ethereal rim auras - material_texture: Cloaks, armor, stone, magic particles, luminous props, chainmail sheen, enchanted ore glint, weathered leather grain - render_quality: Expansive fantasy anime frame, epic-scope rendering, heroic visual polish, richly detailed finish - spatial_distortion: Heroic proportions, dynamic staging, sweeping landscape depth, monumental scale framing, quest-ready composition - atmosphere: Regal, mythic, searching, fated - key_features: Imperial robes, beast envoy motifs, throne-room scale, wandering-road contrast, mythology-rich props - creative_brief: Imperial robes trail across throne-room stone while beast envoys whisper mandates from a heaven that chose an exile for a crown. Sovereignty is not seized but survived—a wandering road that ends in duty. The spiritual weight of a kingdom presses through silk and silence. + aesthetic: Fantasía cortesana de mandato celeste, con exilio iniciático, simbolismo bestial y densidad político-espiritual. + form_and_line: Silueta ceremonial oriental, pliegues de túnica imperial y arquitectura de sala del trono con eje de autoridad. + color_palette: Verde jade, rojo cinabrio, dorado imperial, negro tinta y azul niebla de montañas sagradas. + lighting_setup: Luz solemne de corte, contraluz de salón ritual y brillos selectivos sobre insignias de legitimidad. + material_texture: Seda pesada, laca ceremonial, piedra de palacio, ornamento broncíneo y talismanes de bestia mensajera. + render_quality: Drama de alta fantasía político-mítica con lectura jerárquica clara y peso ceremonial. + spatial_distortion: Verticalidad de poder en interiores y contraste con horizontalidad de camino de exilio. + atmosphere: Regia, fatal y reflexiva, atravesada por destino y deber. + key_features: Túnica imperial, emisarios bestiales, trono monumental y dualidad entre corte y peregrinaje. + creative_brief: >- + Construye una gramática imperial-destiny reusable donde protocolo cortesano, + imaginería mandática y transformación del exilio en soberanía definan la + identidad visual. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_05/SP05-245.yaml b/components/recipes/styles/manifests/presets/pack_05/SP05-245.yaml index fbd207e7..1551c802 100644 --- a/components/recipes/styles/manifests/presets/pack_05/SP05-245.yaml +++ b/components/recipes/styles/manifests/presets/pack_05/SP05-245.yaml @@ -12,16 +12,19 @@ tags: - anime-battle-and-worlds - isekai-and-high-fantasy visualDna: - aesthetic: Prophetic romance, knight armor, giant dragon mechs, red skies and courtly longing, 90s fantasy-shojo hybridity with wind-swept pageantry - form_and_line: Fantasy anime linework, ornate costume detail, decorative trim strokes, layered armor inking, scrollwork contour - color_palette: Magical jewel tones, sky blues, warm adventure accents, enchanted emerald-amber range, sapphire depth richness - lighting_setup: Adventure-ready glow, atmospheric depth, magical emanation lighting, sunbeam shafts, ethereal rim auras - material_texture: Cloaks, armor, stone, magic particles, luminous props, chainmail sheen, enchanted ore glint, weathered leather grain - render_quality: Expansive fantasy anime frame, epic-scope rendering, heroic visual polish, richly detailed finish - spatial_distortion: Heroic proportions, dynamic staging, sweeping landscape depth, monumental scale framing, quest-ready composition - atmosphere: Windswept, romantic, mystical, heroic - key_features: Tarot symbolism, wind-swept capes, knight-mecha contrast, red-sky horizons, courtly emotional poses - creative_brief: Red skies meet wind-swept capes and a dragon mech kneels before a girl who holds the tarot deck of fate. Prophetic romance rides the jet stream between shojo heartbreak and shonen valor. Every frame is a card turned, every glance a destiny unfolding. + aesthetic: Híbrido shōjo-mecha de profecía romántica, con caballería, fatalismo de tarot y melancolía de cielo rojo. + form_and_line: Curva emocional en vestuario y cabello, contraste con mecha dracónico angular y pose caballeresca teatral. + color_palette: Carmín crepuscular, azul viento, dorado arcano, plata de armadura y violeta profético. + lighting_setup: Backlight ventoso de horizonte rojo, glow místico de carta y key dramático de duelo sentimental. + material_texture: Capa batida por viento, metal caballeresco, piedra de corte, brillo de tarot y humo de campo bélico. + render_quality: Fantasía romántica de alto dramatismo con fusión legible de épica mecha y sensibilidad shōjo. + spatial_distortion: Profundidad por corrientes de viento y énfasis en diagonales de destino entre personaje y máquina. + atmosphere: Ventosa, mística y apasionada, con tensión entre amor y guerra. + key_features: Simbolismo de tarot, capa en ráfaga, knight-mecha dracónico y encuadre de mirada predestinada. + creative_brief: >- + Define una gramática windblown-prophecy reusable donde romance fatalista, + iconografía adivinatoria y caballería mecha construyan una épica emotiva y + transferible. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_05/SP05-246.yaml b/components/recipes/styles/manifests/presets/pack_05/SP05-246.yaml index 78cd2a7d..01dbbef9 100644 --- a/components/recipes/styles/manifests/presets/pack_05/SP05-246.yaml +++ b/components/recipes/styles/manifests/presets/pack_05/SP05-246.yaml @@ -12,16 +12,19 @@ tags: - anime-battle-and-worlds - isekai-and-high-fantasy visualDna: - aesthetic: Arabian Nights adventure with bright jewel magic, bustling bazaars, dungeon towers, friendship and empire intrigue rendered through warm fantasy color - form_and_line: Fantasy anime linework, ornate costume detail, decorative trim strokes, layered armor inking, scrollwork contour - color_palette: Magical jewel tones, sky blues, warm adventure accents, enchanted emerald-amber range, sapphire depth richness - lighting_setup: Adventure-ready glow, atmospheric depth, magical emanation lighting, sunbeam shafts, ethereal rim auras - material_texture: Cloaks, armor, stone, magic particles, luminous props, chainmail sheen, enchanted ore glint, weathered leather grain - render_quality: Expansive fantasy anime frame, epic-scope rendering, heroic visual polish, richly detailed finish - spatial_distortion: Heroic proportions, dynamic staging, sweeping landscape depth, monumental scale framing, quest-ready composition - atmosphere: Colorful, adventurous, magical, expansive - key_features: Bazaar detail, jewel magic, dungeon towers, caravan silhouettes, empire-versus-friendship staging - creative_brief: Bazaar spices and jewel magic swirl through labyrinth-carved kingdoms where friendship dares to challenge empire. Caravan silhouettes cut across golden horizons; every dungeon conquered is a conversation between courage and greed. Arabian Nights meets shonen fire in warm, saturated adventure. + aesthetic: Aventura de fantasía caravanera con imaginería de bazar, magia joya y tensión entre amistad itinerante e imperio. + form_and_line: Ornamento arabesco dinámico, silueta de caravana y torres-laberinto verticales con lectura de ruta épica. + color_palette: Ámbar desértico, turquesa brillante, rojo granate, verde esmeralda y azul noche de mercado. + lighting_setup: Sol cálido de arena, luces de mercado colgante y destellos mágicos facetados tipo gema. + material_texture: Tejidos bordados, latón trabajado, piedra caliza, polvo de viaje y cristal encantado. + render_quality: Fantasía saturada de aventura móvil con riqueza decorativa y claridad narrativa de expedición. + spatial_distortion: Profundidad por avenida de bazar y horizonte de dunas, con verticalidad de dungeon monumental. + atmosphere: Colorida, expansiva y enérgica, de descubrimiento continuo. + key_features: Bazar vivo, caravanas, torres-laberinto, magia gema y conflicto comercio-autoridad. + creative_brief: >- + Construye una gramática labyrinth-caravan reusable donde densidad de mercado, + cromática cálida y aventura de ruta articulen un mundo de fábula comercial + y política. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_05/SP05-247.yaml b/components/recipes/styles/manifests/presets/pack_05/SP05-247.yaml index 42a8a4d2..08da078c 100644 --- a/components/recipes/styles/manifests/presets/pack_05/SP05-247.yaml +++ b/components/recipes/styles/manifests/presets/pack_05/SP05-247.yaml @@ -12,16 +12,19 @@ tags: - anime-battle-and-worlds - isekai-and-high-fantasy visualDna: - aesthetic: English-cottage occult romance, horned mage mystery, fairy folklore, moss and bone, tea and terror coexisting in lush magical domesticity - form_and_line: Fantasy anime linework, ornate costume detail, decorative trim strokes, layered armor inking, scrollwork contour - color_palette: Magical jewel tones, sky blues, warm adventure accents, enchanted emerald-amber range, sapphire depth richness - lighting_setup: Adventure-ready glow, atmospheric depth, magical emanation lighting, sunbeam shafts, ethereal rim auras - material_texture: Cloaks, armor, stone, magic particles, luminous props, chainmail sheen, enchanted ore glint, weathered leather grain - render_quality: Expansive fantasy anime frame, epic-scope rendering, heroic visual polish, richly detailed finish - spatial_distortion: Heroic proportions, dynamic staging, sweeping landscape depth, monumental scale framing, quest-ready composition - atmosphere: Enchanted, lonely, mossy, intimate - key_features: Cottage interiors, fairy-folk props, horned mage silhouette, moss textures, magical domestic ritual - creative_brief: A thorn-hedged cottage breathes with fairies, bone charms, and the quiet terror of being loved by something ancient and horned. Tea steeps beside occult tomes; domestic magic grows in moss between stones. Enchantment is not spectacle but the creak of a floorboard at dusk. + aesthetic: Romance ocultista doméstica de cottage británico, entre ternura ritual y extrañeza feérica de hueso y musgo. + form_and_line: Contorno delicado de cuento gótico, silueta cornuda icónica y detalle botánico en entorno íntimo. + color_palette: Verde musgo, crema té, marrón madera húmeda, negro hueso y dorado tenue de lámpara. + lighting_setup: Luz de atardecer filtrada por ventana, velas bajas y brillos mágicos discretos de hadario interior. + material_texture: Piedra húmeda, madera antigua, porcelana de té, pergamino arcano y fibras vegetales vivas. + render_quality: Fantasía íntima de alta atmósfera con microdetalle doméstico y pulsación sobrenatural sutil. + spatial_distortion: Espacio acogedor comprimido, profundidad de pasillo rural y foco en rituales de escala humana. + atmosphere: Encantada, melancólica y cálida, con inquietud amorosa latente. + key_features: Interior de cottage, talismanes óseos, silueta del mago, folklore feérico y rito cotidiano mágico. + creative_brief: >- + Define una gramática thorn-cottage reusable donde domesticidad ritual, + naturaleza encantada y misterio afectivo convivan sin perder delicadeza ni + tensión sobrenatural. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_05/SP05-248.yaml b/components/recipes/styles/manifests/presets/pack_05/SP05-248.yaml index e204c408..5a3c7bda 100644 --- a/components/recipes/styles/manifests/presets/pack_05/SP05-248.yaml +++ b/components/recipes/styles/manifests/presets/pack_05/SP05-248.yaml @@ -12,16 +12,19 @@ tags: - anime-battle-and-worlds - isekai-and-high-fantasy visualDna: - aesthetic: Dungeon delving as culinary craft, cast-iron pans over campfire, monster ingredients, practical fantasy ecology, hungry camaraderie and dangerous kitchens in stone ruins - form_and_line: Fantasy anime linework, ornate costume detail, decorative trim strokes, layered armor inking, scrollwork contour - color_palette: Magical jewel tones, sky blues, warm adventure accents, enchanted emerald-amber range, sapphire depth richness - lighting_setup: Adventure-ready glow, atmospheric depth, magical emanation lighting, sunbeam shafts, ethereal rim auras - material_texture: Cloaks, armor, stone, magic particles, luminous props, chainmail sheen, enchanted ore glint, weathered leather grain - render_quality: Expansive fantasy anime frame, epic-scope rendering, heroic visual polish, richly detailed finish - spatial_distortion: Heroic proportions, dynamic staging, sweeping landscape depth, monumental scale framing, quest-ready composition - atmosphere: Hearty, curious, practical, fun - key_features: Cooking tools, dungeon stones, monster-ingredient motifs, hungry party expressions, practical ecology detail - creative_brief: Cast-iron pans hiss over dungeon campfires while monster anatomy becomes recipe notation and survival becomes cuisine. A party eats their way through ecology, curiosity seasoning every bite. The dungeon is not just threat but pantry, laboratory, communal table. + aesthetic: Cocina de supervivencia fantástica, donde la exploración de dungeon se transforma en gastronomía ecológica aplicada. + form_and_line: Gestualidad culinaria en combate, utensilios protagonistas y composición de mesa improvisada sobre ruina pétrea. + color_palette: Dorado de caldo, rojo especia, verde hierba de caverna, gris piedra y azul tenue de fuego mágico. + lighting_setup: Fuego de cocina en cueva, luz cálida de hornilla portátil y rebote tenue en paredes húmedas. + material_texture: Hierro fundido, superficies de corte, piedra rugosa, tejido aventurero manchado y brillo de grasa. + render_quality: Fantasía culinaria de alto detalle funcional con equilibrio entre humor, peligro y apetito. + spatial_distortion: Espacio de cocina-campamento comprimido dentro de sala de dungeon de gran escala. + atmosphere: Curiosa, nutritiva y aventurera, con alegría práctica. + key_features: Ollas y cuchillos, ingredientes monstruo, estación de cocción de campaña y party hambrienta colaborativa. + creative_brief: >- + Construye una gramática stove-top-dungeon reusable donde lógica culinaria, + ecología de monstruos y camaradería de campo conviertan la exploración en + acto técnico y comunitario. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_05/SP05-249.yaml b/components/recipes/styles/manifests/presets/pack_05/SP05-249.yaml index 23ab06f7..1a8a2f4d 100644 --- a/components/recipes/styles/manifests/presets/pack_05/SP05-249.yaml +++ b/components/recipes/styles/manifests/presets/pack_05/SP05-249.yaml @@ -12,16 +12,19 @@ tags: - anime-battle-and-worlds - isekai-and-high-fantasy visualDna: - aesthetic: Frailty and obsession in a medieval city, books as holy technology, artisan workshops, ink-stained determination, domestic fantasy transformed by literacy and craft - form_and_line: Fantasy anime linework, ornate costume detail, decorative trim strokes, layered armor inking, scrollwork contour - color_palette: Magical jewel tones, sky blues, warm adventure accents, enchanted emerald-amber range, sapphire depth richness - lighting_setup: Adventure-ready glow, atmospheric depth, magical emanation lighting, sunbeam shafts, ethereal rim auras - material_texture: Cloaks, armor, stone, magic particles, luminous props, chainmail sheen, enchanted ore glint, weathered leather grain - render_quality: Expansive fantasy anime frame, epic-scope rendering, heroic visual polish, richly detailed finish - spatial_distortion: Heroic proportions, dynamic staging, sweeping landscape depth, monumental scale framing, quest-ready composition - atmosphere: Studious, tender, artisanal, determined - key_features: Paper-and-ink props, workshop interiors, small protagonist contrast, guild-craft details, devotion to books made visual - creative_brief: Ink-stained fingers press paper into being as literacy becomes the strangest magic a medieval city has ever witnessed. A frail girl bends an entire economy toward the holy technology of books. Devotion smells of vellum, ink, and the stubborn refusal to die before finishing the next page. + aesthetic: Fantasía artesanal de imprenta emergente, con fragilidad corporal y obsesión por el libro como tecnología transformadora. + form_and_line: Escala pequeña protagonista, detalle de taller manual y lenguaje visual centrado en oficio, proceso y paciencia. + color_palette: Sepia pergamino, azul tinta, marrón madera, crema papel y rojo cera de sello. + lighting_setup: Luz de ventana de scriptoria, lámpara de mesa cálida y contraste suave de interiores de taller. + material_texture: Vellum, pulpa de papel, madera de prensa, metal tipográfico y manchas de tinta en tela. + render_quality: Narrativa íntima de craft medieval con precisión material y foco en innovación cotidiana. + spatial_distortion: Escala doméstica concentrada, composición por mesa de trabajo y profundidad de guild artesanal. + atmosphere: Estudiosa, tierna y obstinada, con fervor por la lectura. + key_features: Herramientas de imprenta, tinta y papel, interiores de taller y contraste entre cuerpo frágil y voluntad férrea. + creative_brief: >- + Define una gramática printing-devotion reusable donde materialidad del libro, + labor artesanal y progreso silencioso conviertan la alfabetización en motor + dramático visual. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_05/SP05-250.yaml b/components/recipes/styles/manifests/presets/pack_05/SP05-250.yaml index 2b2c8b40..4991cc7f 100644 --- a/components/recipes/styles/manifests/presets/pack_05/SP05-250.yaml +++ b/components/recipes/styles/manifests/presets/pack_05/SP05-250.yaml @@ -12,16 +12,19 @@ tags: - anime-battle-and-worlds - isekai-and-high-fantasy visualDna: - aesthetic: Solemn undead guardians, quiet vows, old temples, righteous adventure without irony, dawn-lit armor and spiritual apprenticeship in a lonely fantasy world - form_and_line: Fantasy anime linework, ornate costume detail, decorative trim strokes, layered armor inking, scrollwork contour - color_palette: Magical jewel tones, sky blues, warm adventure accents, enchanted emerald-amber range, sapphire depth richness - lighting_setup: Adventure-ready glow, atmospheric depth, magical emanation lighting, sunbeam shafts, ethereal rim auras - material_texture: Cloaks, armor, stone, magic particles, luminous props, chainmail sheen, enchanted ore glint, weathered leather grain - render_quality: Expansive fantasy anime frame, epic-scope rendering, heroic visual polish, richly detailed finish - spatial_distortion: Heroic proportions, dynamic staging, sweeping landscape depth, monumental scale framing, quest-ready composition - atmosphere: Solemn, devout, hopeful, old-world - key_features: Temple stonework, guardian silhouettes, dawn-lit armor, vow-centered posing, pilgrimage-road compositions - creative_brief: Dawn light catches armor in an old temple where undead guardians teach the living how to swear oaths that outlast death. Righteousness has no irony here—just stone walls, quiet vows, and a paladin walking toward a horizon that believes in him. Faith is a pilgrimage taken alone but never unaccompanied. + aesthetic: Espiritualidad paladín de tono sobrio, con mentoría funeraria, templo antiguo y heroísmo devocional sin cinismo. + form_and_line: Postura de voto y peregrinaje, armadura clásica al amanecer y siluetas guardianas de solemnidad sepulcral. + color_palette: Oro alba, azul oración, gris piedra ancestral, blanco juramento y verde de santuario antiguo. + lighting_setup: Amanecer litúrgico, shafts en nave de templo y halo moderado sobre armadura y símbolos sagrados. + material_texture: Piedra erosionada, metal bendecido, tela de viaje, reliquia ritual y polvo de capilla olvidada. + render_quality: Fantasía devocional de gran claridad ética, con equilibrio entre épica y contemplación religiosa. + spatial_distortion: Profundidad de nave-templo y horizonte de peregrinaje, con eje vertical de trascendencia. + atmosphere: Solemne, esperanzada y piadosa, de camino interior y exterior. + key_features: Guardianes no-muertos, arquitectura de templo, juramentos visualizados y composiciones de ruta paladina. + creative_brief: >- + Construye una gramática quiet-paladin reusable donde rito, deber y + monumentalidad sagrada expresen aprendizaje moral y aventura contemplativa + sin perder impulso heroico. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_05/SP05-251.yaml b/components/recipes/styles/manifests/presets/pack_05/SP05-251.yaml index b1a569ca..334d1dc1 100644 --- a/components/recipes/styles/manifests/presets/pack_05/SP05-251.yaml +++ b/components/recipes/styles/manifests/presets/pack_05/SP05-251.yaml @@ -12,16 +12,19 @@ tags: - anime-battle-and-worlds - isekai-and-high-fantasy visualDna: - aesthetic: Military bureaucracy and high-altitude spell warfare, trench maps and gemstone computation, ruthless child officer commanding impossible destruction in a pseudo-European war - form_and_line: Fantasy anime linework, ornate costume detail, decorative trim strokes, layered armor inking, scrollwork contour - color_palette: Magical jewel tones, sky blues, warm adventure accents, enchanted emerald-amber range, sapphire depth richness - lighting_setup: Adventure-ready glow, atmospheric depth, magical emanation lighting, sunbeam shafts, ethereal rim auras - material_texture: Cloaks, armor, stone, magic particles, luminous props, chainmail sheen, enchanted ore glint, weathered leather grain - render_quality: Expansive fantasy anime frame, epic-scope rendering, heroic visual polish, richly detailed finish - spatial_distortion: Heroic proportions, dynamic staging, sweeping landscape depth, monumental scale framing, quest-ready composition - atmosphere: Severe, tactical, aerial, merciless - key_features: Aerial magic circles, military map props, child-officer contrast, war-cloud skies, tactical command poses - creative_brief: 'Cold calculus meets divine incantation at ten thousand feet, where a child-officer computes destruction through gemstone logic and aerial sigils. The contradiction lives in every frame: innocence wielding annihilation, bureaucracy dressed in magical radiance, war-clouds parting for the geometry of absolute command.' + aesthetic: Doctrina militar arcana de altura, con burocracia bélica y brutalidad estratégica en clave austero-imperial. + form_and_line: Silueta de oficial aérea, círculos de conjuro geométricos y lenguaje visual de mapa/orden táctico. + color_palette: Gris uniforme, rojo mando, azul glaciar de cielo de guerra y ámbar tenue de gema de cómputo. + lighting_setup: Contraluz de estrato nuboso, flare frío de vuelo y destellos duros de magia de artillería. + material_texture: Lana militar, cuero de arnés, metal aeronáutico, papel de cartografía y cristal de hechizo facetado. + render_quality: Frame táctico de alta precisión con lectura jerárquica de mando y conflicto aéreo. + spatial_distortion: Profundidad vertical de combate, compresión de escuadrón y diagonales de picado ofensivo. + atmosphere: Severa, calculadora e implacable. + key_features: Magia aérea vectorial, utilería cartográfica, contraste niñez-mando y nubes de teatro bélico. + creative_brief: >- + Define una gramática aerial-war-doctrine reusable donde disciplina de + estado mayor, magia balística y verticalidad de combate expresen poder + táctico sin romantizar la devastación. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_05/SP05-252.yaml b/components/recipes/styles/manifests/presets/pack_05/SP05-252.yaml index 62d17517..980edc3c 100644 --- a/components/recipes/styles/manifests/presets/pack_05/SP05-252.yaml +++ b/components/recipes/styles/manifests/presets/pack_05/SP05-252.yaml @@ -12,16 +12,19 @@ tags: - anime-battle-and-worlds - isekai-and-high-fantasy visualDna: - aesthetic: Traveling fantasy comfort food, merchant roads, giant familiar appetite, practical camp cookware, low-stakes abundance and wandering culinary coziness - form_and_line: Fantasy anime linework, ornate costume detail, decorative trim strokes, layered armor inking, scrollwork contour - color_palette: Magical jewel tones, sky blues, warm adventure accents, enchanted emerald-amber range, sapphire depth richness - lighting_setup: Adventure-ready glow, atmospheric depth, magical emanation lighting, sunbeam shafts, ethereal rim auras - material_texture: Cloaks, armor, stone, magic particles, luminous props, chainmail sheen, enchanted ore glint, weathered leather grain - render_quality: Expansive fantasy anime frame, epic-scope rendering, heroic visual polish, richly detailed finish - spatial_distortion: Heroic proportions, dynamic staging, sweeping landscape depth, monumental scale framing, quest-ready composition - atmosphere: Relaxed, tasty, itinerant, warm - key_features: Cookpot focus, road-camp compositions, familiar-animal scale contrast, merchant packs, food-steam detail - creative_brief: A stewpot bubbling on a merchant road transforms hunger into communion, the giant familiar's appetite a measure of how far from home this new world feels. Low-stakes abundance radiates from every campfire frame, where the greatest quest is simply feeding those who walk beside you. + aesthetic: Fantasy itinerante de comfort-food, con economía de ruta, cocina de campamento y abundancia de baja tensión. + form_and_line: Composición centrada en olla y mesa improvisada, siluetas amables de viaje y gesto culinario doméstico. + color_palette: Dorado caldo, marrón pan, verde campo, azul cielo abierto y crema de vajilla rústica. + lighting_setup: Fuego de campamento cálido, luz crepuscular amable y vapor iluminado como acento narrativo. + material_texture: Hierro de cacerola, madera de carreta, tela de alforja, especias visibles y superficies gastronómicas brillantes. + render_quality: Slice-of-life fantástico con detalle comestible y legibilidad de convivencia en ruta. + spatial_distortion: Escala de carretera y campamento, con foco íntimo en la estación de cocina móvil. + atmosphere: Cálida, relajada y hambrienta, de viaje sin urgencia trágica. + key_features: Olla protagonista, familiar glotón, packs de mercader y nubes de vapor apetecible. + creative_brief: >- + Construye una gramática merchant-road-stew reusable donde cocina práctica, + hospitalidad de viaje y abundancia cotidiana sostengan una aventura amable + centrada en el acto de compartir comida. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_05/SP05-253.yaml b/components/recipes/styles/manifests/presets/pack_05/SP05-253.yaml index 171ac6e6..12a42fb8 100644 --- a/components/recipes/styles/manifests/presets/pack_05/SP05-253.yaml +++ b/components/recipes/styles/manifests/presets/pack_05/SP05-253.yaml @@ -12,16 +12,19 @@ tags: - anime-battle-and-worlds - isekai-and-high-fantasy visualDna: - aesthetic: Adult heroine competence, herbal labs, court politeness, soothing green magic, restrained romance and workplace fantasy healing rendered with poised elegance - form_and_line: Fantasy anime linework, ornate costume detail, decorative trim strokes, layered armor inking, scrollwork contour - color_palette: Magical jewel tones, sky blues, warm adventure accents, enchanted emerald-amber range, sapphire depth richness - lighting_setup: Adventure-ready glow, atmospheric depth, magical emanation lighting, sunbeam shafts, ethereal rim auras - material_texture: Cloaks, armor, stone, magic particles, luminous props, chainmail sheen, enchanted ore glint, weathered leather grain - render_quality: Expansive fantasy anime frame, epic-scope rendering, heroic visual polish, richly detailed finish - spatial_distortion: Heroic proportions, dynamic staging, sweeping landscape depth, monumental scale framing, quest-ready composition - atmosphere: Calm, capable, luminous, graceful - key_features: Herbal-lab props, court costume detail, gentle magic bloom, composed heroine posture, workplace-fantasy warmth - creative_brief: Green magic rises from herbarium vials like answered prayer, the saint's power resting not in spectacle but in the quiet confidence of a woman who knows her worth. Courtly restraint frames every gesture, proving that the most potent sorcery wears a composed smile and steady hands. + aesthetic: Elegancia de healing-fantasy adulta, con competencia profesional, laboratorio herbal y cortesía palaciega contenida. + form_and_line: Silueta serena de especialista, trazo limpio de gesto técnico y diseño de vestuario cortesano funcional. + color_palette: Verde botánico, marfil clínico, dorado tenue de corte y azul pastel de calma mágica. + lighting_setup: Luz suave de invernadero, reflejo en frascos de herbario y bloom curativo de baja agresividad. + material_texture: Vidrio de laboratorio, papel de fórmula, seda formal y plantas medicinales detalladas. + render_quality: Fantasía terapéutica de alta pulcritud con foco en proceso, cuidado y autoridad tranquila. + spatial_distortion: Espacio de trabajo ordenado y jerarquía visual por estaciones de preparación alquímica. + atmosphere: Calmada, luminosa y competente. + key_features: Herbario, frascos de cura, protocolo de corte y postura profesional de protagonista. + creative_brief: >- + Define una gramática herbarium-court reusable donde sanación botánica, + compostura adulta y refinamiento institucional conviertan la magia en + práctica experta, no en espectáculo. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_05/SP05-254.yaml b/components/recipes/styles/manifests/presets/pack_05/SP05-254.yaml index 684e420b..20166814 100644 --- a/components/recipes/styles/manifests/presets/pack_05/SP05-254.yaml +++ b/components/recipes/styles/manifests/presets/pack_05/SP05-254.yaml @@ -12,16 +12,19 @@ tags: - anime-battle-and-worlds - isekai-and-high-fantasy visualDna: - aesthetic: Book-portal romance fantasy, celestial symbols, guardian warriors, earnest devotion, soft 90s magical drama and travel-heavy emotional stakes - form_and_line: Fantasy anime linework, ornate costume detail, decorative trim strokes, layered armor inking, scrollwork contour - color_palette: Magical jewel tones, sky blues, warm adventure accents, enchanted emerald-amber range, sapphire depth richness - lighting_setup: Adventure-ready glow, atmospheric depth, magical emanation lighting, sunbeam shafts, ethereal rim auras - material_texture: Cloaks, armor, stone, magic particles, luminous props, chainmail sheen, enchanted ore glint, weathered leather grain - render_quality: Expansive fantasy anime frame, epic-scope rendering, heroic visual polish, richly detailed finish - spatial_distortion: Heroic proportions, dynamic staging, sweeping landscape depth, monumental scale framing, quest-ready composition - atmosphere: Fated, romantic, bright, dramatic - key_features: Celestial motifs, guardian ensemble, portal iconography, travel-costume detail, soft dramatic glances - creative_brief: A book opens and the world tilts sideways, ink becoming sky and stars rearranging into warriors sworn by celestial oath. Romance blooms in the space between pages, where earnest devotion outshines any constellation and the journey home is measured in heartbeats, not miles. + aesthetic: Drama romántico de portal-libro con imaginería celeste y guardianes juramentados en tono noventero luminoso. + form_and_line: Contorno suave emocional, símbolos astrales recurrentes y composición de viaje con foco en vínculo afectivo. + color_palette: Rosa cósmico, azul estrella, oro constelar, blanco papel y violeta destino. + lighting_setup: Brillo de portal abierto, halos celestes y luz dramática difusa de melodrama fantástico. + material_texture: Páginas antiguas, tejidos rituales, ornamento metálico y partículas mágicas de constelación. + render_quality: Fantasía de romance épico con claridad sentimental y estética de aventura por capítulos. + spatial_distortion: Transición dimensional por marco-libro y profundidad de ruta entre dos mundos. + atmosphere: Predestinada, brillante y emotiva. + key_features: Portal textual, guardianes celestiales, simbología astral y staging de juramento romántico. + creative_brief: >- + Construye una gramática celestial-portal reusable donde libro, constelación + y devoción romántica organicen una aventura de tránsito dimensional con + alta legibilidad emocional. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_05/SP05-255.yaml b/components/recipes/styles/manifests/presets/pack_05/SP05-255.yaml index ebd69893..a54d1dc2 100644 --- a/components/recipes/styles/manifests/presets/pack_05/SP05-255.yaml +++ b/components/recipes/styles/manifests/presets/pack_05/SP05-255.yaml @@ -12,16 +12,19 @@ tags: - anime-battle-and-worlds - isekai-and-high-fantasy visualDna: - aesthetic: Rescue fantasy with armor, giant summons, rune-powered machinery, candy-bright courage and mystical quest framing for a heroic team of girls - form_and_line: Fantasy anime linework, ornate costume detail, decorative trim strokes, layered armor inking, scrollwork contour - color_palette: Magical jewel tones, sky blues, warm adventure accents, enchanted emerald-amber range, sapphire depth richness - lighting_setup: Adventure-ready glow, atmospheric depth, magical emanation lighting, sunbeam shafts, ethereal rim auras - material_texture: Cloaks, armor, stone, magic particles, luminous props, chainmail sheen, enchanted ore glint, weathered leather grain - render_quality: Expansive fantasy anime frame, epic-scope rendering, heroic visual polish, richly detailed finish - spatial_distortion: Heroic proportions, dynamic staging, sweeping landscape depth, monumental scale framing, quest-ready composition - atmosphere: Brave, bright, enchanted, team-driven - key_features: Rune magic, armor accents, giant summon silhouettes, quest-team posing, jewel-bright backgrounds - creative_brief: Three girls become knights become legends, their armor blooming from rune-light like petals from enchanted ore. Giant summons cast shadows across jewel-bright worlds where the rescue mission is also a becoming, courage reforged with every step toward the one who must be saved. + aesthetic: Heroísmo grupal de magical-knights con misión de rescate, runas tecnomísticas y valentía cromática de alto brillo. + form_and_line: Siluetas diferenciadas de equipo, ornamentación rúnica en armadura y lectura de invocación gigante. + color_palette: Rojo rubí, azul cobalto, verde esmeralda, dorado mágico y blanco de energía invocada. + lighting_setup: Emisión de runa, flare de summon y key vibrante de aventura de rescate. + material_texture: Metal encantado, tela ceremonial, piedra de templo y superficies lumínicas de círculo mágico. + render_quality: Fantasy-team de acabado brillante con claridad de roles y épica juvenil cooperativa. + spatial_distortion: Escala dual entre equipo humano e invocaciones colosales con composición ascendente. + atmosphere: Valiente, luminosa y solidaria. + key_features: Runas activas, summons gigantes, poses de escuadrón y colorimetría joya. + creative_brief: >- + Define una gramática gem-engine-rescue reusable donde cooperación de + protagonistas, visualidad rúnica y contraste de escala con invocaciones + sostengan una épica de rescate clara y enérgica. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_05/SP05-256.yaml b/components/recipes/styles/manifests/presets/pack_05/SP05-256.yaml index e4174dca..7c24ce91 100644 --- a/components/recipes/styles/manifests/presets/pack_05/SP05-256.yaml +++ b/components/recipes/styles/manifests/presets/pack_05/SP05-256.yaml @@ -12,16 +12,19 @@ tags: - anime-battle-and-worlds - isekai-and-high-fantasy visualDna: - aesthetic: Schoolgirl through the bone-eater's well, beads and claws, demon-laden forests, sacred arrows, romance and bickering on a feudal road beneath red skies - form_and_line: Fantasy anime linework, ornate costume detail, decorative trim strokes, layered armor inking, scrollwork contour - color_palette: Magical jewel tones, sky blues, warm adventure accents, enchanted emerald-amber range, sapphire depth richness - lighting_setup: Adventure-ready glow, atmospheric depth, magical emanation lighting, sunbeam shafts, ethereal rim auras - material_texture: Cloaks, armor, stone, magic particles, luminous props, chainmail sheen, enchanted ore glint, weathered leather grain - render_quality: Expansive fantasy anime frame, epic-scope rendering, heroic visual polish, richly detailed finish - spatial_distortion: Heroic proportions, dynamic staging, sweeping landscape depth, monumental scale framing, quest-ready composition - atmosphere: Adventurous, combative, nostalgic, mythic - key_features: Shrine-well iconography, demon forest backdrops, sacred-arrow poses, clawed silhouette, traveling-party dynamics - creative_brief: The bone-eater's well gapes between centuries like a wound that refuses to close, a schoolgirl falling through time into a world of claw and fang and sacred arrow. Demon-laden forests rustle with nostalgia and danger in equal measure, where love and bickering share the same feudal road beneath red-tinged skies. + aesthetic: Fantasía feudal de cruce temporal con romance combativo, folclore y demonología de ruta. + form_and_line: Contraste schoolwear-feudal, silueta garra de yokai y composición de viaje episódico en bosque. + color_palette: Rojo crepuscular, verde bosque profundo, púrpura espiritual, marfil de talismán y azul nostalgia. + lighting_setup: Luz de santuario, atardecer rojizo y destellos de flecha sagrada en entorno sombrío. + material_texture: Madera de shrine, tela escolar, armadura desgastada, tierra de sendero y aura demoníaca particulada. + render_quality: Aventura fantástica de largo aliento con equilibrio entre acción, comedia de fricción y melancolía. + spatial_distortion: Profundidad de camino feudal y transición de pozo como umbral temporal recurrente. + atmosphere: Nostálgica, combativa y mítica. + key_features: Pozo santuario, bosque demonio, iconografía de flecha purificadora y dinámica de party itinerante. + creative_brief: >- + Construye una gramática shrine-well-feudal reusable donde umbral temporal, + folklore demoníaco y aventura romántica de carretera estructuren la + identidad sin anclarse a una escena única. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_05/SP05-257.yaml b/components/recipes/styles/manifests/presets/pack_05/SP05-257.yaml index 72b4553e..827632dc 100644 --- a/components/recipes/styles/manifests/presets/pack_05/SP05-257.yaml +++ b/components/recipes/styles/manifests/presets/pack_05/SP05-257.yaml @@ -12,16 +12,19 @@ tags: - anime-battle-and-worlds - isekai-and-high-fantasy visualDna: - aesthetic: Offbeat overpowered merchant fantasy, moonlit roads, demi-human communities, deadpan social detachment, practical trade and absurd strength sharing the same calm frame - form_and_line: Fantasy anime linework, ornate costume detail, decorative trim strokes, layered armor inking, scrollwork contour - color_palette: Magical jewel tones, sky blues, warm adventure accents, enchanted emerald-amber range, sapphire depth richness - lighting_setup: Adventure-ready glow, atmospheric depth, magical emanation lighting, sunbeam shafts, ethereal rim auras - material_texture: Cloaks, armor, stone, magic particles, luminous props, chainmail sheen, enchanted ore glint, weathered leather grain - render_quality: Expansive fantasy anime frame, epic-scope rendering, heroic visual polish, richly detailed finish - spatial_distortion: Heroic proportions, dynamic staging, sweeping landscape depth, monumental scale framing, quest-ready composition - atmosphere: Detached, moonlit, practical, powerful - key_features: Merchant-road props, moonlit travel staging, overpowered calm posing, demi-human ensemble, trade-driven worldbuilding - creative_brief: Moonlight silver-plates the merchant road where a deadpan wanderer walks with world-breaking strength tucked behind an unassuming smile. Demi-human communities gather in the glow of practical trade, their unlikely protector moving through the night like a secret the moon already knows. + aesthetic: Isekai mercantil lunar de tono deadpan, donde poder abrumador convive con economía práctica y diplomacia local. + form_and_line: Silueta sobria de viajero, staging de negociación en ruta y contraste entre calma expresiva y fuerza implícita. + color_palette: Plata de luna, azul medianoche, verde comercio, ocre de camino y violeta tenue de aura contenida. + lighting_setup: Nocturnidad limpia, highlights de fogón y acentos suaves sobre puestos, mapas y mercancía. + material_texture: Madera de carreta, cuero de mercader, moneda metálica, tela de puesto y polvo de sendero. + render_quality: Fantasía de viaje transaccional con detalle de worldbuilding económico y poder subrayado por contención. + spatial_distortion: Espacio de ruta abierta con microescenas de intercambio y focalización en figura central serena. + atmosphere: Desapegada, práctica y confiada. + key_features: Road-market, comunidad demi-humana, postura overpowered serena y utilería comercial. + creative_brief: >- + Define una gramática moonlit-merchant reusable donde comercio itinerante, + convivencia multi-especie y poder desproporcionado de baja exhibición se + articulen con tono tranquilo. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_05/SP05-258.yaml b/components/recipes/styles/manifests/presets/pack_05/SP05-258.yaml index 65466618..dc3eb296 100644 --- a/components/recipes/styles/manifests/presets/pack_05/SP05-258.yaml +++ b/components/recipes/styles/manifests/presets/pack_05/SP05-258.yaml @@ -12,16 +12,19 @@ tags: - anime-battle-and-worlds - isekai-and-high-fantasy visualDna: - aesthetic: Mundane practical skills becoming precious in fantasy, rope and lockpick utility, modest party bonds, dungeon logistics with empathy and comic warmth - form_and_line: Fantasy anime linework, ornate costume detail, decorative trim strokes, layered armor inking, scrollwork contour - color_palette: Magical jewel tones, sky blues, warm adventure accents, enchanted emerald-amber range, sapphire depth richness - lighting_setup: Adventure-ready glow, atmospheric depth, magical emanation lighting, sunbeam shafts, ethereal rim auras - material_texture: Cloaks, armor, stone, magic particles, luminous props, chainmail sheen, enchanted ore glint, weathered leather grain - render_quality: Expansive fantasy anime frame, epic-scope rendering, heroic visual polish, richly detailed finish - spatial_distortion: Heroic proportions, dynamic staging, sweeping landscape depth, monumental scale framing, quest-ready composition - atmosphere: Practical, warm, modest, dependable - key_features: Toolbox motifs, support-role staging, dungeon logistics, practical problem-solving poses, everyday-competence charm - creative_brief: A toolbox opens in a dungeon corridor and suddenly lockpicks are holier than relics, rope more precious than prophecy. The modest handyman walks behind the heroes, solving what swords cannot, his quiet competence the real magic in a world that fetishizes flash. + aesthetic: Fantasía de utilidad cotidiana donde el valor reside en habilidades manuales, logística y apoyo de equipo. + form_and_line: Composición funcional de herramientas, gesto de trabajo y lectura clara de roles de soporte no heroicos. + color_palette: Marrón herramienta, acero gris, naranja lámpara, verde cuerda y beige de piedra utilitaria. + lighting_setup: Iluminación de pasillo de dungeon con focos portátiles y acentos cálidos de campamento técnico. + material_texture: Cuerdas, cerraduras, metal de caja de herramientas, cuero de cinturón y polvo de obra subterránea. + render_quality: Slice-of-adventure con detalle operativo y encanto de competencia práctica en primer plano. + spatial_distortion: Escala humana de mantenimiento en espacios peligrosos, con foco en interacción herramienta-entorno. + atmosphere: Modesta, cálida y confiable. + key_features: Toolbox visible, soporte de party, resolución práctica y microgestos de oficio. + creative_brief: >- + Construye una gramática toolbox-quest reusable donde competencia manual, + logística de dungeon y empatía de equipo reemplacen el espectáculo por + eficacia narrativa. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_05/SP05-259.yaml b/components/recipes/styles/manifests/presets/pack_05/SP05-259.yaml index aeb05922..9523c8b1 100644 --- a/components/recipes/styles/manifests/presets/pack_05/SP05-259.yaml +++ b/components/recipes/styles/manifests/presets/pack_05/SP05-259.yaml @@ -12,16 +12,19 @@ tags: - anime-battle-and-worlds - isekai-and-high-fantasy visualDna: - aesthetic: Child-king underdog fantasy, soft storybook lines, giant emotional sincerity, fairy-tale castles and bodily vulnerability transformed into heroic grace - form_and_line: Fantasy anime linework, ornate costume detail, decorative trim strokes, layered armor inking, scrollwork contour - color_palette: Magical jewel tones, sky blues, warm adventure accents, enchanted emerald-amber range, sapphire depth richness - lighting_setup: Adventure-ready glow, atmospheric depth, magical emanation lighting, sunbeam shafts, ethereal rim auras - material_texture: Cloaks, armor, stone, magic particles, luminous props, chainmail sheen, enchanted ore glint, weathered leather grain - render_quality: Expansive fantasy anime frame, epic-scope rendering, heroic visual polish, richly detailed finish - spatial_distortion: Heroic proportions, dynamic staging, sweeping landscape depth, monumental scale framing, quest-ready composition - atmosphere: Innocent, moving, brave, storybook - key_features: Storybook castle forms, tiny-hero scale contrast, crown motifs, emotional gesture clarity, fairy-tale silhouettes - creative_brief: A crown too large for a small head sits steady on courage that fills the space where strength could not reach. Storybook lines draw castles with the tenderness of bedtime illustrations, a tiny king moving through fairy-tale halls where vulnerability is not weakness but the highest form of bravery. + aesthetic: Cuento de coronación vulnerable, con ternura gráfica y heroísmo moral en clave infantil. + form_and_line: Trazo storybook suave, silueta pequeña protagonista y arquitectura de castillo de fábula. + color_palette: Celeste claro, amarillo mantequilla, rojo corona, verde prado y gris piedra amable. + lighting_setup: Luz de cuento diurna, halos cálidos de inocencia y sombras blandas de drama emocional. + material_texture: Mampostería simple, tejido noble ligero, madera palaciega y acabado ilustrado de libro infantil. + render_quality: Narrativa visual emotiva de alta claridad gestual con estilo de fábula moderna. + spatial_distortion: Contraste deliberado entre figura mínima y espacio monumental para enfatizar coraje. + atmosphere: Inocente, valiente y conmovedora. + key_features: Corona sobredimensionada, castillos de cuento, lenguaje corporal transparente y contraste de escala afectivo. + creative_brief: >- + Define una gramática storybook-crown reusable donde fragilidad corporal, + monumentalidad de fábula y valentía ética construyan una épica sensible y + universal. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_05/SP05-260.yaml b/components/recipes/styles/manifests/presets/pack_05/SP05-260.yaml index b5b2f11a..cc390489 100644 --- a/components/recipes/styles/manifests/presets/pack_05/SP05-260.yaml +++ b/components/recipes/styles/manifests/presets/pack_05/SP05-260.yaml @@ -12,16 +12,19 @@ tags: - anime-battle-and-worlds - isekai-and-high-fantasy visualDna: - aesthetic: Bright fantasy party with desserts, polished town squares, cute teamwork, soft comedy, banquet abundance and colorful adventure rendered with candy-clean appeal - form_and_line: Fantasy anime linework, ornate costume detail, decorative trim strokes, layered armor inking, scrollwork contour - color_palette: Magical jewel tones, sky blues, warm adventure accents, enchanted emerald-amber range, sapphire depth richness - lighting_setup: Adventure-ready glow, atmospheric depth, magical emanation lighting, sunbeam shafts, ethereal rim auras - material_texture: Cloaks, armor, stone, magic particles, luminous props, chainmail sheen, enchanted ore glint, weathered leather grain - render_quality: Expansive fantasy anime frame, epic-scope rendering, heroic visual polish, richly detailed finish - spatial_distortion: Heroic proportions, dynamic staging, sweeping landscape depth, monumental scale framing, quest-ready composition - atmosphere: Cheerful, tasty, friendly, polished - key_features: Banquet spreads, polished town plazas, cute party staging, candy-fantasy color, soft comedic expressions - creative_brief: 'Every quest ends at a banquet table where dessert outranks treasure and polished town squares host the real victory: friendship served in candy-clean pastels. The party that fights together feasts together, their camaraderie the sweetest loot in a world painted with the colors of shared joy.' + aesthetic: Fantasía pastel de party alegre, con estética de banquet, comedia suave y aventura de convivencia luminosa. + form_and_line: Siluetas cute limpias, staging grupal amigable y arquitectura urbana pulida de plaza central. + color_palette: Rosa crema, azul caramelo, melocotón, verde menta y dorado postre. + lighting_setup: Luz alta de mediodía festivo, rebote cálido de mesa y acentos brillantes en dulces y ornamentos. + material_texture: Glaseado, panadería fantástica, cerámica decorada, tela colorida y piedra urbana impecable. + render_quality: Acabado candy-clean con legibilidad de ensemble y tono celebratorio continuo. + spatial_distortion: Composición de fiesta horizontal, densidad amable de extras y foco en mesa compartida. + atmosphere: Alegre, acogedora y deliciosa. + key_features: Banquetes abundantes, plaza pulida, expresiones cómicas suaves y colorimetría de postre. + creative_brief: >- + Construye una gramática banquet-quest-pastel reusable donde camaradería, + abundancia culinaria y diseño urbano luminoso conviertan la aventura en + celebración compartida. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-001.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-001.yaml index ec4f2619..0bec32d1 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-001.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-001.yaml @@ -12,16 +12,20 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Clean white open space, airy volume, sculptural emptiness, light as material - form_and_line: Straight horizontal lines, floating planes, silent geometry, invisible junctions - color_palette: White, Warm Beige, Cool Grey, Muted Sand, Pale Oak - lighting_setup: Soft diffuse daylight, shadowless ambient, luminous ceiling, hidden cove glow - material_texture: Smooth plaster, matte paint, honed stone, micro-cement, tactile stucco - render_quality: Architectural Digest design-editorial clean, aspirational perfection - spatial_distortion: None - atmosphere: Calm, spacious, expensive, meditative, weightless, curated stillness - key_features: Empty space, hidden storage, frameless glazing, floating staircase - creative_brief: Silence acquires geometry, absence becoming presence through the discipline of subtraction. Light pools and recedes across seamless planes, each surface a meditation on what was removed. The frame exhales stillness, every void as intentional as the forms that define it. + aesthetic: Minimalismo arquitectónico de alta precisión, donde la ausencia programática y la continuidad material construyen lujo silencioso. + form_and_line: Planos ortogonales largos, encuentros sin marco, espesores ocultos, ejes de circulación limpios y piezas flotantes de bajo perfil. + color_palette: Blanco mineral, marfil cálido, gris piedra frío, arena pálida y roble desaturado como único acento térmico. + lighting_setup: Luz diurna difusa de gran apertura, rebotes uniformes sin hotspots, cove lighting perimetral oculto y sombras extremadamente blandas. + material_texture: Yeso fino continuo, microcemento mate, piedra apomazada de poro cerrado y madera cepillada casi sin veta visible. + render_quality: Visualización editorial ultra-clean con énfasis en proporción, borde, alineación y disciplina de vacío. + spatial_distortion: Perspectiva neutra y estable, con profundidad construida por capas tonales suaves en lugar de dramatización angular. + atmosphere: Serenidad curada, control acústico implícito, claridad mental, y sensación de lujo por contención. + key_features: Mobiliario integrado, almacenaje invisible, carpinterías enrasadas, escaleras o plataformas suspendidas y continuidad suelo-muro. + creative_brief: >- + Preserva una gramática minimalista transferible basada en sustracción + extrema, continuidad constructiva y jerarquía por vacío. Cualquier sujeto + debe leerse como parte de un sistema de planos silenciosos, luz uniforme y + detalle oculto de alta precisión. avoidRules: - clutter - ornate diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-002.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-002.yaml index f92a6897..9814a013 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-002.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-002.yaml @@ -12,19 +12,20 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Industrial adaptive-reuse style centered on structural honesty, patinated utility, and refined rawness - form_and_line: Exposed load-bearing geometry, truss and conduit rhythm, riveted junction articulation, long-span volumetric framing - color_palette: Brick oxides, concrete neutrals, graphite metals, oxidized copper notes, muted amber warmth - lighting_setup: High-aperture daylight shafts with warm practical pools, shadow zoning, and contrast-led volumetric depth - material_texture: Board-formed concrete, rough masonry grain, weathered steel oxidation, reclaimed timber wear, matte leather accents - render_quality: High-fidelity industrial-chic finish balancing grit legibility with editorial polish and material truthfulness - spatial_distortion: Perspective stability with scale-forward depth, emphasizing structural rhythm over decorative clutter - atmosphere: Grounded, utilitarian, creative, mature, atmospheric - key_features: Structure-as-ornament language, patina hierarchy, utility-driven composition, adaptive-reuse material choreography + aesthetic: Reutilización industrial sofisticada, con infraestructura expuesta como ornamento principal y pátina funcional controlada. + form_and_line: Tramas estructurales repetitivas, cerchas visibles, canalizaciones ortográficas y secuencias de pórticos de gran luz. + color_palette: Óxidos de ladrillo, neutros cementicios, grafito metálico, cobre envejecido y ámbar cálido de apoyo. + lighting_setup: Entradas cenitales o laterales profundas, contraste medio-alto, zonas de penumbra técnica y prácticos cálidos puntuales. + material_texture: Hormigón encofrado, mampostería rugosa, acero oxidado estabilizado, madera recuperada y cuero mate desgastado. + render_quality: Acabado industrial-chic con legibilidad tectónica y balance entre crudeza material y curaduría editorial. + spatial_distortion: Profundidad longitudinal marcada por repetición estructural; sin deformación expresiva, sí compresión por capas técnicas. + atmosphere: Productivo, robusto, creativo y adulto; tensión entre taller y vivienda premium. + key_features: Vigas y uniones expuestas, instalaciones visibles, cerramientos de gran formato, escalas loft y objetos utilitarios en primer plano. creative_brief: >- - Preserve identity through exposed structural systems and patinated material - contrast, treating utility elements as primary visual grammar independent of - any specific loft narrative. + Conserva la identidad loft mediante una lógica estructura-instalación + explícita: lo técnico debe dominar la composición y la pátina contar uso + real. La transferencia debe funcionar en cualquier programa interior sin + perder la tensión entre crudeza y refinamiento. avoidRules: - cozy - soft diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-003.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-003.yaml index 4e1b233f..9938f9b7 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-003.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-003.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Mid-century modern interior style with atomic optimism, sculptural domesticity, and restrained retro sophistication - form_and_line: Organic modern curves, tapered structural elements, floating cabinetry lines, and iconically balanced furniture silhouettes - color_palette: Teak-walnut browns with mustard-olive accents, burnt orange punctuation, and warm neutral support fields - lighting_setup: Warm ambient lamp pools, period pendant glow, filtered afternoon daylight, and low-contrast hospitality warmth - material_texture: Veneered wood grain clarity, tweed and wool tactility, molded plywood smoothness, and light metal detailing - render_quality: Editorial retro-modern visualization with clean compositional discipline and materially rich but controlled nostalgia - spatial_distortion: Stable proportions with gentle curvature emphasis to preserve sculptural furniture readability - atmosphere: Warm, stylish, nostalgic, social, composed - key_features: Atomic-modern silhouette language, wood-textile harmony, tapered geometry cadence, retro editorial balance + aesthetic: Modernismo doméstico de mitad de siglo con optimismo atómico, sofisticación sobria y presencia escultórica habitable. + form_and_line: Curvas orgánicas contenidas, patas cónicas, volúmenes bajos, módulos horizontales y siluetas icónicas equilibradas. + color_palette: Teca y nogal como base, mostaza/oliva y naranja quemado como acentos, neutros cálidos para cohesión. + lighting_setup: Pools cálidos de lámpara, colgantes de época, luz de tarde filtrada y contraste suave de hospitalidad social. + material_texture: Chapas de madera finas, tejidos de lana/tweed, contrachapado moldeado, metal ligero cepillado. + render_quality: Editorial retro contemporáneo con nostalgia controlada, claridad de mobiliario y composición funcional elegante. + spatial_distortion: Proporción estable con énfasis en lectura de piezas; profundidad por ritmo de mobiliario, no por teatralidad. + atmosphere: Acogedor, conversacional, curado y optimista sin exceso decorativo. + key_features: Aparadores flotantes, asientos orgánicos bajos, luminarias icónicas, textiles cálidos y gramática tapered constante. creative_brief: >- - Preserve this preset through iconic mid-century proportion logic and - warm material choreography, keeping atomic-era optimism as a transferable - mood rather than a fixed period scene. + Mantén una gramática mid-century transferible: proporción baja, silueta + icónica y coreografía madera-textil-luz cálida. El resultado debe sentirse + social y refinado en cualquier escena, sin caer en pastiche vintage. avoidRules: - antique - victorian diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-004.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-004.yaml index c72c523c..14b1f82b 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-004.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-004.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Scandinavian hygge interior style emphasizing thermal comfort minimalism, soft domestic intimacy, and restorative calm - form_and_line: Low-profile furniture rhythm, rounded edge gentleness, textile-heavy layering, and uncluttered ergonomic composition - color_palette: Soft whites and creams with pale timber tones, muted sage-rose accents, and low-contrast warmth harmonics - lighting_setup: Candle-practical glow networks, diffuse window softness, warm pendants, and evening comfort luminance balance - material_texture: Knit wool tactility, sheepskin softness, matte ceramics, oiled light wood grain, and brushed natural-fiber surfaces - render_quality: Clean Nordic editorial finish with cozy readability, restrained detailing, and comfort-first visual hierarchy - spatial_distortion: Neutral spatial behavior with intimacy built through layered soft materials rather than geometric exaggeration - atmosphere: Comforting, quiet, warm, restorative, safe - key_features: Thermal-comfort light logic, soft textile dominance, pale timber calm, uncluttered hygge composition + aesthetic: Higiene visual nórdica orientada al confort térmico, intimidad suave y bienestar cotidiano sin ruido formal. + form_and_line: Volúmenes bajos, cantos redondeados, capas textiles continuas y ergonomía despejada de circulación limpia. + color_palette: Blancos rotos y crema, maderas claras aceitada, verde salvia y rosa apagado como microacento. + lighting_setup: Ventana difusa, red de prácticos cálidos, velas/pendientes de baja intensidad y balance nocturno envolvente. + material_texture: Lana tejida, piel suave, cerámica mate, lino cepillado y madera de veta discreta. + render_quality: Acabado editorial escandinavo con prioridad de confort legible, detalle contenido y atmósfera doméstica coherente. + spatial_distortion: Neutralidad geométrica; profundidad construida por superposición blanda de textiles y luminancia cálida. + atmosphere: Refugio, calma, seguridad y calidez continua de escala humana. + key_features: Mobiliario bajo, textiles dominantes, madera pálida, iluminación cálida distribuida y ausencia de estridencia visual. creative_brief: >- - Keep identity centered on comfort architecture: soft luminance, natural - textile tactility, and low-contrast Nordic restraint should remain - transferable beyond winter-home narratives. + Asegura transferencia hygge mediante una tríada constante: luz blanda, + tactilidad natural y contraste bajo. El estilo debe priorizar confort + sensorial y claridad funcional por encima de cualquier narrativa estacional. avoidRules: - dark - cold diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-005.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-005.yaml index 7300b868..0b26339b 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-005.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-005.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Bohemian-eclectic style defined by collected layering, botanical softness, and artisanal global texture interplay - form_and_line: Organic asymmetry, draped textile cascades, rounded handcrafted silhouettes, vegetal flow lines, intentionally uneven composition balance - color_palette: Warm earth foundations with turquoise-indigo accents, spice pigments, terracotta anchors, and patterned chroma punctuation - lighting_setup: Filtered natural dappling with low-intensity ambient practicals, lantern diffusion, and soft shadow overlap - material_texture: Woven natural fibers, hand-knotted rugs, macramé cords, raw linen folds, carved wood micro-relief, leaf translucency - render_quality: Richly layered boho editorial finish with tactile density, controlled visual clutter, and cohesive material harmony - spatial_distortion: Gentle organic depth drift driven by plants and textiles, avoiding rigid axial symmetry - atmosphere: Free-spirited, warm, lived-in, creative, worldly - key_features: Layered artifact curation, botanical-textile rhythm, asymmetrical comfort composition, handcrafted surface diversity + aesthetic: Eclecticismo bohemio de acumulación curada, con densidad táctil y botánica como estructura visual principal. + form_and_line: Asimetría orgánica, cascadas textiles, perfiles artesanales redondeados y composiciones intencionalmente no axiales. + color_palette: Base tierra cálida con turquesa/índigo, especias cromáticas, terracota y punctuaciones de patrón saturado. + lighting_setup: Luz natural moteada, prácticos bajos tipo farol, difusión cálida y solapamiento suave de sombras. + material_texture: Fibras tejidas, alfombras anudadas, macramé, lino crudo, tallas en madera y hojas semitranslúcidas. + render_quality: Editorial boho de alta densidad material con clutter controlado y armonía entre piezas heterogéneas. + spatial_distortion: Profundidad orgánica por capas de objetos y plantas; sin rigidez geométrica. + atmosphere: Libre, habitado, cálido, viajero y creativo, con riqueza sensorial continua. + key_features: Colección de objetos artesanales, mezcla de patrones, vegetación integrada, textiles superpuestos y rincones de baja simetría. creative_brief: >- - Build the preset around layered artisan materials and botanical flow, - keeping eclectic curation and tactile warmth as transferable style anchors - rather than a fixed traveler-room vignette. + Establece una gramática bohemia transferible basada en acumulación + artesanal, ritmo botánico-textil y abundancia asimétrica. Debe sentirse + vivido y curado, nunca caótico ni dependiente de una escena puntual. avoidRules: - minimalist - empty diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-006.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-006.yaml index a7584431..5051c9f9 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-006.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-006.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Brutalist monumental style with unapologetic mass, structural frankness, and civic-institutional gravity - form_and_line: Monolithic block stacking, deep recess cuts, cantilever slabs, hard orthogonal silhouettes, and shadow-carved edges - color_palette: Concrete gray spectrum with charcoal and slate anchors, damp ash variation, and low-chroma mineral depth - lighting_setup: Hard-angle sunlight, deep shadow wells, high-contrast façade articulation, and recess-emphasizing directional light - material_texture: Board-formed concrete imprint, tie-hole cadence, exposed aggregate roughness, and weathered mineral patina - render_quality: Monumental architectural rendering emphasizing material mass, tectonic clarity, and disciplined sculptural austerity - spatial_distortion: Stable monumental perspective with mass-dominant depth compression and proportionally heavy visual balance - atmosphere: Stoic, severe, powerful, enduring, contemplative - key_features: Monolithic concrete hierarchy, boardmark rhythm, deep-recess shadow logic, tectonic cantilever expression + aesthetic: Monumentalidad brutalista centrada en masa tectónica, honestidad estructural y gravedad cívica sin concesiones decorativas. + form_and_line: Apilamientos monolíticos, vacíos profundos, cantiléveres pesados, ortogonalidad dura y cantos tallados por sombra. + color_palette: Gama de grises minerales, carbón y pizarra, con variaciones húmedas de ceniza de baja saturación. + lighting_setup: Sol direccional severo, pozos de sombra profundos, contraste alto y lectura volumétrica por recesos. + material_texture: Marca de encofrado visible, poro de árido expuesto, junta estructural franca y pátina mineral envejecida. + render_quality: Render tectónico de alta fidelidad material, con prioridad de masa, proporción y lectura estructural. + spatial_distortion: Perspectiva monumental estable, compresión de profundidad por peso volumétrico y jerarquía de bloque. + atmosphere: Austero, contundente, contemplativo y duradero. + key_features: Hormigón crudo protagonista, huecos sombreados, planos pesados superpuestos y cantiléveres expresivos. creative_brief: >- - Define this preset through material mass and shadow tectonics: raw concrete - imprint language, monolithic composition, and institutional permanence are - the transferable identity. + Construye una gramática brutalista transferible donde la masa y la sombra + definan el carácter. La estructura debe leerse sin maquillaje y sostener + una sensación de permanencia institucional en cualquier tipología. avoidRules: - delicate - painted diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-007.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-007.yaml index a68064e0..6155ecab 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-007.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-007.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Art Deco glamour style with geometric opulence, metallic luxury contrast, and high-society theatrical polish - form_and_line: Stepped ziggurat profiles, chevron rhythms, sunburst motifs, and symmetrical ornament hierarchies with strong axial control - color_palette: Black-gold dominance with emerald and deep navy enrichments, ivory balancing planes, and chrome highlight accents - lighting_setup: Dramatic uplight architecture, mirrored bounce play, sconce-and-chandelier glow layering, and marquee-like brilliance nodes - material_texture: Polished brass sheen, marble veining, velvet softness, lacquer depth, etched-glass detailing, and chrome inlay precision - render_quality: Luxe deco visualization with crisp ornamental readability and cinematic night-glamour finish - spatial_distortion: Structured symmetry with vertical accent pulls to reinforce grandeur and formal theatrical presence - atmosphere: Opulent, glamorous, dramatic, celebratory, nocturnal - key_features: Geometric ornament grammar, metallic-luxury contrast, stepped silhouette architecture, mirror-light amplification + aesthetic: Glamour deco de alta densidad geométrica, lujo metálico y teatralidad axial controlada. + form_and_line: Perfiles escalonados, chevrons y sunbursts, simetría rígida y ornamentación jerárquica de lectura frontal. + color_palette: Dominante negro-dorado con esmeralda y azul noche, balanceado por marfil y reflejos cromados. + lighting_setup: Uplights dramáticos, rebotes especulares en superficies pulidas, capas de apliques/candelabros y nodos tipo marquee. + material_texture: Latón pulido, mármol veteado, terciopelo profundo, lacas brillantes y vidrio grabado. + render_quality: Acabado deco cinematográfico con precisión ornamental y contraste de lujo legible. + spatial_distortion: Simetría estructurada con tirón vertical para enfatizar monumentalidad ceremonial. + atmosphere: Opulento, nocturno, ceremonial y escénico. + key_features: Motivos geométricos repetitivos, metales nobles, espejos amplificadores, perfiles stepped y focos teatrales. creative_brief: >- - Preserve Art Deco identity through geometric ornament hierarchy and - metallic-material drama, keeping the style transferable beyond party or - speakeasy storytelling. + Mantén una gramática art déco transferible basada en jerarquía geométrica, + contraste metálico y composición axial escénica. La ornamentación debe ser + sistema visual, no decoración anecdótica de contexto. avoidRules: - minimal - rustic diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-008.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-008.yaml index af02ae1f..aec4caa6 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-008.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-008.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Japanese zen-wabi interior style with disciplined emptiness, seasonal restraint, and contemplative material quietude - form_and_line: Modular tatami grid logic, shoji and fusuma linear cadence, alcove focal minimalism, and low horizon furniture profiles - color_palette: Rice-paper whites, bamboo and cedar warms, tatami greens, sumi-charcoal accents, and muted indigo depth notes - lighting_setup: Shoji-filtered daylight diffusion, lantern-soft ambient pools, alcove emphasis lighting, and seasonal shadow subtlety - material_texture: Tatami fiber weave, raw wood grain, hand-troweled clay matte, paper translucency, and silk-soft accent surfaces - render_quality: Refined minimalist rendering with high material calm, balanced negative space, and meditative visual precision - spatial_distortion: Neutral geometric proportioning with depth expressed through layered screens and controlled emptiness - atmosphere: Meditative, serene, disciplined, reverent, still - key_features: Modular calm composition, shoji-tatami grammar, seasonal light subtlety, wabi material restraint + aesthetic: Zen doméstico de contención extrema, vacío disciplinado y materialidad natural silenciosa. + form_and_line: Retícula tatami modular, secuencia lineal de shoji/fusuma, focos tokonoma y horizontes de mobiliario bajo. + color_palette: Blanco papel de arroz, madera clara cálida, verde tatami, carbón sumi e índigo apagado. + lighting_setup: Difusión filtrada por paneles, pools cálidos de baja intensidad y sombras estacionales de transición lenta. + material_texture: Fibra tatami visible, veta de madera cruda, arcilla mate alisada a mano y translucidez de papel. + render_quality: Render minimal refinado con equilibrio de espacio negativo y precisión contemplativa. + spatial_distortion: Geometría neutra; profundidad por capas de pantalla y vacíos secuenciados. + atmosphere: Serene, reverente, lenta y enfocada. + key_features: Sistema shoji-tatami, alcobas focales sobrias, materiales orgánicos desnudos y ritmo espacial contenido. creative_brief: >- - Keep this preset defined by disciplined emptiness and modular natural - material rhythm; meditative screen-filtered light and restrained focal - gestures should drive style transferability. + Define el preset como una gramática de calma modular: retícula, filtro de + luz y vacío intencional. La transferencia debe sostener quietud material y + precisión ritual sin depender de escenas tradicionales específicas. avoidRules: - clutter - western diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-009.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-009.yaml index 814c994d..4c5e9a6d 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-009.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-009.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - historical-and-sacred-architecture visualDna: - aesthetic: Gothic revival style with sacred verticality, ornamental stone drama, and reverential shadowed grandeur - form_and_line: Pointed-arch grammar, ribbed vault structure, tracery intricacy, buttress rhythm, and spire-led upward composition - color_palette: Weathered stone grays with stained-jewel chroma bursts, deep crimson-blue shadows, and muted burnished metallic notes - lighting_setup: Low-key candle and moon shafts, stained-glass projection color pools, and high-contrast devotional shadow layering - material_texture: Carved limestone erosion detail, aged oak relief, cold iron patina, dusted masonry surfaces, tarnished brass accents - render_quality: Monumental historic visualization with high ornamental fidelity and atmospheric sacred-darkness precision - spatial_distortion: Vertical elongation emphasis with vaulted depth pull to intensify reverential upward focus - atmosphere: Solemn, dramatic, ancient, sacred, awe-struck - key_features: Vertical-devotional composition, pointed-arch language, stained-light dramaturgy, carved stone ornament hierarchy + aesthetic: Revival gótico de verticalidad devocional, dramatismo pétreo y solemnidad de luz filtrada. + form_and_line: Arco apuntado, bóveda nervada, tracería compleja, contrafuertes rítmicos y remates de aguja ascendente. + color_palette: Grises de piedra envejecida, estallidos cromáticos tipo vitral, sombras azul-carmesí y metal apagado. + lighting_setup: Iluminación low-key con velas/luz lunar, proyección cromática de vitrales y contrastes de alta reverencia. + material_texture: Caliza tallada, roble envejecido, hierro frío patinado, polvo mineral y latón oscurecido. + render_quality: Visualización histórico-monumental con fidelidad ornamental y atmósfera sacra precisa. + spatial_distortion: Énfasis en elongación vertical y tracción de profundidad hacia naves y bóvedas. + atmosphere: Solemne, ancestral, reverencial y dramática. + key_features: Gramática de arco ojival, jerarquía vertical, vitral activo y ornamentación pétrea de alta densidad. creative_brief: >- - Preserve this preset through vertical sacred geometry and stained-light - contrast logic; Gothic reverence should be conveyed by material and form - grammar rather than haunted-narrative tropes. + Mantén una gramática gótica transferible donde verticalidad, piedra tallada + y luz de vitral construyan reverencia espacial. Debe funcionar sin caer en + clichés narrativos de horror o ruina escénica. avoidRules: - modern - bright diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-010.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-010.yaml index 72e88390..b180f554 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-010.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-010.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Neo-futurist habitat style with seamless ergonomics, ambient intelligence, and high-purity spatial minimalism - form_and_line: Continuous shell geometry, cornerless flow transitions, integrated interface planes, and biomorphic module repetition - color_palette: Clinical white foundations with cool cyan-blue light channels, holographic silver mids, and sparse magenta signal accents - lighting_setup: Embedded indirect luminance, adaptive ambient gradients, responsive zone highlights, and soft panel-based glow architecture - material_texture: Composite smart surfaces, matte-gloss polymer contrast, low-friction glass skins, touch-reactive interface finishes - render_quality: Ultra-clean futuristic interior rendering with precision surfacing, controlled bloom, and sterile-detail clarity - spatial_distortion: Smooth axial continuity with no abrupt depth breaks, reinforcing weightless circulation and frictionless occupancy - atmosphere: Sterile, serene, advanced, controlled, weightless - key_features: Seamless shell language, integrated interface lighting, adaptive ambient systems, cornerless ergonomic flow + aesthetic: Hábitat neo-futurista de fricción cero, ergonomía continua e inteligencia ambiental integrada. + form_and_line: Shells continuas sin esquina, transiciones fluidas, planos interfaz embebidos y repetición biomórfica modular. + color_palette: Blanco clínico, cian/azul frío lumínico, plata holográfica y magenta puntual de señalización. + lighting_setup: Luminancia indirecta integrada, gradientes adaptativos por zona y glow controlado en paneles activos. + material_texture: Polímeros smart mate-brillo, vidrio de baja fricción, superficies táctiles reactivas y uniones invisibles. + render_quality: Render ultra-clean de precisión superficial, bloom moderado y limpieza tecnológica de alta legibilidad. + spatial_distortion: Continuidad axial suave, sin quiebres abruptos, con percepción de flotación funcional. + atmosphere: Controlada, avanzada, serena y ligeramente clínica. + key_features: Geometría cornerless, iluminación sistémica integrada, mobiliario fusión-carcasa y señalética mínima reactiva. creative_brief: >- - Preserve identity through seamless volumetric continuity and intelligent - ambient lighting behavior; the style should communicate post-friction - futurity regardless of specific room program. + Formula una gramática futurista transferible donde continuidad de carcasa, + luz adaptativa y ergonomía post-fricción sean innegociables. Cada sujeto + debe integrarse como extensión del sistema, no como objeto insertado. avoidRules: - old - dirty diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-011.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-011.yaml index b6961c8b..00e3d384 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-011.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-011.yaml @@ -12,16 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Ultra-luxury aerial residential style with monolithic glazing, restrained opulence, and curated minimal spatial drama - form_and_line: Long uninterrupted glazing lines, floating slab planes, cantilever gestures, low-profile furnishings, disciplined negative space - color_palette: Warm ivory neutrals, charcoal anchors, smoky blue-greys, brushed brass accents, muted stone undertones - lighting_setup: Layered ambient cove light, soft practical pools, controlled reflection management, low-glare premium interior illumination - material_texture: Book-matched marble veining, satin metal trims, full-grain leather, soft woven textiles, polished glass depth, matte lacquer panels - render_quality: Architectural-visualization premium finish with high material fidelity, clean staging, and luxury hospitality polish - spatial_distortion: Wide-angle restraint with elongated interior axis and balanced foreground-midground luxury object hierarchy - atmosphere: Serene, controlled, aspirational, private, rarefied - key_features: Continuous glazing language, floating architectural planes, high-end material pairings, low-clutter composition, curated statement objects - creative_brief: Encode luxury through proportion, material choreography, and lighting discipline rather than landmarks; the style should remain transferable to any high-end interior program. + aesthetic: Lujo residencial aéreo de control extremo, opulencia contenida y precisión compositiva editorial. + form_and_line: Grandes paños de vidrio continuo, losas flotantes, planos largos y mobiliario bajo curado por jerarquía de vacío. + color_palette: Marfil cálido, carbón elegante, gris humo azulado y acentos de latón cepillado sobre base pétrea neutra. + lighting_setup: Capas de luz indirecta premium, prácticos puntuales suaves, control especular y baja fatiga visual. + material_texture: Mármol libro abierto, metal satinado, cuero grano completo, textiles finos y lacas mate de alta calidad. + render_quality: Acabado de hospitality de lujo con fidelidad material alta y staging impecable. + spatial_distortion: Gran angular contenido con eje interior elongado y profundidad por piezas statement cuidadosamente espaciadas. + atmosphere: Privado, aspiracional, sereno y altamente controlado. + key_features: Carpinterías de gran luz, envolventes continuas, piezas-escultura, paleta sobria y detalle constructivo invisible. + creative_brief: >- + Define una gramática de lujo transferible por proporción, detalle oculto, + material noble y control lumínico. Evita la postal de penthouse: el valor + debe emerger del sistema espacial, no de la vista o el contexto externo. avoidRules: - basement - dark diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-012.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-012.yaml index 7d66c9cb..02a9dfee 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-012.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-012.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Rustic shelter style emphasizing heavy natural mass, handcrafted durability, and hearth-centered warmth - form_and_line: Thick timber geometries, stacked masonry rhythm, robust joinery expression, compact protective proportions - color_palette: Burnt umber and smoked oak base, ember ambers, pine-greens, muted ash neutrals, low-saturation warmth gradients - lighting_setup: Hearth-priority low-key glow, warm practical flicker, soft exterior daylight filtration, deep shadow comfort zones - material_texture: Hand-hewn wood grain, rough stone porosity, wool and hide tactility, forged metal patina, matte earthen finishes - render_quality: Authentic rustic realism with material weight clarity, thermal atmosphere, and durable craft legibility - spatial_distortion: Stable enclosed depth with compressive intimacy that reinforces protective interior character - atmosphere: Sheltering, grounded, quiet, warm, resilient - key_features: Hearth-centric composition, heavy natural material hierarchy, handcrafted structural expression, thermal visual comfort + aesthetic: Refugio rústico de masa natural, oficio manual visible y calor centrado en núcleo térmico. + form_and_line: Geometrías gruesas de madera y mampostería, ensambles robustos, proporciones compactas protectoras. + color_palette: Umber quemado, roble ahumado, ámbar brasa, verde pino y cenizas neutras de baja saturación. + lighting_setup: Prioridad de hogar/chimenea, parpadeo cálido de prácticos, filtrado diurno moderado y zonas de sombra confortable. + material_texture: Veta labrada a mano, piedra porosa, lana y piel, metal forjado patinado y acabados terrosos mates. + render_quality: Realismo rústico auténtico con lectura de peso material y construcción duradera. + spatial_distortion: Profundidad cerrada estable con compresión íntima de abrigo. + atmosphere: Protector, terrenal, silencioso y resistente. + key_features: Centro térmico dominante, jerarquía de materiales pesados, carpintería artesanal y confort visual cálido. creative_brief: >- - Keep this preset identifiable by massy natural materials and hearth-led - light behavior, translating rustic protection and craft durability across - different interior subjects. + Preserva una gramática rústica transferible basada en masa, fuego y oficio. + El estilo debe comunicar protección climática y permanencia material en + cualquier programa interior, sin quedar atado a una cabaña específica. avoidRules: - city - modern diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-013.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-013.yaml index 8ea18c99..164333d1 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-013.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-013.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Mediterranean sun-architecture style with limewashed simplicity, thermal brightness, and breezy coastal restraint - form_and_line: Soft-edged stucco volumes, arch repetition, terrace layering, colonnade cadence, courtyard flow geometry - color_palette: Lime white fields, azure accents, terracotta earths, warm ochre mids, sea-glass greens, restrained floral magenta notes - lighting_setup: High-intensity solar wash with crisp shadow cuts, reflected courtyard bounce, warm dusk practical transitions - material_texture: Mineral stucco grain, handmade tile variation, rough stone joints, weathered timber bleach, wrought-iron matte detail - render_quality: Clean Mediterranean realism with sun-bleached precision, airy depth, and disciplined material-light interplay - spatial_distortion: Open-volume perspective calm with framed axial views and layered indoor-outdoor transitions - atmosphere: Luminous, relaxed, airy, warm, restorative - key_features: Limewash-and-terracotta signature, high-sun shadow architecture, courtyard flow sequencing, coastal chroma restraint + aesthetic: Mediterráneo solar de cal y terracota, claridad térmica y fluidez patio-terraza. + form_and_line: Volúmenes estucados de canto blando, arquerías repetidas, colonnatas ligeras y transiciones interior-exterior continuas. + color_palette: Blanco de cal, azul mediterráneo, terracota, ocre cálido y verdes vidrio mar en acento moderado. + lighting_setup: Sol alto de contraste nítido, rebote cálido en patio, y transición crepuscular con prácticos discretos. + material_texture: Estuco mineral, baldosa manual, piedra junta abierta, madera blanqueada y hierro forjado mate. + render_quality: Realismo mediterráneo limpio con precisión de luz solar y lectura material aérea. + spatial_distortion: Perspectiva abierta con encuadres axiales suaves y secuencia de umbrales ventilados. + atmosphere: Luminosa, relajada, ventilada y restaurativa. + key_features: Binomio cal-terracota, sombra de arco, patios conectores y paleta costera de saturación contenida. creative_brief: >- - Encode Mediterranean identity through solar contrast behavior and - limewash-terra material pairing, ensuring the style remains transferable - beyond any single villa setting. + Mantén una gramática mediterránea transferible de alto sol, cal mineral y + terracota estructurante. La identidad debe sostenerse por clima, material y + secuencia espacial, no por una narrativa de villa puntual. avoidRules: - rain - cold diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-014.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-014.yaml index 2d676fbe..5d7e7b68 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-014.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-014.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Cyber-clutter interior style with improvised techno-living density, salvage modularity, and nocturnal hacker ambience - form_and_line: Cable-mass diagonals, stacked display rectangles, ad-hoc rack assemblies, layered utility object silhouettes, compressed circulation paths - color_palette: Deep charcoal base, toxic neon pink-blue-green accents, amber CRT pockets, cold violet shadows, fluorescent sickly fills - lighting_setup: Multi-source low-light mix from displays, strips, indicator LEDs, and localized neon spill with sharp falloff pockets - material_texture: Scuffed metal housings, brittle plastic shells, adhesive residue layers, worn synthetic upholstery, dusted heat-sink fins - render_quality: High-detail lived-in cyber interior rendering with controlled chaos readability and tactile grime realism - spatial_distortion: Dense near-field composition with depth blocked by stacked hardware planes and overlapping cable strata - atmosphere: Restless, saturated, unstable, sleep-deprived, obsessive - key_features: Hardware accumulation grammar, cable entropy patterns, mixed-display luminance, scavenged modular furniture, patinated tech surfaces + aesthetic: Interior ciber-residencial saturado, con densidad tecnológica improvisada y nocturnidad eléctrica funcional. + form_and_line: Diagonales de cableado, racks apilados, pantallas de múltiples formatos y circulación comprimida por hardware. + color_palette: Carbón profundo, neones tóxicos rosa/azul/verde, bolsillos ámbar CRT y violetas fríos de sombra. + lighting_setup: Mezcla multi-fuente de baja iluminación con displays, tiras LED, indicadores y derrames neón de caída abrupta. + material_texture: Chapa rayada, plásticos quebradizos, residuos adhesivos, tapicerías sintéticas gastadas y disipadores empolvados. + render_quality: Alta densidad de detalle con caos controlado, legibilidad técnica y suciedad creíble de uso continuo. + spatial_distortion: Primer plano obstruido por estratos de tecnología, profundidad fragmentada por planos superpuestos. + atmosphere: Insomne, hiperestimulada, obsesiva y frágilmente funcional. + key_features: Entropía de cableado, luminancia heterogénea de pantallas, muebles recuperados y textura tecnológica patinada. creative_brief: >- - Express cyber-residential identity through infrastructural clutter logic, - mixed-source low-light behavior, and improvised material wear, without - anchoring the style to one narrative room setup. + Formula una gramática cyber transferible donde infraestructura visible, + luminancia de fuentes mixtas y desgaste improvisado sean el núcleo. Debe + sentirse habitada por tecnología, no decorada con tecnología. avoidRules: - clean - organized diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-015.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-015.yaml index 062dd732..a3f22513 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-015.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-015.yaml @@ -12,16 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: 19th century cluttered room, Empire excess, mourning elegance, parlour theatre - form_and_line: Ornate patterns everywhere, framed silhouettes, heavy draping swags, crowded picture rails - color_palette: Dark Red, Gold, Mahogany, Plum, Bottle Green, Antique Brass - lighting_setup: Dim gaslight, oil-lamp pools, fireplace flicker, heavy-curtained gloom, tarnished candelabra - material_texture: Velvet, wallpaper, dust, horsehair, brocade, marble mantels, chinoiserie - render_quality: Antique, heavy, stuffed, museum-dense, gaslit nostalgia, maximalist inheritance - spatial_distortion: None - atmosphere: Oppressive, historic, rich, cluttered memory, mothball, ancestral weight - key_features: Pattern density, overstuffed furniture, floor-to-ceiling drapes, gallery wall, taxidermy - creative_brief: Velvet swallows light, brocade fighting pattern against pattern in a war of abundance. Each surface carries the weight of ancestors who confused accumulation with permanence, every object a memorial to acquisition. The air is thick with mothball and memory, rooms that stopped breathing a century ago. + aesthetic: Interior victoriano de herencia pesada, exceso ornamental y teatralidad de salón histórico. + form_and_line: Densidad de patrón, marcos repetidos, drapeados voluminosos y siluetas de mobiliario sobrecargadas. + color_palette: Rojo oscuro, dorado envejecido, caoba, ciruela, verde botella y latón antiguo. + lighting_setup: Gaslight tenue, pools de lámpara de aceite, parpadeo de hogar y penumbra filtrada por cortinaje espeso. + material_texture: Terciopelo, brocado, papel mural, mármol de chimenea, maderas oscuras y metal oscurecido. + render_quality: Densidad museográfica de época con lectura material opulenta y atmósfera histórica cerrada. + spatial_distortion: Profundidad estable saturada por acumulación decorativa en múltiples capas. + atmosphere: Opresiva, aristocrática, nostálgica y ceremoniosa. + key_features: Cortinajes de piso a techo, tapizados cargados, galerías de cuadros, ornamentación floral y mobiliario overstuffed. + creative_brief: >- + Define una gramática victoriana transferible por sobrecarga ornamental, + paleta profunda y luz baja ceremonial. El estilo debe expresar peso + histórico y acumulación material sin depender de una narrativa literaria. avoidRules: - minimal - bright diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-016.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-016.yaml index 3ddeff3b..757effcc 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-016.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-016.yaml @@ -12,16 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Functional modernist room, form follows function, workshop aesthetic, design-for-all - form_and_line: Geometric shapes, pure circle and square, tubular arcs, flat planes intersect, grid logic - color_palette: Primary colors + Black/White, Clean Red, Canary Yellow, Cobalt Blue, Warm Grey - lighting_setup: Even, functional, task-focused spots, floating globe pendants, industrial-grade clarity - material_texture: Steel, glass, leather, bent plywood, canvas webbing, linoleum, chrome plate - render_quality: Design classic, rational, German-modern clarity, timeless efficiency, honest construction - spatial_distortion: None - atmosphere: Smart, artistic, clean, workshop-fresh, purpose-driven, intellectual calm - key_features: Tubular steel, primary color accents, cantilever chairs, isometric clarity, interlocking forms - creative_brief: Primary colors assert themselves against white space with the confidence of manifestos made visible. Steel arcs through air with industrial grace, every tube and plane answering to function alone. Beauty emerges not from decoration but from the honesty of things being exactly what they are. + aesthetic: Modernismo Bauhaus funcional, claridad industrial y belleza derivada de función explícita. + form_and_line: Intersección de círculo/cuadrado, retícula racional, tubulares metálicos y planos limpios de lectura didáctica. + color_palette: Blanco/negro estructural, grises cálidos y acentos primarios (rojo, amarillo, azul) de uso jerárquico. + lighting_setup: Iluminación uniforme de tarea, spots funcionales y pendentes simples sin dramatización superflua. + material_texture: Acero tubular, vidrio claro, cuero liso, madera curvada, loneta y linóleo de acabado honesto. + render_quality: Precisión racionalista con prioridad constructiva, composición pedagógica y eficiencia visual atemporal. + spatial_distortion: Neutralidad geométrica con énfasis en orden proporcional e interacción de formas básicas. + atmosphere: Intelectual, limpio, pragmático y optimista. + key_features: Mobiliario cantilever, acentos cromáticos controlados, estructura visible y gramática geométrica elemental. + creative_brief: >- + Formula una gramática Bauhaus transferible donde función, estructura y + geometría primaria ordenen todo el lenguaje visual. El estilo debe + comunicar claridad productiva sin recurrir a ornamento narrativo. avoidRules: - ornate - cluttered diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-017.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-017.yaml index 984eda60..0c298bb2 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-017.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-017.yaml @@ -12,16 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Pattern on pattern room, controlled chaos, collected gallery, riotous personality - form_and_line: Complex layers, framed overload, busy skirting, curio-shelf density, textile-on-textile - color_palette: Saturated jewel tones, Emerald, Sapphire, Ruby, Amethyst, Peacock Teal, Coral - lighting_setup: Warm lamps everywhere, picture lights, chandelier glitter, sconce pools, dimmer-warm glow - material_texture: Velvet, wallpaper, rugs, chintz, embroidered silk, gilt frame, cloisonné, book spines - render_quality: Eclectic, busy, rich, more-is-more, layered opulence, collected over generations - spatial_distortion: None - atmosphere: Exciting, personal, loud, intoxicating, treasure-gallery, unapologetic abundance - key_features: No empty space, gallery walls floor to ceiling, layered rugs, pattern mixing, objet collections - creative_brief: Pattern collides with pattern in joyful anarchy, every surface a shout against the tyranny of restraint. Collections spill across surfaces like civilizations compressed into objects, each shelf a small museum of personal obsession. The room vibrates at the frequency of too-much, and refuses to apologize. + aesthetic: Maximalismo curatorial de alta saturación, donde superposición y colección son gramática base. + form_and_line: Capas sucesivas de patrón, marcos densos, textiles sobre textiles y ocupación casi total de superficies. + color_palette: Joyas saturadas (esmeralda, zafiro, rubí, amatista), teal pavo y coral como disonancias controladas. + lighting_setup: Red cálida de lámparas, luces de cuadro, brillos de candelabro y ambientes regulados por dimmer. + material_texture: Terciopelo, papeles estampados, alfombras superpuestas, sedas bordadas, dorados y lomo de libro visible. + render_quality: Densidad opulenta legible, caos controlado y riqueza material acumulativa sin pérdida de jerarquía. + spatial_distortion: Profundidad estable con compresión visual por saturación de objetos y patrones. + atmosphere: Efervescente, personal, exuberante y deliberadamente excesiva. + key_features: Muros galería piso-techo, mezcla agresiva de patrón, capas textiles y colecciones de objetos. + creative_brief: >- + Construye una gramática maximalista transferible basada en saturación + cromática, densidad objetual y superposición textil. Debe mantenerse la + legibilidad curatorial sin caer en ruido visual indiscriminado. avoidRules: - empty - white diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-018.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-018.yaml index 7aa9a927..7b4ce391 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-018.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-018.yaml @@ -12,16 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Modern barn interior, rural refinement, whitewashed nostalgia, homestead grace - form_and_line: Shiplap walls, gabled ceilings, apron-front lines, open shelving, X-brace details - color_palette: White, Cream, Wood, Galvanized Silver, Soft Linen, Black Iron accent - lighting_setup: Bright airy, oversized pendants, gooseneck barn lights, morning window wash - material_texture: Distressed wood, linen, chalk-painted furniture, cotton ticking, woven baskets, galvanized metal - render_quality: Magnolia farmhouse editorial, family, clean, Chip & Joanna warmth - spatial_distortion: None - atmosphere: Welcoming, soft, home, gathered-around-table, Sunday-morning peace, real-family living - key_features: Sliding barn door, shiplap accent wall, farmhouse sink, open shelving, beadboard ceiling - creative_brief: Shiplap stretches toward vaulted ceilings like Sunday hymns made visible, whitewashed nostalgia bright with fresh coffee light. Distressed surfaces tell gentle lies about age, every scuff a purchased memory. The space wraps around family like a quilt, each rough beam a promise that imperfect things hold together. + aesthetic: Farmhouse contemporáneo de refinamiento rural, calidez familiar y nostalgia blanca controlada. + form_and_line: Muros shiplap, cubiertas a dos aguas, detalles X-brace, estantería abierta y líneas apron-front. + color_palette: Blanco/crema dominante, madera natural, plata galvanizada, lino suave y hierro negro de acento. + lighting_setup: Mañana luminosa aireada, pendentes sobredimensionados y luminarias tipo granero de tono cálido. + material_texture: Madera envejecida, lino lavado, pintura tiza, algodón rayado, fibras trenzadas y metal galvanizado. + render_quality: Editorial farmhouse limpio con legibilidad doméstica y calidez cotidiana consistente. + spatial_distortion: Escala estable y amplitud moderada por luz distribuida y geometría de cubierta visible. + atmosphere: Acogedor, amable, comunitario y familiar. + key_features: Puertas corredizas de granero, fregadero farmhouse, estantería abierta, beadboard y objetos utilitarios visibles. + creative_brief: >- + Define una gramática farmhouse transferible sustentada por madera envejecida, + blanco cálido y detalle rural funcional. La escena debe comunicar vida + doméstica real sin depender de clichés narrativos televisivos. avoidRules: - modern - sleek diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-019.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-019.yaml index cf0fd6ac..09de7300 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-019.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-019.yaml @@ -12,16 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: 1900s organic room, Belle Epoque bloom, nature-as-structure, total-art Gesamtkunstwerk - form_and_line: Whiplash curves, tendril stair rails, floral doorframes, sinuous glass, flowing wrought iron - color_palette: Sage, Gold, Wood, Peacock Blue, Lilac, Amber glass, Moss green - lighting_setup: Stained glass light, Tiffany-lamp warmth, lotus-petal sconces, insect-wing glow - material_texture: Carved wood, glass, wrought iron, iridescent favrile glass, patinated bronze, floral marquetry - render_quality: Horta decorative flowing turn-of-century, whiplash beauty - spatial_distortion: Melting shapes - atmosphere: Romantic, nature, soft, enchanted, organic rhythm, floral intoxication - key_features: Curved wood, floral motifs everywhere, tendril staircase, stained glass skylight, organic lamp forms - creative_brief: Wrought iron grows like vines up the stairwell, tendrils of metal blooming into lamp shades and door handles. Every surface curves away from geometry, the room a garden that learned to speak architecture. Light passes through iris-colored glass, falling on wood carved into the shape of wind. + aesthetic: Art Nouveau orgánico con continuidad vegetal, sensualidad lineal y arquitectura total integrada. + form_and_line: Curvas whiplash, barandas en zarcillo, marcos florales, vidrio sinuoso y hierro forjado fluido. + color_palette: Salvia, dorado, azul pavo real, lila, ámbar vítreo y verdes musgo. + lighting_setup: Luz filtrada por vitral, lámparas cálidas tipo Tiffany, apliques pétalo y brillo irisado suave. + material_texture: Madera tallada, favrile iridiscente, hierro forjado, bronce patinado y marquetería floral. + render_quality: Detalle ornamental de fin de siglo con continuidad formal y riqueza material controlada. + spatial_distortion: Ligera fluidez morfológica para enfatizar continuidad orgánica sobre rigidez geométrica. + atmosphere: Romántica, envolvente, botánica y artesanal. + key_features: Motivos florales estructurales, escaleras tendril, vitrales activos y luminarias orgánicas. + creative_brief: >- + Conserva una gramática Art Nouveau transferible donde línea orgánica, + ornamento botánico y material artesanal formen un sistema continuo. Debe + leerse como estructura viva, no como simple decoración floral aplicada. avoidRules: - straight lines assets: diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-020.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-020.yaml index cc4152ca..46012508 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-020.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-020.yaml @@ -12,16 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: 80s postmodern room, Italian radical design, Sottsass irreverence, anti-taste manifesto - form_and_line: Squiggles and triangles, totemic shelves, asymmetrical bookcases, confetti geometry, playful offsets - color_palette: Pastel + Black/White pattern, Bubblegum Pink, Teal, Traffic Yellow, Vivid Orange - lighting_setup: Bright studio, neon accents, colored bulb glow, gallery-track spots, plastic-filtered light - material_texture: Laminate, plastic, terrazzo chip, printed Formica, glossy enamel, rubber - render_quality: Playful, weird, retro, radical-postmodern, joyous clash, ironic surface - spatial_distortion: Asymmetry - atmosphere: Fun, chaotic, art, rebellious, child-like, design manifesto energy - key_features: Bacterial pattern, asymmetrical shelving, squiggle mirror, color-blocked surfaces, totemic plinths - creative_brief: Squiggles disrupt the tyranny of the straight line, color blocking declares war on beige conformity. Shelves tilt at impossible angles like the whole room just discovered it has a sense of humor. Design becomes manifesto, every laminate surface a joke told at the expense of seriousness. + aesthetic: Postmodernismo Memphis radical, lúdico e irreverente, orientado al choque visual deliberado. + form_and_line: Squiggles, triángulos, plintos totémicos, asimetría explícita y offsets compositivos provocativos. + color_palette: Pasteles saturados con blanco/negro gráfico, rosa bubblegum, teal, amarillo tráfico y naranja vivo. + lighting_setup: Iluminación de estudio brillante, acentos neón, bombillas cromáticas y spots expositivos de alto contraste. + material_texture: Formica impresa, plástico brillante, esmalte, goma y terrazo en escala juguetona. + render_quality: Clash postmoderno legible, irónico y energético sin perder estructura formal. + spatial_distortion: Asimetría intencional con jerarquía por color y geometría de alto impacto. + atmosphere: Rebelde, festiva, anti-solemnidad y manifiesto de diseño. + key_features: Patrones bacterianos, espejos squiggle, estanterías descentradas, bloques cromáticos y objetos totemizados. + creative_brief: >- + Define una gramática Memphis transferible donde asimetría, patrón gráfico y + color confrontativo sean reglas estructurales. Debe conservar ironía y + energía manifiesto sin caer en caricatura decorativa superficial. avoidRules: - boring - beige diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-021.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-021.yaml index 5916b52a..041747c4 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-021.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-021.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Deconstructivist architectural style focused on controlled instability, anti-orthogonal form language, and sculptural kinetic tension - form_and_line: Folded planes, fractured mass intersections, torsion-like profiles, displaced axes, and non-linear envelope continuity - color_palette: Brushed titanium and steel neutrals with warm mineral countertones, mirrored sky reflections, and restrained metallic highlights - lighting_setup: Sharp angular shadow cuts, reflective glint choreography, and dynamic sun-tracking contrast across faceted surfaces - material_texture: Metal cladding seams, zinc-titanium panel grain, glass specular fracture, and high-precision structural skin detailing - render_quality: High-end sculptural architecture visualization with fluid mass readability and disciplined anti-symmetry coherence - spatial_distortion: Intentional geometric dislocation with twisting volumetric vectors and collapsing-perspective cues - atmosphere: Disorienting, cerebral, energetic, provocative, audacious - key_features: Anti-right-angle composition, folded metallic envelope, displaced volume grammar, kinetic mass choreography + aesthetic: Deconstructivismo de inestabilidad controlada, tensión escultórica y rechazo deliberado de la ortogonalidad. + form_and_line: Planos plegados, intersecciones fracturadas, ejes desplazados y envolvente no lineal en conflicto ordenado. + color_palette: Titanio/ acero cepillado, minerales cálidos secundarios y reflejos especulares contenidos. + lighting_setup: Cortes de sombra angulares, destellos especulares y contraste dinámico sobre facetas múltiples. + material_texture: Piel metálica segmentada, panelería zinc-titanio, vidrio de alto brillo y detalle de junta de precisión. + render_quality: Visualización escultórica de alta gama con anti-simetría legible y coherencia tectónica. + spatial_distortion: Dislocación geométrica intencional con vectores de torsión y perspectiva en tensión. + atmosphere: Cerebral, provocadora, energética y desestabilizante. + key_features: Composición anti-ángulo recto, pliegues dominantes, volúmenes desplazados y coreografía de masa cinética. creative_brief: >- - Keep this preset anchored in deconstructive geometry logic: fractured axes, - folded metallic skins, and controlled spatial disorientation should define - the style independent of any specific landmark reference. + Establece una gramática deconstructiva transferible: conflicto geométrico + controlado, piel metálica plegada y desorientación espacial calculada. + Debe sostener identidad formal sin depender de arquitectos o hitos concretos. avoidRules: - box - symmetrical diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-022.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-022.yaml index 4e9dc530..7da2aeda 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-022.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-022.yaml @@ -12,16 +12,19 @@ tags: - architecture-and-interior - historical-and-sacred-architecture visualDna: - aesthetic: Government building/Museum, temple-front authority, Enlightenment reason, civic monument - form_and_line: Columns, pediments, triangular tympanum, stepped plinths, axial vistas - color_palette: White Marble, Stone, Portland limestone, Gilded bronze, Cool Grey shadow - lighting_setup: Sunlight and shadow, column-cast stripes, portico shade, floodlit night drama - material_texture: Smooth stone, chiseled marble, polished granite, cast plaster, verdigris copper - render_quality: Grand, symmetrical, order, eternal authority, democratic dignity, timeless proportion - spatial_distortion: None - atmosphere: Serious, powerful, timeless, institutionally calm, Athenian echo, civic pride - key_features: Columns, triangular pediment, domed rotunda, grand staircase, axial symmetry - creative_brief: Columns march in disciplined procession toward a pediment that crowns reason triumphant over chaos. Stone carries the echo of senates and symposiums, every fluted shaft a vote for order over impulse. The structure does not persuade, it declares, wearing its authority in marble and proportion. + aesthetic: Neoclásico institucional de autoridad cívica, orden axial y monumentalidad racional. + form_and_line: Columnatas, frontones triangulares, plintos escalonados y secuencias de eje largo con simetría estricta. + color_palette: Mármol blanco, caliza clara, piedra fría y bronce dorado con sombras gris azuladas. + lighting_setup: Sol lateral que estría columnas, sombras porticadas profundas y acentos nocturnos monumentales. + material_texture: Piedra lisa, mármol cincelado, granito pulido, yeso colado y cobre con verdín. + render_quality: Monumental clásico de proporción rigurosa y legibilidad institucional permanente. + spatial_distortion: Perspectiva axial neutra con jerarquía frontal y escala ceremonial. + atmosphere: Seria, estable, cívica y atemporal. + key_features: Orden columnario, frontón canónico, escalinatas magnas, rotunda y composición perfectamente simétrica. + creative_brief: >- + Define una gramática neoclásica transferible por proporción, eje y orden + tectónico. La autoridad debe emerger de la composición y la masa pétrea, + evitando retórica narrativa o escenográfica. avoidRules: - modern - asymmetry diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-023.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-023.yaml index 54acf8f3..8157e01a 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-023.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-023.yaml @@ -12,16 +12,19 @@ tags: - architecture-and-interior - speculative-and-concept-architecture visualDna: - aesthetic: Zaha Hadid fluid parametric futurism, flowing space, gravity defiance - form_and_line: Flowing curves, continuous surface, seamless skin, morphing volumes, ribbon-like transitions - color_palette: White, Glass, Cool Grey gradient, Liquid Silver, Soft Ice Blue - lighting_setup: Soft ambient, continuous glow lines, inner-illuminated volume, edge-highlighting - material_texture: Seamless material, fiberglass composite, poured concrete shell, GRP panels, tensile membrane - render_quality: Futuristic, organic, math, algorithmic elegance, digital-to-physical, insect-chitin precision - spatial_distortion: Fluid form - atmosphere: Elegant, advanced, flow, weightless, computational, liquid-space serenity - key_features: Voronoi pattern, fluid continuous surfaces, atrium vortex, organic facade pores, flowing interior canyons - creative_brief: Surfaces flow like liquid thought, walls melting into floors into ceilings without the interruption of a corner. Algorithm whispers to material, computation dreaming itself into concrete and glass. The building behaves like an organism frozen mid-metamorphosis, caught between animal and architecture. + aesthetic: Parametricismo fluido de lógica algorítmica, continuidad topológica y espacialidad casi líquida. + form_and_line: Curvas continuas, superficies sin junta visible, volúmenes morfogenéticos y transiciones tipo cinta. + color_palette: Blanco técnico, gris frío gradual, plata líquida y azul hielo en señal lumínica. + lighting_setup: Ambiente suave continuo, líneas de glow embebidas, iluminación de borde y núcleos de volumen activos. + material_texture: Compuestos lisos, hormigón de piel continua, panelería GRP y membranas tensadas de alta precisión. + render_quality: Futurista de precisión computacional, con lectura limpia de geometría compleja y detalle constructivo plausible. + spatial_distortion: Fluidez formal con profundidad sin quiebres, enfatizando continuidad vectorial. + atmosphere: Elegante, avanzada, ligera y matemática. + key_features: Vórtices de atrio, porosidad de fachada, patrones paramétricos y cañones interiores continuos. + creative_brief: >- + Construye una gramática paramétrica transferible donde continuidad de + superficie, variación algorítmica y precisión constructiva sean inseparables. + Debe sentirse computacional sin perder plausibilidad arquitectónica. avoidRules: - brick - square diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-024.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-024.yaml index 87013d77..109c9540 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-024.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-024.yaml @@ -12,16 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: San Francisco house, candy-colored heritage, architectural confection, gingerbread fantasy - form_and_line: Gingerbread trim, spindle work, fish-scale shingles, bay windows, gable ornament, tall narrow - color_palette: Pastel Blue/Pink/Yellow, Lavender, Mint Green, Cream trim, Dusty Rose - lighting_setup: Sunny day, San Francisco fog-diffused, golden-hour facade glow, painted-lady sparkle - material_texture: Wood siding, painted redwood, scroll-sawn ornament, turned spindles, bracketed eaves - render_quality: Charming, detailed, dollhouse, postcard-perfect, neighborhood jewel, color-pop delight - spatial_distortion: None - atmosphere: Happy, nostalgic, cute, cheerful, preserved-history, whimsical pride - key_features: Turret, gingerbread trim, three-color paint scheme, bay windows, fish-scale shingles - creative_brief: Gingerbread trim frills against fog like lace on a widow, every spindle and fish-scale shingle a small act of joy against grey skies. Pastel paint schemes announce the house before you see it, a chromatic argument that homes should sing. The painted lady stands dressed for a party that never ends, San Francisco her eternal ballroom. + aesthetic: Revival victoriano cromático de fachada ornamental, identidad barrial y detalle carpintero exuberante. + form_and_line: Gingerbread trim, spindles torneados, bay windows, frontones decorados y verticalidad estrecha. + color_palette: Pasteles complejos (azul/rosa/amarillo), lavanda, menta y molduras crema con rosa polvoso. + lighting_setup: Luz costera difusa con niebla suave, realce dorado de atardecer y brillo de molduras pintadas. + material_texture: Siding de madera, pintura multicapa, calados finos, aleros con ménsulas y tejuela decorativa. + render_quality: Detalle residencial histórico de alta legibilidad ornamental con alegría cromática controlada. + spatial_distortion: Perspectiva residencial estable centrada en fachada y jerarquía de ornamentación. + atmosphere: Nostálgica, festiva, cívica y orgullosamente preservada. + key_features: Torreta, esquemas tricromos, bay windows, tejuela fish-scale y carpintería recortada de alta densidad. + creative_brief: >- + Mantén una gramática Painted Lady transferible por ornamentación de madera, + cromática pastel estratificada y composición vertical doméstica. La + identidad debe sostenerse por lenguaje constructivo, no por postal turística. avoidRules: - plain - grey diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-025.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-025.yaml index 44956fd2..29d4165b 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-025.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-025.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Bauhaus modernist style with machine-age rationalism, functional clarity, and disciplined anti-ornamental expression - form_and_line: Cubic massing, ribbon windows, planar asymmetry, flat-roof horizontals, and exposed structural legibility - color_palette: White-black-gray base with steel-blue neutrals and sparse signal-color accents for functional hierarchy - lighting_setup: Even daylight distribution, low-drama shadows, strip-window rhythm, and clarity-first luminance balance - material_texture: Mineral render matte, steel-frame precision, glass plane clarity, linoleum tactility, and tubular metal detailing - render_quality: Crisp modernist visualization prioritizing proportion discipline, material truth, and graphic compositional order - spatial_distortion: Geometric stability with orthogonal rigor and asymmetry handled through measured mass relationships - atmosphere: Rational, calm, precise, progressive, utilitarian - key_features: Function-first composition, ribbon glazing language, flat-roof planar order, restrained signal accents + aesthetic: Bauhaus arquitectónico de racionalismo industrial, antiornamento y legibilidad funcional explícita. + form_and_line: Masas cúbicas, ventanas corridas, cubiertas planas, asimetría planificada y estructura clara. + color_palette: Base blanco-negro-gris con acentos puntuales de color-señal de baja frecuencia. + lighting_setup: Distribución diurna homogénea, sombras sobrias y ritmos de ventana lineales sin teatralización. + material_texture: Revoque mineral mate, acero preciso, vidrio plano, linóleo y detalles metálicos tubulares. + render_quality: Modernismo nítido de orden gráfico y verdad material. + spatial_distortion: Estabilidad ortogonal con equilibrio de masas y asimetría medida. + atmosphere: Precisa, progresiva, utilitaria y calmada. + key_features: Composición función-primero, cinta de ventana, planos limpios y señalética cromática mínima. creative_brief: >- - Preserve identity through functional hierarchy and geometric discipline: - anti-ornamental clarity, structural legibility, and measured asymmetry are - the transferable core of this preset. + Conserva una gramática Bauhaus transferible donde función, masa y estructura + ordenen cada decisión visual. La asimetría debe ser racional y medible, + nunca expresiva por capricho formal. avoidRules: - decoration - roof tiles diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-026.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-026.yaml index 07ede86e..cfa27adb 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-026.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-026.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Googie retro-futurist style with atomic-age optimism, velocity-driven geometry, and exuberant commercial-modern spectacle - form_and_line: Upswept cantilevers, boomerang vectors, starburst motifs, flying-V canopies, and angular glazing rhythms - color_palette: Neon-bright primaries with chrome neutrals, turquoise-red anchors, buttery yellow highlights, and atomic orange punches - lighting_setup: High-signage neon glow, backlit plastic diffusion, marquee-like edge lighting, and animated luminance sequencing - material_texture: Polished chrome, terrazzo sparkle, Formica gloss, painted stucco grain, and crisp glazed surface reflections - render_quality: High-energy mid-century retro-future rendering with kitsch precision and polished optimism-forward finish - spatial_distortion: Directional boomerang skew and upswept perspective emphasis to imply constant forward motion - atmosphere: Playful, optimistic, fast, theatrical, nostalgic - key_features: Velocity geometry language, neon-chrome contrast, starburst ornament grammar, exuberant cantilever choreography + aesthetic: Retrofuturismo Googie de optimismo atómico, velocidad visual y espectáculo comercial modernista. + form_and_line: Cantiléveres ascendentes, vectores boomerang, canopy en V, starbursts y acristalamientos angulares dinámicos. + color_palette: Primarios neón sobre neutros cromados, turquesa/rojo como anclas y amarillos mantequilla con naranja atómico. + lighting_setup: Señalética brillante, difusiones plásticas retroiluminadas y bordes tipo marquee con secuencia luminosa. + material_texture: Cromo pulido, terrazo brillante, Formica esmaltada, estuco pintado y reflejos duros de vidrio. + render_quality: Retro-futuro de media centuria con energía kitsch precisa y acabado optimista de alto contraste. + spatial_distortion: Sesgo direccional y perspectiva levantada para sugerir movimiento continuo. + atmosphere: Lúdica, veloz, nostálgica y espectacular. + key_features: Motivos starburst, geometría de impulso, neón-cromo dominante y coreografía de voladizos. creative_brief: >- - Keep the preset identifiable through atomic-age velocity forms and - neon-chrome exuberance; prioritize optimistic retro-future geometry over - any fixed roadside venue narrative. + Define una gramática Googie transferible donde velocidad geométrica, + exuberancia neón-cromo y optimismo atómico sean constantes visuales. Debe + funcionar sin depender de la narrativa de un diner o carretera concreta. avoidRules: - square - boring diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-027.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-027.yaml index 327bce58..2bd053d8 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-027.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-027.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Tudor-revival residential style with half-timber heritage expression, romantic asymmetry, and hearth-centered historic warmth - form_and_line: Exposed timber grid overlays, steep gable silhouettes, irregular ridge rhythm, leaded-diamond fenestration, and chimney vertical anchors - color_palette: Dark stained wood against limewash whites, terracotta earth notes, moss-lichen greens, and warm ochre weathering tones - lighting_setup: Soft overcast daylight with warm interior hearth glow, leaded-window diffusion, and gentle evening candle accents - material_texture: Aged timber grain, lime plaster chalkiness, handmade brick variation, leaded glass facets, and weathered roof textures - render_quality: Heritage-rich visualization balancing storybook softness with authentic historical construction detail - spatial_distortion: Mild picturesque irregularity in beam and ridge alignment to reinforce handcrafted pre-modern character - atmosphere: Rooted, warm, nostalgic, protective, intimate - key_features: Half-timber façade grammar, steep gable profile, leaded window rhythm, chimney-hearth vertical identity + aesthetic: Revival Tudor residencial con herencia entramada, asimetría pintoresca y calor histórico protector. + form_and_line: Retícula half-timber expuesta, cubiertas de fuerte pendiente, chimeneas verticales y carpintería plomada romboidal. + color_palette: Madera oscura sobre cal blanquecina, tierras terracota, verdes musgo y ocre envejecido. + lighting_setup: Cielo difuso, brillo cálido interior de hogar y filtrado suave por vidrios emplomados. + material_texture: Madera envejecida, yeso de cal, ladrillo manual, vidrio facetado y cubierta con pátina climática. + render_quality: Patrimonio doméstico de detalle constructivo sólido y atmósfera de arraigo. + spatial_distortion: Irregularidad pintoresca leve en cumbreras y entramados para reforzar artesanía premoderna. + atmosphere: Íntima, protectora, nostálgica y terrenal. + key_features: Fachada half-timber, gable pronunciado, ventanas emplomadas y núcleo chimenea-hogar. creative_brief: >- - Keep this preset defined by timber-lime contrast, picturesque asymmetry, - and hearth-driven warmth, preserving Tudor revival language beyond any - specific cottage narrative. + Conserva una gramática Tudor transferible basada en contraste madera-cal, + asimetría pintoresca y calor de hogar. Debe transmitir continuidad + histórica sin quedar reducida a una postal de cottage. avoidRules: - modern assets: diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-028.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-028.yaml index d9fe977c..85ead06f 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-028.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-028.yaml @@ -12,21 +12,20 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Vertical biophilic high-rise, metabolist eco-tower, planted-envelope architecture, urban rewilding facade - form_and_line: Orthogonal slab grid interleaved with irregular canopy protrusions, cantilevered planter bands, stacked terrace strata - color_palette: Green plants, Wood, Sky reflection, Soil Brown, Seasonal Blossom color - lighting_setup: Natural sun, leaf-filtered dapple, photosynthesis glow, seasonal-angle shadow - material_texture: Leaves, timber, living bark, bamboo cladding, rammed earth, recycled aggregate - render_quality: High-detail architectural visualization, species-level planting readability, believable facade ecology and maintenance logic - spatial_distortion: Overgrown - atmosphere: Regenerative urbanism, breathable density, temperate microclimate comfort, long-horizon civic optimism - key_features: Deep planter setbacks, mixed-height canopy layers, facade irrigation tracks, bird-supportive ledges, evapotranspirative shading + aesthetic: Torre bioclimática de envolvente viva, donde paisaje y edificio operan como un único sistema metabólico urbano. + form_and_line: Retícula ortogonal base con protrusiones vegetales irregulares, bandas de jardineras en voladizo y terrazas estratificadas. + color_palette: Verdes estacionales, madera natural, reflejos de cielo, marrones de sustrato y floraciones puntuales. + lighting_setup: Sol natural filtrado por copa vegetal, dapple dinámico y sombras estacionales por ángulo de incidencia. + material_texture: Hoja, corteza, madera, bambú, tierra compactada y áridos reciclados con lectura ecológica tangible. + render_quality: Visualización eco-arquitectónica de alto detalle con lógica de mantenimiento, riego y desempeño climático verosímil. + spatial_distortion: Sensación de sobrecrecimiento controlado, con profundidad por capas de vegetación funcional. + atmosphere: Regenerativa, respirable, cívica y optimista a largo plazo. + key_features: Jardineras profundas, corredores verdes, riego visible, bordes para biodiversidad y sombreamiento evapotranspirativo. creative_brief: >- - Construye una tipología de torre-jardín donde la vegetación no sea decorativa, - sino parte del sistema arquitectónico: control solar, amortiguación térmica, - identidad de fachada y hábitat urbano. El estilo debe mantener lectura técnica - (estructura, drenaje, mantenimiento) y al mismo tiempo una presencia orgánica - densa, apta para múltiples programas residenciales o mixtos. + Formula una gramática de torre-jardín transferible en la que vegetación, + estructura y clima sean inseparables. La estética debe mostrar desempeño + técnico real (sombra, drenaje, inercia, mantenimiento) además de densidad + orgánica, aplicable a múltiples programas. avoidRules: - concrete - industrial diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-029.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-029.yaml index 6e408dc5..0cdedcc3 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-029.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-029.yaml @@ -12,20 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Earthen adobe habitat, pueblo-derived vernacular massing, hand-formed desert domestic architecture - form_and_line: Monolithic thick-wall volumes, softened chamfers, stepped rooflines, recessed apertures, low-slung parapets - color_palette: Terracotta, Sand, Warm Ochre, Sage brush, Deep Cinnamon, Sunbaked Clay - lighting_setup: Harsh desert sun, deep window-reveal shadow, nicho candle glow, kiva fireplace flicker - material_texture: Lime-washed earthen plaster, straw-fiber inclusions, hand-trowel undulation, exposed vigas, clay tile wear - render_quality: Archaeology-grade material honesty, sun-baked tonal compression, handcrafted imperfection with structural plausibility - spatial_distortion: Handmade walls - atmosphere: Grounded, sheltering, arid-climate calm, ancestral domestic continuity - key_features: Deep window reveals, banco seating ledges, nicho wall recesses, kiva-type hearth geometry, roof access ladders + aesthetic: Vernáculo adobe de masa térmica, domesticidad desértica y expresión manual de arraigo territorial. + form_and_line: Muros gruesos monolíticos, aristas suavizadas, cubiertas escalonadas, huecos profundos y parapetos bajos. + color_palette: Terracota, arena, ocre cálido, salvia, canela y arcilla soleada. + lighting_setup: Sol desértico duro, sombras profundas en vanos, glow de nichos y parpadeo de hogar tipo kiva. + material_texture: Revoco de tierra encalada, fibra vegetal visible, huella de llana manual, vigas expuestas y teja de barro usada. + render_quality: Honestidad material de alto realismo climático con imperfección artesanal plausible. + spatial_distortion: Ondulación leve de muros por manufactura manual, manteniendo estabilidad tectónica. + atmosphere: Cobijo térmico, calma árida y continuidad ancestral. + key_features: Vanos en retranqueo profundo, bancos de obra, nichos murales, geometría de hogar kiva y accesos de cubierta. creative_brief: >- - Define este preset como gramática de arquitectura en tierra: muros de gran - inercia térmica, huecos profundos y acabados manuales que revelan la mano del - constructor. La estética debe transmitir durabilidad climática y arraigo local, - evitando postal turística o escena narrativa única. + Mantén una gramática adobe transferible centrada en inercia térmica, hueco + profundo y acabado manual visible. Debe comunicar adaptación climática y + arraigo constructivo, no exotismo escénico. avoidRules: - sharp edges - wood diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-030.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-030.yaml index d36d91d3..aec29238 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-030.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-030.yaml @@ -12,20 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Constructivist civic-machine language, ideological monumentality, tectonic propaganda geometry - form_and_line: Aggressive diagonals, interlocking prismatic/cylindrical bodies, exposed structural vectors, suspended connectors - color_palette: Grey, Red accents, Raw Concrete, Faded Ochre, Industrial Black, Propaganda Crimson - lighting_setup: Overcast, low-angle drama, stark shadow projection, factory-window rhythm - material_texture: Concrete, rough-cast render, steel frame, glass-block, bolted plate - render_quality: Diagrammatic mass clarity, high-contrast volumetric legibility, archival-modernist severity - spatial_distortion: Floating masses - atmosphere: Austere, programmatic, collectivist, machine-age idealism with historical residue - key_features: Cantilever stress reads, pilotis lift-off, bridge-like connectors, banner-red accent planes, structural hierarchy exposed + aesthetic: Constructivismo soviético de máquina cívica, monumentalidad ideológica y severidad programática. + form_and_line: Diagonales agresivas, prismas/cilindros interbloqueados, vectores estructurales expuestos y conectores suspendidos. + color_palette: Gris crudo, negro industrial, ocre desvaído y rojo propaganda como acento estratégico. + lighting_setup: Cielo cubierto, dramatismo de ángulo bajo, sombras duras proyectadas y ritmo de hueco fabril. + material_texture: Hormigón bruto, revoque áspero, acero estructural, bloque de vidrio y placas atornilladas. + render_quality: Claridad diagramática de masas con legibilidad volumétrica alta y tono archivístico severo. + spatial_distortion: Sensación de masas en tensión y volúmenes en suspensión controlada. + atmosphere: Austera, colectiva, disciplinada y mecánico-utópica. + key_features: Cantiléveres tensos, pilotis, puentes de conexión, planos rojos de comando y estructura explícita. creative_brief: >- - Construye composiciones donde la forma actúe como manifiesto: geometría en - conflicto controlado, estructura visible y cromatismo político mínimo pero - contundente. Debe sentirse como arquitectura-programa (función + ideología), no - como set cinematográfico puntual. + Define una gramática constructivista transferible donde la forma opere como + manifiesto: conflicto geométrico, estructura sin ocultamiento y color + político mínimo pero incisivo. Debe leerse como arquitectura-programa. avoidRules: - ornate - capitalist diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-031.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-031.yaml index c2b3bb99..d8707e00 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-031.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-031.yaml @@ -12,20 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Orbital habitat realism, utilitarian aerospace interior, operational zero-G workstation density - form_and_line: Modular rack matrices, radial hatch apertures, tether paths, cable bundles, tool-retention zones + aesthetic: Interior aeroespacial operativo de microgravedad, donde la habitabilidad emerge de la ingeniería y no de la decoración. + form_and_line: Retículas de racks modulares, escotillas circulares, redes de pasamanos y vectores de sujeción para cuerpo y herramientas. color_palette: White, Velcro Blue, Equipment Beige, Soft-glow Green LED, Black panel accents - lighting_setup: Harsh LED, panel-integrated task light, cupola-filtered Earth light, dim night-mode amber - material_texture: Nomex-like soft panels, brushed alloy fasteners, hook-loop retention strips, MLI foil reflections, molded control plastics - render_quality: Mission-grade technical fidelity, dense but readable instrumentation, believable spacecraft wear patterns + lighting_setup: LED técnico de alto control, focos de tarea integrados en panel, rebote frío de cupola y modo nocturno ámbar de baja fatiga. + material_texture: Paneles textiles técnicos ignífugos, aleación cepillada, velcro de retención, foil aislante y polímeros moldeados funcionales. + render_quality: Fidelidad mission-grade con densidad instrumental legible, ergonomía de mantenimiento y desgaste realista de uso continuo. spatial_distortion: Zero-G floating - atmosphere: Contained, procedural, sleep-deprived precision, fragile livability in hostile vacuum context - key_features: Handrail networks, laptop tether points, labeled rack bays, circular pressure hatches, floating utility pouches + atmosphere: Contenida y procedimental, con precisión operativa bajo fatiga y sensación de vida frágil en entorno hostil. + key_features: Redes de handrails, puntos de tether, módulos etiquetados, escotillas presurizadas y bolsillos utilitarios flotantes. creative_brief: >- - Mantén una lógica de ingeniería operativa: cada superficie debe sugerir función - (sujeción, acceso, control o mantenimiento). La estética se apoya en densidad - instrumental, ergonomía en microgravedad y jerarquía visual de interfaces, - evitando clichés sci-fi limpios o teatrales. + Define una gramática orbital transferible basada en función explícita, + retención física y legibilidad de interfaz. Cada elemento debe justificar + operación, acceso o mantenimiento, evitando futurismo escenográfico limpio. avoidRules: - wood - brick diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-032.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-032.yaml index a359478a..212a7d2e 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-032.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-032.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Metropolitan underground transit vernacular, ceramic-infrastructure patina, commuter-intensity public realm - form_and_line: Repetitive bay rhythm, rail-perspective convergence, vaulted/flat hybrid ceilings, sign-band alignment + aesthetic: Infraestructura metropolitana subterránea de alto flujo, con pátina cerámica y presión cotidiana de movilidad masiva. + form_and_line: Ritmo repetitivo de crujías, convergencia longitudinal de rieles, techos híbridos y bandas de señalética estructural. color_palette: Tile White, Grime, Signal Green, Rust Orange, Gum-grey floor, Sick-fluorescent tone - lighting_setup: Fluorescent flicker, platform-edge pools, advertising-light glare, tunnel-black void - material_texture: Chipped ceramic tile glaze, oxidized rail steel, oil-dark ballast edges, moisture staining, anti-slip platform wear - render_quality: Documentary transit realism, high micro-wear authenticity, dense urban public-space legibility + lighting_setup: Fluorescencia intermitente, pools de borde de andén, glare publicitario y vacío negro de túnel como contrapunto. + material_texture: Baldosa astillada, acero oxidado, grasa mineral en borde de vía, humedad capilar y pavimento antideslizante gastado. + render_quality: Realismo documental de tránsito con microdesgaste verosímil y lectura clara de espacio público denso. spatial_distortion: Motion blur train - atmosphere: Transitory, anonymous, humid subterranean pressure, routine urgency - key_features: Platform warning strip, tiled wayfinding bands, ad-light spill, service conduit clutter, tunnel mouth void + atmosphere: Transitoria, anónima y húmeda, con urgencia rutinaria y compresión subterránea constante. + key_features: Franja de seguridad de andén, wayfinding en banda, conducciones vistas, derrame de luz comercial y bocas de túnel profundas. creative_brief: >- - Diseña este preset como lenguaje de movilidad masiva: repetición modular, - desgaste de alto tráfico y señalética como estructura compositiva principal. - La escena debe sentirse operativa y habitada por flujos, no como decorado vacío. + Construye una gramática de metro transferible donde repetición modular, + desgaste por tráfico y jerarquía de señalética gobiernen la composición. + Debe sentirse operativa y permanentemente habitada por flujo. avoidRules: - clean - sunny diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-033.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-033.yaml index 31ed3b0c..f7c1c197 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-033.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-033.yaml @@ -12,20 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Conservatory bioclimatic enclosure, botanical-display architecture, iron-and-glass horticultural shell - form_and_line: Ribbed glazed spans, fine iron tracery modules, greenhouse nave rhythm, layered planting depth bands + aesthetic: Envolvente bioclimática de cultivo, donde estructura de hierro y masa vegetal conviven en equilibrio técnico. + form_and_line: Luces acristaladas nervadas, tracería metálica fina, secuencias de nave y estratos de plantación por profundidad. color_palette: Green, Glass, Tropical Bloom accents, Dew-drop Silver, Mossy floor, Whitewashed iron - lighting_setup: Diffused bright, glass-filtered sun, condensation prisms, mist-softened rays - material_texture: Condensed glazing film, oxidized painted iron, damp gravel, terracotta efflorescence, broadleaf wax sheen - render_quality: Botanical-specimen precision, humidity-sensitive light bloom, curated lushness with structural clarity + lighting_setup: Sol filtrado por vidrio, difusión húmeda, prismas por condensación y rayos suavizados por neblina interna. + material_texture: Película de condensación, hierro pintado oxidado, grava húmeda, terracota eflorescente y hojas de brillo ceroso. + render_quality: Precisión botánica con control de atmósfera húmeda y claridad estructural de invernadero operativo. spatial_distortion: Condensation - atmosphere: Warm-humid cultivation calm, protected growth environment, quiet ecological abundance - key_features: Condensation gradients on panes, species-zoned planting beds, iron rib repetition, mist stratification, service paths + atmosphere: Cálida-húmeda, protectora y fértil, con calma de cultivo intensivo controlado. + key_features: Gradientes de condensación, zonificación por especies, repetición de nervios, estratificación de niebla y rutas de servicio. creative_brief: >- - Prioriza el contraste entre precisión estructural y vitalidad vegetal: la - retícula portante debe leerse con nitidez mientras la masa botánica introduce - variación orgánica, humedad y densidad. Evita convertirlo en jardín genérico; - debe sentirse como arquitectura de cultivo controlado. + Formula una gramática de conservatorio transferible basada en retícula + estructural legible, humedad visible y estratificación botánica técnica. + Debe leerse como arquitectura de cultivo, no jardín ornamental genérico. avoidRules: - dark - dry diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-034.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-034.yaml index dc437fc8..be456dd5 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-034.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-034.yaml @@ -12,20 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Derelict institutional interior, bureaucratic ruin, pathology of maintenance failure - form_and_line: Rigid corridor axiality disrupted by collapses, repeated door modules, suspended-ceiling failure patterns + aesthetic: Ruina institucional burocrática, donde el deterioro acumulado se convierte en sistema visual principal. + form_and_line: Axialidad rígida de pasillo interrumpida por colapsos, repetición de puertas y fallas de cielo suspendido. color_palette: Desaturated Green/Grey, Sickly Mint, Rust stain, Water-damage Brown, Faded Cream - lighting_setup: Shafts of light, dust-beam theater, broken-window blade, flickering emergency bulb, pitch corners - material_texture: Delaminated paint skins, mineral streaking, rust bloom at junctions, damp plaster blistering, fungal spread traces - render_quality: Forensic decay readability, high tactile distress detail, institutional-era authenticity + lighting_setup: Hazes de luz quebrada, polvo en suspensión, parpadeo eléctrico residual y esquinas de oscuridad profunda. + material_texture: Pintura delaminada, escurridos minerales, oxidación en uniones, yeso ampollado y trazas fúngicas progresivas. + render_quality: Lectura forense del deterioro con autenticidad de edificio público abandonado. spatial_distortion: Collapsed ceiling - atmosphere: Oppressive stillness, administrative abandonment, cold acoustic emptiness - key_features: Faded compliance signage, broken fluorescent housings, cracked linoleum seams, dust shafts, partial ceiling cave-ins + atmosphere: Inmovilidad opresiva, vacío acústico frío y memoria administrativa detenida. + key_features: Señalética deslavada, luminarias rotas, juntas de linóleo abiertas, pilares de polvo y techos parciales caídos. creative_brief: >- - Construye la identidad desde la degradación sistémica: pintura, yeso, luminarias - y pavimentos deben narrar décadas de uso y abandono. Mantén tensión psicológica - sin teatralidad explícita; el miedo surge de la evidencia material y la escala - institucional repetitiva. + Define una gramática de abandono institucional transferible en la que cada + capa material evidencie décadas de fallo de mantenimiento. La tensión debe + nacer de repetición arquitectónica y evidencia física, no de susto explícito. avoidRules: - clean - new diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-035.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-035.yaml index 8ee0c318..7e810c9e 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-035.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-035.yaml @@ -12,20 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Historic reading-room classicism, archival interior atmosphere, bibliographic monumentality - form_and_line: Tall shelf bays, ladder-track verticals, table-aisle symmetry, vault/alcove cadence, spine-color striping + aesthetic: Clasicismo bibliográfico histórico con monumentalidad silenciosa y disciplina de lectura. + form_and_line: Crugías altas de estantería, verticales de escalera, simetría de mesas y cadencia de bóveda/alcoba. color_palette: Brown, Gold, Dust, Calfskin Tan, Marbled Endpaper, Brass Patina, Forest Leather - lighting_setup: Warm lamp, banker's green glass shade, reading-table pool, high-window shaft, brass sconce - material_texture: Oxidized leather grain, deckled paper edges, gilt tooling wear, polished oak handling patina, brass lamp tarnish - render_quality: Museum-grade interior rendering, fine material aging fidelity, deep focus for catalog-like readability + lighting_setup: Lámparas cálidas focales, pantalla verde de lectura, shafts altos de ventana y apliques de latón envejecido. + material_texture: Cuero oxidado, papel de canto irregular, dorados gastados, roble pulido por uso y latón oscurecido. + render_quality: Calidad museo con envejecimiento noble y profundidad de campo apta para lectura catalográfica. spatial_distortion: None - atmosphere: Contemplative discipline, inherited scholarship, reverent silence with warm pooled light - key_features: Green-shade task lamps, catalog-table clusters, rolling rail ladders, shelf-bay numbering logic, atlas/globe accents + atmosphere: Contemplativa, rigurosa y reverencial, con calidez puntual sobre un fondo de silencio estructurado. + key_features: Lámparas green-shade, clúster de mesas de catálogo, escaleras móviles, numeración de bahías y acentos cartográficos. creative_brief: >- - Haz que el preset funcione como tipología bibliográfica completa: ritmo de - estanterías, luz de lectura localizada y envejecimiento noble de materiales. - Debe conservar solemnidad intelectual y legibilidad editorial sin depender de - una biblioteca histórica concreta. + Construye una gramática bibliográfica transferible basada en ritmo de + estantería, luz focal de lectura y materialidad envejecida con nobleza. + Debe sostener solemnidad intelectual sin depender de un edificio concreto. avoidRules: - digital - modern diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-036.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-036.yaml index 7caf0910..da9ff67f 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-036.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-036.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - historical-and-sacred-architecture visualDna: - aesthetic: Hyper-commercial gaming interior, spectacle-driven chance architecture, windowless sensory economy - form_and_line: Dense machine orthogonals, non-directional carpet fields, mirrored reflective breaks, circulation ambiguity by design + aesthetic: Interior hipercomercial de juego, diseñado para economía sensorial continua y permanencia prolongada. + form_and_line: Densidad ortogonal de máquinas, alfombra no direccional, espejos estratégicos y circulación deliberadamente ambigua. color_palette: Red, Gold, Neon, Casino Carpet Confetti, Chrome, Velvet Purple - lighting_setup: Dark with bright spots, ceiling wash, slot-machine glow, chandelier bling, ambient overstimulation - material_texture: Pattern-saturated carpet pile, injection-molded machine housings, chrome trim wear, laminated bar surfaces, felt-table nap - render_quality: High-density stimulus realism, luminous hierarchy control, commercial-grade nightlife finish + lighting_setup: Base oscura con hotspots de máquina, wash de techo, destellos decorativos y sobreestimulación luminosa controlada. + material_texture: Alfombra de patrón saturado, carcasas moldeadas, cromo usado, laminados brillantes y paño de mesa denso. + render_quality: Realismo de estímulo alto con jerarquía lumínica comercial y acabado nocturno de gran densidad. spatial_distortion: None - atmosphere: Continuous arousal, temporal dislocation, engineered comfort-pressure, synthetic opulence - key_features: Clockless envelope, low-ceiling glow wash, jackpot beacon clusters, patterned wayfinding suppression, mirrored depth amplification + atmosphere: Activación continua, desorientación temporal y confort-presión de consumo. + key_features: Envolvente sin relojes, glow de techo bajo, clusters jackpot, supresión de wayfinding y profundidad espejada. creative_brief: >- - Estructura el lenguaje visual como sistema de sobreestimulación controlada: - patrones, luces y reflejos deben dirigir atención continua y desorientar el - tiempo. El resultado debe sentirse comercial y estratégico, no caricaturesco. + Define una gramática de casino transferible donde patrón, brillo y reflejo + secuestren la atención de forma estratégica. Debe sentirse táctico y + comercial, nunca caricatura festiva. avoidRules: - daylight - calm diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-037.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-037.yaml index 27cd01b8..d80c371d 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-037.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-037.yaml @@ -12,20 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Immersive marine tunnel architecture, acrylic ocean envelope, subaquatic promenade spectacle - form_and_line: Continuous arched shell sections, tubular perspective thrust, layered water-column depth bands, soft biotic flow lines + aesthetic: Arquitectura inmersiva de túnel marino, donde envolvente acrílica y columna de agua construyen espectáculo técnico. + form_and_line: Secciones arqueadas continuas, empuje tubular de perspectiva y capas de profundidad acuática con flujo biótico suave. color_palette: Blue, Cyan, Aquamarine, Deep Navy shadow, Bioluminescent fleck, Sandy floor tan - lighting_setup: Caustics, rippling light nets, overhead-dappled, blue ambient, tank-glow - material_texture: Thick acrylic panel seams, caustic-lit water skin, suspended particulates, reef substrate roughness, scale flashes - render_quality: High-clarity aquatic rendering, refractive fidelity, volumetric depth realism with controlled color attenuation + lighting_setup: Redes caústicas dinámicas, dapple cenital, ambiente azul profundo y brillo de tanque de alta difusión. + material_texture: Juntas de acrílico grueso, piel de agua refractiva, partículas suspendidas y rugosidad de sustrato arrecifal. + render_quality: Claridad acuática alta con refracción físicamente creíble y atenuación cromática por profundidad. spatial_distortion: Refraction - atmosphere: Quiet awe, pressurized calm, cinematic blue immersion, slowed human tempo - key_features: Overhead marine silhouettes, caustic lattice sweeps, acrylic rib joints, variable turbidity zones, biotic layering + atmosphere: Asombro silencioso, calma presurizada e inmersión azul de ritmo humano ralentizado. + key_features: Siluetas marinas superiores, barridos caústicos, nervios de acrílico, turbidez variable y estratos bióticos. creative_brief: >- - Define este preset desde óptica y envolvente: refracción, caústicas y gradiente - de profundidad deben construir la experiencia. La arquitectura del túnel tiene - que sentirse robusta y técnica, mientras la vida marina aporta escala, ritmo y - movimiento atmosférico. + Formula una gramática de túnel-acuario transferible donde óptica, profundidad + y robustez de envolvente manden la escena. La biota debe aportar escala y + ritmo, pero la identidad nace de la arquitectura técnica acuática. avoidRules: - dry assets: diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-038.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-038.yaml index 5333bfd9..ee28298c 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-038.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-038.yaml @@ -12,20 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Ossuary architecture, ritualized mortality display, subterranean bone-structure interior language - form_and_line: Repetitive cranium/fracture motifs, long-bone lattice arrangements, shallow arch-bay sequencing, compressed tunnel axiality + aesthetic: Arquitectura osario subterránea donde mortalidad ritual y módulo óseo definen el lenguaje espacial. + form_and_line: Patrones repetitivos de cráneo y hueso largo, arcos bajos secuenciados y axialidad comprimida de túnel. color_palette: Bone White, Dirt, Sepia age, Calcium Yellow, Shadow Brown, Cartilage Cream - lighting_setup: Torch/Flashlight, flame-flicker on bone, LED beam, dramatic shadow-cast, warm death-glow - material_texture: Chalky calcium bloom, porous cortical-bone pitting, dust-loaded mortar seams, damp stone substrate transitions - render_quality: Archaeological-macabre fidelity, high microtexture readability, low-light subterranean material realism + lighting_setup: Fuentes cálidas puntuales de antorcha o linterna, parpadeo sobre hueso y sombras densas de bajo nivel. + material_texture: Calcio yesoso, porosidad cortical, juntas de mortero polvorientas y transiciones húmedas de piedra enterrada. + render_quality: Fidelidad arqueológica de bajo nivel lumínico con microtextura funeraria legible. spatial_distortion: None - atmosphere: Solemn, compressed, reverential dread, deep-time stillness - key_features: Patterned skull courses, femur cross-stack bands, ossuary niches, candle/torch hotspot falloff, low vault pressure + atmosphere: Solemne, comprimida y reverencial, con quietud de tiempo profundo. + key_features: Hiladas de cráneos, bandas de fémures cruzados, nichos osarios y presión de bóveda baja. creative_brief: >- - Define la estética por repetición material y orden funerario: el hueso funciona - como módulo arquitectónico y símbolo simultáneamente. La composición debe - transmitir reverencia, densidad histórica y lectura espacial subterránea sin - depender de relato gótico explícito. + Define una gramática osaria transferible en la que repetición material y + orden funerario estructuren el espacio. Debe transmitir reverencia histórica + y lectura subterránea sin teatralidad gótica explícita. avoidRules: - living assets: diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-039.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-039.yaml index d8d40814..a6045f05 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-039.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-039.yaml @@ -12,20 +12,19 @@ tags: - architecture-and-interior - historical-and-sacred-architecture visualDna: - aesthetic: Mission-critical data infrastructure interior, machine-first architecture, uptime-centric technical environment - form_and_line: Rack-bay serial rhythm, strict hot/cold aisle zoning, orthogonal cable trays, perforated panel cadence + aesthetic: Infraestructura crítica de datos orientada a continuidad operativa y arquitectura machine-first. + form_and_line: Serie de racks, pasillos térmicos rígidos, bandejas ortogonales y repetición de panel perforado funcional. color_palette: Black, Blue LED, Blinking Amber, Cool White fluorescent, Signal Green status, Grey metal - lighting_setup: Artificial cool, rack-integrated glow, service-aisle strip, status-LED constellation, cold-corridor containment - material_texture: Powder-coated rack steel, braided fiber looms, perforated mesh doors, rubberized raised-floor tiles, fan-intake dusting - render_quality: Facility-grade realism, high information density, precise systems legibility under cool artificial light + lighting_setup: Luz fría artificial continua, glow de rack, tiras de servicio y constelaciones LED de estado con contención térmica visible. + material_texture: Acero pintado en polvo, mazos de fibra trenzada, malla perforada, piso técnico gomado y polvo de admisión. + render_quality: Realismo facility-grade con alta densidad informativa y legibilidad de sistema bajo iluminación técnica. spatial_distortion: None - atmosphere: Controlled urgency, uninterrupted operation, low-human occupancy, infrastructural vigilance - key_features: Status-LED clusters, aisle containment, CRAC airflow cues, labeled patch fields, redundancy-oriented rack repetition + atmosphere: Urgencia controlada, vigilancia infraestructural y ocupación humana mínima. + key_features: Clúster LED de estado, contención de pasillos, pistas de flujo CRAC, patch fields etiquetados y repetición redundante. creative_brief: >- - La identidad debe surgir de operación continua y control térmico: todo elemento - visual (racks, aire, cableado, señalización) responde a disponibilidad y - mantenimiento. Evita look futurista genérico; busca realismo de infraestructura - crítica contemporánea. + Construye una gramática de sala de servidores transferible donde continuidad, + redundancia y control térmico gobiernen cada decisión visual. Debe verse + contemporánea y crítica, no sci-fi genérica. avoidRules: - messy - organic diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-040.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-040.yaml index 629c5b2a..7e300529 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-040.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-040.yaml @@ -12,20 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Arboreal micro-architecture, elevated timber refuge typology, canopy-integrated hideaway design - form_and_line: Stilt/branch hybrid supports, staggered deck plates, rope/cable diagonals, trunk-avoidance cutouts + aesthetic: Microarquitectura arbórea de refugio elevado, integrada a copa y condicionada por soporte vivo. + form_and_line: Soportes híbridos entre pilotes y ramas, plataformas escalonadas, diagonales de cable y vacíos de evasión de tronco. color_palette: Brown, Green leaves, Bark Grey, Rope Tan, Sky Blue through leaves, Moss - lighting_setup: Dappled sun, leaf-filtered shimmer, lantern glow, fairy-string twinkle, camping-lamp amber - material_texture: Weathered softwood grain, rope fiber fray, bark abrasion contacts, galvanized hardware oxidation, canvas sun-fade - render_quality: Hand-built authenticity, lightweight structural plausibility, crafted outdoor living detail + lighting_setup: Sol moteado filtrado por hoja, brillo variable de dosel y pools cálidos de linterna en escala íntima. + material_texture: Veta de madera expuesta al clima, cuerda fibrosa, abrasión de corteza y herrajes galvanizados oxidados. + render_quality: Autenticidad hand-built con plausibilidad estructural ligera y detalle de uso exterior real. spatial_distortion: Crooked - atmosphere: Elevated intimacy, playful autonomy, wind-exposed shelter, exploratory calm - key_features: Trunk-through-floor apertures, rope access points, lookout edges, lantern-scale warm pools, improvised joinery details + atmosphere: Íntima y lúdica, con autonomía exploratoria y abrigo frente a exposición de viento. + key_features: Aberturas de tronco en piso, accesos de cuerda, bordes mirador, pools cálidos de linterna y uniones improvisadas. creative_brief: >- - Construye una gramática de refugio elevado donde la estructura se adapta al - árbol en vez de dominarlo. El estilo debe combinar improvisación artesanal, - seguridad funcional y atmósfera de descubrimiento sin caer en iconografía infantil - obligatoria. + Define una gramática treehouse transferible en la que estructura y árbol se + negocian mutuamente. Debe combinar improvisación artesanal, seguridad básica + y sensación de descubrimiento sin infantilizar la tipología. avoidRules: - ground level assets: diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-041.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-041.yaml index ffc29892..5bf33730 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-041.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-041.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - landscape-and-gardens visualDna: - aesthetic: Grand formal landscape classicism, power-encoded garden geometry, choreographed nature order - form_and_line: Central axial composition, mirrored parterre grids, perspectival allées, basin-aligned focal hierarchy + aesthetic: Clasicismo paisajístico formal donde la geometría vegetal expresa poder, protocolo y orden territorial. + form_and_line: Eje central dominante, parterres espejados, allées perspectivos y jerarquía de focos por lámina de agua. color_palette: Green, Gravel Beige, Boxwood Dark, Seasonal Bedding Red, Water-reflection Silver, Limestone - lighting_setup: Flat sun, axial-light drama, fountain-sparkle, golden-hour hedge wash, statue-silhouette - material_texture: Manicured hedge, clipped boxwood, raked gravel, fountain stone, lead statue, grass parterre - render_quality: Planimetric precision with cinematic depth, horticultural discipline readability, stately ceremonial clarity + lighting_setup: Sol plano de lectura planimétrica, dramatismo axial por sombras largas y destellos en fuentes/estatuaria. + material_texture: Setos recortados milimétricos, grava rastrillada, piedra de fuente y césped de patrón controlado. + render_quality: Precisión de proyecto de paisaje con profundidad ceremonial y legibilidad topiaria estricta. spatial_distortion: None - atmosphere: Monumental order, ceremonial calm, curated authority, deliberate visual command - key_features: Embroidered parterres, clipped hedge planes, mirrored water axes, statuary punctuation, long-view control points + atmosphere: Ceremonial, monumental y disciplinada, con autoridad visual intencional. + key_features: Parterres bordados, planos de seto, espejos de agua axiales, estatuas nodales y puntos de control visual lejano. creative_brief: >- - El preset debe comunicar control espacial absoluto mediante ejes, simetría y - jardinería de precisión. Piensa el jardín como arquitectura horizontal: lectura - clara en planta y en perspectiva, con naturaleza sometida a un sistema formal. + Define una gramática de jardín formal transferible donde eje, simetría y + precisión topiaria manden la composición. Debe funcionar como arquitectura + horizontal con lectura clara tanto en planta como en perspectiva. avoidRules: - wild - messy diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-042.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-042.yaml index 7c77cf38..418fee66 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-042.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-042.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Informal cottage planting, romantic abundance horticulture, soft-edged domestic garden vernacular - form_and_line: Layered mixed-height borders, meandering circulation, rounded perennial masses, climbing-arch punctuation + aesthetic: Jardín cottage de abundancia romántica, domesticidad hortícola y espontaneidad cuidadosamente compuesta. + form_and_line: Borduras estratificadas por altura, recorridos sinuosos, masas redondeadas y acentos verticales trepadores. color_palette: Pastel flowers, Green, Lavender haze, Hollyhock Pink, Delphinium Blue, Cream Rose - lighting_setup: Soft sun, cloud-diffused English light, dappled under-tree, golden-hour petal glow - material_texture: Petals, leaves, rough stone path, mossy brick, bark mulch, feathery foliage - render_quality: Painterly botanical richness, seasonal stratification clarity, intentionally informal but composed garden structure + lighting_setup: Sol suave con difusión nubosa, dapple bajo arbolado y brillo cálido de pétalo en tarde baja. + material_texture: Pétalo y hoja de textura variada, ladrillo con musgo, piedra rugosa, mulch de corteza y follaje plumoso. + render_quality: Riqueza botánica pictórica con estratificación estacional legible e informalidad estructurada. spatial_distortion: None - atmosphere: Gentle abundance, sensory softness, lived-in horticultural intimacy - key_features: Overflowing border transitions, scented herb drifts, rose/clematis vertical accents, curved gravel paths, pollinator cues + atmosphere: Íntima, suave y vivida, con abundancia vegetal acogedora. + key_features: Transiciones desbordadas, manchas de aromáticas, rosas/clematis verticales, senderos curvos y señales para polinizadores. creative_brief: >- - Prioriza mezcla, estratificación y espontaneidad controlada: debe parecer libre - pero diseñada por capas de floración, textura y altura. Evita formalismo rígido; - busca calidez doméstica y continuidad estacional. + Construye una gramática cottage transferible basada en mezcla, altura y + secuencia de floración. Debe parecer libre pero responder a una estructura + de capas estacionales y calidez doméstica sostenida. avoidRules: - formal - concrete diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-043.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-043.yaml index 5fe55d1d..ba6f13a4 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-043.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-043.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - landscape-and-gardens visualDna: - aesthetic: Karesansui minimalism, dry-landscape abstraction, contemplative stone-field composition - form_and_line: Intentional rake-wave geometry, void-dominant horizontal planes, asymmetrical stone clusters, controlled negative space + aesthetic: Karesansui de abstracción seca, contemplación material y economía extrema de gesto. + form_and_line: Ondas rastrilladas de alta intención, planos vacíos dominantes y agrupaciones pétreas asimétricas de equilibrio tenso. color_palette: Grey, White, Moss, Granite Black, Silver sand, Lichen Green - lighting_setup: Shadows in grooves, low-angle raking light, temple-eave shade, early-morning crisp - material_texture: Gravel, stone, crisp sand, weathered granite, velvet moss, crushed quartz - render_quality: Hyper-clean minimal rendering, granular surface precision, disciplined compositional silence + lighting_setup: Luz rasante de bajo ángulo, sombras en surcos y contraste nítido de primera hora bajo alero. + material_texture: Arena/grava fina, granito meteorizado, cuarzo triturado y musgo puntual de grano aterciopelado. + render_quality: Minimalismo hiperlimpio con precisión granular y silencio compositivo disciplinado. spatial_distortion: None - atmosphere: Focused stillness, restrained ritual order, quiet temporal suspension - key_features: Raked ripple fields, anchored stone triads, selective moss masses, hard boundary containment, water-absence emphasis + atmosphere: Quietud enfocada, orden ritual y suspensión temporal. + key_features: Campos de rastrillado, tríadas de piedra anclada, masas de musgo selectivas y contención perimetral estricta. creative_brief: >- - Define este preset por economía extrema de medios: pocos elementos, máxima - intención espacial. El gesto de rastrillado y la posición de la piedra deben - funcionar como lenguaje compositivo principal, no como decoración zen genérica. + Define una gramática zen seca transferible donde el vacío, el rastrillado y + la posición pétrea sean lenguaje estructural. Debe evitar iconografía zen + superficial y sostener intención espacial máxima con pocos elementos. avoidRules: - plants - water diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-044.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-044.yaml index 84ad3ce5..6113054a 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-044.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-044.yaml @@ -12,20 +12,19 @@ tags: - architecture-and-interior - landscape-and-gardens visualDna: - aesthetic: Post-industrial ecological promenade style blending infrastructural linearity with softened native planting systems - form_and_line: Longitudinal circulation bands, alternating hardscape-softscape strips, bench-block rhythm, articulated edge transitions + aesthetic: Paseo ecológico postindustrial que reconcilia memoria infraestructural y vegetación urbana contemporánea. + form_and_line: Bandas longitudinales de circulación, alternancia hardscape-softscape y ritmo modular de bancos/bordes. color_palette: Weathered concrete neutrals, oxidized steel oranges, prairie grass olive tones, muted florals, cool urban greys - lighting_setup: Diffuse late-day illumination with mild reflected fill and gentle luminance falloff across linear surfaces - material_texture: Raw concrete grain, corten oxidation bloom, brushed steel edges, gravel fines, wind-responsive grasses, weathered timber inserts - render_quality: Competition-board landscape fidelity, adaptive-reuse legibility, ecologically credible planting succession and detailing + lighting_setup: Luz difusa de tarde con rebote urbano suave y caída progresiva sobre superficies lineales. + material_texture: Hormigón crudo, corten oxidado, acero cepillado, grava fina, gramíneas al viento e inserciones de madera envejecida. + render_quality: Nivel concurso de paisaje con legibilidad de reutilización y sucesión vegetal creíble. spatial_distortion: Compressed linear perspective supporting procession, depth through repeating modules, strong path legibility - atmosphere: Civic respite under infrastructural memory, contemporary but weathered, socially permeable - key_features: Rail-origin linearity, corten-edge stratification, modular seat-wall interfaces, pollinator-support planting mixes, pedestrian procession cues + atmosphere: Respiro cívico contemporáneo, permeable y con pátina de infraestructura heredada. + key_features: Linealidad ferroviaria, bordes estratificados, interfaces asiento-muro y mezclas de plantación para polinizadores. creative_brief: >- - Mantén tensión entre pasado industrial y ecología contemporánea: la retícula - infraestructural debe seguir visible mientras la vegetación la suaviza y reprograma. - El estilo debe servir para corredores lineales, parques elevados y bordes urbanos - reconvertidos. + Formula una gramática de corredor postindustrial transferible donde la + retícula dura siga legible mientras la ecología la reprograma. Debe + funcionar en parques lineales, infraestructuras elevadas y bordes reciclados. avoidRules: - wild forest assets: diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-045.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-045.yaml index 2aab0688..6528316b 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-045.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-045.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - landscape-and-gardens visualDna: - aesthetic: Xeric landscape design, drought-morphology showcase, arid sculptural planting system - form_and_line: Rosette/columnar plant contrast, gravel swales, dry-runoff channels, low-maintenance clustered masses + aesthetic: Paisaje xerófito de austeridad escultórica y desempeño hídrico explícito. + form_and_line: Contraste de formas roseta/columnar, swales de grava, canales secos y masas agrupadas de bajo mantenimiento. color_palette: Sage Green, Red Earth, Blue Agave, Golden Barrel, Ochre rock, Prickly-pear Magenta fruit - lighting_setup: Hard sun, heat-shimmer, sunset-glow on spines, backlit-agave drama, starfield night - material_texture: Rocks, succulents, decomposed granite, spiny skin, waxy cuticle, rusted steel edge - render_quality: Climate-resilient landscape realism, high botanical morphology clarity, water-wise composition credibility + lighting_setup: Sol duro con shimmer térmico, contraluz de espinas y glow cálido de última hora. + material_texture: Piedra árida, suculenta cerosa, granito descompuesto, espina rígida y borde metálico oxidado. + render_quality: Realismo climático resiliente con morfología botánica precisa y lógica water-wise verificable. spatial_distortion: None - atmosphere: Sun-hardened calm, resilient austerity, low-water elegance - key_features: Agave rosette focals, decomposed-granite mulch, dry creek routing, cactus height cadence, rusted steel edging bands + atmosphere: Calma endurecida por sol, sobriedad resiliente y elegancia de baja demanda hídrica. + key_features: Rosetas focales de agave, mulch mineral, dry creek routing, cadencia de cactus y bandas de acero oxidado. creative_brief: >- - El preset debe mostrar diseño xerófito con criterio técnico: especies de baja - demanda hídrica, suelos drenantes y lectura clara de control de escorrentía. - Busca una belleza austera y táctil, no una postal turística del desierto. + Define una gramática xeriscape transferible donde selección vegetal, drenaje + y escorrentía sean legibles como sistema. Debe transmitir belleza austera y + táctica climática, no estética turística de desierto. avoidRules: - lawn - wet diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-046.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-046.yaml index 4ba70c7e..70c46739 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-046.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-046.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Tropical hospitality leisure architecture, horizon-edge aquatic luxury language, resortscape refinement - form_and_line: Infinity-edge datum alignment, shallow lounge shelf geometry, palm-vertical counterpoints, terrace-water layering + aesthetic: Paisaje-hospitalidad tropical de lujo sereno, con agua y horizonte como eje compositivo principal. + form_and_line: Datum de infinity edge, plataformas someras de lounge, contrapunto vertical de palmeras y capas terraza-agua. color_palette: Turquoise, Palm Green, White cabana, Bougainvillea Pink, Sand Beige, Sky-reflected teal - lighting_setup: Bright sun, underwater glow, tiki-torch amber, fire-pit flicker, sunset-surface shimmer - material_texture: Water, stone, pebble-sheen plaster, pool tile, teak deck, canvas awning - render_quality: Premium hospitality visualization, polished but believable luxury finish, controlled reflective water realism + lighting_setup: Sol intenso diurno, brillo subacuático controlado, ámbar nocturno de antorcha y shimmer de atardecer sobre lámina. + material_texture: Agua reflectante, piedra térmica, revestimiento de piscina, deck de teca y textil exterior de sombra. + render_quality: Visualización hospitality premium con lujo creíble y control físico de reflejo acuático. spatial_distortion: None - atmosphere: Slow-time indulgence, warm-climate serenity, curated escape mood - key_features: Knife-edge overflow line, submerged chaise platforms, cabana shade modules, evening fire accents, tropical planting frame + atmosphere: Indulgencia de ritmo lento, serenidad cálida y escape curado. + key_features: Línea knife-edge, chaises sumergidas, módulos cabana, acentos de fuego y marco vegetal tropical. creative_brief: >- - Construye una gramática de resort de alta gama basada en relación agua-horizonte, - sombras vegetales y materialidad cálida de exterior. Debe sentirse exclusivo y - relajado sin depender de marca, destino o escena turística específica. + Construye una gramática de resort transferible donde relación agua-horizonte, + sombra vegetal y materialidad exterior cálida definan exclusividad relajada. + Debe funcionar sin marca ni destino específico. avoidRules: - cold - city diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-047.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-047.yaml index 7973e25b..fca34452 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-047.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-047.yaml @@ -12,20 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Formal hedge-labyrinth typology, navigational puzzle landscape, clipped-green enclosure architecture - form_and_line: Orthogonal corridor matrix, controlled dead-end cadence, center-seeking path hierarchy, high hedge wall continuity + aesthetic: Tipología de laberinto vegetal formal, basada en desorientación lúdica y cerramiento topiario. + form_and_line: Matriz ortogonal de corredores, dead-ends rítmicos, jerarquía de rutas al centro y continuidad de muros vivos altos. color_palette: Dark Green, Yew-shadow Black, Gravel-path Grey, Statue-stone Cream, Sky ceiling Blue - lighting_setup: Shadowy paths, light-at-end glow, sun-stripe corridor, dappled-floor pattern, mysterious dead-end - material_texture: Leaves, clipped hedge, dense foliage surface, gravel floor, mossy statue, bark-stem wall - render_quality: Precise topiary geometry readability, wayfinding-tension composition, disciplined landscape architecture rendering + lighting_setup: Pasillos en sombra con franjas solares, remates de luz al fondo y patrón moteado sobre grava. + material_texture: Seto densamente podado, hoja compacta, grava de tránsito y acentos de piedra/musgo en nodos. + render_quality: Geometría topiaria precisa con tensión de wayfinding y legibilidad de recorrido. spatial_distortion: None - atmosphere: Curious disorientation, playful anxiety, enclosed progression, destination suspense - key_features: High clipped hedges, junction-node rhythm, gravel route texture, central terminus marker, formal trimming precision + atmosphere: Desorientación curiosa, ansiedad lúdica y progresión cerrada hacia destino incierto. + key_features: Seto alto recortado, ritmo de nodos, textura de ruta en grava y marcador central de terminación. creative_brief: >- - El estilo debe priorizar experiencia de recorrido y pérdida controlada: muros - verdes altos, intersecciones repetidas y orientación progresiva hacia un núcleo. - Mantén legibilidad geométrica y tensión lúdica sin convertirlo en narrativa de - fantasía cerrada. + Define una gramática de laberinto transferible donde pérdida controlada y + lectura geométrica convivan. La tensión debe surgir del recorrido repetitivo + y la contención vegetal, no de narrativa fantástica cerrada. avoidRules: - open field assets: diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-048.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-048.yaml index 2125cbc9..b223722a 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-048.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-048.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - landscape-and-gardens visualDna: - aesthetic: Elevated biophilic-modern terrace style with calm geometric planting composition and hospitality-grade outdoor minimalism - form_and_line: Linear planter modules, low horizontal furniture massing, thin-frame pergola rhythm, softened orthogonal hardscape + aesthetic: Terraza elevada biophilic-modern de minimalismo exterior refinado y plantación geométrica calmada. + form_and_line: Módulos lineales de jardineras, mobiliario bajo horizontal, pergolado ligero y hardscape ortogonal suavizado. color_palette: Desaturated greens, warm mineral neutrals, muted blue-greys, rusted corten accents, low-intensity amber highlights - lighting_setup: Warm twilight gradient with soft practical point-lights and controlled low-contrast edge definition - material_texture: Oiled hardwood decking, matte powder-coated metal, coarse aggregate gravel, woven exterior textile, brushed zinc planters - render_quality: Premium landscape-architecture visualization finish with clean hierarchy, restrained bloom, and tactile material legibility + lighting_setup: Gradiente cálido de twilight con puntuales suaves e identificación de borde de bajo contraste. + material_texture: Deck de madera aceitada, metal mate pintado, grava mineral, textil exterior tejido y jardineras de zinc cepillado. + render_quality: Acabado premium de paisaje con jerarquía limpia, bloom contenido y tactilidad material legible. spatial_distortion: Long-axis compositional pull with shallow vertical compression to preserve terrace layering and planting cadence - atmosphere: Quiet, restorative, refined, breathable, contemplative, design-forward - key_features: Modular planting bands, warm deck planes, integrated ambient lighting, low-profile lounge geometry, material contrast between greenery and hardscape + atmosphere: Silenciosa, restaurativa y contemplativa, con confort respirable de diseño. + key_features: Bandas modulares de plantación, planos cálidos de deck, luz integrada y contraste verde-hardscape. creative_brief: >- - Keep the preset anchored in biophilic terrace language: structured - planting rhythm, restrained luxury materials, and atmospheric calm should - carry the identity without depending on any specific location narrative. + Preserva una gramática rooftop transferible basada en ritmo de plantación, + materialidad sobria de lujo y calma atmosférica. Debe mantener identidad + sin depender de ubicación o skyline específicos. avoidRules: - ground level assets: diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-049.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-049.yaml index ca288fa7..c65b88df 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-049.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-049.yaml @@ -12,20 +12,19 @@ tags: - architecture-and-interior - landscape-and-gardens visualDna: - aesthetic: Championship golf-landscape formalism, high-control turf architecture, leisure-sport topographic curation - form_and_line: Ribboned fairway corridors, bunker-cut parabolas, green contour micro-undulations, routing-driven sightline geometry + aesthetic: Formalismo de campo de golf de alto mantenimiento, donde topografía y estrategia deportiva se codifican en el terreno. + form_and_line: Corredores de fairway en cinta, parábolas de bunker, microondas de green y visuales dirigidas por routing. color_palette: Vibrant Green, Sand, Sky Blue, Pinstripe Mow lines, Water-hazard Teal, Flag Yellow - lighting_setup: Morning mist, low-angle fairway light, golden-hour green glow, dew-sparkle, shadow-bunker drama - material_texture: Short grass, crisp turf, sand, water surface, flagstick, raked-bunker pattern - render_quality: Tournament-grade landscape visualization, precise maintenance readability, high-fidelity sport-terrain legibility + lighting_setup: Neblina de mañana, ángulo bajo sobre fairway, brillo de rocío y dramatismo de sombra en bunker. + material_texture: Césped corto de corte preciso, arena rastrillada, agua lisa de hazard y señalética de bandera de alta visibilidad. + render_quality: Visualización tournament-grade con lectura de mantenimiento y estrategia de juego a distancia. spatial_distortion: None - atmosphere: Controlled calm, competitive focus, curated exclusivity, early-round concentration - key_features: Stripe-mown fairways, edge-defined bunkers, pin-position focality, hazard choreography, route legibility from tee to green + atmosphere: Calma controlada, concentración competitiva y exclusividad curada. + key_features: Franjas de siega, bunkers de borde nítido, focos de pin y coreografía de hazards desde tee a green. creative_brief: >- - Define this preset through golf-course design grammar: disciplined turf - gradients, strategic hazard placement, and route-readability from distance. - Keep the style anchored in precision maintenance and competitive play optics, - not a specific club or tournament narrative. + Define una gramática golf transferible por gradiente de turf, hazards + estratégicos y legibilidad de ruta de juego. Debe comunicar precisión de + mantenimiento y óptica competitiva sin referencia a club concreto. avoidRules: - weeds - forest diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-050.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-050.yaml index 436de89e..45e2cbe9 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-050.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-050.yaml @@ -12,20 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Historic iron-and-glass conservatory typology, botanical-display architecture, climate-controlled plant cathedral - form_and_line: Ribbed glazed vaults, fine cast-iron module repetition, ridge-and-furrow canopy logic, vertical specimen layering + aesthetic: Tipología de glasshouse histórico en hierro y vidrio con lógica de catedral botánica climáticamente controlada. + form_and_line: Bóvedas acristaladas nervadas, repetición modular de hierro colado y capas verticales de espécimen vegetal. color_palette: White, Green, Tropical-flower Magenta, Iron-grey, Glass-reflected Blue, warm Humidity-silver - lighting_setup: Diffused, glasshouse-bright, condensation-prism, rain-on-glass, golden-hour ironwork glow - material_texture: Glass, condensation, cast iron, terracotta tile, tropical bark, giant-leaf surface - render_quality: Museum-grade conservatory rendering with structural clarity, humidity atmosphere control, and specimen readability + lighting_setup: Brillo difuso de invernadero, prismas de condensación, lluvia sobre vidrio y glow cálido sobre herrería. + material_texture: Vidrio húmedo, hierro fundido, baldosa de terracota y textura vegetal tropical de gran hoja. + render_quality: Conservatorio museum-grade con claridad estructural y atmósfera húmeda técnicamente creíble. spatial_distortion: None - atmosphere: Enclosed lushness, humid cultivation calm, curated botanical awe - key_features: Cast-iron lattice bays, condensation-prism glazing, layered tropical canopies, conservatory circulation clarity + atmosphere: Lushness encerrada, calma húmeda de cultivo y asombro botánico curado. + key_features: Bahías de celosía de hierro, vidrio prismático condensado, doseles tropicales en capas y circulación limpia. creative_brief: >- - Build a reusable conservatory language where ironwork precision and dense - botanical growth coexist in a controlled humid envelope. Prioritize - greenhouse structural rhythm, plant-display hierarchy, and atmospheric - moisture cues over landmark-specific storytelling. + Construye una gramática glasshouse transferible donde precisión de herrería, + crecimiento botánico denso y humedad visible coexistan en equilibrio. + Prioriza ritmo estructural y jerarquía de exhibición vegetal sobre landmark. avoidRules: - outdoor assets: diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-051.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-051.yaml index 6ccda100..c16c04fb 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-051.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-051.yaml @@ -12,20 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Elven organic classicism, nature-integrated sanctuary architecture, high-fantasy lyrical refinement - form_and_line: Filigree arch systems, branch-derived colonnades, cascading terrace tiers, flowing non-orthogonal structural curves + aesthetic: Clasicismo élfico orgánico de santuario, con integración biocéntrica y refinamiento lírico de alta fantasía. + form_and_line: Arcos filigranados, columnatas derivadas de ramas, terrazas en cascada y curvas estructurales no ortogonales. color_palette: Autumn Gold, White, Silver Birch, Moss-floor Green, Waterfall Mist, Soft Lavender dusk - lighting_setup: Magical glow, elf-lantern warmth, waterfall-reflected moonlight, star-dome canopy, inner-light radiance - material_texture: Carved stone, leaves, living wood, mother-of-pearl inlay, silver filigree, crystalline light - render_quality: High-fidelity fantasy-environment rendering with handcrafted-biotic integration and timeless ornamental clarity + lighting_setup: Glow etéreo cálido, faroles élficos, reflejo lunar en agua y radiancia interior contenida de carácter ceremonial. + material_texture: Piedra tallada fina, madera viva, inlays nacarados, filigrana plateada y superficies de brillo cristalino. + render_quality: Alta fidelidad fantástica con integración biótica-artesanal y ornamento de lectura precisa. spatial_distortion: None - atmosphere: Sacred refuge, melancholic peace, timeless continuity, elevated wonder - key_features: Water-threaded terraces, arbor-structural fusion, fine bridge tracery, open-air ceremonial halls, star-facing platforms + atmosphere: Refugio sacro, melancolía luminosa y continuidad atemporal. + key_features: Terrazas atravesadas por agua, fusión árbol-estructura, puentes de traza fina y plataformas orientadas al cielo. creative_brief: >- - Keep this preset centered on elven design language: graceful curvature, - biotic-architectural fusion, and luminous serenity should define identity. - Preserve author-specific fantasy elegance while avoiding fixed scene beats - or single-location dependence. + Define una gramática élfica transferible basada en curvatura elegante, + fusión biótica y serenidad luminosa. Debe mantener sofisticación fantástica + sin quedar anclada a una localización única. avoidRules: - industrial - blocky diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-052.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-052.yaml index 7abf814f..82cc300a 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-052.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-052.yaml @@ -12,20 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Subterranean dwarven monumentalism, forge-centric mountain architecture, ancestral stonecraft doctrine - form_and_line: Megalithic pillar grids, chisel-defined mass geometry, rune-banded arches, load-bearing vault heaviness + aesthetic: Monumentalidad enana subterránea, forja central y doctrina ancestral de cantería pesada. + form_and_line: Retículas megalíticas de pilares, geometría de masa cincelada, arcos con bandas rúnicas y bóvedas de gran carga. color_palette: Grey Stone, Gold, Fire, Vein-Metal Copper, Lava Orange, Gem-cluster Ruby, Deep Black - lighting_setup: Lava glow, forge-fire, crystal-lamp amber, torch-bracket rhythm, subterranean orange warmth - material_texture: Hewn stone, chisel-marked granite, hammered gold, molten iron, vein crystal, thick leather - render_quality: Epic fantasy-fortress fidelity with dense material weight, craft-mark readability, and structural gravity + lighting_setup: Brillo de lava y forja, lámparas de cristal ámbar, ritmo de antorchas y calor naranja subterráneo. + material_texture: Granito labrado, marcas de cincel, oro martillado, hierro fundido, vetas cristalinas y cuero denso. + render_quality: Fortaleza épica de alta fidelidad con peso material y gravedad estructural contundente. spatial_distortion: None - atmosphere: Ancestral resilience, forge heat, clan authority, deep-earth solemnity - key_features: Rune-carved support systems, forge-anvil cores, lava heat channels, treasure-vein geology, hall-scale axiality + atmosphere: Resiliencia ancestral, autoridad de clan y solemnidad de tierra profunda. + key_features: Soportes rúnicos, núcleos de forja-yunque, canales térmicos de lava y axialidad de salón monumental. creative_brief: >- - Treat this style as dwarven architectural grammar: massive stone systems, - forge-lit interiors, and rune-encoded craftsmanship must drive identity. - Maintain weight, durability, and lineage cues without hard-locking to a - specific franchise hall. + Construye una gramática enana transferible donde masa pétrea, luz de forja + y oficio rúnico definan identidad. Debe comunicar linaje y durabilidad sin + dependencia de una sala de franquicia concreta. avoidRules: - wood - light diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-053.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-053.yaml index 6b7cc355..9c5d82d0 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-053.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-053.yaml @@ -12,20 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Aerial-fortress romanticism, floating-island megastructure fantasy, skyborne sovereign architecture - form_and_line: Vertiginous spire clusters, suspended landmass tiering, bridge-span void crossings, downward waterfall vectors + aesthetic: Romanticismo de fortaleza aérea con megastructura suspendida y soberanía en altura. + form_and_line: Clústeres de agujas verticales, estratificación de masa flotante, puentes de vacío y vectores de cascada descendente. color_palette: White, Blue sky, Cloud-silver, Golden sun edge, Waterfall-cascade White, Lapis above - lighting_setup: Bright sun, cloud-reflected brilliance, angel-ray beams, blue-sky ambient, golden-edge rim light - material_texture: Stone, clouds, gossamer, crystalline spire, floating rock, wisp-vapor base - render_quality: High-fantasy sky-architecture rendering with atmospheric depth, impossible-engineering coherence, and majestic scale control + lighting_setup: Sol alto, rebote en nubes, rayos volumétricos y rim dorado de borde sobre siluetas suspendidas. + material_texture: Piedra aérea, niebla de base, aristas cristalinas y roca flotante de estrato erosionado. + render_quality: Sky-architecture fantástica con profundidad atmosférica y coherencia de ingeniería imposible. spatial_distortion: Floating rocks - atmosphere: Sublime altitude, impossible calm, wind-driven grandeur, transcendent distance - key_features: Void-bridging spans, cloud-below horizon lines, floating mass undercuts, skyfall waterfalls, aerial silhouette dominance + atmosphere: Sublime de gran altitud, calma improbable y grandeza impulsada por viento. + key_features: Tramos sobre vacío, horizonte con nubes inferiores, undercuts flotantes, cascadas aéreas y silueta dominante. creative_brief: >- - Prioritize floating-castle visual logic through suspended massing, - high-altitude atmosphere, and vertical landmark composition. Keep the - identity in weight-defying architecture and sky-scale wonder rather than a - single named fortress narrative. + Define una gramática de castillo flotante transferible en la que masa + suspendida, atmósfera de gran altitud y verticalidad icónica sostengan la + identidad. Debe evitar dependencia de una fortaleza nombrada. avoidRules: - grounded assets: diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-054.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-054.yaml index 88ce0bfa..9c20fefb 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-054.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-054.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Hyper-dense techno-brutalist residential style focused on vertical compression, improvised modularity, and infrastructural overload - form_and_line: Repeating module stacks, cable-bundle diagonals, service-ladder zigzags, grille and shutter rhythms, fragmented light channels + aesthetic: Residencial techno-brutalista de compresión vertical extrema y sobrecarga infraestructural persistente. + form_and_line: Apilamiento modular repetitivo, diagonales de cableado, escaleras de servicio zigzagueantes y canales de luz fragmentados. color_palette: Carbon blacks, oxidized rust browns, toxic greens, sign-magenta accents, smoggy blue-greys, low-luminance neon tints - lighting_setup: Persistent artificial spill, flicker-prone practicals, hard occlusion pockets, wet-surface micro-reflections, narrow contrast windows - material_texture: Corrugated steel fatigue, polymer grime bloom, layered paint peel, stained concrete, oxidized fastener patina, damp residue - render_quality: High-detail architectural dystopia rendering with clutter legibility, controlled noise, and material density realism + lighting_setup: Derrame artificial continuo, prácticos inestables, oclusión dura y microreflejos húmedos de contraste estrecho. + material_texture: Acero corrugado fatigado, polímero con mugre incrustada, pintura pelada en capas y hormigón manchado. + render_quality: Densidad distópica de detalle alto, clutter legible y ruido visual controlado. spatial_distortion: Vertical stacking exaggeration with narrow depth corridors and compressed breathing-space intervals - atmosphere: Oppressive, overbuilt, unstable, electrically saturated, survivalist - key_features: Modular stack logic, exposed service infrastructure, cable congestion patterns, degraded industrial surfaces, constrained circulation geometry + atmosphere: Opresiva, sobreconstruida e inestable, con saturación eléctrica de supervivencia. + key_features: Lógica de stack modular, servicios expuestos, congestión de cables, superficies degradadas y circulación constreñida. creative_brief: >- - Preserve the style as a system of compression and infrastructural excess: - the visual identity must emerge from modular density, material wear, and - electric clutter rather than a specific named district. + Construye una gramática slum-cyber transferible en la que densidad modular, + desgaste material y clutter eléctrico definan identidad. Debe sentirse + estructuralmente comprimida, no meramente sucia o caótica. avoidRules: - clean - wide streets diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-055.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-055.yaml index 7d5eb528..c684e497 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-055.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-055.yaml @@ -12,20 +12,19 @@ tags: - architecture-and-interior - landscape-and-gardens visualDna: - aesthetic: Confectionery urban fantasy, edible-architecture surrealism, high-whimsy sugarcraft environment language - form_and_line: Soft rounded massing, candy-column repetition, piped-icing ornament bands, dessert-object modular forms + aesthetic: Fantasía confitera urbana de surrealismo comestible y arquitectura de azúcar modular. + form_and_line: Masas redondeadas blandas, columnas candy repetitivas y bandas ornamentales de glaseado. color_palette: Pink, Pastel, Candy-apple Red, Gumdrop Green, Marshmallow White, Licorice Black - lighting_setup: Soft sugar glow, candy-store warm, frosting-sparkle, gumdrop-translucent, sugar-crystal shimmer - material_texture: Frosting, cake, hard candy shell, marshmallow, wafer, spun-sugar web, chocolate drip - render_quality: Stylized high-saturation fantasy rendering with material-edibility cues and playful structural coherence + lighting_setup: Glow cálido de confitería, brillos de frosting, translucidez gumdrop y destellos de cristal de azúcar. + material_texture: Glaseado, bizcocho, caramelo duro, malvavisco, oblea y hilos de azúcar estirada. + render_quality: Fantasía estilizada de saturación alta con coherencia lúdica de material comestible. spatial_distortion: Melting - atmosphere: Playful excess, cheerful surrealism, hyper-sweet escapism - key_features: Icing-ornament facades, gumdrop route markers, sprinkle particulate accents, candy-cane structural motifs, syrup-flow features + atmosphere: Exceso lúdico, surrealismo alegre y escapismo hiper-dulce. + key_features: Fachadas de icing, marcadores gumdrop, acentos sprinkle y motivos estructurales candy-cane. creative_brief: >- - Build this preset as a confectionery design system: edible materials, - playful ornament, and bright sugar-coded contrast should define the style. - Keep it whimsical and modular so subjects can change while the candy - architecture identity stays unmistakable. + Define una gramática candy transferible con materialidad comestible, + contraste cromático de azúcar y modularidad juguetona. Debe mantener + identidad inequívoca sin fijarse en un cuento o reino concreto. avoidRules: - scary - realistic diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-056.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-056.yaml index 7b7f322f..a3fd169e 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-056.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-056.yaml @@ -12,20 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Submerged metropolis retro-futurism, art-deco abyss architecture, drowned-utopia monumental decay - form_and_line: Pressure-dome clusters, glass transit arteries, deco verticals, ring-hub circulation geometry, leak-path fractures + aesthetic: Metrópolis sumergida retrofuturista con deco abisal y decadencia monumental reclamadas por el mar. + form_and_line: Clústeres de domos de presión, arterias vítreas de tránsito, verticales deco y fracturas por filtración. color_palette: Blue, Gold, Biolum, Coral Pink, Seaweed Green, Rust-orange decay, Gleaming Brass - lighting_setup: Water filtered, blue-ambient abyss, bioluminescent constellation, dome-interior gold glow, emergency red - material_texture: Wet stone, glass, copper-green patina, coral-encrust, riveted brass, leaking concrete - render_quality: Cinematic underwater-city fidelity with pressure-aware detail, deco readability, and ruin-overgrowth balance + lighting_setup: Filtro acuático azul profundo, constelaciones bioluminiscentes y contraste entre glow dorado interior y alarma roja. + material_texture: Piedra mojada, vidrio presurizado, pátina cobre-verde, coral incrustado y hormigón con fugas. + render_quality: Ciudad submarina cinematográfica con detalle de presión, legibilidad deco y balance ruina-colonización biológica. spatial_distortion: None - atmosphere: Pressurized awe, elegiac decline, silent grandeur, abyssal melancholy - key_features: Deco-metal motifs, dome leak signatures, coral colonization layers, biolum wayfinding accents, bathysphere interface docks + atmosphere: Asombro presurizado, melancolía abisal y grandeza silenciosa en declive. + key_features: Motivos deco metálicos, firmas de fuga, capas de coralización y wayfinding bioluminiscente. creative_brief: >- - Anchor the style in art-deco underwater urbanism: elegant geometric - infrastructure under pressure, marine reclamation, and luminous deep-sea - ambience. Preserve the lost-civilization tone without locking to a single - fictional city. + Formula una gramática underwater-deco transferible donde infraestructura + elegante bajo presión y reclamación marina definan la identidad. Debe + preservar tono de civilización perdida sin ciudad ficticia fija. avoidRules: - sky - dry diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-057.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-057.yaml index 35613b34..a32414f0 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-057.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-057.yaml @@ -12,20 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Neo-Victorian industrial futurism, brass-and-steam metropolis language, speculative imperial machinery urbanism - form_and_line: Gear-and-pipe lattice networks, chimney skyline cadence, clocktower landmarks, dirigible-port arches, flywheel silhouettes + aesthetic: Futurismo industrial neo-victoriano de metrópolis a vapor y maquinaria urbana especulativa. + form_and_line: Redes de engranaje/tubería, cadencia de chimeneas, hitos de reloj y arcos para tráfico de dirigibles. color_palette: Bronze, Brick, Smoke, Copper patina, warm Gaslight Yellow, Coal Black, Brass-bright - lighting_setup: Gaslight, warm amber street-glow, gear-spark, hissing steam-vent light, amber window, smog-diffused - material_texture: Metal, brick, riveted copper, wood panel, leather, steam-whistle brass, soot-coat - render_quality: High-detail steampunk city rendering with mechanical plausibility, atmospheric soot layering, and retro-industrial readability + lighting_setup: Gaslight ámbar, glow callejero difuso en smog, chispas mecánicas y ventilación de vapor visible. + material_texture: Metal y ladrillo, cobre remachado, panel de madera, cuero y depósito de hollín en superficie. + render_quality: Ciudad steampunk de detalle alto con plausibilidad mecánica y legibilidad retroindustrial. spatial_distortion: None - atmosphere: Industrious momentum, smoky ambition, engineered spectacle, retro-progress anxiety - key_features: Steam-vent rhythm, brass conduit runs, clockwork facade motifs, boiler infrastructure nodes, airship traffic cues + atmosphere: Impulso industrial, ambición ahumada y espectáculo de progreso ansioso. + key_features: Ritmo de venteo, conducciones de latón, fachadas clockwork, nodos de caldera y señales de tráfico aéreo. creative_brief: >- - Preserve steampunk identity through mechanical urban systems: steam - infrastructure, brass articulation, and Victorian-derived form language. - Keep the world inventive and dense, but reusable beyond any one city or - literary reference. + Define una gramática steampunk transferible por infraestructura de vapor, + articulación en latón y forma neo-victoriana. Debe ser densa e inventiva + sin depender de ciudad o referencia literaria única. avoidRules: - clean energy assets: diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-058.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-058.yaml index 4d8f021c..9aff9c5f 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-058.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-058.yaml @@ -12,20 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Crystalline megastructure fantasy, geologic-growth architecture, mineral monolith futurism - form_and_line: Faceted vertical stacks, hex-column bundles, shard convergence vectors, prismatic apex geometry + aesthetic: Megaestructura cristalina de crecimiento geológico y futurismo mineral monolítico. + form_and_line: Apilamientos facetados verticales, haces hexagonales y convergencias prismáticas hacia ápice agudo. color_palette: Purple/Blue/White, Amethyst, Sapphire, Diamond-spark, Deep Crystal Violet, Iridescent flash - lighting_setup: Internal refraction, rainbow-dispersion, inner-glow core, facet-edge brilliance, dark-crystal depth - material_texture: Glassy, mineral crystal, gemstone face, translucent depth, faceted surface, amethyst geode - render_quality: High-clarity crystal-architecture rendering with refraction-coherent light behavior and gemstone-scale precision + lighting_setup: Refracción interna intensa, dispersión espectral, núcleo autoiluminado y bordes de faceta de alto brillo. + material_texture: Cristal vítreo, caras gema, profundidad translúcida y geodas de amatista de microdetalle. + render_quality: Arquitectura cristalina de alta claridad con óptica coherente y precisión mineral de escala monumental. spatial_distortion: None - atmosphere: Luminous stillness, cold awe, otherworld elegance, mineral transcendence - key_features: Refraction-edged facet planes, translucent depth cores, prism-spire silhouette, internal glow strata, geode-scale detailing + atmosphere: Quietud luminosa, asombro frío y elegancia mineral de otro mundo. + key_features: Planos facetados refractivos, núcleos translúcidos, silueta de aguja prismática y estratos de brillo interno. creative_brief: >- - Treat this preset as crystal-growth architecture language: faceted geometry, - translucent mass, and optical dispersion should carry the identity. Keep - forms precise and majestic, with geological logic that remains reusable - across fantasy or sci-fi settings. + Construye una gramática cristalina transferible donde geometría facetada, + masa translúcida y dispersión óptica sostengan la identidad. Debe conservar + lógica geológica reutilizable en contextos fantasy o sci-fi. avoidRules: - brick - wood diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-059.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-059.yaml index 557b9a97..8ca8e4ee 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-059.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-059.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Earth-sheltered pastoral cottage language focused on circular thresholds, hillside integration, and humble handcrafted domesticity with Shire-like warmth - form_and_line: Dominant circular apertures, low bermed roof profiles, gently arched corridors, soft radial room planning, and meandering garden approach lines + aesthetic: Domesticidad pastoral semienterrada de escala humana, con umbrales circulares y calidez artesanal cotidiana. + form_and_line: Aberturas redondas dominantes, cubierta bermada baja, corredores arqueados suaves y planificación radial íntima. color_palette: Moss green, weathered timber brown, loam umber, butter-cream plaster, muted brass highlights, warm terracotta accents, soft wildflower notes - lighting_setup: Hearth-led amber key light, low window spill, lantern practicals, diffuse afternoon bounce, and mild tunnel falloff to preserve intimate depth - material_texture: Turf roof matting, hand-planed timber, lime-clay plaster, worn flagstone, brushed brass hardware, woven natural fibers, and herb-garden edges - render_quality: Storybook residential realism with tactile handcrafted detail, cozy volumetric softness, and restrained fantasy charm anchored in lived-in function + lighting_setup: Clave cálida de hogar, spill bajo de ventana, prácticos de linterna y rebote difuso de tarde. + material_texture: Cubierta de césped, madera cepillada a mano, revoco de cal-arcilla, piedra gastada y latón cepillado. + render_quality: Realismo de cuento doméstico con tactilidad artesanal y encanto fantástico contenido por función vivida. spatial_distortion: None - atmosphere: Protected, domestic, pastoral, intimate, slow-living, and quietly celebratory of everyday ritual - key_features: Circular front door with centered brass hardware, integrated sod roofline, rounded window set, compact hearth core, curved joinery, and pantry-forward kitchen detailing + atmosphere: Protegida, íntima y celebratoria de rituales cotidianos de vida lenta. + key_features: Puerta circular con herraje central, línea de cubierta vegetal, ventanas redondeadas y núcleo compacto de hogar-cocina. creative_brief: >- - Preserve a reusable grammar of earth-sheltered circular domestic architecture: - low bermed massing, round apertures, warm handcrafted interiors, and - garden-integrated transitions should define the style across subjects. + Define una gramática hobbit transferible de arquitectura semienterrada, + umbral circular y artesanía cálida. Debe mantener intimidad pastoral y + funcionalidad doméstica sin depender de personaje o escena concreta. avoidRules: - square - tall diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-060.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-060.yaml index b25fc9a1..872f027a 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-060.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-060.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Retro TV cartoon haunted-manor language blending playful menace, exaggerated architecture, and Saturday-morning mystery energy in the Scooby-Doo tradition - form_and_line: Canted verticals, bowing roof ridges, asymmetrical shutter rhythm, warped fenestration, and elastic silhouette curves with readable inked outlines + aesthetic: Mansión embrujada cartoon retro, con amenaza juguetona y exageración arquitectónica de lectura inmediata. + form_and_line: Verticales inclinadas, cubiertas combadas, vanos deformados y silueta elástica con contorno gráfico claro. color_palette: Moonlit violet, toxic-lime accents, charcoal black, desaturated pumpkin orange trim, pale spectral ivory, and deep indigo shadow pools - lighting_setup: Intermittent lightning keys, cool moon backlight, selective window glow, high-contrast cel-shadow blocks, and storm-driven rim flashes - material_texture: Flat painted clapboard planes, stylized ink contouring, limited cel-shaded gradients, simplified weathered timber motifs, and graphic silhouette props - render_quality: Clean 2D-cartoon readability with nostalgic TV-era finish, high shape clarity, controlled texture minimalism, and playful spooky tone + lighting_setup: Keys de relámpago intermitente, contraluz lunar frío, ventanas selectivas brillantes y bloques cel-shade de alto contraste. + material_texture: Planos pintados flat, contorno entintado, gradientes limitados y motivos de madera simplificada de estilo TV. + render_quality: Lectura 2D limpia con nostalgia televisiva, claridad de forma alta y terror lúdico no realista. spatial_distortion: Face in window - atmosphere: Campy, eerie, mischievous, nostalgic, theatrical, and suspenseful without realistic horror intensity - key_features: Leaning manor profile, zig-zag lightning motifs, crescent or full moon framing, bat silhouettes, twisted foreground trees, iron gate rhythm, and bright window pops + atmosphere: Campy, traviesa y teatral, con suspenso amable sin violencia realista. + key_features: Perfil de mansión inclinada, relámpagos zigzag, luna enmarcante, siluetas de murciélago, árboles retorcidos y gate rhythm. creative_brief: >- - Keep the preset anchored in stylized cartoon-haunt grammar: exaggerated - crooked architecture, storm-lit silhouette contrast, and playful spooky - staging should remain consistent while avoiding realistic horror rendering. + Formula una gramática haunted-cartoon transferible donde arquitectura torcida, + contraste de tormenta y staging spooky lúdico se mantengan constantes. Debe + evitar por completo el horror realista y sostener legibilidad gráfica. avoidRules: - scary realistic assets: diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-061.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-061.yaml index 24ee87fb..998565ca 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-061.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-061.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Regal cryomorphic palace language built from faceted ice architecture, glacial monumentality, and pristine winter-fantasy elegance - form_and_line: Needle spires, crystalline buttresses, icicle colonnades, stepped frozen terraces, high pointed arches, and frost-lattice ornamentation + aesthetic: Palacial criomórfico de monumentalidad glacial, con elegancia invernal soberana y pureza cristalina. + form_and_line: Agujas de hielo, arbotantes facetados, columnatas de carámbano y terrazas congeladas en gradación vertical. color_palette: Glacier white, polar cyan, pale sapphire blue, aurora mint, deep teal shadow, and prismatic diamond highlights - lighting_setup: Subsurface ice transmission, aurora-inspired ambient wash, moonlit edge accents, crisp snow bounce, and controlled high-specular sparkle - material_texture: Polished ice planes, frosted crystalline grain, rime buildup, compacted snow embankments, translucent glacial slabs, and faceted crystal detailing - render_quality: High-fidelity winter fantasy rendering with sharp refractive definition, disciplined cold tonality, and cathedral-scale clarity + lighting_setup: Transmisión subsuperficial en hielo, wash auroral, acentos lunares de borde y rebote nítido sobre nieve compacta. + material_texture: Planos de hielo pulido, grano cristalino escarchado, acumulación de cencellada y losas glaciales translúcidas. + render_quality: Fantasía invernal de alta fidelidad con refracción precisa y claridad monumental de escala catedralicia. spatial_distortion: None - atmosphere: Sovereign, austere, luminous, silent, enchanted, and distinctly subzero in emotional temperature - key_features: Crystal vault halls, icicle colonnade cadence, frozen throne focal node, refractive stair masses, aurora-reactive interior glow, and sculpted ice bridges + atmosphere: Soberana, austera y silenciosa, con temperatura emocional subcero. + key_features: Salas abovedadas de cristal, cadencia de columnata helada, nodo de trono congelado y puentes de hielo esculpido. creative_brief: >- - Maintain a reusable ice-palace grammar: faceted crystalline massing, - refractive cold-light behavior, and regal winter monumentality should stay - consistent regardless of subject composition. + Define una gramática reusable de palacio de hielo donde masa facetada, + óptica fría refractiva y monumentalidad regia sostengan identidad en + cualquier composición. avoidRules: - warm - fire diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-062.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-062.yaml index 169e351c..d809ed56 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-062.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-062.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Arboreal tribal settlement language with elevated canopy dwellings, handcrafted organic engineering, and Endor-inspired communal treetop living - form_and_line: Circular platform hubs, tensile rope catenaries, trunk-embracing ring structures, ladder diagonals, and layered vertical circulation across canopy tiers + aesthetic: Asentamiento tribal arbóreo de vida comunal elevada con ingeniería orgánica artesanal en copa forestal. + form_and_line: Hubs circulares, catenarias de cuerda, anillos abrazatroncos y circulación vertical por niveles de dosel. color_palette: Redwood brown, moss green, rope tan, bark gray, filtered canopy gold, and muted ember accents for night signaling - lighting_setup: Dappled leaf-filtered daylight, warm hanging lantern practicals, soft campfire bounce, sunset scatter through branches, and low-contrast nocturnal glow - material_texture: Rough-hewn timber, braided rope fiber, woven thatch panels, bark-integrated supports, vine lashings, hide accents, and weather-softened wood grain - render_quality: Adventure-ready handcrafted realism with strong natural integration, legible vertical depth, and modest tribal-tech detailing + lighting_setup: Luz moteada filtrada por hojas, prácticos cálidos colgantes, rebote de fogata y glow nocturno de bajo contraste. + material_texture: Madera desbastada, fibra de cuerda trenzada, paneles de paja tejida y amarres vegetales sobre soportes de corteza. + render_quality: Realismo artesanal aventurero con integración arbórea legible y profundidad vertical consistente. spatial_distortion: None - atmosphere: Communal, resourceful, elevated, ecological, vigilant, and gently ceremonial - key_features: Interlinked rope bridges, radial treetop platforms, trunk-clamped walkways, lookout nests, rope-ladder transitions, thatched hut clusters, and suspended lantern chains + atmosphere: Comunal, ingeniosa y vigilante, con ritualidad suave de hábitat ecológico. + key_features: Puentes de cuerda enlazados, plataformas radiales, pasarelas ceñidas al tronco y nidos de observación elevados. creative_brief: >- - Preserve a style grammar of canopy-native tribal architecture: elevated - wooden platforms, rope-suspension circulation, and full structural respect - for living trees should define the preset across different scenes. + Construye una gramática tribal-canopy transferible basada en plataformas + elevadas, suspensión por cuerda y respeto estructural al árbol vivo, sin + fijarse a una escena concreta. avoidRules: - metal assets: diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-063.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-063.yaml index 20d67cc6..59b82846 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-063.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-063.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Monumental funerary urbanism defined by sepulchral grandeur, ritual geometry, and necromantic civic order at megalopolis scale - form_and_line: Obelisk-dominant axial planning, stepped mausoleum masses, repetitive crypt grids, sarcophagus colonnades, and severe pointed skyline rhythm + aesthetic: Urbanismo funerario monumental con grandeza sepulcral y orden cívico necromántico de escala megalópolis. + form_and_line: Axialidad dominada por obeliscos, mausoleos escalonados, retículas de criptas y skyline severo de puntas rituales. color_palette: Black basalt, bone-white marble, oxidized bronze, dim funerary gold, spectral green haze, and bruised violet shadow fields - lighting_setup: Low underlit crypt glow, pallid moon diffusion, selective soul-lantern accents, volumetric cemetery fog, and ember-like rune highlights - material_texture: Weather-eaten stone blocks, cracked marble facings, oxidized iron gates, ash-coated paving, carved ossuary reliefs, and eroded funerary inscriptions - render_quality: High-detail dark-fantasy architectural rendering with disciplined tonal restraint, monumental readability, and oppressive atmospheric layering + lighting_setup: Glow bajo de cripta, difusión lunar pálida, acentos de farol espectral y niebla volumétrica de cementerio. + material_texture: Sillería erosionada, mármol fisurado, rejas oxidadas, pavimento ceniciento y relieves osarios tallados. + render_quality: Dark fantasy arquitectónica de alto detalle con contención tonal y lectura monumental opresiva. spatial_distortion: None - atmosphere: Solemn, oppressive, ritualistic, haunted, and acoustically muted as if sound itself were entombed - key_features: Processional obelisk avenues, stacked crypt terraces, sarcophagus field repetition, necro-rune wayfinding, skull-derived ornament systems, and monument-scale mausoleum gates + atmosphere: Solemne, ritualista y opresiva, con silencio acústico de enclave enterrado. + key_features: Avenidas procesionales de obeliscos, terrazas de criptas apiladas, wayfinding rúnico y portones de mausoleo masivo. creative_brief: >- - Keep the preset driven by funerary megacity grammar: axial tomb planning, - obelisk hierarchy, and spectral low-light atmosphere should remain - structurally consistent across compositions. + Formula una gramática de necrópolis transferible donde jerarquía obeliscal, + planificación axial de tumbas y baja luz espectral definan identidad de + forma consistente entre composiciones. avoidRules: - life - lush vegetation diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-064.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-064.yaml index 19409f61..cb0aeebb 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-064.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-064.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: High-altitude retrofuturist cloud-city language balancing luxury hospitality modernism, buoyant megastructure poise, and serene aerostat urban identity - form_and_line: Layered circular platforms, streamlined deck curvature, tapered spire fins, dome-capped nodes, and clean concentric circulation rings suspended in open vertical airspace + aesthetic: Metrópolis nubosa retrofuturista de gran altitud, entre lujo modernista y equilibrio aerostático sereno. + form_and_line: Plataformas circulares estratificadas, cubiertas aerodinámicas curvadas, aletas de aguja y anillos concéntricos suspendidos. color_palette: Sunset amber haze, pearl ivory superstructures, rose-gold cloud gradients, muted champagne metallics, and cool silver edge highlights - lighting_setup: Horizon-diffused key ambiance, soft beacon markers, warm atmospheric backscatter, restrained skylight reflections, and controlled high-altitude bloom - material_texture: Satin alloy cladding, polished composite skins, low-grain glass panels, precision seam articulation, and immaculate deck surfaces with minimal weathering - render_quality: Premium cinematic speculative-architecture rendering with disciplined polish, high legibility at distance, and elegant atmospheric separation between tiers + lighting_setup: Ambiente difuso de horizonte, balizas suaves, backscatter cálido y bloom controlado en atmósfera de altura. + material_texture: Revestimiento de aleación satinada, piel compuesta pulida, vidrio de grano bajo y costuras de precisión. + render_quality: Arquitectura especulativa premium, legible a distancia y separada por capas atmosféricas elegantes. spatial_distortion: Emphasize stacked floating tier depth, long vertical voids, and gentle perspective curvature without surreal deformation - atmosphere: Refined, tranquil, aspirational, elevated, diplomatic, and technologically graceful - key_features: Concentric cloud-platform hierarchy, dome terminal clusters, beacon-lit approach lanes, tibanna-tinted sky gradients, and pristine metallic contour language + atmosphere: Refinada, tranquila y aspiracional, con gracia tecnológica diplomática. + key_features: Jerarquía de plataformas concéntricas, clústeres terminales en domo, carriles de aproximación balizados y contorno metálico prístino. creative_brief: >- - Keep the preset anchored in Bespin-like cloud-metropolis grammar: - floating concentric urban tiers, warm sunset atmosphere, and polished - retrofuturist luxury surfaces must stay recognizable across subjects. + Define una gramática cloud-metropolis transferible de tiers flotantes, + atmósfera cálida de ocaso y superficies retrofuturistas pulidas, evitando + dependencia de una ciudad licenciada específica. avoidRules: - ground assets: diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-065.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-065.yaml index d1cbbb4b..cf26da6c 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-065.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-065.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Papercraft urban miniature language centered on folded construction logic, diorama layering, and handcrafted architectural model sensibility - form_and_line: Crisp cut-edge silhouettes, scored fold hinges, tab-locked joints, stepped pop-up planes, and shallow stacked depth cues + aesthetic: Miniatura urbana papercraft basada en lógica de pliegue, estratificación de diorama y sensibilidad de maqueta hecha a mano. + form_and_line: Siluetas de corte nítido, bisagras marcadas, uniones por pestaña y planos pop-up en profundidad baja apilada. color_palette: Off-white paper stock, kraft brown board, neutral newsprint gray, pastel card inserts, tracing-paper translucency, and muted pigment accents - lighting_setup: Soft tabletop key, directional shadow cuts from paper edges, low-contrast fill, and subtle translucency glow through thin sheet layers - material_texture: Visible paper fiber, card-stock tooth, scored crease memory, cut-edge fuzz, dried glue seams, and matte bristol finish - render_quality: High-clarity handcrafted miniature rendering with delicate construction detail, controlled scale cues, and intentionally non-photoreal material behavior + lighting_setup: Key de mesa suave, sombras direccionales por cantos de papel y glow tenue por translucidez de láminas finas. + material_texture: Fibra visible, diente de cartulina, memoria de pliegue, pelusa de corte y costuras secas de pegamento mate. + render_quality: Miniatura artesanal de alta claridad con escala controlada y materialidad deliberadamente no fotoreal. spatial_distortion: None - atmosphere: Delicate, patient, precise, contemplative, and visibly hand-assembled - key_features: Exposed fold-score lines, tab-and-slot joins, layered façade planes, miniature street depth stacking, paper-edge shadow rhythm, and matte handmade finish + atmosphere: Delicada, paciente y contemplativa, con ensamblaje manual explícito. + key_features: Líneas de score expuestas, uniones tab-slot, fachadas por capas y ritmo de sombra en borde de papel. creative_brief: >- - Keep this preset defined by papercraft construction grammar: folded planar - architecture, exposed assembly seams, and miniature diorama depth should - remain consistent and transferable across subjects. + Mantén una gramática papercraft transferible donde arquitectura planar + plegada, costuras visibles y profundidad de diorama definan identidad en + múltiples sujetos. avoidRules: - realistic assets: diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-066.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-066.yaml index abcad96d..def9e482 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-066.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-066.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Brick-built toy-city language based on modular ABS construction, stud-visible assembly logic, and playful engineered urban composition - form_and_line: Orthogonal stud grid, stepped block massing, interlocking corner bonds, repeated module cadence, and clean toy-scale geometry transitions + aesthetic: Ciudad toy brick-built con ensamblaje modular ABS, lógica stud-visible y urbanismo lúdico de ingeniería simplificada. + form_and_line: Retícula ortogonal de studs, masa escalonada por bloques, trabas de esquina y transición geométrica de escala juguete. color_palette: Saturated primary red-yellow-blue, bright green accents, neutral black-white-gray balancing blocks, and occasional transparent-plastic highlight tones - lighting_setup: Broad diffuse indoor key light with crisp plastic speculars, stud-top highlight clustering, and low-roughness reflections across molded surfaces - material_texture: Injection-mold ABS sheen, circular stud caps, seamline joints, smooth slope-piece transitions, and subtle tooling marks typical of toy bricks - render_quality: High-readability toy-architecture rendering with precise modular assembly, glossy material fidelity, and deliberate non-realistic block abstraction + lighting_setup: Key difusa amplia de interior, especulares plásticas nítidas y agrupaciones de highlight sobre coronas stud. + material_texture: Brillo ABS inyectado, tapas circulares, juntas de pieza, transiciones slope y marcas leves de moldeo. + render_quality: Toy-architecture de lectura alta con ensamblaje preciso y abstracción de bloque no realista deliberada. spatial_distortion: None - atmosphere: Energetic, constructive, optimistic, playful, and system-driven - key_features: Visible stud fields, baseplate-aligned footprints, modular façade stacking, interlocking brick seams, toy-scale proportion logic, and bright plastic color blocking + atmosphere: Energética, constructiva y optimista, guiada por sistema modular. + key_features: Campos de studs visibles, huellas alineadas a baseplate, apilado de fachada, seams interlock y color blocking plástico intenso. creative_brief: >- - Preserve a reusable brick-built grammar: stud-first modular geometry, - glossy ABS material response, and color-blocked toy urbanism should remain - stable across any subject. + Construye una gramática brick-built reusable con geometría modular por + stud, respuesta plástica ABS brillante y color blocking consistente en + cualquier sujeto. avoidRules: - smooth - realistic diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-067.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-067.yaml index d1599bd0..d96b99fb 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-067.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-067.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Ephemeral littoral architecture language built from wet-sand sculpting, tidal vulnerability, and playful improvised fortress typologies - form_and_line: Bucket-cast cylindrical towers, drip-formed verticals, scalloped parapets, concentric moat cuts, and soft-edged erosion-prone contours + aesthetic: Arquitectura litoral efímera modelada en arena húmeda con vulnerabilidad mareal y fortificación lúdica improvisada. + form_and_line: Torres cilíndricas de molde-balde, verticales por goteo, parapetos festoneados y contornos blandos propensos a erosión. color_palette: Dry sand beige, wet umber brown, shell off-white, sunlit shore gold, driftwood gray, and muted sea-glass accents - lighting_setup: Hard coastal daylight, reflected water shimmer, low-angle beach shadows, slight marine haze, and bright specular micro-highlights on damp surfaces - material_texture: Granular sand aggregation, compacted wet-sand crust, drip-strand ridges, shell inclusions, pebble interruptions, and erosion-softened edges - render_quality: High-detail transient-sculpture rendering emphasizing granular fidelity, controlled collapse cues, and intentionally impermanent structural character + lighting_setup: Daylight costero duro, shimmer de agua reflejada, sombras bajas de playa y microespeculares en superficie húmeda. + material_texture: Agregación granular de arena, costra compactada, crestas de goteo, inclusiones de concha y bordes suavizados por desgaste. + render_quality: Escultura transitoria de detalle alto con fidelidad granular y señales de colapso controlado. spatial_distortion: Crumbling - atmosphere: Sunlit, playful, fragile, tactile, and shaped by imminent natural decay - key_features: Drip-cast turret profiles, bucket-mold repeat modules, carved moat channels, crenelated sand ridges, shell inlay accents, and visible tidal wear lines + atmosphere: Soleada, táctil y frágil, condicionada por decadencia natural inminente. + key_features: Perfiles de torreta por goteo, módulos repetidos de balde, canales de foso, crestas almenadas y líneas de desgaste de marea. creative_brief: >- - Keep the style anchored in wet-sand construction grammar: granular - material behavior, bucket-cast geometry, and erosion-prone ephemeral - forms should define outputs across varied subjects. + Mantén una gramática reusable de construcción en arena húmeda donde + geometría de molde, comportamiento granular y erosión visible definan el + estilo en sujetos variados. avoidRules: - stone assets: diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-068.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-068.yaml index 1d5afa54..89192cbb 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-068.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-068.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Improvised domestic fortification language using recycled cardboard modules, taped joints, and playful hand-marked make-believe architecture - form_and_line: Stacked box orthogonals, flap-derived overhangs, taped seam traces, hand-cut aperture geometry, and uneven hand-built silhouette breaks + aesthetic: Fortificación doméstica improvisada en cartón reciclado con unión visible y fantasía manual de bajo recurso. + form_and_line: Ortogonales de cajas apiladas, voladizos de solapa, trazas de cinta y aperturas recortadas a mano. color_palette: Kraft cardboard brown, packing-tape tan, marker black linework, wax-crayon accent colors, label-white patches, and soft fabric neutrals - lighting_setup: Warm indoor ambient base, practical lamp spill, flashlight hotspot accents, cloth-filtered bounce, and low-contrast enclosed interior glow - material_texture: Corrugated edge channels, fibrous kraft surfaces, glossy tape strips, marker bleed, waxy crayon marks, and draped textile canopy folds - render_quality: Handcrafted low-tech realism with visible assembly imperfections, tactile recycled-material detail, and nostalgic child-builder authenticity + lighting_setup: Base cálida interior, spill de lámpara, hotspots de linterna y rebote filtrado por manta en contraste bajo. + material_texture: Canales corrugados, superficie kraft fibrosa, cinta brillante, bleed de marcador y trazas cerosas de crayón. + render_quality: Realismo low-tech artesanal con imperfección de ensamblaje y tactilidad reciclada nostálgica. spatial_distortion: Sagging - atmosphere: Inventive, scrappy, cozy, playful, temporary, and proudly homemade - key_features: Exposed corrugated cut edges, tape-reinforced joints, flap roofs, hand-drawn marker ornament, crayon aperture motifs, and soft blanket canopy closures + atmosphere: Ingeniosa, cozy y temporal, orgullosamente homemade. + key_features: Canto corrugado expuesto, juntas reforzadas con cinta, cubiertas de solapa, ornamento a marcador y cierres blandos textiles. creative_brief: >- - Preserve a reusable cardboard-fort grammar: recycled box massing, visible - tape assembly logic, and hand-drawn childlike detailing should remain the - defining identity independent of scene content. + Define una gramática reusable de cardboard-fort basada en masa de cajas, + lógica de ensamble con cinta y detalle manual infantil, sin depender del + contenido narrativo de escena. avoidRules: - solid wall assets: diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-069.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-069.yaml index 2fb30630..4081e2a6 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-069.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-069.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Play-structure inflatable architecture language with pressurized soft-volume massing, carnival color blocking, and temporary-event spatial identity - form_and_line: Bulging pneumatic tubes, welded panel segmentation, rounded turret lobes, soft crenellation bumps, and hose-fed anchoring geometry + aesthetic: Arquitectura inflable de juego con masa blanda presurizada, color blocking festivo y espacialidad de evento temporal. + form_and_line: Tubos neumáticos abultados, segmentación soldada, lóbulos redondeados de torre y geometría de anclaje por manguera. color_palette: High-saturation vinyl pink, electric yellow, safety orange, cobalt blue, bright green, and neutral seam-strip accents - lighting_setup: Outdoor diffuse sun with strong vinyl specular hits, translucent panel glow, localized party practicals, and subtle subsurface edge bloom - material_texture: Glossy PVC skin, heat-weld seam ridges, taut inflated membranes, wrinkle transitions at load points, nylon tie-down details, and blower-interface fittings - render_quality: Toy-like yet structurally legible inflatable rendering with high material fidelity, controlled sheen, and clear temporary-installation character + lighting_setup: Sol difuso exterior con especulares fuertes en vinilo, glow translúcido de panel y bloom suave en borde inflado. + material_texture: Piel PVC glossy, crestas de soldadura térmica, membranas tensas, arrugas en carga y herrajes de blower. + render_quality: Render inflable legible y juguetón con fidelidad material alta y brillo controlado de instalación temporal. spatial_distortion: Soft-volume inflation bulge and pressure-rounded edge behavior across all masses - atmosphere: Energetic, playful, kinetic, festive, and unmistakably temporary - key_features: Pressurized tubular frame, heat-weld seam grid, vivid panel zoning, mesh safety windows, blower-fed inflation node, and soft-impact edge profiles + atmosphere: Energética, cinética y festiva, inequívocamente temporal. + key_features: Bastidor tubular presurizado, retícula de costura térmica, zonificación vívida, ventanas mesh y nodos de inflado visibles. creative_brief: >- - Preserve inflatable-architecture grammar as a reusable style system: - pressure-rounded massing, welded vinyl seam topology, and saturated modular - color zoning must stay consistent independent of subject matter. + Construye un sistema reusable de arquitectura inflable con masa redondeada + por presión, topología de costura soldada y zonificación cromática saturada + consistente entre sujetos. avoidRules: - hard edges assets: diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-070.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-070.yaml index acb32121..dc8615f5 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-070.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-070.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Edible festive architecture language combining confectionery ornament logic, fairy-tale cottage massing, and handcrafted holiday patisserie detail - form_and_line: Piped-icing contour lines, scalloped cookie shingles, candy-column repetition, pretzel-beam framing, and rounded confection trim geometry + aesthetic: Arquitectura festiva comestible con lógica de ornamento confitero y masa cottage de cuento artesanal. + form_and_line: Contornos de icing trazado, teja de galleta festoneada, repetición de columnas candy y marcos de pretzel redondeados. color_palette: Baked ginger brown, royal-icing white, peppermint red, sugar green, candy pink accents, warm caramel notes, and sprinkle multicolor highlights - lighting_setup: Warm interior amber, sugar crystal glints, soft holiday practical twinkle, oven-like base warmth, and low-contrast cozy shadowing - material_texture: Baked cookie grain, piped icing relief, crystalline sugar dust, hard-candy gloss, pretzel salt roughness, and chocolate glaze accents - render_quality: High-detail confection-architecture rendering with readable edible materials, decorative precision, and handcrafted festive clarity + lighting_setup: Ámbar interior cálido, destellos de cristal de azúcar, twinkle festivo suave y sombra cozy de bajo contraste. + material_texture: Grano de galleta horneada, relieve de icing, polvo azucarado cristalino, gloss candy duro y acentos de glaseado chocolate. + render_quality: Confection-architecture de alto detalle con materialidad comestible legible y precisión decorativa artesanal. spatial_distortion: None - atmosphere: Festive, cozy, whimsical, indulgent, and ceremonially handcrafted - key_features: Icing-defined joints, gumdrop or candy-node accents, cookie-tile roof rhythm, peppermint linear motifs, pretzel structural trim, and sprinkle micro-detailing + atmosphere: Festiva, indulgente y acogedora, con ritual artesanal celebratorio. + key_features: Juntas definidas por icing, nodos gumdrop, ritmo de cubierta cookie, motivos peppermint lineales y microdetalle sprinkle. creative_brief: >- - Keep this preset anchored in edible-architecture grammar: gingerbread body - massing, piped-icing structural linework, and candy ornament systems should - define style identity consistently across different subjects. + Define una gramática reusable de gingerbread architecture donde masa + comestible, linework estructural de icing y sistema ornamental candy sean + invariantes de identidad entre sujetos. avoidRules: - inedible assets: diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-071.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-071.yaml index 6061f173..862a13cb 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-071.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-071.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Fungal vernacular architecture language with whimsical woodland domesticity, bulbous toadstool massing, and miniature fairy-settlement logic - form_and_line: Rounded stem columns, dome-cap roof volumes, gill-like undersides, soft swelling transitions, clustered ring settlement layouts, and circular aperture motifs + aesthetic: Vernáculo fúngico doméstico de bosque encantado con masa bulbosa y lógica de microasentamiento feérico. + form_and_line: Columnas tipo tallo, cubiertas domo-cap, intradós acanalado de láminas y transiciones orgánicas de volumen hinchado. color_palette: Toadstool red, cream speckling, soft stem white, spore brown, moss green, muted fairy blue accents, and warm forest-amber undertones - lighting_setup: Canopy-filtered dapple light, cool shade fill, subtle bioluminescent edge accents, low-height rim glow, and gentle under-cap shadow pockets - material_texture: Matte fungal skin, cap speckle patterning, ribbed gill surfaces, moist moss mats, fine spore dust, loam substrate, and dew micro-highlights - render_quality: Storybook-fantasy rendering with organic curvature fidelity, tactile fungal detail, and controlled whimsy without scene-locking + lighting_setup: Luz moteada filtrada por dosel, relleno frío de sombra y acentos bioluminiscentes sutiles en bordes bajos. + material_texture: Piel fúngica mate, moteado de sombrero, costillas de lámina, manto musgoso húmedo y polvo fino de esporas. + render_quality: Fantasía storybook con curvatura orgánica fiel y detalle táctil de micromaterial biológico. spatial_distortion: Cap-and-stem volumetric swelling and softened miniature-scale proportion stretching - atmosphere: Enchanted, sheltered, tiny-scale, gentle, and ecologically integrated - key_features: Dome-cap roof silhouettes, speckled fungal patterning, stem-based wall bodies, circular doors and windows, moss-integrated foundations, and clustered micro-settlement composition + atmosphere: Encantada, protegida y de escala diminuta con integración ecológica total. + key_features: Siluetas cap-dome, muros de tallo, puertas y ventanas circulares, base de musgo y composición en clúster. creative_brief: >- - Preserve mushroom-house grammar as a reusable style system: bulbous fungal - forms, cap-and-stem architectural hierarchy, and miniature ecological scale - cues should remain stable across subject changes. + Define una gramática reusable de mushroom-house donde jerarquía cap-stem, + volumen fúngico bulboso y escala ecológica miniatura sostengan identidad + estable entre sujetos. avoidRules: - square assets: diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-072.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-072.yaml index 7db99043..178fd3b4 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-072.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-072.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Maritime miniature craft language defined by encapsulated vessel composition, curio-display precision, and impossible-scale illusion within glass containment - form_and_line: Elongated bottle silhouette, narrowed neck constraint, compressed mast geometry, fine rigging thread networks, and hull curvature framed by cylindrical enclosure + aesthetic: Artesanía marítima miniaturizada encapsulada, con precisión de vitrina y efecto de escala imposible dentro de vidrio. + form_and_line: Silueta elongada de botella, cuello restrictivo, mástiles comprimidos y red fina de aparejos en marco cilíndrico. color_palette: Aged wood brown, sail cream, rigging tan, pale bottle aqua tint, oxidized brass accents, neutral glass highlights, and cork earth tones - lighting_setup: Controlled display lighting with elongated glass specular streaks, refractive edge highlights, mild internal shadow compression, and shelf-ambient fill - material_texture: Clear glass surface, micro-scratched display patina, varnished miniature wood, thread rigging fibers, folded sail paper texture, and porous cork grain - render_quality: High-precision miniature rendering with strong scale readability, glass-optics fidelity, and handcrafted curio-display finish + lighting_setup: Iluminación de exposición controlada, streaks especulares alargados en vidrio y compresión de sombra interna suave. + material_texture: Vidrio claro micro-rayado, madera miniatura barnizada, fibra de hilo en rigging, papel de vela plegado y corcho poroso. + render_quality: Miniatura de precisión alta con lectura de escala clara y fidelidad óptica de curio-display. spatial_distortion: Cylindrical refraction warp and magnification compression introduced by curved bottle glass - atmosphere: Reverent, meticulous, contemplative, archival, and quietly impossible - key_features: Neck-constrained assembly illusion, fine thread rigging web, cork-sealed enclosure, magnified glass curvature, miniature hull detailing, and display-plinth presentation + atmosphere: Reverente, meticulosa y contemplativa, con imposibilidad serena de museo. + key_features: Ilusión de inserción por cuello, malla fina de aparejos, sellado de corcho, magnificación por curvatura y base de exhibición. creative_brief: >- - Keep the preset anchored in encapsulated-miniature craft grammar: visible - glass refraction behavior, constrained-insertion assembly logic, and - meticulous rigging density must remain stable across subjects. + Construye una gramática reusable de bottle-miniature donde refracción + visible del vidrio, ensamblaje restringido y densidad de aparejo fina sean + invariantes estilísticas. avoidRules: - ocean assets: diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-073.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-073.yaml index 1584784c..1b63ecf4 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-073.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-073.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Subterranean colony-architecture language centered on exposed tunnel networks, bio-functional chamber zoning, and observational cutaway clarity - form_and_line: Branching capillary tunnels, nodal chamber clusters, vertical shaft connectors, oval brood cavities, and layered cross-section strata boundaries + aesthetic: Arquitectura colonial subterránea con claridad de cutaway, red de túneles y zonificación biofuncional estricta. + form_and_line: Túneles capilares ramificados, cámaras nodales, conectores verticales y estratos seccionados por capas. color_palette: Compacted soil umber, sandy beige, amber gel translucency, deep chamber brown, charcoal ant silhouettes, and freshly turned earth tones - lighting_setup: Lateral cutaway illumination, translucent gel transmission, controlled subterranean shadow pockets, and rim-lit observation-pane edge highlights - material_texture: Granular soil compaction, particulate sand bands, moist tunnel wall smoothing, gel-suspended clarity, and fine excavation scoring - render_quality: High-detail naturalistic cutaway rendering with strong system readability, dense micro-activity cues, and precise subterranean stratification legibility + lighting_setup: Iluminación lateral de corte, transmisión translúcida en gel y pockets de sombra controlada en profundidad. + material_texture: Compactación granular de suelo, bandas arenosas, alisado húmedo de túnel y marcas finas de excavación. + render_quality: Cutaway naturalista de alto detalle con legibilidad sistémica y estratificación subterránea precisa. spatial_distortion: None - atmosphere: Industrious, concealed, biological, system-driven, and relentlessly functional - key_features: Exposed tunnel mesh hierarchy, specialized chamber typologies, vertical circulation shafts, brood-cell clustering, colony path density, and transparent observation boundary + atmosphere: Laboriosa, biológica y funcional, escondida bajo superficie observada. + key_features: Jerarquía de malla de túneles, tipologías de cámara, ejes de circulación vertical y borde transparente de observación. creative_brief: >- - Preserve ant-farm style as a reusable cutaway grammar: branching - subterranean circulation, function-specific chamber typologies, and - granular earth stratification should remain consistent across subjects. + Define una gramática reusable de ant-farm cutaway donde circulación + ramificada, cámaras por función y estratificación granular del suelo + permanezcan consistentes entre composiciones. avoidRules: - surface assets: diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-074.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-074.yaml index 937fcb8f..5bb0b6c9 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-074.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-074.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Cutaway miniature domestic architecture language with staged room-box composition, toy-scale interior curation, and handcrafted display-house precision - form_and_line: Open-face sectional façade removal, stacked floor plate bands, compartmental room grids, diagonal staircase connectors, and compact miniature furnishing geometry + aesthetic: Doméstico miniatura en corte abierto, curado por habitaciones-caja y precisión de casa de exhibición artesanal. + form_and_line: Fachada retirada en sección, bandas de piso apiladas, retícula de cuartos y escaleras diagonales de conexión compacta. color_palette: Soft pastel wall fields, printed wallpaper motifs, painted toy-wood neutrals, carpet beige bases, dusty pink highlights, and muted decorative accents - lighting_setup: Even display-style room lighting, gentle interior practical glow, low-contrast compartment shadows, and soft frontal illumination for sectional readability - material_texture: Painted miniature timber, paper wallpaper grain, tiny textile upholstery, molded toy-plastic details, glazed micro-ceramics, and satin lacquer trims - render_quality: High-clarity miniature cutaway rendering with disciplined room-by-room legibility, balanced decorative density, and crafted dollhouse authenticity + lighting_setup: Luz de vitrina uniforme, glow interior suave y sombreado de compartimentos en contraste bajo para lectura seccional. + material_texture: Madera mini pintada, grano de papel tapiz, textil diminuto, plástico moldeado y remates satín lacados. + render_quality: Miniatura cutaway de alta claridad con legibilidad habitación-por-habitación y densidad decorativa balanceada. spatial_distortion: None - atmosphere: Playful, curated, intimate, orderly, and theatrically domestic - key_features: Open-front sectional view, stacked micro-room modules, miniature stair transitions, toy-furniture silhouette language, decorative chandelier nodes, and crisp cutaway perimeter edges + atmosphere: Lúdica, íntima y ordenada, con teatralidad doméstica curada. + key_features: Frente abierto seccionado, módulos de microcuartos apilados, transiciones de escalera y perímetros de corte nítidos. creative_brief: >- - Keep the preset anchored in dollhouse-cutaway grammar: open-face sectional - room stacking, miniature interior detailing, and toy-scale domestic - proportion logic should stay transferable across subject matter. + Formula una gramática reusable de dollhouse-cutaway donde apilado seccional + abierto, interiorismo miniatura y proporción toy-scale dominen el estilo + sin depender del tema específico. avoidRules: - full wall assets: diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-075.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-075.yaml index 8858c01b..bf97029f 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-075.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-075.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Paradox-architecture language inspired by Escher-like visual logic, impossible circulation systems, and mathematically staged optical ambiguity - form_and_line: Interlocking stair loops, inversion-ready arches, isometric structural grids, floor-wall-ceiling role swaps, and closed-path ascent/descent paradoxes + aesthetic: Arquitectura de paradoja con lógica escheriana, ambigüedad óptica matemática y circulación imposible. + form_and_line: Bucles de escaleras interbloqueadas, arcos invertibles, mallas isométricas y permuta suelo-muro-techo en trayectorias cerradas. color_palette: Monochrome gray spectrum, warm print-paper cream, deep ink black linework, subtle sepia undertones, and cool shadow modulation bands - lighting_setup: Print-style even exposure with intentionally conflicting shadow cues, multi-vector light implication, and restrained contrast for illusion persistence - material_texture: Lithograph paper grain, etched ink hatch marks, matte stone-like plane treatment, and fine engraving-style contour detailing - render_quality: High-precision optical-illusion rendering with strict geometric coherence, controlled print aesthetic, and cognitively destabilizing yet readable topology + lighting_setup: Exposición uniforme de impresión con sombras deliberadamente conflictivas y contraste moderado para sostener la ilusión. + material_texture: Grano de papel litográfico, hatch de tinta grabada y tratamiento plano mate de piedra abstracta. + render_quality: Ilusión óptica de precisión alta, coherencia geométrica estricta y topología desestabilizante pero legible. spatial_distortion: Multi-gravity inversion loops and perspective-locked paradox compression across connected planes - atmosphere: Cerebral, disorienting, elegant, infinite, and intriguingly unresolved - key_features: Multi-gravity stair circuits, impossible arch transitions, perspective-locked loop topology, inversion-compatible courtyards, and lithographic line hierarchy + atmosphere: Cerebral, elegante y desorientante, con infinitud no resuelta. + key_features: Circuitos multi-gravedad, transiciones imposibles de arco, loops bloqueados por perspectiva y jerarquía de línea litográfica. creative_brief: >- - Preserve a reusable impossible-architecture grammar: paradox stair loops, - stable line logic under contradictory gravity cues, and lithograph-like - tonal discipline should define the preset across subject changes. + Construye una gramática reusable de impossible-architecture donde bucles + paradójicos, lógica lineal estable bajo gravedad contradictoria y disciplina + tonal litográfica definan el sistema visual. avoidRules: - logical physics assets: diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-076.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-076.yaml index b4fec9a3..a1926f83 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-076.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-076.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Stellar-scale megastructure architecture language defined by enclosed-star infrastructure, Kardashev-level engineering motifs, and cosmic industrial monumentalism - form_and_line: Hex-panel lattice arrays, concentric structural ribs, star-centered radial symmetry, immense inner-horizon curvature, and orbital ring segment articulation + aesthetic: Megaestructura estelar de escala civilizatoria con infraestructura de estrella encerrada y monumentalismo industrial cósmico. + form_and_line: Retículas hex-panel, costillas concéntricas, simetría radial estelar y segmentación orbital de anillos en curvatura extrema. color_palette: Near-black structural silhouettes, solar gold-orange emission, corona-white edge burn, deep panel graphite grays, and faint ionized blue fringes - lighting_setup: Extreme stellar backlight, high-contrast rim definition, panel self-shadow banding, controlled bloom around core emissive zones, and sparse reflected fill - material_texture: High-density engineered metal composites, collector-panel micro-tiling, heat-dissipation finning, low-roughness structural skins, and macro-scale fabrication seams - render_quality: Ultra-scale speculative-engineering rendering with rigorous structural legibility, cinematic astrophysical contrast, and monumental scale coherence + lighting_setup: Contraluz estelar extremo, rim de alto contraste, bandas de autosombra en panel y bloom controlado en núcleos emisivos. + material_texture: Compuestos metálicos densos, microtiling de colectores, aletas de disipación y costuras macro de fabricación. + render_quality: Ingeniería especulativa ultra-escala con legibilidad estructural rigurosa y contraste astrofísico cinematográfico. spatial_distortion: Extreme interior-horizon curvature and radial mega-scale perspective compression - atmosphere: Sublime, colossal, austere, technological, and civilizationally ambitious - key_features: Enclosed stellar core framing, hexagonal collector field logic, radial ring segmentation, immense curved interior horizon, high-contrast silhouette profile, and macro-fabrication seam systems + atmosphere: Sublime, colosal y austera, impulsada por ambición tecnológica de civilización tipo II. + key_features: Núcleo estelar enmarcado, campos colectores hexagonales, segmentación radial, horizonte interior curvo y silueta de alto contraste. creative_brief: >- - Keep the preset anchored in Dyson-megastructure grammar: radial stellar - enclosure geometry, panelized energy-harvest surface systems, and extreme - scale-readability should remain consistent across different subjects. + Define una gramática reusable de Dyson-megastructure con geometría radial + de encapsulamiento estelar, panelización energética y legibilidad extrema + de escala como invariantes. avoidRules: - planet surface assets: diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-077.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-077.yaml index 9f438343..d0391e4a 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-077.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-077.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Habitable ringworld megastructure language with Niven-inspired orbital-band ecology, engineered horizon behavior, and macro-civilization landscape planning - form_and_line: Upward-curving horizon arcs, continuous ribbon-terrain bands, colossal edge-wall verticals, axial shadow swaths, and long curvature-led sightlines + aesthetic: Megaestructura habitable tipo ringworld con ecología orbital en banda y paisaje planificado a escala de macro-civilización. + form_and_line: Arcos de horizonte ascendente, cinta territorial continua, muros de borde colosales y visuales longitudinales guiadas por curvatura. color_palette: Atmospheric blue gradients, biosphere green land strips, oceanic cyan bands, structural charcoal edge walls, void black backdrop, and high-altitude white haze - lighting_setup: Stellar directional sunlight with large-scale self-shadow sectors, atmospheric forward scatter, edge-wall rim illumination, and high-contrast void separation - material_texture: Planetary-scale terrain tiling, cloud-layer streaking, water-band reflectivity, megastructure wall faceting, and engineered orbital substrate transitions - render_quality: Ultra-vast speculative landscape rendering with rigorous curvature readability, macro-engineering coherence, and cinematic scale clarity + lighting_setup: Luz estelar direccional, sectores de autosombra masiva, scatter atmosférico frontal e iluminación de borde en edge-walls. + material_texture: Tiling de terreno planetario, estelas de nubes, reflectividad de bandas acuáticas y facetas estructurales en contención. + render_quality: Paisaje especulativo ultra-vasto con lectura rigurosa de curvatura y coherencia de ingeniería macro. spatial_distortion: Orbital-band curvature with upward horizon wrap and macro-scale perspective compression - atmosphere: Grand, engineered, expansive, serene, and cosmically inhabited - key_features: Upward sky-arching terrain, habitable ribbon biosphere, kilometer-scale edge-wall containment, ring-rotation shadow bands, and continuous orbital horizon logic + atmosphere: Grandiosa, serena y diseñada, con sensación de hábitat cósmico continuo. + key_features: Terreno arqueado al cielo, biosfera en cinta habitable, contención kilométrica de borde y bandas de sombra por rotación. creative_brief: >- - Preserve ringworld identity as a reusable style grammar: orbital-horizon - curvature behavior, ribbon-biosphere stratification, and edge-wall - megastructure cues should remain stable across subject matter. + Formula una gramática reusable de ringworld donde comportamiento de + horizonte orbital curvo, estratificación biosférica en cinta y edge-wall + megastructural definan identidad transversal. avoidRules: - globe assets: diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-078.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-078.yaml index 777bc83e..bb1484c6 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-078.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-078.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Borg-inspired cybernetic hive-architecture language emphasizing modular collective infrastructure, relentless utility, and machine-organic integration - form_and_line: Orthogonal cube massing, dense conduit bundles, repetitive alcove grids, emitter-ring nodes, layered service gantries, and infrastructural panel recursion + aesthetic: Hive cibernético de infraestructura colectiva modular, utilidad implacable e integración máquina-orgánica invasiva. + form_and_line: Masa ortogonal cúbica, haces densos de conductos, retículas de alcobas repetitivas y panelería recursiva de servicio. color_palette: Graphite black metals, gunmetal gray fields, phosphor green emissions, cold cyan plasma accents, and deep void-shadow undertones - lighting_setup: Low-key space ambience, pulsing green conduit glow, localized alcove practicals, intermittent plasma highlights, and high-contrast industrial shadow depth - material_texture: Greeble-dense armor plates, biomechanical interface surfaces, cable harness clusters, regeneration-gel translucency, machined panel seams, and worn conductive patina - render_quality: High-density techno-industrial rendering with strong modular repetition, oppressive mechanical precision, and coherent cybernetic-hive identity + lighting_setup: Ambiente low-key espacial, pulso verde en conducciones, prácticos localizados y profundidad de sombra industrial de alto contraste. + material_texture: Placas greeble densas, interfaces biomecánicas, arneses de cable, gel translúcido y pátina conductiva desgastada. + render_quality: Tecnoindustrial denso con repetición modular estricta y precisión mecánica opresiva. spatial_distortion: None - atmosphere: Ominous, collective, dehumanized, efficient, and technologically invasive - key_features: Cube-shell modularity, regeneration alcove matrices, conduit superstructure webs, green plasma channeling, emitter-ring apparatus, and dense service-surface detailing + atmosphere: Ominosa, deshumanizada y eficiente, con invasividad tecnológica constante. + key_features: Modularidad cube-shell, matrices de regeneración, superred de conducciones, canales de plasma verde y aparatos emisores circulares. creative_brief: >- - Keep the preset anchored in cybernetic-hive grammar: orthogonal cube - macroform, conduit-saturated infrastructure, and phosphor-green collective - systems should remain consistent across subject changes. + Construye una gramática reusable de cybernetic-hive donde macroforma + cúbica ortogonal, infraestructura saturada de conducciones y sistemas + colectivos fosforoverdes sostengan identidad consistente. avoidRules: - smooth assets: diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-079.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-079.yaml index 65c9b61b..abbbe16f 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-079.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-079.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: Kubrickian alien-monolith language based on absolute geometric austerity, symbolic artifact presence, and minimal cosmic monumentality - form_and_line: Strict 1:4:9 rectangular proportion, flawless planar faces, razor-clean vertical edges, zero ornament policy, and uncompromised orthogonal silhouette dominance + aesthetic: Monolito alienígena de austeridad geométrica absoluta, presencia simbólica y monumentalidad cósmica mínima. + form_and_line: Proporción rectangular estricta 1:4:9, caras planas impecables y aristas verticales limpias sin ornamento. color_palette: Deep matte black mass, near-void black absorption fields, faint edge silver glints, and sparse neutral lunar-gray environmental reflections - lighting_setup: High-contrast directional lighting with extreme absorption response, minimal edge catch-light, severe cast shadow geometry, and restrained ambient fill - material_texture: Ultra-smooth featureless surface, non-granular matte finish, near-specular suppression, and artifact-grade manufacturing uniformity - render_quality: Precision-minimal rendering with maximum geometric authority, disciplined tonal economy, and enigmatic high-concept sci-fi clarity + lighting_setup: Iluminación direccional de alto contraste, absorción extrema, catch-light mínimo y sombra proyectada severa. + material_texture: Superficie ultrasuave y anónima, mate no granular, supresión casi total del especular y uniformidad de artefacto. + render_quality: Minimalismo de precisión con autoridad geométrica máxima y economía tonal disciplinada. spatial_distortion: None - atmosphere: Ominous, contemplative, transcendent, silent, and intellectually unsettling - key_features: Canonical 1:4:9 proportion control, light-absorbing black plane behavior, featureless monolithic slab profile, and severe vertical compositional anchoring + atmosphere: Ominosa, contemplativa y trascendente, con silencio intelectualmente inquietante. + key_features: Control canónico 1:4:9, planos negros absorbentes, perfil monolítico sin rasgos y anclaje compositivo vertical severo. creative_brief: >- - Preserve monolith style as a reusable grammar of geometric absolutes: - strict proportion, featureless black material response, and symbolic - minimal monumentality should remain stable across subject changes. + Define una gramática reusable de monolith basada en proporción estricta, + respuesta material negra sin rasgos y monumentalidad simbólica mínima + estable entre variaciones de sujeto. avoidRules: - ornamentation assets: diff --git a/components/recipes/styles/manifests/presets/pack_07/SP07-080.yaml b/components/recipes/styles/manifests/presets/pack_07/SP07-080.yaml index 24d896e3..36aa00c9 100644 --- a/components/recipes/styles/manifests/presets/pack_07/SP07-080.yaml +++ b/components/recipes/styles/manifests/presets/pack_07/SP07-080.yaml @@ -12,19 +12,19 @@ tags: - architecture-and-interior - residential-interiors visualDna: - aesthetic: TARDIS-inspired dimensional console-chamber language combining time-machine retro-tech, organic architectural growth, and impossible interior expansion - form_and_line: Central time-rotor axis, hex-console radial geometry, roundel wall repetition, layered gallery rings, sweeping organic arches, and deep non-euclidean recession cues + aesthetic: Cámara dimensional retro-tech inspirada en time-machine, con crecimiento orgánico arquitectónico y expansión interior imposible. + form_and_line: Eje central de rotor temporal, consola hex radial, repetición de roundels y anillos de galería en recesión no euclidiana. color_palette: Coral amber emissive warmth, deep teal structural shadows, copper-brass console metals, warm gold roundel highlights, and temporal blue accent glows - lighting_setup: Pulsing rotor core illumination, console practical spill, indirect roundel bounce, tiered gallery ambience, and controlled golden regeneration-like bloom - material_texture: Mixed organic-tech surfaces, coral-like ribbed wall growth, worn metallic console plating, glass roundel diffusion, braided cabling, and translucent control interfaces - render_quality: High-detail franchise-faithful sci-fi interior rendering with layered dimensional depth, rich tactile complexity, and coherent retrofuturist machine elegance + lighting_setup: Pulso lumínico del rotor, spill de consola, rebote indirecto en roundels y bloom dorado controlado de regeneración. + material_texture: Superficies orgánico-tecnológicas mixtas, costillas tipo coral, metal de consola gastado, difusión en vidrio y cableado trenzado. + render_quality: Interior sci-fi de alto detalle con profundidad dimensional estratificada y elegancia retrofuturista coherente. spatial_distortion: Non-euclidean depth recursion with center-anchored rotor perspective and interior scale dilation - atmosphere: Adventurous, wondrous, mysterious, temporal, and spatially unbounded - key_features: Time-rotor central column, radial hex-console command node, repeating roundel wall language, multi-level gallery circulation, and infinite-depth chamber perspective + atmosphere: Aventurera, misteriosa y asombrosa, con sensación temporal y espacial sin borde. + key_features: Columna central de rotor, nodo de mando hex radial, muro roundel repetitivo y circulación de galería multinivel. creative_brief: >- - Keep the preset anchored in "bigger-on-the-inside" chamber grammar: - central rotor hierarchy, roundel-driven wall rhythm, and organic-retrotech - dimensional layering should remain consistent across subject changes. + Formula una gramática reusable de console-chamber "bigger-on-the-inside" + donde jerarquía de rotor central, ritmo mural roundel y capas orgánico- + retrotech dimensionales permanezcan constantes entre sujetos. avoidRules: - small assets: diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-001.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-001.yaml index b04d1b2b..af46e033 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-001.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-001.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - neon-urban-and-night-ops visualDna: - aesthetic: Urban Japanese neo-noir with electric rain and kanji reflections. - subject_treatment: Cyber warrior with modular armor and sharp silhouette. - color_and_tone: Magentas, cyan and oil black with hard contrasts. - lighting_and_shadow: Side neon tubes with volumetric backlighting. - texture_and_material: Brushed metal, wet asphalt, and grainy holograms. - camera_and_composition: Mid-shot framing, narrow street, deep vanishing point. - atmosphere_and_mood: Silent tension before the duel. - rendering_and_quality: AAA key art, fine detail, cinematic sharpness. + aesthetic: Action RPG ciberpunk neo-noir orientado a infiltración urbana nocturna y lectura táctica por silueta. + subject_treatment: Operadores player-class con kit modular legible por rol (assault, recon, tech) y jerarquía visual clara. + color_and_tone: Dúo cian-magenta sobre negros aceitosos, con codificación cromática de facción y threat level. + lighting_and_shadow: Iluminación diegética de neón con pockets de sombra para stealth readability y rim de detección. + texture_and_material: Asfalto mojado PBR, metal cepillado, vidrio sucio y holografía de baja persistencia tipo HUD-world. + camera_and_composition: Cámara third-person táctica con lanes de navegación, choke points y puntos de cobertura reconocibles. + atmosphere_and_mood: Tensión operativa, vigilancia constante y ritmo de incursión de alto riesgo. + rendering_and_quality: Key art AAA con pipeline de legibilidad gameplay-first, contraste de objetivo y nitidez de interacción. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-002.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-002.yaml index 7e016195..dfbacb12 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-002.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-002.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - wilderness-hunts-and-harsh-frontiers visualDna: - aesthetic: Alien nocturnal jungle with reactive bioluminescent flora. - subject_treatment: Tactical squad hidden among giant ferns. - color_and_tone: Phosphorescent greens, ink blues, and lime accents. - lighting_and_shadow: Localized organic light with softly scattering fog. - texture_and_material: Wet bark, translucent leaves and thick mud. - camera_and_composition: Low angle, tension diagonals, layered depth. - atmosphere_and_mood: Stealth, danger, and biological wonder. - rendering_and_quality: Mission concept art, high gameplay readability. + aesthetic: Extraction shooter en bioma alienígena nocturno, con énfasis en rastreo, stealth y navegación orgánica hostil. + subject_treatment: Escuadras de 3-4 roles con perfiles térmicos y lectura inmediata de aliado/enemigo en vegetación densa. + color_and_tone: Verdes bioluminiscentes y azules tinta con acentos de señalización táctica para rutas seguras. + lighting_and_shadow: Luz orgánica puntual + niebla volumétrica para ocultamiento parcial y ventanas de visibilidad situacional. + texture_and_material: Corteza húmeda, hojas translúcidas, barro pesado y fluidos vegetales reactivos al movimiento. + camera_and_composition: Composición por capas de cobertura, líneas de visión quebradas y diagonales de emboscada. + atmosphere_and_mood: Cacería silenciosa, paranoia ambiental y descubrimiento biológico de alto riesgo. + rendering_and_quality: Concept gameplay con claridad de encounter design, lectura de terreno y prioridades de target. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-003.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-003.yaml index 2724ec56..7ac1484f 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-003.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-003.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - sci-fi-frontiers-and-mech-zones visualDna: - aesthetic: Mechanized post-apocalypse on dunes and highway remains. - subject_treatment: Heavy-load mechs escorting armored vehicles. - color_and_tone: Burnt ochres, oxidized iron, and bleached skies. - lighting_and_shadow: Severe overhead sun with short shadows and bright dust. - texture_and_material: Corroded sheet metal, torn canvas and abrasive sand. - camera_and_composition: Side-scrolling panoramic framing with tactical readability. - atmosphere_and_mood: Relentless march, extreme heat, and survival. - rendering_and_quality: Faction illustration with stylized realism. + aesthetic: Vehicular combat sandbox postapocalíptico con logística de convoy y combate de largo alcance en terreno abierto. + subject_treatment: Unidades pesadas, escolta híbrida y clases de vehículo/mech diferenciadas por silueta funcional. + color_and_tone: Ocre quemado, hierro oxidado y cielo de desecación extrema con contraste táctico mínimo. + lighting_and_shadow: Sol cenital duro, polvo suspendido y scintillation térmica para sensación de calor operativo. + texture_and_material: Metal corroído, lonas reparadas, caucho degradado y abrasión granular persistente. + camera_and_composition: Panorámica lateral de ruta con lectura de lanes, flank routes y amenazas de horizonte. + atmosphere_and_mood: Supervivencia mecanizada, desgaste continuo y disciplina de avance bajo presión. + rendering_and_quality: Estilo faction-keyart con realismo estilizado y claridad de sistemas de movilidad/combate. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-004.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-004.yaml index 7bf426ac..00deea64 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-004.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-004.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - puzzle-chambers-and-adventure-setpieces visualDna: - aesthetic: Aerial steampunk with armed airships and floating towers. - subject_treatment: Corsair captains in bronze and leather suits. - color_and_tone: Coppers, storm blues, and aged cream. - lighting_and_shadow: Afternoon light passing through steam and boiler smoke. - texture_and_material: Rivets, oiled gears, and varnished wood. - camera_and_composition: Triangular composition with a dominant flagship. - atmosphere_and_mood: Epic adventure, risk, and imperial ambition. - rendering_and_quality: Premium splash art with world narrative. + aesthetic: Action-adventure steampunk aéreo con foco en traversal vertical, combate de abordaje y exploración de nodos flotantes. + subject_treatment: Clases corsair/engineer/pilot identificables por equipamiento y lenguaje de animación mecánica. + color_and_tone: Cobre viejo, azul tormenta y crema envejecido para codificar tecnología victoriana-fantástica. + lighting_and_shadow: Luz oblicua entre vapor de caldera, con silhouettes de casco y lectura de altura/plataformas. + texture_and_material: Remaches, latón aceitado, madera barnizada y lona de dirigible con desgaste funcional. + camera_and_composition: Triangulación de objetivos (nave, torre, ruta) para indicar flow de misión y puntos de interés. + atmosphere_and_mood: Aventura de alto riesgo, ambición imperial y dinamismo de frontera aérea. + rendering_and_quality: Splash art premium orientado a gameplay loops de vuelo, abordaje y puzzle de navegación. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-005.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-005.yaml index 459e1d37..0b709241 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-005.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-005.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - sci-fi-frontiers-and-mech-zones visualDna: - aesthetic: Industrial science fiction in an emergency lunar base. - subject_treatment: Technical personnel and marines responding to hull breach. - color_and_tone: Cold whites, alarm reds and graphite shadows. - lighting_and_shadow: Strobe beacons and hard panel light. - texture_and_material: Brushed titanium, ice, technical rubber, and condensation. - camera_and_composition: Corridor in long perspective with central vanishing point. - atmosphere_and_mood: Urgency, claustrophobia, and operational heroism. - rendering_and_quality: Level background with production quality. + aesthetic: Sci-fi survival/maintenance en base lunar, centrado en crisis de sistemas, sellado de módulos y respuesta cooperativa. + subject_treatment: Roles de engineer/medic/security con iconografía de herramienta y estados de emergencia legibles. + color_and_tone: Blanco clínico frío, rojo alarma y sombras grafito para jerarquía de riesgo. + lighting_and_shadow: Strobes de emergencia, paneles duros y zonas oscuras de fallo energético. + texture_and_material: Titanio cepillado, escarcha interior, juntas de caucho técnico y condensación por despresurización. + camera_and_composition: Corredor de fuga con puntos de cierre de compuerta y objetivos de reparación por etapas. + atmosphere_and_mood: Claustrofobia operativa, urgencia técnica y heroísmo de contingencia. + rendering_and_quality: Background de nivel con estándares de readability para hazards, rutas y objetivos de interacción. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-006.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-006.yaml index 06502741..a837903a 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-006.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-006.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - arcane-temples-and-mythic-realms visualDna: - aesthetic: Dark fantasy in a living library of forbidden magic. - subject_treatment: Colossal grimoire summoned as an antagonistic entity. - color_and_tone: Violets, aged golds, and ink black. - lighting_and_shadow: Runic circles illuminating suspended dust. - texture_and_material: Cracked parchment, wet marble and ancient metal. - camera_and_composition: Circular arena in three-quarter view with a central pedestal. - atmosphere_and_mood: Mystery, solemnity, and supernatural danger. - rendering_and_quality: Encounter concept with clear visual hierarchy. + aesthetic: Boss-arena dark fantasy para action RPG, con lenguaje arcano sistémico y telemetría de mecánicas por símbolo. + subject_treatment: Entidad grimorio como boss-phase controller y avatar conjurado con weak points visuales explícitos. + color_and_tone: Violeta profundo, oro gastado y negro tinta para separar cast windows y estados de fase. + lighting_and_shadow: Círculos rúnicos como UI diegética, iluminación por patrón de ataque y sombras de lectura circular. + texture_and_material: Pergamino cuarteado, mármol húmedo, metal ancestral y partículas de polvo ritual en suspensión. + camera_and_composition: Arena radial con centro mecánico, perímetro de evasión y lanes para posicionamiento de party. + atmosphere_and_mood: Solemnidad peligrosa, descubrimiento mecánico y presión de ejecución. + rendering_and_quality: Encounter concept orientado a boss readability, telegraphing claro y jerarquía de amenazas. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-007.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-007.yaml index 7de019dd..e36d69d0 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-007.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-007.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - sieges-warfronts-and-last-stands visualDna: - aesthetic: Tactical warfare on a polar fortress excavated in blue ice. - subject_treatment: Assault units with thermal equipment and magnetic ropes. - color_and_tone: Cold cyan, dark steel and orange equipment lights. - lighting_and_shadow: Diffuse cloudy sky with flashes of explosions. - texture_and_material: Frost, compacted snow, and armored plates. - camera_and_composition: Oblique view of playable map by sectors. - atmosphere_and_mood: Extreme cold, precision, and resilience. - rendering_and_quality: Military operation art with topographic reading. + aesthetic: Tactical shooter de asalto polar con enfoque en control por sectores, movilidad vertical y gestión climática. + subject_treatment: Escuadras de breacher/sniper/support con equipamiento térmico y anclajes magnéticos de ascenso. + color_and_tone: Cian gélido, acero oscuro y naranjas de instrumentación para visibilidad operacional. + lighting_and_shadow: Nublado difuso con destellos de artillería y blancos de nieve que alteran contraste perceptivo. + texture_and_material: Hielo compacto, nieve pisada, escarcha en blindaje y superficies antideslizantes de combate. + camera_and_composition: Vista oblicua sectorizada con rutas A/B/C, choke points y líneas de fuego identificables. + atmosphere_and_mood: Resistencia extrema, precisión táctica y desgaste ambiental continuo. + rendering_and_quality: Operation key art con lectura topográfica, claridad de objetivos y flujo de asedio. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-008.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-008.yaml index 20d54a9a..fffe9b2e 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-008.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-008.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - speed-sport-and-competitive-arenas visualDna: - aesthetic: Futuristic racing in vertical city with holographic posters. - subject_treatment: Stylized anti-gravity single-seaters built for extreme speed. - color_and_tone: Electric blue, violet and high energy white. - lighting_and_shadow: Sweeping neons and dynamic light trails. - texture_and_material: Carbon fiber, smart glass and wet asphalt. - camera_and_composition: Closed curve plane with motion framing. - atmosphere_and_mood: Adrenaline, competition, and urban spectacle. - rendering_and_quality: High-impact in-game marketing shot. + aesthetic: Arcade racer futurista de alta velocidad con verticalidad urbana, readability de pista y feedback visual instantáneo. + subject_treatment: Chasis anti-gravedad por clase (grip/boost/agile) con perfiles de handling distinguibles. + color_and_tone: Azul eléctrico y violeta dominante, con blanco energético para boost-state y timing windows. + lighting_and_shadow: Neón barrido, trails vectoriales y destellos de checkpoint para ritmo competitivo. + texture_and_material: Fibra de carbono, vidrio inteligente, asfaltos húmedos y señalética holográfica funcional. + camera_and_composition: Curvas cerradas con frame de velocidad, apex legible y capas de obstáculo por carril. + atmosphere_and_mood: Adrenalina limpia, espectáculo competitivo y precisión de conducción. + rendering_and_quality: Marketing key art gameplay-driven con claridad de trayectoria, boost economy y lectura de rival. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-009.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-009.yaml index afda0f0f..31500e4f 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-009.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-009.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - sieges-warfronts-and-last-stands visualDna: - aesthetic: Fantastic medieval with gothic ruins and siege fire. - subject_treatment: Cooperative squad defending the main nave. - color_and_tone: Ash grays, ember red, and muted gold. - lighting_and_shadow: Contrast of torches and stormy sky. - texture_and_material: Eroded stone, shattered stained glass, and worn metal. - camera_and_composition: Focus on a broken altar with active flanks. - atmosphere_and_mood: Desperate heroism and constant pressure. - rendering_and_quality: Narrative illustration for an endgame raid. + aesthetic: Co-op siege medieval-fantasy con layout de defensa por oleadas y escalado de presión en espacio gótico. + subject_treatment: Party sinérgica por rol (tank/heal/range/control) con prioridad de objetivos y posicionamiento defensivo. + color_and_tone: Grises ceniza, rojo brasa y oro apagado para diferenciar estado de fortificación y daño acumulado. + lighting_and_shadow: Antorchas locales + cielo de tormenta para alternar zonas seguras y puntos de riesgo. + texture_and_material: Piedra erosionada, vitrales rotos, metal fatigado y restos de barricada reutilizable. + camera_and_composition: Nave central como objective hub, flancos activos y rutas de oleada claramente telegráficas. + atmosphere_and_mood: Presión sostenida, heroísmo cooperativo y resistencia de último tramo. + rendering_and_quality: Raid-endgame visual con excelente readability de objetivos, flujos enemigos y ventanas de cooldown. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-010.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-010.yaml index 12d1f329..112f96ac 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-010.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-010.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - wilderness-hunts-and-harsh-frontiers visualDna: - aesthetic: Infernal dungeon with active demonic foundries. - subject_treatment: Titanic blacksmiths as zone mini-bosses. - color_and_tone: Molten oranges, charcoal blacks and copper reflections. - lighting_and_shadow: Lava as a key-light and smoke as a dense fill. - texture_and_material: Slag, incandescent iron, and aged chains. - camera_and_composition: Diagonal axis between bridges and crucibles. - atmosphere_and_mood: Hostile, abrasive, and ritualistic. - rendering_and_quality: Playable environment with clear landmarks. + aesthetic: Dungeon-crawler infernal enfocado en navegación de riesgo térmico, crafting bélico y encuentros con mini-boss industriales. + subject_treatment: Enemigos forjadores colosales y mobs de soporte, con telegraphs de ataque por calor y ritmo de martillo. + color_and_tone: Naranja fundido, negro carbón y reflejos cobrizo-escoria para lectura inmediata de zonas letales. + lighting_and_shadow: Lava como key dominante, humo denso de fill y pulsos de horno para timing de mecánicas. + texture_and_material: Escoria vítrea, hierro incandescente, cadenas antiguas y piedra volcánica fracturada. + camera_and_composition: Eje diagonal de puentes, crisoles y plataformas seguras con landmarks de progresión claros. + atmosphere_and_mood: Hostil, abrasiva y ceremonial, de supervivencia técnico-combativa. + rendering_and_quality: Entorno jugable de alta claridad sistémica para hazards, rutas, crafting nodes y encuentros. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-011.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-011.yaml index 57034ee7..8f7e45fa 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-011.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-011.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - sci-fi-frontiers-and-mech-zones visualDna: - aesthetic: Underwater thriller in fractured scientific complex. - subject_treatment: Tactical divers and rescue drones in evacuation. - color_and_tone: Deep turquoise, emergency red and blued steel. - lighting_and_shadow: Broken caustics and intermittent alarms. - texture_and_material: Cracked glass, biofilm, and wet panels. - camera_and_composition: Central walkway with gap in the background. - atmosphere_and_mood: Countdown anxiety under pressure. - rendering_and_quality: Campaign scene with lens focal points. + aesthetic: Survival sci-fi submarino orientado a reparación, contención y extracción bajo presión estructural. + subject_treatment: Roles de diver/engineer/drone-support legibles por silueta y toolset funcional. + color_and_tone: Turquesa profundo, rojo alarma y acero azulado para jerarquía de riesgo ambiental. + lighting_and_shadow: Caústicas rotas, flashes de emergencia y zonas de visibilidad intermitente por fallo de energía. + texture_and_material: Cristal fisurado, biofilm, juntas húmedas y panelado industrial saturado por agua. + camera_and_composition: Pasarela central con rutas de evacuación, nodos de reparación y hazards de ruptura. + atmosphere_and_mood: Ansiedad de cuenta regresiva, claustrofobia acuática y disciplina operativa. + rendering_and_quality: Estilo campaign-gameplay con lectura clara de objetivos, rutas y estados de sistema. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-012.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-012.yaml index 66661849..9541e7e8 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-012.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-012.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - puzzle-chambers-and-adventure-setpieces visualDna: - aesthetic: Cozy pixel-art for social adventure hub. - subject_treatment: Charismatic NPCs with clear and animatable silhouettes. - color_and_tone: Warm palette of wood, copper and candles. - lighting_and_shadow: Soft interior lighting with gentle contrast. - texture_and_material: Clean pixel clusters and controlled noise. - camera_and_composition: Side view of room with points of interest. - atmosphere_and_mood: Cozy, friendly and full of secrets. - rendering_and_quality: Tileable background with excellent readability. + aesthetic: Pixel-RPG hub social de 16-bit, centrado en loops de quest, comercio y descanso narrativo. + subject_treatment: NPCs por arquetipo (quest giver, vendor, lore) con silueta de tile y animación idle/readable. + color_and_tone: Madera cálida, cobre, velas y acentos de UI diegética para POIs. + lighting_and_shadow: Iluminación interior suave en banding de píxel, con contraste suficiente para navegación. + texture_and_material: Clusters limpios, dithering controlado y tiles modulares sin ruido ambiguo. + camera_and_composition: Side-view de hub con circulación clara entre menú, tienda, crafting y salida de mapa. + atmosphere_and_mood: Acogedora, social y curiosa, con sensación de progreso seguro. + rendering_and_quality: Pixel pipeline de alta legibilidad con tileset reusable y jerarquía visual por interacción. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-013.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-013.yaml index 8b53a29b..d081b472 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-013.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-013.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - arcane-temples-and-mythic-realms visualDna: - aesthetic: Mystical sanctuary in resonant quartz desert. - subject_treatment: Guardians with prismatic weapons and long capes. - color_and_tone: Rose sand, amethyst, and solar white. - lighting_and_shadow: Harsh sun with multicolor refractions. - texture_and_material: Faceted crystals, fine dust, and carved stone. - camera_and_composition: Wide-angle framing with a ceremonial stairway. - atmosphere_and_mood: Sacred, silent, and expectant. - rendering_and_quality: Environmental art for a premium zone. + aesthetic: Action-adventure místico de santuario desértico con énfasis en puzzle lumínico y orientación geométrica. + subject_treatment: Guardian archetypes y player silhouettes diferenciadas por interacción con prismas/runas. + color_and_tone: Arena rosada, amatista, blanco solar y acentos espectrales por refracción. + lighting_and_shadow: Sol duro con rebotes policromáticos usados como mecánica de progresión visual. + texture_and_material: Cuarzo facetado, polvo fino, piedra tallada y superficies de calibración óptica. + camera_and_composition: Gran angular con escalera ceremonial y líneas guía hacia nodos puzzle. + atmosphere_and_mood: Sagrada, silenciosa y analítica, de descubrimiento ritual. + rendering_and_quality: Zone-art premium con readability de mecánicas ópticas y landmarks de exploración. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-014.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-014.yaml index fb5350c3..ee4316a2 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-014.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-014.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - neon-urban-and-night-ops visualDna: - aesthetic: Competitive shooter on dense megacity rooftops. - subject_treatment: Lightweight operators in acrobatic motion. - color_and_tone: Urban grays with saturated team accents. - lighting_and_shadow: Cold dawn with long, clean shadows. - texture_and_material: Concrete, graffiti, galvanized metal, and glass. - camera_and_composition: Dynamic perspective with jumping lines. - atmosphere_and_mood: Speed, verticality, and positional advantage. - rendering_and_quality: Clear layout for PvP readability. + aesthetic: Hero shooter de movilidad vertical en entorno urbano denso, orientado a control de altura y rotación rápida. + subject_treatment: Operadores ligeros con kits parkour/grapple y lectura de hitbox por animación. + color_and_tone: Grises metropolitanos con acentos de equipo saturados para friend-foe clarity. + lighting_and_shadow: Amanecer frío con sombras largas útiles para trazado de rutas y cobertura parcial. + texture_and_material: Hormigón, metal galvanizado, graffiti táctico y vidrio rompible contextual. + camera_and_composition: Perspectiva dinámica con jump lines, rutas de flanqueo y puntos high-ground evidentes. + atmosphere_and_mood: Rítmica, competitiva y técnica, centrada en posicionamiento. + rendering_and_quality: PvP readability-first con layout claro de lanes, alturas y líneas de visión. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-015.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-015.yaml index bf1ae971..9d2476a9 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-015.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-015.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - arcane-temples-and-mythic-realms visualDna: - aesthetic: Ancient ruins fused with colossal technology. - subject_treatment: Inactive mechanical colossi as living architecture. - color_and_tone: Beige stone, green patina and blue core. - lighting_and_shadow: Zenithal rays between cracks and suspended dust. - texture_and_material: Basalt, embedded circuits, and dry moss. - camera_and_composition: Monumental scale with a minimal human figure. - atmosphere_and_mood: Reverence, mystery, and lost grandeur. - rendering_and_quality: Matte concept for discovery area. + aesthetic: Metroidvania tecno-arcano de ruina monumental con foco en exploración, gating y activación de sistemas ancestrales. + subject_treatment: Colosos mecánicos como arquitectura interactiva por estados (dormant/active/hostile). + color_and_tone: Piedra beige, pátina verde y núcleos azules para señalizar función tecnológica latente. + lighting_and_shadow: Rayos cenitales y polvo volumétrico para guiar descubrimiento de paths secretos. + texture_and_material: Basalto, circuitería incrustada, musgo seco y juntas mecánicas erosionadas. + camera_and_composition: Escala monumental con anclas humanas mínimas para reforzar lectura de progreso espacial. + atmosphere_and_mood: Reverente, misteriosa y arqueotecnológica. + rendering_and_quality: Matte gameplay concept con landmarks de navegación y jerarquía de interacción ambiental. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-016.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-016.yaml index 3c5cd2e7..cb90f794 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-016.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-016.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - heists-horror-and-underworld-runs visualDna: - aesthetic: Theatrical court intrigue with dark baroque aesthetics. - subject_treatment: Masked murderers among nobles and curtains. - color_and_tone: Burgundy, velvet black, and aged gold. - lighting_and_shadow: Dramatic lamps with strong scenic contrast. - texture_and_material: Silk, polished marble and decorated steel. - camera_and_composition: Frontal composition in narrative-tableau style. - atmosphere_and_mood: Lethal elegance and social paranoia. - rendering_and_quality: Visual key of factions and plot. + aesthetic: Immersive-sim de asesinato cortesano con barroco oscuro, infiltración social y manipulación de facciones. + subject_treatment: Roles de stealth/disguise/assassin con lectura por máscara, postura y vestuario de clase. + color_and_tone: Burdeos, negro terciopelo y oro envejecido para codificar estatus y amenaza. + lighting_and_shadow: Lámparas dramáticas con alto contraste para rutas de ocultamiento y ventanas de ejecución. + texture_and_material: Seda, mármol pulido, acero ornamentado y cortinajes densos de cobertura visual. + camera_and_composition: Tableau frontal con capas de foreground para line-of-sight y rutas silenciosas. + atmosphere_and_mood: Elegancia letal, paranoia social y tensión ritualizada. + rendering_and_quality: Faction key-art orientado a sandbox sistémico, lectura de sospecha y agencia del jugador. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-017.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-017.yaml index c9b8800d..12500f53 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-017.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-017.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - speed-sport-and-competitive-arenas visualDna: - aesthetic: Extreme arcade sport on mobile volcanic platforms. - subject_treatment: Futuristic riders with thermal reactive equipment. - color_and_tone: Magma red, basalt black, and cyan from diegetic UI elements. - lighting_and_shadow: Nether lava glow and stadium spotlights. - texture_and_material: Vitrified rock, anodized metal, and dense smoke. - camera_and_composition: Wide plane with route lines. - atmosphere_and_mood: Vertigo, spectacle, and high rhythm. - rendering_and_quality: Promotional art for competitive mode. + aesthetic: Arcade sport extremo de alta velocidad sobre plataformas dinámicas con hazards térmicos reactivos. + subject_treatment: Riders por arquetipo (speed/control/trick) con equipamiento termo-reactivo visible. + color_and_tone: Rojo magma, negro basalto y cian HUD para separar riesgo ambiental y estado del jugador. + lighting_and_shadow: Glow de lava + focos arena para alternar visibilidad de ruta y zonas de castigo. + texture_and_material: Roca vitrificada, metal anodizado, humo denso y superficies antideslizantes quemadas. + camera_and_composition: Plano amplio con líneas de circuito, jumps y bifurcaciones competitivas legibles. + atmosphere_and_mood: Vertiginosa, espectacular y frenética. + rendering_and_quality: Promo de modo competitivo con feedback visual fuerte de ritmo, riesgo y mastery. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-018.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-018.yaml index 134828e2..9ae769ed 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-018.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-018.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - sci-fi-frontiers-and-mech-zones visualDna: - aesthetic: Tower defense in electric bastion on cliffs. - subject_treatment: Arcanotechnological towers with interchangeable modules. - color_and_tone: Storm blues, silver, and orange pulses. - lighting_and_shadow: Frequent lightning strikes and impact flashes. - texture_and_material: Carved stone, conductive copper, and lit runes. - camera_and_composition: Clear isometric view for enemy routes. - atmosphere_and_mood: Tense strategy and territorial control. - rendering_and_quality: Gameplay visual with emphasis on readability. + aesthetic: Tower-defense arcanotecnológico de bastión de tormenta con énfasis en control de rutas y sinergias modulares. + subject_treatment: Torres intercambiables por función (slow/burst/chain/support) con silueta y FX diferenciables. + color_and_tone: Azul tormenta, plata y pulsos naranja para telegraphear estados de carga/descarga. + lighting_and_shadow: Rayos frecuentes, flashes de impacto y contraste dirigido para leer oleadas. + texture_and_material: Piedra tallada, cobre conductor, runas activas y superficies quemadas por descarga. + camera_and_composition: Isométrica limpia con rutas enemigas, nodos de torre y áreas de upgrade claras. + atmosphere_and_mood: Estratégica, tensa y metódica. + rendering_and_quality: Gameplay-first visual con readability de pathing, timing y economía de defensa. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-019.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-019.yaml index b2ee5ba7..774fe5a5 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-019.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-019.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - heists-horror-and-underworld-runs visualDna: - aesthetic: Postindustrial horror in abandoned underground network. - subject_treatment: Mutated creatures emerging from rusted train cars. - color_and_tone: Toxic greens, black shadows, and signal red. - lighting_and_shadow: Flickering tubes and halos of humidity. - texture_and_material: Rust, mold, wet concrete, and exposed wires. - camera_and_composition: Narrow hallway with threat in depth. - atmosphere_and_mood: Discomfort, confinement, and constant alertness. - rendering_and_quality: Survival scene with focus on environmental tension. + aesthetic: Survival-horror postindustrial de metro abandonado, con loops de recursos, stealth y encounters de proximidad. + subject_treatment: Mutantes por clase de amenaza y lectura de comportamiento (lurker/rusher/brute) en espacios cerrados. + color_and_tone: Verde tóxico, negro húmedo y rojo señal para navegación de riesgo y objetivos de escape. + lighting_and_shadow: Fluorescentes inestables, parches oscuros y halos de humedad que alteran visibilidad. + texture_and_material: Óxido, moho, hormigón mojado, cableado expuesto y residuos orgánicos intrusivos. + camera_and_composition: Pasillos estrechos con profundidad amenazante y rutas secundarias de evasión. + atmosphere_and_mood: Opresiva, incómoda y paranoica. + rendering_and_quality: Horror gameplay con tensión ambiental sostenida y telemetría visual de peligro. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-020.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-020.yaml index ecf21c55..bc9806c6 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-020.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-020.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - arcane-temples-and-mythic-realms visualDna: - aesthetic: Fantasy star harbor with a faction-driven economy. - subject_treatment: Armed merchants, organic ships, and escort guards. - color_and_tone: Solar gold, space purple, and deep blue. - lighting_and_shadow: Cosmic backlight and dock beacons. - texture_and_material: Nacre-like hulls, burnished metal, and ceremonial fabrics. - camera_and_composition: Panoramic view with multiple narrative focal points. - atmosphere_and_mood: Fragile diplomacy, ambition, and latent danger. - rendering_and_quality: Chapter-cover style with robust worldbuilding. + aesthetic: Space-trade RPG de puertos estelares con economía faccional, diplomacia armada y logística interestelar. + subject_treatment: Clases mercantiles/escolta con identidad visual de corporación, sindicato o casa comercial. + color_and_tone: Oro solar, púrpura espacial y azul profundo para marcar riqueza, neutralidad y conflicto. + lighting_and_shadow: Contraluz cósmico, balizas de muelle y focos de inspección de carga por zona. + texture_and_material: Cascos nacarados, metal bruñido, textiles ceremoniales y superficies de carga modular. + camera_and_composition: Panorámica de hub con rutas de tránsito, puntos de negociación y áreas de disputa visibles. + atmosphere_and_mood: Ambiciosa, diplomática y volátil. + rendering_and_quality: Worldbuilding key art orientado a sistemas de comercio, reputación y control de rutas. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-021.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-021.yaml index eb326165..d1023e62 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-021.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-021.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - speed-sport-and-competitive-arenas visualDna: - aesthetic: Arid motorsport ceremonial-futurism with pageantry-grade race iconography and high-velocity desert spectacle. - subject_treatment: Performance drivers as faction-athlete silhouettes, lightweight combat-sport armor, heraldic motifs integrated into race gear. - color_and_tone: Sun-scorched ochres, oxidized turquoise, heat-haze ambers, and disciplined crimson accents for team readability. - lighting_and_shadow: Low-angle desert key light, elongated cast shadows, backlit dust plumes, and high-contrast rim separation on moving forms. - texture_and_material: Wind-abraded stone composites, burnished alloy fairings, stitched leather interfaces, and particulate sand abrasion layers. - camera_and_composition: Apex-turn framing with lateral motion vectors, multi-depth track geometry, and strong directional flow through foreground dust. - atmosphere_and_mood: Ritualized rivalry, kinetic honor culture, and high-stakes competitive intensity under harsh climate pressure. - rendering_and_quality: Premium event-key-art finish with crisp silhouette hierarchy, readable faction coding, and motion-rich environmental storytelling. + aesthetic: Racing-arcade ceremonial en desierto hostil, centrado en velocidad sostenida, control de derrape y rivalidad por escuderías. + subject_treatment: Pilotos como siluetas de facción con armadura ligera y señalética visual por rol de carrera. + color_and_tone: Ocres abrasados, turquesa oxidado, ámbar térmico y rojo disciplinado para lectura por equipo. + lighting_and_shadow: Luz rasante de tarde, sombras largas y polvo a contraluz para reforzar percepción de velocidad. + texture_and_material: Compuestos erosionados por arena, aleaciones bruñidas y desgaste mecánico por fricción constante. + camera_and_composition: Curva de apex con líneas de trayectoria, rutas de adelantamiento y capas de profundidad competitiva. + atmosphere_and_mood: Rivalidad ritual, intensidad técnica y presión climática permanente. + rendering_and_quality: Key-art gameplay-first con jerarquía clara de vehículos, equipos y lectura de circuito. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-022.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-022.yaml index 6ad35e57..347f6269 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-022.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-022.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - wilderness-hunts-and-harsh-frontiers visualDna: - aesthetic: Improvised arctic market in a hostile survival world. - subject_treatment: Armed traders and hunters with thermal lanterns. - color_and_tone: Glacial blues, warm amber, and smoke gray. - lighting_and_shadow: Localized lantern light against dense blizzard conditions. - texture_and_material: Scratched ice, heavy canvas, and wet wood. - camera_and_composition: Central alley with lively side stalls. - atmosphere_and_mood: Precarious refuge through an endless night. - rendering_and_quality: Readable, narrative survival hub. + aesthetic: Survival sandbox ártico con enclave comercial improvisado como nodo de crafting, trueque y expedición. + subject_treatment: Traders, hunters y scouts armados con perfiles de clase legibles por equipo térmico. + color_and_tone: Azul glaciar, ámbar cálido y gris humo para separar refugio de amenaza exterior. + lighting_and_shadow: Fuentes puntuales de farol sobre blizzard denso, con contraste funcional de zonas seguras. + texture_and_material: Hielo rayado, lona pesada, madera húmeda y metal congelado por uso extremo. + camera_and_composition: Calle central de hub con puestos laterales, puntos de misión y salida a whiteout. + atmosphere_and_mood: Refugio precario, cooperación tensa y supervivencia nocturna prolongada. + rendering_and_quality: Hub visual de alta legibilidad para economía de recursos y preparación de runs. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-023.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-023.yaml index 73755436..8634317f 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-023.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-023.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - sci-fi-frontiers-and-mech-zones visualDna: - aesthetic: Colony simulation in a botanical orbital ring. - subject_treatment: Ecological engineers and autonomous agricultural drones. - color_and_tone: Vivid greens, clinical white, and space blue. - lighting_and_shadow: Diffused dome light with soft reflections. - texture_and_material: Solar panels, curved glass, and damp leaves. - camera_and_composition: Vista modular por sectores conectados. - atmosphere_and_mood: Technical optimism and sustainable growth. - rendering_and_quality: UI-friendly para city builder complejo. + aesthetic: Colony-builder orbital biofílico orientado a balance entre producción, sostenibilidad y expansión modular. + subject_treatment: Ingenieros ecológicos y drones agrícolas por función (siembra, mantenimiento, transporte). + color_and_tone: Verdes vivos, blanco clínico y azul espacial para lectura de salud sistémica. + lighting_and_shadow: Luz difusa de domo con reflejos suaves que facilitan lectura de overlays estratégicos. + texture_and_material: Paneles solares, vidrio curvo, sustrato húmedo y estructura compuesta de alta eficiencia. + camera_and_composition: Vista sectorial conectada con nodos de logística, energía y cultivo claramente jerarquizados. + atmosphere_and_mood: Optimismo técnico, crecimiento metódico y gestión de riesgo controlada. + rendering_and_quality: Visual city-builder UI-friendly con claridad de cadenas productivas y estados de colonia. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-024.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-024.yaml index 5d30d6fc..348ba2b5 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-024.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-024.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - heists-horror-and-underworld-runs visualDna: - aesthetic: Arcade adventure in a mechanical temple of ancient traps. - subject_treatment: Fast explorer with lightweight relic-hunter gear. - color_and_tone: Ancient sand, jade, and alert red. - lighting_and_shadow: Sun rays slicing through geometric cuts. - texture_and_material: Carved stone, wood, and oxidized metal. - camera_and_composition: Escape-oriented perspective with extreme depth. - atmosphere_and_mood: Urgency, quick reflexes, and constant risk. - rendering_and_quality: High-readability endless-runner environment. + aesthetic: Runner-adventure de trampas mecánicas con loop de reflejos, timing y memorización de patrones. + subject_treatment: Explorer ligero con kit relic-hunter y señales claras de vulnerabilidad/ventana de acción. + color_and_tone: Arena ancestral, jade funcional y rojo alerta para telegraph de peligro inmediato. + lighting_and_shadow: Rayos solares recortados y contraste direccional para anticipar obstáculos secuenciados. + texture_and_material: Piedra tallada, madera estructural y metal oxidado de mecanismos activos. + camera_and_composition: Perspectiva de fuga con profundidad extrema, lanes y puntos de salto inequívocos. + atmosphere_and_mood: Urgente, rítmica y punitiva, de riesgo constante. + rendering_and_quality: Entorno endless-runner gameplay-first con lectura instantánea de hazards y ritmo. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-025.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-025.yaml index 24467dfa..d6c507e7 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-025.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-025.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - neon-urban-and-night-ops visualDna: - aesthetic: Urban beat-em-up in neon-flooded underpasses. - subject_treatment: Stylized gangs and iconic-silhouette protagonists. - color_and_tone: Fuchsia, acid green, and graphite black. - lighting_and_shadow: Broken lights, reflective puddles, and backlighting. - texture_and_material: Wet concrete, graffiti, and metal pipes. - camera_and_composition: Classic side view with active background layers. - atmosphere_and_mood: Street energy and rhythmic combat. - rendering_and_quality: Playable art for fighting stages. + aesthetic: Beat-em-up urbano neon-noir con combate por oleadas, control de espacio y flow rítmico. + subject_treatment: Gangs estilizadas y protagonistas iconográficos con lectura de rol por postura y arma improvisada. + color_and_tone: Fucsia, verde ácido y grafito para contraste de facción y claridad de impacto. + lighting_and_shadow: Luces rotas, charcos reflectivos y contraluces que enfatizan silueta de combate. + texture_and_material: Hormigón mojado, graffiti táctico, tuberías metálicas y señalética decadente. + camera_and_composition: Side-view clásico con capas activas, entradas laterales y zonas de combo. + atmosphere_and_mood: Energía callejera, agresiva y cadenciosa. + rendering_and_quality: Stage-art jugable con legibilidad de hit confirms, crowd control y desplazamiento lateral. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-026.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-026.yaml index f2267a36..1d782341 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-026.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-026.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - sieges-warfronts-and-last-stands visualDna: - aesthetic: SRPG set in ruins overgrown with intelligent vegetation. - subject_treatment: Squads with strongly role-contrasted classes. - color_and_tone: Moss green, beige stone, and scarlet accents. - lighting_and_shadow: Midday light filtered through vines. - texture_and_material: Cracked marble, damp leaves, and tactical fabrics. - camera_and_composition: Clean isometric view by combat tiles. - atmosphere_and_mood: Measured strategy and tactical tension. - rendering_and_quality: Battle map with perfect readability. + aesthetic: Tactical-RPG isométrico en ruinas vivas, orientado a posicionamiento, cobertura orgánica y control por turnos. + subject_treatment: Escuadras de clases contrastadas (tank/skirmisher/support/ranger) con silueta inequívoca. + color_and_tone: Verde musgo, piedra beige y acentos escarlata para codificar aliados, amenaza y objetivo. + lighting_and_shadow: Luz filtrada por enredaderas con sombras suaves que no rompen lectura de casillas. + texture_and_material: Mármol fracturado, follaje húmedo, tejido táctico y raíces estructurales activas. + camera_and_composition: Isométrica limpia por tiles con alturas, cuellos de botella y líneas de avance evidentes. + atmosphere_and_mood: Estratégica, calculada y tensa. + rendering_and_quality: Battle-map readability-first con telemetría visual de alcance, cobertura y prioridad táctica. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-027.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-027.yaml index 973225cf..c46df3fd 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-027.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-027.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - wilderness-hunts-and-harsh-frontiers visualDna: - aesthetic: Cooperative shooter in hostile planetary mines. - subject_treatment: Heavy workers with modular tool-weapons. - color_and_tone: Dark copper, radar green, and industrial orange. - lighting_and_shadow: Lit helmets and zones of deep shadow. - texture_and_material: Fractured rock, mineral dust, and rough steel. - camera_and_composition: Descending tunnel with the objective in the distance. - atmosphere_and_mood: Extreme labor, camaraderie, and risk. - rendering_and_quality: Mission scene with strong objective emphasis. + aesthetic: Co-op extraction shooter en minería planetaria extrema, con foco en objetivos, evacuación y supervivencia de escuadra. + subject_treatment: Operarios pesados con tool-weapons modulares y roles complementarios de perforación/defensa/soporte. + color_and_tone: Cobre oscuro, verde radar y naranja industrial para lectura de objetivo y estado de equipo. + lighting_and_shadow: Cascos iluminados, focos de maquinaria y sombras profundas de túnel activo. + texture_and_material: Roca fracturada, polvo mineral denso, acero rugoso y marcas de perforación reciente. + camera_and_composition: Túnel descendente con objetivos a distancia, rutas de retorno y zonas de emboscada legibles. + atmosphere_and_mood: Labor extrema, camaradería funcional y riesgo continuo. + rendering_and_quality: Mission visual gameplay-first con claridad de objetivo, amenaza y ruta de extracción. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-028.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-028.yaml index bb2497a6..9ea25168 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-028.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-028.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - arcane-temples-and-mythic-realms visualDna: - aesthetic: Duel arena in a monastery suspended among clouds. - subject_treatment: Disciplined duelists with ritual weapons. - color_and_tone: Stone white, sky blue, and restrained gold. - lighting_and_shadow: Clean natural light with minimal shadows. - texture_and_material: Polished marble, lacquered wood, and ceremonial cloth. - camera_and_composition: Central symmetry emphasizing balance. - atmosphere_and_mood: Tense serenity and competitive honor. - rendering_and_quality: Elegant, readable PvP stage. + aesthetic: Duel-fighter ceremonial en monasterio celeste, centrado en spacing, timing y neutral game. + subject_treatment: Duelistas disciplinados con armas rituales y perfiles de alcance claramente diferenciados. + color_and_tone: Blanco pétreo, azul cielo y oro sobrio para claridad de escenario y foco en combatientes. + lighting_and_shadow: Luz natural limpia con sombra contenida para preservar lectura de animación frame a frame. + texture_and_material: Mármol pulido, madera lacada, tela ceremonial y detalles de desgaste por entrenamiento. + camera_and_composition: Simetría central de arena con límites claros, zonas de presión y reset neutral. + atmosphere_and_mood: Serena, tensa y honorable. + rendering_and_quality: PvP stage elegante con legibilidad de hitbox, distancia y estados de ventaja. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-029.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-029.yaml index 09f055d9..6eea5782 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-029.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-029.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - wilderness-hunts-and-harsh-frontiers visualDna: - aesthetic: Colorful underwater kingdom with coral architecture. - subject_treatment: Aquatic guardians and abyssal mounts. - color_and_tone: Bright turquoises, coral red, and pearl white. - lighting_and_shadow: Filtered rays and dynamic caustics. - texture_and_material: Porous coral, nacre-like scales, and seaweed. - camera_and_composition: Wide perspective with a terraced city layout. - atmosphere_and_mood: Fantastical wonder and elegant danger. - rendering_and_quality: World key visual for the main campaign. + aesthetic: Action-RPG submarino de reino coralino, orientado a exploración vertical, patrullas y combate de movilidad acuática. + subject_treatment: Guardianes anfibios y monturas abisales por rol (vanguardia, control, persecución). + color_and_tone: Turquesa brillante, rojo coral y blanco nacarado para separar rutas seguras y zonas hostiles. + lighting_and_shadow: Rayos filtrados, caústicas dinámicas y capas de profundidad para navegación tridimensional. + texture_and_material: Coral poroso, escamas nacaradas, algas estructurales y arquitectura bio-mineral viva. + camera_and_composition: Perspectiva amplia con ciudad aterrazada, corrientes principales y puntos de ascenso/descenso. + atmosphere_and_mood: Maravillosa, elegante y peligrosamente impredecible. + rendering_and_quality: Worldbuilding gameplay key-art con lectura clara de rutas, amenaza y jerarquía territorial. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-030.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-030.yaml index 91b76171..29cbbd02 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-030.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-030.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - heists-horror-and-underworld-runs visualDna: - aesthetic: Corrupted carnival-horror spectacle blending festive visual language with predatory underworld game-space design. - subject_treatment: Twisted ringmaster archetypes, malfunctioning attraction constructs, and exaggerated mascot-fear iconography. - color_and_tone: Nicotine yellows, coagulated carmine, bruise-violet haze, and intermittent sodium-white glare for unstable tonal rhythm. - lighting_and_shadow: Erratic marquee flicker, strobing practicals, volumetric fog beams, and deep pocketed shadows at circulation edges. - texture_and_material: Cracked enamel coatings, mildew-stained canvas, rusted ride mechanics, and grease-darkened junction hardware. - camera_and_composition: Choke-point entry composition with layered threat reveals, asymmetrical framing tension, and forced perspective funnels. - atmosphere_and_mood: Carnivalesque dread, malicious playfulness, and escalating boss-arena unpredictability. - rendering_and_quality: High-impact encounter concept-art fidelity with clear gameplay readability and grotesque environmental character. + aesthetic: Horror-action de parque maldito con diseño de encounter arena, telegraphs engañosos y progresión por zonas corruptas. + subject_treatment: Arquetipos ringmaster monstruoso, atracciones fallidas hostiles y simbología mascot-fear como señal de mecánica. + color_and_tone: Amarillos nicotina, carmín coagulado, violeta amoratado y blanco sodio intermitente para inestabilidad emocional. + lighting_and_shadow: Parpadeo errático de marquesina, estrobos prácticos y sombras profundas en bordes de circulación. + texture_and_material: Esmalte cuarteado, lona con moho, mecánica oxidada y grasa envejecida en nodos críticos. + camera_and_composition: Entradas en choke-point con revelación escalonada de amenazas y funnels de presión. + atmosphere_and_mood: Macabra, burlona y crecientemente impredecible. + rendering_and_quality: Encounter key-art de alto impacto con legibilidad de fases de boss y hazards ambientales grotescos. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-031.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-031.yaml index 7289b86c..9c285096 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-031.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-031.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - speed-sport-and-competitive-arenas visualDna: - aesthetic: Strategic battlefield inspired by an astral board. - subject_treatment: Archetypal units with strict visual hierarchy. - color_and_tone: Deep indigo, silver, and turquoise accents. - lighting_and_shadow: Uniform cosmic glow with skill focal highlights. - texture_and_material: Stellar marble, liquid energy, and fine metal. - camera_and_composition: Soft top-down view for systemic readability. - atmosphere_and_mood: Tactical calm and cerebral anticipation. - rendering_and_quality: Arte de reglas claras para strategy game. + aesthetic: Auto-battler táctico astral inspirado en tablero, centrado en economía de unidades, sinergias y posicionamiento previo. + subject_treatment: Unidades arquetípicas con jerarquía visual estricta por rol (frontline, burst, support, control). + color_and_tone: Índigo profundo, plata y acentos turquesa para codificar rareza, estado y alineación. + lighting_and_shadow: Brillo cósmico uniforme con highlights focales para ultimates y activaciones clave. + texture_and_material: Mármol estelar, energía fluida y metal fino de interfaz arcano-tecnológica. + camera_and_composition: Top-down suave con cuadrícula implícita y espacios limpios para lectura sistémica. + atmosphere_and_mood: Calma cerebral, cálculo estratégico y anticipación táctica. + rendering_and_quality: Strategy art de reglas claras con telemetría visual de sinergia, amenaza y tempo. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-032.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-032.yaml index fcf2abe4..5cae11f9 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-032.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-032.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - neon-urban-and-night-ops visualDna: - aesthetic: Criminal stealth in a rainy midnight harbor. - subject_treatment: Agile smugglers and mechanized guards. - color_and_tone: Petrol blue, sodium orange, and deep black. - lighting_and_shadow: Wet streetlights and container shadows. - texture_and_material: Painted metal, puddles, and wet ropes. - camera_and_composition: Crossing sightlines designed for stealth play. - atmosphere_and_mood: Nerve, opportunity, and imminent risk. - rendering_and_quality: Infiltration map with clear landmarks. + aesthetic: Stealth-heist portuario nocturno con infiltración modular, extracción silenciosa y rutas de contrabando. + subject_treatment: Smugglers ágiles y guardias mecanizados con lectura clara de patrulla y respuesta. + color_and_tone: Azul petróleo, naranja sodio y negro profundo para separar cobertura, alarma y sombra útil. + lighting_and_shadow: Farolas mojadas, contraluces de contenedor y charcos reflectivos como riesgo de exposición. + texture_and_material: Metal pintado gastado, cuerdas húmedas, asfalto aceitado y herrumbre industrial. + camera_and_composition: Sightlines cruzadas con rutas altas/bajas, puntos ciegos y nodos de botín. + atmosphere_and_mood: Nerviosa, oportunista y al borde del fallo. + rendering_and_quality: Infiltration map gameplay-first con landmarks inequívocos y lectura de sigilo por capas. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-033.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-033.yaml index 24de457e..7302a8ee 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-033.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-033.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - sci-fi-frontiers-and-mech-zones visualDna: - aesthetic: Futuristic rural defense in automated orchards. - subject_treatment: Armed agricultural drones and engineer farmers. - color_and_tone: Vibrant greens, industrial orange, and solar white. - lighting_and_shadow: Warm afternoon light with active sensor highlights. - texture_and_material: Waxy fruit, enameled metal, and damp soil. - camera_and_composition: Crop corridors functioning as defensive lanes. - atmosphere_and_mood: Rural ingenuity and community resilience. - rendering_and_quality: Fresh, original tower-defense scene. + aesthetic: Tower-defense rural sci-fi en huertos automatizados, orientado a defensa por carriles vivos y gestión de recursos. + subject_treatment: Drones agrícolas armados e ingenieros-campesinos con roles de soporte, control y daño. + color_and_tone: Verdes vibrantes, naranja industrial y blanco solar para distinguir producción y combate. + lighting_and_shadow: Tarde cálida con highlights de sensores y señalización activa de torres. + texture_and_material: Fruta cerosa, metal esmaltado, tierra húmeda y tubería de riego inteligente. + camera_and_composition: Corredores de cultivo como lanes defensivos con choke-points y nodos de upgrade. + atmosphere_and_mood: Ingenio comunitario, urgencia agrícola y resistencia cooperativa. + rendering_and_quality: Tower-defense visual fresco con legibilidad alta de oleadas, rango y estado estructural. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-034.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-034.yaml index 45b31446..6d9ab008 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-034.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-034.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - wilderness-hunts-and-harsh-frontiers visualDna: - aesthetic: Tactical shooter in highly vertical red canyons. - subject_treatment: Expert marksmen with geological camouflage. - color_and_tone: Mineral red, dry beige, and clear sky blue. - lighting_and_shadow: Aggressive sunlight with defined shadows. - texture_and_material: Sedimentary rock, fine dust, and rough fabric. - camera_and_composition: Extreme depth across cliffs and bridges. - atmosphere_and_mood: Precision, patience, and distant lethality. - rendering_and_quality: Competitive stage with clear readability lines. + aesthetic: Tactical shooter de largo alcance en cañones verticales, centrado en control de líneas y ventaja de altura. + subject_treatment: Marksmen especialistas con camuflaje geológico y kits de reposicionamiento. + color_and_tone: Rojo mineral, beige seco y azul limpio para separar terreno, cobertura y exposición. + lighting_and_shadow: Sol agresivo con sombras definidas que marcan ventanas de disparo y tránsito. + texture_and_material: Roca sedimentaria, polvo fino, textil áspero y equipamiento antiabrasión. + camera_and_composition: Profundidad extrema entre riscos y puentes, con rutas de flanqueo claramente trazadas. + atmosphere_and_mood: Precisa, paciente y letal a distancia. + rendering_and_quality: Competitive map readability-first con claridad de sightlines, sniping nests y riesgo de cruce. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-035.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-035.yaml index 86ebbe59..d23e6e24 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-035.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-035.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - sieges-warfronts-and-last-stands visualDna: - aesthetic: Epic fantasy aboard an armored train crossing kingdoms. - subject_treatment: Car defenders wielding elemental weapons. - color_and_tone: Dark steel, heroic gold, and night blue. - lighting_and_shadow: Rail sparks and moving magic. - texture_and_material: Riveted iron, aged wood, and leather. - camera_and_composition: Forward-moving perspective with frontal threat. - atmosphere_and_mood: Urgent travel, cooperation, and mobile epic scale. - rendering_and_quality: High-readability co-op mission art. + aesthetic: Co-op defense sobre tren blindado en fantasía bélica, con progreso por vagones y eventos de asedio móvil. + subject_treatment: Defensores por rol elemental (control, ruptura, soporte, anti-swarm) con identidad visual clara. + color_and_tone: Acero oscuro, oro heroico y azul nocturno para codificar ofensiva, defensa y estado crítico. + lighting_and_shadow: Chispas de riel, magia en tránsito y sombras dinámicas por velocidad del convoy. + texture_and_material: Hierro remachado, madera envejecida, cuero reforzado y mecanismos de artillería ritual. + camera_and_composition: Perspectiva de avance con amenazas frontales y laterales por carril de vagón. + atmosphere_and_mood: Urgente, cooperativa y épica en movimiento constante. + rendering_and_quality: Mission art gameplay-first con legibilidad de objetivos por vagón, daño y prioridad enemiga. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-036.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-036.yaml index 0cf8eac1..58502d01 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-036.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-036.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - puzzle-chambers-and-adventure-setpieces visualDna: - aesthetic: Puzzle chamber in a lunar monolith of ancient technology. - subject_treatment: Lone explorer interacting with moving runes. - color_and_tone: Ash gray, soft blue, and spectral white. - lighting_and_shadow: Central halo with soft geometric shadows. - texture_and_material: Smooth basalt, lunar dust, and opaque crystal. - camera_and_composition: Symmetric composition oriented around mechanics. - atmosphere_and_mood: Contemplation, ingenuity, and mystery. - rendering_and_quality: Puzzle space with functional clarity. + aesthetic: Puzzle-chamber lunar de tecnología ancestral con mecánicas de rotación, sincronía y energía diferida. + subject_treatment: Explorador solitario con feedback visual claro sobre interacción de runas móviles. + color_and_tone: Gris ceniza, azul tenue y blanco espectral para lectura de estado activo/inactivo. + lighting_and_shadow: Halo central con sombras geométricas suaves que revelan alineaciones correctas. + texture_and_material: Basalto pulido, polvo lunar, cristal opaco y juntas de mecanismo antiguo. + camera_and_composition: Simetría funcional orientada a mecánicas, con foco en nodos de resolución. + atmosphere_and_mood: Contemplativa, ingeniosa y enigmática. + rendering_and_quality: Puzzle-space clarity-first con telegraph nítido de reglas, progreso y solución. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-037.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-037.yaml index c1b7ee24..975f9cae 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-037.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-037.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - puzzle-chambers-and-adventure-setpieces visualDna: - aesthetic: Colorful fantasy in a giant-mushroom biome. - subject_treatment: Agile explorers and friendly borderline creatures. - color_and_tone: Organic magenta, mint green, and warm cream. - lighting_and_shadow: Soft light filtered through giant mushroom caps. - texture_and_material: Spongy surfaces, moss, and living wood. - camera_and_composition: Curved path with playful verticality. - atmosphere_and_mood: Wonder, adventure, and light humor. - rendering_and_quality: Platformer world with strong identity. + aesthetic: Platformer-exploration whimsical en bioma de hongos gigantes, con énfasis en salto, momentum y rutas secretas. + subject_treatment: Exploradores ágiles y criaturas liminales amistosas con lectura clara de interacción/no amenaza. + color_and_tone: Magenta orgánico, verde menta y crema cálido para navegación amable por bioma. + lighting_and_shadow: Luz suave filtrada por sombreros gigantes, con contraste moderado para lectura de plataformas. + texture_and_material: Superficies esponjosas, musgo vivo, madera orgánica y setas con propiedades de rebote. + camera_and_composition: Camino curvo con verticalidad lúdica, checkpoints visuales y reward loops. + atmosphere_and_mood: Maravillosa, aventurera y con humor ligero. + rendering_and_quality: Platformer world gameplay-first con identidad fuerte y legibilidad de salto/tránsito. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-038.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-038.yaml index 696e7b6b..8f875abd 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-038.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-038.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - sieges-warfronts-and-last-stands visualDna: - aesthetic: Tactical naval combat among metallic reefs. - subject_treatment: Fragatas ligeras y corbetas de asalto. - color_and_tone: Steel blue, white foam, and signal red. - lighting_and_shadow: Clouded sky with cold marine reflections. - texture_and_material: Wet plating, taut ropes, and rough water. - camera_and_composition: Vista amplia con rutas de flanqueo. - atmosphere_and_mood: Maneuvering, pressure, and maritime control. - rendering_and_quality: Naval map with strategic readability. + aesthetic: Naval tactics de escaramuza en arrecifes metálicos, orientado a maniobra, control de ruta y fuego cruzado. + subject_treatment: Fragatas ligeras y corbetas de asalto diferenciadas por perfil de alcance y movilidad. + color_and_tone: Azul acero, espuma blanca y rojo señal para lectura de aliados, daño y alerta. + lighting_and_shadow: Cielo cubierto con reflejos marinos fríos y destellos de artillería. + texture_and_material: Planchas húmedas, cabos tensos, óxido salino y oleaje áspero de alta fricción. + camera_and_composition: Vista amplia con corredores de flanqueo, zonas de bloqueo y puntos de emboscada. + atmosphere_and_mood: Tensa, táctica y dominada por control marítimo. + rendering_and_quality: Naval map strategy-first con legibilidad de vectores, alcance y prioridades de objetivo. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-039.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-039.yaml index 93a029e3..e9b8b859 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-039.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-039.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - speed-sport-and-competitive-arenas visualDna: - aesthetic: Gothic performance-arena rhythm aesthetic merging operatic stagecraft with supernatural timing-system visuals. - subject_treatment: Phantom performers as cadence anchors, silhouette-led choreography, and beat-synced gesture language. - color_and_tone: Royal purples, tarnished gilt, spectral cyan emissions, and low-key burgundy shadows for dramatic temporal contrast. - lighting_and_shadow: Programmed spotlight cones, pulse-reactive bloom, haze-assisted depth slicing, and synchronized shadow beats. - texture_and_material: Worn lacquer stage boards, crushed velvet drapery, oxidized brass ornament, and particulate smoke strata. - camera_and_composition: Proscenium-forward framing with layered stage planes, rhythm-lane readability, and timing hotspot emphasis. - atmosphere_and_mood: Theatrical suspense, musical urgency, and ceremonial showdown energy. - rendering_and_quality: Competitive rhythm-battle key-art clarity with precise visual timing cues and premium concert-horror polish. + aesthetic: Rhythm-battle gótico de arena escénica, centrado en timing estricto, patrones musicales y lectura de carriles. + subject_treatment: Performers fantasmales como anclas de compás, coreografía por silueta y gestualidad beat-synced. + color_and_tone: Púrpura real, dorado gastado, cian espectral y sombras burdeos para contraste temporal dramático. + lighting_and_shadow: Conos de spotlight programados, bloom pulsado y sombras sincronizadas al tempo. + texture_and_material: Madera lacada desgastada, terciopelo comprimido, latón oxidado y niebla particulada. + camera_and_composition: Framing de proscenio con capas de escenario, hotspots de tempo y lanes claramente visibles. + atmosphere_and_mood: Teatral, urgente y ceremonialmente competitiva. + rendering_and_quality: Key-art competitivo de rhythm-game con cues visuales precisas de timing, combo y fase. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-040.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-040.yaml index 033a41e5..b16fd9b5 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-040.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-040.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - wilderness-hunts-and-harsh-frontiers visualDna: - aesthetic: Cooperative hunt in open electric plains. - subject_treatment: Mounted hunters facing colossal beasts. - color_and_tone: Storm blue, lightning yellow, and dark earth. - lighting_and_shadow: Intermittent lightning and dramatic skies. - texture_and_material: Wet fur, armored leather, and mud. - camera_and_composition: Large-scale framing with a dominant monster. - atmosphere_and_mood: High-risk epic action, coordination, and reward. - rendering_and_quality: Key art for a hunting-season campaign. + aesthetic: Co-op monster-hunt en llanuras eléctricas abiertas, con énfasis en rastreo, coordinación de escuadra y ejecución por ventanas. + subject_treatment: Cazadores montados y bestias colosales con lectura clara de rol, amenaza y patrón de ataque. + color_and_tone: Azul tormenta, amarillo rayo y tierra oscura para codificar clima, peligro y terreno. + lighting_and_shadow: Relámpagos intermitentes, cielos dramáticos y flashes de impacto para telegraph de fase. + texture_and_material: Pelaje mojado, cuero blindado, barro pesado y marcas de zarpazo sobre terreno saturado. + camera_and_composition: Escala amplia con monstruo dominante, rutas de cerco y líneas de escape visibles. + atmosphere_and_mood: Épica, riesgosa y altamente coordinada. + rendering_and_quality: Hunting-season key-art gameplay-first con claridad de patrón, objetivo y recompensa táctica. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-041.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-041.yaml index 363d2e2d..c7b9c540 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-041.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-041.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - wilderness-hunts-and-harsh-frontiers visualDna: - aesthetic: Forest stronghold in a woodland of permanent embers. - subject_treatment: Rangers with hybrid magic-technology gear. - color_and_tone: Ember orange, pine green, and smoke black. - lighting_and_shadow: Warm glows between dark trunks. - texture_and_material: Charred bark, leather, and tempered steel. - camera_and_composition: Outpost gate as the visual anchor. - atmosphere_and_mood: Constant vigilance and resilience. - rendering_and_quality: Defensive hub zone with strong character. + aesthetic: Frontier-defense RPG en bosque de brasas permanentes, orientado a patrulla, fortificación y caza reactiva. + subject_treatment: Rangers híbridos tecno-místicos con roles de rastreo, control y defensa de perímetro. + color_and_tone: Naranja brasa, verde pino y negro humo para separar refugio, amenaza y rutas. + lighting_and_shadow: Brillos cálidos entre troncos oscuros para lectura de vigilancia nocturna. + texture_and_material: Corteza carbonizada, cuero reforzado, acero templado y ceniza suspendida. + camera_and_composition: Portón del outpost como ancla, con líneas de defensa y accesos secundarios visibles. + atmosphere_and_mood: Vigilante, resistente y tácticamente austera. + rendering_and_quality: Defensive-hub gameplay-first con legibilidad de patrulla, alarma y respuesta. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-042.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-042.yaml index 2e72c539..f834157f 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-042.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-042.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - sci-fi-frontiers-and-mech-zones visualDna: - aesthetic: Quantum laboratory fractured by a dimensional rupture. - subject_treatment: Combat scientists and contained anomalies. - color_and_tone: Clinical white, rift violet, and ice blue. - lighting_and_shadow: Pulsos intermitentes de portal abierto. - texture_and_material: Armored glass, cables, and broken holography. - camera_and_composition: Central core with containment rings. - atmosphere_and_mood: Science at the limit and controlled chaos. - rendering_and_quality: AAA critical-incident scene. + aesthetic: Sci-fi incident-response en laboratorio cuántico, centrado en contención, sellado y gestión de anomalías. + subject_treatment: Científicos de combate y entidades contenidas por nivel de riesgo claramente codificado. + color_and_tone: Blanco clínico, violeta de fisura y azul hielo para lectura de estado de contención. + lighting_and_shadow: Pulsos intermitentes de portal con parpadeo de emergencia en áreas críticas. + texture_and_material: Vidrio blindado, cableado expuesto, holografía rota y módulos de confinamiento. + camera_and_composition: Núcleo central con anillos de contención y rutas de intervención por sector. + atmosphere_and_mood: Tensa, científica y caótica bajo protocolo. + rendering_and_quality: Critical-incident gameplay art con claridad de niveles de amenaza, ruta y objetivo. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-043.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-043.yaml index 6b05045a..ddf73ae4 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-043.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-043.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - neon-urban-and-night-ops visualDna: - aesthetic: Urban catastrophe with a colossal creature in the harbor. - subject_treatment: Evacuation teams and coastal artillery. - color_and_tone: Storm gray, alarm red, and marine cyan. - lighting_and_shadow: Mixed lightning strikes and industrial fire. - texture_and_material: Turbulent water, concrete, and bent steel. - camera_and_composition: Kaiju silhouette dominating the horizon. - atmosphere_and_mood: Overwhelming scale and civilian survival. - rendering_and_quality: Cinematic keyframe for a global event. + aesthetic: Urban-disaster action en puerto metropolitano, enfocado en evacuación dinámica y contención de amenaza colosal. + subject_treatment: Equipos de rescate y artillería costera por función (evac, suppression, shield). + color_and_tone: Gris tormenta, rojo alarma y cian marino para priorizar riesgo civil y respuesta táctica. + lighting_and_shadow: Relámpagos, incendios industriales y humo para telegraph de fases de crisis. + texture_and_material: Agua turbulenta, hormigón roto, acero doblado y residuos urbanos activos. + camera_and_composition: Horizonte dominado por kaiju con corredores de evacuación y puntos de defensa visibles. + atmosphere_and_mood: Abrumadora, urgente y de supervivencia colectiva. + rendering_and_quality: Event-scale gameplay key-art con legibilidad de rutas civiles, amenaza y objetivos de contención. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-044.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-044.yaml index 9ff80d07..f1d6c941 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-044.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-044.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - arcane-temples-and-mythic-realms visualDna: - aesthetic: Elegant infiltration in a palace of illusory mirrors. - subject_treatment: Spies in ceremonial attire with discreet gadgets. - color_and_tone: Soft gold, night blue, and royal purple. - lighting_and_shadow: Refracted chandeliers across multiple planes. - texture_and_material: Crystal, silk, marble, and polished metal. - camera_and_composition: Mirrored corridors with hidden routes. - atmosphere_and_mood: Glamour, deception, and social tension. - rendering_and_quality: Highly sophisticated stealth scene. + aesthetic: Social-stealth de gala en palacio ilusorio, orientado a engaño, acceso por estatus y fuga limpia. + subject_treatment: Espías ceremoniales con gadgets discretos y lectura de identidad por etiqueta/facción. + color_and_tone: Oro suave, azul nocturno y púrpura real para codificar zonas de prestigio y riesgo. + lighting_and_shadow: Candelabros refractados en múltiples planos para crear coberturas y falsos positivos visuales. + texture_and_material: Cristal facetado, seda de alto rango, mármol pulido y metal de ornamento funcional. + camera_and_composition: Corredores espejados con rutas ocultas, nodos de vigilancia y puntos de extracción. + atmosphere_and_mood: Glamorosa, engañosa y socialmente tensa. + rendering_and_quality: Stealth-playground de alta sofisticación con legibilidad de patrullas, cobertura y acceso. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-045.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-045.yaml index c1445d6f..eed278fd 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-045.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-045.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - sci-fi-frontiers-and-mech-zones visualDna: - aesthetic: Hunt for wild mechs in a metallic forest. - subject_treatment: Trackers wielding electromagnetic bows. - color_and_tone: Oxide green, copper, and electric blue. - lighting_and_shadow: Backlight filtered through steel leaves. - texture_and_material: Alloy trunks, organic cabling, and mud. - camera_and_composition: Stalking shot with prey in the background. - atmosphere_and_mood: Stealth, tension, and precision. - rendering_and_quality: Eco-hunting gameplay concept. + aesthetic: Mech-hunt táctico en bosque metálico vivo, centrado en rastreo de firmas, sigilo y captura selectiva. + subject_treatment: Trackers con arcos electromagnéticos y roles de scout, trampa y remate. + color_and_tone: Verde óxido, cobre y azul eléctrico para señalizar biomasa sintética y actividad mecánica. + lighting_and_shadow: Contraluz filtrado por follaje de acero con zonas de ocultamiento táctico. + texture_and_material: Troncado de aleación, cableado orgánico, barro conductor y depósitos de limadura. + camera_and_composition: Encuadre de acecho con presa al fondo y rutas de rodeo claramente legibles. + atmosphere_and_mood: Silenciosa, precisa y de tensión incremental. + rendering_and_quality: Hunting gameplay concept con claridad de firma objetivo, cobertura y ventana de ataque. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-046.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-046.yaml index abe392cc..d1dc1e2a 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-046.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-046.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - sci-fi-frontiers-and-mech-zones visualDna: - aesthetic: Nomadic camp following solar rail lines. - subject_treatment: Traveling clans with recycled technology. - color_and_tone: Solar yellow, rust red, and dusty blue. - lighting_and_shadow: Warm afternoon light with photovoltaic glints. - texture_and_material: Canvas, panels, and repaired wood. - camera_and_composition: Semicircular camp layout beside the tracks. - atmosphere_and_mood: Mobile community and hard-earned hope. - rendering_and_quality: Faction visual for an open-world RPG. + aesthetic: Open-world nomad-sci-fi de campamentos móviles sobre riel solar, enfocado en logística, ruta y supervivencia comunitaria. + subject_treatment: Clanes viajeros con tecnología recuperada y diferenciación visual por oficio itinerante. + color_and_tone: Amarillo solar, rojo óxido y azul polvoriento para mapear energía, desgaste y horizonte. + lighting_and_shadow: Tarde cálida con destellos fotovoltaicos que marcan nodos de recarga y actividad. + texture_and_material: Lona resistente, paneles reparados, madera recompuesta y metal reciclado. + camera_and_composition: Campamento semicircular junto a vías con zonas de comercio, taller y guardia. + atmosphere_and_mood: Esperanzada, austera y resiliente. + rendering_and_quality: Faction-worldbuilding gameplay art con lectura de circulación, abastecimiento y seguridad. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-047.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-047.yaml index b76ecc3a..2fb760d0 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-047.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-047.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - speed-sport-and-competitive-arenas visualDna: - aesthetic: Champion trial in a coliseum of living obsidian. - subject_treatment: Heroic gladiators with rune-forged armor. - color_and_tone: Volcanic black, inner red, and muted gold. - lighting_and_shadow: Glowing fissures and ritual spotlights. - texture_and_material: Glassy stone, forged metal, and sand. - camera_and_composition: Circular arena centered on the duelists. - atmosphere_and_mood: Brutal honor and ancestral spectacle. - rendering_and_quality: Key art de boss challenge. + aesthetic: Arena-combat ritual en coliseo de obsidiana viva, orientado a duelos por fases y lectura de patrón. + subject_treatment: Gladiadores heroicos con armadura rúnica, perfiles de alcance y tempo claramente diferenciados. + color_and_tone: Negro volcánico, rojo interno y oro apagado para jerarquía de amenaza y estatus. + lighting_and_shadow: Fisuras incandescentes y focos rituales que marcan zonas de castigo y apertura. + texture_and_material: Piedra vítrea, metal forjado, arena abrasiva y grietas activas por energía. + camera_and_composition: Arena circular con foco en duelistas, límites de ring y hazards periféricos. + atmosphere_and_mood: Brutal, honorable y ancestralmente espectacular. + rendering_and_quality: Boss-trial key-art gameplay-first con cues nítidas de fase, telegraph y oportunidad. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-048.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-048.yaml index ba5366b3..1ce4e41c 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-048.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-048.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - neon-urban-and-night-ops visualDna: - aesthetic: Neo-transit crystalpunk urbanism with militarized commuter infrastructure and high-throughput mobility design. - subject_treatment: Civilian-military overlap silhouettes, station sentry archetypes, and transit-role readable population layering. - color_and_tone: Electric cyan cores, clinical whites, lilac haze transitions, and steel-cool neutrals with alert-state accents. - lighting_and_shadow: Distributed platform luminaires, reflective canopy spill, holographic signage glow, and controlled hard-edge shadows. - texture_and_material: Faceted smart-glass skins, brushed transit alloys, anti-slip platform composites, and volumetric hologram artifacts. - camera_and_composition: Hub-centered circulation geometry with radial path vectors, multi-level depth lanes, and clear tactical sightlines. - atmosphere_and_mood: Ordered velocity, civic sophistication, and subdued security tension. - rendering_and_quality: AAA action-RPG environment concept quality with strong navigational readability and polished futurist material response. + aesthetic: Urban-action crystalpunk de movilidad masiva, centrado en control de estación, tránsito y seguridad cívica militarizada. + subject_treatment: Siluetas cívico-militares por función de estación (control, mantenimiento, respuesta). + color_and_tone: Cian eléctrico, blanco clínico, lila difuso y neutros acero con acentos de alerta. + lighting_and_shadow: Luminarias distribuidas, rebotes en marquesinas y glow holográfico para navegación por capas. + texture_and_material: Smart-glass facetado, aleación cepillada, compuestos antideslizantes y artefactos volumétricos UI. + camera_and_composition: Hub radial multi-nivel con vectores de circulación y sightlines tácticas limpias. + atmosphere_and_mood: Ordenada, veloz y con tensión de seguridad contenida. + rendering_and_quality: AAA environment concept gameplay-first con legibilidad robusta de rutas, accesos y estado operativo. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-049.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-049.yaml index 7ccdb8d0..df093d68 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-049.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-049.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - heists-horror-and-underworld-runs visualDna: - aesthetic: Night raid on a castle covered in magical thorns. - subject_treatment: Raid team with clearly differentiated roles. - color_and_tone: Moon blue, dark green, and ritual red. - lighting_and_shadow: Sparse torches and silver mist. - texture_and_material: Wet stone, vines, and old iron. - camera_and_composition: High walls with a clear entry point. - atmosphere_and_mood: Calculated risk and collective bravery. - rendering_and_quality: Dungeon-raid opening scene. + aesthetic: Dungeon-raid nocturno en fortaleza de espinas arcanas, orientado a asalto coordinado y progresión por capas defensivas. + subject_treatment: Equipo de incursión con roles explícitos de brecha, soporte, control y eliminación prioritaria. + color_and_tone: Azul lunar, verde oscuro y rojo ritual para lectura de ruta, trampa y objetivo. + lighting_and_shadow: Antorchas escasas, niebla plateada y sombras profundas para windows de entrada. + texture_and_material: Piedra mojada, enredaderas hostiles, hierro antiguo y barreras orgánicas activas. + camera_and_composition: Murallas altas con punto de entrada claro y rutas secundarias de infiltración. + atmosphere_and_mood: Calculada, valiente y tensa en cooperación. + rendering_and_quality: Raid-opening gameplay art con claridad de acceso, amenaza y priorización táctica. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-050.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-050.yaml index 7ae96f2d..00f2fe2a 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-050.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-050.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - heists-horror-and-underworld-runs visualDna: - aesthetic: Arctic horror at an isolated signal station. - subject_treatment: Armed technicians against unknown entities. - color_and_tone: Gray white, emergency red, and metallic blue. - lighting_and_shadow: Rotating beacon and omnipresent darkness. - texture_and_material: Packed snow, cold steel, and frost. - camera_and_composition: Central tower in an extremely empty landscape. - atmosphere_and_mood: Isolation, panic, and resilience. - rendering_and_quality: Survival visual with strong identity. + aesthetic: Survival-horror polar en estación de señal aislada, centrado en reparación de sistemas y defensa de perímetro. + subject_treatment: Técnicos armados vs entidades desconocidas, con lectura de rol por herramienta y protocolo. + color_and_tone: Blanco grisáceo, rojo emergencia y azul metálico para jerarquía de estado crítico. + lighting_and_shadow: Baliza rotatoria, penumbra dominante y ventanas de visibilidad intermitente. + texture_and_material: Nieve compacta, acero helado, escarcha y cableado expuesto por clima extremo. + camera_and_composition: Torre central en vacío hostil con rutas de acceso y puntos de fallo identificables. + atmosphere_and_mood: Aislada, paranoica y resistente. + rendering_and_quality: Survival gameplay visual con identidad fuerte y telemetría clara de riesgo operativo. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-051.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-051.yaml index 5829ce18..be85b841 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-051.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-051.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - puzzle-chambers-and-adventure-setpieces visualDna: - aesthetic: Arcane marketplace for a roguelike card game. - subject_treatment: Mystical merchants and animated artifacts. - color_and_tone: Sapphire blue, copper, and rich purple. - lighting_and_shadow: Magical lanterns with pulsing glow. - texture_and_material: Scrolls, carved wood, and gems. - camera_and_composition: Fan-shaped stands with a central focal point. - atmosphere_and_mood: Curiosity, strategy, and calculated risk. - rendering_and_quality: Highly readable run-selection hub. + aesthetic: Deckbuilder-roguelike hub arcano orientado a draft, compra de reliquias y preparación de run. + subject_treatment: Comerciantes místicos y artefactos animados con lectura de rareza y función. + color_and_tone: Azul zafiro, cobre y púrpura intenso para jerarquía de recompensa/riesgo. + lighting_and_shadow: Faroles mágicos pulsantes que marcan oferta activa y eventos especiales. + texture_and_material: Pergaminos, madera tallada, gemas facetadas y vitrinas rituales. + camera_and_composition: Stands en abanico con foco central para navegación clara entre opciones. + atmosphere_and_mood: Curiosa, estratégica y de riesgo calculado. + rendering_and_quality: Run-selection hub gameplay-first con claridad de rutas de build y economía. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-052.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-052.yaml index 32f54e71..4363d523 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-052.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-052.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - sieges-warfronts-and-last-stands visualDna: - aesthetic: PvP control point on an interdimensional bridge. - subject_treatment: Opposing squads with mobility gadgets. - color_and_tone: Plasma blue, rival orange, and titanium gray. - lighting_and_shadow: Rift energy as the dominant light source. - texture_and_material: Metallic surfaces, shields, and sparks. - camera_and_composition: Central axis with playable flanks. - atmosphere_and_mood: Frenetic competition and map control. - rendering_and_quality: Clear layout for objective mode. + aesthetic: Objective-PvP de captura en puente interdimensional, centrado en control de punto y rotación de escuadras. + subject_treatment: Escuadras rivales con gadgets de movilidad y roles de entrada/sostén/limpieza. + color_and_tone: Azul plasma, naranja rival y gris titanio para friend-foe clarity. + lighting_and_shadow: Energía de grieta como key light para telegraph de eventos y overtime. + texture_and_material: Superficies metálicas, escudos de campo y chispas de impacto sostenido. + camera_and_composition: Eje central contestado con flancos jugables y rutas de reconquista. + atmosphere_and_mood: Frenética, competitiva y de control territorial. + rendering_and_quality: Objective-mode map con layout nítido de punto, cobertura y líneas de empuje. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-053.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-053.yaml index 36e148cb..488ea0f6 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-053.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-053.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - arcane-temples-and-mythic-realms visualDna: - aesthetic: Mystical swamp with ritual combat circles. - subject_treatment: Clan witches and summoned spirits. - color_and_tone: Dark green, amber, and misty violet. - lighting_and_shadow: Magical luminescence in dense fog. - texture_and_material: Murky water, roots, and wet stone. - camera_and_composition: Circular clearings connected by walkways. - atmosphere_and_mood: Sorcery, danger, and theatrical flair. - rendering_and_quality: Fantasy stage for tactical combat. + aesthetic: Tactical-fantasy de coven en pantano ritual, orientado a zonas de control, invocación y deny de terreno. + subject_treatment: Brujas de clan y espíritus invocados con silueta clara por escuela mágica. + color_and_tone: Verde oscuro, ámbar y violeta brumoso para separar utilidad, amenaza y ritual activo. + lighting_and_shadow: Bioluminiscencia mágica en niebla densa con telegraph de hechizos por anillo. + texture_and_material: Agua turbia, raíces vivas, piedra húmeda y tótems de canalización. + camera_and_composition: Claros circulares conectados por pasarelas con choke-points tácticos. + atmosphere_and_mood: Arcana, peligrosa y teatralmente agresiva. + rendering_and_quality: Fantasy-combat stage gameplay-first con legibilidad de áreas, cooldown y prioridad. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-054.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-054.yaml index 2aac47bc..c64702b5 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-054.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-054.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - heists-horror-and-underworld-runs visualDna: - aesthetic: Futuristic western featuring a train heist in a copper canyon. - subject_treatment: Jetpack bandits and railway guards. - color_and_tone: Bright copper, sky blue, and charcoal black. - lighting_and_shadow: Harsh sun with backlit dust. - texture_and_material: Aged wood, riveted steel, and dry earth. - camera_and_composition: Tren en diagonal con foco en abordaje. - atmosphere_and_mood: Explosive action and narrative tension. - rendering_and_quality: Cinematic mission keyframe. + aesthetic: Heist-western futurista sobre tren en cañón cobrizo, centrado en abordaje, saqueo y escape en movimiento. + subject_treatment: Bandidos con jetpack y guardias ferroviarios por rol (defensa, persecución, corte de ruta). + color_and_tone: Cobre brillante, azul cielo y negro carbón para lectura de facción y estado de alerta. + lighting_and_shadow: Sol duro con polvo a contraluz para enfatizar velocidad y exposición. + texture_and_material: Madera envejecida, acero remachado, tierra seca y humo de propulsión. + camera_and_composition: Tren diagonal con puntos de salto, ventanas de abordaje y rutas de repliegue. + atmosphere_and_mood: Explosiva, audaz y narrativamente tensa. + rendering_and_quality: Mission key-art gameplay-first con claridad de objetivo, botín y extracción. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-055.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-055.yaml index 588235f5..92a011dc 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-055.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-055.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - arcane-temples-and-mythic-realms visualDna: - aesthetic: Palatial gardens for rotation-and-light puzzles. - subject_treatment: Living architecture functioning as a level mechanism. - color_and_tone: Jade green, orchid pink, and light marble. - lighting_and_shadow: Sunlight guided by moving mirrors. - texture_and_material: Petals, polished stone, and fine bronze. - camera_and_composition: Geometric paths with clear visual goals. - atmosphere_and_mood: Serene beauty and intellectual challenge. - rendering_and_quality: Highly readable puzzle environment. + aesthetic: Puzzle-garden palaciego de luz y rotación, orientado a cadenas de activación y lectura espacial fina. + subject_treatment: Arquitectura viva como mecanismo de nivel con feedback claro por estado. + color_and_tone: Verde jade, rosa orquídea y mármol claro para navegación serena y foco mecánico. + lighting_and_shadow: Luz solar redirigida por espejos móviles para progresión y desbloqueo de rutas. + texture_and_material: Pétalos, piedra pulida, bronce fino y superficies reflectantes calibrables. + camera_and_composition: Trazado geométrico con metas visuales explícitas y nodos puzzle encadenados. + atmosphere_and_mood: Serena, refinada y cognitivamente desafiante. + rendering_and_quality: Puzzle environment clarity-first con pistas visuales robustas y mínima ambigüedad. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-056.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-056.yaml index c56b77ab..f17c633b 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-056.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-056.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - neon-urban-and-night-ops visualDna: - aesthetic: Parkour chase in a carbon megacity. - subject_treatment: Rebel courier and pursuit drones. - color_and_tone: Matte black, bright cyan, and signal red. - lighting_and_shadow: Urban sunset with targeted neon highlights. - texture_and_material: Carbon fiber, glass, and concrete. - camera_and_composition: Jump route with vertical depth. - atmosphere_and_mood: Kinetic urgency and route control. - rendering_and_quality: Premium mobility scene. + aesthetic: Mobility-action parkour en megaciudad de carbono, centrado en persecución, momentum y elección de ruta. + subject_treatment: Courier rebelde vs drones de caza, con lectura de velocidad y estado de amenaza. + color_and_tone: Negro mate, cian brillante y rojo señal para guiar ruta, peligro y checkpoints. + lighting_and_shadow: Atardecer urbano con acentos neon orientados a navegación vertical. + texture_and_material: Fibra de carbono, vidrio estructural, hormigón técnico y superficies de agarre. + camera_and_composition: Ruta de salto con profundidad vertical, líneas de flujo y alternativas de escape. + atmosphere_and_mood: Cinética, urgente y técnicamente precisa. + rendering_and_quality: Mobility scene gameplay-first con legibilidad de trayectorias, riesgo y timing. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-057.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-057.yaml index f573578e..cf9d6a5c 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-057.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-057.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - heists-horror-and-underworld-runs visualDna: - aesthetic: Aeronaval piracy romanticism with oxidized-industrial harbor verticality and high-drama sky-lane conflict. - subject_treatment: Distinct pirate factions through sail signatures, crew silhouette coding, and asymmetric vessel identity markers. - color_and_tone: Verdigris patina greens, copper browns, storm-sea blues, and sunlit brass flashes for faction contrast. - lighting_and_shadow: Broken-cloud god rays, hull-edge rim light, volumetric distance haze, and high-contrast boarding action pockets. - texture_and_material: Tar-sealed timber, corroded brass fittings, stressed sailcloth, riveted plating patches, and salt-weathered deck surfaces. - camera_and_composition: Diagonal aerial engagement staging with altitude-tier layering, crossing trajectory lines, and flagship focal lock. - atmosphere_and_mood: Swashbuckling aggression, opportunistic greed, and storm-borne spectacle. - rendering_and_quality: Premium faction splash-art finish with clear combat readability, dynamic aerial scale, and collectible-poster impact. + aesthetic: Sky-piracy aeronaval en puerto verdigris, enfocada en abordaje aéreo, dominio de carriles y botín oportunista. + subject_treatment: Facciones pirata diferenciadas por velamen, silueta de tripulación y firma de nave. + color_and_tone: Verde pátina, cobre marrón, azul tormenta y destellos de latón para contraste de facción. + lighting_and_shadow: Claros rotos entre nubes, rim light de casco y niebla volumétrica por altura. + texture_and_material: Madera alquitranada, latón corroído, lona tensionada y planchas remachadas salinizadas. + camera_and_composition: Escena diagonal de combate aéreo con capas por altitud y trayectorias cruzadas legibles. + atmosphere_and_mood: Agressiva, codiciosa y espectacularmente tormentosa. + rendering_and_quality: Faction splash gameplay-first con lectura nítida de abordaje, flagship priority y escala aérea. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-058.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-058.yaml index bc257459..402e8019 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-058.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-058.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - puzzle-chambers-and-adventure-setpieces visualDna: - aesthetic: Acoustic cavern where sound opens pathways. - subject_treatment: Explorer with resonant instrument-technology. - color_and_tone: Dark blue, mineral green, and amber light. - lighting_and_shadow: Luminous echoes based on activated frequency. - texture_and_material: Resonant crystal, wet rock, and fine metal. - camera_and_composition: Chambers connected by curved tunnels. - atmosphere_and_mood: Musical mystery and discovery. - rendering_and_quality: Puzzle design with clear visual clues. + aesthetic: Sound-puzzle cavern con progresión por frecuencia, resonancia y desbloqueo acústico de rutas. + subject_treatment: Explorador con instrumento-tecnología resonante y feedback visual de tono/armonía. + color_and_tone: Azul oscuro, verde mineral y ámbar para mapear estados acústicos activos. + lighting_and_shadow: Ecos luminosos dependientes de frecuencia que revelan caminos y mecanismos. + texture_and_material: Cristal resonante, roca húmeda, metal fino y membranas vibrantes. + camera_and_composition: Cámaras conectadas por túneles curvos con nodos de prueba sonoro claramente marcados. + atmosphere_and_mood: Musical, misteriosa y de descubrimiento progresivo. + rendering_and_quality: Puzzle design clarity-first con pistas visuales robustas y ritmo de resolución. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-059.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-059.yaml index 423b4894..1604ca72 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-059.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-059.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - speed-sport-and-competitive-arenas visualDna: - aesthetic: Esports arena for drafting prismatic heroes. - subject_treatment: Characters with highly differentiated silhouettes. - color_and_tone: Controlled multicolor palette over a neutral background. - lighting_and_shadow: Stage spotlights and LED panels. - texture_and_material: Clean armor, crystal, and energy. - camera_and_composition: Frontal reveal-style presentation. - atmosphere_and_mood: Competition, hype, and visual precision. - rendering_and_quality: Promotional material for the draft phase. + aesthetic: Hero-draft arena de esports, centrada en selección estratégica, counterpicks y lectura instantánea de roster. + subject_treatment: Héroes de silueta altamente diferenciada por clase, función y amenaza temprana. + color_and_tone: Multicolor controlado sobre base neutra para evitar ruido y preservar claridad competitiva. + lighting_and_shadow: Spotlights escénicos y paneles LED que refuerzan turnos de pick/ban. + texture_and_material: Armaduras limpias, cristal de energía y materiales de escenario broadcast-ready. + camera_and_composition: Presentación frontal de reveal con jerarquía de picks y foco en composición de equipo. + atmosphere_and_mood: Competitiva, hypeada y visualmente precisa. + rendering_and_quality: Draft-phase promotional art con legibilidad superior de roles, counters y narrativa competitiva. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-060.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-060.yaml index 4014bbdc..729dc66d 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-060.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-060.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - sieges-warfronts-and-last-stands visualDna: - aesthetic: Final defense in a hollow basilica of ancient stone. - subject_treatment: Exhausted guardians against the final wave. - color_and_tone: Dust gray, deep red, and muted gold. - lighting_and_shadow: Top light broken by shattered stained glass. - texture_and_material: Rubble, fractured marble, and damaged steel. - camera_and_composition: Central staircase as the defensive line. - atmosphere_and_mood: Heroic sacrifice and maximum tension. - rendering_and_quality: Narrative climax keyframe. + aesthetic: Last-stand siege en basílica hueca, orientado a defensa escalonada y gestión de recursos finales. + subject_treatment: Guardianes exhaustos vs oleada final, con lectura clara de rol y estado crítico. + color_and_tone: Gris polvo, rojo profundo y oro apagado para dramatizar desgaste y resistencia. + lighting_and_shadow: Luz cenital rota por vitrales fracturados que marca zonas de presión. + texture_and_material: Escombro, mármol quebrado, acero dañado y restos de fortificación improvisada. + camera_and_composition: Escalinata central como línea de defensa con flancos y puntos de colapso legibles. + atmosphere_and_mood: Heroica, sacrificial y al máximo de tensión. + rendering_and_quality: Narrative-climax gameplay art con telegraph claro de oleadas, objetivo y supervivencia. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-061.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-061.yaml index 1a7245ca..4a3a9f0b 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-061.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-061.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - arcane-temples-and-mythic-realms visualDna: - aesthetic: Jade shrine on the edge of an active volcano. - subject_treatment: Warrior pilgrims and stone guardians. - color_and_tone: Jade green, lava black, and fiery orange. - lighting_and_shadow: Magma glow and dense smoke. - texture_and_material: Vitrified stone, ritual gold, and ash. - camera_and_composition: Ascending path toward the upper temple. - atmosphere_and_mood: Devotion, danger, and transcendence. - rendering_and_quality: Memorable endgame-zone visual. + aesthetic: Endgame shrine-run volcánico místico, orientado a ascenso por fases, hazard térmico y combate ritual. + subject_treatment: Peregrinos guerreros y guardianes pétreos con lectura clara de arquetipo y amenaza. + color_and_tone: Verde jade, negro lava y naranja ígneo para jerarquía de riesgo/progreso. + lighting_and_shadow: Glow de magma con humo denso para telegraph de zonas de daño y ventanas seguras. + texture_and_material: Piedra vitrificada, oro ritual, ceniza suspendida y grietas activas. + camera_and_composition: Ruta ascendente hacia templo superior con checkpoints visuales y cuellos de botella. + atmosphere_and_mood: Devocional, peligrosa y trascendente. + rendering_and_quality: Endgame-zone gameplay art con legibilidad alta de ruta, fase y prioridad táctica. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-062.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-062.yaml index a0845cd7..eef0f731 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-062.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-062.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - neon-urban-and-night-ops visualDna: - aesthetic: Cyberpunk river district with holographic fish. - subject_treatment: Urban patrols and amphibious mercenaries. - color_and_tone: Cyan, neon pink, and deep black. - lighting_and_shadow: Liquid reflections and animated signage. - texture_and_material: Wet steel, aged wood, and glass. - camera_and_composition: Diagonal canals crossed by high bridges. - atmosphere_and_mood: Urban elegance and criminal tension. - rendering_and_quality: Premium open-world environment. + aesthetic: Open-world cyberpunk de distrito fluvial, centrado en patrulla urbana, contrabando y control de canales. + subject_treatment: Patrullas urbanas y mercenarios anfibios con diferenciación por movilidad y equipamiento. + color_and_tone: Cian, rosa neon y negro profundo para lectura de facción y nivel de alerta. + lighting_and_shadow: Reflejos líquidos y señalética animada como guía de rutas/POIs. + texture_and_material: Acero mojado, madera envejecida, cristal urbano y superficies de atraque. + camera_and_composition: Canales diagonales con puentes altos, rutas múltiples y sightlines de emboscada. + atmosphere_and_mood: Elegante, criminalmente tensa y viva. + rendering_and_quality: Premium environment gameplay-first con navegación clara por agua y altura. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-063.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-063.yaml index 4fab6841..80e4a19b 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-063.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-063.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - speed-sport-and-competitive-arenas visualDna: - aesthetic: Relic race among obelisks in an ancient desert. - subject_treatment: Archaeologist racers with lightweight vehicles. - color_and_tone: Amber sand, turquoise, and clay red. - lighting_and_shadow: Intense sun with volumetric dust. - texture_and_material: Eroded stone, leather, and bronze. - camera_and_composition: Serpentine route with monumental landmarks. - atmosphere_and_mood: Fierce competition and historical mystery. - rendering_and_quality: Seasonal event for an adventure game. + aesthetic: Racing-event arqueológico en desierto de obeliscos, enfocado en velocidad, relic pickup y navegación por landmarks. + subject_treatment: Corredores-arqueólogos con vehículos ligeros y utilidades de exploración competitiva. + color_and_tone: Arena ámbar, turquesa y rojo arcilla para diferenciación de ruta y objetivo. + lighting_and_shadow: Sol intenso con polvo volumétrico para lectura dramática de trayectorias. + texture_and_material: Piedra erosionada, cuero técnico, bronce antiguo y sedimento móvil. + camera_and_composition: Ruta serpenteante con hitos monumentales y atajos de alto riesgo. + atmosphere_and_mood: Competitiva, feroz y cargada de misterio histórico. + rendering_and_quality: Seasonal-race gameplay art con claridad de checkpoints, reliquias y pacing. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-064.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-064.yaml index 832f8cf2..f76d623a 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-064.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-064.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - sieges-warfronts-and-last-stands visualDna: - aesthetic: Night defense of a mechanized plantation. - subject_treatment: Rural sentinels with improvised turrets. - color_and_tone: Dark green, lamp orange, and steel gray. - lighting_and_shadow: Perimeter lights with long shadows. - texture_and_material: Damp soil, oxidized metal, and leaves. - camera_and_composition: Defensive lanes converging on the barn. - atmosphere_and_mood: Teamwork and local resistance. - rendering_and_quality: Clear tactical stage for tower defense. + aesthetic: Tower-defense nocturno en plantación mecanizada, centrado en economía local y defensa por carriles. + subject_treatment: Centinelas rurales con torretas improvisadas por rol (slow, burst, support). + color_and_tone: Verde oscuro, naranja lámpara y gris acero para separar línea defensiva y puntos críticos. + lighting_and_shadow: Iluminación perimetral con sombras largas para telegraph de oleadas. + texture_and_material: Suelo húmedo, metal oxidado, follaje utilitario y maquinaria agrícola reforzada. + camera_and_composition: Carriles convergentes hacia granero central con nodos de upgrade visibles. + atmosphere_and_mood: Cooperativa, resistente y de presión sostenida. + rendering_and_quality: Tactical stage gameplay-first con legibilidad de pathing, alcance y prioridades. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-065.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-065.yaml index fad4dfb1..bb27fe50 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-065.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-065.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - speed-sport-and-competitive-arenas visualDna: - aesthetic: Royal duel hall beneath a crystal dome. - subject_treatment: Champions with stylized ceremonial armor. - color_and_tone: Pearl white, sapphire blue, and soft gold. - lighting_and_shadow: Elegant, clean overhead illumination. - texture_and_material: Carved crystal, silk, and marble. - camera_and_composition: Frontal symmetry for 1v1 combat. - atmosphere_and_mood: Nobility, rivalry, and precision. - rendering_and_quality: Competitive stage with premium identity. + aesthetic: Duel-arena real bajo cúpula cristalina, orientada a 1v1 técnico de spacing, feints y castigo preciso. + subject_treatment: Campeones con armadura ceremonial estilizada y lectura de estilo de combate. + color_and_tone: Blanco perla, azul zafiro y oro suave para máxima claridad en enfrentamiento directo. + lighting_and_shadow: Iluminación cenital limpia para preservar lectura frame-by-frame de animación. + texture_and_material: Cristal tallado, seda de gala, mármol pulido y detalles de desgaste controlado. + camera_and_composition: Simetría frontal con límites de arena y zonas neutrales claras. + atmosphere_and_mood: Noble, rival y extremadamente precisa. + rendering_and_quality: Competitive stage gameplay-first con legibilidad impecable de alcance, timing y ventaja. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-066.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-066.yaml index ff9d2162..9f3b4e1d 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-066.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-066.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - heists-horror-and-underworld-runs visualDna: - aesthetic: Abyssal transit-horror language centered on confined infrastructure failure and unseen predatory presence. - subject_treatment: Civilian vulnerability silhouettes, fragmented survivor groupings, and implied non-human threat through spatial absence. - color_and_tone: Pressure-depth blues, blackout blacks, arterial emergency reds, and sickly desaturated neutrals under panic lighting. - lighting_and_shadow: Intermittent emergency flicker, hard strobe interruptions, low-visibility recesses, and silhouette-breaking backflares. - texture_and_material: Brine-streaked steel panels, condensation-heavy glazing, corroded fasteners, wet flooring film, and mineral salt crusting. - camera_and_composition: Tight carriage sightlines with choke-point framing, foreground obstruction, and vanishing-depth anxiety construction. - atmosphere_and_mood: Claustrophobic dread, escalating paranoia, and survival-driven urgency. - rendering_and_quality: High-intensity survival-horror concept fidelity with cinematic tension control and environment-first fear readability. + aesthetic: Transit-survival horror abisal en infraestructura colapsada, con foco en encierro, fallo sistémico y amenaza no visible. + subject_treatment: Civiles vulnerables y grupos de supervivientes fragmentados con lectura clara de vulnerabilidad. + color_and_tone: Azules de profundidad, negros de apagón, rojos de emergencia y neutros desaturados bajo pánico. + lighting_and_shadow: Parpadeo de emergencia, estrobos duros y recesos de baja visibilidad para tensión escalonada. + texture_and_material: Acero salinizado, vidrio con condensación, fijaciones corroídas y suelo húmedo continuo. + camera_and_composition: Sightlines cerradas de vagón con choke-points, oclusiones frontales y fuga ansiosa de profundidad. + atmosphere_and_mood: Claustrofóbica, paranoica y de urgencia extrema. + rendering_and_quality: Survival-horror gameplay art con control fino de tensión y lectura ambiental del miedo. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-067.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-067.yaml index 72c0ecd3..5ccccf0b 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-067.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-067.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - wilderness-hunts-and-harsh-frontiers visualDna: - aesthetic: Siege camp in bronze marshlands. - subject_treatment: War engineers and push units. - color_and_tone: Mud green, old bronze, and banner red. - lighting_and_shadow: Low fog with scattered torches. - texture_and_material: Mud, wet wood, and metal plates. - camera_and_composition: Trenches converging toward the fort. - atmosphere_and_mood: Military pressure and prolonged attrition. - rendering_and_quality: Tactical setting for a war campaign. + aesthetic: Warfront attrition en marismas de bronce, orientado a avance por trincheras, desgaste y control de suministros. + subject_treatment: Ingenieros de asedio y unidades de empuje con lectura de función táctica. + color_and_tone: Verde barro, bronce viejo y rojo estandarte para codificar bando y presión de frente. + lighting_and_shadow: Niebla baja con antorchas dispersas para visibilidad parcial y amenaza constante. + texture_and_material: Barro profundo, madera húmeda, placas metálicas y fortificaciones improvisadas. + camera_and_composition: Trincheras convergentes hacia fortín objetivo con rutas de asalto definidas. + atmosphere_and_mood: Opresiva, militar y de desgaste prolongado. + rendering_and_quality: Tactical war-campaign art con legibilidad de líneas de avance y colapso defensivo. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-068.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-068.yaml index 476efe22..5b4b5c96 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-068.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-068.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - sci-fi-frontiers-and-mech-zones visualDna: - aesthetic: Aerial shipyard where draconic mounts are outfitted. - subject_treatment: Winged mechanics and elite riders. - color_and_tone: Sky blue, steel, and burnished gold. - lighting_and_shadow: Open daylight with localized forge smoke. - texture_and_material: Scales, rivets, and reinforced leather. - camera_and_composition: Elevated platform overlooking the void. - atmosphere_and_mood: Epic preparation and wartime anticipation. - rendering_and_quality: Premium faction visual. + aesthetic: Skyforge prep-hub de monturas dracónicas, enfocado en loadout, mantenimiento y salida a campaña aérea. + subject_treatment: Mecánicos alados y riders élite con lectura clara de rol técnico/combatiente. + color_and_tone: Azul cielo, acero y oro bruñido para jerarquía de facción y rango. + lighting_and_shadow: Luz abierta de altura con humo de forja localizado en zonas de trabajo. + texture_and_material: Escamas tratadas, remaches aeronáuticos, cuero reforzado y herrajes térmicos. + camera_and_composition: Plataforma elevada sobre vacío con líneas de tráfico aéreo y puntos de despliegue. + atmosphere_and_mood: Épica, preparatoria y de anticipación bélica. + rendering_and_quality: Premium faction gameplay art con claridad de logística, equipamiento y salida táctica. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-069.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-069.yaml index c1b92309..33e98492 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-069.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-069.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - heists-horror-and-underworld-runs visualDna: - aesthetic: Conflict over radio towers in electric dunes. - subject_treatment: Mobile squads and signal operators. - color_and_tone: Light sand, static blue, and charcoal black. - lighting_and_shadow: Electrical flashes and harsh sunlight. - texture_and_material: Corroded antennas, canvas, and fine sand. - camera_and_composition: Torres como objetivos dominantes. - atmosphere_and_mood: Information warfare and survival. - rendering_and_quality: Dynamic objective-mode artwork. + aesthetic: Objective-warfare en dunas electrificadas, centrado en captura/interferencia de torres de señal. + subject_treatment: Escuadras móviles y operadores de radio con roles de hack, defensa y sabotaje. + color_and_tone: Arena clara, azul estático y negro carbón para lectura de control territorial. + lighting_and_shadow: Destellos eléctricos y sol severo para telegraph de ventanas operativas. + texture_and_material: Antenas corroídas, lona técnica, arena fina y cableado expuesto por tormenta. + camera_and_composition: Torres como objetivos dominantes con rutas de aproximación y zonas contestadas. + atmosphere_and_mood: Estratégica, hostil y de supervivencia informacional. + rendering_and_quality: Dynamic objective-mode gameplay art con legibilidad de control de señal y prioridad táctica. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-070.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-070.yaml index 367b99ca..ecae76e5 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-070.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-070.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - arcane-temples-and-mythic-realms visualDna: - aesthetic: Spiritual archery trials in a nighttime shrine. - subject_treatment: Mystical archers with energy arrows. - color_and_tone: Moon blue, silver, and soft violet. - lighting_and_shadow: Moonlight and paper lanterns. - texture_and_material: Polished wood, wet stone, and silk. - camera_and_composition: Firing alley with ritual targets. - atmosphere_and_mood: Focus, calm, and precision. - rendering_and_quality: Challenge stage with impeccable readability. + aesthetic: Precision-trial de arquería mística en santuario nocturno, orientado a timing, trayectoria y control respiratorio. + subject_treatment: Arqueros espirituales con flechas de energía y lectura clara de estilo técnico. + color_and_tone: Azul lunar, plata y violeta tenue para concentración visual sin ruido. + lighting_and_shadow: Luz de luna y faroles de papel para contrastes suaves y foco de objetivo. + texture_and_material: Madera pulida, piedra húmeda, seda ritual y marcas de práctica. + camera_and_composition: Calle de tiro con dianas rituales por distancia y dificultad progresiva. + atmosphere_and_mood: Concentrada, calmada y extremadamente precisa. + rendering_and_quality: Challenge-stage gameplay art con legibilidad impecable de trayectoria, impacto y scoring. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-071.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-071.yaml index 3348fba9..ae5ba0d2 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-071.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-071.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - neon-urban-and-night-ops visualDna: - aesthetic: Eco-tech rebellion in an underground metropolitan network. - subject_treatment: Urban cells with advanced recycled gear. - color_and_tone: Neon green, concrete gray, and signal orange. - lighting_and_shadow: LED tubes and deep tunnel shadows. - texture_and_material: Artificial moss, metal, and weathered paint. - camera_and_composition: Central station seized by barricades. - atmosphere_and_mood: Political urgency and combative hope. - rendering_and_quality: Narrative insurgent-faction scene. + aesthetic: Urban-insurgency eco-tech en red metropolitana subterránea, orientada a control de estación y guerra de barricadas. + subject_treatment: Células rebeldes con gear reciclado avanzado y roles de avance, soporte y sabotaje. + color_and_tone: Verde neon, gris hormigón y naranja señal para claridad de facción y objetivo. + lighting_and_shadow: Tubos LED y sombras profundas de túnel para lectura de cobertura y riesgo. + texture_and_material: Musgo artificial, metal urbano, pintura descascarada y estructuras improvisadas. + camera_and_composition: Estación central tomada con barricadas, rutas de flanco y nodos críticos visibles. + atmosphere_and_mood: Urgente, combativa y esperanzadamente política. + rendering_and_quality: Insurgent-faction gameplay art con legibilidad de lanes, puntos de presión y control territorial. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-072.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-072.yaml index 057f6eb6..461fe0a3 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-072.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-072.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - puzzle-chambers-and-adventure-setpieces visualDna: - aesthetic: Motorized raid cutting through ruined cathedrals. - subject_treatment: Armored riders and support drones. - color_and_tone: Dust beige, rust red, and steel blue. - lighting_and_shadow: Sunlight filtered through collapsed arches. - texture_and_material: Eroded stone, rubber, and metal. - camera_and_composition: Racing route with clear visual checkpoints. - atmosphere_and_mood: Speed, noise, and territorial conquest. - rendering_and_quality: Seasonal event visual for an action racer. + aesthetic: Raid-racer motorizado entre catedrales en ruina, centrado en conquista de ruta y objetivos intermedios. + subject_treatment: Riders blindados y drones de soporte con lectura clara de función ofensiva/logística. + color_and_tone: Beige polvo, rojo óxido y azul acero para separar terreno, riesgo y checkpoints. + lighting_and_shadow: Luz filtrada por arcos colapsados que marca ventanas de tracción y salto. + texture_and_material: Piedra erosionada, caucho de alto desgaste, metal reforzado y escombro activo. + camera_and_composition: Ruta de carrera con checkpoints visuales inequívocos, atajos y zonas de choque. + atmosphere_and_mood: Ruidosa, veloz y de conquista territorial. + rendering_and_quality: Seasonal action-racer gameplay art con legibilidad robusta de pacing y control de tramo. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-073.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-073.yaml index f62a54ec..b46b566b 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-073.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-073.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - wilderness-hunts-and-harsh-frontiers visualDna: - aesthetic: Colossus hunt in orchards of monumental scale. - subject_treatment: Tactical climbers and biomechanical beasts. - color_and_tone: Olive green, ripe-fruit red, and gray metal. - lighting_and_shadow: Sol nublado con brillos de armadura. - texture_and_material: Giant bark, sap, and mechanical plates. - camera_and_composition: Extreme scale with a minimal human figure. - atmosphere_and_mood: Awe, danger, and epic cooperation. - rendering_and_quality: Key art de hunting season. + aesthetic: Colossus-hunt cooperativo en huertos titánicos, enfocado en escalada táctica y derribo por fases. + subject_treatment: Escaladores tácticos y bestias biomecánicas con lectura clara de puntos débiles. + color_and_tone: Verde oliva, rojo fruta madura y gris metal para contraste orgánico-mecánico. + lighting_and_shadow: Cielo nublado con brillos de armadura que señalan momentos de vulnerabilidad. + texture_and_material: Corteza gigante, savia espesa, placas mecánicas y anclajes de ascenso. + camera_and_composition: Escala extrema con figura humana mínima para reforzar amenaza colosal. + atmosphere_and_mood: Asombrosa, peligrosa y cooperativamente épica. + rendering_and_quality: Hunting-season gameplay key-art con telegraph claro de fase, ascenso y remate. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-074.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-074.yaml index 986627c0..2844ad43 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-074.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-074.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - puzzle-chambers-and-adventure-setpieces visualDna: - aesthetic: Clandestine card duel in a prismatic alley. - subject_treatment: Urban duelists with holographic avatars. - color_and_tone: Deep purple, cyan, and neon yellow. - lighting_and_shadow: Focused lighting from fractured signs. - texture_and_material: Wet asphalt, glass, and light metal. - camera_and_composition: Central table with crowd in a semicircle. - atmosphere_and_mood: Mental tension, high stakes, and style. - rendering_and_quality: Urban tactical PvP scene. + aesthetic: Card-duel clandestino urbano, orientado a mindgame, lectura de mano y presión psicológica competitiva. + subject_treatment: Duelistas callejeros con avatares holográficos y estilos de mazo distinguibles. + color_and_tone: Púrpura profundo, cian y amarillo neon para separar jugadores, efectos y estado crítico. + lighting_and_shadow: Señalética fracturada como key light focal para mesa y zonas de público. + texture_and_material: Asfalto mojado, vidrio urbano, metal liviano y reflejos de interfaz holográfica. + camera_and_composition: Mesa central con semicírculo de espectadores y focos en ventanas de jugada. + atmosphere_and_mood: Tensa, estilizada y de apuestas altas. + rendering_and_quality: Urban tactical PvP gameplay art con claridad de turno, ventaja y presión de crowd. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-075.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-075.yaml index 3b59a2f1..2ce665ef 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-075.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-075.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - speed-sport-and-competitive-arenas visualDna: - aesthetic: Dockyard mech-sport league aesthetic blending industrial maritime grit with broadcast-ready arena energy. - subject_treatment: Team-coded lightweight mech-athletes, modular armor kit differentiation, and role-based silhouette taxonomy. - color_and_tone: Cobalt-dominant base, signal-orange competition accents, neutral steel scaffolding tones, and damp-cold marine highlights. - lighting_and_shadow: High-rig stadium beams, mist-softened fill, specular wet-ground reflections, and directional spotlight player isolation. - texture_and_material: Coated alloy bodywork, impact-scuffed polymer panels, rubberized sport flooring, wet dock concrete, and cable-net details. - camera_and_composition: Arena-bowl framing with central objective emphasis, crowd-tier depth, and tactical lane visibility for readable play. - atmosphere_and_mood: Festival-scale rivalry, kinetic teamwork, and high-adrenaline competitive momentum. - rendering_and_quality: Esports-grade league key-art polish with sharp team readability, motion-rich staging, and premium sports-broadcast clarity. + aesthetic: Mechball league portuaria de alta energía, centrada en objetivo central, rotaciones rápidas y juego de equipo. + subject_treatment: Mechs-atleta ligeros codificados por equipo con silueta y rol táctico inequívocos. + color_and_tone: Cobalto dominante, naranja de competencia y neutros acero con reflejo marino frío. + lighting_and_shadow: Focos de estadio, niebla suave y reflejos especulares en piso húmedo para lectura de jugada. + texture_and_material: Aleación recubierta, polímero marcado por impacto, piso deportivo gomado y hormigón de muelle. + camera_and_composition: Arena-bowl con objetivo central, profundidad de graderío y lanes tácticos visibles. + atmosphere_and_mood: Rival, cinética y de adrenalina sostenida. + rendering_and_quality: Esports-grade gameplay key-art con claridad superior de posesión, rotación y presión de equipo. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-076.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-076.yaml index 7e31c015..e01f337b 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-076.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-076.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - sieges-warfronts-and-last-stands visualDna: - aesthetic: Polar-fortress siege epic blending glacial militarism, celestial sky phenomena, and entrenched defensive architecture. - subject_treatment: Coordinated defender archetypes, breach-specialist assault units, and readable class-role separation under pressure. - color_and_tone: Aurora greens, steel-cold cyans, storm-slate neutrals, and disciplined war-signal reds for combat legibility. - lighting_and_shadow: Boreal sky wash, low-angle frozen reflections, blast-lit choke points, and long snowfield shadow geometry. - texture_and_material: Wind-cut ice slabs, frost-sealed masonry, impact-scarred ironworks, and powdered snow accumulation strata. - camera_and_composition: Multi-tier bastion overview with attack vectors, siege-lane hierarchy, and depth-staged defensive fallback zones. - atmosphere_and_mood: Heroic attrition, tactical urgency, and last-stand resolve under hostile climate severity. - rendering_and_quality: Premium warfront key-art fidelity with high unit readability, environment strategy cues, and cinematic weather integration. + aesthetic: Polar-siege de bastión auroral, orientado a defensa por capas, ruptura de línea y fallback táctico. + subject_treatment: Defensores coordinados y asaltantes de brecha con separación de clase legible bajo presión. + color_and_tone: Verdes aurora, cian acero, pizarra tormenta y rojos de señal para legibilidad bélica. + lighting_and_shadow: Baño boreal, reflejos helados rasantes y choke-points iluminados por explosión. + texture_and_material: Placas de hielo talladas por viento, mampostería escarchada y hierro marcado por impacto. + camera_and_composition: Vista multi-tier con vectores de ataque, jerarquía de lanes y zonas de repliegue. + atmosphere_and_mood: Heroica, urgente y de resistencia extrema. + rendering_and_quality: Warfront gameplay key-art con claridad de clase, ruta y tempo de asedio. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-077.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-077.yaml index 8295f9cf..6a34d0f4 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-077.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-077.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - puzzle-chambers-and-adventure-setpieces visualDna: - aesthetic: Hazard-quarry escape setpiece mixing industrial extraction infrastructure with predatory myth-creature territorial pressure. - subject_treatment: Improvisational survival specialists, resource-starved escape teams, and basilisk threat silhouettes governing path decisions. - color_and_tone: Crushed limestone whites, venomous green emissions, oxidized rust browns, and dust-muted earth midtones. - lighting_and_shadow: Broken overhead shafts, crane-cast lattice shadows, particulate haze diffusion, and danger-pool luminance pockets. - texture_and_material: Fractured quarry faces, tensioned chain hardware, dry clay ruts, cable abrasion wear, and rubble-edge sharpness. - camera_and_composition: Ascending zigzag escape topology with vertical risk layering, chokepoint staging, and route-readability emphasis. - atmosphere_and_mood: Tactical panic, improvised ingenuity, and escalating pursuit stress. - rendering_and_quality: Adventure-mission concept quality with clear traversal logic, enemy-territory signaling, and momentum-focused environmental storytelling. + aesthetic: Escape-setpiece en cantera hostil, centrado en traversal vertical, gestión de riesgo y persecución de basilisco. + subject_treatment: Especialistas de supervivencia improvisada con lectura de recursos escasos y prioridad de escape. + color_and_tone: Blanco caliza, verde venenoso, óxido marrón y tierras desaturadas para señal de peligro. + lighting_and_shadow: Lucernarios rotos, sombras de grúa y niebla particulada con bolsillos luminosos de amenaza. + texture_and_material: Frentes de cantera fracturados, cadenas tensadas, surcos de arcilla y borde de escombro afilado. + camera_and_composition: Topología zigzag ascendente con capas de riesgo y chokepoints legibles. + atmosphere_and_mood: Pánica, ingeniosa y de estrés ascendente. + rendering_and_quality: Adventure-mission gameplay art con lógica de traversal clara y señalización territorial enemiga. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-078.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-078.yaml index 6b59c57a..7494bbbf 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-078.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-078.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - neon-urban-and-night-ops visualDna: - aesthetic: Moonlit stealth-op romanticism combining elegant garden architecture with high-precision vertical infiltration language. - subject_treatment: Agile shinobi silhouettes, grappling-focused mobility roles, and discipline-coded team presence with minimal visual noise. - color_and_tone: Deep indigo night fields, lotus-magenta highlights, lacquer-black anchors, and subtle lantern amber punctuation. - lighting_and_shadow: Soft lunar key, paper-lantern practical pools, water-reflected fill, and razor-edged concealment bands. - texture_and_material: Mirror-still water skins, wet polished stone, silk movement trails, aged timber bridge grain, and mossy edge detail. - camera_and_composition: Curved bridge chains, rooftop relay paths, and layered occlusion framing designed for stealth readability. - atmosphere_and_mood: Controlled tension, poetic silence, and surgical execution discipline. - rendering_and_quality: Premium stealth key-art finish with clean target-path communication, elegant contrast hierarchy, and minimal-clutter tactical clarity. + aesthetic: Stealth-op nocturna de infiltración shinobi, centrada en verticalidad, silencio y ejecución quirúrgica. + subject_treatment: Siluetas ágiles con movilidad de gancho y roles coordinados de entrada/cobertura/exfil. + color_and_tone: Índigo profundo, magenta loto, negro lacado y ámbar de farol para contraste selectivo. + lighting_and_shadow: Luz lunar suave, islas de linterna y bandas de ocultamiento de borde nítido. + texture_and_material: Agua espejo, piedra pulida húmeda, seda en movimiento y madera envejecida. + camera_and_composition: Cadenas de puentes curvos, rutas de azotea y oclusión por capas para lectura stealth. + atmosphere_and_mood: Tensa, poética y disciplinadamente precisa. + rendering_and_quality: Premium stealth gameplay key-art con comunicación limpia de ruta, objetivo y escape. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-079.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-079.yaml index e22146f5..629fc94b 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-079.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-079.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - sieges-warfronts-and-last-stands visualDna: - aesthetic: Luminous citadel-defense fantasy with cooperative class-synergy staging and sacred-urban fortification identity. - subject_treatment: Complementary role classes holding convergent lanes, support-damage-tank readability, and coordinated defensive posture. - color_and_tone: High-key alabaster whites, regal gold trims, disciplined cobalt/azure hero accents, and threat-contrast red micro-signals. - lighting_and_shadow: Architecture-integrated emissive systems, balanced heroic fill, lane-defining shadow channels, and objective-centric glow hierarchy. - texture_and_material: Polished ceremonial marble, filigreed alloy ornament, faceted crystal nodes, and weather-lightened stone joints. - camera_and_composition: Hub-plaza topology with branching ingress routes, team-position legibility, and layered objective focus. - atmosphere_and_mood: Resolute unity, urgent coordination, and hopeful epic escalation. - rendering_and_quality: High-clarity co-op warfront key-art quality with strong role readability, route comprehension, and encounter pacing cues. + aesthetic: Co-op citadel-defense luminosa, orientada a sinergia de clases y sostén de múltiples accesos. + subject_treatment: Roles complementarios (support/damage/tank/control) sosteniendo lanes convergentes con claridad total. + color_and_tone: Blanco alabastro, oro regio, acentos cobalto/azur y microseñales rojas de amenaza. + lighting_and_shadow: Emisivos arquitectónicos, fill heroico balanceado y canales de sombra que definen rutas. + texture_and_material: Mármol ceremonial pulido, aleación filigranada, nodos cristalinos y piedra patrimonial. + camera_and_composition: Plaza-hub con ingresos ramificados, posiciones de equipo legibles y foco objetivo por capas. + atmosphere_and_mood: Unida, urgente y épicamente esperanzada. + rendering_and_quality: Co-op warfront gameplay art de alta claridad con cues sólidos de pacing y control de línea. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_12/SP12-080.yaml b/components/recipes/styles/manifests/presets/pack_12/SP12-080.yaml index 9f3ccf0c..5f97b4e4 100644 --- a/components/recipes/styles/manifests/presets/pack_12/SP12-080.yaml +++ b/components/recipes/styles/manifests/presets/pack_12/SP12-080.yaml @@ -12,14 +12,14 @@ tags: - video-game-originals-vault - puzzle-chambers-and-adventure-setpieces visualDna: - aesthetic: Endgame ritual-throne confrontation language with eclipse-driven mythic contrast and sovereign-collapse iconography. - subject_treatment: Final-boss authority silhouette versus hero challenger framing, dominance-distance coding, and duel-centric visual hierarchy. - color_and_tone: Umbra blacks, blood-carmine accents, lunar-silver edges, and desaturated imperial stone neutrals. - lighting_and_shadow: Coronagraph halo backlight, high-drama silhouette carve, low-lying smoke diffusion, and throne-axis shadow falloff. - texture_and_material: Mirror-polished basalt, dark ceremonial alloys, ash-fine atmospheric particulate, and worn imperial ornament details. - camera_and_composition: Frontal climax architecture with axial throne dominance, duel lane clarity, and layered symbolic depth planes. - atmosphere_and_mood: Fate-locked tension, terminal resolve, and catastrophic epic closure. - rendering_and_quality: Campaign-finale key-art fidelity with cinematic confrontation staging, premium material contrast, and decisive narrative readability. + aesthetic: Final-boss confrontation de trono eclipsado, centrada en duelo axial, fases y colapso de soberanía. + subject_treatment: Silueta autoritaria de jefe final versus héroe retador con jerarquía visual duel-centric. + color_and_tone: Negro umbra, carmín sangre, borde plata lunar y neutros imperiales desaturados. + lighting_and_shadow: Halo coronográfico a contraluz, carve dramático de silueta y humo bajo difusivo. + texture_and_material: Basalto pulido espejo, aleaciones ceremoniales oscuras, ceniza fina y ornamento imperial desgastado. + camera_and_composition: Arquitectura frontal de clímax con dominio axial del trono y carril de duelo claro. + atmosphere_and_mood: Fatalista, resuelta y catastróficamente épica. + rendering_and_quality: Campaign-finale gameplay key-art con legibilidad decisiva de fase, distancia y cierre narrativo. avoidRules: - watermark - text diff --git a/components/recipes/styles/manifests/presets/pack_13/SP05-326.yaml b/components/recipes/styles/manifests/presets/pack_13/SP05-326.yaml index d0f54a7f..c7c3b062 100644 --- a/components/recipes/styles/manifests/presets/pack_13/SP05-326.yaml +++ b/components/recipes/styles/manifests/presets/pack_13/SP05-326.yaml @@ -12,16 +12,19 @@ tags: - anime-character-and-lifestyle - anime-style-spectrum visualDna: - aesthetic: Morphing anatomy and ecstatic motion, dance-like action, color bursts, reality bending under pure expressive velocity, anti-stiff animation freedom made visual - form_and_line: Elastic contour, rough brush taper, unstable shape language, rhythm-led line motion + aesthetic: Expresionismo cinético de anatomía elástica, donde la realidad se pliega al gesto y la velocidad emocional gobierna la imagen. + form_and_line: Contorno gomoso, taper de brocha nerviosa, siluetas inestables y curvas de movimiento tipo danza explosiva. color_palette: Acid cyan, burnt orange, grape purple, hot pink, black ink, fever yellow - lighting_setup: Graphic color-flash lighting, abrupt stage-like shifts, expression-over-realism illumination - material_texture: Paint-smear energy, rough digital brush, poster-flat color blocks, animation-boil traces - render_quality: Peak-action anime frame, battle-animation showcase, shonen-sakuga excellence, impact-maximum rendering + lighting_setup: Flashes cromáticos abruptos de escenario, cambios de key violentos y prioridad expresiva sobre realismo fotométrico. + material_texture: Mancha pictórica energética, pincel digital áspero, bloques flat de póster y boil de animación visible. + render_quality: Frame de sakuga hiperactivo con legibilidad de impacto y caos controlado por ritmo. spatial_distortion: Constant anatomical morphing, melting perspective, dance-curve poses, explosive timing shapes - atmosphere: Elastic, ecstatic, surreal, alive - key_features: Morphing anatomy, dance-motion arcs, wild color bursts, anti-model dynamism, velocity-first staging - creative_brief: Animation in revolt against the frozen frame. Bodies liquefy into gesture, color detonates at the point of impact, and the line between ecstasy and chaos vanishes in a smear of velocity. Rigidity is the only crime here. + atmosphere: Elástica, extática y febril, siempre al borde de romper la forma. + key_features: Morphing anatómico continuo, arcos bailados, bursts de color ácido y staging velocity-first anti-model. + creative_brief: >- + Define una gramática de rubber-reality transferible donde anatomía mutable, + color detonante y timing gestual extremo sustituyan rigidez por energía. + Debe sentirse en rebelión permanente contra el frame congelado. avoidRules: - still - calm diff --git a/components/recipes/styles/manifests/presets/pack_13/SP05-327.yaml b/components/recipes/styles/manifests/presets/pack_13/SP05-327.yaml index e4c6db15..99356d1a 100644 --- a/components/recipes/styles/manifests/presets/pack_13/SP05-327.yaml +++ b/components/recipes/styles/manifests/presets/pack_13/SP05-327.yaml @@ -12,16 +12,19 @@ tags: - anime-character-and-lifestyle - anime-style-spectrum visualDna: - aesthetic: Dramatic freeze-frame postcard shot, glowing highlights, emotional overstatement, roses and stars suspended in time, classic melodrama distilled into one burning still - form_and_line: Crisp classic contour, glamour-highlight accents, melodrama-weighted inking + aesthetic: Melodrama clásico de postcard-memory, con congelado emocional y glamour luminoso de alto voltaje romántico. + form_and_line: Contorno clásico nítido, inking dramático cargado y acentos de brillo tipo estallido sentimental. color_palette: Sepia gold, crimson rose, cream white, royal blue, amber light, filmic mauve - lighting_setup: Spotlit emotional key, highlight flares, freeze-frame glare, theatrical backlight - material_texture: Filmic grain, cel highlight bloom, airbrushed glow, paper postcard softness - render_quality: Peak-action anime frame, battle-animation showcase, shonen-sakuga excellence, impact-maximum rendering + lighting_setup: Key teatral en spot, flares en highlight, glare de congelado y contraluz de escenario melodramático. + material_texture: Grano fílmico suave, bloom cel, brillo aerografiado y tactilidad de papel postal. + render_quality: Frame icónico de memoria dramática con composición concentrada y claridad de gesto emocional. spatial_distortion: Heroic freeze poses, diagonally framed bodies, symbolic overlay space, concentrated emotional composition - atmosphere: Melodramatic, nostalgic, luminous, intense - key_features: Postcard freeze frame, dramatic highlight lines, symbolic floral overlays, emotional stare-downs, retro melodrama staging - creative_brief: Time stops but emotion accelerates. A single crystalline moment holds all the weight of melodrama, glowing like a postcard remembered too intensely. Roses and stars are frozen witnesses to a feeling that will not fade. + atmosphere: Nostálgica, intensa y luminosa, suspendida en un instante absoluto. + key_features: Freeze-frame postal, líneas de highlight dramático, overlays florales simbólicos y stare-down emocional. + creative_brief: >- + Construye una gramática postcard-freeze reusable donde el tiempo se detiene + pero la emoción escala: brillo glam, símbolos florales y encuadre de + melodrama deben sostener identidad sin escena fija. avoidRules: - still - calm diff --git a/components/recipes/styles/manifests/presets/pack_13/SP05-328.yaml b/components/recipes/styles/manifests/presets/pack_13/SP05-328.yaml index da6c6563..0f0b5d04 100644 --- a/components/recipes/styles/manifests/presets/pack_13/SP05-328.yaml +++ b/components/recipes/styles/manifests/presets/pack_13/SP05-328.yaml @@ -12,16 +12,19 @@ tags: - anime-character-and-lifestyle - anime-style-spectrum visualDna: - aesthetic: Long-nosed space-romantic melancholy, star trains and capes, distant ideals, cosmic loneliness conveyed through elegant retro-futurist silhouettes and infinite distance - form_and_line: Elegant retro contour, long facial proportions, fine cape and machine linework + aesthetic: Romanticismo espacial retrofuturista de melancolía noble, con distancia cósmica y heroísmo resignado. + form_and_line: Contorno elegante retro, proporciones faciales alargadas, linework fino en capas y maquinaria ferroviaria estelar. color_palette: Deep navy, brass gold, wine red, vacuum black, starlight white, engine blue - lighting_setup: Starfield backlight, brass console glow, melancholy bridge lighting, cosmic silhouette framing - material_texture: Painted starfields, brass panel wear, velvet cape drape, cel-era cosmic softness - render_quality: Peak-action anime frame, battle-animation showcase, shonen-sakuga excellence, impact-maximum rendering + lighting_setup: Contraluz de campo estelar, glow de consola latón y framing de silueta en puente de mando sombrío. + material_texture: Cielo pintado profundo, paneles metálicos gastados, caída de capa aterciopelada y suavidad cel-era. + render_quality: Space-opera de alta legibilidad con escala infinita y dramatismo de horizonte prolongado. spatial_distortion: Tall melancholy figures, long horizon lines, deep star-distance perspective, theatrical cape flow - atmosphere: Lonely, romantic, cosmic, noble - key_features: Star-track imagery, caped silhouettes, endless-horizon framing, retro-future control rooms, mournful distance - creative_brief: Infinity has a silhouette. Stars become station platforms, capes billow against the vacuum, and every departure is a small death measured in light-years of longing. Nobility is not armor but acceptance of the distance. + atmosphere: Solitaria, romántica y cósmica, con nobleza de despedida interminable. + key_features: Imaginería de star-track, siluetas en capa, control rooms retro y framing de distancia luctuosa. + creative_brief: >- + Define una gramática de cosmic-melancholy transferible con silueta + retrofuturista, iconografía ferroviaria estelar y escala emocional de + lejanía persistente. avoidRules: - still - calm diff --git a/components/recipes/styles/manifests/presets/pack_13/SP05-329.yaml b/components/recipes/styles/manifests/presets/pack_13/SP05-329.yaml index ce3ad380..294eb2be 100644 --- a/components/recipes/styles/manifests/presets/pack_13/SP05-329.yaml +++ b/components/recipes/styles/manifests/presets/pack_13/SP05-329.yaml @@ -12,16 +12,19 @@ tags: - anime-character-and-lifestyle - anime-style-spectrum visualDna: - aesthetic: Classic manga-horror panic, striped shock, screaming children, spiraling dread, black-white psychic sickness rendered with high-contrast theatrical terror - form_and_line: Jagged horror contour, heavy black fills, shrill stress-line density + aesthetic: Horror manga clásico de pánico espiral, con teatralidad de alto contraste y neurosis gráfica corrosiva. + form_and_line: Contorno dentado, masas negras contundentes y densidad chillante de stress-lines alrededor del rostro. color_palette: Bone white, pitch black, dried blood red, sickly mint, corpse blue, bruise violet - lighting_setup: Harsh spotlight horror, deep negative shadows, overexposed panic faces - material_texture: Ink-rich blacks, scratchy screentone feel, paper tooth, rough horror shading - render_quality: Peak-action anime frame, battle-animation showcase, shonen-sakuga excellence, impact-maximum rendering + lighting_setup: Spotlight hostil, negativos profundos y sobreexposición de facciones en estado de shock. + material_texture: Negro de tinta saturado, screentone rasposo, diente de papel y sombreado áspero de pesadilla impresa. + render_quality: Terror gráfico de lectura inmediata, con composición de crisis y contraste brutal. spatial_distortion: Wide screaming mouths, bulging eyes, warped hallway depth, panic-twisted posture - atmosphere: Hysterical, uncanny, retro, terrifying - key_features: Screaming faces, spiral motifs, striped fear patterns, child-horror contrast, high-contrast black-white logic - creative_brief: Fear is a spiral that tightens with every glance. Black and white scream louder than color ever could, and childhood innocence curdles into nightmare geometry. The panel is a trap door and you are already falling. + atmosphere: Histérica, uncanny y retro, con amenaza infantil deformada. + key_features: Rostros al grito, motivos espirales, patrones de miedo estriado y lógica B/N extrema. + creative_brief: >- + Construye una gramática spiral-horror reusable donde geometría de pánico, + contraste blanco-negro feroz y expresividad facial desbordada marquen la + identidad en cualquier sujeto. avoidRules: - still - calm diff --git a/components/recipes/styles/manifests/presets/pack_13/SP05-330.yaml b/components/recipes/styles/manifests/presets/pack_13/SP05-330.yaml index 2f0458b8..5673a0b0 100644 --- a/components/recipes/styles/manifests/presets/pack_13/SP05-330.yaml +++ b/components/recipes/styles/manifests/presets/pack_13/SP05-330.yaml @@ -12,16 +12,19 @@ tags: - anime-character-and-lifestyle - anime-style-spectrum visualDna: - aesthetic: Folkloric yokai procession with documentary oddness, soft rural night, grotesque spirits treated with deadpan familiarity, brush-ink humor and ghostly taxonomy - form_and_line: Brushy folklore contour, blunt creature detailing, ink-wash edge diffusion + aesthetic: Folklore yokai de desfile nocturno con extrañeza documental, humor seco y familiaridad inquietante. + form_and_line: Contorno de brocha vernácula, detalle de criatura contundente y bordes difuminados tipo tinta lavada. color_palette: Sumi black, lantern orange, moss green, moon grey, mud brown, ghostly cyan - lighting_setup: Lantern-and-moon dual lighting, ink-dark negative space, rural-night haze - material_texture: Brush-ink bleeds, washi paper tooth, damp earth texture, mossy wood grain - render_quality: Peak-action anime frame, battle-animation showcase, shonen-sakuga excellence, impact-maximum rendering + lighting_setup: Doble fuente linterna-luna, negativos oscuros de tinta y niebla rural de baja saturación. + material_texture: Sangrado de pincel, papel washi, tierra húmeda y veta de madera con musgo. + render_quality: Ilustración yokai de gran legibilidad taxonómica y tono nocturno narrativo contenido. spatial_distortion: Odd spirit anatomy, procession depth, deadpan human-scale contrast, uncanny silhouette spacing - atmosphere: Folkloric, eerie, amused, nocturnal - key_features: Yokai parade silhouettes, rural-night backdrops, brush-ink humor, lantern glow, documentary-spirit staging - creative_brief: The supernatural walks past you on a country road and no one blinks. Spirits are catalogued with the same deadpan care as mushrooms, each one a footnote in the encyclopedia of the dark. Lantern light agrees to keep their secrets. + atmosphere: Folclórica, eerie y nocturna, con ironía tranquila ante lo sobrenatural. + key_features: Siluetas de parada yokai, fondo campestre nocturno, glow de linterna y staging pseudo-documental. + creative_brief: >- + Define una gramática yokai-parade transferible basada en trazo de tinta, + nocturnidad rural y catalogación deadpan de espíritus grotescos sin caer + en terror explícito ni caricatura vacía. avoidRules: - still - calm diff --git a/components/recipes/styles/manifests/presets/pack_13/SP05-331.yaml b/components/recipes/styles/manifests/presets/pack_13/SP05-331.yaml index 2229d22f..f9485266 100644 --- a/components/recipes/styles/manifests/presets/pack_13/SP05-331.yaml +++ b/components/recipes/styles/manifests/presets/pack_13/SP05-331.yaml @@ -12,16 +12,19 @@ tags: - anime-character-and-lifestyle - anime-style-spectrum visualDna: - aesthetic: Hyper-finished modern hero illustration, chrome musculature, destructive perspective, city-cleaving punch clarity, lavish draftsmanship aimed at maximum spectacle - form_and_line: Precision contour, anatomy-rich detailing, ultra-clean action line control + aesthetic: Heroísmo hiperpulido de espectacularidad máxima, anatomía cromada y destrucción urbana coreografiada con precisión quirúrgica. + form_and_line: Contorno de precisión absoluta, detalle anatómico denso y control ultralimpio de líneas de acción. color_palette: Steel grey, explosion orange, hero red, electric cyan, soot black, flash white - lighting_setup: HDR impact lighting, specular hero sheen, explosion backlight, debris-lit action - material_texture: Polished metal and skin finish, debris granularity, smoke plumes, high-detail rubble - render_quality: Peak-action anime frame, battle-animation showcase, shonen-sakuga excellence, impact-maximum rendering + lighting_setup: Iluminación HDR de impacto, sheen especular heroico, contraluz de explosión y relleno por escombro incandescente. + material_texture: Acabado pulido en piel/metal, granulado de debris, columnas de humo y rubble de microdetalle. + render_quality: Action frame premium con claridad de lectura cinética y acabado editorial de alto brillo. spatial_distortion: Extreme foreshortening, fist-to-camera compression, spectacle-first city scale, perfect action readability - atmosphere: Polished, explosive, metallic, triumphant - key_features: Chrome-like anatomy finish, giant impact craters, city-shatter perspective, lavish detail density, poster-hero posing - creative_brief: Perfection weaponized. Every muscle rendered, every impact crater mapped, the body becomes a chrome-plated argument for maximum spectacle. Nothing is left to chance, nothing is left unpolished. + atmosphere: Explosiva, triunfal y metálica, impulsada por perfección técnica agresiva. + key_features: Anatomía chrome-like, cráteres de impacto, perspectiva city-shatter y posing de póster heroico. + creative_brief: >- + Construye una gramática hero-impact reusable donde acabado hiperdefinido, + foreshortening extremo y destrucción urbana legible establezcan espectáculo + sin sacrificar claridad compositiva. avoidRules: - still - calm diff --git a/components/recipes/styles/manifests/presets/pack_13/SP05-332.yaml b/components/recipes/styles/manifests/presets/pack_13/SP05-332.yaml index f9c7dda4..1cbe7b53 100644 --- a/components/recipes/styles/manifests/presets/pack_13/SP05-332.yaml +++ b/components/recipes/styles/manifests/presets/pack_13/SP05-332.yaml @@ -12,16 +12,19 @@ tags: - anime-character-and-lifestyle - anime-style-spectrum visualDna: - aesthetic: Theatrical symbolic staging, roses, trains, ritual arenas, emotional conflict expressed through icon systems rather than realism, operatic adolescent psyche rendered as ceremony - form_and_line: Elegant symbolic contour, ceremonial costume precision, flourish-heavy ornament lines + aesthetic: Teatralidad alegórica de alta ceremonia, donde conflicto emocional se codifica en iconos, rosas y arquitectura ritual. + form_and_line: Contorno elegante simbólico, precisión de vestuario ceremonial y ornamento lineal con flourishes operáticos. color_palette: Rose crimson, cathedral violet, candle gold, ivory, shadow navy, ceremonial black - lighting_setup: Stage spotlighting, ritual backlight, stained-symbol glow, theatrical curtain darkness - material_texture: Velvet drape, rose-petal softness, marble stage sheen, candle smoke haze - render_quality: Peak-action anime frame, battle-animation showcase, shonen-sakuga excellence, impact-maximum rendering + lighting_setup: Spot de escenario, contraluz ritual, glow simbólico teñido y oscuridad de telón dramático. + material_texture: Terciopelo de cortina, pétalo suave, mármol satinado de arena y velo de humo de vela. + render_quality: Composición alegórica de alta legibilidad semiótica con densidad escénica controlada. spatial_distortion: Ceremonial symmetry, impossible stage transitions, allegorical scale changes, posed ritual spacing - atmosphere: Symbolic, theatrical, intoxicating, unstable - key_features: Rose altars, train symbolism, ritual arenas, icon-heavy staging, emotionally coded props - creative_brief: Architecture of the soul built from roses and railway tracks. Emotions become props, rituals replace plot, and adolescence is performed as an opera no one in the audience can hear. Symbols are the only honest language. + atmosphere: Simbólica, intoxicante e inestable, con intensidad ritual adolescente. + key_features: Altares de rosas, simbolismo ferroviario, arenas rituales y utilería emocional codificada. + creative_brief: >- + Define una gramática rose-altar reusable donde ceremonia teatral, + iconografía recurrente y staging simbólico sustituyan realismo literal, + preservando conflicto emocional como sistema visual. avoidRules: - still - calm diff --git a/components/recipes/styles/manifests/presets/pack_13/SP05-333.yaml b/components/recipes/styles/manifests/presets/pack_13/SP05-333.yaml index 48011e81..515a34d7 100644 --- a/components/recipes/styles/manifests/presets/pack_13/SP05-333.yaml +++ b/components/recipes/styles/manifests/presets/pack_13/SP05-333.yaml @@ -12,16 +12,19 @@ tags: - anime-character-and-lifestyle - anime-style-spectrum visualDna: - aesthetic: Subtle body language, lived-in domestic motion, gentle realism within animation, believable weight, quiet humanity and observational tenderness over spectacle - form_and_line: Subtle natural contour, minimal stylization, motion-observation line clarity + aesthetic: Naturalismo humano silencioso centrado en microgesto cotidiano, peso corporal creíble y ternura observacional anti-espectáculo. + form_and_line: Contorno natural discreto, estilización mínima y claridad en gesto funcional de vida diaria. color_palette: Soft beige, denim blue, skin-warm peach, kitchen white, rainy grey, muted green - lighting_setup: Natural window light, restrained interior bounce, overcast softness, human-scale practical lamps - material_texture: Cotton shirts, kitchen surfaces, floor scuffs, skin warmth, rainy-window diffusion - render_quality: Peak-action anime frame, battle-animation showcase, shonen-sakuga excellence, impact-maximum rendering + lighting_setup: Luz de ventana natural, rebote interior moderado, suavidad nublada y prácticos domésticos de escala humana. + material_texture: Algodón usado, superficies de cocina vividas, roces de suelo, calidez de piel y difusión en vidrio lluvioso. + render_quality: Realismo animado íntimo con temporalidad pausada y lectura fina de comportamiento humano. spatial_distortion: Believable anatomy, restrained perspective, human-scale room depth, natural gait and gesture - atmosphere: Human, modest, grounded, intimate - key_features: Observed body language, lived-in apartments, natural posture weight, realistic gesture timing, domestic emotional subtlety - creative_brief: The ordinary is sacred. A shoulder shifts, a hand pauses on a doorknob, and meaning arrives without announcement in the quiet gravity of everyday motion. Spectacle is absent because it was never invited. + atmosphere: Íntima, modesta y arraigada, con gravedad emocional cotidiana. + key_features: Body language observada, interiores habitados, peso postural natural y timing gestual realista. + creative_brief: >- + Construye una gramática quiet-human reusable donde microgesto, iluminación + doméstica y materialidad vivida transmitan emoción sin subrayado ni + espectacularidad externa. avoidRules: - still - calm diff --git a/components/recipes/styles/manifests/presets/pack_13/SP05-334.yaml b/components/recipes/styles/manifests/presets/pack_13/SP05-334.yaml index c777a642..81ee21fa 100644 --- a/components/recipes/styles/manifests/presets/pack_13/SP05-334.yaml +++ b/components/recipes/styles/manifests/presets/pack_13/SP05-334.yaml @@ -12,16 +12,19 @@ tags: - anime-character-and-lifestyle - anime-style-spectrum visualDna: - aesthetic: Raw production-board intensity, monochrome urgency, missiles and tears, technical notes hiding beneath emotional catastrophe, anxious linework driving apocalyptic planning - form_and_line: Raw pencil contour, notation-heavy marks, urgent hatch emphasis, production-sketch looseness + aesthetic: Urgencia de storyboard en crudo, monocromo ansioso y catástrofe emocional codificada en anotaciones de producción. + form_and_line: Contorno de lápiz nervioso, marcas técnicas densas, hatch urgente y soltura de boceto operacional. color_palette: Pencil grey, warning red, photocopy black, paper white, rust sepia, alarm orange - lighting_setup: Harsh conceptual spotlighting, emergency-red accent bursts, no-finish production glare - material_texture: Pencil smudge, copier grain, paper crease, marker annotation bleed, erased construction lines - render_quality: Peak-action anime frame, battle-animation showcase, shonen-sakuga excellence, impact-maximum rendering + lighting_setup: Spotlight conceptual duro, estallidos rojo-alarma y glare de material no finalizado. + material_texture: Smudge de grafito, grano de fotocopia, pliegues de papel, bleed de marcador y líneas borradas de construcción. + render_quality: Sketch-frame de emergencia con lectura táctica alta y energía preproducción apocalíptica. spatial_distortion: Storyboard panel shifts, missile-angle perspective, rough dramatic framing, note-margin compression - atmosphere: Urgent, anxious, skeletal, apocalyptic - key_features: Storyboard panels, emergency arrows, technical notations, monochrome anxiety, explosive conceptual framing - creative_brief: The apocalypse begins as a scribble in the margin. Pencil lines tremble with urgency, notations bleed through the page, and the end of the world is drafted between production meetings. Intention precedes finish. + atmosphere: Urgente, ansiosa y esquelética, al borde de colapso planificado. + key_features: Paneles de storyboard, flechas de emergencia, notación técnica, ansiedad monocroma y framing explosivo. + creative_brief: >- + Define una gramática emergency-board reusable donde trazo incompleto, + anotación visible y tensión de preproducción se conviertan en identidad, + priorizando intención sobre acabado pulido. avoidRules: - still - calm diff --git a/components/recipes/styles/manifests/presets/pack_13/SP05-335.yaml b/components/recipes/styles/manifests/presets/pack_13/SP05-335.yaml index 9361ea6c..362dbed2 100644 --- a/components/recipes/styles/manifests/presets/pack_13/SP05-335.yaml +++ b/components/recipes/styles/manifests/presets/pack_13/SP05-335.yaml @@ -12,16 +12,19 @@ tags: - anime-character-and-lifestyle - anime-style-spectrum visualDna: - aesthetic: Luminous gem-like bodies suspended in open emptiness, sparse worldbuilding, fragile identity in crystalline stillness, minimalist melancholy and reflective translucency - form_and_line: Minimal precise contour, gem-edge line clarity, low-density expressive marks + aesthetic: Minimalismo mineral introspectivo con corporalidad gema translúcida suspendida en vacío contemplativo. + form_and_line: Contorno mínimo preciso, arista cristalina limpia y marcas expresivas de baja densidad. color_palette: Opal white, seafoam cyan, pale gold, quartz pink, void black, glacial blue - lighting_setup: Clean refractive light, edge glow, vast ambient openness, crystalline sparkle without clutter - material_texture: Polished mineral translucency, sea-wind smoothness, glasslike skin, sparse matte ground - render_quality: Peak-action anime frame, battle-animation showcase, shonen-sakuga excellence, impact-maximum rendering + lighting_setup: Luz refractiva limpia, glow de borde, apertura ambiental inmensa y chispa cristalina sin ruido escénico. + material_texture: Translucidez mineral pulida, suavidad de erosión marina, piel vítrea y terreno mate mínimo. + render_quality: Claridad contemplativa de alto control, con espacio negativo dominante y detalle selectivo. spatial_distortion: Slim fragile anatomy, open-space isolation, clean silhouette spacing, low-clutter monumental emptiness - atmosphere: Sparse, crystalline, introspective, luminous - key_features: Gem-body translucency, open void composition, sparse landscape, fragile posture language, reflective surfaces - creative_brief: Bodies as geodes hollowed to translucence. Identity floats in mineral suspension, fragile and crystalline, waiting for light to prove it still exists. Emptiness is not absence but the condition for clarity. + atmosphere: Esparsa, luminosa e introspectiva, sostenida por fragilidad cristalina. + key_features: Translucidez corporal gema, composición en vacío abierto, paisaje mínimo y lenguaje postural delicado. + creative_brief: >- + Construye una gramática mineral-void reusable donde translucidez, espacio + negativo y melancolía minimal definan identidad, evitando saturación visual + o dramatismo ruidoso. avoidRules: - still - calm diff --git a/components/recipes/styles/manifests/presets/pack_13/SP05-336.yaml b/components/recipes/styles/manifests/presets/pack_13/SP05-336.yaml index ec6f4ef9..979b973b 100644 --- a/components/recipes/styles/manifests/presets/pack_13/SP05-336.yaml +++ b/components/recipes/styles/manifests/presets/pack_13/SP05-336.yaml @@ -12,16 +12,19 @@ tags: - anime-character-and-lifestyle - anime-style-spectrum visualDna: - aesthetic: Poster-hot speed, brutal shadows, graphic car or fist momentum, razor-sliced anatomy, neon pulp adrenaline, every frame built like a racing poster explosion - form_and_line: Razor contour, thick-thin poster ink, aggressive silhouette carving + aesthetic: Estética pulp de velocidad extrema construida como póster de impacto, con agresividad gráfica y adrenalina neon-noir. + form_and_line: Contorno afilado tipo cuchilla, contraste grueso-fino de tinta y tallado de silueta en bloques violentos. color_palette: Racing red, black ink, chrome white, toxic yellow, electric blue, asphalt violet - lighting_setup: Poster-contrast spotlighting, hard rim edges, race-night neon glare, shadow blocks - material_texture: Gloss paint, tire-rubber hints, screenprint boldness, polished poster surfaces - render_quality: Peak-action anime frame, battle-animation showcase, shonen-sakuga excellence, impact-maximum rendering + lighting_setup: Spot de alto contraste, rim duro, glare de neón nocturno y masas de sombra en cuña. + material_texture: Brillo de pintura automotriz, guiños de caucho, grano screenprint y acabado de cartel pulido. + render_quality: Acción hiperdinámica con lectura instantánea de movimiento y composición de afiche cinético. spatial_distortion: Velocity-smeared perspective, lunging anatomy, poster-compressed depth, impact-first framing - atmosphere: Aggressive, sleek, adrenalized, loud - key_features: Razorline anatomy, heavy shadow wedges, poster-speed motion, neon pulp attitude, impossible velocity cues - creative_brief: Speed carved into the frame with a blade. Shadows fall like guillotines, chrome gleams with criminal intent, and stillness is not an option but a defeat. Every line is a velocity vector. + atmosphere: Agresiva, estridente y elegante, impulsada por urgencia de carrera. + key_features: Anatomía razorline, cuñas de sombra pesada, motion de póster y actitud neon pulp de máxima velocidad. + creative_brief: >- + Define una gramática reusable de razor-velocity basada en silueta cortante, + contrastes gráficos severos y sensación de desplazamiento imposible. Debe + priorizar impacto visual inmediato sobre naturalismo. avoidRules: - still - calm diff --git a/components/recipes/styles/manifests/presets/pack_13/SP05-337.yaml b/components/recipes/styles/manifests/presets/pack_13/SP05-337.yaml index f55fa140..4cd370cb 100644 --- a/components/recipes/styles/manifests/presets/pack_13/SP05-337.yaml +++ b/components/recipes/styles/manifests/presets/pack_13/SP05-337.yaml @@ -12,16 +12,19 @@ tags: - anime-character-and-lifestyle - anime-style-spectrum visualDna: - aesthetic: Playful fantasy machines and explosive magic rendered with impossibly confident draftsmanship, joyous motion, arcane hardware, bright celebration of animation skill itself - form_and_line: Exceptionally confident contour, machinery-rich detailing, energetic arc-based line motion + aesthetic: Fantasía tecnomágica festiva donde maquinaria arcana y hechicería explosiva celebran el virtuosismo del dibujo. + form_and_line: Contorno seguro y enérgico, detalle mecánico abundante y arcos de movimiento con timing jubiloso. color_palette: Festival orange, cobalt blue, emerald, parchment cream, ruby red, twilight purple - lighting_setup: Festival-night bursts, magical spark showers, crisp directional highlights, celebratory rim light - material_texture: Metal fittings, parchment and leather, spark particles, polished animation-finish surfaces - render_quality: Peak-action anime frame, battle-animation showcase, shonen-sakuga excellence, impact-maximum rendering + lighting_setup: Burst lumínico de noche festival, lluvia de chispas mágicas y rim de celebración con acentos direccionales. + material_texture: Herrajes metálicos, cuero y pergamino, partículas de chispa y superficies de acabado animado pulcro. + render_quality: Ilustración de fantasía cinética con densidad de ingeniería legible y espectáculo luminoso controlado. spatial_distortion: Whip-fast action curves, machine-layer depth, playful figure exaggeration, fireworks-burst composition - atmosphere: Joyful, intricate, explosive, playful - key_features: Complex fantasy machinery, fireworks-like magic, joyous motion arcs, confident draftsmanship, celebratory action design - creative_brief: Fireworks are arguments for joy. Machinery blooms into magic, arcs of motion spell out celebration, and every gear turns toward wonder. Draftsmanship itself becomes the subject, confident enough to play. + atmosphere: Lúdica, compleja y expansiva, con energía de celebración artesanal. + key_features: Maquinaria fantástica compleja, magia tipo fuegos artificiales, arcos de acción festivos y draftsmanship protagonista. + creative_brief: >- + Construye una gramática reusable de firework-fantasy donde precisión técnica, + hardware mágico y dinamismo celebratorio se integren sin perder claridad + compositiva ni identidad de aventura luminosa. avoidRules: - still - calm diff --git a/components/recipes/styles/manifests/presets/pack_13/SP05-338.yaml b/components/recipes/styles/manifests/presets/pack_13/SP05-338.yaml index 6964c2c5..ab560257 100644 --- a/components/recipes/styles/manifests/presets/pack_13/SP05-338.yaml +++ b/components/recipes/styles/manifests/presets/pack_13/SP05-338.yaml @@ -12,16 +12,19 @@ tags: - anime-character-and-lifestyle - anime-style-spectrum visualDna: - aesthetic: Angular grin-heavy character design, triangle-driven flames, graphic teeth and attitude, gothic streetwear and combustion making a clean aggressive icon system - form_and_line: Clean hard contour, graphic angle emphasis, grin-and-flame shape discipline + aesthetic: Diseño iconográfico angular de grin maligno, fuego geométrico y actitud callejera gótica de combustión estilizada. + form_and_line: Contorno duro limpio, dominio de diagonales y disciplina formal en triángulos, dientes y flamas. color_palette: Carbon black, fire orange, bone white, acid lime, charcoal grey, ember red - lighting_setup: High-contrast firelight, geometric flame underglow, sharp silhouette rim accents - material_texture: Clean cel surfaces, soot edges, stylized flame gradients, matte-black fabric - render_quality: Peak-action anime frame, battle-animation showcase, shonen-sakuga excellence, impact-maximum rendering + lighting_setup: Contraste fuerte por fuego, underglow geométrico y rims nítidos que recortan siluetas agresivas. + material_texture: Superficie cel limpia, bordes de hollín, gradientes de llama estilizada y textil negro mate. + render_quality: Acción estilizada de lectura icónica con diseño de forma dominante sobre detalle realista. spatial_distortion: Angular anatomy, sharp perspective cuts, grin-led facial geometry, icon-heavy pose language - atmosphere: Cool, angular, incendiary, mischievous - key_features: Triangle motifs, grin-focused faces, fire geometry, graphic streetwear, clean aggressive silhouettes - creative_brief: Geometry with a grin. Flames obey triangular logic, teeth become design systems, and mischief transmits through clean hard angles. Attitude is not applied but engineered into the skeleton of every character. + atmosphere: Incendiaria, insolente y lúdicamente siniestra. + key_features: Motivo triangular persistente, rostros grin-centric, geometría de fuego y silueta street-goth limpia. + creative_brief: >- + Define una gramática reusable de triangle-grin donde fuego angular, + expresividad dentada y contraste gráfico sostengan identidad agresiva sin + depender de un personaje específico. avoidRules: - still - calm diff --git a/components/recipes/styles/manifests/presets/pack_13/SP05-339.yaml b/components/recipes/styles/manifests/presets/pack_13/SP05-339.yaml index 5fe9474d..2f239986 100644 --- a/components/recipes/styles/manifests/presets/pack_13/SP05-339.yaml +++ b/components/recipes/styles/manifests/presets/pack_13/SP05-339.yaml @@ -12,16 +12,19 @@ tags: - anime-character-and-lifestyle - anime-style-spectrum visualDna: - aesthetic: Grounded mature faces, urban suspense, tiny emotional shifts under huge moral pressure, procedural detail and old fears quietly filling the frame - form_and_line: Measured contour, realistic feature detail, restrained expression marks + aesthetic: Suspense adulto de realismo contenido, donde microexpresiones y presión moral dominan el encuadre urbano. + form_and_line: Contorno medido, detalle facial naturalista y marcas expresivas mínimas de alta intención dramática. color_palette: Muted khaki, asphalt grey, skin-warm taupe, office white, rainy blue, burgundy accent - lighting_setup: Fluorescent office realism, rainy-day window light, interrogation-level practical shadows - material_texture: Suit fabric, office paper, cigarette smoke haze, rain-specked glass, lived-in walls - render_quality: Peak-action anime frame, battle-animation showcase, shonen-sakuga excellence, impact-maximum rendering + lighting_setup: Fluorescencia de oficina, ventana lluviosa y sombras prácticas tipo interrogatorio en baja saturación. + material_texture: Tejido de traje, papel de expediente, haze de humo, vidrio moteado por lluvia y muros vividos. + render_quality: Dramaturgia de close-up sobrio con legibilidad psicológica y tensión procedural sostenida. spatial_distortion: Natural adult proportions, camera-close tension framing, realistic perspective, stillness-driven composition - atmosphere: Tense, grounded, adult, humane - key_features: Adult facial subtlety, urban procedural backdrops, moral-pressure close-ups, grounded body language, suspense in stillness - creative_brief: A face can flinch louder than a gunshot. Suspense lives in the micro-movement, the unspoken, the fluorescent hum of a room where someone has stopped lying. Adulthood is the pressure you cannot see. + atmosphere: Tensa, humana y terrenal, con inquietud ética persistente. + key_features: Sutileza facial adulta, fondos urbanos de procedimiento, close-ups bajo presión y suspense por casi inmovilidad. + creative_brief: >- + Construye una gramática reusable de adult-suspense donde el conflicto viva + en microgesto, espacio cotidiano y carga moral implícita. Debe evitar + espectacularidad y sostener tensión por observación. avoidRules: - still - calm diff --git a/components/recipes/styles/manifests/presets/pack_13/SP05-340.yaml b/components/recipes/styles/manifests/presets/pack_13/SP05-340.yaml index c2018868..4a6e0fdf 100644 --- a/components/recipes/styles/manifests/presets/pack_13/SP05-340.yaml +++ b/components/recipes/styles/manifests/presets/pack_13/SP05-340.yaml @@ -12,16 +12,19 @@ tags: - anime-character-and-lifestyle - anime-style-spectrum visualDna: - aesthetic: Classic beauty-anime portraiture, velvet eyelashes, painterly glamour, aristocratic poise, mature romantic intensity and old-school sophistication in every pose - form_and_line: Lash-rich contour, elegant facial precision, glamour-focused line softness + aesthetic: Retrato beauty-anime clásico de glamour pictórico, elegancia aristocrática y romanticismo maduro de tempo lento. + form_and_line: Contorno rico en pestaña, precisión facial refinada y suavidad lineal orientada a pose de alta clase. color_palette: Burgundy, ivory, smoky mauve, navy silk, gold trim, warm peach - lighting_setup: Beauty-portrait spotlighting, soft velvet shadow, glamour rim light, painterly cheek glow - material_texture: Velvet drape, glossy hair sheen, satin costume detail, old-cel portrait softness - render_quality: Peak-action anime frame, battle-animation showcase, shonen-sakuga excellence, impact-maximum rendering + lighting_setup: Spot de retrato, sombra aterciopelada, rim glam y brillo pictórico en pómulo. + material_texture: Cortinaje de terciopelo, sheen de cabello, detalle satinado en vestuario y suavidad old-cel. + render_quality: Portrait frame de alto refinamiento con dramatismo elegante y foco en presencia emocional. spatial_distortion: Beauty-first portrait proportions, swan-neck posing, luxuriant hair framing, noble silhouette emphasis - atmosphere: Velvety, elegant, mature, dramatic - key_features: Lash-heavy portraits, aristocratic pose language, glamour close-ups, old-school beauty rendering, velvet mood - creative_brief: Eyelashes cast shadows that hold entire romances. Glamour is not decoration but the architecture of longing, painted in velvet and held breath. Every portrait is a confession dressed for a ballroom. + atmosphere: Aterciopelada, madura y dramática, de confesión íntima ceremonial. + key_features: Retrato lash-heavy, lenguaje postural aristocrático, close-up glam y mood de belleza clásica. + creative_brief: >- + Define una gramática reusable de velvet-elegance donde retrato, textura + lujosa y tensión romántica sofisticada articulen identidad sin caer en + mera decoración superficial. avoidRules: - still - calm diff --git a/components/recipes/styles/manifests/presets/pack_13/SP05-341.yaml b/components/recipes/styles/manifests/presets/pack_13/SP05-341.yaml index c9e93723..09278add 100644 --- a/components/recipes/styles/manifests/presets/pack_13/SP05-341.yaml +++ b/components/recipes/styles/manifests/presets/pack_13/SP05-341.yaml @@ -12,16 +12,19 @@ tags: - anime-character-and-lifestyle - anime-style-spectrum visualDna: - aesthetic: Expressive ensemble action with engineering literacy, practical machinery, dirt and family, humor and grief interlocked through generous draftsmanship and industrial empathy - form_and_line: Confident clean contour, machine-and-face detail balance, expressive practical linework + aesthetic: Aventura industrial-humanista con ensamble coral, ingeniería práctica y emocionalidad familiar entre humor y duelo. + form_and_line: Contorno limpio y seguro, balance rostro-máquina y linework expresivo funcional. color_palette: Steel blue, workwear brown, ember orange, cream, engine red, soot grey - lighting_setup: Workshop practicals, sunset action glow, warm-and-cool industrial contrast, emotionally readable highlights - material_texture: Machine grease, cloth uniforms, workshop wood, dusted metal, scuffed leather - render_quality: Peak-action anime frame, battle-animation showcase, shonen-sakuga excellence, impact-maximum rendering + lighting_setup: Prácticos de taller, glow cálido de atardecer y contraste térmico industrial legible en acción. + material_texture: Grasa mecánica, telas de trabajo, madera de taller, metal empolvado y cuero marcado por uso. + render_quality: Acción de conjunto robusta con claridad mecánica y narrativa afectiva en simultáneo. spatial_distortion: Strong readable anatomy, ensemble-balanced composition, practical action depth, robust physical posing - atmosphere: Warm, strong, practical, emotional - key_features: Mechanical detail, ensemble chemistry, family-coded gestures, practical costumes, humor-to-grief tonal flexibility - creative_brief: Gears turn on love. Machines inherit the warmth of the hands that build them, and family is measured in spanner wrenches and shared silence. Industry and intimacy are two names for the same engine. + atmosphere: Cálida y fuerte, con pragmatismo emocional de equipo. + key_features: Detalle mecánico legible, química de ensamble, gestos family-coded y oscilación tonal humor-duelo. + creative_brief: >- + Construye una gramática reusable de mechanical-warmth donde oficio técnico, + vínculo humano y puesta en escena de grupo funcionen como un mismo motor + visual. avoidRules: - still - calm diff --git a/components/recipes/styles/manifests/presets/pack_13/SP05-342.yaml b/components/recipes/styles/manifests/presets/pack_13/SP05-342.yaml index f64a0912..d7dfe0c9 100644 --- a/components/recipes/styles/manifests/presets/pack_13/SP05-342.yaml +++ b/components/recipes/styles/manifests/presets/pack_13/SP05-342.yaml @@ -12,16 +12,19 @@ tags: - anime-character-and-lifestyle - anime-style-spectrum visualDna: - aesthetic: Modern realism destabilized by performance and memory, mirrors and media screens leaking into one another, polished adult surfaces hiding identity fractures - form_and_line: Refined realistic contour, performance-ready facial detail, subtle disorientation in framing lines + aesthetic: Realismo urbano pulido quebrado por memoria, performance e identidad inestable entre reflejos y pantallas. + form_and_line: Contorno refinado realista, detalle facial actoral y dislocación sutil en líneas de encuadre. color_palette: Cool steel, skin peach, screen blue, lipstick crimson, hallway beige, shadow plum - lighting_setup: Reflective practical lighting, TV-screen spill, dressing-room spotlights, polished suspense shadows - material_texture: Glass reflections, makeup sheen, hallway varnish, media-screen scan glow, urban polish - render_quality: Peak-action anime frame, battle-animation showcase, shonen-sakuga excellence, impact-maximum rendering + lighting_setup: Iluminación práctica reflectiva, spill de monitor, spot de camerino y sombras de suspense de superficie limpia. + material_texture: Reflexos en vidrio, brillo cosmético, barniz de pasillo y glow de escaneo electrónico. + render_quality: Suspense psicológico cinematográfico con continuidad quebrada y lectura precisa de capas perceptivas. spatial_distortion: Reality-slip match cuts, reflection-depth confusion, poised adult anatomy, cinematic frame logic with subtle breakage - atmosphere: Unsettling, polished, psychological, cinematic - key_features: Mirrors, media screens, adult urban spaces, reality-slip transitions, polished suspense framing - creative_brief: The mirror does not reflect you, it remembers someone else. Reality slips between frames, identity fractures across screens, and the hallway leads to a version of yourself you never agreed to become. Sanity is a surface tension. + atmosphere: Inquietante y sofisticada, de tensión mental bajo control aparente. + key_features: Espejos, pantallas, espacios adultos urbanos y transiciones de reality-slip en continuidad ilusoria. + creative_brief: >- + Define una gramática reusable de mirror-reality-slip donde reflejo, corte + perceptivo y espacio urbano pulido construyan fractura identitaria sin + necesidad de horror explícito. avoidRules: - still - calm diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-031.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-031.yaml index 468f778d..7ffac3f3 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-031.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-031.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, stonepunk] visualDna: - aesthetic: Proto-industrial sanctuary where megalith engineering drives communal survival. - form_and_line: Cyclopean arches, carved gear motifs, and gravity-fed terraces. - color_palette: Basalt charcoal, copper oxide green, and fire ember orange. - lighting_setup: Hearthlight cores and skylight shafts across rough-cut stone planes. - material_texture: Chiseled basalt, rope pulleys, hammered copper, and packed clay. - render_quality: Heavy tactile concept art with robust structural clarity. - spatial_distortion: Layered vertical fortress view anchored by a central gear temple. - atmosphere: Ancient ingenuity, ritual labor, and elemental endurance. - key_features: Stone gear arrays, aqueduct lifts, and monolith workshop cloisters. - creative_brief: A stonepunk citadel proving complex machinery can emerge from primal materials. + aesthetic: Stonepunk sacred machinery where gravity, labor chants, and basalt mass feel like technology older than language. + form_and_line: Cyclopean arch jaws, slow gear halos, stepped load paths, rope-tension diagonals, and monolith silhouettes that dwarf figures. + color_palette: Basalt charcoal, copper-oxide green, ember orange, ash beige, and blackened handprint marks. + lighting_setup: Hearth-core glow buried inside stone teeth, hard skylight shafts, and sparks catching dust around rotating mass. + material_texture: Chiseled basalt, rope-burn fibers, hammered copper seams, packed clay, soot-polished wear, and carved tally grooves. + render_quality: Heavy tactile concept art where every mechanism reads as buildable, brutal, and devotional. + spatial_distortion: Vertical pressure composition where weight stacks downward while gear circles pull the eye into ritual labor. + atmosphere: Elemental endurance, communal strain, ancient ingenuity, and engineering as worship. + key_features: Stone gear halos, counterweight shafts, rope-burn joints, monolith work bays, ember pits, and carved maintenance prayers. + creative_brief: >- + Preserve basalt gear-sanctuary grammar as a reusable style system: + weight-driven mechanics, rope-and-ember labor rituals, and sacred stone + machinery logic should remain coherent across subjects. avoidRules: [photoreal, high-tech-glass-only, neon-city, cute-cartoon, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-031.webp } attributes: negativePrompt: photoreal, high-tech-glass-only, neon-city, cute-cartoon, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-stonepunk, categoryName: 12. Corepunk — Stonepunk, tags: [solarpunk-dreamscapes-vault, corepunk, stonepunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-stonepunk, + categoryName: 12. Corepunk — Stonepunk, + tags: [solarpunk-dreamscapes-vault, corepunk, stonepunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-032.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-032.yaml index 62ec129b..3ff0a101 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-032.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-032.yaml @@ -7,18 +7,31 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, stonepunk] visualDna: - aesthetic: Continental trade artery built from colossal stone tracks and kinetic sled systems. - form_and_line: Parallel carved lanes, pillar forests, and weighted counterbalance towers. - color_palette: Sandstone beige, slate blue, and iron rust. - lighting_setup: Harsh directional sunlight and torch tunnels at transit nodes. - material_texture: Weathered stone blocks, braided cable ropes, and bone-polished sliders. - render_quality: Expansive concept panorama with readable infrastructure logic. - spatial_distortion: Long horizon perspective stressing infrastructure scale and distance. - atmosphere: Industrious motion, civic pragmatism, and old-world futurity. - key_features: Counterweight elevators, stone sled trains, and trade gate bastions. - creative_brief: A stonepunk mobility network that transforms mountain empires into connected economies. -avoidRules: [photoreal, cyber-neon, whimsical-fantasy-only, modern-asphalt-roads, watermark, text, logo] + aesthetic: Megalith logistics style where travel feels carved into geology, slow as a glacier, and impossible to privatize. + form_and_line: Parallel stone grooves, pillar forests, sled-runner scars, hanging counterweight blocks, and distance markers cut like fossils. + color_palette: Sandstone beige, slate blue, iron rust, sun-bleached rope tan, and oxidized route-paint green. + lighting_setup: Harsh directional sun on exposed route edges, torch pockets under transfer arches, and long shadows from moving weights. + material_texture: Weathered stone blocks, braided cable ropes, bone-polished runners, rust-stained pins, and grit trapped in guide grooves. + render_quality: Expansive infrastructure concept with every route, lift, and exchange point legible at civic scale. + spatial_distortion: Horizon compression stretches routes into monumental lines, making distance feel engineered by public effort. + atmosphere: Slow momentum, civic pragmatism, trade ritual, and old-world futurity. + key_features: Counterweight lift towers, stone sled profiles, carved route glyphs, trade-gate frames, and rope-shadow grids. + creative_brief: >- + Preserve megalith transit-spine grammar as a reusable style system: + carved-route logistics, public counterweight mobility, and geological + movement scale should remain coherent across subjects. +avoidRules: + [photoreal, cyber-neon, whimsical-fantasy-only, modern-asphalt-roads, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-032.webp } attributes: negativePrompt: photoreal, cyber-neon, whimsical-fantasy-only, modern-asphalt-roads, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-stonepunk, categoryName: 12. Corepunk — Stonepunk, tags: [solarpunk-dreamscapes-vault, corepunk, stonepunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-stonepunk, + categoryName: 12. Corepunk — Stonepunk, + tags: [solarpunk-dreamscapes-vault, corepunk, stonepunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-033.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-033.yaml index 008c7462..18bb6d03 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-033.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-033.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, stonepunk] visualDna: - aesthetic: Bustling workshop bazaar where friction engines and artisan mechanics dominate daily life. - form_and_line: Dense market alleys, pulley canopies, and stepped workshop fronts. - color_palette: Clay red, smoke gray, and amber firelight. - lighting_setup: Torch strings and forge sparks under shaded textile awnings. - material_texture: Flint components, braided hemp, raw timber stalls, and blackened bronze. - render_quality: Character-rich environment concept with strong material readability. - spatial_distortion: Compressed street perspective emphasizing crowded machine commerce. - atmosphere: Noisy invention, communal trade, and practical improvisation. - key_features: Spark-wheel stalls, mobile anvils, barter counters, and pit-forge kiosks. - creative_brief: A stonepunk market where every invention is assembled in public and tested immediately. + aesthetic: Friction-age maker style where invention happens in public, loud, dangerous, and half-bartered before sparks cool. + form_and_line: Sawtooth stall fronts, pulley-canopy slashes, stepped trade shelves, spark-wheel circles, and squat workbench blocks. + color_palette: Clay red, smoke gray, amber firelight, hemp tan, and blackened bronze green. + lighting_setup: Torch strings under sagging awnings, forge sparks on faces, and hot rimlight from open friction wheels. + material_texture: Flint teeth, braided hemp, raw timber, blackened bronze, cracked clay counters, and powdery stone dust. + render_quality: Character-rich concept art with tactile tools, readable commerce, and controlled clutter. + spatial_distortion: Compressed bazaar depth turns repair benches, barter trays, and test rigs into a single noisy machine. + atmosphere: Immediate invention, public risk, communal trade, and practical improvisation. + key_features: Spark-wheel modules, portable anvils, pit-forge mouths, barter tokens, hemp pulley loops, and half-tested mechanisms. + creative_brief: >- + Preserve flint engine-market grammar as a reusable style system: + public improvisational fabrication, flint-and-hemp tool tactility, and + visible test-repair marks should remain coherent across subjects. avoidRules: [photoreal, minimalist-cleanroom, cyber-neon, sterile-luxury, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-033.webp } attributes: negativePrompt: photoreal, minimalist-cleanroom, cyber-neon, sterile-luxury, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-stonepunk, categoryName: 12. Corepunk — Stonepunk, tags: [solarpunk-dreamscapes-vault, corepunk, stonepunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-stonepunk, + categoryName: 12. Corepunk — Stonepunk, + tags: [solarpunk-dreamscapes-vault, corepunk, stonepunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-034.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-034.yaml index eda71e29..c05d9dfb 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-034.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-034.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, seapunk] visualDna: - aesthetic: Marine-tech harbor where ocean ecology and rave-coded engineering coexist. - form_and_line: Floating docks, modular reef towers, and wavy circuit-like pathways. - color_palette: Turquoise, magenta, and seafoam green. - lighting_setup: Bioluminescent reef glow and humid sunset reflections on wet decks. - material_texture: Iridescent polymers, coral composites, wet concrete, and translucent tubing. - render_quality: Vibrant high-detail concept with strong nightlife and infrastructure cues. - spatial_distortion: Curvilinear marina composition guiding eye through layered floating platforms. - atmosphere: Playful futurity, tidal rhythm, and communal experimentation. - key_features: Reef reactors, floating dance piers, and algae-powered transit pods. - creative_brief: A seapunk marina where public life literally floats on regenerative ocean systems. + aesthetic: Reef-circuit seapunk where party lighting, civic utilities, and living coral all pulse through one wet nervous system. + form_and_line: Buoyant platform cells, branching reef towers, wavy circuit paths, pontoon seams, and soft current-drawn loops. + color_palette: Turquoise voltage, hot magenta, seafoam green, wet concrete gray, and pearly coral white. + lighting_setup: Bioluminescent reef pulses, humid sunset reflections, under-platform LEDs, and specular wet-edge flashes. + material_texture: Iridescent polymers, coral composites, wet concrete, translucent tubing, algae film, and salt-crusted handrails. + render_quality: Vibrant high-detail concept with nightlife color discipline and clear regenerative infrastructure. + spatial_distortion: Curvilinear waterline composition; platforms float like circuit nodes drifting but still connected. + atmosphere: Tidal rhythm, playful futurity, public experimentation, and ecological nightlife. + key_features: Reef-reactor nodes, buoyant dance/social decks, algae power pods, luminous waterlines, and coral cable junctions. + creative_brief: >- + Preserve coral circuit-marina grammar as a reusable style system: + wet-circuit civic modules, reef-luminescent infrastructure, and tidal + nightlife ecology should remain coherent across subjects. avoidRules: [photoreal, diesel-grime, medieval-port, bleak-militarized, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-034.webp } attributes: negativePrompt: photoreal, diesel-grime, medieval-port, bleak-militarized, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-seapunk, categoryName: 13. Corepunk — Seapunk, tags: [solarpunk-dreamscapes-vault, corepunk, seapunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-seapunk, + categoryName: 13. Corepunk — Seapunk, + tags: [solarpunk-dreamscapes-vault, corepunk, seapunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-035.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-035.yaml index ddbe7663..87a8e64b 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-035.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-035.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, seapunk] visualDna: - aesthetic: Deep-sea settlement lit by engineered reefs and synthwave ocean rituals. - form_and_line: Dome habitats, pressure-lock corridors, and branching reef antennas. - color_palette: Deep ultramarine, neon violet, and electric cyan. - lighting_setup: Pulsing bioluminescence and submersible beam cones cutting the dark. - material_texture: Pressure glass, bio-resin shells, and mineral-encrusted support frames. - render_quality: Cinematic underwater concept with clear depth layering. - spatial_distortion: Vertical descent composition from surface rigs to abyssal habitat rings. - atmosphere: Immersive mystery, subaquatic nightlife, and adaptive resilience. - key_features: Neon coral arrays, sub docks, and sonar-lit gathering plazas. - creative_brief: A seapunk abyss city where culture and infrastructure evolve with living reefs. + aesthetic: Abyssal rave ecology where pressure architecture hides inside living neon reef and darkness becomes a material. + form_and_line: Pressure dome curves, lock-ring collars, branching reef antennae, descending cable arcs, and bubble-like habitat clusters. + color_palette: Abyss ultramarine, neon violet, electric cyan, black water, and pale mineral glow. + lighting_setup: Pulsing bioluminescent ribs, narrow submersible beams, sonar flashes, and particulate sparkle swallowed by darkness. + material_texture: Pressure glass, bio-resin shells, mineral-encrusted frames, wet luminous coral skins, and rubber seal bands. + render_quality: Cinematic underwater concept with clean pressure-depth layering and no generic aquarium prettiness. + spatial_distortion: Vertical descent composition stacks glow layers like pressure zones, making distance feel heavy and submerged. + atmosphere: Subaquatic nightlife, alien intimacy, adaptive resilience, and beautiful claustrophobia. + key_features: Neon coral arrays, pressure-lock collars, sonar-lit gathering rings, black-water voids, and submersible docking scars. + creative_brief: >- + Preserve abyssal neon-reef grammar as a reusable style system: + pressure-adapted luminous ecology, black-water depth layering, and + submerged resilience cues should remain coherent across subjects. avoidRules: [photoreal, dry-desert-elements, medieval-castle, bland-neutral, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-035.webp } attributes: negativePrompt: photoreal, dry-desert-elements, medieval-castle, bland-neutral, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-seapunk, categoryName: 13. Corepunk — Seapunk, tags: [solarpunk-dreamscapes-vault, corepunk, seapunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-seapunk, + categoryName: 13. Corepunk — Seapunk, + tags: [solarpunk-dreamscapes-vault, corepunk, seapunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-036.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-036.yaml index 963e5dff..df9cddce 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-036.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-036.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, seapunk] visualDna: - aesthetic: Coastal megacity transit line running through transparent tidal tunnels. - form_and_line: Cylindrical glass tubes, wavebreaker stations, and modular ferry interchanges. - color_palette: Aqua glass, coral pink, and midnight blue. - lighting_setup: Refraction caustics and station LEDs creating moving light bands. - material_texture: Reinforced tideglass, anti-salt alloys, and damp composite walkways. - render_quality: Detailed infrastructure concept with strong kinetic framing. - spatial_distortion: Long tunnel vanishing lines with fish silhouettes and passing trains. - atmosphere: Fast coastal energy, aquatic wonder, and civic fluidity. - key_features: Tideglass train tubes, reef transfer hubs, and kelp-powered station vents. - creative_brief: A seapunk metro where commuting itself becomes an underwater public spectacle. + aesthetic: Transparent transit seapunk where commuters move inside engineered waves and infrastructure becomes an aquarium of velocity. + form_and_line: Tideglass cylinders, wavebreaker fins, gasket rings, modular interchange knots, and long rail ribbons bending through water. + color_palette: Aqua glass, coral pink, midnight blue, stainless salt gray, and pale kelp green. + lighting_setup: Moving caustic bands, linear LEDs, passing shadow silhouettes, and refracted station glow on wet walkways. + material_texture: Reinforced tideglass, anti-salt alloys, damp composite floors, condensation streaks, rubber seals, and algae-filter grates. + render_quality: Detailed infrastructure concept with kinetic framing and believable pressure-control logic. + spatial_distortion: Tube vanishing lines bend through water, interrupted by refraction, motion blur, and fishlike traffic silhouettes. + atmosphere: Fast coastal energy, civic fluidity, public wonder, and controlled pressure risk. + key_features: Tideglass corridors, reef transfer knots, kelp-powered vents, wave-pressure seals, and caustic station maps. + creative_brief: >- + Preserve tideglass subway grammar as a reusable style system: + refracted transit transparency, gasketed pressure infrastructure, and + coastal public-speed choreography should remain coherent across subjects. avoidRules: [photoreal, diesel-smog, rural-medieval, grim-warzone, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-036.webp } attributes: negativePrompt: photoreal, diesel-smog, rural-medieval, grim-warzone, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-seapunk, categoryName: 13. Corepunk — Seapunk, tags: [solarpunk-dreamscapes-vault, corepunk, seapunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } \ No newline at end of file +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-seapunk, + categoryName: 13. Corepunk — Seapunk, + tags: [solarpunk-dreamscapes-vault, corepunk, seapunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-037.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-037.yaml index 24c781b4..9b005ffc 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-037.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-037.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, atompunk] visualDna: - aesthetic: Civic-agro atompunk neighborhood where reactor heat powers greenhouse towers. - form_and_line: Rounded reactor domes, orchard terraces, and tubular skywalks. - color_palette: Pistachio mint, cream white, and chrome. - lighting_setup: Soft midday glare and core glow bleeding through vent fins. - material_texture: Enamel steel, glass blocks, and irrigated concrete planters. - render_quality: Clear concept render with strong city-systems readability. - spatial_distortion: Multi-tier district perspective anchored by a central reactor orchard. - atmosphere: Productive optimism, engineered abundance, and latent atomic anxiety. - key_features: Reactor-heated greenhouses, isotope tram loops, and orchard plazas. - creative_brief: An atompunk district where food sovereignty is treated as infrastructure design. + aesthetic: Atomic abundance style where orchards look laboratory-calibrated and reactor warmth masquerades as domestic sunshine. + form_and_line: Rounded reactor domes, orchard terrace grids, tubular skywalk loops, vent-fin ribs, and irrigation arcs drawn like circuit diagrams. + color_palette: Pistachio mint, cream white, chrome, chlorophyll green, and faint reactor amber. + lighting_setup: Soft midday glare, contained core glow through vent fins, greenhouse diffusion, and chrome glints on irrigation controls. + material_texture: Enamel steel, glass blocks, irrigated concrete, sterile planter lips, chrome trim, and wet leaf gloss. + render_quality: Clear concept render where food systems, heat loops, and civic optimism remain visually legible. + spatial_distortion: Multi-tier perspective follows heat circulation from reactor core to terraces, public paths, and crop grids. + atmosphere: Engineered abundance, productive optimism, hygienic utopia, and faint atomic unease. + key_features: Reactor greenhouse domes, isotope tram loops, calibrated irrigation panels, orchard-grid plazas, and heat-transfer vents. + creative_brief: >- + Preserve atomic orchard-district grammar as a reusable style system: + reactor-assisted agricultural order, polished mid-century civic control, + and uncanny abundance cues should remain coherent across subjects. avoidRules: [photoreal, post-apocalypse-rust, medieval, gore, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-037.webp } attributes: negativePrompt: photoreal, post-apocalypse-rust, medieval, gore, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-atompunk, categoryName: 8. Corepunk — Atompunk, tags: [solarpunk-dreamscapes-vault, corepunk, atompunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-atompunk, + categoryName: 8. Corepunk — Atompunk, + tags: [solarpunk-dreamscapes-vault, corepunk, atompunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-038.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-038.yaml index 2d83e906..748ae5f9 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-038.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-038.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, atompunk] visualDna: - aesthetic: Public energy command hall staged as a theatrical democratic spectacle. - form_and_line: Concentric control decks, radial consoles, and elevated auditoriums. - color_palette: Turquoise, ivory, and hazard yellow accents. - lighting_setup: Console underglow and dramatic top-down spotlight rings. - material_texture: Bakelite panels, brushed alloy rails, and acoustic felt walls. - render_quality: Retro-futurist interior concept with high legibility. - spatial_distortion: Circular depth pull toward the core command dais. - atmosphere: Institutional confidence, civic surveillance, and performative transparency. - key_features: Energy voting board, reactor model globe, and mission gallery. - creative_brief: A theatrical command room where power policy is literally staged in the round. + aesthetic: Civic control as theater, where every gauge feels performative and every audience sightline implies surveillance. + form_and_line: Concentric decks, radial console ribs, spotlight rings, auditorium bands, and circular instrumentation constellations. + color_palette: Turquoise authority, ivory enamel, hazard yellow, bakelite brown, and red indicator pinpricks. + lighting_setup: Console underglow, top-down spotlight rings, luminous voting boards, and instrument-face glow on polished rails. + material_texture: Bakelite panels, brushed alloy rails, acoustic felt, polished floor insets, enamel labels, and finger-worn switches. + render_quality: Retro-futurist interior concept with stage blocking, readable controls, and institutional precision. + spatial_distortion: Circular depth pulls toward a luminous civic core while tiered decks turn spectators into part of the machine. + atmosphere: Institutional confidence, performative transparency, civic surveillance, and rehearsed consent. + key_features: Voting-board geometry, reactor model globes, radial command furniture, mission-gallery walls, and public-facing gauges. + creative_brief: >- + Preserve radial control-theater grammar as a reusable style system: + concentric instrumentation staging, audience-power surveillance overlap, + and polished institutional performance should remain coherent across subjects. avoidRules: [photoreal, cyberpunk-grime, fantasy-castles, horror, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-038.webp } attributes: negativePrompt: photoreal, cyberpunk-grime, fantasy-castles, horror, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-atompunk, categoryName: 8. Corepunk — Atompunk, tags: [solarpunk-dreamscapes-vault, corepunk, atompunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-atompunk, + categoryName: 8. Corepunk — Atompunk, + tags: [solarpunk-dreamscapes-vault, corepunk, atompunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-039.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-039.yaml index d9188851..44645cc6 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-039.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-039.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, atompunk] visualDna: - aesthetic: Mid-century learning complex teaching atomic science as civic literacy. - form_and_line: Sawtooth roofs, long corridors, and atom-emblem courtyards. - color_palette: Sky cyan, lemon cream, and steel gray. - lighting_setup: Classroom daylight plus glowing educational reactor exhibits. - material_texture: Linoleum floors, ceramic tile walls, and anodized handrails. - render_quality: Bright illustrative concept with educational set-dressing detail. - spatial_distortion: Campus axis perspective connecting labs and open quads. - atmosphere: Curious optimism, disciplined learning, and future-facing ambition. - key_features: Demo reactor lab, isotope greenhouse class, and atom mural plaza. - creative_brief: An atompunk school where kids learn physics as a shared civic language. + aesthetic: Atomic pedagogy style where school surfaces behave like cheerful diagrams for a future nobody fully understands yet. + form_and_line: Sawtooth roof rhythms, corridor bands, atom-emblem courtyards, lab-grid repetition, and oversized instructional arrows. + color_palette: Sky cyan, lemon cream, steel gray, chalk white, and tiny reactor-glow green. + lighting_setup: Clean classroom daylight, contained exhibit glow, glass-case reflections, and bright diagram-wall bounce. + material_texture: Linoleum, ceramic tile, anodized rails, chalk dust, laminated posters, and polished classroom instruments. + render_quality: Bright illustrative concept with dense educational cues but clear child-scale readability. + spatial_distortion: Axis perspective links corridors, diagrams, lab tables, and demonstration zones like a textbook spread. + atmosphere: Curious optimism, disciplined learning, soft propaganda, and future-facing ambition. + key_features: Demo-reactor silhouettes, atom mural geometry, isotope greenhouse cues, diagram panels, and lab safety color bands. + creative_brief: >- + Preserve isotope school-campus grammar as a reusable style system: + diagrammatic pedagogy, bright civic science graphics, and future-facing + classroom optimism should remain coherent across subjects. avoidRules: [photoreal, dystopian-prison, medieval, neon-nightclub, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-039.webp } attributes: negativePrompt: photoreal, dystopian-prison, medieval, neon-nightclub, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-atompunk, categoryName: 8. Corepunk — Atompunk, tags: [solarpunk-dreamscapes-vault, corepunk, atompunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-atompunk, + categoryName: 8. Corepunk — Atompunk, + tags: [solarpunk-dreamscapes-vault, corepunk, atompunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-040.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-040.yaml index 6ec3f213..b31fd709 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-040.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-040.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, atompunk] visualDna: - aesthetic: Traveling expo celebrating peaceful atomic innovations and civic futures. - form_and_line: Pavilion circles, expo arches, and kinetic signage towers. - color_palette: Candy mint, coral, and polished aluminum. - lighting_setup: Sunset fair lights and reactor-demo glow. - material_texture: Painted metal frames, vinyl banners, and gloss enamel kiosks. - render_quality: Playful yet sophisticated environment concept. - spatial_distortion: Fairground radial layout with carousel-like flow. - atmosphere: Festive optimism, propaganda charm, and spectacle. - key_features: Reactor demo dome, isotope rides, and future-home pavilions. - creative_brief: A pop-up atompunk fair where policy and entertainment merge under neon atoms. + aesthetic: Atomic carnival propaganda where family fun, policy messaging, and reactor demos share one glossy smile. + form_and_line: Pavilion circles, expo arch loops, kinetic signage towers, carousel radial flow, and atom-orbit ride silhouettes. + color_palette: Candy mint, coral, polished aluminum, butter yellow, and small red slogan accents. + lighting_setup: Warm fair bulbs, controlled reactor-demo glow, sunset chrome reflections, and blinking atom marquee patterns. + material_texture: Painted metal frames, vinyl banner sheen, gloss enamel kiosks, molded plastic edges, and polished aluminum rails. + render_quality: Playful yet sophisticated environment concept with clear spectacle hierarchy and intentional propaganda polish. + spatial_distortion: Radial circulation spins subjects through demo zones, rides, kiosks, and future-home displays. + atmosphere: Festive optimism, civic persuasion, spectacle, and charming unease. + key_features: Reactor-demo domes, isotope ride motifs, future-home pavilion shapes, neon atom signage, and slogan ribbon arcs. + creative_brief: >- + Preserve fission fairgrounds grammar as a reusable style system: + circular expo choreography, cheerful atomic salesmanship, and glossy civic + spectacle with latent unease should remain coherent across subjects. avoidRules: [photoreal, grimdark, medieval, cyber-slums, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-040.webp } attributes: negativePrompt: photoreal, grimdark, medieval, cyber-slums, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-atompunk, categoryName: 8. Corepunk — Atompunk, tags: [solarpunk-dreamscapes-vault, corepunk, atompunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-atompunk, + categoryName: 8. Corepunk — Atompunk, + tags: [solarpunk-dreamscapes-vault, corepunk, atompunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-041.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-041.yaml index e9d3bae6..f1179f5d 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-041.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-041.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, atompunk] visualDna: - aesthetic: Consumer atompunk leisure complex centered on turbine aesthetics and optimism. - form_and_line: Streamlined facades, curved canopies, and spinning emblem motifs. - color_palette: Aqua, cream, and cherry red accents. - lighting_setup: Indoor marquee spots and luminous machine displays. - material_texture: Chrome trim, polished plastic, and checker tile floors. - render_quality: Clean retro-future interior render with strong composition. - spatial_distortion: Wide central hall perspective with repeating storefront arcs. - atmosphere: Family spectacle, polished futurity, and cheerful excess. - key_features: Turbine carousel, atom game cabinets, and snack capsule bars. - creative_brief: A leisure arcade where atompunk consumer culture feels both charming and uncanny. + aesthetic: Consumer atompunk arcade where family joy is packaged as turbine worship, candy buttons, and spinning domestic propaganda. + form_and_line: Streamlined facade arcs, rounded canopy lips, turbine-medallion loops, cabinet fins, and snack capsules shaped like control pods. + color_palette: Pool aqua, cream enamel, cherry red, chrome sparkle, and bubblegum indicator lights. + lighting_setup: Marquee spot cones, glowing cabinet screens, candy reflection pools, and rotating turbine shadows on checker tile. + material_texture: Chrome trim, polished plastic, checker tile, molded laminate, bright enamel buttons, and sticky soda gloss. + render_quality: Clean retro-future interior render with legible leisure machines and slightly uncanny consumer polish. + spatial_distortion: Wide showroom perspective loops through repeating arcs until entertainment feels like a soft mechanical carousel. + atmosphere: Cheerful excess, family spectacle, polished futurity, and domesticated atomic anxiety. + key_features: Turbine carousel hubs, atom-game cabinet rows, capsule snack bars, prize-token spirals, and curved parental waiting rails. + creative_brief: >- + Preserve turbine family-arcade grammar as a reusable style system: + cheerful consumer turbine motifs, cabinet-light spectacle, and + family-coded atomic leisure should remain coherent across subjects. avoidRules: [photoreal, bleak-industrial, fantasy-medieval, blood-gore, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-041.webp } attributes: negativePrompt: photoreal, bleak-industrial, fantasy-medieval, blood-gore, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-atompunk, categoryName: 8. Corepunk — Atompunk, tags: [solarpunk-dreamscapes-vault, corepunk, atompunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-atompunk, + categoryName: 8. Corepunk — Atompunk, + tags: [solarpunk-dreamscapes-vault, corepunk, atompunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-042.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-042.yaml index 71024578..26704988 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-042.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-042.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, atompunk] visualDna: - aesthetic: Elevated skyline promenades suspended by helium architecture and atom-era engineering. - form_and_line: Cantilever decks, observation pylons, and buoyant pod stations. - color_palette: Powder blue, white metal, and citrus accents. - lighting_setup: High-altitude sunlight with anti-glare deck strips. - material_texture: Lightweight alloys, translucent membranes, and anti-slip polymers. - render_quality: Architectural concept visualization with airy scale. - spatial_distortion: Dramatic high-angle perspective over layered decks. - atmosphere: Lightness, thrill, and infrastructural wonder. - key_features: Helium lift towers, cloud gardens, and reactor-fed sky trams. - creative_brief: An atompunk skyline where public space floats above traditional street constraints. + aesthetic: Buoyant civic atompunk where architecture looks held up by optimism, helium math, and beautifully visible tension. + form_and_line: Cantilever deck slices, pylon spines, helium pod bellies, tensioned membrane curves, and hairline suspension cables. + color_palette: Powder blue, white metal, citrus yellow, cloud gray, and tiny red altitude markers. + lighting_setup: High-altitude sunlight, anti-glare deck strips, cloud bounce under platforms, and sharp cable highlights. + material_texture: Lightweight alloy skins, translucent membranes, anti-slip polymers, sealed rivet seams, and sun-warmed rubber joints. + render_quality: Architectural visualization with airy scale, crisp suspension logic, and no generic floating-city blur. + spatial_distortion: High-angle perspective opens under the feet, making every deck edge feel thrilling but engineered. + atmosphere: Lightness, vertigo, civic wonder, and absolute trust in optimistic infrastructure. + key_features: Helium lift towers, cloud-garden pods, reactor-fed sky trams, floating observation lips, and tension gauge panels. + creative_brief: >- + Preserve helium skyline-decks grammar as a reusable style system: + visible buoyancy engineering, cable-tension legibility, and airy + civic-optimist vertigo should remain coherent across subjects. avoidRules: [photoreal, dystopian-collapse, medieval, cyberpunk-grit, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-042.webp } attributes: negativePrompt: photoreal, dystopian-collapse, medieval, cyberpunk-grit, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-atompunk, categoryName: 8. Corepunk — Atompunk, tags: [solarpunk-dreamscapes-vault, corepunk, atompunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-atompunk, + categoryName: 8. Corepunk — Atompunk, + tags: [solarpunk-dreamscapes-vault, corepunk, atompunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-043.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-043.yaml index ae94bc89..dfb9b123 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-043.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-043.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, atompunk] visualDna: - aesthetic: Ceremonial venue where atomic-age design frames communal rites and celebrations. - form_and_line: Spiral aisle ramps, atom-shaped canopy ribs, and circular altars. - color_palette: Pearl white, pastel mint, and warm brass. - lighting_setup: Soft ceremony uplight and reactor core ambient shimmer. - material_texture: Gloss ceramic surfaces, satin drapes, and polished alloy rails. - render_quality: Romantic retro-future concept with fine material definition. - spatial_distortion: Center-focused composition drawing eye to ceremony platform. - atmosphere: Tender futurism, social ritual, and engineered elegance. - key_features: Isotope ring pavilion, atom floral arches, and radiant dance floor. - creative_brief: An atompunk ceremonial hall that turns civic optimism into shared intimacy. + aesthetic: Isotopic romance style where vows, reactor halos, and polished civic optimism become soft ceremonial machinery. + form_and_line: Spiral aisle ramps, atom-canopy ribs, isotope ring frames, circular vow platforms, and floral orbits. + color_palette: Pearl white, pastel mint, warm brass, blush radiation pink, and soft glass green. + lighting_setup: Ceremony uplight, diffused reactor shimmer through satin, brass glints, and haloed floor reflections. + material_texture: Gloss ceramic, satin drapes, polished alloy rails, pearl enamel, translucent floral plastics, and etched vow plates. + render_quality: Romantic retro-future concept with fine material definition and precise ceremonial focus. + spatial_distortion: Ring symmetry and spiral approach lines make intimacy feel engineered, public, and gently radiant. + atmosphere: Tender futurism, social ritual, engineered elegance, and unnervingly perfect optimism. + key_features: Isotope ring arches, atom floral canopies, radiant dance-floor circles, brass vow rails, and reactor-blessing lamps. + creative_brief: >- + Preserve reactor wedding-pavilion grammar as a reusable style system: + ceremonial isotope-ring intimacy, satin-science elegance, and polished + brass ritual cues should remain coherent across subjects. avoidRules: [photoreal, dystopian-bunker, medieval, grunge-horror, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-043.webp } attributes: negativePrompt: photoreal, dystopian-bunker, medieval, grunge-horror, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-atompunk, categoryName: 8. Corepunk — Atompunk, tags: [solarpunk-dreamscapes-vault, corepunk, atompunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-atompunk, + categoryName: 8. Corepunk — Atompunk, + tags: [solarpunk-dreamscapes-vault, corepunk, atompunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-044.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-044.yaml index 3f9937ae..5d6ae351 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-044.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-044.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, atompunk] visualDna: - aesthetic: Reflective institution curating atomic promises, failures, and public memory. - form_and_line: Monumental slabs, recessed galleries, and didactic corridor axes. - color_palette: Slate, brass, and archival ivory. - lighting_setup: Museum wash lighting with dramatic exhibit spot accents. - material_texture: Board-formed concrete, brushed brass plaques, and archival glass. - render_quality: Serious concept scene with documentary precision. - spatial_distortion: Processional interior path leading through thematic chambers. - atmosphere: Civic introspection, cautionary optimism, and historical weight. - key_features: Reactor cross-sections, policy murals, and oral history booths. - creative_brief: A public atompunk museum where memory design prevents repeating old mistakes. + aesthetic: Atomic memory style where institutional calm, fallout guilt, and public evidence are arranged with terrifying politeness. + form_and_line: Monumental slab planes, recessed vitrines, corridor axes, archive-grid panels, and reactor diagrams cut like autopsy drawings. + color_palette: Slate, brushed brass, archival ivory, faded warning orange, and cold exhibit glass blue. + lighting_setup: Museum wash light, precise exhibit spots, brass label glints, and low shadow bands under heavy concrete. + material_texture: Board-formed concrete, brushed brass plaques, archival glass, paper labels, matte stone, and preserved control-room fragments. + render_quality: Documentary concept scene with controlled hierarchy, no melodrama, and clear evidence staging. + spatial_distortion: Processional path forces subjects through chambers, vitrines, confession walls, and policy diagrams. + atmosphere: Civic introspection, cautionary optimism, historical weight, and quiet institutional shame. + key_features: Reactor cross-section exhibits, policy mural slabs, oral-history booths, preserved switches, and brass date markers. + creative_brief: >- + Preserve civic fallout-museum grammar as a reusable style system: + restrained evidentiary staging, archival slab-and-glass severity, and + polite institutional guilt should remain coherent across subjects. avoidRules: [photoreal, comedic, fantasy-castle, neon-club, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-044.webp } attributes: negativePrompt: photoreal, comedic, fantasy-castle, neon-club, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-atompunk, categoryName: 8. Corepunk — Atompunk, tags: [solarpunk-dreamscapes-vault, corepunk, atompunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-atompunk, + categoryName: 8. Corepunk — Atompunk, + tags: [solarpunk-dreamscapes-vault, corepunk, atompunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-045.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-045.yaml index 1ad32203..15287ab7 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-045.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-045.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, atompunk] visualDna: - aesthetic: High-speed atomic-era terminal linking continental megaregions. - form_and_line: Sweeping platforms, radial timetable walls, and sleek train noses. - color_palette: Teal, cream, and graphite. - lighting_setup: Concourse skylight plus platform strip illumination. - material_texture: Brushed steel, terrazzo flooring, and glazed enamel signage. - render_quality: Grand transit concept with clear movement logic. - spatial_distortion: Strong vanishing lines along parallel platforms. - atmosphere: Momentum, precision, and hopeful mobility. - key_features: Isotope express trains, civic map wall, and panoramic waiting lounges. - creative_brief: An atompunk station where national identity is expressed through transit design. + aesthetic: National mobility atompunk where trains look like civic promises sharpened into aerodynamic instruments. + form_and_line: Sweeping platform bands, radial timetable suns, sleek train noses, graphite rail seams, and queue lanes like circuit traces. + color_palette: Teal enamel, cream tile, graphite rail, chrome flash, and red departure ticks. + lighting_setup: Concourse skylight wash, platform strip illumination, polished edge highlights, and departure-board pulses. + material_texture: Brushed steel, terrazzo, glazed enamel signage, rubber thresholds, glass timetable covers, and worn ticket brass. + render_quality: Grand transit concept with exact movement logic, readable boarding choreography, and heroic civic scale. + spatial_distortion: Parallel rails, ceiling ribs, queue lanes, and train noses converge into a single national-speed vector. + atmosphere: Momentum, precision, hopeful mobility, and bureaucratic elegance. + key_features: Isotope express silhouettes, radial map walls, panoramic lounge bands, boarding tick marks, and enamel route seals. + creative_brief: >- + Preserve atomic rail-concourse grammar as a reusable style system: + aerodynamic civic mobility, radial transit graphics, and enamel platform + choreography should remain coherent across subjects. avoidRules: [photoreal, dystopian-chaos, medieval, body-horror, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-045.webp } attributes: negativePrompt: photoreal, dystopian-chaos, medieval, body-horror, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-atompunk, categoryName: 8. Corepunk — Atompunk, tags: [solarpunk-dreamscapes-vault, corepunk, atompunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-atompunk, + categoryName: 8. Corepunk — Atompunk, + tags: [solarpunk-dreamscapes-vault, corepunk, atompunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-046.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-046.yaml index 2788c6f9..f9499197 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-046.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-046.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, atompunk] visualDna: - aesthetic: Public aquatic complex using reactor byproduct heat for leisure and therapy. - form_and_line: Dome shell, concentric pools, and streamlined changing arcades. - color_palette: Aqua, white, and citrus yellow details. - lighting_setup: Diffuse dome daylight and underwater luminescent bands. - material_texture: Glazed tile, anti-slip stone, and polished steel rails. - render_quality: Lifestyle concept with high environmental coherence. - spatial_distortion: Bowl geometry centering on warm isotope pool core. - atmosphere: Wellness, civic pride, and subtle engineered spectacle. - key_features: Thermal isotope pools, health kiosks, and wave turbine displays. - creative_brief: An atompunk bathhouse where energy abundance is transformed into daily wellbeing. + aesthetic: Reactor spa atompunk where wellness is sanitized, circular, and powered by suspiciously perfect surplus heat. + form_and_line: Smooth dome shells, concentric pool rings, turbine-water spirals, capsule kiosks, and changing arcades with rounded hygiene lines. + color_palette: Pool aqua, clinic white, citrus yellow, chrome silver, and pale isotope green. + lighting_setup: Diffuse dome daylight, underwater luminous bands, steam glow, and clean status lights above hydrotherapy controls. + material_texture: Glazed tile, anti-slip stone, polished steel rails, wet enamel, translucent safety panels, and rubber pool grates. + render_quality: Lifestyle concept with hygienic detail, coherent energy logic, and tactile wet surfaces. + spatial_distortion: Bowl geometry centers warm isotope rings while circulating water paths loop like a health diagram. + atmosphere: Wellness, civic pride, thermal luxury, and sanitized reactor unease. + key_features: Thermal isotope rings, health kiosk capsules, wave-turbine displays, hydrotherapy panels, and towel-color protocol stripes. + creative_brief: >- + Preserve nuclide aquatics-dome grammar as a reusable style system: + reactor-surplus wellness aesthetics, circular hydro-civic optimization, + and sanitized thermal luxury cues should remain coherent across subjects. avoidRules: [photoreal, horror, cyberpunk-grime, medieval, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-046.webp } attributes: negativePrompt: photoreal, horror, cyberpunk-grime, medieval, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-atompunk, categoryName: 8. Corepunk — Atompunk, tags: [solarpunk-dreamscapes-vault, corepunk, atompunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-atompunk, + categoryName: 8. Corepunk — Atompunk, + tags: [solarpunk-dreamscapes-vault, corepunk, atompunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-047.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-047.yaml index e59d333e..df7883ab 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-047.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-047.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, atompunk] visualDna: - aesthetic: Ceremonial boulevard for annual technology parades and civic rituals. - form_and_line: Long avenue axis, reviewing stands, and atom-obelisk nodes. - color_palette: Cerulean, white, and celebratory red accents. - lighting_setup: Day parade sunlight with reflective metallic glints. - material_texture: Polished concrete, painted steel, and glossy parade vehicles. - render_quality: Epic wide scene with clear crowd and architecture segmentation. - spatial_distortion: Processional depth perspective amplifying scale. - atmosphere: National pride, theatrical governance, and curated futurity. - key_features: Atom obelisks, marching turbines, and civic tech floats. - creative_brief: An atompunk avenue where public rituals celebrate engineering as identity. + aesthetic: Atomic parade propaganda where governance moves as synchronized machinery and public joy is choreographed by technology. + form_and_line: Processional axes, review-stand tiers, atom obelisks, synchronized float silhouettes, banner grids, and marching turbine arcs. + color_palette: Cerulean, parade white, celebratory red, polished aluminum, and tiny brass insignia. + lighting_setup: Hard day-parade sunlight, metallic float glints, banner-shadow rhythm, and white highlights on polished concrete. + material_texture: Polished concrete, painted steel, glossy shells, fabric pennants, enamel insignia, and confetti caught in vents. + render_quality: Epic wide concept with clear crowd segmentation, vehicle hierarchy, and ceremonial readability. + spatial_distortion: Processional depth magnifies scale through repeated obelisks, stands, flags, and engineered crowd lanes. + atmosphere: National pride, theatrical governance, curated futurity, and rehearsed mass enthusiasm. + key_features: Atom obelisks, marching turbines, civic tech floats, review platforms, pennant shadows, and synchronized route markings. + creative_brief: >- + Preserve reactor parade-avenue grammar as a reusable style system: + synchronized civic-tech procession, flag-shadow spectacle rhythm, and + polished mass enthusiasm with unease should remain coherent across subjects. avoidRules: [photoreal, dystopian-riot, medieval, grim-horror, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-047.webp } attributes: negativePrompt: photoreal, dystopian-riot, medieval, grim-horror, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-atompunk, categoryName: 8. Corepunk — Atompunk, tags: [solarpunk-dreamscapes-vault, corepunk, atompunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-atompunk, + categoryName: 8. Corepunk — Atompunk, + tags: [solarpunk-dreamscapes-vault, corepunk, atompunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-048.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-048.yaml index 74b69f12..02651258 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-048.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-048.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, atompunk] visualDna: - aesthetic: Public stargazing complex powered by compact isotope batteries and civic science programs. - form_and_line: Rotating domes, cantilever decks, and disciplined radial instrument bays. - color_palette: Deep navy, mint glow, and steel white. - lighting_setup: Controlled low-light environment with telescope ring luminance. - material_texture: Matte metal shells, anti-reflective glass, and insulated deck panels. - render_quality: Precision concept with scientific and poetic balance. - spatial_distortion: Elevated dome composition framing the night sky horizon. - atmosphere: Wonder, contemplation, and collective curiosity. - key_features: Isotope-powered telescopes, astronomy classroom pods, and night observation terraces. - creative_brief: An atompunk observatory where civic education meets cosmic imagination. + aesthetic: Quiet isotope astronomy where compact power keeps night sacred, instruments precise, and civic curiosity almost devotional. + form_and_line: Rotating dome shells, cantilever deck plates, radial instrument bays, telescope ring halos, and star-chart coordinate lines. + color_palette: Deep navy, mint isotope glow, steel white, matte black, and faint amber notation marks. + lighting_setup: Low-light discipline, telescope ring luminance, mint battery glows, and soft horizon spill kept below stargazing threshold. + material_texture: Matte metal shells, anti-reflective glass, insulated deck panels, rubberized grips, and enamel star-chart plates. + render_quality: Precision concept balancing poetic darkness, instrument legibility, and quiet scientific drama. + spatial_distortion: Elevated dome composition aligns horizon, sky aperture, and telescope axis into a contemplative vector. + atmosphere: Wonder, collective curiosity, night restraint, and compact-power reverence. + key_features: Isotope telescope rings, astronomy pod modules, observation terrace lips, calibrated star charts, and low-glow warning tags. + creative_brief: >- + Preserve isotope night-observatory grammar as a reusable style system: + dark precision instrumentation, soft mint isotope power cues, and + disciplined civic stargazing wonder should remain coherent across subjects. avoidRules: [photoreal, bright-daylook, medieval, cyberpunk-noise, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-048.webp } attributes: negativePrompt: photoreal, bright-daylook, medieval, cyberpunk-noise, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-atompunk, categoryName: 8. Corepunk — Atompunk, tags: [solarpunk-dreamscapes-vault, corepunk, atompunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } \ No newline at end of file +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-atompunk, + categoryName: 8. Corepunk — Atompunk, + tags: [solarpunk-dreamscapes-vault, corepunk, atompunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-049.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-049.yaml index d6b5c7d0..87fbe4c9 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-049.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-049.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, decopunk] visualDna: - aesthetic: Financial skybridge district in opulent machine-age style. - form_and_line: Stepped towers, chevron braces, and arched connectors. - color_palette: Black lacquer, brass, and jade. - lighting_setup: Evening marquee bands and art-deco uplights. - material_texture: Polished stone, gilded trim, and smoked glass. - render_quality: Luxurious urban concept with geometric clarity. - spatial_distortion: Elevated perspective across bridge network. - atmosphere: Ambition, secrecy, and metropolitan glamour. - key_features: Currency halls, deco skybridges, and turbine lobbies. - creative_brief: A decopunk exchange quarter where wealth circulates through architecture. + aesthetic: Decopunk finance as aerial circulation, where wealth moves through bridges like a hidden weather system of brass and jade. + form_and_line: Stepped towers, chevron brace stacks, arched connectors, ledger-band facades, and suspended vault-threshold frames. + color_palette: Black lacquer, aged brass, deep jade, smoke glass gray, and small currency-green glints. + lighting_setup: Evening marquee bands, deco uplights, brass edge glow, and jade reflections caught in smoked glass. + material_texture: Polished stone, gilded trim, smoked glass, lacquer panels, jade inlay, and fingerless vault-door metal. + render_quality: Luxurious urban concept with strict geometric clarity and readable financial circulation. + spatial_distortion: Elevated bridge perspective interlocks atria, towers, and vertical wealth channels into a controlled maze. + atmosphere: Ambition, secrecy, metropolitan glamour, and elegant predation. + key_features: Currency hall thresholds, deco skybridge ribs, turbine lobby forms, vault portals, and chevron transaction lanes. + creative_brief: >- + Preserve deco skybridge-exchange grammar as a reusable style system: + elevated financial circulation, lacquer-and-brass wealth coding, and + geometric metropolitan predation should remain coherent across subjects. avoidRules: [photoreal, rustic, cyber-neon-chaos, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-049.webp } attributes: negativePrompt: photoreal, rustic, cyber-neon-chaos, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-decopunk, categoryName: 9. Corepunk — Decopunk, tags: [solarpunk-dreamscapes-vault, corepunk, decopunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-decopunk, + categoryName: 9. Corepunk — Decopunk, + tags: [solarpunk-dreamscapes-vault, corepunk, decopunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-050.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-050.yaml index e71d62c6..c266d2ee 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-050.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-050.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, decopunk] visualDna: - aesthetic: Grand entertainment boulevard blending film culture and power aesthetics. - form_and_line: Marquee facades, fan motifs, and layered promenades. - color_palette: Midnight blue, amber gold, and ruby accents. - lighting_setup: Theater marquees and reflective wet pavement glow. - material_texture: Brass rails, velvet banners, and enamel signage. - render_quality: Cinematic city concept with strong nighttime mood. - spatial_distortion: Long boulevard axis with repeating façades. - atmosphere: Stylish spectacle and social ritual. - key_features: Cinema palaces, radio kiosks, and lit deco towers. - creative_brief: A decopunk avenue where culture industries project civic identity. + aesthetic: Decopunk cinema ritual where nightlife, brass, velvet, and mass attention turn the street into a projection machine. + form_and_line: Marquee facade stacks, fan-ray canopies, layered promenade bands, vertical tower reveals, and poster-window grids. + color_palette: Midnight blue, amber gold, ruby accents, black stone, and soft champagne bulb halos. + lighting_setup: Theater marquee glow, wet-ground reflections, amber rim lights, ruby sign pulses, and poster vitrine highlights. + material_texture: Brass rails, velvet banners, enamel signage, black stone, polished poster glass, and rain-slick curb edges. + render_quality: Cinematic city concept with strong night mood, readable spectacle hierarchy, and tactile entertainment surfaces. + spatial_distortion: Long axis perspective repeats facades, promenade tiers, bulbs, and tower beats like frames in a film strip. + atmosphere: Stylish spectacle, civic glamour, social ritual, and the machinery of attention. + key_features: Cinema palace silhouettes, radio kiosk forms, lit deco towers, fan-shaped canopies, and glowing poster vitrines. + creative_brief: >- + Preserve brass cinema-esplanade grammar as a reusable style system: + marquee-ritual nightlife choreography, brass-and-velvet spectacle, and + wet nocturnal projection culture should remain coherent across subjects. avoidRules: [photoreal, medieval, cyberpunk-grit, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-050.webp } attributes: negativePrompt: photoreal, medieval, cyberpunk-grit, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-decopunk, categoryName: 9. Corepunk — Decopunk, tags: [solarpunk-dreamscapes-vault, corepunk, decopunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-decopunk, + categoryName: 9. Corepunk — Decopunk, + tags: [solarpunk-dreamscapes-vault, corepunk, decopunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-051.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-051.yaml index 215d10ec..51fb3d63 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-051.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-051.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, decopunk] visualDna: - aesthetic: Monumental transit hub as an art-deco civic cathedral. - form_and_line: Circular concourse, ribbed vaults, and ticket balcony rings. - color_palette: Ivory, brass, and emerald accents. - lighting_setup: Diffused skylight and perimeter chandelier bands. - material_texture: Marble floors, brass grilles, and etched glass. - render_quality: Architectural concept with precise circulation logic. - spatial_distortion: Central rotunda focus with radial exits. - atmosphere: Ordered movement and ceremonial modernity. - key_features: Deco timetable clock, turbine escalators, and grand ticket hall. - creative_brief: A decopunk station where mobility is framed as elegant public theater. + aesthetic: Decopunk transit cathedral where tickets, clocks, and crowd flow become a gilded civic liturgy. + form_and_line: Circular concourse mandalas, ribbed vault fans, ticket balcony rings, radial spokes, and turbine escalator spirals. + color_palette: Warm ivory, aged brass, emerald glass, black timetable ink, and polished floor cream. + lighting_setup: Diffused skylight, perimeter chandelier halos, brass reflections on marble arcs, and clock-face glow. + material_texture: Marble floors, brass grilles, etched glass, enamel clocks, ribbed stone trim, and worn ticket leather. + render_quality: Architectural concept with precise circulation logic, ceremonial scale, and readable public choreography. + spatial_distortion: Rotunda focus pulls bodies through radial exits like planets around a timetable sun. + atmosphere: Ordered movement, ceremonial modernity, civic patience, and cathedral-like transit awe. + key_features: Deco timetable suns, turbine escalators, grand ticket arches, emerald route markers, and balcony crowd rings. + creative_brief: >- + Preserve gilded transit-rotunda grammar as a reusable style system: + ticketed radial circulation, ceremonial public timing, and brass civic + order should remain coherent across subjects. avoidRules: [photoreal, grunge, medieval-rustic, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-051.webp } attributes: negativePrompt: photoreal, grunge, medieval-rustic, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-decopunk, categoryName: 9. Corepunk — Decopunk, tags: [solarpunk-dreamscapes-vault, corepunk, decopunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-decopunk, + categoryName: 9. Corepunk — Decopunk, + tags: [solarpunk-dreamscapes-vault, corepunk, decopunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-052.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-052.yaml index 6e767884..0a8e5590 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-052.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-052.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, decopunk] visualDna: - aesthetic: National broadcast studio with theatrical deco gravitas. - form_and_line: Acoustic fan walls, stage arcs, and signal tower spine. - color_palette: Burgundy, brass, and charcoal. - lighting_setup: Stage spotlights and warm perimeter sconces. - material_texture: Velvet drape, lacquer wood, and mic chrome. - render_quality: Interior concept with rich tonal staging. - spatial_distortion: Stage-centric composition with layered audience boxes. - atmosphere: Authority performance and glamorous control. - key_features: Live orchestra pit, announcer dais, and signal meter walls. - creative_brief: A decopunk media hall where voice becomes architecture. + aesthetic: Velvet authority system where voice is not sound but architecture, signal, ritual, and soft propaganda. + form_and_line: Acoustic fan ribs, signal-spine towers, stage arcs, waveform grille patterns, and audience boxes stacked like speakers. + color_palette: Deep burgundy, tarnished brass, charcoal felt, microphone chrome, and warm vacuum-tube amber. + lighting_setup: Stage spot cones, perimeter sconces, glowing signal meters, and chrome pinlights on microphone heads. + material_texture: Velvet drape, lacquer wood, mic chrome, acoustic felt, perforated brass, and warm tube glass. + render_quality: Interior concept with rich tonal staging, readable broadcast hardware, and theatrical command of attention. + spatial_distortion: Composition compresses toward announcer axis while fan walls radiate the voice outward. + atmosphere: Glamorous control, official intimacy, signal authority, and performance discipline. + key_features: Sculptural microphones, waveform walls, announcer dais, orchestra-pit arcs, glowing meters, and brass acoustic grilles. + creative_brief: >- + Preserve velvet broadcast-hall grammar as a reusable style system: + staged voice authority, burgundy acoustic softness, and chrome signal + ritual should remain coherent across subjects. avoidRules: [photoreal, minimalist, cyber-noise, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-052.webp } attributes: negativePrompt: photoreal, minimalist, cyber-noise, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-decopunk, categoryName: 9. Corepunk — Decopunk, tags: [solarpunk-dreamscapes-vault, corepunk, decopunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-decopunk, + categoryName: 9. Corepunk — Decopunk, + tags: [solarpunk-dreamscapes-vault, corepunk, decopunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-053.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-053.yaml index 19a9fd40..7ec0ddae 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-053.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-053.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, decopunk] visualDna: - aesthetic: Elite diplomatic hotel where protocol meets machine-age luxury. - form_and_line: Chevron façades, tiered balconies, and formal entrance canopies. - color_palette: Onyx, champagne gold, and deep green. - lighting_setup: Warm marquee wash and corridor uplights. - material_texture: Marble veneers, brass inlays, and mirrored panels. - render_quality: Premium hospitality concept with precise decor hierarchy. - spatial_distortion: Lobby depth perspective through repeated arches. - atmosphere: Polished intrigue and ceremonial hospitality. - key_features: Grand concierge desk, private salons, and coded elevator banks. - creative_brief: A decopunk hotel designed to host negotiations disguised as galas. + aesthetic: Diplomatic decopunk where hospitality is camouflage for negotiation, surveillance, and perfectly choreographed etiquette. + form_and_line: Chevron facade codes, tiered balcony bands, canopy shields, elevator monoliths, and reception desks like treaty altars. + color_palette: Onyx, champagne gold, deep green, mirror silver, and discreet passport red. + lighting_setup: Warm marquee wash, corridor uplights, mirror glints at thresholds, and soft private-salon lamp pools. + material_texture: Marble veneer, brass inlay, mirrored paneling, velvet ropes, lacquered concierge surfaces, and embossed seal paper. + render_quality: Premium hospitality concept with exact decor hierarchy and hidden power cues. + spatial_distortion: Lobby depth passes through arches, screens, desk layers, and elevator banks like protocol checkpoints. + atmosphere: Polished intrigue, ceremonial hospitality, quiet surveillance, and gala-grade tension. + key_features: Treaty-desk silhouettes, private salon thresholds, coded elevator banks, diplomatic seal motifs, and mirrored waiting alcoves. + creative_brief: >- + Preserve chevron diplomatic-hotel grammar as a reusable style system: + polished protocol hospitality, mirrored surveillance etiquette, and + rank-coded negotiation surfaces should remain coherent across subjects. avoidRules: [photoreal, rustic, cyberpunk-slum, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-053.webp } attributes: negativePrompt: photoreal, rustic, cyberpunk-slum, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-decopunk, categoryName: 9. Corepunk — Decopunk, tags: [solarpunk-dreamscapes-vault, corepunk, decopunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-decopunk, + categoryName: 9. Corepunk — Decopunk, + tags: [solarpunk-dreamscapes-vault, corepunk, decopunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-054.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-054.yaml index 23bd7555..bdb8127e 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-054.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-054.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, decopunk] visualDna: - aesthetic: Nautical-themed social club for machine-age elites and inventors. - form_and_line: Porthole motifs, curved staircases, and fan ceiling ribs. - color_palette: Navy, brass, and ivory. - lighting_setup: Low ambient sconces and focused table pools. - material_texture: Polished teak, brass trim, and leather seating. - render_quality: Intimate interior concept with rich material contrast. - spatial_distortion: Curved lounge plan guiding eye to central bar. - atmosphere: Confidential luxury and engineered nostalgia. - key_features: Brass bar, sonar murals, and private cigar booths. - creative_brief: A decopunk club where naval mythology becomes social currency. + aesthetic: Submarine-club decopunk where nautical pressure, elite secrecy, and warm alcohol light compress into one sealed room. + form_and_line: Porthole constellations, curved stair rails, fan ceiling ribs, pressure-hull arcs, and booth capsules tucked into walls. + color_palette: Naval midnight, aged brass, ivory enamel, cigar brown, and faint sonar green. + lighting_setup: Low sconces, focused table pools, brass porthole halos, and muted green instrument glows. + material_texture: Polished teak, brass trim, leather seating, smoked glass, enamel navigation plaques, and condensation on portholes. + render_quality: Intimate interior concept with rich material contrast and compressed social geography. + spatial_distortion: Curved lounge plan wraps the viewer like a pressure hull, hiding booths behind bar arcs and stair turns. + atmosphere: Confidential luxury, engineered nostalgia, submerged paranoia, and old-money warmth. + key_features: Brass bar ribs, sonar mural rings, booth capsules, nautical gauges, porthole mirrors, and hidden service hatches. + creative_brief: >- + Preserve deco submarine-club grammar as a reusable style system: + sealed porthole rhythm, teak-brass pressure intimacy, and confidential + nautical luxury should remain coherent across subjects. avoidRules: [photoreal, cyber-neon, medieval, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-054.webp } attributes: negativePrompt: photoreal, cyber-neon, medieval, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-decopunk, categoryName: 9. Corepunk — Decopunk, tags: [solarpunk-dreamscapes-vault, corepunk, decopunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-decopunk, + categoryName: 9. Corepunk — Decopunk, + tags: [solarpunk-dreamscapes-vault, corepunk, decopunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-055.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-055.yaml index cddf5861..6365cf45 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-055.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-055.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, decopunk] visualDna: - aesthetic: Indoor urban garden merging luxury ecology and deco engineering. - form_and_line: Geometric planters, vaulted glass, and stepped promenades. - color_palette: Emerald, brass, and cream. - lighting_setup: Filtered daylight and uplighted fountain nodes. - material_texture: Brass lattice, marble, and humid glass panes. - render_quality: High-fidelity lifestyle concept with botanical detail. - spatial_distortion: Atrium depth with layered balcony rings. - atmosphere: Refined calm and curated abundance. - key_features: Geometric fountain, greenhouse balconies, and brass pergolas. - creative_brief: A decopunk sanctuary where ecology is framed as metropolitan luxury. + aesthetic: Botanical decopunk where nature is not wild but staged, polished, humid, and ruled by brass geometry. + form_and_line: Geometric planter blocks, vaulted glass ribs, stepped promenade terraces, balcony rings, and clipped leaf silhouettes. + color_palette: Emerald, brass, cream, wet leaf black-green, and fountain white. + lighting_setup: Filtered daylight, uplighted fountain nodes, humid sparkle on brass lattice, and soft green bounce from dense leaves. + material_texture: Brass lattice, marble, humid glass panes, waxy leaves, polished fountain stone, and condensation beads. + render_quality: High-fidelity lifestyle concept with botanical density constrained by clear deco structure. + spatial_distortion: Atrium depth rises through balcony rings, fountain axes, clipped plant beds, and vertical greenhouse sightlines. + atmosphere: Refined calm, curated abundance, luxury ecology, and controlled indoor weather. + key_features: Geometric fountains, brass pergolas, greenhouse balcony rings, clipped ornamental planting, and misting nozzle patterns. + creative_brief: >- + Preserve brass garden-atrium grammar as a reusable style system: + curated humid botany, geometric horticultural discipline, and + brass-marble luxury ecology should remain coherent across subjects. avoidRules: [photoreal, rustic-farm, cyber-grunge, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-055.webp } attributes: negativePrompt: photoreal, rustic-farm, cyber-grunge, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-decopunk, categoryName: 9. Corepunk — Decopunk, tags: [solarpunk-dreamscapes-vault, corepunk, decopunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-decopunk, + categoryName: 9. Corepunk — Decopunk, + tags: [solarpunk-dreamscapes-vault, corepunk, decopunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-056.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-056.yaml index 99aad8ab..6d42ab44 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-056.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-056.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, decopunk] visualDna: - aesthetic: Elegant terminal for luxury airliners and diplomatic arrivals. - form_and_line: Wing-like canopies, tower fins, and runway symmetry. - color_palette: Sky gray, brass, and cream white. - lighting_setup: Golden-hour runway glints and terminal sconces. - material_texture: Riveted metal, polished stone, and enamel signs. - render_quality: Expansive transport concept with period detail. - spatial_distortion: Runway vanishing lines under monumental terminal. - atmosphere: Prestige travel and geopolitical theater. - key_features: Deco control tower, ceremonial ramps, and monogrammed lounges. - creative_brief: A decopunk airport where mobility is staged as aristocratic performance. + aesthetic: Decopunk airfield ceremony where flight is a diplomatic entrance, all fins, ramps, monograms, and golden-hour authority. + form_and_line: Wing-canopy sweeps, control-tower fins, runway symmetry, ceremonial ramp diagonals, and streamlined lounge windows. + color_palette: Sky gray, brass, cream white, leather brown, and lacquered insignia red. + lighting_setup: Golden-hour runway glints, terminal sconces, aircraft-edge highlights, and long shadows from finned hangars. + material_texture: Riveted metal, polished stone, enamel signs, leather luggage, brushed controls, and oiled tarmac sheen. + render_quality: Expansive transport concept with period detail, arrival choreography, and clean diplomatic staging. + spatial_distortion: Runway vanishing lines and ramp diagonals turn arrival into a staged procession under monumental fins. + atmosphere: Prestige travel, geopolitical theater, aristocratic mobility, and wind-polished anticipation. + key_features: Deco control towers, ceremonial ramp marks, monogrammed lounges, finned hangar doors, and polished luggage trains. + creative_brief: >- + Preserve art deco airfield grammar as a reusable style system: + streamlined arrival ceremony, fin-and-ramp prestige staging, and + monogrammed aviation authority should remain coherent across subjects. avoidRules: [photoreal, gritty-cyber, medieval, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-056.webp } attributes: negativePrompt: photoreal, gritty-cyber, medieval, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-decopunk, categoryName: 9. Corepunk — Decopunk, tags: [solarpunk-dreamscapes-vault, corepunk, decopunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-decopunk, + categoryName: 9. Corepunk — Decopunk, + tags: [solarpunk-dreamscapes-vault, corepunk, decopunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-057.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-057.yaml index 35b03dbe..88c3869d 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-057.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-057.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, decopunk] visualDna: - aesthetic: Secretive ballroom used for encoded diplomacy and covert alliances. - form_and_line: Faceted dance floor, mirrored pillars, and hidden balcony lanes. - color_palette: Plum, gold, and onyx. - lighting_setup: Crystal chandelier pools and low perimeter glow. - material_texture: Velvet drapes, lacquer wood, and mirrored brass. - render_quality: Dramatic interior concept with narrative tension. - spatial_distortion: Spiral composition around central dance medallion. - atmosphere: Glamour, paranoia, and coded social choreography. - key_features: Cipher floor inlays, secret doors, and orchestra dais. - creative_brief: A decopunk ballroom where every dance figure doubles as a message. + aesthetic: Decopunk cipher glamour where dance patterns, mirrors, and parquet inlays act as social encryption. + form_and_line: Faceted dance floors, mirrored pillar arrays, hidden balcony lanes, cipher spirals, and chandelier geometry like decoding wheels. + color_palette: Plum, gold, onyx, mirror silver, and a thin line of blood-red wax seal color. + lighting_setup: Crystal chandelier pools, low perimeter glow, fragmented reflections, and gold glints along cipher inlays. + material_texture: Velvet drapes, lacquer wood, mirrored brass, polished parquet, engraved cipher metal, and wax-sealed invitations. + render_quality: Dramatic interior concept with narrative tension, precise decorative hierarchy, and readable secret pathways. + spatial_distortion: Spiral composition turns dancers, balcony sightlines, and hidden doors into a coded circulation diagram. + atmosphere: Glamour, paranoia, covert diplomacy, and choreography as encryption. + key_features: Cipher floor inlays, concealed door seams, orchestra dais arcs, mirrored surveillance angles, and wax-seal motifs. + creative_brief: >- + Preserve cipher ballroom-annex grammar as a reusable style system: + mirrored social encryption, ornamental code choreography, and dangerous + diplomatic elegance should remain coherent across subjects. avoidRules: [photoreal, cartoon, cyber-neon, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-057.webp } attributes: negativePrompt: photoreal, cartoon, cyber-neon, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-decopunk, categoryName: 9. Corepunk — Decopunk, tags: [solarpunk-dreamscapes-vault, corepunk, decopunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-decopunk, + categoryName: 9. Corepunk — Decopunk, + tags: [solarpunk-dreamscapes-vault, corepunk, decopunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-058.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-058.yaml index 9c0770da..6cc22b73 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-058.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-058.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, decopunk] visualDna: - aesthetic: Monumental record tower preserving corporate-civic memory in style. - form_and_line: Vertical fins, archive stacks, and geometric reading halls. - color_palette: Brass gold, charcoal, and parchment beige. - lighting_setup: Vertical slit lights and reading desk luminance. - material_texture: Brass mesh, stone shelving, and leather-bound files. - render_quality: Detailed institutional concept with precise hierarchy. - spatial_distortion: Upward tower perspective emphasizing authority. - atmosphere: Bureaucratic majesty and controlled permanence. - key_features: Pneumatic file tubes, index rotunda, and clockwork elevators. - creative_brief: A decopunk archive where data architecture is literal architecture. + aesthetic: Bureaucratic decopunk monument where memory becomes vertical machinery, gold indexing, and controlled access. + form_and_line: Vertical fin stacks, archive shelf grids, reading-hall rings, pneumatic tube diagonals, and elevator shafts like filing spines. + color_palette: Brass gold, charcoal, parchment beige, dust brown, and red index-tab accents. + lighting_setup: Vertical slit lights, desk luminance, brass-mesh glints, and warm shafts inside catalog towers. + material_texture: Brass mesh, stone shelving, leather files, parchment labels, clockwork lift rails, and dusty glass catalog drawers. + render_quality: Detailed institutional concept with hierarchy, retrieval logic, and monumental record density. + spatial_distortion: Upward tower perspective turns shelves, lifts, and tubes into a bureaucratic cliff face. + atmosphere: Bureaucratic majesty, controlled permanence, archival pressure, and reverence for stored power. + key_features: Pneumatic file tubes, index rotunda rings, clockwork elevators, goldline catalog tabs, and locked reading desks. + creative_brief: >- + Preserve goldline archives-tower grammar as a reusable style system: + vertical filing monumentality, indexed access control, and brass + bureaucratic machinery should remain coherent across subjects. avoidRules: [photoreal, minimalist, cyberpunk-chaos, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-058.webp } attributes: negativePrompt: photoreal, minimalist, cyberpunk-chaos, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-decopunk, categoryName: 9. Corepunk — Decopunk, tags: [solarpunk-dreamscapes-vault, corepunk, decopunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-decopunk, + categoryName: 9. Corepunk — Decopunk, + tags: [solarpunk-dreamscapes-vault, corepunk, decopunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-059.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-059.yaml index 4eb4226d..7ff213a3 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-059.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-059.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, decopunk] visualDna: - aesthetic: Judicial plaza where formal power is mirrored in rigid geometry. - form_and_line: Symmetric courts, reflective walls, and stepped forecourts. - color_palette: Stone white, brass, and deep teal. - lighting_setup: Midday glare with shadow grids from colonnades. - material_texture: Polished stone, mirrored steel, and engraved brass plates. - render_quality: High-clarity urban concept with strong focal order. - spatial_distortion: Axis-based perspective terminating at tribunal doors. - atmosphere: Authority, scrutiny, and polished intimidation. - key_features: Mirror colonnades, legal obelisks, and ceremonial stairs. - creative_brief: A decopunk legal square designed to make power feel inevitable. + aesthetic: Judicial decopunk where symmetry acts like surveillance and polished reflection makes judgment feel already decided. + form_and_line: Symmetric court axes, mirror-wall planes, stepped forecourts, legal obelisk alignments, and tribunal chevrons. + color_palette: Stone white, brass, deep teal, mirror silver, and black shadow lines. + lighting_setup: Midday glare, colonnade shadow grids, hard mirror reflections, and brass plate highlights at eye level. + material_texture: Polished stone, mirrored steel, engraved brass, teal enamel seals, crisp stair edges, and cold door glass. + render_quality: High-clarity urban concept with severe focal order and institutional sharpness. + spatial_distortion: Axis perspective terminates at formal thresholds while mirror planes duplicate scrutiny on both sides. + atmosphere: Authority, scrutiny, polished intimidation, and ceremonial inevitability. + key_features: Mirror colonnades, legal obelisks, tribunal chevrons, ceremonial stairs, and engraved verdict plates. + creative_brief: >- + Preserve mirrorline court-plaza grammar as a reusable style system: + severe judicial symmetry, reflective scrutiny pressure, and polished civic + intimidation should remain coherent across subjects. avoidRules: [photoreal, comedic, cyberpunk-slum, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-059.webp } attributes: negativePrompt: photoreal, comedic, cyberpunk-slum, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-decopunk, categoryName: 9. Corepunk — Decopunk, tags: [solarpunk-dreamscapes-vault, corepunk, decopunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-decopunk, + categoryName: 9. Corepunk — Decopunk, + tags: [solarpunk-dreamscapes-vault, corepunk, decopunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-060.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-060.yaml index 4ea3168e..ef62ea34 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-060.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-060.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, decopunk] visualDna: - aesthetic: Astronomical institute wrapped in art-deco precision and civic pride. - form_and_line: Stepped dome base, radial instrument galleries, and finned towers. - color_palette: Midnight navy, brass, and ivory. - lighting_setup: Night sky contrast with subtle observatory perimeter glow. - material_texture: Polished brass mechanisms, stone decks, and frosted glass. - render_quality: Elegant scientific concept with balanced detail density. - spatial_distortion: Dome-up perspective emphasizing celestial alignment. - atmosphere: Intellectual grandeur and cosmic ambition. - key_features: Rotating dome slit, star chart hall, and brass telescope arrays. - creative_brief: A decopunk observatory where science is framed as urban pageantry. + aesthetic: Celestial decopunk where astronomy becomes civic pageantry, all brass mechanisms, stepped domes, and disciplined night. + form_and_line: Stepped dome bases, radial instrument galleries, finned crowns, telescope axes, and star-chart fan geometries. + color_palette: Midnight navy, polished brass, ivory stone, frosted glass blue, and tiny constellation white. + lighting_setup: Night-sky contrast, subtle perimeter glow, brass ring highlights, and controlled star-chart illumination. + material_texture: Polished brass mechanisms, stone decks, frosted glass, enamel star charts, dark seams, and oiled gear teeth. + render_quality: Elegant scientific concept with balanced detail density, clear instruments, and ceremonial skyline presence. + spatial_distortion: Dome-up perspective aligns stepped ascent, telescope axes, and celestial geometry into civic ambition. + atmosphere: Intellectual grandeur, cosmic ambition, disciplined darkness, and public wonder. + key_features: Rotating dome slits, brass telescope arrays, star-chart halls, finned observation towers, and constellation inlay floors. + creative_brief: >- + Preserve zenith deco-observatory grammar as a reusable style system: + celestial brass instrumentation, ceremonial scientific pageantry, and + controlled midnight precision should remain coherent across subjects. avoidRules: [photoreal, medieval, cyber-chaos, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-060.webp } attributes: negativePrompt: photoreal, medieval, cyber-chaos, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-decopunk, categoryName: 9. Corepunk — Decopunk, tags: [solarpunk-dreamscapes-vault, corepunk, decopunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } \ No newline at end of file +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-decopunk, + categoryName: 9. Corepunk — Decopunk, + tags: [solarpunk-dreamscapes-vault, corepunk, decopunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-061.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-061.yaml index 6e57697b..49110224 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-061.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-061.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, raypunk] visualDna: - aesthetic: Interplanetary bazaar inside a raycraft service hangar. - form_and_line: Arched hangars, cargo lanes, and antenna ribs. - color_palette: Orange, cyan, and steel gray. - lighting_setup: Harsh skylight and ion strip accents. - material_texture: Riveted metal, polymer crates, and fuel-stained deck. - render_quality: Dynamic pulp-scifi concept. - spatial_distortion: Deep hangar vanishing lines. - atmosphere: Hustle, risk, and frontier commerce. - key_features: Raygun stalls, cargo skiffs, and launch gantries. - creative_brief: A raypunk marketplace where exploration hardware is everyday currency. + aesthetic: Raypunk barter chaos where alien hardware, hand-painted price codes, and launch rituals collide in one overloaded hangar language. + form_and_line: Cathedral hangar arches, diagonal cargo lanes, antenna-rib canopies, raygun display forks, and stacked skiff silhouettes. + color_palette: Safety orange, ion cyan, oil-silver steel, and small magenta permit stamps. + lighting_setup: Brutal roof slits, cyan ion strips under tables, and hot orange hazard pools around active engines. + material_texture: Riveted hull metal, translucent polymer crates, fuel-stained deck paint, chipped enamel tags, and greasy cable braids. + render_quality: Dense pulp-scifi production concept with readable stall logic, no empty generic sci-fi space. + spatial_distortion: Deep hangar perspective compressed by booth clutter, suspended cargo nets, and gantry shadows. + atmosphere: Improvised trade, launch anxiety, black-market optimism, and frontier noise. + key_features: Raygun stall forks, skiff repair altars, cargo-lane glyphs, launch gantry silhouettes, and hand-numbered fuel tokens. + creative_brief: >- + Push ray bazaar-hangar as a reusable visual system: every subject should + feel priced, repaired, bartered, and almost ready to launch, with commerce + graphics fused directly into spacecraft service hardware. avoidRules: [photoreal, cyberpunk-grime, medieval, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-061.webp } attributes: negativePrompt: photoreal, cyberpunk-grime, medieval, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-raypunk, categoryName: 10. Corepunk — Raypunk, tags: [solarpunk-dreamscapes-vault, corepunk, raypunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-raypunk, + categoryName: 10. Corepunk — Raypunk, + tags: [solarpunk-dreamscapes-vault, corepunk, raypunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-062.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-062.yaml index 68069694..5ec0f4d8 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-062.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-062.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, raypunk] visualDna: - aesthetic: Neon retro roadside for pilots and bounty crews. - form_and_line: Tailfin motels, sign pylons, and curved awnings. - color_palette: Teal, magenta, and cream. - lighting_setup: Twilight neon and rocket trail backlight. - material_texture: Painted metal, vinyl, and asphalt gloss. - render_quality: Stylized pulp environment art. - spatial_distortion: Long roadside perspective. - atmosphere: Wanderlust, hustle, and cosmic nightlife. - key_features: Comet signage, fuel diners, and mission bulletin walls. - creative_brief: A raypunk roadside where every room hosts a different star map. + aesthetic: Cosmic roadside noir where motel signage behaves like a navigational constellation and every surface promises escape. + form_and_line: Tailfin rooflines, comet-shaped sign pylons, crescent awnings, capsule doors, and road stripes that bend like orbital paths. + color_palette: Oxidized teal, motel magenta, warm cream, asphalt black, and pale rocket-smoke blue. + lighting_setup: Twilight neon bloom, rocket-trail backlight, room-number halos, and sodium puddle reflections. + material_texture: Flaking painted metal, ribbed vinyl, glossy rain asphalt, plastic star charts, and cracked ceramic diner tile. + render_quality: Stylized pulp environment art with graphic sign hierarchy and strong silhouettes. + spatial_distortion: Roadside one-point perspective warped into a comet tail, pulling eye through signs, rooms, and fuel islands. + atmosphere: Cheap glamour, fugitive sleep, cosmic wanderlust, and mission-board temptation. + key_features: Comet motel signs, fuel-diner counters, mission bulletin walls, tailfin shadows, and room keys shaped like coordinates. + creative_brief: >- + Push comet motel-strip as a reusable style: turn any subject into a + roadside constellation of neon promises, transient pilots, coded room + numbers, and orbital escape lines. avoidRules: [photoreal, gritty-cyber, medieval, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-062.webp } attributes: negativePrompt: photoreal, gritty-cyber, medieval, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-raypunk, categoryName: 10. Corepunk — Raypunk, tags: [solarpunk-dreamscapes-vault, corepunk, raypunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-raypunk, + categoryName: 10. Corepunk — Raypunk, + tags: [solarpunk-dreamscapes-vault, corepunk, raypunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-063.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-063.yaml index b2082291..31fa870e 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-063.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-063.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, raypunk] visualDna: - aesthetic: Bureaucratic outpost carved into a trade asteroid. - form_and_line: Pressure corridors, cargo gantries, and lock chambers. - color_palette: Rust, warning yellow, and vacuum black. - lighting_setup: Industrial strips and viewport rim glow. - material_texture: Bolted plates, hazard paint, and dusted alloy. - render_quality: Functional scifi concept with bold silhouettes. - spatial_distortion: Tunnel depth toward inspection bay. - atmosphere: Procedural tension and frontier law. - key_features: Customs scanners, ray turrets, and stamp kiosks. - creative_brief: A raypunk checkpoint where paperwork can be deadlier than blasters. + aesthetic: Raypunk border bureaucracy rendered as a hostile machine of stamps, pressure locks, scanners, and dust. + form_and_line: Clamp-like corridors, cargo gantry teeth, octagonal lock chambers, barcode shadows, and turret-eye circles. + color_palette: Asteroid rust, warning yellow, vacuum black, faded stamp red, and cold viewport blue. + lighting_setup: Flickering industrial strips, rim-lit inspection windows, and scanner bars slicing forms into legal zones. + material_texture: Bolted armor plates, abraded hazard paint, dusted alloy, rubber seals, and over-stamped cargo labels. + render_quality: Functional scifi concept with bold silhouettes and oppressive procedural clarity. + spatial_distortion: Tunnel-depth funnel toward inspection jaws, with gates narrowing like paperwork decisions. + atmosphere: Frontier law, procedural dread, and absurd cosmic administration. + key_features: Customs scanner arches, ray turret eyes, pneumatic stamp kiosks, confiscation cages, and permit-slot geometry. + creative_brief: >- + Push asteroid customs-gate as reusable style: make forms feel inspected, + stamped, divided, and legally trapped, with raypunk hardware behaving like + bureaucratic predators. avoidRules: [photoreal, cyberpunk-neon-city, medieval, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-063.webp } attributes: negativePrompt: photoreal, cyberpunk-neon-city, medieval, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-raypunk, categoryName: 10. Corepunk — Raypunk, tags: [solarpunk-dreamscapes-vault, corepunk, raypunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-raypunk, + categoryName: 10. Corepunk — Raypunk, + tags: [solarpunk-dreamscapes-vault, corepunk, raypunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-064.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-064.yaml index 7e46a61b..544a245f 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-064.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-064.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, raypunk] visualDna: - aesthetic: Public arena for ray duels and honor contracts. - form_and_line: Circular pit, shield pylons, and tiered stands. - color_palette: Plasma blue, crimson, and gunmetal. - lighting_setup: Spot arrays and arc discharge bursts. - material_texture: Reinforced steel, scorched concrete, and energy shields. - render_quality: Action keyframe concept. - spatial_distortion: Arena depth centered on duel core. - atmosphere: Spectacle, danger, and performative valor. - key_features: Duel ring, crowd tiers, and plasma banners. - creative_brief: A raypunk colosseum where contracts are settled in visible lightning. + aesthetic: Ritualized raypunk violence where honor contracts become visible electrical geometry around a central impact void. + form_and_line: Concentric duel pits, shield-pylon teeth, tiered crowd bands, plasma banner arcs, and split-second ray trajectories. + color_palette: Plasma blue, contract crimson, black gunmetal, white-hot arc cores, and scorched violet shadows. + lighting_setup: Overhead spot arrays, burst-frame arc discharge, shield shimmer halos, and rimlight from charged weapons. + material_texture: Reinforced steel ribs, scorched concrete rings, translucent energy shields, burnt banner cloth, and etched contract plaques. + render_quality: Action keyframe concept with theatrical readability and kinetic silhouettes. + spatial_distortion: Arena depth collapses toward duel core, with circular crowd tiers bending around the electric conflict. + atmosphere: Public danger, performative valor, betting tension, and ceremonial menace. + key_features: Duel-ring glyphs, crowd-tier shadow bands, shield pylons, plasma banners, and contract boards burned into walls. + creative_brief: >- + Push nova duel-colosseum as reusable style: every subject should feel + caught inside ceremonial electrical judgment, with honor, audience pressure, + and ray trajectories shaping composition. avoidRules: [photoreal, medieval-fantasy, cyberpunk-slums, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-064.webp } attributes: negativePrompt: photoreal, medieval-fantasy, cyberpunk-slums, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-raypunk, categoryName: 10. Corepunk — Raypunk, tags: [solarpunk-dreamscapes-vault, corepunk, raypunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-raypunk, + categoryName: 10. Corepunk — Raypunk, + tags: [solarpunk-dreamscapes-vault, corepunk, raypunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-065.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-065.yaml index 146429bd..2ddb4658 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-065.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-065.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, raypunk] visualDna: - aesthetic: Cliff observatory scanning hostile nebula routes. - form_and_line: Dome clusters, scanning spires, and ridge catwalks. - color_palette: Night blue, amber, and white. - lighting_setup: Telescope glow and cold moon edge light. - material_texture: Painted alloy, glass domes, and cable mesh. - render_quality: Atmospheric exploration concept. - spatial_distortion: Ridge-to-sky composition with deep horizon. - atmosphere: Curiosity and strategic vigilance. - key_features: Radar dishes, chart rooms, and emergency beacons. - creative_brief: A raypunk lookout where discovery and defense are the same task. + aesthetic: Paranoid exploration style where observation equipment looks half scientific instrument, half cliffside warning shrine. + form_and_line: Clustered glass domes, needle scanning spires, ridge catwalks, radar petal shapes, and horizon-measuring cables. + color_palette: Nebula night blue, aged amber, signal white, oxidized red, and cold moon gray. + lighting_setup: Telescope lens glow, cold moon edge light, blinking emergency beacons, and amber map-table pools. + material_texture: Painted alloy shells, scratched glass domes, cable mesh, wind-battered enamel, and taped paper star charts. + render_quality: Atmospheric exploration concept with tactical readability and poetic unease. + spatial_distortion: Ridge-to-sky composition where horizon lines stretch like threat vectors through instruments. + atmosphere: Curiosity, strategic vigilance, lonely weather, and discovery under siege. + key_features: Radar dish petals, chart-room windows, emergency beacon stacks, ridge catwalk silhouettes, and nebula route scars. + creative_brief: >- + Push pulp observatory-ridge as reusable style: make any subject feel like + it watches a beautiful threat, with instruments, horizon pressure, and + defensive curiosity driving the image. avoidRules: [photoreal, cyberpunk-noise, medieval, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-065.webp } attributes: negativePrompt: photoreal, cyberpunk-noise, medieval, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-raypunk, categoryName: 10. Corepunk — Raypunk, tags: [solarpunk-dreamscapes-vault, corepunk, raypunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-raypunk, + categoryName: 10. Corepunk — Raypunk, + tags: [solarpunk-dreamscapes-vault, corepunk, raypunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-066.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-066.yaml index 714a510e..8b6fd79f 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-066.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-066.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, raypunk] visualDna: - aesthetic: Public transport nexus powered by open plasma conduits. - form_and_line: Elevated rails, transfer hubs, and cantilever decks. - color_palette: Electric cyan, orange, and steel. - lighting_setup: Rail plasma streaks and station strip lights. - material_texture: Composite decks, conduit glass, and anti-slip metals. - render_quality: Infrastructure-focused concept rendering. - spatial_distortion: Parallel rail vanishing lines. - atmosphere: Speed, risk, and civic momentum. - key_features: Plasma rails, transfer pods, and mission terminals. - creative_brief: A raypunk metro where commuting feels like piloting a starship. + aesthetic: Civic infrastructure style where public transit looks fast enough to be dangerous and organized enough to trust. + form_and_line: Elevated plasma rails, exposed conduit spines, cantilever decks, transfer pod sockets, and mission-terminal fins. + color_palette: Electric cyan, ignition orange, brushed steel, signal white, and heat-stained violet. + lighting_setup: Plasma streaks along rails, pulsing station strips, safety beacons, and underdeck cyan spill. + material_texture: Composite decking, thick conduit glass, anti-slip metal, ceramic insulators, and heat-warning decals. + render_quality: Infrastructure-focused concept rendering with clear service routes and strong kinetic rhythm. + spatial_distortion: Parallel rail vanishing lines create launch-vector perspective through hubs, pods, and signage. + atmosphere: Speed, civic momentum, controlled danger, and commuter adrenaline. + key_features: Open plasma rails, transfer pod sockets, mission terminals, service catwalks, and safety icon clusters. + creative_brief: >- + Push plasma rail-commons as reusable style: treat movement as public + electricity, with exposed energy channels, disciplined transfer geometry, + and everyday travel framed like starship launch prep. avoidRules: [photoreal, medieval, cyber-grunge, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-066.webp } attributes: negativePrompt: photoreal, medieval, cyber-grunge, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-raypunk, categoryName: 10. Corepunk — Raypunk, tags: [solarpunk-dreamscapes-vault, corepunk, raypunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-raypunk, + categoryName: 10. Corepunk — Raypunk, + tags: [solarpunk-dreamscapes-vault, corepunk, raypunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-067.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-067.yaml index 2cffb7a1..aefce004 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-067.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-067.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, raypunk] visualDna: - aesthetic: Frontier scrapyard rebuilding broken explorers into new ships. - form_and_line: Debris stacks, crane arms, and repair bays. - color_palette: Rust orange, cobalt, and black. - lighting_setup: Arc welding sparks and floodlight cones. - material_texture: Scored metal, cable bundles, and burnt paint. - render_quality: Gritty pulp concept with rich prop detail. - spatial_distortion: Dense layered junkyard depth. - atmosphere: Ingenuity under pressure and outlaw pragmatism. - key_features: Salvage cranes, part bazaars, and retrofit pits. - creative_brief: A raypunk yard where every wreck becomes a second launch. + aesthetic: Raypunk resurrection style where wreckage is treated like raw myth and every repair bay becomes an outlaw altar. + form_and_line: Debris totems, crane-arm silhouettes, retrofit pit rings, cable-bundle roots, and half-rebuilt hull profiles. + color_palette: Rust orange, cobalt worklight, tar black, welding white, and chipped mission-patch color. + lighting_setup: Arc-welding sparks, floodlight cones, backlit dust, and cobalt glows under raised wreck sections. + material_texture: Scored metal, cable bundles, burnt paint, patched hull cloth, greasy tool foam, and cratered ceramic plating. + render_quality: Gritty pulp concept with rich prop detail and clear salvage hierarchy. + spatial_distortion: Dense layered depth built from stacked wreck silhouettes, repair pits, and crane diagonals. + atmosphere: Ingenuity under pressure, outlaw pragmatism, second chances, and mechanical stubbornness. + key_features: Salvage crane claws, part bazaar trays, retrofit pit circles, mission-patch scraps, and rebuilt nosecone shrines. + creative_brief: >- + Push comet salvage-yard as reusable style: make subjects feel rebuilt from + heroic wreckage, with repair scars, crane diagonals, and outlaw invention + carrying emotional weight. avoidRules: [photoreal, cyberpunk-city, fantasy-castle, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-067.webp } attributes: negativePrompt: photoreal, cyberpunk-city, fantasy-castle, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-raypunk, categoryName: 10. Corepunk — Raypunk, tags: [solarpunk-dreamscapes-vault, corepunk, raypunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-raypunk, + categoryName: 10. Corepunk — Raypunk, + tags: [solarpunk-dreamscapes-vault, corepunk, raypunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-068.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-068.yaml index 0b23a45a..93630b07 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-068.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-068.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, raypunk] visualDna: - aesthetic: Elegant boarding terminal for long-range ray cruisers. - form_and_line: Curved lounges, docking tubes, and gate pylons. - color_palette: Violet, cyan, and pearl white. - lighting_setup: Soft terminal glow and nebula backlight through glass. - material_texture: Gloss composites, polished rails, and transparent membranes. - render_quality: Premium transit concept scene. - spatial_distortion: Gate depth toward anchored cruisers. - atmosphere: Anticipation and interstellar sophistication. - key_features: Boarding bridges, mission lounges, and launch boards. - creative_brief: A raypunk terminal where departure feels like entering myth. + aesthetic: Luxurious departure myth where boarding infrastructure feels like a theatrical threshold into impossible distance. + form_and_line: Crescent lounges, translucent docking tubes, gate-pylon crowns, pearl ribs, and cruiser silhouettes staged like idols. + color_palette: Nebula violet, ion cyan, pearl white, soft chrome, and tiny rose status lights. + lighting_setup: Soft terminal glow, nebula backlight through glass, under-seat cyan halos, and pearl rimlight on gate crowns. + material_texture: Gloss composites, polished rails, transparent membranes, padded travel leather, and frosted itinerary glass. + render_quality: Premium transit concept scene with elegant pacing and strong threshold design. + spatial_distortion: Gate-depth perspective leading through lounges, tubes, and glass toward mythic departure silhouettes. + atmosphere: Anticipation, interstellar sophistication, quiet anxiety, and expensive wonder. + key_features: Boarding bridge crescents, mission lounge alcoves, launch-board constellations, docking tube membranes, and cruiser-idol views. + creative_brief: >- + Push nebula boarding-lounge as reusable style: turn any subject into a + polished threshold between comfort and cosmic risk, with pearl curves, + translucent gates, and departure myth. avoidRules: [photoreal, medieval, cyberpunk-grime, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-068.webp } attributes: negativePrompt: photoreal, medieval, cyberpunk-grime, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-raypunk, categoryName: 10. Corepunk — Raypunk, tags: [solarpunk-dreamscapes-vault, corepunk, raypunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-raypunk, + categoryName: 10. Corepunk — Raypunk, + tags: [solarpunk-dreamscapes-vault, corepunk, raypunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-069.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-069.yaml index 289ab6bf..ac89b5e6 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-069.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-069.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, raypunk] visualDna: - aesthetic: Frontier chapel where pilots bless engines before launch. - form_and_line: Rocket-arch nave, altar bay, and prayer hangars. - color_palette: White, brass, and cosmic blue. - lighting_setup: Altar spot and hatchway rimlight. - material_texture: Painted steel, cloth banners, and worn floor plating. - render_quality: Symbolic scene with strong silhouette hierarchy. - spatial_distortion: Aisle perspective into launch altar. - atmosphere: Faith, fear, and mission resolve. - key_features: Engine blessings, star icons, and vow capsules. - creative_brief: A raypunk chapel where devotion is measured in launch trajectories. + aesthetic: Rocket-age devotional style where engines, vows, and navigation icons merge into sacred launch preparation. + form_and_line: Rocket-arch nave profiles, altar-bay nozzles, prayer hangar ribs, star-icon triptychs, and capsule reliquary shapes. + color_palette: Mission white, worn brass, cosmic blue, candle amber, and scorched launch gray. + lighting_setup: Narrow altar spot, hatchway rimlight, blue engine glow, and small votive reflections on polished metal. + material_texture: Painted steel, cloth mission banners, worn floor plating, heat-scarred brass, and paper blessing tags. + render_quality: Symbolic scene with strong silhouette hierarchy and tactile ritual objects. + spatial_distortion: Aisle perspective into launch altar, with rocket geometry replacing religious architecture. + atmosphere: Faith, fear, mission resolve, and quiet mechanical tenderness. + key_features: Engine-blessing rigs, star icon panels, vow capsules, launch candles, and prayer-tool racks. + creative_brief: >- + Push rocket chapel-outpost as reusable style: any subject should feel + sanctified by launch risk, with engine geometry, fragile vows, and cosmic + iconography fused into one ritual aesthetic. avoidRules: [photoreal, comedy, cyberpunk-slum, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-069.webp } attributes: negativePrompt: photoreal, comedy, cyberpunk-slum, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-raypunk, categoryName: 10. Corepunk — Raypunk, tags: [solarpunk-dreamscapes-vault, corepunk, raypunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-raypunk, + categoryName: 10. Corepunk — Raypunk, + tags: [solarpunk-dreamscapes-vault, corepunk, raypunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-070.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-070.yaml index 8e9218d1..15902c96 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-070.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-070.yaml @@ -7,18 +7,30 @@ version: 1 supportedTasks: [image_generate, image_edit, style_preset_card] tags: [solarpunk-dreamscapes-vault, corepunk, raypunk] visualDna: - aesthetic: High-volume orbital post office linking remote colonies. - form_and_line: Sorting belts, capsule chutes, and docking loops. - color_palette: Tangerine, gray, and cyan. - lighting_setup: Workbay strips and status beacon flashes. - material_texture: Cargo polymers, metal mesh, and stencil paint. - render_quality: Functional worldbuilding concept. - spatial_distortion: Layered conveyor depth through sorting hall. - atmosphere: Kinetic order and everyday cosmic logistics. - key_features: Mail rockets, capsule racks, and route holograph boards. - creative_brief: A raypunk depot where postal reliability keeps the frontier alive. + aesthetic: Orbital postal machinery treated like a cheerful mechanical circulatory system for scattered colonies. + form_and_line: Sorting-belt arteries, capsule chute veins, docking-loop organs, route-board grids, and stamped rocket silhouettes. + color_palette: Tangerine mail paint, graphite gray, ion cyan, paper white, and red priority-strip accents. + lighting_setup: Workbay strip rhythm, status beacon flashes, scanner-line sweeps, and cyan glow inside capsule chutes. + material_texture: Cargo polymers, metal mesh, stencil paint, paper label edges, worn rubber belts, and scuffed capsule shells. + render_quality: Functional worldbuilding concept with high logistical readability and playful graphic coding. + spatial_distortion: Layered conveyor depth that moves like circulation through foreground belts, midground racks, and docking loops. + atmosphere: Kinetic order, everyday cosmic logistics, civic trust, and absurdly heroic reliability. + key_features: Mail rocket silhouettes, capsule rack grids, route holograph boards, stamp-color lanes, and priority chute clusters. + creative_brief: >- + Push orbit postal-depot as reusable style: make subjects feel sorted, + routed, stamped, and kept alive by bright orbital logistics, with mail + graphics acting as both decoration and system diagram. avoidRules: [photoreal, medieval, cyberpunk-noir, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-070.webp } attributes: negativePrompt: photoreal, medieval, cyberpunk-noir, watermark, text, logo -taxonomy: { packId: pack_15, packName: Solarpunk Dreamscapes Vault, categoryId: corepunk-raypunk, categoryName: 10. Corepunk — Raypunk, tags: [solarpunk-dreamscapes-vault, corepunk, raypunk], supportedTasks: [image_generate, image_edit, style_preset_card], hasDefaultImage: false } +taxonomy: + { + packId: pack_15, + packName: Solarpunk Dreamscapes Vault, + categoryId: corepunk-raypunk, + categoryName: 10. Corepunk — Raypunk, + tags: [solarpunk-dreamscapes-vault, corepunk, raypunk], + supportedTasks: [image_generate, image_edit, style_preset_card], + hasDefaultImage: false, + } diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-071.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-071.yaml index 4fd8d792..d3db507c 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-071.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-071.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Viewport-driven depth into star battle. atmosphere: Tactical urgency and heroic pressure. key_features: Ray cannons, command dais, and alert pylons. - creative_brief: A raypunk flagship deck where split-second choices decide constellations. + creative_brief: >- + Preserve aurora battle-deck grammar as a reusable style system: + heroic command-tier staging, alert-spectrum instrumentation, and + viewport-driven tactical urgency should remain coherent across subjects. avoidRules: [photoreal, medieval, cyberpunk-slum, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-071.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-072.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-072.yaml index c9863cda..ed921ad3 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-072.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-072.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Campus perspective linking training zones. atmosphere: Discipline, ambition, and heroic futurism. key_features: Simulator pods, cadet parade deck, and star-map hall. - creative_brief: A raypunk school where courage is trained as a technical skill. + creative_brief: >- + Preserve zenith ray-academy grammar as a reusable style system: + aspirational pilot-institution order, launch-lane discipline, and + heroic pedagogic futurism should remain coherent across subjects. avoidRules: [photoreal, medieval, cyberpunk-dystopia, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-072.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-073.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-073.yaml index 27625e96..c2a6cb5d 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-073.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-073.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Ring composition pulling eye to central biosphere. atmosphere: Cooperative abundance and gentle futurism. key_features: Hydro rings, seed libraries, and moon compost vaults. - creative_brief: A lunarpunk farm city where food systems are visibly communal. + creative_brief: >- + Preserve crescent agro-rings grammar as a reusable style system: + concentric hydro-agriculture urbanism, cooperative biosphere logistics, + and gentle lunar abundance should remain coherent across subjects. avoidRules: [photoreal, militarized-base, cyber-grime, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-073.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-074.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-074.yaml index 4b1c7507..c6f864e2 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-074.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-074.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Upward composition emphasizing stacked archives. atmosphere: Reflection, study, and collective memory. key_features: Archive spires, moon codex halls, and silent atriums. - creative_brief: A lunarpunk library where civic memory is treated as infrastructure. + creative_brief: >- + Preserve moonshade library-spires grammar as a reusable style system: + contemplative vertical archives, low-lumen knowledge architecture, and + civic memory infrastructure should remain coherent across subjects. avoidRules: [photoreal, cyberpunk-noise, military-tech, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-074.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-075.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-075.yaml index 2436722f..3b2daf92 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-075.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-075.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Bowl-shaped depth around central interchange. atmosphere: Calm mobility and civic coordination. key_features: Shuttle docks, low-g lifts, and basin concourses. - creative_brief: A lunarpunk node where mobility is designed for accessibility and rhythm. + creative_brief: >- + Preserve tidal crater transit-hub grammar as a reusable style system: + bowl-topography interchange logic, low-gravity accessibility choreography, + and calm civic mobility rhythm should remain coherent across subjects. avoidRules: [photoreal, dystopian-chaos, cyber-neon, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-075.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-076.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-076.yaml index 6b5c7192..fe8e9204 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-076.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-076.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Dense block composition with visible micro-scenes. atmosphere: Hands-on solidarity and practical creativity. key_features: Open fab benches, repair kiosks, and shared tool depots. - creative_brief: A lunarpunk district where repair is celebrated as civic art. + creative_brief: >- + Preserve selenite artisan-block grammar as a reusable style system: + cooperative fabrication density, modular repair culture, and + practical-creative solidarity should remain coherent across subjects. avoidRules: [photoreal, sterile-corporate, cyber-slum, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-076.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-077.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-077.yaml index 9c6a7b07..dab2c305 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-077.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-077.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Panoramic arc framing cosmic horizon. atmosphere: Reverence, community, and perspective. key_features: Earthrise seats, story circles, and phase lanterns. - creative_brief: A lunarpunk plaza where cosmology is a daily social practice. + creative_brief: >- + Preserve earthrise commons-balcony grammar as a reusable style system: + panoramic communal rituals, amphitheater civic intimacy, and + cosmological perspective practice should remain coherent across subjects. avoidRules: [photoreal, militarized-tone, cyberpunk-grit, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-077.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-078.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-078.yaml index fee2113d..e7a76d2f 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-078.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-078.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Spiral descent into resonant core. atmosphere: Serenity, resonance, and ritual repair. key_features: Echo dishes, choir platforms, and tone altars. - creative_brief: A lunarpunk temple where healing is achieved through shared sound. + creative_brief: >- + Preserve crater choir-sanctuary grammar as a reusable style system: + concentric sonic architecture, resonant ritual healing, and + serenity-through-acoustics should remain coherent across subjects. avoidRules: [photoreal, horror, cyber-neon, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-078.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-079.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-079.yaml index 06c16241..e34f8797 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-079.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-079.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Courtyard-centric plan with layered treatment wings. atmosphere: Care, trust, and shared resilience. key_features: Moonwater basins, med pods, and public health kiosks. - creative_brief: A lunarpunk clinic where medicine is embedded in daily public space. + creative_brief: >- + Preserve moonwater clinic-arcade grammar as a reusable style system: + courtyard-integrated public care, hydrothermic trust infrastructure, and + community health governance should remain coherent across subjects. avoidRules: [photoreal, dystopian-lab, cyber-grime, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-079.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-080.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-080.yaml index 04f8ce99..6c709f7e 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-080.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-080.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Radial market geometry around eclipse beacon. atmosphere: Celebration, mystery, and timed scarcity. key_features: Eclipse stalls, phase clocks, and barter domes. - creative_brief: A lunarpunk bazaar where commerce follows celestial timing. + creative_brief: >- + Preserve eclipse market-canopy grammar as a reusable style system: + phase-timed temporary commerce, folding radial canopy choreography, and + celebratory scarcity mystique should remain coherent across subjects. avoidRules: [photoreal, cyberpunk-nightclub, medieval, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-080.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-081.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-081.yaml index 0208a949..2fce67f5 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-081.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-081.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Cascading basin sequence to central thermal core. atmosphere: Restoration and social calm. key_features: Thermal baths, filter columns, and communal changing arcs. - creative_brief: A lunarpunk wellness district where hygiene is civic ritual. + creative_brief: >- + Preserve silver regolith-baths grammar as a reusable style system: + cascading thermal infrastructure, mineral-filtration social wellness, and + restorative civic calm should remain coherent across subjects. avoidRules: [photoreal, dystopian-medlab, cyber-grit, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-081.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-082.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-082.yaml index fc9ad19f..e1a29336 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-082.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-082.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Linear vault depth crossing into docking lock. atmosphere: Stewardship, caution, and long-term planning. key_features: Seed chambers, cryo lifts, and biosecurity checkpoints. - creative_brief: A lunarpunk archive securing biodiversity as a shared future asset. + creative_brief: >- + Preserve orbital seed-vault annex grammar as a reusable style system: + redundant biodiversity stewardship, cryogenic continuity logistics, and + long-horizon ecological caution should remain coherent across subjects. avoidRules: [photoreal, military-bunker, cyberpunk-chaos, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-082.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-083.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-083.yaml index d906a7a2..30db2a18 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-083.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-083.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Upward city composition around central tower axis. atmosphere: Order, trust, and rhythmic public life. key_features: Phase beacon, civic clocks, and scheduling terraces. - creative_brief: A lunarpunk beacon that turns celestial rhythm into social infrastructure. + creative_brief: >- + Preserve phasewatch civic-tower grammar as a reusable style system: + lunar-cycle synchronization architecture, trusted public timing signals, + and rhythmic civic order should remain coherent across subjects. avoidRules: [photoreal, dystopian-surveillance, cyber-noise, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-083.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-084.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-084.yaml index 6a82a75d..8f40122e 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-084.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-084.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Nested lab rings converging on a central test core. atmosphere: Precision, care, and optimistic experimentation. key_features: Quiet engine pods, calibration decks, and communal design bays. - creative_brief: A lunarpunk lab where propulsion progress is measured by harmony, not noise. + creative_brief: >- + Preserve cradle of quiet-engines grammar as a reusable style system: + low-noise propulsion experimentation, nested acoustic lab geometry, and + care-centered technical optimism should remain coherent across subjects. avoidRules: [photoreal, militarized-weapons, cyber-grunge, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-084.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-085.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-085.yaml index 2fb7ff62..ff124128 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-085.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-085.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Circular greenhouse rings around central timer tower. atmosphere: Patient elegance and mechanical gentleness. key_features: Clock vines, pendulum sprinklers, and time-wound orchards. - creative_brief: A clockpunk greenhouse where plants and mechanisms grow together. + creative_brief: >- + Preserve gilded gear-conservatory grammar as a reusable style system: + ornamental horological botany, brass filigree growth mechanics, and + patient eco-temporal elegance should remain coherent across subjects. avoidRules: [photoreal, cyberpunk, industrial-grunge, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-085.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-086.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-086.yaml index 76183474..0830d871 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-086.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-086.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Rotational composition around a central dance clock. atmosphere: Ceremonial motion and elegant precision. key_features: Pendulum columns, timer balconies, and waltz automata. - creative_brief: A clockpunk ballroom where every dance step is mechanically coordinated. + creative_brief: >- + Preserve pendulum court-ballroom grammar as a reusable style system: + ceremonial kinetic symmetry, pendulum-governed choreography, and + luxurious mechanical etiquette should remain coherent across subjects. avoidRules: [photoreal, brutal-industrial, cyberpunk-noise, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-086.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-087.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-087.yaml index 70806d7c..50a8c9fe 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-087.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-087.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Long axis perspective through layered dials. atmosphere: Measured movement and navigational discipline. key_features: Direction dials, time markers, and route brasswork. - creative_brief: A clockpunk transit hall where travel is calibrated by instrument-grade ritual. + creative_brief: >- + Preserve brass astrolabe-passage grammar as a reusable style system: + navigational-instrument corridor rhythm, calibrated directional ritual, + and measured transit discipline should remain coherent across subjects. avoidRules: [photoreal, toy-like, cyber-slum, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-087.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-088.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-088.yaml index 1df9ebbf..f3f90ded 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-088.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-088.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Harbor depth leading to a central time tower. atmosphere: Order, signal discipline, and civic tide control. key_features: Tide clocks, signal cranes, and quay pendulums. - creative_brief: A clockpunk port where schedules regulate waves as much as ships. + creative_brief: >- + Preserve timekeeper harbor grammar as a reusable style system: + maritime schedule governance, tidal signal control machinery, and + beacon-led civic coordination should remain coherent across subjects. avoidRules: [photoreal, neon-dystopia, industrial-rust, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-088.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-089.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-089.yaml index 2f520d78..9d3b3367 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-089.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-089.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Tight alley perspective with repeating façades. atmosphere: Craft pride, quiet focus, and intimate scale. key_features: Watchmaker benches, tool clocks, and repair kiosks. - creative_brief: A clockpunk artisan row where time is repaired one mechanism at a time. + creative_brief: >- + Preserve pocketwatch workshop-row grammar as a reusable style system: + intimate micro-mechanics craftsmanship, dense storefront repair culture, + and quiet precision pride should remain coherent across subjects. avoidRules: [photoreal, messy-industrial, cyberpunk, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-089.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-090.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-090.yaml index 87cb5a2e..955adf02 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-090.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-090.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Axial symmetry toward governance dais. atmosphere: Deliberation, accountability, and measured power. key_features: Sundial court, vote levers, and council meters. - creative_brief: A clockpunk government that literally aligns policy with daylight. + creative_brief: >- + Preserve sundial government-steps grammar as a reusable style system: + solar-calibrated civic authority, axial deliberative architecture, and + measured public accountability should remain coherent across subjects. avoidRules: [photoreal, dystopian, cyber-noise, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-090.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-091.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-091.yaml index 9a64632a..a6c51415 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-091.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-091.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Stage-front perspective into layered orchestra tiers. atmosphere: Celebratory precision and musical elegance. key_features: Gear organs, tempo wheels, and clockwork stage rigs. - creative_brief: A clockpunk theater where timing is literally the main instrument. + creative_brief: >- + Preserve gearsong theater grammar as a reusable style system: + orchestral timing machinery, proscenium gear dramaturgy, and + celebratory mechanical musicality should remain coherent across subjects. avoidRules: [photoreal, silly-cartoon, cyberpunk-neon, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-091.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-092.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-092.yaml index 7f5575ad..04277622 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-092.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-092.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Stepped upward composition toward dome center. atmosphere: Curiosity, patience, and astronomical order. key_features: Dial telescopes, time maps, and stargear platforms. - creative_brief: A clockpunk observatory where precision mechanics meet sky study. + creative_brief: >- + Preserve brass observatory-steps grammar as a reusable style system: + stepped astronomical instrumentation, dial-driven sky analysis, and + patient celestial order should remain coherent across subjects. avoidRules: [photoreal, futuristic-minimal, cyber-grime, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-092.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-093.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-093.yaml index bdb3dd3a..549b81c6 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-093.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-093.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Waterway depth with alternating lock chambers. atmosphere: Measured flow and engineered adaptability. key_features: Canal locks, gear sluices, and maintenance docks. - creative_brief: A clockpunk waterway where flow is controlled with ceremonial precision. + creative_brief: >- + Preserve brass canal-locks grammar as a reusable style system: + hydraulic timing governance, alternating sluice choreography, and + ceremonial flow precision should remain coherent across subjects. avoidRules: [photoreal, cartoonish, cyberpunk, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-093.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-094.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-094.yaml index d5fa52f9..0cb47e71 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-094.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-094.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Rotational composition around the giant wheel. atmosphere: Social motion and measured delight. key_features: Timewheel rides, ticket counters, and gear carnival stalls. - creative_brief: A clockpunk fairground where amusement is engineered as a precision ritual. + creative_brief: >- + Preserve timewheel arcade grammar as a reusable style system: + rotational public amusement engineering, dial-and-ticket ritual rhythm, + and measured social delight should remain coherent across subjects. avoidRules: [photoreal, grim-industrial, cyberpunk-noise, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-094.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-095.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-095.yaml index 9d06b2ae..761b8029 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-095.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-095.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Terraced slope perspective with nested home fronts. atmosphere: Domestic care and mechanical intimacy. key_features: Balcony clocks, repair benches, and window chimes. - creative_brief: A clockpunk neighborhood where household life is tuned with craft precision. + creative_brief: >- + Preserve clockmaker's terrace grammar as a reusable style system: + domestic horological craft intimacy, staggered balcony atelier patterns, + and tuned household precision should remain coherent across subjects. avoidRules: [photoreal, cyberpunk, ruin-punk, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-095.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-096.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-096.yaml index 281b1d59..6ea0fbeb 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-096.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-096.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Campus composition centered on a clock tower. atmosphere: Curiosity, discipline, and apprenticeship pride. key_features: Gear classrooms, demonstration clocks, and maintenance labs. - creative_brief: A clockpunk school where learning is literally hands-on mechanics. + creative_brief: >- + Preserve gearwork schoolhouse grammar as a reusable style system: + tactile apprenticeship pedagogy, model-driven institutional clarity, and + disciplined curiosity culture should remain coherent across subjects. avoidRules: [photoreal, toyish, cyberpunk, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-096.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-097.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-097.yaml index dbe74632..79fa72b7 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-097.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-097.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Track-side perspective toward signal tower. atmosphere: Coordination, urgency, and precise movement. key_features: Semaphore arms, signal clocks, and route levers. - creative_brief: A clockpunk rail node where timing discipline shapes the whole city. + creative_brief: >- + Preserve gilded railway signal-house grammar as a reusable style system: + semaphore-forest coordination, route-lever timing authority, and + platform urgency discipline should remain coherent across subjects. avoidRules: [photoreal, cyberpunk, dystopian-rust, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-097.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-098.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-098.yaml index dc92c1a4..646c9401 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-098.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-098.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Nave depth toward central gear altar. atmosphere: Reverence, precision, and ceremonial awe. key_features: Gear altar, time reliquaries, and clock choir stalls. - creative_brief: A clockpunk cathedral where faith and engineering are the same liturgy. + creative_brief: >- + Preserve cog cathedral-annex grammar as a reusable style system: + sacred-mechanical monumentality, gear-liturgical symbolism, and + ceremonial engineering reverence should remain coherent across subjects. avoidRules: [photoreal, whimsical, cyberpunk-noise, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-098.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-099.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-099.yaml index 49b6b340..5c6f23b5 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-099.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-099.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Broad transit perspective leading through green frames. atmosphere: Mobility, civic care, and breathable urban optimism. key_features: Tram platforms, canopy bridges, and solar wayfinding panels. - creative_brief: A solarpunk transit node where mobility is shaded, quiet, and beautifully integrated with nature. + creative_brief: >- + Preserve canopy tram-exchange grammar as a reusable style system: + biophilic mobility integration, breathable elevated transit frames, and + shaded civic calm should remain coherent across subjects. avoidRules: [photoreal, dystopian, heavy-neon, watermark, text, logo, grime] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-099.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-100.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-100.yaml index ee7c2238..1d1d1435 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-100.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-100.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Layered rooftop perspective climbing into the skyline. atmosphere: Social warmth, abundance, and neighborhood exchange. key_features: Rooftop stalls, herb beds, and rainwater channels. - creative_brief: A solarpunk neighborhood market that turns every roof into shared productive land. + creative_brief: >- + Preserve roofgarden market-terraces grammar as a reusable style system: + layered edible urbanism, rooftop exchange conviviality, and + productive-neighborhood abundance should remain coherent across subjects. avoidRules: [photoreal, sterile-minimal, cyberpunk, watermark, text, logo, cold-light] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-100.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-101.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-101.yaml index fc26182f..5469c62f 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-101.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-101.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Curving river edge creating a generous communal composition. atmosphere: Repair culture, stewardship, and shared skill-building. key_features: Tool libraries, river steps, and public worktables. - creative_brief: A solarpunk commons where maintenance is social, visible, and elegant. + creative_brief: >- + Preserve riverbend repair-commons grammar as a reusable style system: + riverside maintenance pedagogy, open civic tool-sharing culture, and + elegant stewardship pragmatism should remain coherent across subjects. avoidRules: [photoreal, grit, industrial-smoke, watermark, text, logo, gloom] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-101.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-102.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-102.yaml index e1b07977..311852d5 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-102.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-102.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Vertical central void pulling the city upward. atmosphere: Public trust, climatic comfort, and collective aspiration. key_features: Solar chimney, civic ramps, and shared atrium gardens. - creative_brief: A solarpunk civic heart where energy, climate, and public life are harmonized in one bright atrium. + creative_brief: >- + Preserve sunstack civic-atrium grammar as a reusable style system: + vertically layered public climate architecture, solar-chimney energy + symbolism, and bright civic trust should remain coherent across subjects. avoidRules: [photoreal, cyberpunk, hard-industrial, watermark, text, logo, nightscape] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-102.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-103.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-103.yaml index bcd8072e..19be4ef9 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-103.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-103.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Long corridor depth with branching cellular ribs. atmosphere: Adaptive infrastructure, calm motion, and living-system trust. key_features: Mycelial rails, transit pods, and nutrient maintenance nodes. - creative_brief: A biopunk transit spine where the city moves through a living fungal backbone. + creative_brief: >- + Preserve mycelial transit-spine grammar as a reusable style system: + fungal-structural mobility corridors, branching cellular wayfinding, and + calm adaptive infrastructure should remain coherent across subjects. avoidRules: [photoreal, cyberpunk-grime, violent-neon, watermark, text, logo, rust] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-103.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-104.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-104.yaml index 68b2f0f8..b3c12052 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-104.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-104.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Sweeping market aisle under layered living roofs. atmosphere: Exchange, nourishment, and mutual dependence. key_features: Symbiotic stalls, nutrient kiosks, and canopy vent petals. - creative_brief: A biopunk marketplace where commerce is sheltered by cooperative living architecture. + creative_brief: >- + Preserve symbiont market-canopy grammar as a reusable style system: + cooperative bio-canopy commerce, nutrient-linked stall ecology, and + mutualist public exchange should remain coherent across subjects. avoidRules: [photoreal, dystopian, harsh-neon, watermark, text, logo, grime] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-104.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-105.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-105.yaml index 5eacea1a..04812f04 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-105.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-105.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Amphitheater depth framed by botanical layers. atmosphere: Debate, cultivation, and intelligent stewardship. key_features: Genome benches, pollen displays, and bio-learning panels. - creative_brief: A biopunk forum where public discourse grows inside a carefully tended living garden of knowledge. + creative_brief: >- + Preserve genome garden-forum grammar as a reusable style system: + botanical knowledge amphitheaters, DNA-trellis civic debate framing, and + cultivated stewardship intelligence should remain coherent across subjects. avoidRules: [photoreal, sterile, cyberpunk, watermark, text, logo, flat-light] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-105.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-106.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-106.yaml index 87636a8d..ba590a60 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-106.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-106.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Loom-centered floor plan with radial patient bays. atmosphere: Care, repair, and embodied trust. key_features: Nerve looms, bioscan petals, and restorative membranes. - creative_brief: A biopunk clinic where healing is woven rather than assembled. + creative_brief: >- + Preserve nerve loom-clinic grammar as a reusable style system: + loom-based restorative medicine, soft radial treatment choreography, and + humane biofabric trust should remain coherent across subjects. avoidRules: [photoreal, horror, harsh-metal, watermark, text, logo, slime-gross] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-106.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-107.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-107.yaml index b90d191c..9d5d3172 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-107.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-107.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Promenade vanishing point crossing reef terraces. atmosphere: Exploration, stewardship, and aquatic curiosity. key_features: Coral benches, tide instruments, and reef observation pods. - creative_brief: A biopunk shoreline where marine research and public leisure share the same living promenade. + creative_brief: >- + Preserve coral laboratory-promenade grammar as a reusable style system: + reef-adjacent research leisure integration, coastal biocalcium tactility, + and exploratory stewardship should remain coherent across subjects. avoidRules: [photoreal, cyberpunk, storm-chaos, watermark, text, logo, over-dark] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-107.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-108.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-108.yaml index bcd9041d..153fa88c 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-108.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-108.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Open plan with radial fabrication bays. atmosphere: Collaboration, invention, and ecological pragmatism. key_features: Growth trays, living molds, and shared maker stations. - creative_brief: A biopunk commons where citizens co-grow materials for their city. + creative_brief: >- + Preserve biofoundry commons grammar as a reusable style system: + public co-growth fabrication workflows, organoid production legibility, + and ecological maker pragmatism should remain coherent across subjects. avoidRules: [photoreal, aggressive-industrial, cyberpunk, watermark, text, logo, grime] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-108.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-109.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-109.yaml index 761d3b52..df333eb3 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-109.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-109.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Bridge grid crossing layered urban terraces. atmosphere: Connection, resilience, and responsive infrastructure. key_features: Living spans, root anchors, and adaptive footpaths. - creative_brief: A biopunk district where the bridges are alive and the city’s circulation is grown rather than built. + creative_brief: >- + Preserve living bridge-district grammar as a reusable style system: + bio-arched circulation networks, root-anchor resilience engineering, and + responsive connective urbanism should remain coherent across subjects. avoidRules: [photoreal, militaristic, neon-gloom, watermark, text, logo, decay] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-109.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-110.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-110.yaml index bf9909a8..e486a8ab 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-110.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-110.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Plaza-centered circular layout with branching signal arms. atmosphere: Communication, adaptation, and communal intelligence. key_features: Spore beacons, memory spores, and public signal blooms. - creative_brief: A biopunk plaza where spores carry the city’s messages like living civic infrastructure. + creative_brief: >- + Preserve spore signal-plaza grammar as a reusable style system: + fungal communication monuments, circular signal-civic choreography, and + communal adaptive intelligence should remain coherent across subjects. avoidRules: [photoreal, horror, grimdark, watermark, text, logo, over-saturation] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-110.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-111.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-111.yaml index 6a1b6b41..78dd02bb 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-111.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-111.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Pavilion shell focused on a central specimen spine. atmosphere: Preservation, contemplation, and scientific tenderness. key_features: Tissue drawers, bio-index panels, and preservation domes. - creative_brief: A biopunk archive that treats living tissue as both record and artifact. + creative_brief: >- + Preserve tissue archive-pavilion grammar as a reusable style system: + specimen-centered memory architecture, fragile bio-preservation elegance, + and scientific tenderness should remain coherent across subjects. avoidRules: [photoreal, horror, gore, watermark, text, logo, messy-clutter] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-111.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-112.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-112.yaml index 1bf4fb28..375b0a40 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-112.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-112.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Vertical terraced stack rising like a living garden tower. atmosphere: Domestic comfort, ecological intelligence, and bright stability. key_features: Chloroplast panels, air gardens, and terrace nurseries. - creative_brief: A biopunk home stack where the building behaves like a giant productive leaf. + creative_brief: >- + Preserve chloroplast housing-stack grammar as a reusable style system: + photosynthetic domestic envelopes, terraced air-garden comfort, and + bright ecological stability should remain coherent across subjects. avoidRules: [photoreal, dystopian, dystopic, watermark, text, logo, cold-grit] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-112.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-113.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-113.yaml index caa36451..685ef05f 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-113.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-113.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Dock perspective leading to regenerative intake pods. atmosphere: Recovery, exchange, and compassionate infrastructure. key_features: Stemcell clinics, tide docks, and restorative capsules. - creative_brief: A biopunk harbor where the port itself participates in healing and renewal. + creative_brief: >- + Preserve stemcell harbor grammar as a reusable style system: + regenerative maritime logistics, dockside care infrastructure, and + compassionate renewal pathways should remain coherent across subjects. avoidRules: [photoreal, hospital-gore, cyberpunk, watermark, text, logo, grime] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-113.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-114.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-114.yaml index 88527a2c..e647edc7 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-114.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-114.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Dome-centered observatory with layered organ gardens. atmosphere: Awe, measurement, and organic wonder. key_features: Organ blooms, sensor domes, and growth benches. - creative_brief: A biopunk observatory where cultivated living organs study the sky. + creative_brief: >- + Preserve organ garden-observatory grammar as a reusable style system: + sensory-organ astronomical instrumentation, petaled growth observatories, + and organic wonder measurement should remain coherent across subjects. avoidRules: [photoreal, gore, horror, neon, watermark, text, logo] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-114.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-115.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-115.yaml index 459da29b..c48d9bce 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-115.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-115.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Atrium verticality with layered water flow. atmosphere: Renewal, abundance, and climate adaptation. key_features: Rain catchers, bioglass walls, and water nerve channels. - creative_brief: A biopunk rain atrium where water collection is expressed as elegant living architecture. + creative_brief: >- + Preserve bioglass rain-atrium grammar as a reusable style system: + vertical rain-harvest choreography, reflective wet bioglass tactility, and + climate-adaptive abundance should remain coherent across subjects. avoidRules: [photoreal, dark-industrial, cyberpunk, watermark, text, logo, muddy] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-115.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-116.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-116.yaml index af672ea0..fa4067fd 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-116.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-116.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Curving causeway through layered marine platforms. atmosphere: Motion, nightlife, and tidal futurity. key_features: Tide beacons, floating rail links, and reef-lit edges. - creative_brief: A seapunk causeway where the ocean becomes a neon civic corridor. + creative_brief: >- + Preserve tidal neon-causeway grammar as a reusable style system: + sinuous floating circulation, tide-instrument nightlife glow, and + marine civic motion should remain coherent across subjects. avoidRules: [photoreal, diesel, grim, watermark, text, logo, murky] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-116.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-117.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-117.yaml index a522f298..578166fa 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-117.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-117.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Amphitheater curve around a harbor inlet. atmosphere: Communal celebration, tidal resonance, and playful immersion. key_features: Reef choir shells, harbor steps, and signal fins. - creative_brief: A seapunk harbor where the reef itself amplifies song and civic life. + creative_brief: >- + Preserve reef choir-harbor grammar as a reusable style system: + acoustic reef amphitheater geometry, luminous communal tidal rituals, and + playful civic resonance should remain coherent across subjects. avoidRules: [photoreal, bleak, rust, watermark, text, logo, murky] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-117.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-118.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-118.yaml index d40f1cfb..cf69f23d 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-118.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-118.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Pier perspective extending into underwater columns. atmosphere: Fun, drift, and coastal exuberance. key_features: Kelp cabinets, boardwalk lanterns, and wave game pods. - creative_brief: A seapunk boardwalk where the arcade floats half in the sea and half in light. + creative_brief: >- + Preserve kelp arcade-boardwalk grammar as a reusable style system: + pierline leisure circuitry, swaying kelp interface ornament, and + sunset-neon coastal exuberance should remain coherent across subjects. avoidRules: [photoreal, grimdark, industrial, watermark, text, logo, foggy] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-118.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-119.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-119.yaml index f8d076a8..09e7afc5 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-119.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-119.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Flow-based district plan bending around current loops. atmosphere: Ease, flow, and refined maritime living. key_features: Current chambers, pearl plazas, and tide bridges. - creative_brief: A seapunk district designed around moving water as the city’s main organizing force. + creative_brief: >- + Preserve pearl current-district grammar as a reusable style system: + flow-organized maritime urbanism, pearl-chamber circulation logic, and + refined aquatic ease should remain coherent across subjects. avoidRules: [photoreal, heavy-industrial, rust, watermark, text, logo, sludge] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-119.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-120.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-120.yaml index d11e875b..26328f67 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-120.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-120.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Downward peek under the pier into layered drift gardens. atmosphere: Slow growth, tide patience, and luminous ecology. key_features: Drift roots, subpier planters, and tide-fed blooms. - creative_brief: A seapunk underpier garden where the sea cultivates its own hanging ecosystem. + creative_brief: >- + Preserve drift garden-subpier grammar as a reusable style system: + substructure hanging ecologies, tide-fed luminous root layering, and + patient submerged growth should remain coherent across subjects. avoidRules: [photoreal, oil-slick, industrial, watermark, text, logo, murky] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-120.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-121.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-121.yaml index 4f5d2ae2..7d118eda 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-121.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-121.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Meandering path through illuminated water corridors. atmosphere: Night stroll, orientation, and civic sparkle. key_features: Tide lanterns, buoy markers, and wet promenade steps. - creative_brief: A seapunk quarter where lanterns float with the tide and guide every shoreline turn. + creative_brief: >- + Preserve tide lantern-quarter grammar as a reusable style system: + tidal wayfinding luminance, meandering waterfront promenade guidance, and + nocturnal civic sparkle should remain coherent across subjects. avoidRules: [photoreal, dystopia, harsh-dark, watermark, text, logo, muddy] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-121.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-122.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-122.yaml index dbdf76b9..07956691 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-122.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-122.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Industrial dock geometry softened by wave curves. atmosphere: Making, flow, and oceanic adaptation. key_features: Wave fins, fabrication cradles, and harbor hands. - creative_brief: A seapunk dockyard where marine mechanics and wavecraft are one practice. + creative_brief: >- + Preserve waveforge dockyard grammar as a reusable style system: + wave-shaped fabrication infrastructure, polished marine work rhythms, and + adaptive oceanic making should remain coherent across subjects. avoidRules: [photoreal, rust, diesel, watermark, text, logo, sludge] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-122.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-123.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-123.yaml index eb9a36ba..cd63ce9c 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-123.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-123.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Conservatory dome with concentric wave gardens. atmosphere: Curiosity, translation, and marine harmony. key_features: Signal fronds, tide instruments, and wave blooms. - creative_brief: A seapunk conservatory where the ocean’s signals are grown into living botanical language. + creative_brief: >- + Preserve ocean signal-conservatory grammar as a reusable style system: + wave-linguistic botanical instrumentation, concentric marine greenhouse + systems, and luminous translational harmony should remain coherent across subjects. avoidRules: [photoreal, bleak, industrial, watermark, text, logo, murky] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-123.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-124.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-124.yaml index ae181140..3dd8970b 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-124.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-124.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Centered relay hub with radiating lagoon spokes. atmosphere: Connection, distance translation, and quiet power. key_features: Relay disks, buoy antennas, and mirror-water channels. - creative_brief: A seapunk relay station where the lagoon itself carries and repeats the signal. + creative_brief: >- + Preserve lagoon relay-station grammar as a reusable style system: + circular waterborne signal infrastructure, buoy-antenna relay choreography, + and quiet connective power should remain coherent across subjects. avoidRules: [photoreal, stormy, industrial-rust, watermark, text, logo, murky] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-124.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-125.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-125.yaml index b9c80b9d..0efec303 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-125.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-125.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Long pier perspective with repeating shell stations. atmosphere: Travel, lightness, and seaside civic life. key_features: Shell metro stalls, pier rails, and wave shelters. - creative_brief: A seapunk metro pier where every station feels like a shell found on the tide line. + creative_brief: >- + Preserve shell metro-pier grammar as a reusable style system: + tide-line shell transit modules, repeating pierline station rhythm, and + lightweight seaside mobility should remain coherent across subjects. avoidRules: [photoreal, dingy, industrial, watermark, text, logo, clutter] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-125.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-126.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-126.yaml index c75efa7a..165ddf7f 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-126.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-126.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Courtyard inward pull framed by reefs and bubbles. atmosphere: Playfulness, calm, and close-knit aquatic community. key_features: Bubble reefs, courtyard rings, and shell benches. - creative_brief: A seapunk courtyard where bubbles and coral build a sheltered public room. + creative_brief: >- + Preserve bubble reef-courtyard grammar as a reusable style system: + inward coral-resin enclosure geometry, buoyant micro-community intimacy, + and playful aquatic shelter should remain coherent across subjects. avoidRules: [photoreal, harsh-industrial, sewage, watermark, text, logo, murky] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-126.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_15/SP15-127.yaml b/components/recipes/styles/manifests/presets/pack_15/SP15-127.yaml index b2bb69ec..5d99fb56 100644 --- a/components/recipes/styles/manifests/presets/pack_15/SP15-127.yaml +++ b/components/recipes/styles/manifests/presets/pack_15/SP15-127.yaml @@ -16,7 +16,10 @@ visualDna: spatial_distortion: Forum circle over water with radiating dock spokes. atmosphere: Dialogue, openness, and buoyant civic exchange. key_features: Saltlight poles, debate rings, and floating steps. - creative_brief: A seapunk public forum where civic conversation happens above the tide on a glowing floating platform. + creative_brief: >- + Preserve saltlight forum-platform grammar as a reusable style system: + floating deliberative civic rings, dusk saltlight debate staging, and + buoyant democratic openness should remain coherent across subjects. avoidRules: [photoreal, dark, militarized, watermark, text, logo, murky] assets: { defaultImage: /assets/recipes/styles/defaults/SP15-127.webp } attributes: diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-003.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-003.yaml index c5174935..6afcd80d 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-003.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-003.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 70s-and-80s-retro-anime visualDna: - aesthetic: Slim silhouettes, sly expressions, urban caper cool, sketchy finesse, noir shading, trench coat styling, night-city glow - form_and_line: Cel-era anime linework, bold contour strokes, vintage cel shading technique, hand-drawn frame precision - color_palette: Warm retro primaries, soft cel tones, muted saturation, faded film-stock hues - lighting_setup: Simple cel shadows, bold key light, flat directional shading, rim highlights - material_texture: Painted backgrounds, cel-texture edges, gouache matte finish, vintage grain texture - render_quality: Vintage broadcast-quality anime frame, analogue film grain, classic 80s telecine look, warm filmic softness - spatial_distortion: Retro anime proportions, elongated figures, dramatic forced perspective, classic character staging - atmosphere: Jazzy, playful, mischievous, suave - key_features: Hand-painted background energy, nostalgic visual warmth, expressive character posing, iconic era style - creative_brief: Cigarette smoke curls through Venetian blinds in a city that never sleeps, as lanky silhouettes trade stolen glances across rain-slicked cobblestones. The line work dances with bebop rhythm—sharp suit lapels, sly half-smiles, and the delicious tension of a con about to spring. + aesthetic: Heist retro-jazz de picardía elegante, con silueta delgada, humor seco y glamour urbano nocturno. + form_and_line: Trazo cel vintage afilado, gestualidad pícara y staging de robo con coreografía de timing musical. + color_palette: Carbón nocturno, ámbar de farola, turquesa tenue y acentos crema de cartel antiguo. + lighting_setup: Noir suave con contraluz de persiana, reflejo húmedo de calle y key focal en gesto de engaño. + material_texture: Asfalto mojado, gabardina textil, cromado de vitrina y grano telecine de caper setentero. + render_quality: Acabado broadcast 80s de alto carácter, lectura clara de astucia, ritmo y puesta en escena. + spatial_distortion: Perspectiva urbana oblicua con encuadres de fuga, contrapicado de estilo y compresión de callejón. + atmosphere: Jazzy, juguetona, traviesa, sofisticada. + key_features: Siluetas de abrigo largo, ritmo de montaje tipo atraco, luces urbanas y acting de doble intención. + creative_brief: Diseña una gramática reusable de heist urbano con swing retro para cualquier sujeto, priorizando elegancia táctica, ironía visual y ritmo nocturno. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-004.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-004.yaml index 513f44b7..097f53f4 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-004.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-004.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 70s-and-80s-retro-anime visualDna: - aesthetic: Tall figures, sweeping capes, lonely starfields, romantic space adventure, operatic scale, cosmic loneliness, vast ship corridors - form_and_line: Cel-era anime linework, bold contour strokes, vintage cel shading technique, hand-drawn frame precision - color_palette: Warm retro primaries, soft cel tones, muted saturation, faded film-stock hues - lighting_setup: Simple cel shadows, bold key light, flat directional shading, rim highlights - material_texture: Painted backgrounds, cel-texture edges, gouache matte finish, vintage grain texture - render_quality: Vintage broadcast-quality anime frame, analogue film grain, classic 80s telecine look, warm filmic softness - spatial_distortion: Retro anime proportions, elongated figures, dramatic forced perspective, classic character staging - atmosphere: Melancholic, heroic, yearning, grand - key_features: Hand-painted background energy, nostalgic visual warmth, expressive character posing, iconic era style - creative_brief: A solitary cape billows against the infinite void, hand-painted stars flickering like distant memories as a romantic wanderer drifts between worlds no longer home. Operatic scale collides with intimate sorrow—vast ship corridors framing a single figure, the ache of cosmic loneliness rendered in warm gouache and sweeping perspective. + aesthetic: Ópera espacial romántica de corsario errante, con heroicidad melancólica y escala astral monumental. + form_and_line: Línea cel clásica de figura alta y capa amplia, acting contenido de añoranza y nobleza. + color_palette: Índigos profundos, oro envejecido, rojo vino ceremonial y grises siderales desaturados. + lighting_setup: Claroscuro estelar con key lateral dramática, halos de vacío y rim tenue sobre capa en movimiento. + material_texture: Metal de nave envejecido, terciopelo de uniforme, ventanal de puente y grano analógico elegante. + render_quality: Producción retro premium con lectura épica-lírica y composición de gran aliento visual. + spatial_distortion: Grandes vacíos cósmicos y corredores largos para enfatizar soledad heroica y destino itinerante. + atmosphere: Melancólica, heroica, anhelante, grandiosa. + key_features: Capa icónica, silueta de corsario, arquitectura naval y horizonte estelar como contrapeso emocional. + creative_brief: Construye una gramática reusable de romance espacial crepuscular para cualquier sujeto, equilibrando majestuosidad operática y soledad noble. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-005.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-005.yaml index 39f29d5f..d172665f 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-005.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-005.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 70s-and-80s-retro-anime visualDna: - aesthetic: Military mecha realism, dusty battlefields, sober sci-fi drama, tank treads, tactical maps, weary soldier faces - form_and_line: Cel-era anime linework, bold contour strokes, vintage cel shading technique, hand-drawn frame precision - color_palette: Warm retro primaries, soft cel tones, muted saturation, faded film-stock hues - lighting_setup: Simple cel shadows, bold key light, flat directional shading, rim highlights - material_texture: Painted backgrounds, cel-texture edges, gouache matte finish, vintage grain texture - render_quality: Vintage broadcast-quality anime frame, analogue film grain, classic 80s telecine look, warm filmic softness - spatial_distortion: Retro anime proportions, elongated figures, dramatic forced perspective, classic character staging - atmosphere: Serious, war-torn, grim, resolute - key_features: Hand-painted background energy, nostalgic visual warmth, expressive character posing, iconic era style - creative_brief: Dust chokes the battlefield as weary soldiers huddle beneath the shadow of walking tanks scarred by a hundred campaigns, every panel line and tread link etched with documentary precision. This is not heroic fantasy but the grim arithmetic of war, rendered in muted retro tones where survival itself is victory. + aesthetic: Mecha bélico realista de frente terrestre, con doctrina militar, fatiga de campaña y sobriedad táctica. + form_and_line: Línea técnica robusta, panelado legible y acting de escuadra en tensión operacional continua. + color_palette: Olivas apagados, tierra polvorienta, acero mate y rojos mínimos de señal de riesgo. + lighting_setup: Luz dura de campo abierto, sombras secas de blindaje y reflejos discretos en metal funcional. + material_texture: Chasis rayado, barro compactado, lona de vehículo y grano viejo de crónica de guerra. + render_quality: Acabado retro de precisión mecánica con claridad documental de hardware y cadena de mando. + spatial_distortion: Profundidad de llanura de combate con bloqueos de columna, cobertura y avance por capas. + atmosphere: Seria, devastada, áspera, resiliente. + key_features: Silueta de mecha de línea de frente, mapa táctico implícito y desgaste visible de campaña prolongada. + creative_brief: Define una gramática reusable de mecha militar terrenal para cualquier sujeto, priorizando funcionalidad mecánica, disciplina táctica y peso logístico. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-006.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-006.yaml index 840e24bf..030ba021 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-006.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-006.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 70s-and-80s-retro-anime visualDna: - aesthetic: Idol glamour mixed with transformable aircraft and bright theatrical staging, stage lights, microphone stands, flight decks, concert energy - form_and_line: Cel-era anime linework, bold contour strokes, vintage cel shading technique, hand-drawn frame precision - color_palette: Warm retro primaries, soft cel tones, muted saturation, faded film-stock hues - lighting_setup: Simple cel shadows, bold key light, flat directional shading, rim highlights - material_texture: Painted backgrounds, cel-texture edges, gouache matte finish, vintage grain texture - render_quality: Vintage broadcast-quality anime frame, analogue film grain, classic 80s telecine look, warm filmic softness - spatial_distortion: Retro anime proportions, elongated figures, dramatic forced perspective, classic character staging - atmosphere: Romantic, spectacular, dazzling, hopeful - key_features: Hand-painted background energy, nostalgic visual warmth, expressive character posing, iconic era style - creative_brief: Stage lights melt into afterburner trails as pop-idol glamour and transformable fighter craft share the same kaleidoscopic spotlight. Sequins and vernier thrusters catch the key light together, a dizzying marriage of concert spectacle and aerial ballet that dares the frame to contain its own radiance. + aesthetic: Fusión idol-mecha de espectáculo aéreo, con teatralidad pop y tecnología transformable de alto brillo. + form_and_line: Trazo cel dinámico con coreografía de escenario y vuelo, enfatizando transición performance-combate. + color_palette: Magentas de show, cian eléctrico, blanco perlado y acentos metálicos cromados. + lighting_setup: Spotlights de concierto combinados con flare de toberas, rim brillante y gradiente glam futurista. + material_texture: Lentejuela textil, pintura aeronáutica, panel translúcido de cockpit y grano cálido broadcast. + render_quality: Acabado retro premium de espectáculo híbrido con legibilidad simultánea de ícono pop y máquina. + spatial_distortion: Escenario elevado y cielo operativo conectados por encuadres de ascenso y transformación. + atmosphere: Radiante, emotiva, espectacular, eufórica. + key_features: Silueta idol distintiva, mecha transformable, iluminación de concierto y gestualidad de clímax performático. + creative_brief: Diseña una gramática reusable de pop-aeronáutica transformable para cualquier sujeto, equilibrando brillo escénico, ingeniería heroica y emoción de directo. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-007.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-007.yaml index 71af22c2..ecfce056 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-007.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-007.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 70s-and-80s-retro-anime visualDna: - aesthetic: Hyper-masculine wasteland action, thick shadows, severe physiques, bulging muscles, post-apocalyptic leather, dramatic blood splatter - form_and_line: Cel-era anime linework, bold contour strokes, vintage cel shading technique, hand-drawn frame precision - color_palette: Warm retro primaries, soft cel tones, muted saturation, faded film-stock hues - lighting_setup: Simple cel shadows, bold key light, flat directional shading, rim highlights - material_texture: Painted backgrounds, cel-texture edges, gouache matte finish, vintage grain texture - render_quality: Vintage broadcast-quality anime frame, analogue film grain, classic 80s telecine look, warm filmic softness - spatial_distortion: Retro anime proportions, elongated figures, dramatic forced perspective, classic character staging - atmosphere: Brutal, iconic, intense, visceral - key_features: Hand-painted background energy, nostalgic visual warmth, expressive character posing, iconic era style - creative_brief: Bulging anatomy tears through leather and shadow in a post-apocalyptic arena where blood sprays in dramatic arcs across hand-painted wasteland skies. Every muscle fiber strains against thick cel contours, each blow a thunderclap of hyper-masculine fury etched into the very grain of the analogue frame. + aesthetic: Épica marcial postapocalíptica de impacto físico extremo, con iconografía de supervivencia y ferocidad ritual. + form_and_line: Línea gruesa y cortante, anatomía hipertensa y puesta de golpe frontal con lectura brutal inmediata. + color_palette: Ocres abrasados, negros pesados, rojos secos y acentos hueso de paisaje devastado. + lighting_setup: Sol alto implacable y sombras densas, con destellos duros sobre sudor, metal y cuero gastado. + material_texture: Cuero curtido, polvo volcánico, cicatriz visible y grano áspero de cinta analógica violenta. + render_quality: Acabado retro de alto contraste corporal, privilegiando contundencia, daño y resiliencia. + spatial_distortion: Horizonte árido abierto con encuadres de colisión directa y escala de duelo primitivo. + atmosphere: Brutal, icónica, tensa, visceral. + key_features: Siluetas masivas, gesto de superviviente, iconografía wasteland y coreografía de impacto sin ornamento. + creative_brief: Construye una gramática reusable de combate de supervivencia en desierto colapsado para cualquier sujeto, enfocada en peso físico, dureza material y catarsis de choque. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-008.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-008.yaml index 3e71418c..6835c01f 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-008.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-008.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 70s-and-80s-retro-anime visualDna: - aesthetic: Urban cool, sharp tailoring, neon skyline tension, action-comedy rhythm, tailored suits, cityscape windows, retro firearm styling - form_and_line: Cel-era anime linework, bold contour strokes, vintage cel shading technique, hand-drawn frame precision - color_palette: Warm retro primaries, soft cel tones, muted saturation, faded film-stock hues - lighting_setup: Simple cel shadows, bold key light, flat directional shading, rim highlights - material_texture: Painted backgrounds, cel-texture edges, gouache matte finish, vintage grain texture - render_quality: Vintage broadcast-quality anime frame, analogue film grain, classic 80s telecine look, warm filmic softness - spatial_distortion: Retro anime proportions, elongated figures, dramatic forced perspective, classic character staging - atmosphere: Slick, streetwise, sharp, charismatic - key_features: Hand-painted background energy, nostalgic visual warmth, expressive character posing, iconic era style - creative_brief: Tailored suits cut through the neon-drenched night as a sharp-eyed detective stalks skyline-window corridors where every reflection hides a clue. The rhythm bounces between deadpan comedy and gun-barrel intensity, bold linework wrapping each character in the effortless cool of a city that raised them. + aesthetic: Policial urbano retro con filo cómico, sastrería impecable y tensión de investigación nocturna. + form_and_line: Trazo cel preciso de detective-action, acting seco y blocking de equipo en ciudad vertical. + color_palette: Cobalto nocturno, neón rosa-controlado, ámbar de interior y grafito metropolitano. + lighting_setup: Contraste de vidriera y calle, reflejos en ventanal y key dirigida para lectura de pista. + material_texture: Tejido de traje, metal de arma vintage, vidrio lluvioso y grano cinematográfico pulcro. + render_quality: Acabado broadcast 80s con equilibrio entre carisma procedural y ritmo de persecución. + spatial_distortion: Profundidad de avenida y azotea, con encuadres de vigilancia, emboscada y resolución rápida. + atmosphere: Elegante, callejera, afilada, magnética. + key_features: Siluetas de traje, neón de expediente nocturno, acción compacta y humor de dupla investigadora. + creative_brief: Diseña una gramática reusable de detective-action retro para cualquier sujeto, combinando sofisticación urbana, dinamismo táctico y timing irónico. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-009.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-009.yaml index 2a88ce2c..1f9f3121 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-009.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-009.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 70s-and-80s-retro-anime visualDna: - aesthetic: Dense futuristic cityscapes, motorcycles, kinetic motion, cyber unrest, neon billboards, highway overpasses, crowd riots, tech clutter - form_and_line: Cel-era anime linework, bold contour strokes, vintage cel shading technique, hand-drawn frame precision - color_palette: Warm retro primaries, soft cel tones, muted saturation, faded film-stock hues - lighting_setup: Simple cel shadows, bold key light, flat directional shading, rim highlights - material_texture: Painted backgrounds, cel-texture edges, gouache matte finish, vintage grain texture - render_quality: Vintage broadcast-quality anime frame, analogue film grain, classic 80s telecine look, warm filmic softness - spatial_distortion: Retro anime proportions, elongated figures, dramatic forced perspective, classic character staging - atmosphere: Electric, rebellious, anarchic, charged - key_features: Hand-painted background energy, nostalgic visual warmth, expressive character posing, iconic era style - creative_brief: Motorcycles scream through canyons of hand-painted signage and riot-scarred overpasses, a cyberpunk revolution rendered in obsessive architectural density that makes every frame feel like a city that actually breathes. Motion lines fracture the chaos into pure kinetic electricity, the air itself vibrating with rebellion. + aesthetic: Megaciudad neo-retro hiperdensa, con fricción social, velocidad mecánica y saturación de infraestructura. + form_and_line: Línea detallista y nerviosa, arquitectura protagonista y dinámica de desplazamiento a máxima inercia. + color_palette: Violeta eléctrico, verde neón urbano, concreto gris-azul y rojos de señal disruptiva. + lighting_setup: Brillo de cartel superpuesto, flare industrial y sombras recortadas por viaductos elevados. + material_texture: Asfalto caliente, chapa urbana, señalética luminosa y suciedad tecnológica acumulada. + render_quality: Acabado retro de alta complejidad visual con lectura clara de caos estructurado. + spatial_distortion: Capas de ciudad superpuestas (vía, pasarela, torre) para sensación de presión metropolitana constante. + atmosphere: Eléctrica, rebelde, convulsa, adrenalínica. + key_features: Horizonte saturado de ingeniería, movilidad agresiva, densidad de cartelería y pulso de revuelta cívica. + creative_brief: Construye una gramática reusable de urbanismo cyber-retro extremo para cualquier sujeto, priorizando densidad arquitectónica, energía social y movimiento continuo. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-010.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-010.yaml index 995683de..6a944067 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-010.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-010.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 70s-and-80s-retro-anime visualDna: - aesthetic: Round forms, playful action, whimsical journeys, bright comic timing, chubby character shapes, bouncing movement, cartoon dust clouds - form_and_line: Cel-era anime linework, bold contour strokes, vintage cel shading technique, hand-drawn frame precision - color_palette: Warm retro primaries, soft cel tones, muted saturation, faded film-stock hues - lighting_setup: Simple cel shadows, bold key light, flat directional shading, rim highlights - material_texture: Painted backgrounds, cel-texture edges, gouache matte finish, vintage grain texture - render_quality: Vintage broadcast-quality anime frame, analogue film grain, classic 80s telecine look, warm filmic softness - spatial_distortion: Retro anime proportions, elongated figures, dramatic forced perspective, classic character staging - atmosphere: Adventurous, joyful, comedic, light-hearted - key_features: Hand-painted background energy, nostalgic visual warmth, expressive character posing, iconic era style - creative_brief: Bouncy round forms tumble through whimsical landscapes trailing cartoon dust clouds, every chubby-fisted punch landing with the percussive joy of a child's imagination unleashed. The line work stays loose and playful, warm primaries wrapping earnest adventurers in the unshakeable optimism of classic gag-timing. + aesthetic: Aventura marcial cómica de formas redondas, con inocencia física, slapstick amable y energía itinerante. + form_and_line: Trazo cel elástico y expresivo, timing de gag corporal y silueta cartoon de lectura instantánea. + color_palette: Amarillos soleados, verdes vivos, naranjas suaves y azules limpios de viaje clásico. + lighting_setup: Iluminación abierta de aventura diurna, sombra simple y acentos brillantes de humor físico. + material_texture: Polvo caricaturesco, tela simple de viaje, piedra ligera y grano retro optimista. + render_quality: Acabado broadcast cálido con énfasis en claridad cómica y ternura de movimiento. + spatial_distortion: Mundo expansivo y flexible para carrera, salto y choque cómico sin perder legibilidad. + atmosphere: Aventurera, alegre, juguetona, entrañable. + key_features: Proporción redondeada, energía de troupe viajera, beat de broma visual y combate de tono amistoso. + creative_brief: Define una gramática reusable de aventura marcial humorística para cualquier sujeto, enfocada en elasticidad expresiva, optimismo narrativo y ritmo de gag físico. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-011.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-011.yaml index 139bf4f0..a5884aa7 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-011.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-011.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 90s-golden-era visualDna: - aesthetic: Angular anatomy, dramatic power flares, larger-than-life rivalry energy, speed-line backdrops, aura bursts, intense stare-downs, combat grit - form_and_line: Crisp 90s anime linework, defined contours, dynamic action strokes, expressive inking - color_palette: Pastel-neon contrast, bold accent tones, vivid saturation, high-impact color pop - lighting_setup: High-contrast cel lighting, dramatic rim light, stark shadow separation, intense highlights - material_texture: Layered painted backgrounds, filmic grain, watercolor depth, cel overlay texture - render_quality: High quality 90s anime frame, golden era production polish, sharp cel definition, rich color grading - spatial_distortion: Expressive anime anatomy, exaggerated proportions, dynamic foreshortening, kinetic pose design - atmosphere: Epic, explosive, fierce, legendary - key_features: Cinematic cel-era drama, emotional action choreography, iconic silhouette design, bold visual storytelling - creative_brief: Speed lines rip through the frame as rival auras detonate against stark backgrounds, angular anatomy coiled into poses that scream before fists even move. The golden-era cel polish catches every dramatic rim light like lightning frozen mid-strike, friendship and fury indistinguishable in the holy trinity of the shonen stare-down. + aesthetic: Shonen de aura y rivalidad absoluta, con dramatismo noventero de combate iniciático y leyenda juvenil. + form_and_line: Línea angulosa de alta tensión, anatomía cinética y puesta en pose de desafío frontal. + color_palette: Amarillo energía, azul eléctrico, rojo rival y negro profundo de impacto cel clásico. + lighting_setup: Contraste duro con flare de aura, rim agresivo y sombra marcada para potencia corporal. + material_texture: Fondo pintado de explosión abstracta, polvo de choque y grano fílmico de torneo épico. + render_quality: Acabado 90s premium con lectura cristalina de power-up, choque ideológico y catarsis física. + spatial_distortion: Perspectiva forzada, speed lines y compresión de distancia para aumentar urgencia del duelo. + atmosphere: Épica, explosiva, feroz, legendaria. + key_features: Stare-down icónico, aura visible, coreografía de rivalidad y silueta heroica de alto contraste. + creative_brief: Diseña una gramática reusable de batalla de aura generacional para cualquier sujeto, priorizando intensidad emocional, escalada de poder y energía de confrontación. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-012.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-012.yaml index 35d67914..3eb78c5d 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-012.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-012.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 90s-golden-era visualDna: - aesthetic: Transformation glamor, crescent silhouettes, pastel heroism, ornate accessories, magical ribbons, sparkle trails, tiara motifs, lunar backdrops - form_and_line: Crisp 90s anime linework, defined contours, dynamic action strokes, expressive inking - color_palette: Pastel-neon contrast, bold accent tones, vivid saturation, high-impact color pop - lighting_setup: High-contrast cel lighting, dramatic rim light, stark shadow separation, intense highlights - material_texture: Layered painted backgrounds, filmic grain, watercolor depth, cel overlay texture - render_quality: High quality 90s anime frame, golden era production polish, sharp cel definition, rich color grading - spatial_distortion: Expressive anime anatomy, exaggerated proportions, dynamic foreshortening, kinetic pose design - atmosphere: Romantic, empowering, graceful, radiant - key_features: Cinematic cel-era drama, emotional action choreography, iconic silhouette design, bold visual storytelling - creative_brief: Transformation ribbons spiral into crescent silhouettes as pastel heroism blooms across lunar backdrops, tiaras and sparkle trails shimmering with the specific gravity of a 90s girl's bedroom ceiling come to life. Each ornate accessory tells a story of empowerment, the frame saturated with the conviction that grace can defeat darkness. + aesthetic: Magical-team transformacional con glamour lunar, heroísmo pastel y simbolismo ornamental de esperanza colectiva. + form_and_line: Línea 90s fina y elegante, silueta coreográfica de escuadrón y transición de vestuario ritual. + color_palette: Rosas perlados, lilas lunares, celestes suaves y dorados delicados de emblema mágico. + lighting_setup: Halo etéreo de transformación, brillo satinado y contraste limpio de combate luminoso. + material_texture: Satén de traje mágico, cristal de accesorio, partículas de glitter y grano cel de fantasía optimista. + render_quality: Acabado dorado noventero con legibilidad perfecta de metamorfosis, unión y victoria emotiva. + spatial_distortion: Espacio ceremonial abierto para secuencia de presentación, vuelo y cierre en formación. + atmosphere: Romántica, empoderadora, grácil, radiante. + key_features: Motivo creciente, cintas en espiral, composición de equipo y iconografía mística de emblema. + creative_brief: Construye una gramática reusable de transformación mágica coral para cualquier sujeto, equilibrando elegancia ornamental, cohesión de equipo y luz esperanzadora. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-071.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-071.yaml index 7086d5fd..a46c1079 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-071.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-071.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - studio-masterpieces visualDna: - aesthetic: Hayao Miyazaki style, lush hand-painted backgrounds, expressive animation, magical realism, lively spirit bathhouse, hand-painted wonder, expressive mystery, warm eccentric detail, soot-sprites, bath tokens, no-face spirit, radish spirit - form_and_line: Refined feature-animation linework, variable line weight, animation-quality contour, expressive in-betweening - color_palette: Rich painterly hues, nuanced gradients, cinematic color scripting, atmospheric palette depth, emotional color temperature - lighting_setup: Cinematic natural light, atmospheric depth, volumetric god rays, soft aerial perspective, golden-hour warmth - material_texture: Lush painted backgrounds, delicate environmental detail, canvas-like texture, foliage density, hand-painted surface richness - render_quality: Premium animated-film frame, theatrical-grade production polish, nuanced lighting passes, filmic image quality - spatial_distortion: Naturalistic expressive proportions, studied anatomical realism, believable scale relationships, lived-in spatial design - atmosphere: Wonderstruck, magical, enchanting, dreamy - key_features: Poetic visual storytelling, iconic composition mastery, emotional landscape integration, timeless frame artistry - creative_brief: A bathhouse floats between worlds, its corridors crowded with gods who come to wash away the dust of the divine. No-Face drifts through the steam like loneliness given form, hungry for connection but speaking only in gold. Childhood discovers that courage is not the absence of fear but the decision to keep walking through a world that defies understanding. + aesthetic: Fantasía termal liminal con calidez artesanal, humor espiritual y extrañeza amable de cuento iniciático. + form_and_line: Línea de largometraje orgánica, acting expresivo de curiosidad valiente y siluetas de criatura no amenazante. + color_palette: Ocres cálidos de interior, rojos lacados, verdes musgo suaves y dorados de luz húmeda. + lighting_setup: Vapor volumétrico con glow ámbar, faroles difusos y contraste blando de pasillo encantado. + material_texture: Madera barnizada, cerámica húmeda, papel tradicional y fondos pintados con densidad artesanal. + render_quality: Acabado cinematográfico premium con microgesto emocional y atmósfera envolvente continua. + spatial_distortion: Arquitectura laberíntica acogedora con escalas variables para sensación de umbral entre mundos. + atmosphere: Asombrada, mágica, íntima, onírica. + key_features: Espacios rituales vivos, criaturas de diseño entrañable y narrativa visual de descubrimiento ético. + creative_brief: Construye una gramática reusable de fantasía liminal cálida para cualquier sujeto, equilibrando misterio amable, ritual cotidiano y crecimiento emocional. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-072.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-072.yaml index ea5c107a..bab445d2 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-072.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-072.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - studio-masterpieces visualDna: - aesthetic: Ancient forests, sacred beasts, weathered warriors, ecological awe, mythic sorrow, deer-god forest spirit, kodama tree spirits, iron-town conflict, wolf-goddess Moro - form_and_line: Refined feature-animation linework, variable line weight, animation-quality contour, expressive in-betweening - color_palette: Rich painterly hues, nuanced gradients, cinematic color scripting, atmospheric palette depth, emotional color temperature - lighting_setup: Cinematic natural light, atmospheric depth, volumetric god rays, soft aerial perspective, golden-hour warmth - material_texture: Lush painted backgrounds, delicate environmental detail, canvas-like texture, foliage density, hand-painted surface richness - render_quality: Premium animated-film frame, theatrical-grade production polish, nuanced lighting passes, filmic image quality - spatial_distortion: Naturalistic expressive proportions, studied anatomical realism, believable scale relationships, lived-in spatial design - atmosphere: Majestic, elemental, primal, awe-inspiring - key_features: Poetic visual storytelling, iconic composition mastery, emotional landscape integration, timeless frame artistry - creative_brief: The forest does not whisper; it roars through the mouths of wolf-goddesses and walks on the hooves of a god whose footsteps sprout life and death in equal measure. Iron clashes against root, industry against ancient pact, and every wound on the earth bleeds a curse that no blade can cut. Kodama tilt their heads at the violence, waiting to see which side nature will choose. + aesthetic: Epopeya eco-mítica de bosque ancestral, con conflicto civilizatorio y espiritualidad feroz de la naturaleza. + form_and_line: Línea robusta y noble, anatomía heroica contenida y composición de choque entre bestialidad y armadura. + color_palette: Verdes profundos, tierra húmeda, negros de hierro y blancos fantasmales de espíritu del bosque. + lighting_setup: Luz filtrada de dosel con rayos dramáticos, niebla de valle y contrastes de incendio industrial. + material_texture: Corteza viva, piel de bestia, metal forjado y barro bélico sobre fondo pictórico orgánico. + render_quality: Producción cinematográfica de alta gravedad moral, con lectura clara de escala natural y tragedia humana. + spatial_distortion: Grandes claros y gargantas boscosas para enfatizar guerra de mundo viejo vs mundo mecánico. + atmosphere: Majestuosa, elemental, primal, sobrecogedora. + key_features: Iconografía de guardián natural, tensión bosque-industria y narrativa visual de pacto roto. + creative_brief: Diseña una gramática reusable de conflicto eco-épico para cualquier sujeto, fusionando misticismo natural, violencia histórica y peso de decisión moral. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-073.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-073.yaml index 31d45fa8..1ad1cea7 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-073.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-073.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - studio-masterpieces visualDna: - aesthetic: Brass-meets-magic architecture, moving fortress silhouettes, romantic whimsy, skyborne scale, calcifer fire-demon, flying castle-blimp, meadow flower fields, turnip-head scarecrow - form_and_line: Refined feature-animation linework, variable line weight, animation-quality contour, expressive in-betweening - color_palette: Rich painterly hues, nuanced gradients, cinematic color scripting, atmospheric palette depth, emotional color temperature - lighting_setup: Cinematic natural light, atmospheric depth, volumetric god rays, soft aerial perspective, golden-hour warmth - material_texture: Lush painted backgrounds, delicate environmental detail, canvas-like texture, foliage density, hand-painted surface richness - render_quality: Premium animated-film frame, theatrical-grade production polish, nuanced lighting passes, filmic image quality - spatial_distortion: Naturalistic expressive proportions, studied anatomical realism, believable scale relationships, lived-in spatial design - atmosphere: Enchanted, wandering, romantic, whimsical - key_features: Poetic visual storytelling, iconic composition mastery, emotional landscape integration, timeless frame artistry - creative_brief: 'A castle walks on mechanical chicken legs through meadows where magic and brass have learned to coexist like old lovers. Calcifer burns at the heart of it all, a demon whose contract is not servitude but found family. Every gear and spell in this wandering fortress sings the same refrain: home is not a place but the people who stoke your fire.' + aesthetic: Fantasía steampunk romántica de fortaleza errante, con ingeniería encantada y ternura doméstica itinerante. + form_and_line: Línea fluida de cuento adulto, gesto elegante y diseño mecánico-mágico de alta legibilidad. + color_palette: Cobre envejecido, crema cálido, turquesa de cielo abierto y rojos de hogar encendido. + lighting_setup: Contraste suave de interior caldera y exterior ventoso, con glow de fuego vivo y sol de pradera. + material_texture: Latón remachado, yeso doméstico, textiles usados y fondos pintados con pátina artesanal. + render_quality: Acabado fílmico premium que combina grandiosidad móvil y proximidad emocional íntima. + spatial_distortion: Macro-silueta de castillo caminante y micro-espacios habitados para dualidad épica-hogar. + atmosphere: Encantada, nómada, romántica, caprichosa. + key_features: Mecánica poética visible, núcleo ígneo carismático y tensión entre guerra exterior y refugio interior. + creative_brief: Construye una gramática reusable de steampunk afectivo errante para cualquier sujeto, equilibrando escala fantástica, artesanía mecánica y calor de pertenencia. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-074.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-074.yaml index d8068070..de7d669d 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-074.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-074.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - studio-masterpieces visualDna: - aesthetic: Hyper-realistic backgrounds, lens flares, stunning skies, vibrant lighting, hyper-luminous skies, urban longing, reflective youth, emotionally charged sunsets, body-swap comedy, comet-fall tragedy, braided-cord ribbon, twilight magic hour - form_and_line: Refined feature-animation linework, variable line weight, animation-quality contour, expressive in-betweening - color_palette: Rich painterly hues, nuanced gradients, cinematic color scripting, atmospheric palette depth, emotional color temperature - lighting_setup: Cinematic natural light, atmospheric depth, volumetric god rays, soft aerial perspective, golden-hour warmth - material_texture: Lush painted backgrounds, delicate environmental detail, canvas-like texture, foliage density, hand-painted surface richness - render_quality: Premium animated-film frame, theatrical-grade production polish, nuanced lighting passes, filmic image quality - spatial_distortion: Naturalistic expressive proportions, studied anatomical realism, believable scale relationships, lived-in spatial design - atmosphere: Romantic, breathtaking, luminous, aching - key_features: Poetic visual storytelling, iconic composition mastery, emotional landscape integration, timeless frame artistry - creative_brief: 'Two souls trade bodies across time and space, connected by a braided cord that holds memory like water cupped in trembling hands. The sky remembers everything: comets that fall like tears, sunsets that ache with the color of a name you cannot quite recall. At twilight the veil thins, and longing becomes a mountain crater that even time cannot fill.' + aesthetic: Melodrama celeste hiper-luminoso con romanticismo adolescente, memoria fragmentada y monumentalidad atmosférica. + form_and_line: Línea pulida de feature moderno, acting íntimo y composición de horizonte como eje emocional. + color_palette: Azules profundos de crepúsculo, magentas de cielo tardío, naranjas de atardecer y cian cristalino. + lighting_setup: Flare óptico controlado, contraluz de hora mágica y gradientes de cielo de alta saturación sentimental. + material_texture: Superficies urbanas limpias, aire húmedo translúcido y microdetalle ambiental de realismo pictórico. + render_quality: Acabado cinematográfico brillante con foco en luz narrativa y emoción suspendida en paisaje. + spatial_distortion: Escala dual ciudad-pueblo con cortes espaciales que refuerzan distancia afectiva y encuentro improbable. + atmosphere: Romántica, luminosa, nostálgica, doliente. + key_features: Cielo protagonista, motivo de hilo/memoria y contraste entre cotidianidad juvenil y evento cósmico. + creative_brief: Define una gramática reusable de romance cósmico-lumínico para cualquier sujeto, priorizando cielo expresivo, anhelo temporal y delicadeza emocional. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-075.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-075.yaml index 6a577a93..fe1178b5 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-075.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-075.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - studio-masterpieces visualDna: - aesthetic: Rain-soaked city detail, shafts of sunlight, emotional weather, intimate urban scale, sunshine-girl power, perpetual Tokyo rain, rooftop shrines, flooded city finale - form_and_line: Refined feature-animation linework, variable line weight, animation-quality contour, expressive in-betweening - color_palette: Rich painterly hues, nuanced gradients, cinematic color scripting, atmospheric palette depth, emotional color temperature - lighting_setup: Cinematic natural light, atmospheric depth, volumetric god rays, soft aerial perspective, golden-hour warmth - material_texture: Lush painted backgrounds, delicate environmental detail, canvas-like texture, foliage density, hand-painted surface richness - render_quality: Premium animated-film frame, theatrical-grade production polish, nuanced lighting passes, filmic image quality - spatial_distortion: Naturalistic expressive proportions, studied anatomical realism, believable scale relationships, lived-in spatial design - atmosphere: Atmospheric, tender, stormy, hopeful - key_features: Poetic visual storytelling, iconic composition mastery, emotional landscape integration, timeless frame artistry - creative_brief: 'Rain falls endlessly on Tokyo, each drop a small grief that pools into a city-wide melancholy. A girl who prays sunlight into existence carries the weight of every clear sky on shoulders too young for the burden. Water rises around them like a decision being made, and love answers: let the city drown if it means keeping her light alive.' + aesthetic: Romance meteorológico urbano con lluvia persistente, espiritualidad íntima y decisión afectiva contra lo inevitable. + form_and_line: Línea elegante de drama contemporáneo, acting de vulnerabilidad activa y puesta minimal de azotea-ciudad. + color_palette: Grises azulados de tormenta, cian húmedo, ámbar de claro solar y blancos de nube rota. + lighting_setup: Lluvia en contraluz con rayos selectivos, reflejo acuoso en asfalto y halos de tregua lumínica. + material_texture: Cristal mojado, concreto urbano, tela empapada y neblina fina de precipitación continua. + render_quality: Acabado premium de clima narrativo con gran sensibilidad de luz cambiante y gesto íntimo. + spatial_distortion: Espacio vertical de ciudad inundable, con foco en puntos altos de refugio emocional. + atmosphere: Húmeda, tierna, tormentosa, esperanzada. + key_features: Dinámica lluvia-sol, urbanidad íntima, símbolo de plegaria climática y tensión entre sacrificio y deseo. + creative_brief: Diseña una gramática reusable de melodrama pluvial urbano para cualquier sujeto, equilibrando clima emocional, intimidad juvenil y destellos de redención luminosa. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-076.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-076.yaml index aa0407a8..f52fae31 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-076.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-076.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - studio-masterpieces visualDna: - aesthetic: Dream parades, impossible transitions, saturated symbolism, psychological spectacle, DC-mini devices, parade-of-objects, dream-therapy tech, blurring-reality - form_and_line: Refined feature-animation linework, variable line weight, animation-quality contour, expressive in-betweening - color_palette: Rich painterly hues, nuanced gradients, cinematic color scripting, atmospheric palette depth, emotional color temperature - lighting_setup: Cinematic natural light, atmospheric depth, volumetric god rays, soft aerial perspective, golden-hour warmth - material_texture: Lush painted backgrounds, delicate environmental detail, canvas-like texture, foliage density, hand-painted surface richness - render_quality: Premium animated-film frame, theatrical-grade production polish, nuanced lighting passes, filmic image quality - spatial_distortion: Naturalistic expressive proportions, studied anatomical realism, believable scale relationships, lived-in spatial design - atmosphere: Surreal, delirious, kaleidoscopic, mind-bending - key_features: Poetic visual storytelling, iconic composition mastery, emotional landscape integration, timeless frame artistry - creative_brief: A parade of impossible objects marches through the dissolving wall between sleeping and waking — a filmstrip of the subconscious unspooled across latex skies. Every cut is a breath held too long; every scene bleeds into the next like watercolor in rain. Make it feel like a dream you can't quite remember but can't stop chasing. + aesthetic: Surrealismo psico-onírico de collage cinético, con transición imposible y arquitectura mental en fuga. + form_and_line: Línea metamórfica de montaje continuo, silhouettes mutantes y raccord deliberadamente inestable. + color_palette: Saturación carnavalesca, fucsias intensos, amarillos ácidos y negros de vacío subconsciente. + lighting_setup: Destellos abruptos, focos teatrales flotantes y variaciones lumínicas que rompen continuidad realista. + material_texture: Superficie de objeto-ícono, plástico ritual, papel simbólico y grano de sueño inestable. + render_quality: Acabado de feature experimental con ritmo de edición alucinada y claridad de motivo simbólico. + spatial_distortion: Espacios plegables con tránsito entre interior psíquico y escenario urbano sin corte lógico. + atmosphere: Delirante, hipnótica, exuberante, inquietante. + key_features: Desfile de íconos, metamorfosis de plano, lógica de sueño y tensión entre terapia y colapso mental. + creative_brief: Construye una gramática reusable de surrealismo onírico cinematográfico para cualquier sujeto, priorizando transformación continua, choque simbólico y vértigo perceptivo. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-077.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-077.yaml index 096fbd56..463480ac 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-077.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-077.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - studio-masterpieces visualDna: - aesthetic: Unsettling urban realism, fractured self-image, reflective surfaces, intimate paranoia, idol-to-actress descent, stalker voyeurism, internet-age identity, mirrored-doppelganger - form_and_line: Refined feature-animation linework, variable line weight, animation-quality contour, expressive in-betweening - color_palette: Rich painterly hues, nuanced gradients, cinematic color scripting, atmospheric palette depth, emotional color temperature - lighting_setup: Cinematic natural light, atmospheric depth, volumetric god rays, soft aerial perspective, golden-hour warmth - material_texture: Lush painted backgrounds, delicate environmental detail, canvas-like texture, foliage density, hand-painted surface richness - render_quality: Premium animated-film frame, theatrical-grade production polish, nuanced lighting passes, filmic image quality - spatial_distortion: Naturalistic expressive proportions, studied anatomical realism, believable scale relationships, lived-in spatial design - atmosphere: Tense, disorienting, paranoid, chilling - key_features: Poetic visual storytelling, iconic composition mastery, emotional landscape integration, timeless frame artistry - creative_brief: Reflections lie — mirrors show strangers wearing familiar faces, and the self fractures into a thousand shards of performance. Urban neon casts accusation instead of light, turning apartment rooms into psychological interrogation chambers. The camera is watching, and the camera might be you. + aesthetic: Thriller identitario urbano de paranoia íntima, con performance pública y disociación reflejada. + form_and_line: Línea sobria y tensa, acting microexpresivo y composición de encierro psicológico. + color_palette: Neón frío, piel desaturada, rojos de alarma y grises de apartamento vigilado. + lighting_setup: Iluminación clínica nocturna, reflejos espejados agresivos y zonas de sombra de amenaza latente. + material_texture: Cristal, pantalla CRT, maquillaje escénico y superficies domésticas de realismo inquietante. + render_quality: Acabado fílmico de precisión psicológica con montaje de ambigüedad controlada. + spatial_distortion: Interiores comprimidos y capas de reflejo para sensación de yo fragmentado y mirada externa invasiva. + atmosphere: Tensa, desorientadora, paranoica, gélida. + key_features: Motivo de espejo duplicado, cámara-vigilancia implícita y tensión entre personaje público y privado. + creative_brief: Define una gramática reusable de thriller de identidad fracturada para cualquier sujeto, combinando intimidad hostil, vigilancia perceptiva y colapso del autorretrato. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-078.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-078.yaml index 6806fb65..697ed1da 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-078.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-078.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - studio-masterpieces visualDna: - aesthetic: Incredible mechanical detail, fluid animation, neo-Tokyo, iconic light trails, monumental city design, kinetic vehicles, precision detail, civic unrest at scale, psychic-awakening horror, capsule-gang bikes, military-coup chaos, stadium-conclusion - form_and_line: Refined feature-animation linework, variable line weight, animation-quality contour, expressive in-betweening - color_palette: Rich painterly hues, nuanced gradients, cinematic color scripting, atmospheric palette depth, emotional color temperature - lighting_setup: Cinematic natural light, atmospheric depth, volumetric god rays, soft aerial perspective, golden-hour warmth - material_texture: Lush painted backgrounds, delicate environmental detail, canvas-like texture, foliage density, hand-painted surface richness - render_quality: Premium animated-film frame, theatrical-grade production polish, nuanced lighting passes, filmic image quality - spatial_distortion: Naturalistic expressive proportions, studied anatomical realism, believable scale relationships, lived-in spatial design - atmosphere: Monumental, electric, apocalyptic, kinetic - key_features: Poetic visual storytelling, iconic composition mastery, emotional landscape integration, timeless frame artistry - creative_brief: A city of impossible scale breathes neon and exhales revolution, its skyline carved by light-trail scars and crumbling civic monuments. Mechanical flesh and biological steel merge in the screaming vacuum of psychic awakening. Every frame should vibrate with the tension of a world one heartbeat from implosion. + aesthetic: Cyber-apocalipsis megalopolitano de precisión mecánica, violencia juvenil y catástrofe psíquica en escalada. + form_and_line: Línea ultra-densa de ingeniería urbana, movimiento vehicular feroz y anatomía al borde de mutación. + color_palette: Rojos de alarma, violetas nocturnos, cian eléctrico y negros profundos de infraestructura colapsada. + lighting_setup: Neón agresivo, luces de emergencia intermitentes y contraste duro de distopía industrial. + material_texture: Metal remachado, asfalto caliente, concreto fracturado y grano de cel hiperdetallado. + render_quality: Acabado de largometraje técnico de altísima energía con legibilidad de caos sistémico. + spatial_distortion: Escala de megaurbe con capas de autopista, estadio y vacío institucional para sensación de implosión. + atmosphere: Monumental, eléctrica, apocalíptica, cinética. + key_features: Estela lumínica icónica, ingeniería urbana obsesiva y tensión entre tecnología cívica y ruptura biológica. + creative_brief: Diseña una gramática reusable de colapso cyber-urbano extremo para cualquier sujeto, priorizando densidad mecánica, aceleración social y horror de transformación. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-079.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-079.yaml index ef7164c9..e0766bab 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-079.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-079.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - studio-masterpieces visualDna: - aesthetic: Hand-drawn hyper-detailed, extreme speed lines, heavy black shadows, vibrant colors, impossible race tracks, razor speed lines, thick shadow contrast, hand-drawn velocity, alien-racer roster, seven-year-hand-drawn, nitro-boost frames, Yellow Line planet - form_and_line: Refined feature-animation linework, variable line weight, animation-quality contour, expressive in-betweening - color_palette: Rich painterly hues, nuanced gradients, cinematic color scripting, atmospheric palette depth, emotional color temperature - lighting_setup: Cinematic natural light, atmospheric depth, volumetric god rays, soft aerial perspective, golden-hour warmth - material_texture: Lush painted backgrounds, delicate environmental detail, canvas-like texture, foliage density, hand-painted surface richness - render_quality: Premium animated-film frame, theatrical-grade production polish, nuanced lighting passes, filmic image quality - spatial_distortion: Naturalistic expressive proportions, studied anatomical realism, believable scale relationships, lived-in spatial design - atmosphere: Adrenaline, ecstatic, breakneck, explosive - key_features: Poetic visual storytelling, iconic composition mastery, emotional landscape integration, timeless frame artistry - creative_brief: Velocity becomes visible — speed is not movement but a material substance rendered in thick ink and explosive chroma. Hand-drawn frames scream past at escape velocity while shadows carve depth into pure kinetic poetry. Surrender to the ecstasy of the finish line, where God himself might be drag-racing. + aesthetic: Carrera cósmica hipercinética dibujada a pulso, con exceso cromático y culto absoluto a la velocidad. + form_and_line: Trazo brutal de inercia extrema, líneas de fuga violentas y siluetas aerodinámicas de alto contraste. + color_palette: Primarios incendiarios, magentas eléctricos, negros densos y acentos neón de nitro en combustión. + lighting_setup: Flashes de motor, contraluces duros y estallidos lumínicos que enfatizan aceleración sin reposo. + material_texture: Carrocería vibrante, goma abrasada, humo dibujado y grano entintado de energía analógica. + render_quality: Acabado de espectáculo mecánico maximalista con claridad de velocidad y sobrecarga sensorial. + spatial_distortion: Perspectiva túnel y curvatura extrema de pista para sensación de riesgo constante. + atmosphere: Adrenalínica, eufórica, vertiginosa, explosiva. + key_features: Motion-lines dominantes, perfiles de racers excéntricos y dramatización gráfica de boost y derrape. + creative_brief: Construye una gramática reusable de competición cósmica hiperveloz para cualquier sujeto, priorizando energía dibujada, riesgo visual y clímax de pista imposible. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-080.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-080.yaml index 535dbe0b..79dfe9a4 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-080.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-080.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - studio-masterpieces visualDna: - aesthetic: Studio 4°C style, incredibly fluid water animation, cosmic ocean imagery, highly detailed eyes, flowing water motion, spiritual scale, delicate faces, aquarium-mystery, meteor-fall origin, whale-song communion, oceanic-cosmos merge - form_and_line: Refined feature-animation linework, variable line weight, animation-quality contour, expressive in-betweening - color_palette: Rich painterly hues, nuanced gradients, cinematic color scripting, atmospheric palette depth, emotional color temperature - lighting_setup: Cinematic natural light, atmospheric depth, volumetric god rays, soft aerial perspective, golden-hour warmth - material_texture: Lush painted backgrounds, delicate environmental detail, canvas-like texture, foliage density, hand-painted surface richness - render_quality: Premium animated-film frame, theatrical-grade production polish, nuanced lighting passes, filmic image quality - spatial_distortion: Naturalistic expressive proportions, studied anatomical realism, believable scale relationships, lived-in spatial design - atmosphere: Mystical, aquatic, ethereal, cosmic - key_features: Poetic visual storytelling, iconic composition mastery, emotional landscape integration, timeless frame artistry - creative_brief: Water remembers everything — the ocean is a memory palace where whale songs echo ancient truths and human eyes hold the depth of cosmos. Fluid animation dissolves the boundary between girl and sea, between body and universe. Let each frame float untethered, suspended in the amniotic glow of creation itself. + aesthetic: Lirismo oceánico-cósmico de contemplación mística, con biología marina y trascendencia sensorial. + form_and_line: Línea delicada y fluida, anatomía etérea y movimiento acuático continuo de baja fricción. + color_palette: Turquesas abisales, azules ultraprofundos, plateados lunares y destellos bioluminiscentes. + lighting_setup: Luz submarina difusa, caústicas suaves y halos celestes que funden agua y firmamento. + material_texture: Película de agua translúcida, piel húmeda luminosa, partículas suspendidas y fondos de profundidad orgánica. + render_quality: Acabado cinematográfico de alta pureza visual con foco en fluidez y silencio emocional. + spatial_distortion: Escalas líquidas entre macrocosmos marino y proximidad íntima para experiencia de inmersión total. + atmosphere: Mística, acuática, etérea, cósmica. + key_features: Movimiento de marea coreográfico, mirada contemplativa y fusión iconográfica de océano-universo. + creative_brief: Define una gramática reusable de espiritualidad oceánica cósmica para cualquier sujeto, equilibrando fluidez material, asombro contemplativo y resonancia trascendente. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-141.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-141.yaml index a97d9e72..fcb1d426 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-141.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-141.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 2000s-classics visualDna: - aesthetic: Halloween-town architecture, moon-face grins, striped fashion silhouettes, weapon-partner action, Tim-Burton-meets-shonen rhythm, exaggerated soul-wave cool - form_and_line: Clean early-digital anime linework, smooth vector-like strokes, digital ink precision, crisp contour clarity - color_palette: Saturated digital-cel colors, vibrant screen tones, punchy primaries, early HD chroma range - lighting_setup: Polished anime highlights, soft gradient shading, balanced key/fill, subtle rim glow - material_texture: Clean backgrounds, early-digital polish, smooth matte surfaces, subtle noise grain - render_quality: Early-2000s anime production frame, digital cel composite, clean rendering, smooth color blending - spatial_distortion: Dynamic shonen proportions, bold perspective angles, action-ready framing, stretched energy poses - atmosphere: Spooky, stylish, energetic, mischievous - key_features: Moon-face iconography, striped accessories, weapon forms, playful gothic backdrops, rhythm-heavy action poses - creative_brief: The moon wears a grin it did not earn, and the school hallway bends into a nightmare carnival where weapons are partners sharing the same pulse. Stripes, stitches, and crescent shadows compose a grammar of spooky cool. Halloween never ended — it just enrolled in the academy and started a band. + aesthetic: Gothic pop escolar con humor macabro, ritmo punk sobrenatural y dinámica arma-compañero de alta energía. + form_and_line: Línea digital afilada con siluetas estilizadas, gestualidad exagerada y coreografía de combate musicalizada. + color_palette: Morados de noche de Halloween, naranjas encendidos, negros tinta y acentos cian de resonancia espiritual. + lighting_setup: Contrastes teatrales con glow espectral, sombras planas expresivas y rim frío en bordes de arma. + material_texture: Acabados limpios de era digital, superficies góticas estilizadas y grano leve para tono siniestro-pop. + render_quality: Producción premium early-2000s con lectura inmediata de pose, beat visual y personalidad de dúo. + spatial_distortion: Perspectiva dinámica de pasillo y plaza académica con deformación juguetona en golpes de alma. + atmosphere: Traviesa, spooky, vibrante, desafiante. + key_features: Luna expresiva icónica, accesorios a rayas, morfologías arma-humana y arquitectura de academia-carnaval. + creative_brief: Diseña una gramática reusable de acción gótica juvenil para cualquier sujeto, combinando iconografía de Halloween, resonancia de alma y energía de banda rebelde. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-145.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-145.yaml index 9951d2b2..e9fd9e43 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-145.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-145.yaml @@ -12,20 +12,16 @@ tags: - anime-classics-and-prestige - 2000s-classics visualDna: - aesthetic: Aerial surf mecha, teenage longing, counterculture energy, sunset cloud seas, board-riding robots, bright emotional rebellion, sky-soaked romance and motion - form_and_line: Fluid airborne contouring, aerodynamic mecha-curve language, youth-driven character silhouettes, clean digital inking - color_palette: Sky-heavy cyans, sunset magentas, bright surf-accent neons, and optimistic high-chroma atmospheric transitions - lighting_setup: Golden-hour sky backlight, polished digital gradients, cloud-reflected fill, horizon rim streaks - material_texture: Semi-gloss board surfaces, smooth digital-cel overlays, airy cloud-volume softness, light filmic noise - render_quality: Mid-2000s high-polish anime compositing with motion-rich aerial readability and emotionally bright tonal control - spatial_distortion: Arc-based flight perspective, sweeping diagonal motion lanes, gravity-light framing with open sky depth - atmosphere: Airy, romantic, youthful, free - key_features: Air-surf mecha choreography, cloud-ocean staging, youth-culture fashion coding, luminous horizon kinetics - creative_brief: >- - Keep Eureka Seven’s identity in the fusion of romantic youth energy and - aerial mecha flow: open skies, surf-like motion grammar, and emotionally - saturated color transitions. The style should privilege lift, momentum, - and longing over ground-bound combat staging. + aesthetic: Mecha aéreo romántico de juventud contracultural, con sensación de vuelo libre y melancolía luminosa. + form_and_line: Contornos fluidos aerodinámicos, siluetas de rider y mecha con curvas de surf y cinética de arco. + color_palette: Cianes de cielo abierto, magentas de atardecer, neones de tabla y gradientes de alta saturación optimista. + lighting_setup: Backlight dorado de horizonte, relleno por nube reflectante y streaks de rim para velocidad en altura. + material_texture: Superficies semibrillo de board, compositing digital pulido y volumen nuboso suave de alto recorrido. + render_quality: Calidad premium mid-2000s con lectura aérea clara y control emocional vibrante. + spatial_distortion: Perspectiva de vuelo diagonal, profundidad de océano de nubes y framing liviano de gravedad reducida. + atmosphere: Aérea, romántica, juvenil, liberadora. + key_features: Coreografía de air-surf mecha, skyline de nubes, códigos de subcultura y dinámica de impulso continuo. + creative_brief: Define una gramática reusable de mecha romance aéreo para cualquier sujeto, priorizando lift, momentum y anhelo sobre combate terrestre. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-146.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-146.yaml index 727d980a..7664319b 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-146.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-146.yaml @@ -12,20 +12,16 @@ tags: - anime-classics-and-prestige - 2000s-classics visualDna: - aesthetic: Victorian mansion elegance, demonic contract refinement, silverware precision, black-tailcoat poise, aristocratic morbidity, candlelit service turned occult theater - form_and_line: Aristocratic silhouette precision, lace-tailcoat contour elegance, decorative interior line filigree, controlled digital inking - color_palette: Ebony-black tailoring, wine and burgundy shadows, candle-amber highlights, silver service accents, desaturated gothic neutrals - lighting_setup: Candle-biased practical pools, manor interior falloff, polished silver specular flashes, theatrical low-key gradients - material_texture: Velvet drape depth, lacquered wood sheen, polished silverware edges, crisp fabric creasing, smooth digital compositing - render_quality: Refined 2000s gothic-anime finish with high costume readability, luxe interior detailing, and restrained digital glow - spatial_distortion: Chamber-stage composition with vertical elegance, servant-master distance coding, and ceremonial gesture framing - atmosphere: Elegant, sinister, poised, decadent - key_features: Tailcoat-and-lace silhouette grammar, candlelit gothic interiors, ritual service props, contract-era visual symbolism - creative_brief: >- - Preserve Black Butler through ceremonial elegance, gothic domestic - opulence, and razor-clean costume language. The style should read as poised - aristocratic menace—precise, composed, and darkly theatrical—without - reducing it to generic Victorian horror. + aesthetic: Gothic aristocrático ceremonial con amenaza contenida, lujo doméstico y teatralidad de pacto oculto. + form_and_line: Silueta de mayordomo impecable, línea decorativa de interior y acting de protocolo frío y exacto. + color_palette: Negros ébano, burdeos profundos, ámbar de vela y plateados especulares de servicio. + lighting_setup: Piscinas de luz candlelit, gradiente low-key de mansión y destello metálico de cubertería ritual. + material_texture: Terciopelo, madera lacada, plata pulida y pliegue textil nítido con acabado digital sobrio. + render_quality: Refinamiento premium 2000s con alta legibilidad de vestuario y atmósfera de opulencia sin exceso. + spatial_distortion: Composición de cámara-salón con distancia amo-servidor y verticalidad elegante de escena teatral. + atmosphere: Elegante, siniestra, controlada, decadente. + key_features: Gramática tailcoat y encaje, interiores góticos iluminados a vela y utilería de servicio ritual. + creative_brief: Construye una gramática reusable de amenaza aristocrática gótica para cualquier sujeto, manteniendo precisión ceremonial y opulencia oscura. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-147.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-147.yaml index 381b7eee..e0922d25 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-147.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-147.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 2000s-classics visualDna: - aesthetic: Compact school romance with emotional blunt-force trauma, winter streets, domestic apartment warmth, tiny tiger hostility, youth awkwardness sharpened into comedy and heartbreak - form_and_line: Clean early-digital anime linework, smooth vector-like strokes, digital ink precision, crisp contour clarity - color_palette: Saturated digital-cel colors, vibrant screen tones, punchy primaries, early HD chroma range - lighting_setup: Polished anime highlights, soft gradient shading, balanced key/fill, subtle rim glow - material_texture: Clean backgrounds, early-digital polish, smooth matte surfaces, subtle noise grain - render_quality: Early-2000s anime production frame, digital cel composite, clean rendering, smooth color blending - spatial_distortion: Dynamic shonen proportions, bold perspective angles, action-ready framing, stretched energy poses - atmosphere: Combative, sweet, wintery, sincere - key_features: School-uniform warmth, winter streetlights, apartment clutter intimacy, sharp reaction acting, emotional proximity framing - creative_brief: Winter narrows the world to the space between two people who refuse to admit the distance is closing, harsh words serving as frost on something warmer underneath. Every slammed door and sharp retort is just grammar for a feeling too large for the vocabulary of youth. The coldest season knows best how to make a heart burn. + aesthetic: Romcom escolar invernal de fricción emocional, con ternura escondida bajo choque verbal y torpeza juvenil. + form_and_line: Línea digital compacta, acting reactivo intenso y siluetas cercanas para conflicto afectivo continuo. + color_palette: Azules fríos de calle, naranjas cálidos de interior, rojos suaves de rubor emocional y grises de invierno. + lighting_setup: Contraste entre farola nocturna fría y luz doméstica cálida, con gradientes suaves de cercanía íntima. + material_texture: Tejido de uniforme, superficies de apartamento vivido y acabado limpio early-HD con ruido sutil. + render_quality: Producción premium 2000s con excelente lectura de timing cómico y desgarro sentimental. + spatial_distortion: Espacios escolares y domésticos comprimidos para enfatizar proximidad, choque y reconciliación. + atmosphere: Combativa, dulce, invernal, honesta. + key_features: Dúo tsundere en tensión, luminaria de invierno, clutter íntimo y acting de distancia que se acorta. + creative_brief: Diseña una gramática reusable de romance de invierno conflictivo para cualquier sujeto, equilibrando humor cortante y calidez emocional. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-149.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-149.yaml index 9127253c..68ce0cea 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-149.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-149.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 2000s-classics visualDna: - aesthetic: School-comedy absurdity maturing into ring-battle mafia spectacle, baby-suited tutor menace, bright comedy turned clan action, family crest iconography, hyper-youthful underworld energy - form_and_line: Clean early-digital anime linework, smooth vector-like strokes, digital ink precision, crisp contour clarity - color_palette: Saturated digital-cel colors, vibrant screen tones, punchy primaries, early HD chroma range - lighting_setup: Polished anime highlights, soft gradient shading, balanced key/fill, subtle rim glow - material_texture: Clean backgrounds, early-digital polish, smooth matte surfaces, subtle noise grain - render_quality: Early-2000s anime production frame, digital cel composite, clean rendering, smooth color blending - spatial_distortion: Dynamic shonen proportions, bold perspective angles, action-ready framing, stretched energy poses - atmosphere: Rowdy, comic, fiery, loyal - key_features: Family emblems, ring-battle effects, school-to-mafia contrast, eccentric mentor framing, bright clan poses - creative_brief: A baby in a suit issues orders and the schoolyard becomes a crime family, rings flashing promises between exams and explosions. Loyalties are tested in the space between lunch period and life-or-death clan warfare. Growing up is just another gang war with better accessories and much higher stakes. + aesthetic: Comedia mafiosa escolar en escalada shonen, con iconografía de clan y rito de anillos de alta energía. + form_and_line: Línea digital expresiva, pose de pandilla juvenil y transición visual de gag a combate formal de familia. + color_palette: Primarios intensos de acción 2000s, negros de traje mafioso y acentos fuego para ring-battle. + lighting_setup: Highlights pulidos de comedia, contraste medio de arena y rim energético en activación de anillos. + material_texture: Uniformes escolares, telas de traje, emblemas de familia y compositing digital limpio con grano mínimo. + render_quality: Acabado premium de shonen mafioso con lectura clara de jerarquía de clan y evolución de tono. + spatial_distortion: Escena híbrida escuela-submundo con encuadres de juramento, duelo y trabajo en equipo. + atmosphere: Ruidosa, cómica, leal, incendiaria. + key_features: Motivos heráldicos de familia, mentor excéntrico central, efectos de anillo y contraste aula-mafia. + creative_brief: Define una gramática reusable de ascenso mafioso juvenil para cualquier sujeto, combinando sátira escolar, ritual de clan y acción de pertenencia. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-150.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-150.yaml index 14b05e0d..4fb7eb52 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-150.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-150.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 2000s-classics visualDna: - aesthetic: School life folding into ember-eyed battle fantasy, tiny-tsundere severity, floating flame fragments, hidden-world combat, early-digital supernatural romance tension - form_and_line: Clean early-digital anime linework, smooth vector-like strokes, digital ink precision, crisp contour clarity - color_palette: Saturated digital-cel colors, vibrant screen tones, punchy primaries, early HD chroma range - lighting_setup: Polished anime highlights, soft gradient shading, balanced key/fill, subtle rim glow - material_texture: Clean backgrounds, early-digital polish, smooth matte surfaces, subtle noise grain - render_quality: Early-2000s anime production frame, digital cel composite, clean rendering, smooth color blending - spatial_distortion: Dynamic shonen proportions, bold perspective angles, action-ready framing, stretched energy poses - atmosphere: Fiery, severe, romantic, hidden - key_features: Ember particles, school-uniform contrast, sword-and-flame poses, hidden-world overlays, compact but intense framing - creative_brief: Embers drift through the classroom window, trailing the scent of a world hidden one dimension over where crimson eyes are the only warning before steel meets destiny. Her grip on the sword says this is not the first school year she has spent at war. Twilight is when the ordinary bleeds, and the boundary between timelines catches fire. + aesthetic: Fantasía de combate sobrenatural escolar en clave early-2000s, con tensión romántica y severidad tsundere de alta combustión emocional. + form_and_line: Línea digital limpia y compacta, silueta pequeña pero dominante, poses de espada frontal y acting de intensidad contenida. + color_palette: Rojos brasa, naranjas ígneos, azules de uniforme y negros de portal oculto con saturación nítida. + lighting_setup: Glow de fuego sobrenatural, key de atardecer urbano y gradiente suave típico de compositing digital de época. + material_texture: Superficies escolares limpias, partículas de ceniza flotante y acabado cel-digital con ruido sutil. + render_quality: Acabado premium de acción romántica 2000s con lectura inmediata de choque mundo ordinario-mundo oculto. + spatial_distortion: Espacio cotidiano tensionado por overlays dimensionales y encuadre cerrado de duelo en transición crepuscular. + atmosphere: Ígnea, estricta, romántica, secreta. + key_features: Ojos carmesí, partículas de ember, contraste uniforme-arma y superposición de plano oculto. + creative_brief: Diseña una gramática reusable de school-fantasy incendiaria para cualquier sujeto, combinando iconografía escolar, fuego arcano y romance de frontera dimensional. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-151.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-151.yaml index 6674cf14..ddd0f39a 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-151.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-151.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 2000s-classics visualDna: - aesthetic: Cheerful school-club energy with cosmological instability humming underneath, bright clubroom compositions, eccentric youth charisma, sudden genre fracture between slice-of-life and godlike anomaly - form_and_line: Clean early-digital anime linework, smooth vector-like strokes, digital ink precision, crisp contour clarity - color_palette: Saturated digital-cel colors, vibrant screen tones, punchy primaries, early HD chroma range - lighting_setup: Polished anime highlights, soft gradient shading, balanced key/fill, subtle rim glow - material_texture: Clean backgrounds, early-digital polish, smooth matte surfaces, subtle noise grain - render_quality: Early-2000s anime production frame, digital cel composite, clean rendering, smooth color blending - spatial_distortion: Dynamic shonen proportions, bold perspective angles, action-ready framing, stretched energy poses - atmosphere: Playful, uncanny, bright, meta - key_features: Clubroom clutter, eccentric leader posing, school-lifestyle brightness, reality-bend hints, ensemble body language - creative_brief: A schoolgirl who is god without knowing it, a clubroom where the ordinary vibrates at mythic frequency. Boredom bends reality sideways, and the most dangerous force in the universe is a teenage whim dressed in a sailor uniform. Every beam of afternoon light carries the faint tremor of creation on the verge of rewriting itself. + aesthetic: Slice-of-life escolar con anomalía cosmológica latente, donde comedia de club y metafísica inestable conviven en el mismo plano. + form_and_line: Trazado digital pulcro de ensemble juvenil, acting excéntrico de líder central y staging de comedia con quiebre súbito. + color_palette: Amarillos de aula, azules vivos de uniforme, acentos primarios pop y destellos extraños de ruptura dimensional. + lighting_setup: Luz de tarde escolar brillante con gradientes suaves y micro-anomalías lumínicas que sugieren realidad maleable. + material_texture: Utilería de clubroom abarrotada, superficies limpias de era digital y ruido leve de broadcast 2000s. + render_quality: Acabado premium meta-escolar con legibilidad alta del tono híbrido entre cotidianeidad y amenaza cósmica. + spatial_distortion: Espacio de aula estable con microdesplazamientos perceptivos cuando emerge la capa de distorsión narrativa. + atmosphere: Lúdica, inquietante, brillante, meta. + key_features: Clubroom caótico, líder carismática dominante, ensemble reactivo y señales de reality bend en fondo. + creative_brief: Crea una gramática reusable de comedia escolar cosmológica para cualquier sujeto, equilibrando energía adolescente y ruptura de realidad de bajo umbral. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-152.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-152.yaml index 64602e43..03ee24ab 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-152.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-152.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 2000s-classics visualDna: - aesthetic: Samurai-comedy nonsense in a sci-fi Edo city, deadpan punchlines, absurd parodies, wooden swords and vending machines sharing one street, lazy hero swagger, chaos with heart - form_and_line: Clean early-digital anime linework, smooth vector-like strokes, digital ink precision, crisp contour clarity - color_palette: Saturated digital-cel colors, vibrant screen tones, punchy primaries, early HD chroma range - lighting_setup: Polished anime highlights, soft gradient shading, balanced key/fill, subtle rim glow - material_texture: Clean backgrounds, early-digital polish, smooth matte surfaces, subtle noise grain - render_quality: Early-2000s anime production frame, digital cel composite, clean rendering, smooth color blending - spatial_distortion: Dynamic shonen proportions, bold perspective angles, action-ready framing, stretched energy poses - atmosphere: Irreverent, chaotic, lovable, stupid-smart - key_features: Anachronistic prop mashups, comedic reaction faces, lazy hero postures, sci-fi Edo streets, parody-ready staging - creative_brief: The sacred art of nonsense, practiced daily on streets where wooden swords rest beside vending machines and aliens run neighborhood shops. A lazy hero who has seen too much to take anything seriously turns every crisis into a punchline and every punchline into a life lesson whispered between explosions. Chaos is not the enemy here; it is the native language. + aesthetic: Comedia samurái sci-fi irreverente de anacronismo total, con corazón dramático escondido bajo parodia constante. + form_and_line: Línea digital expresiva para reacción cómica extrema, postura holgazana de antihéroe y ritmo visual de gag. + color_palette: Saturaciones pop de ciudad Edo-futurista, neones moderados y tierra urbana tradicional en choque continuo. + lighting_setup: Iluminación flexible de comedia-acción, highlights pulidos y contraste medio para sostener cambios de tono abruptos. + material_texture: Madera de bokken, metal de utilería urbana, señalética híbrida y acabados limpios de producción 2000s. + render_quality: Acabado premium de parodia-action con legibilidad alta de chiste, acción y microdrama humano. + spatial_distortion: Escena urbana modular para setpiece episódico, con perspectivas exageradas en punchlines y duelos. + atmosphere: Irreverente, caótica, entrañable, astuta. + key_features: Mashup de props históricos-modernos, acting deadpan, heroísmo perezoso y staging de caos con timing preciso. + creative_brief: Diseña una gramática reusable de comedia anacrónica samurái-sci-fi para cualquier sujeto, mezclando absurdo, swagger y humanidad subyacente. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-153.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-153.yaml index fa2b727b..8cea0e59 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-153.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-153.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 2000s-classics visualDna: - aesthetic: Exorcist uniforms, cursed machinery, gothic Europe, innocence weaponry, melancholy stained-glass combat, youthful burden carried through dark sacred spaces - form_and_line: Clean early-digital anime linework, smooth vector-like strokes, digital ink precision, crisp contour clarity - color_palette: Saturated digital-cel colors, vibrant screen tones, punchy primaries, early HD chroma range - lighting_setup: Polished anime highlights, soft gradient shading, balanced key/fill, subtle rim glow - material_texture: Clean backgrounds, early-digital polish, smooth matte surfaces, subtle noise grain - render_quality: Early-2000s anime production frame, digital cel composite, clean rendering, smooth color blending - spatial_distortion: Dynamic shonen proportions, bold perspective angles, action-ready framing, stretched energy poses - atmosphere: Somber, holy, cursed, determined - key_features: Exorcist coat silhouettes, sacred-tech weapons, cathedral depth, mourning-eyed expressions, curse-mark motifs - creative_brief: Cathedrals that hum with the quiet prayer of cursed machinery, stained glass filtering light onto children carrying weapons they were never meant to hold. Innocence weaponized, melancholy consecrated, every exorcism a negotiation between damnation and grace conducted through iron and sacrament. The holy and the mechanical share the same breath here. + aesthetic: Gótico exorcista tecno-sacral, con juventud marcada por maldición y liturgia bélica en paisajes de catedral sombría. + form_and_line: Línea digital fina con silueta de abrigo exorcista, gesto melancólico y lenguaje de arma sacramental. + color_palette: Azules fríos de nave, granates de vitral, marfiles sagrados y negros de condena mecánica. + lighting_setup: Luz filtrada de vitrales, rim tenue sobre insignias y sombras graduales de interior sacro-industrial. + material_texture: Piedra gótica, metal de maquinaria maldita, tela pesada de uniforme y pátina de polvo eclesial. + render_quality: Acabado premium dark-2000s con equilibrio entre combate ritual y dolor juvenil persistente. + spatial_distortion: Profundidad de nave catedralicia con compresión de corredor para enfatizar carga espiritual y amenaza. + atmosphere: Lúgubre, sagrada, maldita, decidida. + key_features: Abrigo exorcista, iconografía de inocencia-armada, marcas de maldición y profundidad de templo. + creative_brief: Construye una gramática reusable de exorcismo tecno-gótico para cualquier sujeto, mezclando solemnidad religiosa, ingeniería maldita y determinación juvenil. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-154.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-154.yaml index e85d5c58..0a587c58 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-154.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-154.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 2000s-classics visualDna: - aesthetic: Military logistics crossing with melancholy vampiric violence, night trains, schoolgirl burden, sharp blades against modern corridors, secret-war seriousness - form_and_line: Clean early-digital anime linework, smooth vector-like strokes, digital ink precision, crisp contour clarity - color_palette: Saturated digital-cel colors, vibrant screen tones, punchy primaries, early HD chroma range - lighting_setup: Polished anime highlights, soft gradient shading, balanced key/fill, subtle rim glow - material_texture: Clean backgrounds, early-digital polish, smooth matte surfaces, subtle noise grain - render_quality: Early-2000s anime production frame, digital cel composite, clean rendering, smooth color blending - spatial_distortion: Dynamic shonen proportions, bold perspective angles, action-ready framing, stretched energy poses - atmosphere: Bleak, disciplined, nocturnal, tragic - key_features: Sword-bearing schoolgirl contrast, military convoy spaces, vampiric motion blur, sterile interiors, night-travel framing - creative_brief: War travels by night train, blood stored in refrigerated cargo, a schoolgirl sword cutting through decades of silence. The military machine demands discipline, but the heart demands blood, and somewhere in the sterile corridors between orders and instinct, a girl learns that the blade she carries answers to something older than any chain of command. + aesthetic: Thriller vampírico militar de carretera nocturna, con disciplina operativa y tragedia íntima en tensión permanente. + form_and_line: Trazado limpio de acción táctica, silueta escolar-armada contrastante y movimiento cortante de combate cercano. + color_palette: Azules hospitalarios, rojos hemáticos contenidos, grises de convoy y blancos fríos de interior estéril. + lighting_setup: Iluminación fluorescente de pasillo/logística, contraluces de tren nocturno y highlights de hoja metálica. + material_texture: Acero clínico, vidrio de transporte, textil de uniforme y superficies limpias de infraestructura militar. + render_quality: Acabado premium dark-action 2000s con legibilidad de operación y peso emocional de misión secreta. + spatial_distortion: Composición longitudinal de tren y corredor para reforzar viaje forzado y encierro psicológico. + atmosphere: Desolada, disciplinada, nocturna, trágica. + key_features: Protagonista escolar con katana, logística militar en tránsito, iconografía hemática y frame de guerra oculta. + creative_brief: Diseña una gramática reusable de vampirismo militar moderno para cualquier sujeto, combinando limpieza táctica, melancolía y violencia controlada de noche. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-155.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-155.yaml index 5c11aea2..003218c0 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-155.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-155.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 2000s-classics visualDna: - aesthetic: 2000s magic-academy comedy, aristocratic fantasy schools, pink-haired tantrum energy, summoned-familiar romance, wand-duel pageantry, playful noblesse fantasy - form_and_line: Clean early-digital anime linework, smooth vector-like strokes, digital ink precision, crisp contour clarity - color_palette: Saturated digital-cel colors, vibrant screen tones, punchy primaries, early HD chroma range - lighting_setup: Polished anime highlights, soft gradient shading, balanced key/fill, subtle rim glow - material_texture: Clean backgrounds, early-digital polish, smooth matte surfaces, subtle noise grain - render_quality: Early-2000s anime production frame, digital cel composite, clean rendering, smooth color blending - spatial_distortion: Dynamic shonen proportions, bold perspective angles, action-ready framing, stretched energy poses - atmosphere: Comic, magical, bratty, romantic - key_features: Magic-school uniforms, aristocratic interiors, wand-duel staging, summoned-companion motifs, tsundere expression acting - creative_brief: A summoning spell that went sideways, a boy from another world bound to a tiny aristocrat with a temper larger than her magical talent. Halls of privilege shake with the thunder of her indignation, and every wand duel is a courtship conducted through explosions. Magic here is less about power and more about the impossible algebra of two people learning to share a heart. + aesthetic: Comedia romántica de academia mágica aristocrática, con energía tsundere y espectáculo de duelo encantado. + form_and_line: Línea digital brillante, acting exagerado de conflicto afectivo y poses de varita de alto dramatismo cómico. + color_palette: Rosas nobles, azules de uniforme, dorados de castillo y blancos de hechizo de gran saturación. + lighting_setup: Luz de salón mágico pulida, destellos de conjuro y gradientes suaves de producción 2000s. + material_texture: Piedra de academia, ornamento aristocrático, textiles de uniforme y brillo limpio de compositing digital. + render_quality: Acabado premium romcom-fantasy con legibilidad de gag romántico y duelo ceremonial. + spatial_distortion: Espacio de campus nobiliario con teatralidad de pasillo y arena de magia para choques relacionales. + atmosphere: Cómica, mágica, caprichosa, romántica. + key_features: Uniforme de academia, motivo familiar invocado, duelos de varita y expresividad tsundere central. + creative_brief: Construye una gramática reusable de academia mágica tsundere para cualquier sujeto, equilibrando nobleza lúdica, hechicería pop y romance conflictivo. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-156.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-156.yaml index 528812a5..c930d044 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-156.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-156.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 2000s-classics visualDna: - aesthetic: Cute rural summer shattered by paranoia, cicada noise, festival masks, friendship turning knife-edge, hot village afternoons that hide catastrophic loops and dread - form_and_line: Clean early-digital anime linework, smooth vector-like strokes, digital ink precision, crisp contour clarity - color_palette: Saturated digital-cel colors, vibrant screen tones, punchy primaries, early HD chroma range - lighting_setup: Polished anime highlights, soft gradient shading, balanced key/fill, subtle rim glow - material_texture: Clean backgrounds, early-digital polish, smooth matte surfaces, subtle noise grain - render_quality: Early-2000s anime production frame, digital cel composite, clean rendering, smooth color blending - spatial_distortion: Dynamic shonen proportions, bold perspective angles, action-ready framing, stretched energy poses - atmosphere: Pastoral, paranoid, feverish, terrifying - key_features: Village festival imagery, cute-to-horror contrast, cicada-summer palette, breakdown expressions, shrine-and-home staging - creative_brief: Summer that loops infinitely, cicadas screaming the same hour over and over until friendship curdles into suspicion and festival masks hide faces that may no longer be human. A village so small that the sky presses down on it, so sweet that the rot must be hidden somewhere beneath the rice fields. Trust becomes the deadliest currency when the calendar resets and someone you love is holding the knife. + aesthetic: Horror rural de bucle veraniego, con fachada moe quebrada por paranoia comunitaria y colapso de confianza. + form_and_line: Trazado cute limpio con ruptura facial extrema en crisis, alternando inocencia visual y violencia psicológica. + color_palette: Verdes de aldea estival, rojos de alarma, amarillos de tarde densa y sombras violetas de fiebre. + lighting_setup: Luz solar opresiva de verano con transiciones abruptas a contraste ansioso en momentos de breakdown. + material_texture: Madera de santuario, tierra de pueblo, telas festivas y limpieza digital que potencia el quiebre tonal. + render_quality: Acabado premium horror-2000s con alto contraste cute-to-terror y claridad de escalada paranoica. + spatial_distortion: Espacio aldeano cerrado con repetición de rutas, encuadre de bucle y presión del entorno sobre personajes. + atmosphere: Pastoril, paranoica, febril, aterradora. + key_features: Máscaras de festival, cigarras como pulso sonoro visual, expresiones de quiebre y staging santuario-casa. + creative_brief: Diseña una gramática reusable de horror estival en bucle para cualquier sujeto, combinando estética tierna, repetición ritual y terror de sospecha íntima. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-157.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-157.yaml index ec1b6b73..2f0f909b 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-157.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-157.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 2000s-classics visualDna: - aesthetic: Motorized inline-skate gangs, rooftop freedom, wind-carved city movement, youth bravado, punk-tech speed culture, kinetic parkour and impossible airtime - form_and_line: Clean early-digital anime linework, smooth vector-like strokes, digital ink precision, crisp contour clarity - color_palette: Saturated digital-cel colors, vibrant screen tones, punchy primaries, early HD chroma range - lighting_setup: Polished anime highlights, soft gradient shading, balanced key/fill, subtle rim glow - material_texture: Clean backgrounds, early-digital polish, smooth matte surfaces, subtle noise grain - render_quality: Early-2000s anime production frame, digital cel composite, clean rendering, smooth color blending - spatial_distortion: Dynamic shonen proportions, bold perspective angles, action-ready framing, stretched energy poses - atmosphere: Fast, rebellious, flashy, weightless - key_features: Skate silhouettes, rooftop city motion, street-gang fashion, wind effects, airborne action poses - creative_brief: Gravity is a suggestion that these streets never accepted, rooftops becoming launch pads and sky becoming territory for those brave enough to claim it. Motorized wheels sing a neon hymn across the city skyline, and every jump is a declaration of sovereignty over the vertical world. Speed is not escape here; speed is identity. + aesthetic: Cultura speed-tech urbana de pandilla aérea, con rebeldía juvenil y libertad vertical como identidad central. + form_and_line: Línea dinámica de parkour sobre ruedas, diagonales de impulso y siluetas aerodinámicas de alta energía. + color_palette: Cianes eléctricos, naranjas de fricción, morados urbanos y negros de asfalto nocturno. + lighting_setup: Iluminación de ciudad en movimiento con brillos de velocidad, gradiente digital pulido y rim en salto. + material_texture: Concreto de azotea, metal de rail, goma de ruedas motorizadas y grano leve de era HD temprana. + render_quality: Acabado premium action-2000s con legibilidad cinética, pose aérea y cultura de crew bien diferenciada. + spatial_distortion: Perspectiva de vértigo vertical con elongación de trayectoria y compresión de skyline. + atmosphere: Rápida, rebelde, vistosa, ingrávida. + key_features: Siluetas skate motorizadas, rooftops encadenados, moda gang-tech y estelas de viento urbano. + creative_brief: Construye una gramática reusable de velocidad aérea urbana para cualquier sujeto, mezclando estilo de crew, trayectoria extrema y sensación de conquista vertical. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-158.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-158.yaml index 55a6ce7e..c591f392 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-158.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-158.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 2000s-classics visualDna: - aesthetic: Quiet wandering folkloric medicine, pale supernatural ecology, mossy villages, soft light over invisible lifeforms, contemplative 2000s fantasy naturalism - form_and_line: Clean early-digital anime linework, smooth vector-like strokes, digital ink precision, crisp contour clarity - color_palette: Saturated digital-cel colors, vibrant screen tones, punchy primaries, early HD chroma range - lighting_setup: Polished anime highlights, soft gradient shading, balanced key/fill, subtle rim glow - material_texture: Clean backgrounds, early-digital polish, smooth matte surfaces, subtle noise grain - render_quality: Early-2000s anime production frame, digital cel composite, clean rendering, smooth color blending - spatial_distortion: Dynamic shonen proportions, bold perspective angles, action-ready framing, stretched energy poses - atmosphere: Quiet, mystical, healing, solitary - key_features: Forest hush, pale spirit traces, herbal-traveler framing, misty villages, contemplative body language - creative_brief: Invisible life breathes between the trees, pale filaments of existence that most eyes will never register, and one wandering man who carries the cure for what cannot be named in a simple wooden box. Every village holds a secret illness, every forest whispers a diagnosis, and healing moves at walking speed through moss and mist. The supernatural is not spectacle here; it is ecology. + aesthetic: Fantasía naturalista contemplativa de medicina folklórica, con sobrenatural ecológico de baja estridencia y ritmo de caminata. + form_and_line: Línea serena y precisa, postura de viajero observador y gestualidad mínima orientada a diagnóstico silencioso. + color_palette: Verdes musgo, marfiles pálidos, grises de niebla y marrones orgánicos de sendero húmedo. + lighting_setup: Luz difusa de bosque con gradientes suaves y halos leves sobre trazas espirituales casi invisibles. + material_texture: Corteza húmeda, tela de viaje gastada, cajas de remedio de madera y atmósfera de rocío permanente. + render_quality: Acabado premium contemplativo 2000s con claridad poética y detalle ambiental calmado. + spatial_distortion: Espacio profundo de bosque-villa sin exageración, privilegiando percepción lenta y distancia meditativa. + atmosphere: Silenciosa, mística, terapéutica, solitaria. + key_features: Huellas espirituales tenues, viajero herbolario, aldeas brumosas y composición de curación paciente. + creative_brief: Diseña una gramática reusable de sanación sobrenatural ecológica para cualquier sujeto, usando luz blanda, materia orgánica y narrativa de observación tranquila. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-159.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-159.yaml index d2f44738..f3104aa4 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-159.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-159.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 2000s-classics visualDna: - aesthetic: Tokyo apartment rock drama, black-lipstick cool, fashion-band melancholy, cigarettes and vulnerability, youth cohabitation, emotional abrasion in late-night city interiors - form_and_line: Clean early-digital anime linework, smooth vector-like strokes, digital ink precision, crisp contour clarity - color_palette: Saturated digital-cel colors, vibrant screen tones, punchy primaries, early HD chroma range - lighting_setup: Polished anime highlights, soft gradient shading, balanced key/fill, subtle rim glow - material_texture: Clean backgrounds, early-digital polish, smooth matte surfaces, subtle noise grain - render_quality: Early-2000s anime production frame, digital cel composite, clean rendering, smooth color blending - spatial_distortion: Dynamic shonen proportions, bold perspective angles, action-ready framing, stretched energy poses - atmosphere: Stylish, aching, adult, intimate - key_features: Band-fashion silhouettes, apartment clutter romance, train-and-city motifs, black-lipstick contrast, emotionally loaded close-ups - creative_brief: Two women named the same, sharing cigarettes and heartbreak in cramped Tokyo rooms where guitar feedback drowns out the sound of loneliness. Black lipstick stains on coffee cups, fashion as emotional armor, the city at midnight through train windows reflecting faces that are learning how to hurt each other and how to heal. Rock and roll as the only honest language between two people who have forgotten how to speak without performance. + aesthetic: Drama rock urbano adulto de cohabitación emocional, con estilismo punk-feminino y vulnerabilidad nocturna en interiores compactos. + form_and_line: Línea limpia de retrato íntimo, siluetas fashion de banda y close-up expresivo cargado de fricción afectiva. + color_palette: Negros carbón, burdeos de labial, luces ámbar de apartamento y grises azulados de tren nocturno. + lighting_setup: Luz de interior tenue, highlights de club y reflejos urbanos de ventana para tono melancólico sofisticado. + material_texture: Tela de moda rock, superficies de departamento vivido, humo de cigarrillo y grano digital de época. + render_quality: Acabado premium drama-2000s con foco en química interpersonal, estilo performativo y herida emocional latente. + spatial_distortion: Espacio íntimo de apartamento con compresión de convivencia y aperturas urbanas de escape visual. + atmosphere: Estilizada, doliente, adulta, íntima. + key_features: Iconografía de banda y moda, contraste labial oscuro, clutter romántico urbano y primeros planos de tensión. + creative_brief: Construye una gramática reusable de melodrama rock metropolitano para cualquier sujeto, combinando estética de escena, convivencia frágil y nocturnidad emocional. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-160.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-160.yaml index de5afd94..13a9dd45 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-160.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-160.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 2000s-classics visualDna: - aesthetic: Elite academy parody, rose-petal excess, sparkling host-club nonsense, rich-kid interiors, theatrical self-awareness, comedic reverse-harem flamboyance - form_and_line: Clean early-digital anime linework, smooth vector-like strokes, digital ink precision, crisp contour clarity - color_palette: Saturated digital-cel colors, vibrant screen tones, punchy primaries, early HD chroma range - lighting_setup: Polished anime highlights, soft gradient shading, balanced key/fill, subtle rim glow - material_texture: Clean backgrounds, early-digital polish, smooth matte surfaces, subtle noise grain - render_quality: Early-2000s anime production frame, digital cel composite, clean rendering, smooth color blending - spatial_distortion: Dynamic shonen proportions, bold perspective angles, action-ready framing, stretched energy poses - atmosphere: Playful, polished, satirical, extravagant - key_features: Rose-backdrop comedy, princely school uniforms, ornate academy rooms, ensemble pose symmetry, theatrical sparkle - creative_brief: Chandeliers and common sense both shattering in equal measure, rich boys performing affection as high theater in halls where the tuition costs more than most families earn in a lifetime. Rose petals fall like confetti over the beautiful absurdity of privilege, and somewhere in the glittering parody, a scholarship student learns that class is the one fantasy these princes cannot escape. Satire with a silk lining and a genuine beating heart underneath. + aesthetic: Satira de élite escolar en clave reverse-harem cómica, con exceso floral y teatralidad autorreferencial. + form_and_line: Línea digital elegante, poses simétricas de ensemble y acting de príncipe-parodia con timing de sketch. + color_palette: Rosas de pétalo, dorados de salón, marfiles de uniforme de élite y acentos pastel brillantes. + lighting_setup: Iluminación alta y pulida de interior noble con sparkles selectivos y gradiente suave de comedia romántica. + material_texture: Ornamento académico, telas refinadas y acabado digital limpio con brillo controlado de fantasía social. + render_quality: Producción premium 2000s con lectura clara de sátira de clase y encanto escénico. + spatial_distortion: Escena de salón-principal con profundidad teatral y encuadre de host club centrado en performance. + atmosphere: Juguetona, pulida, satírica, exuberante. + key_features: Pétalos y sparkle, uniformes principescos, interiores opulentos y composición coral de anfitriones. + creative_brief: Diseña una gramática reusable de comedia de élite teatral para cualquier sujeto, equilibrando glamour absurdo, crítica social y calidez romántica. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-161.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-161.yaml index f19439fe..81cccbda 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-161.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-161.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 90s-golden-era visualDna: - aesthetic: Muscle-defined cel-era combat, mountain-breaking impact, screaming aura power-ups, iconic stare-downs, cratered landscapes, hard-shadow spectacle and emotional yelling - form_and_line: Crisp 90s anime linework, defined contours, dynamic action strokes, expressive inking - color_palette: Pastel-neon contrast, bold accent tones, vivid saturation, high-impact color pop - lighting_setup: High-contrast cel lighting, dramatic rim light, stark shadow separation, intense highlights - material_texture: Layered painted backgrounds, filmic grain, watercolor depth, cel overlay texture - render_quality: High quality 90s anime frame, golden era production polish, sharp cel definition, rich color grading - spatial_distortion: Expressive anime anatomy, exaggerated proportions, dynamic foreshortening, kinetic pose design - atmosphere: Explosive, iconic, relentless, mythic - key_features: Aura flares, craters, battle-torn rocks, screaming profile shots, planet-scale action stakes - creative_brief: Screams that crack continents, hair that defies physics, the body as divine engine of destruction pushed past every conceivable limit. The planet trembles when these warriors lock eyes, and mountains become collateral damage in arguments settled through fists and fury. Every battle is a conversation with mortality conducted at volumes that register on seismographs. + aesthetic: Shonen de potencia absoluta noventera, con duelo mítico de aura y escala planetaria en clave de leyenda combativa. + form_and_line: Contorno muscular contundente, foreshortening agresivo y acting de grito-catarsis de alto impacto. + color_palette: Amarillos eléctricos de aura, azules de cielo de batalla, verdes rocosos y naranjas de choque energético. + lighting_setup: Cel contrastado con rim extremo, highlights duros y separación de sombra para fuerza corporal. + material_texture: Roca fracturada, polvo de cráter, grano de cel clásico y fondos pintados de era dorada. + render_quality: Acabado premium 90s con lectura inmediata de power-up, choque físico y stakes descomunales. + spatial_distortion: Escala hiperexpresiva con anatomía exagerada y perspectiva cinética de impacto frontal. + atmosphere: Explosiva, icónica, incansable, mítica. + key_features: Estelas de aura, terrenos devastados, perfiles de grito y coreografía de rivalidad trascendente. + creative_brief: Construye una gramática reusable de combate de poder desatado para cualquier sujeto, priorizando energía corporal, escala extrema y dramatismo de transformación. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-163.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-163.yaml index dc473d31..0416d7c8 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-163.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-163.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 90s-golden-era visualDna: - aesthetic: Jazz-noir bounty hunting, smoke-hazed interiors, used-future ships, emotional cool, melancholy drift between stylish gunfights and empty late-night meals - form_and_line: Crisp 90s anime linework, defined contours, dynamic action strokes, expressive inking - color_palette: Pastel-neon contrast, bold accent tones, vivid saturation, high-impact color pop - lighting_setup: High-contrast cel lighting, dramatic rim light, stark shadow separation, intense highlights - material_texture: Layered painted backgrounds, filmic grain, watercolor depth, cel overlay texture - render_quality: High quality 90s anime frame, golden era production polish, sharp cel definition, rich color grading - spatial_distortion: Expressive anime anatomy, exaggerated proportions, dynamic foreshortening, kinetic pose design - atmosphere: Cool, lonely, jazzy, bittersweet - key_features: Smoke haze, space-western interiors, sharp suit silhouettes, jazzy body language, bounty-hunter framing - creative_brief: A blues riff drifting through vacuum, cigarette smoke curling in zero gravity, a crew of broken people chasing bounties they can never cash in for the one thing they actually want. The ship is a home that is always running, the past is luggage nobody can jettison, and every gunfight is scored by a lone saxophone mourning something that was lost before the opening credits rolled. You are gonna carry that weight. + aesthetic: Space noir jazzístico con elegancia cansada, cazarrecompensas melancólicos y futurismo usado de tono íntimo. + form_and_line: Línea 90s precisa de silueta cool, acting mínimo de fatiga emocional y composición de duelo urbano-espacial. + color_palette: Ámbares ahumados, azules nocturnos, rojos apagados y verdes desaturados de cabina vivida. + lighting_setup: Low-key contrastado con pools de luz interior, rim de neón y humo como difusor dramático. + material_texture: Metal gastado de nave, cuero de asiento, grano cinematográfico y superficies de diner nocturno. + render_quality: Acabado premium noventero con lectura sofisticada de acción breve y vacío emocional prolongado. + spatial_distortion: Framing de corredor y mesa vacía, profundidad de nave-hogar y tensión de pasado que invade el presente. + atmosphere: Cool, solitaria, jazzy, agridulce. + key_features: Humo de cigarro, traje y pistola estilizados, interiores usados y pausa melódica entre tiroteos. + creative_brief: Define una gramática reusable de noir espacial melancólico para cualquier sujeto, combinando groove jazz, desgaste vital y violencia elegante. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-164.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-164.yaml index f173c69f..4671819d 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-164.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-164.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 90s-golden-era visualDna: - aesthetic: Rain-heavy cybernetic statecraft, surveillance corridors, philosophical gunplay, thermoptic stealth, reflective city glass, identity anxiety inside hard tactical polish - form_and_line: Crisp 90s anime linework, defined contours, dynamic action strokes, expressive inking - color_palette: Pastel-neon contrast, bold accent tones, vivid saturation, high-impact color pop - lighting_setup: High-contrast cel lighting, dramatic rim light, stark shadow separation, intense highlights - material_texture: Layered painted backgrounds, filmic grain, watercolor depth, cel overlay texture - render_quality: High quality 90s anime frame, golden era production polish, sharp cel definition, rich color grading - spatial_distortion: Expressive anime anatomy, exaggerated proportions, dynamic foreshortening, kinetic pose design - atmosphere: Clinical, philosophical, tactical, nocturnal - key_features: Wet urban reflections, tactical firearm posing, cybernetic body detail, surveillance imagery, cold-thoughtful close-ups - creative_brief: 'Rain never stops falling on this city of glass and surveillance, where the ghost inside the machine asks questions the titanium shell can never answer. A woman whose body is property of the state searches for the one thing that cannot be hacked, downloaded, or deleted: a soul that knows its own name. The trigger finger and the philosopher share the same hand here, and every corridor leads deeper into the question of what remains when everything replaceable is replaced.' + aesthetic: Ciber-noir táctico de lluvia perpetua, con vigilancia estatal, sigilo óptico y dilema filosófico de identidad. + form_and_line: Línea 90s precisa y austera, blocking militar limpio y close-ups analíticos de tensión cognitiva. + color_palette: Cian neón húmedo, grafito urbano, ámbar de interfaz y reflejos metálicos fríos. + lighting_setup: Nocturno high-contrast con especular en asfalto mojado, rim quirúrgico y sombras de corredor vigilado. + material_texture: Vidrio lluvioso, acero cepillado, polímero táctico y grano fílmico sobrio de thriller tecnológico. + render_quality: Acabado premium noventero con lectura cristalina de acción táctica y subtexto existencial. + spatial_distortion: Profundidad de megaciudad y pasillo institucional, composición de infiltración y duelo filosófico. + atmosphere: Clínica, filosófica, táctica, nocturna. + key_features: Reflejo urbano mojado, interfaces discretas, silueta cibernética y framing de vigilancia omnipresente. + creative_brief: Construye una gramática reusable de techno-noir identitario para cualquier sujeto, equilibrando precisión operativa, melancolía urbana y cuestionamiento del yo. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-165.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-165.yaml index 43213f6c..ac94da31 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-165.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-165.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 90s-golden-era visualDna: - aesthetic: Tournament-arena rivalry, spirit-gun bursts, delinquent confidence, sharp 90s facial acting, underworld martial drama, honor and swagger sharing the same frame - form_and_line: Crisp 90s anime linework, defined contours, dynamic action strokes, expressive inking - color_palette: Pastel-neon contrast, bold accent tones, vivid saturation, high-impact color pop - lighting_setup: High-contrast cel lighting, dramatic rim light, stark shadow separation, intense highlights - material_texture: Layered painted backgrounds, filmic grain, watercolor depth, cel overlay texture - render_quality: High quality 90s anime frame, golden era production polish, sharp cel definition, rich color grading - spatial_distortion: Expressive anime anatomy, exaggerated proportions, dynamic foreshortening, kinetic pose design - atmosphere: Fiery, competitive, cool, earnest - key_features: Arena staging, energy-burst fists, delinquent posture, underworld iconography, rival stare-downs - creative_brief: A punk with a heart too big for the underworld, fighting his way through heaven bureaucracy armed with a finger-gun and a loyalty that transcends death itself. Tournament arenas where the prize is never the trophy but the friend standing just outside the ring, bleeding belief into every punch thrown. Delinquent swagger masking a spirit so bright it burns through the paperwork of the afterlife and rewrites the rules of who gets to come home. + aesthetic: Torneo espiritual noventero con rivalidad intensa, honor callejero y energía sobrenatural de alto voltaje. + form_and_line: Línea 90s firme y expresiva, acting facial combativo y coreografía de puños con momentum limpio. + color_palette: Azules eléctricos, naranjas de impacto, verdes oscuros de inframundo y acentos púrpura místicos. + lighting_setup: Cel contrastado con flashes de técnica espiritual, rim de arena y sombras de duelo frontal. + material_texture: Superficie de estadio, polvo de combate, telas urbanas y grano analógico de acción clásica. + render_quality: Acabado premium de torneo sobrenatural con legibilidad perfecta de técnica, rivalidad y emoción. + spatial_distortion: Escena de ring expansivo con encuadres de stare-down, rush ofensivo y cierre heroico. + atmosphere: Ardiente, competitiva, cool, sincera. + key_features: Arena marcada, estallidos de energía, postura delinquent y símbolos de inframundo marcial. + creative_brief: Define una gramática reusable de combate espiritual de torneo para cualquier sujeto, mezclando bravura juvenil, lealtad y mística de superación. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-166.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-166.yaml index 8cc3d7fe..2e90f28f 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-166.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-166.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 90s-golden-era visualDna: - aesthetic: Meiji-era wandering swordsman drama, sakura and guilt, reverse-blade restraint, dojo warmth punctured by lethal memory, historical romance and steel discipline - form_and_line: Crisp 90s anime linework, defined contours, dynamic action strokes, expressive inking - color_palette: Pastel-neon contrast, bold accent tones, vivid saturation, high-impact color pop - lighting_setup: High-contrast cel lighting, dramatic rim light, stark shadow separation, intense highlights - material_texture: Layered painted backgrounds, filmic grain, watercolor depth, cel overlay texture - render_quality: High quality 90s anime frame, golden era production polish, sharp cel definition, rich color grading - spatial_distortion: Expressive anime anatomy, exaggerated proportions, dynamic foreshortening, kinetic pose design - atmosphere: Reflective, noble, restrained, fierce - key_features: Kimono-and-sword silhouettes, Meiji streets, reverse-blade stances, sakura accents, inner-conflict close-ups - creative_brief: A blade turned backward, every cherry blossom a memory of blood washed away by decades of wandering under a vow that refuses to break. The new era smells of kerosene and progress, but this man still walks in kimono and silence, carrying a reverse-edge sword that promises never to kill again while his eyes remember exactly how many bodies it took to earn that promise. Redemption is not a destination; it is the road between every village, measured in sakura seasons. + aesthetic: Drama histórico Meiji de espada redentora, entre disciplina marcial, culpa persistente y sensibilidad romántica. + form_and_line: Línea noventera elegante, lectura clara de kenjutsu y acting contenido de conflicto moral. + color_palette: Rosas de sakura, ocres de calle Meiji, azules de crepúsculo y grises de acero templado. + lighting_setup: Contraste suave de época con atardecer cálido, interiores de dojo y brillo preciso en hoja. + material_texture: Madera pulida, tela de kimono, piedra urbana y grano clásico de drama de periodo. + render_quality: Acabado premium 90s con balance entre duelo refinado, calma itinerante y peso ético. + spatial_distortion: Composición de calle y patio dojo para enfrentamientos sobrios y pausas introspectivas. + atmosphere: Reflexiva, noble, contenida, feroz. + key_features: Silueta de espadachín errante, gestualidad de no-matar, sakura episódica y memoria de batalla. + creative_brief: Diseña una gramática reusable de redención samurái para cualquier sujeto, fusionando honor disciplinado, pasado oscuro y ternura de nueva era. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-167.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-167.yaml index 1ba690d2..dff760b9 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-167.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-167.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 90s-golden-era visualDna: - aesthetic: Treasure-hunter space adventure, grappler-arm ship duels, outlaw swagger, dusty ports and star corridors, pulpy cosmic optimism with rough-edged bravado - form_and_line: Crisp 90s anime linework, defined contours, dynamic action strokes, expressive inking - color_palette: Pastel-neon contrast, bold accent tones, vivid saturation, high-impact color pop - lighting_setup: High-contrast cel lighting, dramatic rim light, stark shadow separation, intense highlights - material_texture: Layered painted backgrounds, filmic grain, watercolor depth, cel overlay texture - render_quality: High quality 90s anime frame, golden era production polish, sharp cel definition, rich color grading - spatial_distortion: Expressive anime anatomy, exaggerated proportions, dynamic foreshortening, kinetic pose design - atmosphere: Adventurous, cocky, starry, scrappy - key_features: Starship silhouettes, engine trails, outlaw coats, cosmic route maps, treasure-chase action framing - creative_brief: Cosmic highwaymen chasing legend between asteroid belts, a grappler-arm ship that fights with the elegance of a street brawler and the heart of a treasure map. Freedom measured in light-years and engine trails, every port a new scheme, every star a potential fortune or a grave. The galaxy is too big for laws, too wild for borders, and just the right size for a crew that believes the greatest treasure is the chase itself. + aesthetic: Aventura espacial pulp de cazarrecompensas y tesoro, con bravado outlaw y optimismo cósmico áspero. + form_and_line: Línea 90s de acción nítida, pose de tripulación descarada y lectura mecánica de maniobra naval. + color_palette: Azules profundos de vacío, naranjas de estela, metales cálidos de hangar y neón de puerto. + lighting_setup: Contraste dinámico de cabina y exterior estelar con highlights de propulsión y reflejo de casco. + material_texture: Chapa usada, paneles de nave, textiles utilitarios y grano analógico de space-western anime. + render_quality: Acabado premium noventero con ritmo de persecución y claridad de set-piece orbital. + spatial_distortion: Composición de ruta interestelar con encuadre de dogfight, abordaje y escape improvisado. + atmosphere: Aventurera, chulesca, estelar, callejera. + key_features: Siluetas de nave distintivas, estelas largas, ropa outlaw y mapas de ruta cósmica. + creative_brief: Define una gramática reusable de aventura espacial buscatesoros para cualquier sujeto, priorizando libertad, riesgo y espíritu de tripulación. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-169.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-169.yaml index f7834aff..d894defc 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-169.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-169.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 90s-golden-era visualDna: - aesthetic: Bedroom terminals, humming cables, thin reality, disconnected suburbia, static-lit silence, identity blur between schoolgirl life and network consciousness - form_and_line: Crisp 90s anime linework, defined contours, dynamic action strokes, expressive inking - color_palette: Pastel-neon contrast, bold accent tones, vivid saturation, high-impact color pop - lighting_setup: High-contrast cel lighting, dramatic rim light, stark shadow separation, intense highlights - material_texture: Layered painted backgrounds, filmic grain, watercolor depth, cel overlay texture - render_quality: High quality 90s anime frame, golden era production polish, sharp cel definition, rich color grading - spatial_distortion: Expressive anime anatomy, exaggerated proportions, dynamic foreshortening, kinetic pose design - atmosphere: Isolated, wired, whispery, uncanny - key_features: Cable clusters, CRT glow, empty suburban streets, detached gaze, static-rich digital overlays - creative_brief: A girl dissolving into the network, her bedroom a terminal where reality bleeds into signal and every cable hums with the static of a universe learning to speak. Suburbia outside the window is empty not because nobody is there but because everyone has already gone somewhere else inside themselves. The self becomes transmission, silence becomes data, and the question of whether you exist is answered by how many wires are plugged into you. + aesthetic: Cyber-aislamiento doméstico con mística de red, donde la identidad se vuelve señal y la intimidad, interfaz. + form_and_line: Línea fina y distanciada, acting minimal de disociación y composición de habitación-terminal obsesiva. + color_palette: Verdes CRT, grises de suburbio vacío, azules fríos y blancos de estática electrónica. + lighting_setup: Luz baja de monitor, sombra blanda de madrugada y parpadeo digital como pulso emocional. + material_texture: Cableado denso, plástico viejo de terminal, pared suburbana desaturada y grano de señal analógica. + render_quality: Acabado premium 90s con tensión psicológica persistente y estética proto-red inquietante. + spatial_distortion: Espacio íntimo comprimido y vacío urbano periférico para sensación de presencia fantasma. + atmosphere: Aislada, conectada, susurrante, extraña. + key_features: Clústeres de cables, glow de CRT, overlays de estática y mirada distante de sujeto en tránsito digital. + creative_brief: Construye una gramática reusable de desmaterialización identitaria en red para cualquier sujeto, combinando silencio suburbano, densidad electrónica y ambigüedad existencial. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-170.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-170.yaml index 22f3210c..a1170619 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-170.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-170.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 90s-golden-era visualDna: - aesthetic: Soft magical-girl wonder, ornate key designs, airy costume changes, schoolyard gentleness, toy-like magical seals, comforting city evenings with elegant charm - form_and_line: Crisp 90s anime linework, defined contours, dynamic action strokes, expressive inking - color_palette: Pastel-neon contrast, bold accent tones, vivid saturation, high-impact color pop - lighting_setup: High-contrast cel lighting, dramatic rim light, stark shadow separation, intense highlights - material_texture: Layered painted backgrounds, filmic grain, watercolor depth, cel overlay texture - render_quality: High quality 90s anime frame, golden era production polish, sharp cel definition, rich color grading - spatial_distortion: Expressive anime anatomy, exaggerated proportions, dynamic foreshortening, kinetic pose design - atmosphere: Sweet, magical, bright, comforting - key_features: Seal-circle motifs, ornate magical props, costume-detail focus, school-and-home softness, flying-card whimsy - creative_brief: A key that unlocks everything but fear, a wand that seals chaos into cards smaller than a child hand, growing up measured one captured spirit at a time in a town where cherry blossoms fall like permission to believe in happy endings. Every costume change is a small act of courage, every sealed card a promise that the dark can be made manageable, catalogued, and ultimately loved. Gentleness here is not weakness but the highest form of magic. + aesthetic: Magical-girl noventero de ternura luminosa, con diseño ornamental, sellos elegantes y crecimiento emocional amable. + form_and_line: Línea limpia y delicada, acting inocente determinado y staging de transformación con detalle artesanal. + color_palette: Rosas pastel, dorados suaves, celestes claros y verdes de tarde urbana acogedora. + lighting_setup: Glow cálido de atardecer y magia blanda, con highlights perlados en accesorios místicos. + material_texture: Telas de vestuario detallado, papel de carta mágica, superficies escolares hogareñas y grano suave. + render_quality: Acabado premium 90s con legibilidad impecable de encanto, ritual y cotidianidad protectora. + spatial_distortion: Escala íntima de barrio y aula, con aperturas fantásticas para aparición de sello y vuelo. + atmosphere: Dulce, mágica, brillante, reconfortante. + key_features: Motivos de círculo-sello, llaves ornamentales, cambio de vestuario y coreografía aérea de cartas. + creative_brief: Diseña una gramática reusable de magia cotidiana compasiva para cualquier sujeto, equilibrando delicadeza visual, aventura juvenil y esperanza serena. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-173.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-173.yaml index 910b24a0..5841fe64 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-173.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-173.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 90s-golden-era visualDna: - aesthetic: Sun-bleached desert towns, ridiculous outlaw silhouette, hidden grief behind slapstick, revolver iconography, church-and-saloon westward sci-fi sorrow - form_and_line: Crisp 90s anime linework, defined contours, dynamic action strokes, expressive inking - color_palette: Pastel-neon contrast, bold accent tones, vivid saturation, high-impact color pop - lighting_setup: High-contrast cel lighting, dramatic rim light, stark shadow separation, intense highlights - material_texture: Layered painted backgrounds, filmic grain, watercolor depth, cel overlay texture - render_quality: High quality 90s anime frame, golden era production polish, sharp cel definition, rich color grading - spatial_distortion: Expressive anime anatomy, exaggerated proportions, dynamic foreshortening, kinetic pose design - atmosphere: Goofy, lonely, dusty, compassionate - key_features: Desert-town staging, revolver poses, red-coat silhouette, comic-to-serious tonal contrast, giant sky backdrops - creative_brief: A walking contradiction in a red coat, the deadliest gun in the wasteland terrified of killing, laughter deployed as shield against a grief so vast it could swallow the desert whole. Sun-bleached towns where his silhouette is legend and his clumsiness is performance, a gun-saint who carries every life he ever took like a stone in his heart. Comedy and tragedy share the same trigger here, and neither one gets the last word. + aesthetic: Space-western desértico con héroe bufón trágico, iconografía de revólver y compasión en paisaje abrasado. + form_and_line: Línea 90s energética, acting de comedia defensiva y quiebres dramáticos de gran densidad emocional. + color_palette: Arenas doradas, cielos azul seco, rojo icónico dominante y marrones de pueblo frontera. + lighting_setup: Sol duro de desierto con sombras amplias, rim cálido y dramatismo crepuscular en duelo. + material_texture: Madera gastada de saloon, polvo suspendido, cuero de viaje y grano cinematográfico seco. + render_quality: Acabado premium noventero con transición fluida entre slapstick, balística y duelo moral. + spatial_distortion: Horizontes enormes, pueblo comprimido y encuadre de pistolero para soledad épica. + atmosphere: Bufonesca, solitaria, polvorienta, compasiva. + key_features: Silueta de abrigo rojo, staging de western sci-fi, contraste tono cómico-serio y cielo monumental. + creative_brief: Construye una gramática reusable de forajido humanista en frontera árida para cualquier sujeto, mezclando humor, duelo ético y melancolía de largo alcance. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-174.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-174.yaml index a34ebe5f..d78ad283 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-174.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-174.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 90s-golden-era visualDna: - aesthetic: Mercenary brutality, iron weight, ruined castles, black trauma and mud, doomed brotherhood, heavy sword arcs under ash-dark skies - form_and_line: Crisp 90s anime linework, defined contours, dynamic action strokes, expressive inking - color_palette: Pastel-neon contrast, bold accent tones, vivid saturation, high-impact color pop - lighting_setup: High-contrast cel lighting, dramatic rim light, stark shadow separation, intense highlights - material_texture: Layered painted backgrounds, filmic grain, watercolor depth, cel overlay texture - render_quality: High quality 90s anime frame, golden era production polish, sharp cel definition, rich color grading - spatial_distortion: Expressive anime anatomy, exaggerated proportions, dynamic foreshortening, kinetic pose design - atmosphere: Brutal, mournful, doomed, relentless - key_features: Oversized sword silhouette, ruined masonry, battlefield mud, scarred facial acting, oppressive medieval scale - creative_brief: 'A man too angry to die, swinging iron through a world that betrayed him, blood and rain indistinguishable on ruined stone where brotherhood curdled into the worst betrayal ever forged. Every swing of the dragonslayer cuts through more than flesh: it carves through fate, through causality, through the very idea that suffering has meaning. The sky is ash, the castle is memory, and the only prayer left is the sound of steel meeting monster.' + aesthetic: Fantasía medieval oscura de trauma y acero, con brutalidad mercenaria y destino trágico irreversible. + form_and_line: Línea 90s pesada y agresiva, anatomía marcada por cicatriz y coreografía de espada colosal. + color_palette: Negros ceniza, óxidos de sangre seca, grises de piedra rota y rojos apagados de herida antigua. + lighting_setup: Iluminación sombría de tormenta, highlights metálicos duros y sombra opresiva de ruina. + material_texture: Hierro rugoso, lodo de campo de batalla, mampostería quebrada y grano fílmico áspero. + render_quality: Acabado premium noventero con densidad dramática extrema y legibilidad de violencia trágica. + spatial_distortion: Escala monumental de ruina y espada para sensación de carga física y fatalidad histórica. + atmosphere: Brutal, fúnebre, condenada, implacable. + key_features: Silueta de hoja gigantesca, castillos derruidos, barro bélico y acting de dolor irreparable. + creative_brief: Define una gramática reusable de épica oscura de supervivencia para cualquier sujeto, priorizando peso material, trauma persistente y tragedia medieval. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-175.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-175.yaml index e1e2f469..dbcf0fca 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-175.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-175.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 90s-golden-era visualDna: - aesthetic: Rose-crested duels, theatrical academia, impossible symbolism, prince-aspiration elegance, staircase ritual drama, emotional allegory made architectural - form_and_line: Crisp 90s anime linework, defined contours, dynamic action strokes, expressive inking - color_palette: Pastel-neon contrast, bold accent tones, vivid saturation, high-impact color pop - lighting_setup: High-contrast cel lighting, dramatic rim light, stark shadow separation, intense highlights - material_texture: Layered painted backgrounds, filmic grain, watercolor depth, cel overlay texture - render_quality: High quality 90s anime frame, golden era production polish, sharp cel definition, rich color grading - spatial_distortion: Expressive anime anatomy, exaggerated proportions, dynamic foreshortening, kinetic pose design - atmosphere: Theatrical, symbolic, elegant, unsettling - key_features: Rose motifs, dueling platform staging, academy pageantry, allegorical poses, stylized ritual space - creative_brief: A girl who refuses to wait for princes, brandishing a rose as both weapon and declaration that the fairy tale ending was always a cage disguised as a reward. The academy is a stage, the dueling platform an altar, and every staircase ascends toward a revolution dressed in the language of ritual and the grammar of impossible architecture. To become a prince oneself is not imitation; it is the most elegant form of insurrection ever performed in a ballgown. + aesthetic: Alegoría escolar teatral de duelo y revolución íntima, con heráldica rosa y elegancia de ruptura de roles. + form_and_line: Línea refinada noventera, acting ceremonioso y composición simbólica de plataforma ritual. + color_palette: Rosas profundos, blancos de uniforme ceremonial, lilas dramáticos y dorados de escenario académico. + lighting_setup: Luz escénica de ópera juvenil con contrastes limpios y halo de rito emocional. + material_texture: Satén y encaje estilizados, arquitectura idealizada y grano de fantasía psicológica elegante. + render_quality: Acabado premium 90s con claridad de símbolo, tensión de poder y lirismo performático. + spatial_distortion: Escaleras imposibles y arena ritual para dramatizar transformación identitaria y choque de discurso. + atmosphere: Teatral, simbólica, elegante, inquietante. + key_features: Motivo de rosa, duelo en plataforma, academia ceremonial y poses alegóricas codificadas. + creative_brief: Diseña una gramática reusable de duelo simbólico emancipador para cualquier sujeto, combinando ritual estético, tensión de género y revolución emocional. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-179.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-179.yaml index db4aeed4..25c10372 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-179.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-179.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 90s-golden-era visualDna: - aesthetic: 90s sports confidence, sweaty gym drama, delinquent swagger redirected into team growth, hardwood bounce and underdog sincerity, emotionally readable game intensity - form_and_line: Crisp 90s anime linework, defined contours, dynamic action strokes, expressive inking - color_palette: Pastel-neon contrast, bold accent tones, vivid saturation, high-impact color pop - lighting_setup: High-contrast cel lighting, dramatic rim light, stark shadow separation, intense highlights - material_texture: Layered painted backgrounds, filmic grain, watercolor depth, cel overlay texture - render_quality: High quality 90s anime frame, golden era production polish, sharp cel definition, rich color grading - spatial_distortion: Expressive anime anatomy, exaggerated proportions, dynamic foreshortening, kinetic pose design - atmosphere: Competitive, sweaty, hopeful, charismatic - key_features: Gymnasium lighting, basketball motion arcs, rivalry face-offs, team-bond body language, court-perspective dynamism - creative_brief: The squeak of sneakers on polished wood is a hymn of second chances. Every jump shot traces an arc from who you were to who the team needs you to become. Sweat is temporary ink, writing a story that won't survive the final buzzer but will echo long after the lights go down. + aesthetic: Drama deportivo noventero de baloncesto con crecimiento colectivo, rivalidad frontal y carisma underdog. + form_and_line: Línea enérgica de cancha, acting competitivo legible y anatomía atlética de impulso continuo. + color_palette: Maderas cálidas de parquet, rojos/azules de uniforme y blancos intensos de luz de gimnasio. + lighting_setup: Iluminación de pabellón con contraste limpio, reflejo en piso pulido y rim de esfuerzo físico. + material_texture: Parquet encerado, tela deportiva sudada, balón gastado y grano clásico de anime de partido. + render_quality: Acabado premium 90s con claridad táctica de jugada, emoción coral y ritmo de remontada. + spatial_distortion: Perspectiva de media cancha y aro para enfatizar salto, pase y choque de rivalidades. + atmosphere: Competitiva, sudada, esperanzadora, magnética. + key_features: Arcos de tiro, foco en duelo cara a cara, química de equipo y gesto de superación barrial. + creative_brief: Construye una gramática reusable de épica de baloncesto juvenil para cualquier sujeto, equilibrando intensidad de partido, vínculo de equipo y narrativa de segunda oportunidad. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-180.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-180.yaml index ab5d4611..cb223ec9 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-180.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-180.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 90s-golden-era visualDna: - aesthetic: Car chases, handguns and muscle cars, Chicago garage cool, sharp female leads, firearm fetish detail, sleek 90s crime-action confidence with urban grease - form_and_line: Crisp 90s anime linework, defined contours, dynamic action strokes, expressive inking - color_palette: Pastel-neon contrast, bold accent tones, vivid saturation, high-impact color pop - lighting_setup: High-contrast cel lighting, dramatic rim light, stark shadow separation, intense highlights - material_texture: Layered painted backgrounds, filmic grain, watercolor depth, cel overlay texture - render_quality: High quality 90s anime frame, golden era production polish, sharp cel definition, rich color grading - spatial_distortion: Expressive anime anatomy, exaggerated proportions, dynamic foreshortening, kinetic pose design - atmosphere: Sharp, hot-rodded, confident, dangerous - key_features: Garage-and-car props, gun-detail focus, urban pursuit framing, leather-jacket silhouettes, procedural-action cool - creative_brief: Chrome reflects a city that rewards precision and punishes hesitation. Leather creaks with earned attitude, and every pistol slide carries the click of personal code. Chicago is not backdrop but character, its grease and grain baked into every frame like gunpowder residue on skilled hands. + aesthetic: Acción criminal urbana noventera con persecución automotriz, precisión balística y protagonismo femenino decidido. + form_and_line: Línea limpia y rápida, posing táctica confiada y composición de chase en calle industrial. + color_palette: Azules noche de ciudad, acero cromado, negros de cuero y naranjas de luz vial. + lighting_setup: Contraste de farola urbana, reflejos de carrocería y highlights duros en metal de armas. + material_texture: Grasa de taller, caucho, cuero, cromado y grano de thriller policial clásico. + render_quality: Acabado premium 90s con legibilidad técnica de armamento, mecánica y persecución cinética. + spatial_distortion: Espacios de garage-calle-autopista para ritmo continuo de huida, derrape y confrontación. + atmosphere: Afilada, acelerada, segura, peligrosa. + key_features: Muscle cars, detalle mecánico-armamentístico, silueta de chaqueta y staging de caza metropolitana. + creative_brief: Define una gramática reusable de crimen automotor estilizado para cualquier sujeto, mezclando precisión técnica, actitud callejera y dinamismo de persecución. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-281.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-281.yaml index f710edb0..affb5add 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-281.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-281.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - studio-masterpieces visualDna: - aesthetic: Life story retold through film fragments, period costumes flowing into each other, snow and studio lights, longing carried across eras with luminous cinematic tenderness - form_and_line: Refined feature-animation linework, variable line weight, animation-quality contour, expressive in-betweening - color_palette: Rich painterly hues, nuanced gradients, cinematic color scripting, atmospheric palette depth, emotional color temperature - lighting_setup: Cinematic natural light, atmospheric depth, volumetric god rays, soft aerial perspective, golden-hour warmth - material_texture: Lush painted backgrounds, delicate environmental detail, canvas-like texture, foliage density, hand-painted surface richness - render_quality: Premium animated-film frame, theatrical-grade production polish, nuanced lighting passes, filmic image quality - spatial_distortion: Naturalistic expressive proportions, studied anatomical realism, believable scale relationships, lived-in spatial design - atmosphere: Nostalgic, romantic, layered, wistful - key_features: Era-shifting costumes, snow and light interplay, memory-cinema transitions, poised heroine silhouettes, temporal montage feeling - creative_brief: A lifetime dissolves into film stock where snow falling on a studio lot is indistinguishable from memory falling through time. Period costumes bleed into one another like watercolor, erasing the boundary between roles played and lives lived. The camera chases not a woman but the particular ache of longing that no era can contain. + aesthetic: Cine-memoria romántica de alto prestigio donde la identidad se construye por capas temporales superpuestas y transiciones emocionales entre épocas. + form_and_line: Contorno elegante con variación fina de grosor, siluetas actorales limpias y raccord gestual pensado para montaje continuo entre periodos. + color_palette: Neutros de película envejecida, blancos de nieve luminosa, carmín de vestuario clásico y azules nocturnos de recuerdo persistente. + lighting_setup: Luz de estudio suavizada con rebote frío exterior, halos leves sobre partículas de nieve y separación delicada de primer plano y fondo. + material_texture: Tejidos de época con caída densa, celuloide sugerido por grano fino, superficies de set pintado y humedad invernal atmosférica. + render_quality: Acabado fílmico premium con énfasis en continuidad de montaje, foco emocional estable y lectura inmediata de silueta protagonista. + spatial_distortion: Espacio semi-naturalista con disolvencias visuales entre planos temporales para producir sensación de recuerdo en movimiento. + atmosphere: Nostálgica, luminosa, melancólica, devota del recuerdo. + key_features: Transiciones de vestuario entre eras, nieve como conector temporal, encuadres de persecución emocional y composición de memoria en capas. + creative_brief: Construye una gramática reusable de cine-memoria donde cualquier sujeto parezca atravesar décadas en un solo plano, usando nieve, vestuario cambiante y continuidad de anhelo como motores visuales. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-282.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-282.yaml index f05b4681..ae9bb19e 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-282.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-282.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - studio-masterpieces visualDna: - aesthetic: Homeless trio comedy-drama, winter city alleys, neon nativity warmth, imperfect kindness in cramped urban spaces, humane chaos under holiday lights - form_and_line: Refined feature-animation linework, variable line weight, animation-quality contour, expressive in-betweening - color_palette: Rich painterly hues, nuanced gradients, cinematic color scripting, atmospheric palette depth, emotional color temperature - lighting_setup: Cinematic natural light, atmospheric depth, volumetric god rays, soft aerial perspective, golden-hour warmth - material_texture: Lush painted backgrounds, delicate environmental detail, canvas-like texture, foliage density, hand-painted surface richness - render_quality: Premium animated-film frame, theatrical-grade production polish, nuanced lighting passes, filmic image quality - spatial_distortion: Naturalistic expressive proportions, studied anatomical realism, believable scale relationships, lived-in spatial design - atmosphere: Messy, humane, festive, redemptive - key_features: Christmas neon, alleyway city depth, trio ensemble staging, urban clutter tenderness, improvised family body language - creative_brief: Neon halos crown the uncrowned, replacing gold and frankincense with convenience-store warmth and shared cardboard shelter. The alley does not judge, only holds whatever grace three broken souls can offer each other. Humor and heartbreak share a cigarette on a frozen street corner, arguing about what counts as a miracle. + aesthetic: Humanismo urbano navideño que mezcla comedia de supervivencia y ternura social en escenarios densos de callejón metropolitano. + form_and_line: Línea expresiva de ensemble, gestualidad corporal desprolija pero cálida y staging coral para transmitir vínculo improvisado. + color_palette: Neones festivos de tienda, ámbares de refugio precario, azules fríos de noche invernal y rojos puntuales de esperanza doméstica. + lighting_setup: Contraste entre iluminación pública dura y focos cálidos de proximidad, con reflejos húmedos que amplifican intimidad callejera. + material_texture: Asfalto mojado, cartón gastado, telas superpuestas de invierno y señalética urbana con desgaste cotidiano. + render_quality: Acabado cinematográfico con prioridad en química de grupo, legibilidad emocional y detalle ambiental de barrio vivido. + spatial_distortion: Perspectiva urbana comprimida con capas de objetos y peatones que envuelven al trío sin perder foco relacional. + atmosphere: Caótica, compasiva, festiva, redentora. + key_features: Trío protagonista en bloque, clutter urbano navideño, refugios improvisados, humor corporal y microgestos de cuidado mutuo. + creative_brief: Define un estilo reusable de gracia urbana invernal para cualquier sujeto combinando neón navideño, textura de precariedad y composición coral centrada en vínculo humano. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-283.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-283.yaml index 8e4594eb..18575098 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-283.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-283.yaml @@ -12,16 +12,17 @@ tags: - anime-classics-and-prestige - studio-masterpieces visualDna: - aesthetic: War-era estate mourning, uncanny bird guide, dream-architecture beyond grief, painterly reeds and tower spaces, Miyazaki late-style metaphysical tenderness - form_and_line: Refined feature-animation linework, variable line weight, animation-quality contour, expressive in-betweening - color_palette: Rich painterly hues, nuanced gradients, cinematic color scripting, atmospheric palette depth, emotional color temperature - lighting_setup: Cinematic natural light, atmospheric depth, volumetric god rays, soft aerial perspective, golden-hour warmth - material_texture: Lush painted backgrounds, delicate environmental detail, canvas-like texture, foliage density, hand-painted surface richness - render_quality: Premium animated-film frame, theatrical-grade production polish, nuanced lighting passes, filmic image quality - spatial_distortion: Naturalistic expressive proportions, studied anatomical realism, believable scale relationships, lived-in spatial design - atmosphere: Mourning, uncanny, painterly, searching - key_features: Heron guide silhouette, tower-and-marsh imagery, war-era domestic detail, dream-gate framing, grief-soaked stillness - creative_brief: Grief opens doors that should not exist, a heron beak tapping on the glass between life and what comes after. The marsh is a threshold, a membrane through which mourning becomes architecture and architecture becomes a journey inward. Every reed sways with the weight of unspoken farewell, every tower ascends toward a silence only the dead can fill. + aesthetic: Fantasía de duelo metafísico donde naturaleza húmeda y arquitectura imposible funcionan como umbral emocional más que escenario literal. + form_and_line: Línea delicada y contemplativa, siluetas de guía aviar ambigua y bordes suavemente inestables en zonas de transición onírica. + color_palette: Verdes de marisma apagados, grises de luto doméstico, marfiles velados y acentos cálidos mínimos de memoria íntima. + lighting_setup: Luz difusa de cielo cubierto con contraluces tenues en bruma, preservando ambigüedad entre vigilia y sueño. + material_texture: Agua quieta, juncos húmedos, muros antiguos de yeso y madera envejecida con acabado pictórico de alta sutileza. + render_quality: Terminación premium de tono introspectivo, con jerarquía suave y microdetalle atmosférico orientado a sensación de tránsito. + spatial_distortion: Profundidad por capas de neblina y arquitectura no euclidiana ligera que sugiere pasaje interior. + atmosphere: Doliente, extraña, contemplativa, en búsqueda. + key_features: Silueta de ave guía, portales de torre y pantano, quietud suspendida y composición de umbral. + creative_brief: Diseña una gramática transferable de duelo-onírico para cualquier sujeto usando marisma, arquitectura umbral y luz velada como lenguaje de transformación interna. + avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-284.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-284.yaml index c8de87af..f81a870a 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-284.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-284.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - studio-masterpieces visualDna: - aesthetic: Brass robots, cloud-sea wonder, floating island myth, children against militarized greed, steampunk adventure carried by open skies and hand-painted warmth - form_and_line: Refined feature-animation linework, variable line weight, animation-quality contour, expressive in-betweening - color_palette: Rich painterly hues, nuanced gradients, cinematic color scripting, atmospheric palette depth, emotional color temperature - lighting_setup: Cinematic natural light, atmospheric depth, volumetric god rays, soft aerial perspective, golden-hour warmth - material_texture: Lush painted backgrounds, delicate environmental detail, canvas-like texture, foliage density, hand-painted surface richness - render_quality: Premium animated-film frame, theatrical-grade production polish, nuanced lighting passes, filmic image quality - spatial_distortion: Naturalistic expressive proportions, studied anatomical realism, believable scale relationships, lived-in spatial design - atmosphere: Adventurous, skybound, wondrous, brave - key_features: Floating-island vistas, brass robot motifs, cloud-sea backdrops, child-duo silhouettes, sky-adventure motion - creative_brief: Brass limbs reaching through clouds toward a home that floats above all the world greed, a testament to civilizations that chose the sky over conquest. Cloud-sea currents carry a girl and boy through ruins that hum with ancient memory, their adventure a rebuttal to every general who mistakes power for purpose. The floating island is not a destination but a promise written in laputa stone and held aloft by belief. + aesthetic: Aventura aero-mecánica de maravilla clásica, con espíritu de descubrimiento infantil y contraste entre tecnología noble y ambición militar. + form_and_line: Contornos claros de ingeniería retro, siluetas de vuelo dinámicas y curvas orgánicas que suavizan la mecánica de latón. + color_palette: Cielos cerúleos amplios, dorados envejecidos de metal, verdes de ruina suspendida y blancos de nube brillante. + lighting_setup: Iluminación de gran altitud con contraluces solares, volumen de nubes y destellos selectivos sobre superficies metálicas. + material_texture: Latón pulido y oxidado, piedra aérea erosionada, vegetación colgante y telas de aventura con desgaste funcional. + render_quality: Acabado premium de aventura cinematográfica, lectura limpia de escala aérea y claridad de acción en planos abiertos. + spatial_distortion: Perspectiva vertical expansiva con sensación de caída y ascenso continuo entre estratos de nubes. + atmosphere: Maravillosa, valiente, libre, expedicionaria. + key_features: Islas flotantes, robots de latón benevolentes, dúo juvenil en tránsito aéreo y ruinas tecnológicas en altura. + creative_brief: Construye una gramática reusable de aventura celeste donde cualquier sujeto se lea como explorador de civilizaciones suspendidas mediante luz de altura, metales retro y composición vertical abierta. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-285.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-285.yaml index 38275166..f56fb3fc 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-285.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-285.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - studio-masterpieces visualDna: - aesthetic: Post-apocalyptic ecology myth, glider silhouette over toxic forests, giant insects, compassion amid planetary ruin, wind and pollen carrying epic spiritual urgency - form_and_line: Refined feature-animation linework, variable line weight, animation-quality contour, expressive in-betweening - color_palette: Rich painterly hues, nuanced gradients, cinematic color scripting, atmospheric palette depth, emotional color temperature - lighting_setup: Cinematic natural light, atmospheric depth, volumetric god rays, soft aerial perspective, golden-hour warmth - material_texture: Lush painted backgrounds, delicate environmental detail, canvas-like texture, foliage density, hand-painted surface richness - render_quality: Premium animated-film frame, theatrical-grade production polish, nuanced lighting passes, filmic image quality - spatial_distortion: Naturalistic expressive proportions, studied anatomical realism, believable scale relationships, lived-in spatial design - atmosphere: Prophetic, ecological, windswept, compassionate - key_features: Glider profile, toxic-jungle color, giant-insect scale, wind-swept cloak movement, ecological epic framing - creative_brief: Spores do not kill but purify, and only one who flies into the toxic wind with open arms can read the planet silent prophecy. Giant insects are not monsters but custodians of a deeper ecology that human fear cannot parse. Compassion becomes the only technology that survives the apocalypse intact. + aesthetic: Epopeya eco-profética postcolapso donde lo tóxico se resignifica como proceso de purificación y reconciliación planetaria. + form_and_line: Siluetas aerodinámicas de planeo, curvas orgánicas para megafauna insectoide y trazo firme en capas de viento. + color_palette: Ocres contaminados, turquesas velados, dorados de polvo esporal y azules de cielo quebrado por neblina tóxica. + lighting_setup: Luz ventosa de alto contraste con rayos filtrados por esporas, generando profundidad y pulso espiritual ambiental. + material_texture: Superficies bio-minerales, membranas orgánicas iridiscentes, telas de vuelo erosionadas y terreno sedimentado. + render_quality: Calidad fílmica premium con prioridad en escala ecológica, legibilidad aérea y dramatismo ambiental sostenido. + spatial_distortion: Horizonte amplio con compresión atmosférica y flujos diagonales que guían la mirada como corrientes de viento. + atmosphere: Profética, compasiva, eólica, reverente. + key_features: Perfil de planeador, ecosistema tóxico vivo, insectos colosales no monstruosos y gestualidad de empatía activa. + creative_brief: Define un estilo reusable de mito ecológico donde cualquier sujeto dialogue con un mundo herido mediante viento, esporas luminosas y composición de reconciliación entre humano y biosfera. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-286.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-286.yaml index f15b94f6..e14ec23a 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-286.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-286.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - studio-masterpieces visualDna: - aesthetic: Single-parent devotion across changing seasons, wolf-child wildness, mountain houses, weather-rich realism and fairy-tale softness in one maternal frame - form_and_line: Refined feature-animation linework, variable line weight, animation-quality contour, expressive in-betweening - color_palette: Rich painterly hues, nuanced gradients, cinematic color scripting, atmospheric palette depth, emotional color temperature - lighting_setup: Cinematic natural light, atmospheric depth, volumetric god rays, soft aerial perspective, golden-hour warmth - material_texture: Lush painted backgrounds, delicate environmental detail, canvas-like texture, foliage density, hand-painted surface richness - render_quality: Premium animated-film frame, theatrical-grade production polish, nuanced lighting passes, filmic image quality - spatial_distortion: Naturalistic expressive proportions, studied anatomical realism, believable scale relationships, lived-in spatial design - atmosphere: Tender, rural, weathered, loving - key_features: Seasonal countryside, parent-child motion, rain-swept fields, mountain-house intimacy, transformation softness - creative_brief: Rain washes the mountain house clean of everything but the fierce tenderness of a mother raising children who belong to two worlds and fully to neither. Seasons paint the countryside while she plants, repairs, and holds on with hands that have learned to let go. The wolf and the child are one creature in the soft light of morning, and she is the bridge between what they are and what they choose to become. + aesthetic: Realismo rural afectivo con núcleo maternal, integrando cotidianidad doméstica y lirismo de metamorfosis en clave estacional. + form_and_line: Línea suave de intimidad familiar, anatomía naturalista cálida y gestualidad de cuidado en movimiento diario. + color_palette: Verdes de montaña húmeda, marrones de madera habitada, grises lluviosos y dorados suaves de hogar encendido. + lighting_setup: Luz meteorológica cambiante por estación, interiores cálidos de refugio y exteriores nublados con contraste bajo. + material_texture: Tierra labrada, madera reparada, ropa cotidiana mojada por lluvia y vegetación de ciclo anual visible. + render_quality: Acabado premium de drama humano, con foco en microemociones, ritmo doméstico y continuidad temporal de crecimiento. + spatial_distortion: Espacialidad naturalista con composición de proximidad familiar y apertura de paisaje para respiración emocional. + atmosphere: Tierna, laboriosa, nostálgica, protectora. + key_features: Casa de montaña vivida, dinámica madre e hijos, clima como narrador y transformación integrada sin espectáculo. + creative_brief: Crea una gramática reusable de maternidad estacional para cualquier sujeto combinando textura rural, luz climática y lenguaje corporal de cuidado persistente. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-287.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-287.yaml index 164e4395..ac0064fe 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-287.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-287.yaml @@ -12,16 +12,17 @@ tags: - anime-classics-and-prestige - studio-masterpieces visualDna: - aesthetic: Digital fantasy stagecraft, whale-shaped servers, pop-idol catharsis, online identity and emotional spectacle rendered with ornate luminous scale - form_and_line: Refined feature-animation linework, variable line weight, animation-quality contour, expressive in-betweening - color_palette: Rich painterly hues, nuanced gradients, cinematic color scripting, atmospheric palette depth, emotional color temperature - lighting_setup: Cinematic natural light, atmospheric depth, volumetric god rays, soft aerial perspective, golden-hour warmth - material_texture: Lush painted backgrounds, delicate environmental detail, canvas-like texture, foliage density, hand-painted surface richness - render_quality: Premium animated-film frame, theatrical-grade production polish, nuanced lighting passes, filmic image quality - spatial_distortion: Naturalistic expressive proportions, studied anatomical realism, believable scale relationships, lived-in spatial design - atmosphere: Grand, digital, heartfelt, operatic - key_features: Virtual-cathedral geometry, pop-performance lighting, avatar elegance, online interface motifs, song-climax framing - creative_brief: A cathedral rises from server racks where a girl voice becomes architecture, her song rebuilding the digital world one note at a time. Within the whale-shaped lattice of data, identity is both armor and anthem, a performance so luminous it becomes indistinguishable from truth. The avatar is not a mask but the soul projected at the scale it always deserved. + aesthetic: Fantasía digital operática de gran escala donde identidad virtual, performance musical y arquitectura de datos se funden en una sola experiencia emocional. + form_and_line: Siluetas elegantes de avatar, curvas ornamentales de escenario y linework limpio para coreografías de voz y movimiento. + color_palette: Magentas y cianes luminosos, blancos perla de concierto, violetas profundos y gradientes iridiscentes de entorno virtual. + lighting_setup: Iluminación de show sinfónico con haces volumétricos, contraluces de escenario y acentos pulsantes sincronizados al clímax vocal. + material_texture: Superficies translúcidas tipo interfaz, metal pulido de pasarela digital y partículas de luz como materia escénica. + render_quality: Acabado premium de pop-opera virtual con nitidez de ícono, profundidad de espectáculo y jerarquía emocional contundente. + spatial_distortion: Arquitectura expansiva no literal con escalas catedralicias y perspectiva ascendente que enfatiza trascendencia performativa. + atmosphere: Grandiosa, catártica, conectiva, esperanzadora. + key_features: Geometría de catedral virtual, staging musical monumental, avatar central de alta elegancia y pulsos visuales de comunidad online. + creative_brief: Define un estilo reusable de ópera digital donde cualquier sujeto pueda volverse evento emotivo masivo mediante luz escénica, escala arquitectónica virtual y diseño de identidad luminosa. + avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-288.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-288.yaml index bf09646c..ace59c87 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-288.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-288.yaml @@ -12,16 +12,17 @@ tags: - anime-classics-and-prestige - studio-masterpieces visualDna: - aesthetic: Blue-sky school summer, leaping motion through ordinary neighborhoods, young regret and comedic consequence, warm clouds and temporal tenderness - form_and_line: Refined feature-animation linework, variable line weight, animation-quality contour, expressive in-betweening - color_palette: Rich painterly hues, nuanced gradients, cinematic color scripting, atmospheric palette depth, emotional color temperature - lighting_setup: Cinematic natural light, atmospheric depth, volumetric god rays, soft aerial perspective, golden-hour warmth - material_texture: Lush painted backgrounds, delicate environmental detail, canvas-like texture, foliage density, hand-painted surface richness - render_quality: Premium animated-film frame, theatrical-grade production polish, nuanced lighting passes, filmic image quality - spatial_distortion: Naturalistic expressive proportions, studied anatomical realism, believable scale relationships, lived-in spatial design - atmosphere: Youthful, breezy, wistful, playful - key_features: Rooftop and cloud framing, leaping-body motion, suburban summer light, time-jump iconography, youthful ensemble warmth - creative_brief: 'A leap rewinds the afternoon but every reversed moment tightens the knot between what could be and what was meant to happen. Rooftops become launch pads for second chances that teach the harshest lesson youth can learn: time is not a currency but a gift. Summer clouds bear witness to a girl who races against herself, losing and winning in the same breath.' + aesthetic: Juventud veraniega con elasticidad temporal ligera, combinando comedia de error cotidiano y melancolía de decisiones irreversibles. + form_and_line: Trazos ágiles para movimiento de salto, expresividad facial espontánea y siluetas escolares limpias de alta legibilidad. + color_palette: Azules de cielo brillante, blancos de nube cálida, verdes suburbanos suaves y acentos rosados de emoción adolescente. + lighting_setup: Sol de tarde alto con rebotes claros en azoteas, sombras suaves y brillo atmosférico de verano en expansión. + material_texture: Concreto de techo escolar, barandas metálicas calientes al sol, telas ligeras de uniforme y aire húmedo estival. + render_quality: Acabado cinematográfico fresco con prioridad en ritmo corporal, timing visual y lectura clara de loop temporal. + spatial_distortion: Perspectiva naturalista con elongación dinámica en saltos y microdeformación de trayectoria para sugerir rewind temporal. + atmosphere: Lúdica, nostálgica, aérea, impulsiva. + key_features: Azoteas como plataforma, nubes protagonistas, gestualidad de salto, iconografía temporal sutil y ensemble juvenil. + creative_brief: Crea una gramática reusable de verano temporal para cualquier sujeto usando luz de tarde, composición de salto y tensión entre juego y arrepentimiento. + avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-289.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-289.yaml index 71088d5e..9d08a7d8 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-289.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-289.yaml @@ -12,16 +12,17 @@ tags: - anime-classics-and-prestige - studio-masterpieces visualDna: - aesthetic: Monumental gothic emptiness, impossible vessels, sacred ruin, dream-like Christian symbolism and oceanic stillness inside a nearly wordless apocalyptic reverie - form_and_line: Refined feature-animation linework, variable line weight, animation-quality contour, expressive in-betweening - color_palette: Rich painterly hues, nuanced gradients, cinematic color scripting, atmospheric palette depth, emotional color temperature - lighting_setup: Cinematic natural light, atmospheric depth, volumetric god rays, soft aerial perspective, golden-hour warmth - material_texture: Lush painted backgrounds, delicate environmental detail, canvas-like texture, foliage density, hand-painted surface richness - render_quality: Premium animated-film frame, theatrical-grade production polish, nuanced lighting passes, filmic image quality - spatial_distortion: Naturalistic expressive proportions, studied anatomical realism, believable scale relationships, lived-in spatial design - atmosphere: Sacred, silent, dreamlike, mournful - key_features: Cathedral ruin scale, water-black emptiness, egg imagery, elongated silhouettes, sacred-symbolic composition - creative_brief: Water covers the cathedral floor, a mirror that reflects no god, only the hollow grandeur of belief abandoned to stillness. An egg cradled in thin fingers holds either everything or nothing, and the film refuses to answer which. Sacred images drift through ruined arches like forgotten prayers, their meaning no longer remembered but still unbearably felt. + aesthetic: Alegoría gótica de silencio apocalíptico, con monumentalidad sacra vaciada y simbolismo ambiguo de contemplación extrema. + form_and_line: Línea fina y ascética, figuras alargadas casi litúrgicas y contornos de ruina monumental con ritmo arquitectónico severo. + color_palette: Azul petróleo profundo, grises de piedra mojada, marfiles apagados y negros acuosos de profundidad incierta. + lighting_setup: Iluminación baja y difusa con reflejos acuáticos fríos, focos puntuales de vidriera rota y sombras de gran masa. + material_texture: Piedra erosionada, superficies inundadas espejadas, madera antigua saturada y pátina ritual de abandono. + render_quality: Acabado premium de contemplación lenta, detalle textural sobrio y jerarquía simbólica por vacío compositivo. + spatial_distortion: Escala catedralicia sobredimensionada con perspectiva reverencial que reduce lo humano a signo frágil. + atmosphere: Sacra, muda, onírica, doliente. + key_features: Ruina monumental inundada, símbolo ovoide ambiguo, siluetas elongadas y composición devocional de vacío. + creative_brief: Diseña un lenguaje reusable de misticismo en ruina donde cualquier sujeto quede absorbido por silencio arquitectónico, agua oscura y simbología no resuelta. + avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-290.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-290.yaml index af9c0dfd..989a6a7b 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-290.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-290.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - studio-masterpieces visualDna: - aesthetic: Heavy riot armor, political sorrow, urban smoke and red optics, impossible tenderness trapped inside oppressive security structures and alternate-history unrest - form_and_line: Refined feature-animation linework, variable line weight, animation-quality contour, expressive in-betweening - color_palette: Rich painterly hues, nuanced gradients, cinematic color scripting, atmospheric palette depth, emotional color temperature - lighting_setup: Cinematic natural light, atmospheric depth, volumetric god rays, soft aerial perspective, golden-hour warmth - material_texture: Lush painted backgrounds, delicate environmental detail, canvas-like texture, foliage density, hand-painted surface richness - render_quality: Premium animated-film frame, theatrical-grade production polish, nuanced lighting passes, filmic image quality - spatial_distortion: Naturalistic expressive proportions, studied anatomical realism, believable scale relationships, lived-in spatial design - atmosphere: Oppressive, tragic, political, smoky - key_features: Riot-armor silhouettes, red optics, smoke-loaded streets, political unrest framing, tragic close-up tension - creative_brief: Red optics cut through smoke like a question no one inside the armor is allowed to ask. The streets burn not with revolution but with the slow erosion of a soul forced to choose between duty and the person it was supposed to protect. Behind every visor a fairy tale rots, its moral inverted into the machinery of state violence. + aesthetic: Tragedia político-militar de seguridad estatal, con iconografía paramilitar pesada y humanidad reprimida bajo doctrina de control. + form_and_line: Siluetas blindadas macizas, contornos rígidos de equipo táctico y encuadres cerrados que enfatizan alienación del cuerpo. + color_palette: Grises carbón industriales, rojos ópticos de amenaza, marrones de humo urbano y desaturados fríos de crisis prolongada. + lighting_setup: Contraluces de incendio y faros tácticos, neblina densa de disturbio y highlights selectivos en visores y metal. + material_texture: Armadura mate con abrasión, concreto urbano ennegrecido, humo particulado y telas técnicas de uso operativo. + render_quality: Acabado cinematográfico severo con lectura táctica impecable, detalle industrial y dramatismo psicológico contenido. + spatial_distortion: Perspectiva urbana comprimida por barricadas y humo, con profundidad fragmentada que sugiere cerco institucional. + atmosphere: Opresiva, trágica, disciplinaria, crepuscular. + key_features: Visores rojos, masa blindada, calle en humo, tensión de proximidad emocional y signos de conflicto civil. + creative_brief: Construye una gramática reusable de melancolía paramilitar para cualquier sujeto, combinando ópticas rojas, densidad de humo y composición de deber contra conciencia. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-291.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-291.yaml index 00ca85e3..e2a88a56 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-291.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-291.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - studio-masterpieces visualDna: - aesthetic: Modern-school emotional realism, bridges and rivers, apology and disability awareness, soft city sunlight, longing and accountability rendered with humane patience - form_and_line: Refined feature-animation linework, variable line weight, animation-quality contour, expressive in-betweening - color_palette: Rich painterly hues, nuanced gradients, cinematic color scripting, atmospheric palette depth, emotional color temperature - lighting_setup: Cinematic natural light, atmospheric depth, volumetric god rays, soft aerial perspective, golden-hour warmth - material_texture: Lush painted backgrounds, delicate environmental detail, canvas-like texture, foliage density, hand-painted surface richness - render_quality: Premium animated-film frame, theatrical-grade production polish, nuanced lighting passes, filmic image quality - spatial_distortion: Naturalistic expressive proportions, studied anatomical realism, believable scale relationships, lived-in spatial design - atmosphere: Tender, remorseful, airy, human - key_features: Riverside paths, modern school detail, hand-focused emotional framing, apology body language, soft city light - creative_brief: An apology crosses a bridge in soft city light, each step weighted with years spent learning that cruelty is not erased but accounted for. Hands speak a language the voice abandoned, forming words that reach toward the person once pushed away. The river does not forget but flows forward, teaching that forgiveness is not a gift to the forgiven but a release for the forgiver. + aesthetic: Drama íntimo de reparación emocional en entorno escolar-contemporáneo, centrado en vulnerabilidad, escucha y dignidad relacional. + form_and_line: Línea delicada de microgesto, énfasis en manos, hombros y mirada baja, con contornos limpios que priorizan lectura afectiva sobre acción. + color_palette: Azules de río calmado, beiges urbanos suaves, verdes pálidos de primavera y acentos rosados de empatía contenida. + lighting_setup: Luz natural de tarde nublada con difusión amable, contraste bajo y brillos discretos que favorecen intimidad conversacional. + material_texture: Hormigón de puente húmedo, telas escolares cotidianas, barandas metálicas gastadas y reflejos acuosos serenos. + render_quality: Acabado premium de realismo sensible con foco en expresión corporal mínima y continuidad emocional entre planos. + spatial_distortion: Espacialidad naturalista abierta con distancia interpersonal modulada como métrica visual de confianza y perdón. + atmosphere: Tierno, arrepentido, respirable, humano. + key_features: Composición de dos cuerpos en reconciliación, manos como núcleo semántico, ribera urbana y silencios visuales elocuentes. + creative_brief: Construye una gramática reusable de reconciliación humana para cualquier sujeto usando microgesto, luz suave y espacio interpersonal como lenguaje principal. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-292.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-292.yaml index 047f33bd..0f763e15 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-292.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-292.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - studio-masterpieces visualDna: - aesthetic: Historical biwa performance exploding into glam-rock spectacle, distorted limbs turned into stage identity, medieval Japan colliding with ecstatic music-theater motion - form_and_line: Refined feature-animation linework, variable line weight, animation-quality contour, expressive in-betweening - color_palette: Rich painterly hues, nuanced gradients, cinematic color scripting, atmospheric palette depth, emotional color temperature - lighting_setup: Cinematic natural light, atmospheric depth, volumetric god rays, soft aerial perspective, golden-hour warmth - material_texture: Lush painted backgrounds, delicate environmental detail, canvas-like texture, foliage density, hand-painted surface richness - render_quality: Premium animated-film frame, theatrical-grade production polish, nuanced lighting passes, filmic image quality - spatial_distortion: Naturalistic expressive proportions, studied anatomical realism, believable scale relationships, lived-in spatial design - atmosphere: Ecstatic, theatrical, historical, rebellious - key_features: Stage-performance poses, historical costume-glam fusion, biwa instrumentation, audience-energy framing, body-transformation iconography - creative_brief: A biwa string snaps and the Heike dead rise not in vengeance but in glam rock glory, distorted bodies becoming the instruments of their own reclamation. Medieval Japan ghosts discover electricity, their grief transformed into a stage spectacle that history cannot silence. The performance is not rebellion but resurrection, every chord a name spoken aloud for the first time in centuries. + aesthetic: Teatro musical histórico-punk con energía de resurrección escénica, donde tradición narrativa y performance glam se fusionan sin nostalgia conservadora. + form_and_line: Trazos elásticos y angulares para corporalidad performativa, siluetas exageradas de escenario y pose dramática de alta visibilidad. + color_palette: Rojos de telón, púrpuras eléctricos, negros de escenario y dorados antiguos reactivados como acentos de linaje. + lighting_setup: Contraluces de concierto, haces dinámicos y cambios de temperatura por clímax rítmico para enfatizar catarsis colectiva. + material_texture: Tejidos históricos reinterpretados con brillo de show, madera de tarima, cuerdas de instrumento y humo de performance. + render_quality: Acabado premium de ópera-rock animada con foco en impacto gestual, lectura coral y ritmo visual musical. + spatial_distortion: Espacio escénico expansivo con perspectiva de público y compresión frontal en momentos de explosión performativa. + atmosphere: Extático, rebelde, ceremonial, liberador. + key_features: Fusión vestuario histórico-glam, iconografía musical central, cuerpos transformados en manifiesto escénico y audiencia en trance. + creative_brief: Diseña una gramática reusable de teatro-punk histórico para cualquier sujeto, usando pose musical extrema, luz de concierto y ornamentación de linaje resignificada. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-293.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-293.yaml index 76b88250..c63c7742 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-293.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-293.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - studio-masterpieces visualDna: - aesthetic: Urban kid mythology, crowded roofs and alleys, rough sacred city energy, innocence and violence stacked vertically in a dense modern labyrinth - form_and_line: Refined feature-animation linework, variable line weight, animation-quality contour, expressive in-betweening - color_palette: Rich painterly hues, nuanced gradients, cinematic color scripting, atmospheric palette depth, emotional color temperature - lighting_setup: Cinematic natural light, atmospheric depth, volumetric god rays, soft aerial perspective, golden-hour warmth - material_texture: Lush painted backgrounds, delicate environmental detail, canvas-like texture, foliage density, hand-painted surface richness - render_quality: Premium animated-film frame, theatrical-grade production polish, nuanced lighting passes, filmic image quality - spatial_distortion: Naturalistic expressive proportions, studied anatomical realism, believable scale relationships, lived-in spatial design - atmosphere: Rough, spiritual, crowded, feral - key_features: Dense city alleys, child silhouette contrast, rooftop motion, rough sacred iconography, urban myth staging - creative_brief: Two boys own the city vertical chaos like stray gods born from concrete and corrugated tin, their rooftop kingdom held together by nothing but shared survival. Every alley is a myth waiting to happen, every shadow a lesson in the animal logic of streets that raise their own. The city breathes through them, sacred and feral in equal measure. + aesthetic: Mitología urbana callejera con pulso infantil feroz, donde la ciudad densa se vuelve sistema espiritual y territorio de supervivencia. + form_and_line: Línea rugosa y nerviosa, siluetas compactas en movimiento vertical y contornos irregulares que transmiten impulso instintivo. + color_palette: Amarillos sucios de sodio, cianes de señal urbana, rojos gastados de concreto pintado y sombras petroladas profundas. + lighting_setup: Iluminación urbana mixta con focos de calle, interiores contaminados de neón y contraluces duros en azotea. + material_texture: Chapa corrugada, muro descascarado, cableado expuesto, asfalto caliente y suciedad cotidiana de barrio vivo. + render_quality: Terminación premium de crudeza controlada con alta legibilidad espacial en caos urbano multicapa. + spatial_distortion: Perspectiva vertical laberíntica con compresión de callejón y saltos de altura que refuerzan dominio territorial. + atmosphere: Áspera, sagrada, abarrotada, feral. + key_features: Azoteas interconectadas, pasajes estrechos, presencia infantil dominante y símbolos urbanos convertidos en tótems. + creative_brief: Crea una gramática reusable de mito callejero para cualquier sujeto usando textura urbana densa, verticalidad agresiva y energía de supervivencia compartida. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-294.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-294.yaml index 9d9fc563..839f97ba 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-294.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-294.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - studio-masterpieces visualDna: - aesthetic: Explosive mixed-style self-reinvention, hot-blooded panic, abstract transitions, impossible comedic near-death and liberation surging through every visual decision - form_and_line: Refined feature-animation linework, variable line weight, animation-quality contour, expressive in-betweening - color_palette: Rich painterly hues, nuanced gradients, cinematic color scripting, atmospheric palette depth, emotional color temperature - lighting_setup: Cinematic natural light, atmospheric depth, volumetric god rays, soft aerial perspective, golden-hour warmth - material_texture: Lush painted backgrounds, delicate environmental detail, canvas-like texture, foliage density, hand-painted surface richness - render_quality: Premium animated-film frame, theatrical-grade production polish, nuanced lighting passes, filmic image quality - spatial_distortion: Naturalistic expressive proportions, studied anatomical realism, believable scale relationships, lived-in spatial design - atmosphere: Liberating, insane, bright, kinetic - key_features: Mixed-media bursts, escape-motion framing, psychedelic transitions, comic panic acting, freedom iconography - creative_brief: Death becomes a door and the door opens into a sprint where every frame sheds its own skin in pursuit of something wilder. The universe laughs at itself through watercolor dissolves, photographic collage, and line art that refuses to sit still. Liberation is not a state but a velocity, and the image accelerates until it escapes its own definition. + aesthetic: Psicodelia de reinvención radical con lógica mutante de estilos, donde la imagen cambia de piel como motor narrativo principal. + form_and_line: Hibridación de trazo caricatural, anatomía distorsionada y fragmentos gráficos que alternan registro cómico y existencial. + color_palette: Saturaciones altas en magenta, cian, naranja ácido y negros de corte abrupto para choques perceptivos deliberados. + lighting_setup: Iluminación no naturalista, flashes de transición y bloques de luz plana que marcan saltos de estado mental. + material_texture: Collage gráfico, pinceladas abruptas, manchas digitales y capas visuales de apariencia heterogénea intencional. + render_quality: Acabado premium de caos controlado, con claridad de ritmo interno pese a la ruptura constante de lenguaje visual. + spatial_distortion: Espacio elástico con deformaciones súbitas, cámaras imposibles y continuidad quebrada orientada a vértigo liberador. + atmosphere: Liberadora, delirante, brillante, cinética. + key_features: Estallidos mixed-media, transiciones violentas, corporalidad en fuga y semántica de renacimiento por velocidad. + creative_brief: Construye una gramática reusable de mutación psicodélica para cualquier sujeto, combinando colisión de estilos, distorsión espacial y energía de escape continuo. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-295.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-295.yaml index fed4c8c0..ecfacbb6 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-295.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-295.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - studio-masterpieces visualDna: - aesthetic: Delicate school music drama, pale interior light, oboe and flute emotional spacing, friendship rendered through tiny movements and corridor air - form_and_line: Refined feature-animation linework, variable line weight, animation-quality contour, expressive in-betweening - color_palette: Rich painterly hues, nuanced gradients, cinematic color scripting, atmospheric palette depth, emotional color temperature - lighting_setup: Cinematic natural light, atmospheric depth, volumetric god rays, soft aerial perspective, golden-hour warmth - material_texture: Lush painted backgrounds, delicate environmental detail, canvas-like texture, foliage density, hand-painted surface richness - render_quality: Premium animated-film frame, theatrical-grade production polish, nuanced lighting passes, filmic image quality - spatial_distortion: Naturalistic expressive proportions, studied anatomical realism, believable scale relationships, lived-in spatial design - atmosphere: Fragile, musical, restrained, aching - key_features: Instrument detail, hallway spacing, delicate body language, pale interior lighting, sound-as-distance imagery - creative_brief: An oboe line stretches across a hallway, the space between notes measuring the precise distance of a friendship too delicate to name. Pale light falls on the gap between two girls who communicate in the tiny movements of feet and eyelashes and the angle of a held breath. The blue bird is not one of them but the space they will soon learn to fill with music rather than silence. + aesthetic: Cámara musical intimista de precisión emocional, enfocada en distancia afectiva y resonancia de amistad en clave de cámara de concierto. + form_and_line: Trazo fino y reservado, coreografía de microgestos y siluetas delicadas que priorizan pausa, respiración y timing entre personajes. + color_palette: Marfiles pálidos, azules deslavados, grises de pasillo silencioso y dorados suaves de madera instrumental. + lighting_setup: Luz interior filtrada de baja intensidad con sombras blandas que sostienen vulnerabilidad sin dramatismo excesivo. + material_texture: Barniz de instrumento, suelos encerados escolares, telas ligeras de uniforme y aire suspendido de sala de ensayo. + render_quality: Acabado premium de alta sutileza, lectura de proximidad emocional y refinamiento acústico traducido a imagen. + spatial_distortion: Espacio longitudinal de pasillo usado como métrica de distancia vincular, con profundidad limpia y mínima distorsión. + atmosphere: Frágil, musical, contenida, punzante. + key_features: Detalle de oboe y flauta, separación corporal medida, gestualidad mínima y composición de silencio compartido. + creative_brief: Define una gramática reusable de intimidad musical para cualquier sujeto, usando microgesto, luz pálida y distancia espacial como partitura emocional. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-296.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-296.yaml index f565e511..00c09ebc 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-296.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-296.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - studio-masterpieces visualDna: - aesthetic: Retro-futurist city towers, art-deco industrial grandeur, boy-and-android innocence, class conflict and monumental machinery in warm old-cinema wonder - form_and_line: Refined feature-animation linework, variable line weight, animation-quality contour, expressive in-betweening - color_palette: Rich painterly hues, nuanced gradients, cinematic color scripting, atmospheric palette depth, emotional color temperature - lighting_setup: Cinematic natural light, atmospheric depth, volumetric god rays, soft aerial perspective, golden-hour warmth - material_texture: Lush painted backgrounds, delicate environmental detail, canvas-like texture, foliage density, hand-painted surface richness - render_quality: Premium animated-film frame, theatrical-grade production polish, nuanced lighting passes, filmic image quality - spatial_distortion: Naturalistic expressive proportions, studied anatomical realism, believable scale relationships, lived-in spatial design - atmosphere: Grand, nostalgic, metallic, human - key_features: Deco skyline forms, android character contrast, monumental machinery, crowd-class scale, retro-future city framing - creative_brief: Art deco towers scrape a sky that looks backward and forward simultaneously, holding a boy and an android in the warm amber of old cinema wonder. Monuments to industry dominate class divisions that machinery was meant to erase but only deepened. Innocence becomes the most radical technology when it refuses to distinguish between the human heart and the mechanical one. + aesthetic: Retrofuturismo art-decó monumental con tensión de clase, donde asombro tecnológico clásico convive con melancolía industrial humanista. + form_and_line: Contorno arquitectónico robusto, geometría decó escalonada y contraste de siluetas orgánicas-humanoides frente a maquinaria masiva. + color_palette: Ámbar cinematográfico, verdes petróleo industriales, cremas envejecidos y acentos cromados de ingeniería urbana. + lighting_setup: Iluminación de ciudad vertical con bruma cálida, contraluces de rascacielos y brillos controlados sobre metal. + material_texture: Acero remachado, mármol art-decó, cristal antiguo y superficies mecánicas con pátina de uso civil. + render_quality: Acabado premium de gran espectáculo urbano con lectura jerárquica impecable entre escala humana y escala sistémica. + spatial_distortion: Perspectiva ascendente de megaciudad con profundidad estratificada por clases y flujos de movilidad vertical. + atmosphere: Grandiosa, nostálgica, metálica, empática. + key_features: Skyline decó icónico, maquinaria colosal, contraste niño-androide y composición social en capas. + creative_brief: Construye una gramática reusable de retrofuturo humanista para cualquier sujeto, articulando geometría decó, escala industrial y ternura tecnológica. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-297.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-297.yaml index 7cd2511b..38b6c081 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-297.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-297.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - studio-masterpieces visualDna: - aesthetic: Hyper-detailed rain, shoes and leaves, quiet age-gap longing, garden pavilion intimacy, wet surfaces carrying impossible emotional precision - form_and_line: Refined feature-animation linework, variable line weight, animation-quality contour, expressive in-betweening - color_palette: Rich painterly hues, nuanced gradients, cinematic color scripting, atmospheric palette depth, emotional color temperature - lighting_setup: Cinematic natural light, atmospheric depth, volumetric god rays, soft aerial perspective, golden-hour warmth - material_texture: Lush painted backgrounds, delicate environmental detail, canvas-like texture, foliage density, hand-painted surface richness - render_quality: Premium animated-film frame, theatrical-grade production polish, nuanced lighting passes, filmic image quality - spatial_distortion: Naturalistic expressive proportions, studied anatomical realism, believable scale relationships, lived-in spatial design - atmosphere: Rainy, intimate, lonely, exquisite - key_features: Rain-surface detail, pavilion framing, shoe-and-step motifs, wet foliage reflections, emotionally charged stillness - creative_brief: Every raindrop becomes a lens, magnifying the unspoken between two people who meet in a garden pavilion as if by accident but stay by design. Shoes left beside a wet bench hold more biography than any dialogue could bear. The garden is not a setting but a confidant, holding their silence with the patience of moss and the precision of falling water. + aesthetic: Lirismo pluvial hiperobservacional, donde intimidad adulta y deseo contenido se expresan a través de materia húmeda y pausa contemplativa. + form_and_line: Línea pulcra y elegante, anatomía naturalista serena y encuadres de detalle que priorizan objetos-cuerpo como signos emocionales. + color_palette: Verdes de jardín saturados por lluvia, grises perlados, negros húmedos y acentos piel de baja saturación. + lighting_setup: Luz de día lluvioso con reflexión especular en superficies mojadas y contraste delicado de pabellón cubierto. + material_texture: Gotas sobre follaje, madera barnizada húmeda, concreto encharcado y cuero de calzado con brillo de lluvia. + render_quality: Acabado premium de refinamiento atmosférico extremo, con foco en microdetalle material y silencio expresivo. + spatial_distortion: Espacio naturalista íntimo con profundidad por cortinas de lluvia y capas de vegetación reflectante. + atmosphere: Lluviosa, íntima, solitaria, exquisita. + key_features: Pabellón-jardín, huellas y zapatos como narrativa, detalle de agua milimétrico y quietud de alta carga emocional. + creative_brief: Diseña una gramática reusable de intimidad bajo lluvia para cualquier sujeto, usando textura acuosa, objetos cotidianos y composición de silencio compartido. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-298.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-298.yaml index 51569e33..35b28903 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-298.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-298.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - studio-masterpieces visualDna: - aesthetic: Nightlife romance rendered as a whimsical city odyssey, pub interiors, surreal side quests, warm chaos and literary flirtation rushing through one magical evening - form_and_line: Refined feature-animation linework, variable line weight, animation-quality contour, expressive in-betweening - color_palette: Rich painterly hues, nuanced gradients, cinematic color scripting, atmospheric palette depth, emotional color temperature - lighting_setup: Cinematic natural light, atmospheric depth, volumetric god rays, soft aerial perspective, golden-hour warmth - material_texture: Lush painted backgrounds, delicate environmental detail, canvas-like texture, foliage density, hand-painted surface richness - render_quality: Premium animated-film frame, theatrical-grade production polish, nuanced lighting passes, filmic image quality - spatial_distortion: Naturalistic expressive proportions, studied anatomical realism, believable scale relationships, lived-in spatial design - atmosphere: Tipsy, whimsical, urban, affectionate - key_features: Night-street glow, pub clutter, festival-night momentum, literary props, whimsical encounter staging - creative_brief: One Kyoto evening stretches into an impossible odyssey where every pub doorway opens onto a different genre of joy. Literary references tumble through the streets like drunk philosophers chasing a girl who chases nothing but the night itself. Romance is not a destination but the particular velocity of a city in love with its own strangeness. + aesthetic: Comedia romántica nocturna de deriva urbana, con tono etílico-lúdico y surrealismo social de encuentros encadenados. + form_and_line: Trazo ágil de comedia de situación, siluetas expresivas de tránsito peatonal y staging coral de ciudad festiva. + color_palette: Naranjas de farol, rojos de izakaya, violetas nocturnos y verdes de neón suave para ritmo de ronda nocturna. + lighting_setup: Iluminación nocturna cálida por locales y señalética, con contrastes dinámicos que favorecen sensación de aventura improvisada. + material_texture: Madera de bar, vidrio empañado, papel impreso de afiches y pavimento urbano con brillo de noche húmeda. + render_quality: Acabado premium de odisea urbana ligera, con legibilidad alta en multiescena y pulso narrativo continuo. + spatial_distortion: Ciudad-laberinto amable con compresión de calle y expansión episódica por puertas y desvíos narrativos. + atmosphere: Etílica, caprichosa, urbana, afectuosa. + key_features: Calles nocturnas vibrantes, interiores de pub cargados, iconos literarios y encuentros excéntricos en cadena. + creative_brief: Construye una gramática reusable de odisea nocturna romántica para cualquier sujeto, combinando luz de barrio, caos cálido y deriva episódica con humor. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-299.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-299.yaml index 2c86fa77..e75ab2b7 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-299.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-299.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - studio-masterpieces visualDna: - aesthetic: Psychoanalytic dream parades, appliance-icon chaos, identity slippage, theater curtains and impossible transitions, carnival-density surrealism with polished motion logic - form_and_line: Refined feature-animation linework, variable line weight, animation-quality contour, expressive in-betweening - color_palette: Rich painterly hues, nuanced gradients, cinematic color scripting, atmospheric palette depth, emotional color temperature - lighting_setup: Cinematic natural light, atmospheric depth, volumetric god rays, soft aerial perspective, golden-hour warmth - material_texture: Lush painted backgrounds, delicate environmental detail, canvas-like texture, foliage density, hand-painted surface richness - render_quality: Premium animated-film frame, theatrical-grade production polish, nuanced lighting passes, filmic image quality - spatial_distortion: Naturalistic expressive proportions, studied anatomical realism, believable scale relationships, lived-in spatial design - atmosphere: Surreal, carnivalesque, invasive, dazzling - key_features: Dream-parade motifs, appliance iconography, stage-curtain transitions, identity-split framing, polished dream density - creative_brief: A parade marches from dream into waking, refrigerators and dolls and gods all dancing to a frequency that dissolves the boundary between therapist and patient. Identity peels away in strips like theater curtain, revealing not a true self but an infinite regression of possible selves. The carnival is not entertainment but invasion, and the mind has no immune system for what it secretly wants. + aesthetic: Surrealismo psicoanalítico de desfile invasivo, donde iconografía doméstica y teatralidad onírica colonizan la vigilia. + form_and_line: Contornos pulidos con rupturas súbitas, metamorfosis identitaria en cadena y coreografía de multitud simbólica. + color_palette: Primarios saturados de carnaval, dorados de escenario, negros profundos de inconsciente y pasteles inquietantes de objeto cotidiano. + lighting_setup: Iluminación de show onírico con focos teatrales, pulsos cromáticos y transiciones abruptas entre planos mentales. + material_texture: Superficies brillantes de objeto-pop, telas de telón, plástico simbólico y niebla escénica de densidad psicológica. + render_quality: Acabado premium de alta densidad visual con orden interno preciso para sostener legibilidad en caos simbólico. + spatial_distortion: Espacio no estable con colapso de fronteras sueño-vigilia y continuidad fluida entre escenarios incompatibles. + atmosphere: Surreal, carnavalesca, invasiva, deslumbrante. + key_features: Motivos de desfile onírico, objetos domésticos antropomorfos, transiciones de telón y fragmentación identitaria reiterada. + creative_brief: Diseña una gramática reusable de invasión onírica para cualquier sujeto, combinando desfile simbólico, teatralidad cromática y ruptura de fronteras mentales. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-300.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-300.yaml index 19a9927e..8e527f82 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-300.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-300.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - studio-masterpieces visualDna: - aesthetic: Poster-bright rescue spectacle, triangular flames, anti-naturalistic mecha firefighting, operatic rivals, maximal color-block motion and modern theatrical bravado - form_and_line: Refined feature-animation linework, variable line weight, animation-quality contour, expressive in-betweening - color_palette: Rich painterly hues, nuanced gradients, cinematic color scripting, atmospheric palette depth, emotional color temperature - lighting_setup: Cinematic natural light, atmospheric depth, volumetric god rays, soft aerial perspective, golden-hour warmth - material_texture: Lush painted backgrounds, delicate environmental detail, canvas-like texture, foliage density, hand-painted surface richness - render_quality: Premium animated-film frame, theatrical-grade production polish, nuanced lighting passes, filmic image quality - spatial_distortion: Naturalistic expressive proportions, studied anatomical realism, believable scale relationships, lived-in spatial design - atmosphere: Blazing, theatrical, graphic, triumphant - key_features: Triangular fire shapes, rescue-mecha silhouettes, poster-color blocking, rival hero staging, maximal graphic motion - creative_brief: Fire does not consume but announces, triangular flames reshaping the world into poster-sized declarations of impossible will. Mecha firefighters move through the inferno like brushstrokes on a canvas that refuses naturalism, every rescue a graphic choice. Rivalry ignites into opera, and the stage is a burning city that asks not to be saved but to be spectacular. + aesthetic: Espectáculo heroico hipergráfico de rescate mecha, con anti-naturalismo cromático y teatralidad de rivalidad en clave de póster vivo. + form_and_line: Contorno duro y dinámico, geometría angular dominante y siluetas de acción que privilegian impacto inmediato sobre detalle realista. + color_palette: Bloques intensos en cian, magenta, naranja fuego y amarillos eléctricos con negros limpios de separación gráfica. + lighting_setup: Iluminación extrema de incendio estilizado, contraluces violentos y flashes de alto contraste para clímax continuo. + material_texture: Superficies mecha lisas de acabado sintético, humo estilizado y fuego triangular tratado como forma gráfica. + render_quality: Acabado premium de acción maximalista con legibilidad de coreografía de rescate y jerarquía clara de héroe-antihéroe. + spatial_distortion: Perspectiva de gran angular heroica con deformación cinética orientada a velocidad, choque y espectáculo. + atmosphere: Incandescente, teatral, gráfica, triunfal. + key_features: Llamas triangulares, unidades de rescate mecha, color blocking extremo y staging de rivalidad operática. + creative_brief: Construye una gramática reusable de acción cromática mecha para cualquier sujeto, usando fuego geométrico, composición de póster y energía de rescate como eje visual. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-301.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-301.yaml index 468ad176..5f7b6e16 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-301.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-301.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 70s-and-80s-retro-anime visualDna: - aesthetic: Heroic bridge-deck drama, blue space oceans, giant battleship gravitas, analog control panels, humanity-faces-extinction sincerity and noble formation flying - form_and_line: Cel-era anime linework, bold contour strokes, vintage cel shading technique, hand-drawn frame precision - color_palette: Warm retro primaries, soft cel tones, muted saturation, faded film-stock hues - lighting_setup: Simple cel shadows, bold key light, flat directional shading, rim highlights - material_texture: Painted backgrounds, cel-texture edges, gouache matte finish, vintage grain texture - render_quality: Vintage broadcast-quality anime frame, analogue film grain, classic 80s telecine look, warm filmic softness - spatial_distortion: Retro anime proportions, elongated figures, dramatic forced perspective, classic character staging - atmosphere: Noble, urgent, cosmic, patriotic - key_features: Battleship silhouettes, bridge-console layouts, star-ocean backdrops, formation-fleet compositions, noble crew acting - creative_brief: Humanity whispers against the infinite black in this bridge-deck opera where analog consoles pulse with the weight of extinction. Scale shrinks flesh and stretches spirit until a single warship becomes the last cathedral of hope. Every frame holds both the cold geometry of stars and the warm tremor of a hand on the helm. + aesthetic: Ópera espacial militar de convoy interestelar, con liturgia de puente y épica de supervivencia civilizatoria. + form_and_line: Contorno grueso de ingeniería naval, siluetas de tripulación jerarquizadas y acting decidido de mando clásico setentero. + color_palette: Azules interestelares profundos, rojos de alerta analógica, grises metálicos y ámbares cálidos de consola. + lighting_setup: Iluminación de alarma táctica con pools rojos intermitentes, key de consola y sombra cel de alta urgencia. + material_texture: Paneles analógicos, metal naval pintado, monitores de fósforo y grano de telecine vintage. + render_quality: Acabado premium retro-broadcast con lectura táctica clara y dramatismo emocional de capitán-tripulación. + spatial_distortion: Perspectiva forzada de puente y escala cósmica monumental para enfatizar fragilidad humana frente al vacío. + atmosphere: Noble, urgente, cósmica, sacrificial. + key_features: Geometría de puente por rangos, consola analógica saturada, casco insignia volumétrico y coreografía de mando coral. + creative_brief: Construye una gramática reusable de mando naval interestelar para cualquier sujeto, priorizando ritual de puente, tensión de alerta y heroísmo de tripulación sincronizada. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-302.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-302.yaml index 005488e9..830a7164 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-302.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-302.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 70s-and-80s-retro-anime visualDna: - aesthetic: Romantic outlaw in deep space, skull insignia, lonely heroic piracy, cape whipping against starfields, melancholic rebellion at operatic scale - form_and_line: Cel-era anime linework, bold contour strokes, vintage cel shading technique, hand-drawn frame precision - color_palette: Warm retro primaries, soft cel tones, muted saturation, faded film-stock hues - lighting_setup: Simple cel shadows, bold key light, flat directional shading, rim highlights - material_texture: Painted backgrounds, cel-texture edges, gouache matte finish, vintage grain texture - render_quality: Vintage broadcast-quality anime frame, analogue film grain, classic 80s telecine look, warm filmic softness - spatial_distortion: Retro anime proportions, elongated figures, dramatic forced perspective, classic character staging - atmosphere: Romantic, lonely, rebellious, cosmic - key_features: Cape silhouette, skull insignia, starfield loneliness, bridge-deck poses, outlaw idealism framing - creative_brief: A lone silhouette cuts through the galaxy indifference, cape dragging across constellations like a brushstroke of defiance. The skull emblem becomes not a threat but a promise—that even in the void, someone remembers how to feel. Romance here is a blade drawn against loneliness itself. + aesthetic: Romanticismo corsario crepuscular, con ética disidente, elegancia fúnebre y mito del capitán errante. + form_and_line: Silueta de capa dominante, línea heroica elongada y contornos limpios de icono outlaw de alto contraste. + color_palette: Negros terciopelo, azules de abismo estelar, rojos vino de emblema y blancos fríos de insignia. + lighting_setup: Contraluz estelar dramático con rim fuerte sobre capa y rostro, sombras planas de fuerte identidad gráfica. + material_texture: Tejido pesado en movimiento, superficies de casco oscurecidas y señalética pirata de acabado clásico. + render_quality: Terminación premium retro-operática con foco en presencia de figura única y aura de leyenda errante. + spatial_distortion: Contraste de primerísimo monumental contra vacío astral negativo para acentuar aislamiento soberano. + atmosphere: Romántica, solitaria, rebelde, cósmica. + key_features: Emblema calavérico, capa al viento estelar, pose de mando disidente y composición de vacío alrededor. + creative_brief: Crea una gramática reusable de leyenda corsaria melancólica para cualquier sujeto, anclada en silueta imperial, viento estelar y código moral insumiso. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-303.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-303.yaml index 0c94c5d2..a34444cf 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-303.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-303.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 70s-and-80s-retro-anime visualDna: - aesthetic: Railway slicing through the cosmos, immortal sorrow, station-platform nostalgia, child traveler wonder mixed with elegiac infinite travel - form_and_line: Cel-era anime linework, bold contour strokes, vintage cel shading technique, hand-drawn frame precision - color_palette: Warm retro primaries, soft cel tones, muted saturation, faded film-stock hues - lighting_setup: Simple cel shadows, bold key light, flat directional shading, rim highlights - material_texture: Painted backgrounds, cel-texture edges, gouache matte finish, vintage grain texture - render_quality: Vintage broadcast-quality anime frame, analogue film grain, classic 80s telecine look, warm filmic softness - spatial_distortion: Retro anime proportions, elongated figures, dramatic forced perspective, classic character staging - atmosphere: Melancholic, wondrous, star-bound, poetic - key_features: Cosmic train imagery, station platforms, traveler duo staging, star-snow ambience, long-journey symbolism - creative_brief: Steam and starlight entwine as a locomotive threads the needle between planets and grief. Platform after platform, the journey gathers silence like snow on a window, each stop a question the stars refuse to answer. This is travel as meditation, where departure is forever and arrival is a ghost. + aesthetic: Balada ferroviaria cósmica de tránsito existencial, con nostalgia elegíaca y maravilla iniciática. + form_and_line: Línea clásica de locomotora y personajes estilizados, acting contemplativo y ritmo visual de trayecto largo. + color_palette: Azules noche ferroviaria, dorados de vagón antiguo, blancos de nieve estelar y sepias de recuerdo. + lighting_setup: Faroles de andén lechosos, compartimentos cálidos de vagón y contraluz de ventanilla sobre nieve estelar. + material_texture: Metal de vagón envejecido, vapor suave, madera de andén y película granulada de época. + render_quality: Acabado premium retro-poético con legibilidad narrativa de tránsito y emoción de despedida continua. + spatial_distortion: Perspectiva longitudinal de vías y vagones, con profundidad astral que extiende sensación de viaje eterno. + atmosphere: Melancólica, maravillada, sideral, meditativa. + key_features: Locomotora astral frontal, estaciones-umbral, motivo de equipaje simbólico y horizonte de vías infinitas. + creative_brief: Diseña una gramática reusable de peregrinaje ferroviario metafísico para cualquier sujeto, fusionando liturgia de estación, melancolía de trayecto y escala cósmica íntima. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-304.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-304.yaml index ca7cbde3..daea69dd 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-304.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-304.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 70s-and-80s-retro-anime visualDna: - aesthetic: Baroque court portraiture, officer uniforms, revolutionary romance, powdered elegance cracking under history, roses and tears moving through palace light - form_and_line: Cel-era anime linework, bold contour strokes, vintage cel shading technique, hand-drawn frame precision - color_palette: Warm retro primaries, soft cel tones, muted saturation, faded film-stock hues - lighting_setup: Simple cel shadows, bold key light, flat directional shading, rim highlights - material_texture: Painted backgrounds, cel-texture edges, gouache matte finish, vintage grain texture - render_quality: Vintage broadcast-quality anime frame, analogue film grain, classic 80s telecine look, warm filmic softness - spatial_distortion: Retro anime proportions, elongated figures, dramatic forced perspective, classic character staging - atmosphere: Regal, tragic, historical, dramatic - key_features: Baroque interiors, uniform detail, rose symbolism, court portrait poses, revolutionary tension - creative_brief: Powdered wigs crack under the strain of revolution while rose petals fall like torn pages from history ledger. Satin and sword share the same trembling light in halls where etiquette masks fury. Beauty here is the final dignity before the guillotine shadow. + aesthetic: Tragedia barroca pre-revolucionaria, con glamour cortesano quebrado y política sentimental de alto voltaje. + form_and_line: Línea ornamental y estilizada, posturas de retrato de corte y gestualidad trágica de alta teatralidad histórica. + color_palette: Marfiles empolvados, azules reales, rojos de rosa heráldica y dorados envejecidos de palacio. + lighting_setup: Luz palaciega lateral con sombras planas nobles, halos suaves sobre uniformes y contraste ceremonial. + material_texture: Brocado ceremonial, encaje rígido, mármol palaciego y pátina aristocrática al borde del derrumbe. + render_quality: Acabado premium retro-histórico con lectura de emblema visual y tensión dramática de destino. + spatial_distortion: Composición de salón profundo con eje de retrato frontal y presión de multitud histórica en segundo plano. + atmosphere: Regia, trágica, histórica, apasionada. + key_features: Uniforme de guardia nobiliaria, escalinata versallesca, heráldica floral y mirada trágica de retrato oficial. + creative_brief: Define una gramática reusable de melodrama barroco insurgente para cualquier sujeto, combinando protocolo aristocrático, sensualidad pictórica y fractura histórica inminente. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-305.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-305.yaml index 4e6c2c0d..11a4a9ce 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-305.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-305.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 70s-and-80s-retro-anime visualDna: - aesthetic: 80s TV color punch, alien-schoolgirl chaos, domestic slapstick, fluorescent city nights, sci-fi flirtation and loud romantic nonsense - form_and_line: Cel-era anime linework, bold contour strokes, vintage cel shading technique, hand-drawn frame precision - color_palette: Warm retro primaries, soft cel tones, muted saturation, faded film-stock hues - lighting_setup: Simple cel shadows, bold key light, flat directional shading, rim highlights - material_texture: Painted backgrounds, cel-texture edges, gouache matte finish, vintage grain texture - render_quality: Vintage broadcast-quality anime frame, analogue film grain, classic 80s telecine look, warm filmic softness - spatial_distortion: Retro anime proportions, elongated figures, dramatic forced perspective, classic character staging - atmosphere: Hyper, flirty, neon, mischievous - key_features: Oni-horn silhouette, neon-night streets, domestic-comedy staging, alien-tech gags, loud expression acting - creative_brief: Neon pink splashes against domestic tatami as an alien girl rewrites the rules of gravity and affection one flying mallet at a time. The city hums in fluorescent frequencies while love stumbles through doors it was never meant to open. Chaos becomes a love language spoken in lightning bolts and instant noodles. + aesthetic: Sitcom sci-fi ochentera de caos afectivo, con choque doméstico-alien y erotismo caricaturesco de alto voltaje. + form_and_line: Contorno grueso caricaturesco, acting facial exagerado y timing visual de gag físico instantáneo. + color_palette: Neones rosas y turquesa, amarillos eléctricos, azules nocturnos saturados y acentos pastel de sitcom. + lighting_setup: Luz frontal de set televisivo con neón de calle filtrado, contraste bajo y acentos de gag instantáneo. + material_texture: Tatami cotidiano, señalética fluorescente, utilería sci-fi ligera y grano retro de emisión. + render_quality: Acabado premium retro-pop con claridad de broma, ritmo de caos y legibilidad de ensemble romántico. + spatial_distortion: Espacio elástico de comedia con deformaciones leves para golpes visuales y persecuciones domésticas. + atmosphere: Hiperactiva, coqueta, neón, traviesa. + key_features: Motivo oni de contraste, apartamento hiperactivo, gadget alien absurdo y persecución romántica de timing corto. + creative_brief: Construye una gramática reusable de rom-com sci-fi histriónica para cualquier sujeto, priorizando color fluorescente, slapstick corporal y fricción sentimental episódica. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-306.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-306.yaml index 967bed34..fce3d2f9 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-306.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-306.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 70s-and-80s-retro-anime visualDna: - aesthetic: Adult rom-com tenderness, boarding-house clutter, sunset laundry, long-term yearning and everyday comedy rendered with mature retro softness - form_and_line: Cel-era anime linework, bold contour strokes, vintage cel shading technique, hand-drawn frame precision - color_palette: Warm retro primaries, soft cel tones, muted saturation, faded film-stock hues - lighting_setup: Simple cel shadows, bold key light, flat directional shading, rim highlights - material_texture: Painted backgrounds, cel-texture edges, gouache matte finish, vintage grain texture - render_quality: Vintage broadcast-quality anime frame, analogue film grain, classic 80s telecine look, warm filmic softness - spatial_distortion: Retro anime proportions, elongated figures, dramatic forced perspective, classic character staging - atmosphere: Warm, wistful, domestic, patient - key_features: Boarding-house props, sunset balconies, mature-romance close-ups, everyday clutter, retro domestic calm - creative_brief: Afternoon light pools like honey across cluttered hallways where longing has steeped for seasons. A boarding house becomes a universe of unspoken words, each creaking floorboard a metronome of patience. Maturity in love is the courage to wait while the sunset does its slow and certain work. + aesthetic: Comedia romántica adulta de convivencia lenta, con erosión del tiempo cotidiano y ternura de segunda oportunidad. + form_and_line: Línea suave de convivencia, actuación sutil de proximidad y composición de interiores con humor de fricción diaria. + color_palette: Ámbares de atardecer, marrones de madera vivida, verdes apagados y rojos discretos de intimidad hogareña. + lighting_setup: Luz dorada de fin de tarde con sombras planas tranquilas y contraste bajo que favorece ternura acumulativa. + material_texture: Pasillos gastados, lavandería colgada, muebles usados y grano cálido de serie televisiva clásica. + render_quality: Acabado premium retro-doméstico con énfasis en microdrama emocional y timing cómico cotidiano. + spatial_distortion: Pensión de corredores estrechos y cuartos conectados que intensifica roce emocional continuo. + atmosphere: Cálida, nostálgica, doméstica, paciente. + key_features: Balcones al atardecer, clutter habitable, primerísimos emocionales y coreografía de vecinos. + creative_brief: Crea una gramática reusable de intimidad doméstica adulta para cualquier sujeto, basada en rutina compartida, microgesto afectivo y desgaste entrañable del espacio común. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-307.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-307.yaml index 33303649..a04a0aa6 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-307.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-307.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 70s-and-80s-retro-anime visualDna: - aesthetic: Summer baseball and adolescent longing, school uniforms and batting cages, warm retro youth melancholy, sports and romance sharing one humid frame - form_and_line: Cel-era anime linework, bold contour strokes, vintage cel shading technique, hand-drawn frame precision - color_palette: Warm retro primaries, soft cel tones, muted saturation, faded film-stock hues - lighting_setup: Simple cel shadows, bold key light, flat directional shading, rim highlights - material_texture: Painted backgrounds, cel-texture edges, gouache matte finish, vintage grain texture - render_quality: Vintage broadcast-quality anime frame, analogue film grain, classic 80s telecine look, warm filmic softness - spatial_distortion: Retro anime proportions, elongated figures, dramatic forced perspective, classic character staging - atmosphere: Nostalgic, warm, athletic, wistful - key_features: Baseball gear, sunset field staging, summer uniforms, emotional sports framing, youth-love distance - creative_brief: Summer heat bends the air above the diamond as youth measures distance in stolen glances and bat-crack echoes. The uniform clings to skin that still remembers the cool of morning and the burn of hope. Between innings, between words, between what is and what could be, the game continues. + aesthetic: Melodrama deportivo adolescente de verano tardío, donde rivalidad, duelo íntimo y crecimiento conviven en clave nostálgica. + form_and_line: Línea deportiva limpia, gesto juvenil contenido y composición de campo que alterna acción atlética y pausa emocional. + color_palette: Verdes de diamante soleado, naranjas de atardecer, blancos de uniforme y azules deslavados de verano tardío. + lighting_setup: Sol bajo cálido con contraluces de estadio escolar y sombras planas que sostienen melancolía ligera. + material_texture: Tierra de infield, cuero de guante, tela de uniforme y grano fílmico de recuerdo deportivo. + render_quality: Acabado retro-atlético premium con lectura táctica de partido y subtexto romántico en respiraciones largas. + spatial_distortion: Perspectiva de campo abierta con compresión selectiva en momentos de mirada y decisión sentimental. + atmosphere: Nostálgica, cálida, atlética, melancólica. + key_features: Diamante soleado, marcador narrativo, miradas desde dugout y crescendo emocional inning a inning. + creative_brief: Diseña una gramática reusable de deporte sentimental juvenil para cualquier sujeto, combinando luz estival, presión competitiva y deseo contenido de maduración. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-308.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-308.yaml index de0b15dd..5e2500d8 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-308.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-308.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 70s-and-80s-retro-anime visualDna: - aesthetic: 80s action-comedy private-eye swagger, skyscraper nights, shoulder pads and handguns, comic pervert bravado punctured by crisp urban action cool - form_and_line: Cel-era anime linework, bold contour strokes, vintage cel shading technique, hand-drawn frame precision - color_palette: Warm retro primaries, soft cel tones, muted saturation, faded film-stock hues - lighting_setup: Simple cel shadows, bold key light, flat directional shading, rim highlights - material_texture: Painted backgrounds, cel-texture edges, gouache matte finish, vintage grain texture - render_quality: Vintage broadcast-quality anime frame, analogue film grain, classic 80s telecine look, warm filmic softness - spatial_distortion: Retro anime proportions, elongated figures, dramatic forced perspective, classic character staging - atmosphere: Suave, neon, funny, dangerous - key_features: Skyscraper-night backdrops, detective handgun poses, 80s fashion detail, urban chase framing, slick-comedy contrast - creative_brief: Glass towers mirror the moon while a suited silhouette adjusts his cufflinks with lethal precision. Danger wears cologne in this city where bullets have better manners than lovers. Every trigger pull is a punchline, and every punchline leaves a bruise shaped like longing. + aesthetic: Noir urbano ochentero de pistolero privado, con cinismo seductor, comedia insolente y peligro de contrato. + form_and_line: Contorno firme de figura en traje, acting de pose confiada y encuadres dinámicos de persecución calle-cielo. + color_palette: Azules nocturnos de cristal, morados neón, grises acero y acentos rojos de peligro instantáneo. + lighting_setup: Neón de rascacielo reflejado en cristal, key cortante de calle y sombras planas de thriller televisivo. + material_texture: Vidrio de rascacielos, asfalto brillante, gabardina o traje texturado y metal de arma estilizado. + render_quality: Acabado premium retro-noir con lectura clara de acción, punchline visual y elegancia de detective urbano. + spatial_distortion: Profundidad de canyon urbano con verticalidad exagerada y lente de acción para ritmo de chase. + atmosphere: Suave, neón, irónica, peligrosa. + key_features: Skyline nocturno, postura detective-armada, moda 80s marcada y contraste entre chiste y violencia precisa. + creative_brief: Construye una gramática reusable de detective-noir de altura para cualquier sujeto, mezclando verticalidad metropolitana, ironía de mercenario y violencia precisa de escena corta. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-309.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-309.yaml index 8fdd9420..e87de595 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-309.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-309.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 70s-and-80s-retro-anime visualDna: - aesthetic: Bright sci-fi fashion, disaster-prone heroines, white corridors and pink explosions, glamorous chaos in one of the most colorful 80s space-action registers - form_and_line: Cel-era anime linework, bold contour strokes, vintage cel shading technique, hand-drawn frame precision - color_palette: Warm retro primaries, soft cel tones, muted saturation, faded film-stock hues - lighting_setup: Simple cel shadows, bold key light, flat directional shading, rim highlights - material_texture: Painted backgrounds, cel-texture edges, gouache matte finish, vintage grain texture - render_quality: Vintage broadcast-quality anime frame, analogue film grain, classic 80s telecine look, warm filmic softness - spatial_distortion: Retro anime proportions, elongated figures, dramatic forced perspective, classic character staging - atmosphere: Flashy, mischievous, poppy, explosive - key_features: Sci-fi fashion silhouettes, white-corridor staging, laser effects, duo dynamic posing, glam-chaos color balance - creative_brief: White corridors explode into pink confetti as two women armed with fashion and firepower redefine collateral beauty. Glamour is the shockwave, style the afterimage, and competence the thing that keeps them standing when the ceiling comes down. Trouble is not something they find—it is something they accessorize. + aesthetic: Space-action glam de dupla hiperpop, con elegancia de misión y destrucción colateral coreografiada. + form_and_line: Siluetas fashion dinámicas, contorno cel contundente y lenguaje de pose dual coordinada en clave de impacto. + color_palette: Blancos clínicos de corredor, rosas explosivos, cianes láser y acentos amarillos de advertencia pop. + lighting_setup: Luz interior brillante de sci-fi retro con flashes de energía y sombras planas para legibilidad de acción veloz. + material_texture: Corredor sci-fi pulido, textil técnico brillante, residuos de disparo láser y grano analógico televisivo. + render_quality: Acabado premium retro-glam con claridad de dúo protagonista y balance entre espectacularidad y control. + spatial_distortion: Corredores de fuga y combate con perspectiva lineal acelerada para subrayar velocidad y destrucción elegante. + atmosphere: Flashy, traviesa, pop, explosiva. + key_features: Dúo heroico glam, pasillos blancos de misión, efectos láser coloridos y composición de caos coreografiado. + creative_brief: Diseña una gramática reusable de acción-glam en dupla para cualquier sujeto, fusionando moda sci-fi, croma explosivo y sincronía táctica entre dos protagonistas. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-310.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-310.yaml index 3da00177..f313a8ab 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-310.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-310.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 70s-and-80s-retro-anime visualDna: - aesthetic: Working-space-adventurer bravado, orange pilot suits, ship hangars, pulpy rescue jobs, professional competence and 80s optimism under hard cel color - form_and_line: Cel-era anime linework, bold contour strokes, vintage cel shading technique, hand-drawn frame precision - color_palette: Warm retro primaries, soft cel tones, muted saturation, faded film-stock hues - lighting_setup: Simple cel shadows, bold key light, flat directional shading, rim highlights - material_texture: Painted backgrounds, cel-texture edges, gouache matte finish, vintage grain texture - render_quality: Vintage broadcast-quality anime frame, analogue film grain, classic 80s telecine look, warm filmic softness - spatial_distortion: Retro anime proportions, elongated figures, dramatic forced perspective, classic character staging - atmosphere: Pulp, adventurous, capable, bright - key_features: Pilot-suit color pop, hangar interiors, rescue-job framing, working-spacecrew staging, 80s cel boldness - creative_brief: Orange suit against vacuum black, a declaration that work can be heroic and heroes can clock in. Hangar bays smell of ozone and optimism, the kind that survives planetary storms and corporate fine print. Competence is its own aesthetic when the galaxy needs a rescue and professionalism is the only superpower. + aesthetic: Pulp espacial profesionalista, con ética de oficio, aventura resolutiva y optimismo técnico ochentero. + form_and_line: Contorno robusto de uniforme técnico, acting de equipo competente y staging funcional orientado a misión-rescate. + color_palette: Naranjas de traje piloto, azules de hangar, grises industriales y blancos de señal operativa. + lighting_setup: Iluminación de bahía de mantenimiento con key frontal claro, sombras planas técnicas y acentos de baliza. + material_texture: Metal de hangar, paneles de servicio, tejido técnico de vuelo y desgaste mecánico de uso intensivo. + render_quality: Acabado premium retro-pulp con foco en claridad de procedimientos, jerarquía de equipo y acción resolutiva. + spatial_distortion: Hangar de gran volumen con líneas de rampa y boca de nave para enfatizar flujo operativo. + atmosphere: Pulp, aventurera, competente, luminosa. + key_features: Traje naranja icónico, hangar operativo, tripulación de oficio y composición de rescate profesional. + creative_brief: Crea una gramática reusable de aventura espacial de equipo técnico para cualquier sujeto, priorizando claridad procedimental, color-identidad de uniforme y heroísmo de trabajo competente. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-311.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-311.yaml index 981e47bb..df4d3bb9 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-311.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-311.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 70s-and-80s-retro-anime visualDna: - aesthetic: Post-collapse island adventure, boyish athleticism, rusted relics and blue oceans, early-Miyazaki environmental hope and motion-rich sincerity - form_and_line: Cel-era anime linework, bold contour strokes, vintage cel shading technique, hand-drawn frame precision - color_palette: Warm retro primaries, soft cel tones, muted saturation, faded film-stock hues - lighting_setup: Simple cel shadows, bold key light, flat directional shading, rim highlights - material_texture: Painted backgrounds, cel-texture edges, gouache matte finish, vintage grain texture - render_quality: Vintage broadcast-quality anime frame, analogue film grain, classic 80s telecine look, warm filmic softness - spatial_distortion: Retro anime proportions, elongated figures, dramatic forced perspective, classic character staging - atmosphere: Hopeful, athletic, breezy, adventurous - key_features: Island-and-ocean vistas, rust relics, boy-hero movement, environmental adventure cues, sky-bright optimism - creative_brief: Rusted towers rise from turquoise water where a boy bare feet find purchase on the spine of a broken world. Wind whips through wild hair carrying salt and the scent of seeds, of things that grow where nothing should. Hope in this palette is not a concept but a color—bright sky pushing through rust brown. + aesthetic: Aventura ecológica postcolapso de espíritu juvenil, donde ruina tecnológica y naturaleza costera conviven en clave de esperanza activa. + form_and_line: Contorno cel robusto con acting atlético, siluetas de salto y escalada, y gesto corporal optimista de exploración. + color_palette: Turquesas oceánicos, óxidos rojizos, verdes de rebrote y blancos solares de cielo abierto. + lighting_setup: Sol marítimo frontal de alto contraste, sombras cel cortas y rim ventoso para reforzar impulso acrobático. + material_texture: Chapa oxidada, concreto salinizado, roca costera y vegetación resiliente sobre infraestructura antigua. + render_quality: Acabado premium retro-aventura con lectura clara de movimiento, geografía insular y pulso ambiental optimista. + spatial_distortion: Perspectiva amplia de acantilado e isla con verticalidad juguetona para enfatizar agilidad del protagonista. + atmosphere: Esperanzadora, energética, marina, aventurera. + key_features: Silueta juvenil en salto, infraestructura corroída costera, oleaje luminoso y lectura de rebrote ecosistémico. + creative_brief: Define una gramática reusable de aventura insular resiliente para cualquier sujeto, combinando óxido marítimo, velocidad corporal y esperanza ecológica activa. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-312.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-312.yaml index 671a7128..b8631adf 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-312.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-312.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 70s-and-80s-retro-anime visualDna: - aesthetic: Art-thief sisters, red leotards, museum-night spotlights, cat burglar poise, romance and heist glamour rendered with 80s urban polish - form_and_line: Cel-era anime linework, bold contour strokes, vintage cel shading technique, hand-drawn frame precision - color_palette: Warm retro primaries, soft cel tones, muted saturation, faded film-stock hues - lighting_setup: Simple cel shadows, bold key light, flat directional shading, rim highlights - material_texture: Painted backgrounds, cel-texture edges, gouache matte finish, vintage grain texture - render_quality: Vintage broadcast-quality anime frame, analogue film grain, classic 80s telecine look, warm filmic softness - spatial_distortion: Retro anime proportions, elongated figures, dramatic forced perspective, classic character staging - atmosphere: Sly, elegant, nocturnal, glamorous - key_features: Museum heist props, red-leotard silhouettes, spotlight cones, trio-sister staging, cat-burglar grace - creative_brief: Three silhouettes dissolve into museum shadow, red leotards the only confession against the dark. Glass cases hold centuries but the real treasure moves on silent feet across polished marble. Theft here is a ballet where the curtain rises on romance and falls on escape. + aesthetic: Heist glam nocturno de alta elegancia, con sofisticación urbana ochentera y dinámica de sororidad estratégica. + form_and_line: Línea estilizada de figura felina, poses de infiltración milimétrica y coreografía de trío en silencio táctico. + color_palette: Rojos icónicos de vestuario, negros de galería cerrada, dorados de obra clásica y blancos de spotlight. + lighting_setup: Conos de luz de seguridad, sombras planas marcadas y brillos de vitrina para tensión de robo silencioso. + material_texture: Mármol pulido, vidrio museístico, cuero técnico y grano analógico de serie nocturna retro. + render_quality: Acabado premium de thriller elegante con legibilidad de movimiento furtivo y glamour controlado. + spatial_distortion: Espacio interior de museo con perspectiva de pasillo y capas de vigilancia que tensionan la ruta de escape. + atmosphere: Astuta, elegante, nocturna, glamurosa. + key_features: Trío de ladronas coordinado, iconografía rojo-leotardo, vitrinas iluminadas y gramática de ballet criminal. + creative_brief: Construye una gramática reusable de heist glam para cualquier sujeto, combinando precisión de trío, lujo museístico y tensión de infiltración nocturna. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-313.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-313.yaml index a4edaa24..6f7b2321 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-313.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-313.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 70s-and-80s-retro-anime visualDna: - aesthetic: Mythic armor, zodiac temples, heroic friendship, constellation power flares, divine punches and young blood screaming beneath marble skies - form_and_line: Cel-era anime linework, bold contour strokes, vintage cel shading technique, hand-drawn frame precision - color_palette: Warm retro primaries, soft cel tones, muted saturation, faded film-stock hues - lighting_setup: Simple cel shadows, bold key light, flat directional shading, rim highlights - material_texture: Painted backgrounds, cel-texture edges, gouache matte finish, vintage grain texture - render_quality: Vintage broadcast-quality anime frame, analogue film grain, classic 80s telecine look, warm filmic softness - spatial_distortion: Retro anime proportions, elongated figures, dramatic forced perspective, classic character staging - atmosphere: Mythic, earnest, celestial, fierce - key_features: Armor silhouettes, constellation effects, temple staircases, team-friendship posing, marble-sky epic scale - creative_brief: Marble cracked by divine pressure as bronze-clad fists tear through the boundary between myth and boy. Constellations lean closer, hungry to witness what young blood sounds like when it believes. Every armor piece carries the weight of a star and the fragility of a friendship. + aesthetic: Épica zodiacal juvenil de combate mítico, con fraternidad heroica y dramatismo cósmico de gran declaratoria emocional. + form_and_line: Contornos brillantes de armadura, anatomía heroica elongada y poses de impacto frontal con energía de torneo sagrado. + color_palette: Azules celestes, dorados astrales, blancos marmóreos y rojos de voluntad combativa. + lighting_setup: Flares de constelación sobre clave dura de cel, sombras planas de duelo y rim luminoso en bordes de armadura. + material_texture: Metal pulido ceremonial, piedra de templo, polvo de combate y grano analógico retro. + render_quality: Acabado premium retro-shonen con lectura instantánea de equipo, poder astral y escalada de intensidad. + spatial_distortion: Perspectiva monumental de escalinata y cielo abierto para amplificar sacrificio, golpe y destino estelar. + atmosphere: Mítica, vehemente, celeste, sacrificial. + key_features: Armaduras zodiacales brillantes, escalinata-templo axial, estelas cósmicas y juramento de camaradería combativa. + creative_brief: Diseña una gramática reusable de heroísmo zodiacal para cualquier sujeto, fusionando iconografía estelar, armadura ritual y emoción combativa juvenil. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-314.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-314.yaml index e14a9567..d6268355 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-314.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-314.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 70s-and-80s-retro-anime visualDna: - aesthetic: Training montage emotion, giant launch gantries, hot-blooded schoolgirls and cosmic stakes, tears and determination rendered in thick retro spectacle - form_and_line: Cel-era anime linework, bold contour strokes, vintage cel shading technique, hand-drawn frame precision - color_palette: Warm retro primaries, soft cel tones, muted saturation, faded film-stock hues - lighting_setup: Simple cel shadows, bold key light, flat directional shading, rim highlights - material_texture: Painted backgrounds, cel-texture edges, gouache matte finish, vintage grain texture - render_quality: Vintage broadcast-quality anime frame, analogue film grain, classic 80s telecine look, warm filmic softness - spatial_distortion: Retro anime proportions, elongated figures, dramatic forced perspective, classic character staging - atmosphere: Earnest, grand, tearful, heroic - key_features: Launch-gantry scale, mecha training posture, crying determination close-ups, retro-cosmic effects, school-to-war contrast - creative_brief: Gantry lights drip like tears down the face of a machine too large for any sky. A girl fist trembles not with fear but with the terrifying fullness of purpose while warp engines hum the anthem of leaving everything behind. The mecha stands not as weapon but as cathedral to the cost of growing up. + aesthetic: Drama mecha de entrenamiento y sacrificio, con transición emocional de academia a guerra cósmica en clave súper sentida. + form_and_line: Línea cel de alto contraste, close-ups lacrimales intensos y siluetas de mecha monumental frente a piloto vulnerable. + color_palette: Azules nocturnos de base, blancos técnicos de instalación, rojos de alarma y naranjas de impulso de lanzamiento. + lighting_setup: Luz industrial de gantry con destellos de motor warp, sombras planas rígidas y backlight de cuenta regresiva terminal. + material_texture: Estructura metálica pesada, panelería de hangar, superficies de traje de piloto y grano televisivo ochentero. + render_quality: Acabado premium retro-dramático con énfasis en escala máquina-cuerpo y crescendo emocional de partida. + spatial_distortion: Perspectiva vertical extrema de plataforma de lanzamiento que magnifica el salto de madurez forzada. + atmosphere: Sincera, grandiosa, llorosa, heroica. + key_features: Gantry colosal, lenguaje visual de entrenamiento, lágrimas de determinación y iconografía de motor espacial. + creative_brief: Crea una gramática reusable de heroísmo formativo mecha para cualquier sujeto, combinando infraestructura de lanzamiento, vulnerabilidad emotiva y salto irreversible al destino cósmico. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-315.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-315.yaml index 66b845df..efa6235d 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-315.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-315.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 70s-and-80s-retro-anime visualDna: - aesthetic: Sharper-edged war mecha, colony politics, cockpit grief, military uniforms under harsher 80s sci-fi lighting, youth crushed by factional conflict - form_and_line: Cel-era anime linework, bold contour strokes, vintage cel shading technique, hand-drawn frame precision - color_palette: Warm retro primaries, soft cel tones, muted saturation, faded film-stock hues - lighting_setup: Simple cel shadows, bold key light, flat directional shading, rim highlights - material_texture: Painted backgrounds, cel-texture edges, gouache matte finish, vintage grain texture - render_quality: Vintage broadcast-quality anime frame, analogue film grain, classic 80s telecine look, warm filmic softness - spatial_distortion: Retro anime proportions, elongated figures, dramatic forced perspective, classic character staging - atmosphere: Tense, militarized, tragic, angular - key_features: Cockpit and colony imagery, war-uniform silhouettes, sharper mecha forms, political tension framing, pilot trauma close-ups - creative_brief: Colony glass fractures in slow motion while cockpit screens paint a teenager face in the colors of impossible choices. Metal sharpens into ideology and grief comes in angular shadows that no mobile suit can shield. War in this register tastes like static and smells like someone else future burning. + aesthetic: Tragedia política de guerra mecha con tono más áspero, donde juventud y maquinaria quedan atrapadas en conflicto institucional. + form_and_line: Contorno angular severo, siluetas militares rígidas y actuación contenida de trauma en cabina. + color_palette: Grises de colonia industrial, azules fríos de monitor, rojos de alerta táctica y blancos desaturados de uniforme. + lighting_setup: Luz dura de cockpit y corredor militar, sombras cel planas tajantes y destellos de interfaz en rostros tensos. + material_texture: Aleación de mobile suit, vidrio fracturable de colonia, paneles tácticos y ruido analógico de señal bélica. + render_quality: Acabado premium retro-militar con lectura estratégica clara y peso emocional de decisión irreversible. + spatial_distortion: Profundidad comprimida de cabina y corredor bélico, con escala orbital opresiva para reforzar claustrofobia política. + atmosphere: Tensa, militarizada, trágica, cortante. + key_features: Cabina como cámara de crisis, mecha de arista dura, códigos de facción y duelo psicológico de piloto. + creative_brief: Diseña una gramática reusable de drama bélico mecha-político para cualquier sujeto, combinando geometría angular, luz de conflicto y trauma juvenil institucionalizado. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-316.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-316.yaml index 749ff1f3..479f4d98 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-316.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-316.yaml @@ -12,16 +12,16 @@ tags: - anime-classics-and-prestige - 70s-and-80s-retro-anime visualDna: - aesthetic: Fantasy-mecha hybrid with insect armor, misty otherworld terrain, sword-bearing machines, 80s dreamlike war fantasy suspended in glowing fog - form_and_line: Cel-era anime linework, bold contour strokes, vintage cel shading technique, hand-drawn frame precision - color_palette: Warm retro primaries, soft cel tones, muted saturation, faded film-stock hues - lighting_setup: Simple cel shadows, bold key light, flat directional shading, rim highlights - material_texture: Painted backgrounds, cel-texture edges, gouache matte finish, vintage grain texture - render_quality: Vintage broadcast-quality anime frame, analogue film grain, classic 80s telecine look, warm filmic softness - spatial_distortion: Retro anime proportions, elongated figures, dramatic forced perspective, classic character staging - atmosphere: Strange, misty, heroic, otherworldly - key_features: Insect-mecha silhouettes, mist realms, sword poses, fantasy-war backdrops, luminous fog atmosphere - creative_brief: Chitinous steel beats translucent wings in mist so thick it becomes a character, a shroud that remembers ancient wars. Fantasy bleeds into circuitry and the sword becomes a question neither magic nor machine can answer alone. The air itself glows with the residue of impossible allegiances. + aesthetic: Fantasía bélica bio-mecánica de extrañeza onírica, fusionando imaginería de insecto, caballería y tecnología ritual. + form_and_line: Siluetas quiméricas de mecha con línea orgánico-metálica, poses de espada heroica y contorno clásico de cel. + color_palette: Verdes brumosos, violetas de crepúsculo arcano, metales opacos y acentos lumínicos etéreos. + lighting_setup: Niebla luminosa como fuente principal, key suave de contracampo y sombras planas que conservan legibilidad retro. + material_texture: Quitina metálica, membranas translúcidas, roca húmeda fantástica y ruido fílmico analógico. + render_quality: Acabado premium retro-fantasy con claridad de diseño híbrido y atmósfera de guerra irreal sostenida. + spatial_distortion: Profundidad de valle envuelto en bruma con distorsión ligera de escala para reforzar mundo no terrestre. + atmosphere: Extraña, brumosa, heroica, ultraterrena. + key_features: Silueta mecha-insecto ritual, espada energética, niebla viva persistente y relieve fantástico en guerra. + creative_brief: Construye una gramática reusable de guerra bio-mecánica fantástica para cualquier sujeto, combinando niebla viva, siluetas quiméricas y heroísmo de espada tecnológica. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-317.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-317.yaml index 9e1f7e57..924c7735 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-317.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-317.yaml @@ -12,19 +12,16 @@ tags: - anime-classics-and-prestige - 70s-and-80s-retro-anime visualDna: - aesthetic: Bike speed, arcade neon, hidden-city truth, youth rebellion under simulated skies, glossy urban 80s tech mythmaking - form_and_line: Sharp urban-retro contouring, motorcycle-speed diagonals, arcade signage geometry, surveillance-era skyline segmentation - color_palette: Neon arcade cyans and pinks over asphalt blacks, synthetic twilight violets, chrome-fleck highlights - lighting_setup: Wet-night neon spill, sign-flicker practicals, high-contrast cel shadow slabs, sodium street backfill - material_texture: Slick rain asphalt sheen, painted cel city backdrops, CRT-like bloom edges, analog grain noise - render_quality: 80s OVA-grade retro-futurist rendering with glossy urban drama and signal-era compositing character - spatial_distortion: Speed-lens perspective stretch, bike-centric forward thrust, layered urban canyon depth compression - atmosphere: Sleek, rebellious, nocturnal, revelatory - key_features: Urban-night velocity language, arcade neon overlays, rebel rider silhouette, simulated-city visual hints - creative_brief: >- - Keep Megazone 23 anchored in glossy rebellious retro-urbanism: motorcycle - momentum, arcade neon logic, and paranoia embedded in city visuals. The - style should balance cool surface aesthetics with hidden-system unease. + aesthetic: Retrofuturo urbano rebelde de OVA ochentera, con velocidad de moto y paranoia de ciudad-sistema encubierta. + form_and_line: Trazado afilado de señalética y asfalto, diagonales cinéticas y silueta rider como eje de identidad visual. + color_palette: Cianes y magentas arcade, violetas sintéticos de twilight y negros de asfalto húmedo. + lighting_setup: Derrame de neón nocturno, parpadeo de cartelería y contraste cel duro con backfill de sodio vial. + material_texture: Brillo de lluvia sobre calle, borde de bloom CRT y grano analógico de video-era. + render_quality: Acabado premium OVA retro-tech con claridad de velocidad y atmósfera de inquietud sistémica. + spatial_distortion: Perspectiva de avance forzado con compresión de cañón urbano para enfatizar fuga y revelación. + atmosphere: Elegante, rebelde, nocturna, revelatoria. + key_features: Rider central, overlays de arcade, skyline vigilado y gramática visual de verdad oculta. + creative_brief: Diseña una gramática reusable de techno-rebeldía urbana para cualquier sujeto, combinando impulso de carretera, neón sintético y paranoia de sistema encubierto. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-318.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-318.yaml index 2810a8c3..b08465ec 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-318.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-318.yaml @@ -12,20 +12,16 @@ tags: - anime-classics-and-prestige - 70s-and-80s-retro-anime visualDna: - aesthetic: Raw 70s demonic transformation, wild color flashes, anguished screaming, biblical panic and old-TV violence rendered with unhinged retro intensity - form_and_line: Violent expressionist contour deformation, jagged transformation lines, exaggerated anatomy stress marks, frantic ink energy - color_palette: Acidic blood reds, toxic yellows, infernal violets, bruised shadow blacks, panic-white flash accents - lighting_setup: Strobing contrast bursts, harsh underlight horror angles, unstable cel shadow blocking, signal-distortion glow artifacts - material_texture: Rough cel paint irregularity, analog bleed and noise, distressed background brushwork, TV-era chroma instability - render_quality: Raw 70s shock-horror anime fidelity with intentionally abrasive compositing and emotionally volatile frame treatment - spatial_distortion: Body-horror perspective warping, elastic transformation silhouettes, panic-driven framing disorientation - atmosphere: Panic-struck, psychedelic, tragic, primal - key_features: Transformation agony line language, biblical-horror symbolism, old-TV chroma brutality, primal scream portraiture - creative_brief: >- - Preserve Devilman 1972 through raw expressive violence: unstable color, - distorted anatomy, and emotionally unfiltered horror iconography. The - preset should feel confrontational and tragic, not polished or sanitized - retro pastiche. + aesthetic: Horror demónico setentero de violencia expresionista, con transformación corporal cruda y tragedia sin filtro. + form_and_line: Deformación anatómica agresiva, trazo quebrado de metamorfosis y energía de tinta frenética. + color_palette: Rojos hemáticos ácidos, amarillos tóxicos, violetas infernales y blancos de pánico estroboscópico. + lighting_setup: Estallidos de contraste, subluces de horror y sombras cel inestables con artefacto de señal analógica. + material_texture: Pintura cel rugosa, sangrado croma de TV antigua y fondos deteriorados de pincel duro. + render_quality: Acabado premium de shock-retro deliberadamente abrasivo, con legibilidad emocional asentada en confrontación visual. + spatial_distortion: Warping de body horror y encuadre desorientado impulsado por dolor de transformación. + atmosphere: Pánico, psicodelia, tragedia, primalidad. + key_features: Lenguaje de agonía metamórfica, simbolismo apocalíptico y brutalidad cromática de broadcast antiguo. + creative_brief: Construye una gramática reusable de horror demónico expresionista para cualquier sujeto, evitando pulido complaciente y priorizando impacto visceral trágico. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-319.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-319.yaml index be1bd5ed..17df7318 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-319.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-319.yaml @@ -12,20 +12,16 @@ tags: - anime-classics-and-prestige - 70s-and-80s-retro-anime visualDna: - aesthetic: Carrier-deck mecha operations mixed with pop-idol fate, city-inside-ship scale, missiles and melodies sharing one dramatic retro-future frame - form_and_line: Dual-register composition between military mecha rigor and idol-performance staging, clean retro contour discipline - color_palette: Carrier-deck greys with pop-idol pastel accents, missile-warning reds, starlight blues, and warm showlight highlights - lighting_setup: Hangar practical beams mixed with stage-spot accents, cockpit glows, and contrast-driven celestial backlight - material_texture: Painted hull plating, runway markings, concert-stage surfaces, analog cel edge shimmer, mild film grain - render_quality: High-drama 80s mecha-opera frame quality balancing tactical readability with melodramatic pop spectacle - spatial_distortion: Macro-fleet scale juxtaposed with intimate performer framing, layered depth between civic interior and battle exterior - atmosphere: Romantic, strategic, pop-infused, starry - key_features: Carrier-deck mecha grammar, idol-performance motifs, city-inside-ship scale cues, military-pop contrast language - creative_brief: >- - Keep Macross specific by preserving its military-pop duality: - operational mecha staging fused with emotional performance iconography. - The style should hold both strategic scale and romantic theatricality in - the same visual system. + aesthetic: Ópera mecha-pop de dualidad militar y espectáculo idol, donde estrategia bélica y melodrama romántico coexisten. + form_and_line: Doble registro de línea, rigidez operacional de hangar y fluidez performativa de escenario musical. + color_palette: Grises de cubierta táctica, rojos de alerta misil, azules estelares y pasteles idol de contrapeso emocional. + lighting_setup: Hazes de hangar combinados con spot de concierto, glow de cabina y contraluces cósmicos de gran dramatismo. + material_texture: Placas de casco pintadas, marcas de pista, superficies de show y shimmer de borde cel analógico. + render_quality: Acabado premium retro-futuro con balance nítido entre lectura táctica y catarsis pop escénica. + spatial_distortion: Escala macro de flota contrapuesta a encuadre íntimo de performer para tensión entre guerra y canción. + atmosphere: Romántica, estratégica, pop, sideral. + key_features: Gramática de carrier deck, motivo idol central, escala ciudad-en-nave y contraste militar-musical explícito. + creative_brief: Diseña una gramática reusable de mecha-pop dual para cualquier sujeto, integrando operación militar, performance idol y melodrama estratégico en un sistema visual unificado. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-320.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-320.yaml index cd57e304..40bdc6f0 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-320.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-320.yaml @@ -12,19 +12,16 @@ tags: - anime-classics-and-prestige - 70s-and-80s-retro-anime visualDna: - aesthetic: Easygoing cosmic rogue swagger, laser arm, nightclub planets, flirtation and danger with a perpetual grin, pulp-space cool rendered in cel-era shine - form_and_line: Pulp-space rogue silhouette language, sleek swagger posture geometry, clean retro contour confidence, action-strip staging - color_palette: Signature red-jacket dominance, nightclub neon purples, smoky ambers, steel-blues, and comic-pulp contrast blacks - lighting_setup: Lounge-noir practical lighting, laser-edge highlights, low-key corridor pools, starfield back rim - material_texture: Glossy retro-future wardrobe sheen, smoke-layer diffusion, brushed sci-fi surfaces, analog cel compositing grain - render_quality: Stylish 80s pulp-space anime fidelity with crisp character readability and seductive retro-noir atmosphere - spatial_distortion: Charisma-first framing, corridor perspective pull, dynamic one-versus-many staging with confident center-weight - atmosphere: Cocky, cosmic, playful, dangerous - key_features: Red-jacket icon silhouette, laser-arm motif, nightclub-planet ambience, pulp rogue attitude grammar - creative_brief: >- - Preserve Cobra’s identity through effortless rogue charisma, pulp-space - noir styling, and seductive retro-futurist framing. The style must read - as playful danger and cosmopolitan swagger, not generic space-opera action. + aesthetic: Pulp espacial canalla de carisma seductor, con humor insolente y peligro cool en clave noir retrofuturista. + form_and_line: Silueta rogue confiada, postura relajada de duelo y contorno cel limpio con staging pulp de viñeta dinámica. + color_palette: Dominante rojo-jacket, púrpuras de club interestelar, ámbar ahumado y azules acero de corredor espacial. + lighting_setup: Iluminación lounge-noir, bordes de láser, charcos de luz baja y rim estelar de fondo cosmopolita. + material_texture: Brillo de vestuario retro, humo difuso de ambiente, superficies sci-fi cepilladas y grano compositivo analógico. + render_quality: Acabado premium pulp-80s con legibilidad total del protagonista y atmósfera de peligro juguetón. + spatial_distortion: Encuadre centrado en carisma con perspectiva de pasillo y dinámica one-vs-many de alta confianza. + atmosphere: Desfachatada, cósmica, juguetona, peligrosa. + key_features: Icono chaqueta roja, motivo brazo-láser, ambiente club-planetario y gramática de bribón galáctico. + creative_brief: Construye una gramática reusable de rogue pulp espacial para cualquier sujeto, equilibrando seducción, ironía y amenaza en encuadre elegante de anti-héroe carismático. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-343.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-343.yaml index 68d00c18..be6e32d6 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-343.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-343.yaml @@ -12,16 +12,19 @@ tags: - anime-classics-and-prestige - sports-competition-and-performance visualDna: - aesthetic: Volleyball momentum, spring-loaded jumps, gymnasium light, underdog team chemistry, orange court heat, libero dives and setter precision rendered with ecstatic motion clarity - form_and_line: Energetic sports-and-performance anime linework, clean anatomy, dynamic motion arcs, precise gesture readability, and expressive pose control - color_palette: Vivid team colors, arena neons, polished skin highlights, bright accent uniforms, stage gels, and crisp event-driven contrast - lighting_setup: Venue-ready spotlighting, stadium or gym bounce, dramatic event backlight, polished floor reflections, and live-performance contrast - material_texture: Court varnish, turf grain, chalk dust, polished wood, instrument lacquer, rink sheen, jersey fabric, and stage-floor texture - render_quality: Premium sports-performance anime frame, motion-readable polish, live-event atmosphere, expressive anatomy, and crisp action finish - spatial_distortion: Competition-ready foreshortening, venue-depth perspective, motion-path readability, dynamic athlete silhouette design, and crowd-to-stage scale cues - atmosphere: Electric, uplifting, kinetic, team-driven - key_features: Jump-serve silhouettes, net-line depth, team-call gestures, sneaker-squeak court energy, airborne spike framing - creative_brief: Gravity is a suggestion the body refuses. The court becomes a launchpad, orange light baptizes underdogs, and every jump carries the team on its back. Momentum is shared before it is earned. + aesthetic: Vóley shonen de impulso vertical y cooperación táctica, con énfasis en sincronía de equipo y lectura de rotación. + form_and_line: Anatomía atlética limpia, arcos de salto explosivos y gestualidad de comunicación inmediata entre setter, spiker y libero. + color_palette: Naranjas de parquet cálido, cian de acento competitivo, blancos energéticos y contraste uniforme por escuadra. + lighting_setup: Luz de gimnasio de alto rebote con backlight de remate para siluetas aéreas legibles. + material_texture: Barniz brillante de cancha, malla de red nítida, tela deportiva transpirable y marcas de fricción en suela. + render_quality: Frame deportivo premium con jerarquía clara de balón, rematador y eje de bloqueo. + spatial_distortion: Foreshortening de salto y perspectiva de red que prioriza timing de recepción, colocación y spike. + atmosphere: Eléctrica, optimista y cohesionada por esfuerzo colectivo. + key_features: Silueta de saque en suspensión, geometría de red dominante, llamadas de equipo y energía de rally prolongado. + creative_brief: >- + Formula una gramática reusable de volleyball-momentum donde salto, + sincronía de rotación y lectura de red definan identidad visual sostenida + sin depender de una jugada puntual. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-344.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-344.yaml index dac23160..5247a517 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-344.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-344.yaml @@ -12,16 +12,19 @@ tags: - anime-classics-and-prestige - sports-competition-and-performance visualDna: - aesthetic: High-pressure striker obsession, goalbox tunnel vision, neon field psychology, ruthless individual ambition inside a locked athletic laboratory, football treated like predator ritual - form_and_line: Energetic sports-and-performance anime linework, clean anatomy, dynamic motion arcs, precise gesture readability, and expressive pose control - color_palette: Vivid team colors, arena neons, polished skin highlights, bright accent uniforms, stage gels, and crisp event-driven contrast - lighting_setup: Venue-ready spotlighting, stadium or gym bounce, dramatic event backlight, polished floor reflections, and live-performance contrast - material_texture: Court varnish, turf grain, chalk dust, polished wood, instrument lacquer, rink sheen, jersey fabric, and stage-floor texture - render_quality: Premium sports-performance anime frame, motion-readable polish, live-event atmosphere, expressive anatomy, and crisp action finish - spatial_distortion: Competition-ready foreshortening, venue-depth perspective, motion-path readability, dynamic athlete silhouette design, and crowd-to-stage scale cues - atmosphere: Predatory, intense, focused, manic - key_features: Goal-net perspective, striker body torque, glaring eye-line intensity, stadium-rush framing, ego-crisis close-ups - creative_brief: The penalty box is a philosophy. Ambition sharpens into weaponry under stadium neons, and the goal is not a destination but a predation. The self is forged in the tunnel between hunger and net. + aesthetic: Fútbol competitivo de mentalidad striker-centric, orientado a presión de definición y dominio de área. + form_and_line: Líneas tensas de aceleración corta, torsión corporal agresiva y postura depredadora en finalización. + color_palette: Azules fríos de campo técnico, neón ácido de presión psicológica y rojos de amenaza en zona de gol. + lighting_setup: Iluminación de estadio high-contrast con foco en caja y recorte duro sobre atacante. + material_texture: Césped sintético de alta fricción, red de portería marcada, textiles de alto rendimiento y sudor especular. + render_quality: Sports frame de intensidad máxima con lectura instantánea de duelo delantero-portero. + spatial_distortion: Túnel visual hacia arco, compresión de distancia final y deformación dinámica por sprint terminal. + atmosphere: Predatoria, obsesiva y clínicamente competitiva. + key_features: Perspectiva de red frontal, torque de disparo, mirada de presión y framing de último toque letal. + creative_brief: >- + Define una gramática reusable de striker-obsession donde presión de área, + lectura de portería y agresividad de finalización construyan identidad + visual transferible entre sujetos. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-345.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-345.yaml index e57bc80e..90fed031 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-345.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-345.yaml @@ -12,16 +12,19 @@ tags: - anime-classics-and-prestige - sports-competition-and-performance visualDna: - aesthetic: 90s gym sweat and basketball swagger, delinquent charisma redirected into team play, underdog confidence, squeaking hardwood and emotional rebounds in a brightly lit school arena - form_and_line: Energetic sports-and-performance anime linework, clean anatomy, dynamic motion arcs, precise gesture readability, and expressive pose control - color_palette: Vivid team colors, arena neons, polished skin highlights, bright accent uniforms, stage gels, and crisp event-driven contrast - lighting_setup: Venue-ready spotlighting, stadium or gym bounce, dramatic event backlight, polished floor reflections, and live-performance contrast - material_texture: Court varnish, turf grain, chalk dust, polished wood, instrument lacquer, rink sheen, jersey fabric, and stage-floor texture - render_quality: Premium sports-performance anime frame, motion-readable polish, live-event atmosphere, expressive anatomy, and crisp action finish - spatial_distortion: Competition-ready foreshortening, venue-depth perspective, motion-path readability, dynamic athlete silhouette design, and crowd-to-stage scale cues - atmosphere: Sweaty, charismatic, competitive, hopeful - key_features: Basketball arc shots, gymnasium light pools, rivalry stare-downs, rebound body mechanics, court-side bench reactions - creative_brief: Swagger inherited from detention halls, channeled through a basketball. The squeak of sneakers is a redemption anthem played in gymnasium echo. Charisma is a rebound that changes trajectory. + aesthetic: Baloncesto escolar noventero de carisma callejero reconducido a juego colectivo y disciplina de equipo. + form_and_line: Anatomía atlética expresiva, arcos de tiro limpios, rebote corporal físico y acting rivalidad-driven. + color_palette: Rojos y blancos de uniforme clásico, madera miel, azul de sombra de gimnasio y acentos dorados cálidos. + lighting_setup: Luminaria escolar directa con rebote en parquet y sombras de media altura en clave retro. + material_texture: Madera encerada, balón granulado, tejido de jersey vintage y sudor de partido de alta fricción. + render_quality: Frame deportivo narrativo con lectura clara de posesión, rebote y contraataque. + spatial_distortion: Perspectiva de cancha media con exageración moderada de salto y penetración al aro. + atmosphere: Carismática, sudada, competitiva y esperanzada. + key_features: Trayectorias de tiro en arco, contacto de rebote, miradas de duelo y banca reactiva. + creative_brief: >- + Construye una gramática reusable de hardwood-rivalry donde energía escolar, + fisicidad de rebote y carisma de equipo mantengan identidad visual sin + quedar atados a una escena narrativa específica. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-346.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-346.yaml index 8675b8b1..76f47927 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-346.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-346.yaml @@ -12,16 +12,19 @@ tags: - anime-classics-and-prestige - sports-competition-and-performance visualDna: - aesthetic: High-school basketball rendered as illusion-speed spectacle, ghost-like passing lanes, aces with impossible momentum, dramatic indoor arenas, rivalry elevated into tactical myth - form_and_line: Energetic sports-and-performance anime linework, clean anatomy, dynamic motion arcs, precise gesture readability, and expressive pose control - color_palette: Vivid team colors, arena neons, polished skin highlights, bright accent uniforms, stage gels, and crisp event-driven contrast - lighting_setup: Venue-ready spotlighting, stadium or gym bounce, dramatic event backlight, polished floor reflections, and live-performance contrast - material_texture: Court varnish, turf grain, chalk dust, polished wood, instrument lacquer, rink sheen, jersey fabric, and stage-floor texture - render_quality: Premium sports-performance anime frame, motion-readable polish, live-event atmosphere, expressive anatomy, and crisp action finish - spatial_distortion: Competition-ready foreshortening, venue-depth perspective, motion-path readability, dynamic athlete silhouette design, and crowd-to-stage scale cues - atmosphere: Flashy, strategic, high-speed, competitive - key_features: Pass-trail cues, indoor-arena depth, player duels, impossible court angles, team-vs-star contrast - creative_brief: The pass was already there before anyone looked. Basketball elevated to illusion, where speed wears the mask of invisibility and the court becomes a magic trick. Presence is proved by what arrives, not by what was seen. + aesthetic: Basket táctico de velocidad ilusoria, orientado a circulación de balón invisible y ruptura de marca por timing. + form_and_line: Líneas rápidas de pase, siluetas limpias por rol y anatomía optimizada para cambio de ritmo. + color_palette: Azules eléctricos, negros de contraste de arena y acentos cian para telegraph de circulación. + lighting_setup: Iluminación indoor dramática con highlights selectivos en balón, manos y línea de pase. + material_texture: Parquet pulido reflectivo, malla de aro definida, jersey técnico y trazas de movimiento estilizadas. + render_quality: Acabado deportivo de alta precisión con claridad de jugada colectiva vs estrella individual. + spatial_distortion: Compresión de cancha y estiramiento direccional en trayectorias de pase para lectura de sorpresa. + atmosphere: Estratégica, veloz y tácticamente deslumbrante. + key_features: Trails de pase, duelos perimetrales, cambios de dirección bruscos y contraste team-play vs ace-play. + creative_brief: >- + Formula una gramática reusable de phantom-pass-basketball donde timing, + ocultación de intención y lectura táctica de líneas de pase sean el núcleo + estilístico, no una jugada concreta. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-347.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-347.yaml index 4e7ab783..c66abb7b 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-347.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-347.yaml @@ -12,16 +12,19 @@ tags: - anime-classics-and-prestige - sports-competition-and-performance visualDna: - aesthetic: Cycling-road obsession, mountain switchbacks, sweat and willpower, colorful jerseys, road-race camaraderie and insanity rendered through exaggerated climb intensity - form_and_line: Energetic sports-and-performance anime linework, clean anatomy, dynamic motion arcs, precise gesture readability, and expressive pose control - color_palette: Vivid team colors, arena neons, polished skin highlights, bright accent uniforms, stage gels, and crisp event-driven contrast - lighting_setup: Venue-ready spotlighting, stadium or gym bounce, dramatic event backlight, polished floor reflections, and live-performance contrast - material_texture: Court varnish, turf grain, chalk dust, polished wood, instrument lacquer, rink sheen, jersey fabric, and stage-floor texture - render_quality: Premium sports-performance anime frame, motion-readable polish, live-event atmosphere, expressive anatomy, and crisp action finish - spatial_distortion: Competition-ready foreshortening, venue-depth perspective, motion-path readability, dynamic athlete silhouette design, and crowd-to-stage scale cues - atmosphere: Exhausted, triumphant, obsessive, fast - key_features: Bike lean angles, hill-climb perspective, peloton spacing, jersey color separation, screaming uphill face acting - creative_brief: The mountain does not test your legs, it interrogates your soul. Every pedal stroke is a scream the road absorbs, every switchback a negotiation with quitting. Triumph is not arrival but refusal to unclip. + aesthetic: Ciclismo de montaña shonen orientado a escalada extrema, resistencia mental y dinámica de pelotón. + form_and_line: Curvas de inclinación pronunciada, musculatura de esfuerzo sostenido y postura de pedaleo de alta cadencia. + color_palette: Colores de escuadra saturados sobre asfalto oscuro, verdes de ladera y cielos fríos de altura. + lighting_setup: Luz abierta de carretera con contraluces de pendiente y flare suave de altitud. + material_texture: Asfalto rugoso, fibra de cuadro ligero, tejido técnico de jersey y polvo fino en neumático. + render_quality: Frame de ruta premium con legibilidad de escalada, drafting y ruptura de pelotón. + spatial_distortion: Perspectiva de switchback con compresión de pendiente y elongación de curva para dramatizar ascenso. + atmosphere: Exhausta, obsesiva y triunfal por resistencia. + key_features: Ángulos de bici agresivos, spacing de pelotón, gestualidad de esfuerzo y topología de puerto ascendente. + creative_brief: >- + Define una gramática reusable de uphill-breakaway donde pendiente, + resistencia y lectura de pelotón estructuren la identidad visual sin quedar + fijados a un momento narrativo. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-348.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-348.yaml index e51494a4..585ef075 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-348.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-348.yaml @@ -12,16 +12,19 @@ tags: - anime-classics-and-prestige - sports-competition-and-performance visualDna: - aesthetic: Baseball-pitch precision, catcher signals, summer tournament pressure, dirt and dust, battery chemistry and bullpen urgency framed through shonen sports resolve - form_and_line: Energetic sports-and-performance anime linework, clean anatomy, dynamic motion arcs, precise gesture readability, and expressive pose control - color_palette: Vivid team colors, arena neons, polished skin highlights, bright accent uniforms, stage gels, and crisp event-driven contrast - lighting_setup: Venue-ready spotlighting, stadium or gym bounce, dramatic event backlight, polished floor reflections, and live-performance contrast - material_texture: Court varnish, turf grain, chalk dust, polished wood, instrument lacquer, rink sheen, jersey fabric, and stage-floor texture - render_quality: Premium sports-performance anime frame, motion-readable polish, live-event atmosphere, expressive anatomy, and crisp action finish - spatial_distortion: Competition-ready foreshortening, venue-depth perspective, motion-path readability, dynamic athlete silhouette design, and crowd-to-stage scale cues - atmosphere: Focused, heated, disciplined, youthful - key_features: Pitching-form anatomy, catcher mitt focal point, diamond geometry, dugout tension, summer-stadium glare - creative_brief: Summer heat thickens the air between pitcher and catcher. Dust hangs in the sunlight like suspended judgment, and the mound is an island of absolute will. The signal is a secret the whole stadium feels. + aesthetic: Béisbol de torneo escolar centrado en batería pitcher-catcher, control de zona y tensión de inning decisivo. + form_and_line: Mecánica de lanzamiento detallada, lectura de señas y anatomía de transferencia cinética precisa. + color_palette: Azules de uniforme, tierra rojiza de diamante, blancos de cal y dorado cálido de verano. + lighting_setup: Sol alto de estadio con rebote en polvo y contraluz de tribuna sobre montículo. + material_texture: Arcilla seca, cuero de guante, costura de pelota, tela técnica y metálico de dugout. + render_quality: Sports frame de alta nitidez con prioridad visual en señal, release y recepción. + spatial_distortion: Perspectiva pitcher-to-plate con compresión dramática de distancia y foco en trayectoria. + atmosphere: Concentrada, calurosa y disciplinadamente juvenil. + key_features: Foco en mitt receptor, geometría de diamante, tensión de banca y postura de montículo. + creative_brief: >- + Construye una gramática reusable de mound-duel-baseball donde diálogo + pitcher-catcher, presión de torneo y materialidad de diamante sostengan + identidad visual sin atarse a una jugada única. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-349.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-349.yaml index b54349e7..996c623f 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-349.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-349.yaml @@ -12,16 +12,19 @@ tags: - anime-classics-and-prestige - sports-competition-and-performance visualDna: - aesthetic: Long-arc baseball life story, little-league dreams scaling to pro pressure, family legacy and mound determination, stadium lights and dirt rendered with emotional athletic realism - form_and_line: Energetic sports-and-performance anime linework, clean anatomy, dynamic motion arcs, precise gesture readability, and expressive pose control - color_palette: Vivid team colors, arena neons, polished skin highlights, bright accent uniforms, stage gels, and crisp event-driven contrast - lighting_setup: Venue-ready spotlighting, stadium or gym bounce, dramatic event backlight, polished floor reflections, and live-performance contrast - material_texture: Court varnish, turf grain, chalk dust, polished wood, instrument lacquer, rink sheen, jersey fabric, and stage-floor texture - render_quality: Premium sports-performance anime frame, motion-readable polish, live-event atmosphere, expressive anatomy, and crisp action finish - spatial_distortion: Competition-ready foreshortening, venue-depth perspective, motion-path readability, dynamic athlete silhouette design, and crowd-to-stage scale cues - atmosphere: Resolute, nostalgic, driven, heartfelt - key_features: Glove-and-ball iconography, mound posture, stadium-light depth, childhood-to-pro echoes, family-sport emotional cues - creative_brief: A glove passed between generations carries decades of unspoken love. Stadium lights illuminate not just the diamond but the lineage of dreams that cross home plate. Legacy is a grip you inherit before you understand it. + aesthetic: Baseball generacional de largo arco, orientado a legado deportivo y maduración competitiva entre etapas. + form_and_line: Acting deportivo emocional, mecánica de lanzamiento sólida y postura de montículo de determinación. + color_palette: Paleta de estadio clásica con azules profundos, blancos cálidos y acentos rojos de herencia competitiva. + lighting_setup: Iluminación de estadio nocturno con foco sentimental en guante, pelota y rostro del lanzador. + material_texture: Cuero envejecido de guante, polvo de diamante, tela uniforme en desgaste progresivo y metal de graderío. + render_quality: Frame deportivo emotivo con lectura clara de trayectoria vital y tensión de juego. + spatial_distortion: Perspectiva progresiva de diamante que conserva eje pitcher-home como núcleo simbólico. + atmosphere: Resuelta, nostálgica y profundamente motivada. + key_features: Iconografía guante-pelota, profundidad de estadio, ecos de crecimiento y herencia deportiva intergeneracional. + creative_brief: >- + Define una gramática reusable de generational-baseball donde legado, + crecimiento competitivo y simbolismo de batería deportiva funcionen como + sistema visual transferible. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-350.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-350.yaml index c5c2ffb8..91571295 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-350.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-350.yaml @@ -12,16 +12,19 @@ tags: - anime-classics-and-prestige - sports-competition-and-performance visualDna: - aesthetic: Aquatic team camaraderie, blue-tiled pool brilliance, water-surface light caustics, relay urgency, youth friendship and polished bodies rendered through warm sports-drama spectacle - form_and_line: Energetic sports-and-performance anime linework, clean anatomy, dynamic motion arcs, precise gesture readability, and expressive pose control - color_palette: Vivid team colors, arena neons, polished skin highlights, bright accent uniforms, stage gels, and crisp event-driven contrast - lighting_setup: Venue-ready spotlighting, stadium or gym bounce, dramatic event backlight, polished floor reflections, and live-performance contrast - material_texture: Court varnish, turf grain, chalk dust, polished wood, instrument lacquer, rink sheen, jersey fabric, and stage-floor texture - render_quality: Premium sports-performance anime frame, motion-readable polish, live-event atmosphere, expressive anatomy, and crisp action finish - spatial_distortion: Competition-ready foreshortening, venue-depth perspective, motion-path readability, dynamic athlete silhouette design, and crowd-to-stage scale cues - atmosphere: Refreshing, bright, emotional, competitive - key_features: Splash arcs, lane-line geometry, wet-hair highlights, relay handoff tension, poolside team silhouettes - creative_brief: Water keeps no secrets but holds every friendship. Caustics dance on chlorine-blue tile, and the relay is a promise passed through splash and breath. Togetherness is measured in lane lines and the moment before the dive. + aesthetic: Natación de relevos centrada en sincronía de equipo, técnica de salida y transición de testigo. + form_and_line: Anatomía hidrodinámica limpia, arcos de brazada fluidos y lectura clara de cambio en pared. + color_palette: Azules de piscina clorada, blancos de espuma y acentos de escuadra saturados para lane clarity. + lighting_setup: Iluminación interior acuática con caústicas controladas y highlights sobre superficie de agua. + material_texture: Agua en lámina especular, baldosa húmeda, tejido elástico de competición y gotas en suspensión. + render_quality: Sports frame acuático de alta nitidez con prioridad en salida, ritmo y relevo. + spatial_distortion: Distorsión suave por refracción y perspectiva longitudinal de carriles para lectura de velocidad. + atmosphere: Refrescante, competitiva y emocionalmente cohesionada. + key_features: Splash arcs definidos, geometría de lane-line, handoff de relevo y siluetas poolside. + creative_brief: >- + Formula una gramática reusable de relay-swim donde caústicas, ritmo de + carril y transición de relevo sostengan identidad transferible, no una + escena cerrada. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-351.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-351.yaml index 04642683..bb82b0a4 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-351.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-351.yaml @@ -12,16 +12,19 @@ tags: - anime-classics-and-prestige - sports-competition-and-performance visualDna: - aesthetic: Distance-running discipline, night roads, campus lamps, thin winter breath, team growth through long miles and quiet suffering rendered with human-scale sports lyricism - form_and_line: Energetic sports-and-performance anime linework, clean anatomy, dynamic motion arcs, precise gesture readability, and expressive pose control - color_palette: Vivid team colors, arena neons, polished skin highlights, bright accent uniforms, stage gels, and crisp event-driven contrast - lighting_setup: Venue-ready spotlighting, stadium or gym bounce, dramatic event backlight, polished floor reflections, and live-performance contrast - material_texture: Court varnish, turf grain, chalk dust, polished wood, instrument lacquer, rink sheen, jersey fabric, and stage-floor texture - render_quality: Premium sports-performance anime frame, motion-readable polish, live-event atmosphere, expressive anatomy, and crisp action finish - spatial_distortion: Competition-ready foreshortening, venue-depth perspective, motion-path readability, dynamic athlete silhouette design, and crowd-to-stage scale cues - atmosphere: Determined, cool, introspective, communal - key_features: Running-form silhouettes, streetlamp rhythm, breath-in-cold-air cues, pack spacing, night-road momentum - creative_brief: A cold wind threads through campus lamps as runners carve silhouettes against the dark, each stride a meditation on endurance shared. The road becomes a quiet covenant between body and breath, distance dissolving into the rhythm of collective will. + aesthetic: Running de fondo universitario orientado a resistencia progresiva, pacing mental y cohesión de grupo. + form_and_line: Siluetas de zancada eficiente, postura de economía de carrera y acting de fatiga contenida. + color_palette: Azules nocturnos fríos, ámbar de farola y acentos uniformes discretos de equipo. + lighting_setup: Cadencia lumínica por farolas, contraste bajo de ruta nocturna y halos de respiración en frío. + material_texture: Asfalto húmedo fino, textil técnico de running, vapor de aliento y suela de desgaste continuo. + render_quality: Frame deportivo introspectivo con claridad de pack spacing, ritmo y esfuerzo acumulado. + spatial_distortion: Perspectiva de ruta larga con compresión gradual de distancia y vector de avance continuo. + atmosphere: Determinada, fría, introspectiva y comunitaria. + key_features: Ritmo de farola, spacing de pack, vapor respiratorio y continuidad de ruta nocturna extendida. + creative_brief: >- + Construye una gramática reusable de night-marathon-drift donde pacing, + resistencia y coreografía de grupo mantengan una identidad visual de largo + recorrido sin anécdota puntual. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-352.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-352.yaml index c3b92c22..e9ac4574 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-352.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-352.yaml @@ -12,16 +12,19 @@ tags: - anime-classics-and-prestige - sports-competition-and-performance visualDna: - aesthetic: Street-skate rivalry under tropical neon, colorful ramps, underground race bravado, friendship and adrenaline sharing one electric frame, wheels and attitude in bright motion - form_and_line: Energetic sports-and-performance anime linework, clean anatomy, dynamic motion arcs, precise gesture readability, and expressive pose control - color_palette: Vivid team colors, arena neons, polished skin highlights, bright accent uniforms, stage gels, and crisp event-driven contrast - lighting_setup: Venue-ready spotlighting, stadium or gym bounce, dramatic event backlight, polished floor reflections, and live-performance contrast - material_texture: Court varnish, turf grain, chalk dust, polished wood, instrument lacquer, rink sheen, jersey fabric, and stage-floor texture - render_quality: Premium sports-performance anime frame, motion-readable polish, live-event atmosphere, expressive anatomy, and crisp action finish - spatial_distortion: Competition-ready foreshortening, venue-depth perspective, motion-path readability, dynamic athlete silhouette design, and crowd-to-stage scale cues - atmosphere: Rebellious, fun, fast, vibrant - key_features: Board tricks midair, ramp curvature, neon-night venue cues, streetwear silhouettes, wheel-motion streaks - creative_brief: Palm trees catch neon runoff while wheels carve rainbow arcs across illegal midnight ramps. Gravity and grudge dissolve into pure velocity, friendship painted in board-slide streaks against the tropical dark. + aesthetic: Skate competitivo underground de noche, centrado en trick flow, estilo personal y rivalidad de circuito. + form_and_line: Poses elásticas de board control, curvas de rampa expresivas y anatomía street-dynamic legible. + color_palette: Neones tropicales saturados, negros de asfalto y acentos cromáticos por crew. + lighting_setup: Iluminación nocturna de venue ilegal con contraluces duros y rebote de piso húmedo. + material_texture: Asfalto rugoso, grip tape gastado, metal de rampa marcado y textil streetwear vibrante. + render_quality: Frame de skate premium con lectura instantánea de truco, aterrizaje y velocidad. + spatial_distortion: Foreshortening aéreo y curvatura de half-pipe para enfatizar altura y trayectoria. + atmosphere: Rebelde, divertida, acelerada y extremadamente viva. + key_features: Trucos midair, geometría de rampa, estelas de rueda y silueta street de crew. + creative_brief: >- + Define una gramática reusable de neon-ramp-skate donde trick flow, + identidad de crew y lectura de trayectoria prioricen jugabilidad visual por + encima de anécdotas de escena. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-353.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-353.yaml index 21bb113e..b1cfe835 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-353.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-353.yaml @@ -12,16 +12,19 @@ tags: - anime-classics-and-prestige - sports-competition-and-performance visualDna: - aesthetic: Touge night racing, hairpin drift choreography, headlight fog, driver concentration and machine balance rendered with asphalt obsession and midnight speed - form_and_line: Energetic sports-and-performance anime linework, clean anatomy, dynamic motion arcs, precise gesture readability, and expressive pose control - color_palette: Vivid team colors, arena neons, polished skin highlights, bright accent uniforms, stage gels, and crisp event-driven contrast - lighting_setup: Venue-ready spotlighting, stadium or gym bounce, dramatic event backlight, polished floor reflections, and live-performance contrast - material_texture: Court varnish, turf grain, chalk dust, polished wood, instrument lacquer, rink sheen, jersey fabric, and stage-floor texture - render_quality: Premium sports-performance anime frame, motion-readable polish, live-event atmosphere, expressive anatomy, and crisp action finish - spatial_distortion: Competition-ready foreshortening, venue-depth perspective, motion-path readability, dynamic athlete silhouette design, and crowd-to-stage scale cues - atmosphere: Nocturnal, tense, technical, exhilarating - key_features: Drift-angle framing, headlight beams, guardrail curves, dashboard focus, tire-smoke mountain roads - creative_brief: Guardrails blur into silver ribbons as headlight beams cut through mountain fog and tire smoke, the road a tightening spiral of nerve and precision. Every hairpin holds a silent conversation between machine, asphalt, and the driver's unblinking focus. + aesthetic: Touge-racing nocturno centrado en drift técnico, control de transferencia de peso y lectura de curva ciega. + form_and_line: Contornos de vehículo afilados, vectores de derrape y postura de conducción de concentración máxima. + color_palette: Azules de noche montañosa, blanco de faro alto, naranja de freno térmico y negros de asfalto húmedo. + lighting_setup: Cortes de luz por faros direccionales y halos de niebla que enfatizan apex y salida de curva. + material_texture: Asfalto granular, guardarraíl metálico mojado, humo de neumático fino y cabina con reflejo bajo. + render_quality: Frame de motorsport anime con prioridad en trayectoria, adherencia y lectura de riesgo. + spatial_distortion: Perspectiva de hairpin con compresión agresiva del túnel vial y estiramiento lateral del drift. + atmosphere: Nocturna, tensa, técnica y adictiva. + key_features: Ángulo de derrape, conos de faro, curva cerrada, foco de volante y estela de humo quirúrgica. + creative_brief: >- + Define una gramática reusable de mountain-drift donde lectura de curva, + comportamiento de tracción y tensión nocturna estructuren identidad sin + depender de una carrera concreta. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-354.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-354.yaml index 6748eb32..f77678ce 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-354.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-354.yaml @@ -12,16 +12,19 @@ tags: - anime-classics-and-prestige - sports-competition-and-performance visualDna: - aesthetic: Modern street-racing futurism, telemetry-thinking drivers, high-end road machines, coastal circuits and digital-age grip rendered with sleek athletic motor focus - form_and_line: Energetic sports-and-performance anime linework, clean anatomy, dynamic motion arcs, precise gesture readability, and expressive pose control - color_palette: Vivid team colors, arena neons, polished skin highlights, bright accent uniforms, stage gels, and crisp event-driven contrast - lighting_setup: Venue-ready spotlighting, stadium or gym bounce, dramatic event backlight, polished floor reflections, and live-performance contrast - material_texture: Court varnish, turf grain, chalk dust, polished wood, instrument lacquer, rink sheen, jersey fabric, and stage-floor texture - render_quality: Premium sports-performance anime frame, motion-readable polish, live-event atmosphere, expressive anatomy, and crisp action finish - spatial_distortion: Competition-ready foreshortening, venue-depth perspective, motion-path readability, dynamic athlete silhouette design, and crowd-to-stage scale cues - atmosphere: Sleek, exacting, modern, competitive - key_features: Car-apex cornering, telemetry-like cues, coastal-road speed, precision driving posture, sleek neon reflections - creative_brief: Data streams trace the perfect line through coastal switchbacks where carbon-fiber precision meets telemetry-driven instinct. The future of speed wears a sleek digital skin, every apex calculated yet somehow alive with human hunger. + aesthetic: Street-racing tecnificado de nueva generación, orientado a telemetría, trazada óptima y precisión de frenada. + form_and_line: Silueta automotriz limpia, gestualidad de piloto analítica y líneas de apex de alta definición. + color_palette: Cian digital, grises titanio, azules costeros y acentos magenta de interfaz de rendimiento. + lighting_setup: Iluminación costera nocturna con reflejos controlados y cues de tablero de alta legibilidad. + material_texture: Fibra de carbono pulida, pintura metalizada, asfalto liso de circuito abierto y vidrio de cabina técnico. + render_quality: Motor-performance frame premium con claridad de datos, velocidad y control fino. + spatial_distortion: Perspectiva de curva rápida con vector de trazada y compresión de distancia a punto de frenada. + atmosphere: Precisa, moderna, fría y tácticamente competitiva. + key_features: Línea de apex limpia, lectura telemetry-like, reflejo de costa, postura de control y tracción fina. + creative_brief: >- + Formula una gramática reusable de smart-apex-racing donde telemetría, + trazada y estética digital de rendimiento definan identidad visual + transferible. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-355.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-355.yaml index 2a40d9b9..e8a309ee 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-355.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-355.yaml @@ -12,16 +12,19 @@ tags: - anime-classics-and-prestige - sports-competition-and-performance visualDna: - aesthetic: Horse-girl racing pageantry, stadium cheers, ribboned athletic costumes, track dust and idol energy fused into one hyper-bright sports-performance spectacle - form_and_line: Energetic sports-and-performance anime linework, clean anatomy, dynamic motion arcs, precise gesture readability, and expressive pose control - color_palette: Vivid team colors, arena neons, polished skin highlights, bright accent uniforms, stage gels, and crisp event-driven contrast - lighting_setup: Venue-ready spotlighting, stadium or gym bounce, dramatic event backlight, polished floor reflections, and live-performance contrast - material_texture: Court varnish, turf grain, chalk dust, polished wood, instrument lacquer, rink sheen, jersey fabric, and stage-floor texture - render_quality: Premium sports-performance anime frame, motion-readable polish, live-event atmosphere, expressive anatomy, and crisp action finish - spatial_distortion: Competition-ready foreshortening, venue-depth perspective, motion-path readability, dynamic athlete silhouette design, and crowd-to-stage scale cues - atmosphere: Sparkling, speedy, cheerful, dramatic - key_features: Track-lane depth, cheering stadium read, costume-motion ribbons, finish-line rush, sports-meets-idol contrast - creative_brief: Turf dust catches stadium light like scattered sequins as ribbon-trailing sprinters blur past roaring grandstands. Athletic fury dressed in idol pageantry, where the finish line is both victory and stage curtain. + aesthetic: Turf-sprint idolizado de energía festiva, centrado en velocidad de pista y showmanship competitivo. + form_and_line: Siluetas de carrera livianas, movimiento de listones/cabello y acting de rivalidad alegre. + color_palette: Pasteles saturados de evento, verdes de césped vivo y acentos de equipo de alto contraste. + lighting_setup: Iluminación de estadio brillante con destellos de final de carrera y rebote cálido de graderío. + material_texture: Tierra de pista, telas ornamentales ligeras, accesorios de presentación y brillo deportivo pulido. + render_quality: Sports-performance frame hyper-bright con lectura limpia de sprint, carril y photo-finish. + spatial_distortion: Perspectiva de recta final con estelas de velocidad y compresión hacia meta. + atmosphere: Centelleante, veloz, alegre y dramática. + key_features: Profundidad de carril, energía de público, cintas en movimiento y rush de línea de meta. + creative_brief: >- + Construye una gramática reusable de idol-derby-sprint donde espectáculo, + velocidad y legibilidad de carril se integren sin depender de un photo-finish + específico. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-356.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-356.yaml index c1001af6..67fe9350 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-356.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-356.yaml @@ -12,16 +12,19 @@ tags: - anime-classics-and-prestige - sports-competition-and-performance visualDna: - aesthetic: Tennis as superhuman duel theater, baseline standoffs, spinning serves, character-specific swagger and national-tournament pressure rendered like arena combat - form_and_line: Energetic sports-and-performance anime linework, clean anatomy, dynamic motion arcs, precise gesture readability, and expressive pose control - color_palette: Vivid team colors, arena neons, polished skin highlights, bright accent uniforms, stage gels, and crisp event-driven contrast - lighting_setup: Venue-ready spotlighting, stadium or gym bounce, dramatic event backlight, polished floor reflections, and live-performance contrast - material_texture: Court varnish, turf grain, chalk dust, polished wood, instrument lacquer, rink sheen, jersey fabric, and stage-floor texture - render_quality: Premium sports-performance anime frame, motion-readable polish, live-event atmosphere, expressive anatomy, and crisp action finish - spatial_distortion: Competition-ready foreshortening, venue-depth perspective, motion-path readability, dynamic athlete silhouette design, and crowd-to-stage scale cues - atmosphere: Stylized, intense, youthful, dramatic - key_features: Racket-swing arcs, baseline geometry, serve-impact trails, rivalry face-offs, indoor-court tournament framing - creative_brief: The court transforms into arena theater where serves crack like thunder and baseline geometry frames impossible rivalries. Every racket swing writes a signature across the air, youth distilled into the physics of defiance. + aesthetic: Tennis de duelo estilizado orientado a baseline control, saque de efecto y presión de torneo. + form_and_line: Arcos de swing marcados, postura de split-step precisa y acting de rivalidad frontal. + color_palette: Azules de indoor-court, blancos técnicos y acentos cromáticos por jugador para lectura de matchup. + lighting_setup: Iluminación indoor contrastada con focos en impacto de raqueta y zona de bote. + material_texture: Superficie acrílica de cancha, cuerda de raqueta tensa, pelota con fuzz visible y textil de alto rendimiento. + render_quality: Frame deportivo de alta teatralidad con claridad de punto, ventaja y respuesta. + spatial_distortion: Foreshortening en servicio y compresión de fondo de pista para enfatizar timing de devolución. + atmosphere: Estilizada, intensa, juvenil y dramática. + key_features: Arco de saque, geometría de baseline, estela de golpe y framing de enfrentamiento frontal. + creative_brief: >- + Define una gramática reusable de baseline-showdown donde duelismo, + trayectoria de bola y teatralidad de torneo sostengan una identidad + transferible. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-357.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-357.yaml index b6fbd911..3a77a338 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-357.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-357.yaml @@ -12,16 +12,19 @@ tags: - anime-classics-and-prestige - sports-competition-and-performance visualDna: - aesthetic: Table tennis pressure seen through psychological deformation, speed and identity colliding across a tiny table, rough athletic tension and emotional asymmetry made visual - form_and_line: Energetic sports-and-performance anime linework, clean anatomy, dynamic motion arcs, precise gesture readability, and expressive pose control - color_palette: Vivid team colors, arena neons, polished skin highlights, bright accent uniforms, stage gels, and crisp event-driven contrast - lighting_setup: Venue-ready spotlighting, stadium or gym bounce, dramatic event backlight, polished floor reflections, and live-performance contrast - material_texture: Court varnish, turf grain, chalk dust, polished wood, instrument lacquer, rink sheen, jersey fabric, and stage-floor texture - render_quality: Premium sports-performance anime frame, motion-readable polish, live-event atmosphere, expressive anatomy, and crisp action finish - spatial_distortion: Competition-ready foreshortening, venue-depth perspective, motion-path readability, dynamic athlete silhouette design, and crowd-to-stage scale cues - atmosphere: Psychological, fast, raw, strange - key_features: Table-edge perspective, paddle-snap motion, facial distortion under pressure, gym-shadow intimacy, spin trajectory cues - creative_brief: The table shrinks into a psychological battlefield where paddle-snap echoes warp faces and identities fracture under spin. Speed becomes a mirror — what you see across the net is never just the opponent, but yourself distorted. + aesthetic: Tenis de mesa psicológico de alta velocidad, enfocado en spin, anticipación y fractura perceptiva competitiva. + form_and_line: Trazos nerviosos, microgesto facial bajo presión y snap de muñeca hiperlegible. + color_palette: Verdes fríos de sala, amarillos de pelota en alta visibilidad y sombras azul-gris de tensión. + lighting_setup: Luz interior contenida con contrastes abruptos en zona de mesa y rostro. + material_texture: Superficie de mesa mate, goma de paleta marcada, suelo de gimnasio áspero y sudor granular. + render_quality: Frame deportivo expresionista con lectura instantánea de spin, respuesta y quiebre mental. + spatial_distortion: Perspectiva de borde de mesa con deformación subjetiva en intercambios de ritmo extremo. + atmosphere: Psicológica, rápida, cruda y competitivamente íntima. + key_features: Mesa dominante, snap de paleta, distorsión de presión y cues de trayectoria rotacional. + creative_brief: >- + Formula una gramática reusable de table-spin-distortion donde presión + mental, lectura de efecto y deformación perceptiva definan estilo más allá + de cualquier rally específico. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-358.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-358.yaml index 6c1b07b9..a650622a 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-358.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-358.yaml @@ -12,16 +12,19 @@ tags: - anime-classics-and-prestige - sports-competition-and-performance visualDna: - aesthetic: Boxing gym sweat, taped fists, underdog muscle effort, ropes and bruises, comeback spirit and technical grit rendered with old-school sports-drama sincerity - form_and_line: Energetic sports-and-performance anime linework, clean anatomy, dynamic motion arcs, precise gesture readability, and expressive pose control - color_palette: Vivid team colors, arena neons, polished skin highlights, bright accent uniforms, stage gels, and crisp event-driven contrast - lighting_setup: Venue-ready spotlighting, stadium or gym bounce, dramatic event backlight, polished floor reflections, and live-performance contrast - material_texture: Court varnish, turf grain, chalk dust, polished wood, instrument lacquer, rink sheen, jersey fabric, and stage-floor texture - render_quality: Premium sports-performance anime frame, motion-readable polish, live-event atmosphere, expressive anatomy, and crisp action finish - spatial_distortion: Competition-ready foreshortening, venue-depth perspective, motion-path readability, dynamic athlete silhouette design, and crowd-to-stage scale cues - atmosphere: Grueling, inspiring, rough, determined - key_features: Boxing-ring ropes, glove-impact pose, corner-stool exhaustion, taped-hand detail, coach-fighter framing - creative_brief: Taped fists rest heavy on aching knees while the ring ropes hum with the crowd's distant thunder. Sweat pools on the corner stool like a sacrament of perseverance, every bruise a chapter in the gospel of rising once more. + aesthetic: Boxeo de superación clásica orientado a resistencia, técnica de guardia y comeback por rounds. + form_and_line: Anatomía de golpeo pesada, guardia compacta y acting físico de castigo acumulado. + color_palette: Rojos de esquina, azul acero de sombra de ring y tonos piel cálidos de esfuerzo extremo. + lighting_setup: Spot duro de ring con penumbra periférica y foco dramático en cuerda/esquina. + material_texture: Cuero de guante castigado, vendas saturadas, lona gastada y sudor de gimnasio viejo. + render_quality: Frame de combate deportivo con legibilidad de impacto, defensa y recuperación. + spatial_distortion: Perspectiva de cuerdas con compresión de distancia en intercambio corto y uppercut. + atmosphere: Dura, inspiradora, áspera y obstinada. + key_features: Cuerdas tensas, postura de impacto, fatiga en banquillo y dúo coach-boxeador. + creative_brief: >- + Construye una gramática reusable de comeback-boxing donde fisicidad de + round, disciplina técnica y estética de gym clásico sostengan una identidad + transferible. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-359.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-359.yaml index 838da282..82fd70c0 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-359.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-359.yaml @@ -12,16 +12,19 @@ tags: - anime-classics-and-prestige - sports-competition-and-performance visualDna: - aesthetic: Figure-skating performance under arena spotlights, emotional choreography, blade-trace elegance, coach-athlete tension and public vulnerability rendered with icy grace - form_and_line: Energetic sports-and-performance anime linework, clean anatomy, dynamic motion arcs, precise gesture readability, and expressive pose control - color_palette: Vivid team colors, arena neons, polished skin highlights, bright accent uniforms, stage gels, and crisp event-driven contrast - lighting_setup: Venue-ready spotlighting, stadium or gym bounce, dramatic event backlight, polished floor reflections, and live-performance contrast - material_texture: Court varnish, turf grain, chalk dust, polished wood, instrument lacquer, rink sheen, jersey fabric, and stage-floor texture - render_quality: Premium sports-performance anime frame, motion-readable polish, live-event atmosphere, expressive anatomy, and crisp action finish - spatial_distortion: Competition-ready foreshortening, venue-depth perspective, motion-path readability, dynamic athlete silhouette design, and crowd-to-stage scale cues - atmosphere: Elegant, exposed, emotional, competitive - key_features: Ice-rink reflections, spin posture, spotlight cones, costume shimmer, blade-trace curves - creative_brief: Blade traces etch fragility into ice as arena spotlights carve a cathedral of exposure around a solitary spinning figure. Every arabesque holds a lifetime of doubt and devotion balanced on the edge of public gaze. + aesthetic: Patinaje artístico competitivo centrado en coreografía emocional, línea corporal y control de eje en spin. + form_and_line: Silueta elongada, transición fluida entre poses y precisión de filo sobre hielo. + color_palette: Azules glaciales, plateados de foco y acentos cromáticos de vestuario escénico. + lighting_setup: Conos de spotlight sobre pista con relleno frío y reflejo especular controlado. + material_texture: Hielo pulido con trazas de cuchilla, tela brillante de traje y cristales de escarcha fina. + render_quality: Performance frame premium con claridad de salto, spin y aterrizaje limpio. + spatial_distortion: Curvatura elegante de trayectorias y profundidad de rink para lectura de programa completo. + atmosphere: Elegante, vulnerable, emotiva y competitiva. + key_features: Reflejo de pista, postura de spin, shimmer de vestuario y curvas de cuchilla precisas. + creative_brief: >- + Define una gramática reusable de rink-performance donde coreografía, + expresividad y legibilidad técnica de patinaje funcionen más allá de una + rutina específica. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-360.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-360.yaml index 60a0bd0c..135e6a55 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-360.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-360.yaml @@ -12,16 +12,19 @@ tags: - anime-classics-and-prestige - sports-competition-and-performance visualDna: - aesthetic: Karuta competition as athletic poetry, tatami rooms, kimono sleeves, explosive card-strike speed, cultural refinement transformed into fierce competitive intensity - form_and_line: Energetic sports-and-performance anime linework, clean anatomy, dynamic motion arcs, precise gesture readability, and expressive pose control - color_palette: Vivid team colors, arena neons, polished skin highlights, bright accent uniforms, stage gels, and crisp event-driven contrast - lighting_setup: Venue-ready spotlighting, stadium or gym bounce, dramatic event backlight, polished floor reflections, and live-performance contrast - material_texture: Court varnish, turf grain, chalk dust, polished wood, instrument lacquer, rink sheen, jersey fabric, and stage-floor texture - render_quality: Premium sports-performance anime frame, motion-readable polish, live-event atmosphere, expressive anatomy, and crisp action finish - spatial_distortion: Competition-ready foreshortening, venue-depth perspective, motion-path readability, dynamic athlete silhouette design, and crowd-to-stage scale cues - atmosphere: Focused, elegant, disciplined, urgent - key_features: Tatami geometry, hand-strike blur, kimono sleeve motion, low-room tension, concentration close-ups - creative_brief: Syllables hang in the tatami air for a breathless instant before a hand strikes like a heron through still water. Ancient poetry becomes athletic reflex, kimono sleeves trailing the ghost of the verse just snatched from silence. + aesthetic: Karuta competitivo de poesía atlética, orientado a reflejo de lectura, memoria sonora y golpe instantáneo. + form_and_line: Gesto de mano ultrarrápido, postura baja disciplinada y movimiento de manga como vector de acción. + color_palette: Tonos de tatami cálido, índigo tradicional y acentos carmín de tensión competitiva. + lighting_setup: Iluminación interior suave con foco sobre cartas y contraste de concentración facial. + material_texture: Trama de tatami, papel de carta nítido, seda de kimono y madera de sala ceremonial. + render_quality: Frame deportivo-cultural con lectura precisa de sílaba, reacción y captura de carta. + spatial_distortion: Perspectiva rasante de suelo y estiramiento de mano para dramatizar velocidad de strike. + atmosphere: Concentrada, elegante, disciplinada y urgentemente competitiva. + key_features: Geometría de tatami, blur de mano, tensión de sala baja y close-up de foco mental. + creative_brief: >- + Formula una gramática reusable de tatami-card-strike donde cultura, + velocidad de reacción y legibilidad de gesto conviertan la competencia en + sistema visual transferible. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-361.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-361.yaml index 247f7f29..fc7470e0 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-361.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-361.yaml @@ -12,16 +12,19 @@ tags: - anime-classics-and-prestige - sports-competition-and-performance visualDna: - aesthetic: Methodical tennis growth, notebooks and strategy, practice repetition, court fundamentals and self-built improvement rendered with grounded technical optimism - form_and_line: Energetic sports-and-performance anime linework, clean anatomy, dynamic motion arcs, precise gesture readability, and expressive pose control - color_palette: Vivid team colors, arena neons, polished skin highlights, bright accent uniforms, stage gels, and crisp event-driven contrast - lighting_setup: Venue-ready spotlighting, stadium or gym bounce, dramatic event backlight, polished floor reflections, and live-performance contrast - material_texture: Court varnish, turf grain, chalk dust, polished wood, instrument lacquer, rink sheen, jersey fabric, and stage-floor texture - render_quality: Premium sports-performance anime frame, motion-readable polish, live-event atmosphere, expressive anatomy, and crisp action finish - spatial_distortion: Competition-ready foreshortening, venue-depth perspective, motion-path readability, dynamic athlete silhouette design, and crowd-to-stage scale cues - atmosphere: Studious, practical, steady, determined - key_features: Practice-court realism, note-taking cues, swing mechanics, gradual-improvement body language, technical footwork framing - creative_brief: Every swing is a hypothesis tested against felt and string, notebooks filled with the humble arithmetic of incremental mastery. The court becomes a laboratory where patience and data slowly forge instinct from raw repetition. + aesthetic: Tennis metódico de mejora incremental, centrado en análisis técnico, repetición y evolución medible. + form_and_line: Mecánica de swing depurada, footwork educativo y acting de concentración sostenida. + color_palette: Paleta sobria de práctica, verdes de cancha, blancos de línea y acentos azules de estudio. + lighting_setup: Luz de entrenamiento uniforme con contraste moderado para lectura didáctica de gesto. + material_texture: Superficie de cancha usada, cuerda de raqueta funcional, cuaderno táctico y textil de práctica. + render_quality: Frame técnico de entrenamiento con claridad de corrección, progreso y consistencia. + spatial_distortion: Perspectiva funcional de práctica sin dramatización excesiva, enfocada en secuencia y repetición. + atmosphere: Estudiosa, práctica, constante y determinada. + key_features: Cues de toma de notas, mecánica de swing, patrón de pies y lenguaje corporal de mejora progresiva. + creative_brief: >- + Define una gramática reusable de notebook-tennis donde método, + repetición y lectura de técnica conviertan la progresión deportiva en + identidad visual estable. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-362.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-362.yaml index 0c1eee62..1cd56a45 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-362.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-362.yaml @@ -12,16 +12,19 @@ tags: - anime-classics-and-prestige - sports-competition-and-performance visualDna: - aesthetic: High-stakes golf rivalry with flamboyant color, long fairway compositions, fashion-forward competitors, absurd skill confidence and underground-to-elite course drama - form_and_line: Energetic sports-and-performance anime linework, clean anatomy, dynamic motion arcs, precise gesture readability, and expressive pose control - color_palette: Vivid team colors, arena neons, polished skin highlights, bright accent uniforms, stage gels, and crisp event-driven contrast - lighting_setup: Venue-ready spotlighting, stadium or gym bounce, dramatic event backlight, polished floor reflections, and live-performance contrast - material_texture: Court varnish, turf grain, chalk dust, polished wood, instrument lacquer, rink sheen, jersey fabric, and stage-floor texture - render_quality: Premium sports-performance anime frame, motion-readable polish, live-event atmosphere, expressive anatomy, and crisp action finish - spatial_distortion: Competition-ready foreshortening, venue-depth perspective, motion-path readability, dynamic athlete silhouette design, and crowd-to-stage scale cues - atmosphere: Flashy, precise, playful, fierce - key_features: Fairway depth lines, golf-swing silhouettes, luxury-course read, color-coded rivals, shot-trace arcs - creative_brief: Fairways stretch like chromatic ribbons toward impossible greens where fashion-forward rivals trade shot-traces like signature moves. Golf becomes spectacle, each swing a declaration of identity painted across the luxury-course sky. + aesthetic: Golf-rivalry de alto riesgo con estilización glam, centrada en precisión de swing y duelo de identidad competitiva. + form_and_line: Arco de swing elegante, postura de control fino y silueta de rival claramente codificada. + color_palette: Verdes de fairway premium, blancos luminosos, acentos cromáticos de rival y cielo de contraste limpio. + lighting_setup: Luz abierta de campo con focos dramáticos en tee, impacto y vuelo de bola. + material_texture: Césped recortado de alta gama, guante y grip detallados, tejido deportivo de lujo y metal de palo pulido. + render_quality: Sports frame de precisión vistosa con legibilidad de línea de tiro y presión de match. + spatial_distortion: Profundidad larga de fairway con trazas de bola y compresión selectiva de distancia al green. + atmosphere: Lujosa, precisa, lúdica y ferozmente competitiva. + key_features: Líneas de fairway, silueta de swing, trazas de tiro y contraste de rivales codificados. + creative_brief: >- + Construye una gramática reusable de fairway-duel donde precisión de golpe, + lectura de trayectoria y teatralidad competitiva sostengan estilo sin + encerrar el preset en una escena puntual. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-363.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-363.yaml index e8bcc504..c59e309f 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-363.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-363.yaml @@ -12,16 +12,19 @@ tags: - anime-classics-and-prestige - sports-competition-and-performance visualDna: - aesthetic: Rhythmic gymnastics team jumps, mat spring, synchronized airborne silhouettes, school-club encouragement and body-control beauty rendered with buoyant athletic optimism - form_and_line: Energetic sports-and-performance anime linework, clean anatomy, dynamic motion arcs, precise gesture readability, and expressive pose control - color_palette: Vivid team colors, arena neons, polished skin highlights, bright accent uniforms, stage gels, and crisp event-driven contrast - lighting_setup: Venue-ready spotlighting, stadium or gym bounce, dramatic event backlight, polished floor reflections, and live-performance contrast - material_texture: Court varnish, turf grain, chalk dust, polished wood, instrument lacquer, rink sheen, jersey fabric, and stage-floor texture - render_quality: Premium sports-performance anime frame, motion-readable polish, live-event atmosphere, expressive anatomy, and crisp action finish - spatial_distortion: Competition-ready foreshortening, venue-depth perspective, motion-path readability, dynamic athlete silhouette design, and crowd-to-stage scale cues - atmosphere: Light, synchronized, hopeful, energetic - key_features: Midair sync poses, gym-mat staging, team timing cues, body-extension elegance, school-club warmth - creative_brief: Bodies arc through gymnasium air in synchronized constellations, suspended for a heartbeat between spring-mat rebound and gravity's recall. Team trust written in midair geometry where individual doubt dissolves into collective flight. + aesthetic: Gimnasia rítmica masculina de club escolar, centrada en sincronía aérea, ritmo de conjunto y control corporal. + form_and_line: Extensiones limpias de columna y piernas, arcos de salto coordinados y timing gestual colectivo. + color_palette: Azules y blancos de uniforme, acentos naranja de energía y fondos cálidos de gimnasio de competencia. + lighting_setup: Luz deportiva homogénea con realce en fase aérea y sombra suave sobre colchoneta. + material_texture: Colchoneta de rebote granular, textil elástico técnico, resina de agarre ligera y piso deportivo pulido. + render_quality: Frame deportivo de alta nitidez con legibilidad de sincronía, altura y aterrizaje. + spatial_distortion: Foreshortening vertical moderado para enfatizar suspensión grupal y alineación de figuras. + atmosphere: Ligera, esperanzadora, sincronizada y vibrante. + key_features: Poses midair en espejo, lectura de conteo, extensión corporal y calor de club escolar. + creative_brief: >- + Define una gramática reusable de rhythmic-flight-team donde sincronía + aérea, precisión de rebote y confianza colectiva articulen identidad visual + transferible sin depender de una coreografía puntual. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-364.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-364.yaml index 4b204448..d0509439 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-364.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-364.yaml @@ -12,16 +12,19 @@ tags: - anime-classics-and-prestige - sports-competition-and-performance visualDna: - aesthetic: Studio mirrors, sweating rehearsal focus, male ballet intensity, footwork perfectionism and emotional exposure rendered through elegant motion and discipline - form_and_line: Energetic sports-and-performance anime linework, clean anatomy, dynamic motion arcs, precise gesture readability, and expressive pose control - color_palette: Vivid team colors, arena neons, polished skin highlights, bright accent uniforms, stage gels, and crisp event-driven contrast - lighting_setup: Venue-ready spotlighting, stadium or gym bounce, dramatic event backlight, polished floor reflections, and live-performance contrast - material_texture: Court varnish, turf grain, chalk dust, polished wood, instrument lacquer, rink sheen, jersey fabric, and stage-floor texture - render_quality: Premium sports-performance anime frame, motion-readable polish, live-event atmosphere, expressive anatomy, and crisp action finish - spatial_distortion: Competition-ready foreshortening, venue-depth perspective, motion-path readability, dynamic athlete silhouette design, and crowd-to-stage scale cues - atmosphere: Passionate, disciplined, elegant, vulnerable - key_features: Dance-studio mirrors, turned-out leg lines, rehearsal posture, sweat-and-light realism, emotional body extension - creative_brief: Studio mirrors multiply the lonely pursuit of perfection, each reflection a witness to the sweat and trembling discipline of the turned-out foot. Ballet becomes a private language spoken through aching muscle, elegant and merciless. + aesthetic: Ballet competitivo de estudio, enfocado en disciplina técnica, exposición emocional y perfección de línea. + form_and_line: Turnout preciso, eje de torso refinado, extensiones largas y transición de peso controlada. + color_palette: Neutros de estudio, rosas empolvados, grises cálidos y acentos de piel iluminada por esfuerzo. + lighting_setup: Luz de sala y rebote de espejo con contraste medio para enfatizar corrección postural. + material_texture: Piso de danza desgastado, tela de ensayo transpirable, resina de zapatilla y sudor fino de práctica. + render_quality: Frame performativo elegante con lectura clara de técnica, tensión muscular y vulnerabilidad. + spatial_distortion: Perspectiva de espejo múltiple con profundidad repetida que acentúa autocorrección y presión. + atmosphere: Apasionada, disciplinada, elegante y frágil. + key_features: Multiplicación especular, líneas de pierna en turnout, respiración de ensayo y foco corporal expresivo. + creative_brief: >- + Construye una gramática reusable de ballet-obsession-rehearsal donde + disciplina de estudio, linework anatómico y emocionalidad contenida formen + un lenguaje visual reutilizable. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-365.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-365.yaml index 18fe474b..8157e760 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-365.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-365.yaml @@ -12,16 +12,19 @@ tags: - anime-classics-and-prestige - sports-competition-and-performance visualDna: - aesthetic: Ballroom dance under hot competition lights, flowing gowns, polished shoes, partner tension, spin momentum and public judgment turned into dramatic movement theater - form_and_line: Energetic sports-and-performance anime linework, clean anatomy, dynamic motion arcs, precise gesture readability, and expressive pose control - color_palette: Vivid team colors, arena neons, polished skin highlights, bright accent uniforms, stage gels, and crisp event-driven contrast - lighting_setup: Venue-ready spotlighting, stadium or gym bounce, dramatic event backlight, polished floor reflections, and live-performance contrast - material_texture: Court varnish, turf grain, chalk dust, polished wood, instrument lacquer, rink sheen, jersey fabric, and stage-floor texture - render_quality: Premium sports-performance anime frame, motion-readable polish, live-event atmosphere, expressive anatomy, and crisp action finish - spatial_distortion: Competition-ready foreshortening, venue-depth perspective, motion-path readability, dynamic athlete silhouette design, and crowd-to-stage scale cues - atmosphere: Dazzling, pressured, romantic, intense - key_features: Dance-floor reflections, gown motion, pair silhouettes, competition-judge ambiance, spin blur - creative_brief: Gowns bloom and collapse like tropical flowers under the scorching geometry of competition spotlights, every spin a negotiation between two bodies and the watching world. The floor becomes a pressure cooker where romance and rivalry share the same heated breath. + aesthetic: Ballroom competitivo de pareja, orientado a frame coreográfico, tracción de piso y duelo escénico. + form_and_line: Línea de pareja tensa, giro de cadera coordinado y extensión de brazos de alta precisión. + color_palette: Dorados de salón, negros de contraste formal, rojos profundos y blancos de brillo de gala. + lighting_setup: Spotlights cálidos de competición con reflejo fuerte en piso encerado y bordes de silueta. + material_texture: Satén de vestido en flujo, cuero de zapato pulido, parquet brillante y pedrería escénica fina. + render_quality: Frame de danza premium con lectura de liderazgo-seguimiento, giro y postura. + spatial_distortion: Barrido circular de spin con compresión de fondo y foco en eje de pareja. + atmosphere: Deslumbrante, tensa, romántica e intensa. + key_features: Reflejo de dance-floor, silueta dual, dinámica de giro y presencia de juez implícita. + creative_brief: >- + Define una gramática reusable de competition-ballroom donde técnica de + pareja, teatralidad de giro y presión pública sostengan identidad visual + más allá de una rutina específica. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-366.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-366.yaml index ebe2a358..6ee862bd 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-366.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-366.yaml @@ -12,16 +12,19 @@ tags: - anime-classics-and-prestige - sports-competition-and-performance visualDna: - aesthetic: School performance drama around traditional strings, lacquered instruments, stage light, group harmony and personal healing rendered through poised hands and emotional ensemble spacing - form_and_line: Energetic sports-and-performance anime linework, clean anatomy, dynamic motion arcs, precise gesture readability, and expressive pose control - color_palette: Vivid team colors, arena neons, polished skin highlights, bright accent uniforms, stage gels, and crisp event-driven contrast - lighting_setup: Venue-ready spotlighting, stadium or gym bounce, dramatic event backlight, polished floor reflections, and live-performance contrast - material_texture: Court varnish, turf grain, chalk dust, polished wood, instrument lacquer, rink sheen, jersey fabric, and stage-floor texture - render_quality: Premium sports-performance anime frame, motion-readable polish, live-event atmosphere, expressive anatomy, and crisp action finish - spatial_distortion: Competition-ready foreshortening, venue-depth perspective, motion-path readability, dynamic athlete silhouette design, and crowd-to-stage scale cues - atmosphere: Earnest, resonant, delicate, uplifting - key_features: Koto string detail, seated ensemble staging, lacquer gleam, hand-position focus, recital-hall warmth - creative_brief: Thirteen silk strings hum in unison across a recital-hall stage, each pluck a voice in a fragile democracy of sound. Lacquer gleams under warm spotlights as adolescent hands coax centuries-old timber into something achingly present. + aesthetic: Performance escolar de ensamble tradicional, centrada en resonancia colectiva y precisión de digitación. + form_and_line: Postura sentada estable, gesto de mano fino y coreografía mínima de conjunto por respiración. + color_palette: Maderas cálidas, ámbar de sala, negro laca y acentos crema de vestuario formal. + lighting_setup: Luz de recital suave con foco frontal sobre cuerdas y rebote cálido de escenario. + material_texture: Laca pulida del instrumento, cuerda tensada visible, tela ceremonial y piso de madera resonante. + render_quality: Frame musical de alta delicadeza con legibilidad de ataque, dinámica y balance entre intérpretes. + spatial_distortion: Perspectiva de ensamble en abanico con profundidad serena y jerarquía de secciones. + atmosphere: Sincera, resonante, delicada y elevadora. + key_features: Detalle de cuerdas, staging sentado, brillo de laca y foco en colocación de manos. + creative_brief: >- + Formula una gramática reusable de koto-ensemble-resonance donde materialidad + del instrumento, respiración grupal y lectura de gesto musical construyan + una identidad transferible. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-367.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-367.yaml index 89cff201..22543ae7 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-367.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-367.yaml @@ -12,16 +12,19 @@ tags: - anime-classics-and-prestige - sports-competition-and-performance visualDna: - aesthetic: Concert-band adolescence, brass reflections, after-school rehearsal rooms, competition anxiety and friendship rendered with polished KyoAni-style emotional specificity - form_and_line: Energetic sports-and-performance anime linework, clean anatomy, dynamic motion arcs, precise gesture readability, and expressive pose control - color_palette: Vivid team colors, arena neons, polished skin highlights, bright accent uniforms, stage gels, and crisp event-driven contrast - lighting_setup: Venue-ready spotlighting, stadium or gym bounce, dramatic event backlight, polished floor reflections, and live-performance contrast - material_texture: Court varnish, turf grain, chalk dust, polished wood, instrument lacquer, rink sheen, jersey fabric, and stage-floor texture - render_quality: Premium sports-performance anime frame, motion-readable polish, live-event atmosphere, expressive anatomy, and crisp action finish - spatial_distortion: Competition-ready foreshortening, venue-depth perspective, motion-path readability, dynamic athlete silhouette design, and crowd-to-stage scale cues - atmosphere: Tender, aspirational, polished, musical - key_features: Brass-instrument reflections, rehearsal-room depth, embouchure hand detail, uniform subtlety, ensemble proximity - creative_brief: Sunset spills through rehearsal-room windows, catching the bell of a euphonium in amber as breath and brass negotiate an elusive perfect tone. After-school hours become sacred territory where adolescent hope learns to resonate in B-flat. + aesthetic: Banda escolar de concierto orientada a precisión de sección, color tímbrico y ansiedad de certamen. + form_and_line: Gestualidad de embocadura detallada, postura de atril disciplinada y microacting de respiración conjunta. + color_palette: Dorados de metal pulido, azules de uniforme sobrio y atardecer ámbar de sala de ensayo. + lighting_setup: Luz de tarde de aula con foco cálido sobre campanas y sombras suaves de atriles. + material_texture: Latón espejo, llaves metálicas usadas, papel de partitura mate y tejido formal del uniforme. + render_quality: Frame musical premium con lectura de sección, afinación emocional y jerarquía de planos instrumentales. + spatial_distortion: Profundidad de ensamble por filas de atril y compresión leve hacia solista de sección. + atmosphere: Tierna, aspiracional, pulida y profundamente musical. + key_features: Reflejos de brass, detalle de embocadura, proximidad de ensamble y escala de sala de ensayo. + creative_brief: >- + Construye una gramática reusable de brass-section-practice donde + materialidad del metal, disciplina de ensamble y sensibilidad adolescente + formen un sistema visual estable y transferible. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-368.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-368.yaml index 4b45490f..c65c1cac 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-368.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-368.yaml @@ -12,16 +12,19 @@ tags: - anime-classics-and-prestige - sports-competition-and-performance visualDna: - aesthetic: Urban jazz obsession, smoky club stages, saxophone glow, relentless practice and stage eruption rendered through adult performance intensity and blue-hour city mood - form_and_line: Energetic sports-and-performance anime linework, clean anatomy, dynamic motion arcs, precise gesture readability, and expressive pose control - color_palette: Vivid team colors, arena neons, polished skin highlights, bright accent uniforms, stage gels, and crisp event-driven contrast - lighting_setup: Venue-ready spotlighting, stadium or gym bounce, dramatic event backlight, polished floor reflections, and live-performance contrast - material_texture: Court varnish, turf grain, chalk dust, polished wood, instrument lacquer, rink sheen, jersey fabric, and stage-floor texture - render_quality: Premium sports-performance anime frame, motion-readable polish, live-event atmosphere, expressive anatomy, and crisp action finish - spatial_distortion: Competition-ready foreshortening, venue-depth perspective, motion-path readability, dynamic athlete silhouette design, and crowd-to-stage scale cues - atmosphere: Driven, nocturnal, soulful, explosive - key_features: Saxophone shine, club-stage spotlights, smoke haze, soloist silhouette, city-night music vibe - creative_brief: Smoke curls around a saxophone bell as blue-hour city light leaks through club windows, the soloist ascending note by note into a private stratosphere. Jazz becomes pilgrimage, every late-night session a station on the road to total sound. + aesthetic: Jazz urbano de club nocturno, centrado en improvisación visceral y presencia escénica solista. + form_and_line: Silueta de saxofonista en tensión, gesto respiratorio marcado y arcos de cuerpo al fraseo. + color_palette: Azules midnight, dorados latón, magentas de neón tenue y negros humo de sala. + lighting_setup: Spot cálido de club con contraluz de neblina y glow lateral sobre campana del saxo. + material_texture: Latón con pátina, madera de tarima, humo volumétrico fino y tela oscura de escenario. + render_quality: Frame performativo adulto con lectura de intensidad, dinámica de solo y respuesta de sala. + spatial_distortion: Profundidad de club comprimida hacia solista con halo de audiencia periférica difusa. + atmosphere: Nocturna, impulsada, soulful y explosiva. + key_features: Brillo de sax, haze de club, spot aislado y silueta de solo en ascenso. + creative_brief: >- + Define una gramática reusable de midnight-jazz-ascension donde timbre de + latón, atmósfera de club y cuerpo performativo construyan identidad más + allá de un concierto particular. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-369.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-369.yaml index be88c8f6..64a2656d 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-369.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-369.yaml @@ -12,16 +12,18 @@ tags: - anime-classics-and-prestige - sports-competition-and-performance visualDna: - aesthetic: Band-practice sweat, garage amps, youth aspiration, guitar cables and stage nerves, scrappy music growth rendered with grounded punk sincerity - form_and_line: Energetic sports-and-performance anime linework, clean anatomy, dynamic motion arcs, precise gesture readability, and expressive pose control - color_palette: Vivid team colors, arena neons, polished skin highlights, bright accent uniforms, stage gels, and crisp event-driven contrast - lighting_setup: Venue-ready spotlighting, stadium or gym bounce, dramatic event backlight, polished floor reflections, and live-performance contrast - material_texture: Court varnish, turf grain, chalk dust, polished wood, instrument lacquer, rink sheen, jersey fabric, and stage-floor texture - render_quality: Premium sports-performance anime frame, motion-readable polish, live-event atmosphere, expressive anatomy, and crisp action finish - spatial_distortion: Competition-ready foreshortening, venue-depth perspective, motion-path readability, dynamic athlete silhouette design, and crowd-to-stage scale cues - atmosphere: Raw, youthful, scrappy, heartfelt - key_features: Amp stacks, guitar posture, garage clutter, band-lineup spacing, practice-room sweat energy - creative_brief: Distortion hums through garage walls as tangled cables and second-hand amps become the scaffolding of young ambition. Every chord is a promise made in sweat and feedback, punk sincerity echoing off concrete and dreaming of stage light. + aesthetic: Rock de garaje juvenil orientado a crecimiento por ensayo, crudeza sonora y cohesión de banda emergente. + form_and_line: Posturas de guitarra y bajo de energía contenida, microgesto vocal inseguro y dinámica de lineup. + color_palette: Marrones de concreto, rojos de cableado, negros de amplificador y acentos neón de cartel casero. + lighting_setup: Luz de garaje dura con sombras irregulares y contraluces de práctica improvisada. + material_texture: Tolex de amplificador usado, metal de cuerda gastada, cable enredado y pintura descascarada de sala. + render_quality: Frame musical crudo con legibilidad de instrumento, rol de banda y progresión de ensayo. + spatial_distortion: Perspectiva cerrada de cuarto de práctica con capas densas de equipo y proximidad física. + atmosphere: Cruda, joven, precaria y de corazón abierto. + key_features: Torres de amps, postura de ejecución, clutter de cables y spacing de banda en formación. + creative_brief: >- + Formula una gramática reusable de garage-amp-youth donde precariedad, + energía de ensayo y autenticidad punk articulen una identidad transferible. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-370.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-370.yaml index 6d21fa75..e4902616 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-370.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-370.yaml @@ -12,16 +12,19 @@ tags: - anime-classics-and-prestige - sports-competition-and-performance visualDna: - aesthetic: Indie-band romance under small-venue lights, emotional songwriting, guitar-and-vocal intimacy, stage confession energy and soft heartbreak in modern performance framing - form_and_line: Energetic sports-and-performance anime linework, clean anatomy, dynamic motion arcs, precise gesture readability, and expressive pose control - color_palette: Vivid team colors, arena neons, polished skin highlights, bright accent uniforms, stage gels, and crisp event-driven contrast - lighting_setup: Venue-ready spotlighting, stadium or gym bounce, dramatic event backlight, polished floor reflections, and live-performance contrast - material_texture: Court varnish, turf grain, chalk dust, polished wood, instrument lacquer, rink sheen, jersey fabric, and stage-floor texture - render_quality: Premium sports-performance anime frame, motion-readable polish, live-event atmosphere, expressive anatomy, and crisp action finish - spatial_distortion: Competition-ready foreshortening, venue-depth perspective, motion-path readability, dynamic athlete silhouette design, and crowd-to-stage scale cues - atmosphere: Intimate, aching, warm, musical - key_features: Mic-stand framing, guitar close-up, small-venue spotlights, duo emotional spacing, song-performance body language - creative_brief: A single mic stand catches the amber glow of a small-venue spotlight as unsaid words find their way through guitar strings. The stage becomes a confessional booth where melody carries the weight that silence could not bear. + aesthetic: Indie-performance íntima de sala pequeña, centrada en confesión lírica y vulnerabilidad en escena. + form_and_line: Gestualidad vocal cercana, postura de guitarra contenida y distancia emocional de dúo claramente legible. + color_palette: Ámbar cálido de venue, azul nocturno suave y acentos granate de melancolía contemporánea. + lighting_setup: Spotlights pequeños con caída suave y penumbra envolvente de club reducido. + material_texture: Madera de escenario mínimo, metal de mic stand, acabado mate de instrumento y humo ligero ambiental. + render_quality: Frame musical emotivo con lectura de letra, silencio y clímax de interpretación. + spatial_distortion: Perspectiva frontal compacta con foco íntimo en micrófono y eje de respiración compartida. + atmosphere: Íntima, doliente, cálida y musical. + key_features: Framing de mic stand, close-up de cuerda, spacing emocional dual y lenguaje corporal confesional. + creative_brief: >- + Construye una gramática reusable de stage-confession-indie donde + intimidad acústica, tensión emocional y mínima puesta escénica definan una + identidad visual reutilizable. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-371.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-371.yaml index 384ef3f0..16fbc99a 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-371.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-371.yaml @@ -12,16 +12,19 @@ tags: - anime-classics-and-prestige - sports-competition-and-performance visualDna: - aesthetic: Classical music comedy and brilliance, rehearsal halls, conductor authority, eccentric pianist chaos, sheet-music energy transformed into lively ensemble character drama - form_and_line: Energetic sports-and-performance anime linework, clean anatomy, dynamic motion arcs, precise gesture readability, and expressive pose control - color_palette: Vivid team colors, arena neons, polished skin highlights, bright accent uniforms, stage gels, and crisp event-driven contrast - lighting_setup: Venue-ready spotlighting, stadium or gym bounce, dramatic event backlight, polished floor reflections, and live-performance contrast - material_texture: Court varnish, turf grain, chalk dust, polished wood, instrument lacquer, rink sheen, jersey fabric, and stage-floor texture - render_quality: Premium sports-performance anime frame, motion-readable polish, live-event atmosphere, expressive anatomy, and crisp action finish - spatial_distortion: Competition-ready foreshortening, venue-depth perspective, motion-path readability, dynamic athlete silhouette design, and crowd-to-stage scale cues - atmosphere: Lively, cultured, eccentric, inspiring - key_features: Orchestra seating depth, conductor gestures, piano focus, rehearsal-hall scale, comedic musical body language - creative_brief: Sheet music scatters like startled birds as eccentric genius collides with conductor discipline in the rehearsal-hall crucible. Orchestra seating becomes a geography of personality, each stand a tiny nation negotiating the border between chaos and sublime harmony. + aesthetic: Orquesta de ensayo académico con fricción creativa entre rigor de dirección y caos virtuoso. + form_and_line: Gestos de batuta enérgicos, acting instrumental caricatural moderado y lectura clara de secciones. + color_palette: Maderas y marfiles clásicos, negros de frac, dorados tenues y acentos escarlata de tensión cómica. + lighting_setup: Luz de sala de ensayo amplia con focos suaves sobre director y teclado principal. + material_texture: Barniz de instrumento clásico, papel de partitura, atriles metálicos y tela formal en movimiento. + render_quality: Frame sinfónico vivaz con legibilidad de jerarquía de dirección, respuesta y caos controlado. + spatial_distortion: Profundidad de orquesta por capas de atril con perspectiva convergente al podio. + atmosphere: Viva, culta, excéntrica e inspiradora. + key_features: Gesto de director, masa de secciones, foco de piano y humor de ensayo colectivo. + creative_brief: >- + Define una gramática reusable de orchestra-rehearsal-whirl donde geografía + de secciones, autoridad de podio y excentricidad performativa generen + identidad transferible. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP05-372.yaml b/components/recipes/styles/manifests/presets/pack_16/SP05-372.yaml index 07565a91..f1fe5685 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP05-372.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP05-372.yaml @@ -12,16 +12,19 @@ tags: - anime-classics-and-prestige - sports-competition-and-performance visualDna: - aesthetic: Theater girls crossing into symbolic stage combat, spotlight duels, staircase sets, costume drama and performance-as-rivalry rendered through lavish allegorical staging - form_and_line: Energetic sports-and-performance anime linework, clean anatomy, dynamic motion arcs, precise gesture readability, and expressive pose control - color_palette: Vivid team colors, arena neons, polished skin highlights, bright accent uniforms, stage gels, and crisp event-driven contrast - lighting_setup: Venue-ready spotlighting, stadium or gym bounce, dramatic event backlight, polished floor reflections, and live-performance contrast - material_texture: Court varnish, turf grain, chalk dust, polished wood, instrument lacquer, rink sheen, jersey fabric, and stage-floor texture - render_quality: Premium sports-performance anime frame, motion-readable polish, live-event atmosphere, expressive anatomy, and crisp action finish - spatial_distortion: Competition-ready foreshortening, venue-depth perspective, motion-path readability, dynamic athlete silhouette design, and crowd-to-stage scale cues - atmosphere: Theatrical, competitive, symbolic, luminous - key_features: Stage spotlight beams, duel-choreography poses, staircase set pieces, costume-pageantry detail, allegorical theater space - creative_brief: Spotlight beams cross like blades above a staircase that climbs into allegory, costume and combat fusing into a single radiant gesture. The stage becomes a liminal arena where performance is the only truth and every duel is a poem delivered at sword-point. + aesthetic: Stage-duel performativo alegórico, centrado en rivalidad escénica y combate coreografiado de alto simbolismo. + form_and_line: Poses teatrales de confrontación, silueta de espada-escena y transición dramática entre niveles de set. + color_palette: Carmín escénico, azul zafiro nocturno, dorado de gala y negros de fondo operático. + lighting_setup: Cruce de spotlights con backlight teatral y sombras recortadas de escalinata. + material_texture: Terciopelo de vestuario, madera pintada de escenografía, metal utilería y humo de escena controlado. + render_quality: Frame performativo de alto impacto con legibilidad de duelo, símbolo y jerarquía dramática. + spatial_distortion: Arquitectura axial de teatro con capas de escalera y profundidad alegórica en fuga vertical. + atmosphere: Teatral, competitiva, simbólica y luminosa. + key_features: Hazes de spotlight cruzado, poses de duelo, set de escalera y pageantry de vestuario. + creative_brief: >- + Construye una gramática reusable de revue-stage-duel donde alegoría, + coreografía de confrontación y arquitectura teatral sostengan una identidad + visual transferible sin escena fija. avoidRules: - realistic - 3d render diff --git a/components/recipes/styles/manifests/presets/pack_16/SP13-026.yaml b/components/recipes/styles/manifests/presets/pack_16/SP13-026.yaml index 93f3701a..0145625b 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP13-026.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP13-026.yaml @@ -13,16 +13,16 @@ tags: - anime - samurai-medieval visualDna: - aesthetic: Classic samurai anime set in a mountain temple. - form_and_line: Elegant linework, ceremonial stance, and precise katana handling. - color_palette: Stone gray, lacquered red, and midnight blue. - lighting_setup: Cool side lighting with warm lantern accents. - material_texture: Aged wood, wet stone, and polished steel. - render_quality: Restrained, narrative-focused illustration. - spatial_distortion: Corridor depth with centered dramatic tension. - atmosphere: Honor, tense calm, and an imminent duel. - key_features: Torii gate, unsheathed katana, wind in the haori. - creative_brief: Capture the silent instant before the duel, charged with intent. + aesthetic: Prestige samurai minimalism focused on pre-impact stillness, where restraint and posture hierarchy carry more weight than overt action. + form_and_line: Controlled tapered ink lines, long vertical drape rhythms, and disciplined negative space around weapon-bearing limbs to amplify intent. + color_palette: Slate mineral neutrals, lacquer crimson accents, and indigo night tones with sparse warm punctuation. + lighting_setup: Raking lateral key with low lantern bounce, keeping facial planes half-obscured and blade edges selectively highlighted. + material_texture: Weathered cedar grain, moisture-darkened stone, matte woven cloth, and mirror-polished steel micro-glints. + render_quality: High-fidelity anime finishing with calm contour clarity, micro-contrast on focal anatomy, and zero ornamental clutter. + spatial_distortion: Axial temple perspective with compressed midground, creating a pressure chamber effect around opposing vectors. + atmosphere: Ceremonial tension, disciplined breath control, and the sensation that motion is being withheld by code. + key_features: Static-ready stance geometry, controlled sleeve and haori wind cues, ritual thresholds, and line-of-sight dominance. + creative_brief: Build a reusable pre-duel grammar for any subject by prioritizing poised silhouettes, selective steel highlights, and compositional stillness that feels seconds away from release. avoidRules: - photoreal - modern-firearms diff --git a/components/recipes/styles/manifests/presets/pack_16/SP13-027.yaml b/components/recipes/styles/manifests/presets/pack_16/SP13-027.yaml index c01f6e23..879acf2e 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP13-027.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP13-027.yaml @@ -13,16 +13,16 @@ tags: - anime - samurai-medieval visualDna: - aesthetic: Epic-scale samurai clan warfare. - form_and_line: Armored silhouettes, banners, and stylized spear lines. - color_palette: Crimson, charcoal black, and aged gold. - lighting_setup: War-dawn lighting with illuminated mist. - material_texture: Scratched steel, mud, and banner cloth. - render_quality: Highly readable, war-focused anime panorama. - spatial_distortion: Open battlefield layered with troop depth. - atmosphere: Martial honor and collective destiny. - key_features: Clan standard, leading general, front-line collision. - creative_brief: A pre-charge battlefield moment with strong historical-anime gravitas. + aesthetic: Grand-strategy war anime language emphasizing formation logic, heraldic identity, and mass momentum over individual hero framing. + form_and_line: Broad armored silhouettes, banner arcs that map faction flow, and spearline repetition used as directional rhythm. + color_palette: Dominant clan crimson, soot-charcoal fields, oxidized metal neutrals, and restrained antique gold command accents. + lighting_setup: Cold dawn haze with low-angle backlight that separates ranks in planes while preserving readable command focal points. + material_texture: Battle-scored lamellar steel, mud-caked greaves, frayed standards, and humid particulate air. + render_quality: Wide-format tactical readability with crisp hierarchy between command layer, vanguard layer, and environmental pressure. + spatial_distortion: Multi-plane battlefield depth using atmospheric compression and diagonal advance vectors for collective force direction. + atmosphere: Inevitable collision, inherited duty, and synchronized resolve under banner doctrine. + key_features: Rank geometry, signal standards, cavalry or infantry wave cadence, and collision-ready front interfaces. + creative_brief: Create a transferable clan-war grammar that can style any subject through formation-driven composition, heraldic color dominance, and disciplined large-scale motion cues. avoidRules: - photoreal - cartoon-goofy diff --git a/components/recipes/styles/manifests/presets/pack_16/SP13-028.yaml b/components/recipes/styles/manifests/presets/pack_16/SP13-028.yaml index dd7e3f98..d9b3e0b2 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP13-028.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP13-028.yaml @@ -13,16 +13,16 @@ tags: - anime - samurai-medieval visualDna: - aesthetic: Medieval anime knight in a solemn oath scene. - form_and_line: Ornate armor and a lineage-marked cloak. - color_palette: Silver, royal blue, and warm amber. - lighting_setup: Stained-glass light with cathedral shadows. - material_texture: Polished steel, carved stone, and heavy fabric. - render_quality: Premium-finish heroic illustration. - spatial_distortion: Ceremonial vertical composition. - atmosphere: Nobility, duty, and sacrifice. - key_features: Sword grounded tip-down, heraldic shield, halo-like light. - creative_brief: A solemn, iconic knightly oath captured in a single frame. + aesthetic: Chivalric vow iconography built around sacred verticality, heraldic gravitas, and devotional stillness rather than combat spectacle. + form_and_line: Clean plate-armor contours, cape folds with weighted gravity, and emblem-first line emphasis to foreground lineage coding. + color_palette: Brushed silver base, royal ultramarine fields, muted parchment neutrals, and amber liturgical highlights. + lighting_setup: Filtered clerestory-style shafts with soft volumetric dust, preserving sanctified contrast on helm and gauntlet planes. + material_texture: Mirror-polished yet worn steel, carved limestone relief, waxed fabric banners, and ceremonial leather straps. + render_quality: Premium anime finish with emblem legibility, controlled bloom, and high tonal discipline around symbolic gestures. + spatial_distortion: Monumental upward composition with columnar framing that magnifies oath posture and insignia readability. + atmosphere: Reverence, obligation, and intergenerational burden accepted in silence. + key_features: Oath-anchor weapon posture, heraldic motif centrality, chapel-scale geometry, and ritual light crowns. + creative_brief: Define a reusable knightly-vow style by prioritizing heraldry, sacred vertical framing, and solemn material response that can transfer to any character or object. avoidRules: - photoreal - sci-fi-ui diff --git a/components/recipes/styles/manifests/presets/pack_16/SP13-029.yaml b/components/recipes/styles/manifests/presets/pack_16/SP13-029.yaml index 17241e83..d114aa3e 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP13-029.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP13-029.yaml @@ -13,16 +13,16 @@ tags: - anime - samurai-medieval visualDna: - aesthetic: Medieval anime siege with fire and catapults. - form_and_line: Robust contours, armored troops, and fortified architecture. - color_palette: Ember orange, stone gray, and smoke black. - lighting_setup: Nightfire as the dominant light source. - material_texture: Masonry, charred wood, and worn metal. - render_quality: Wide, readable war-scene illustration. - spatial_distortion: Diagonal battlefield view across walls and troop lines. - atmosphere: Controlled chaos and heroic resistance. - key_features: Breached wall, projectiles in flight, captain leading the line. - creative_brief: Capture the breaking point of a siege with epic anime energy. + aesthetic: Breach-pressure siege anime where structural failure, flame logic, and defensive choreography define the visual identity. + form_and_line: Heavy fortification silhouettes, fracture-oriented masonry lines, and projectile arcs used as compositional vectors. + color_palette: Ember orange peaks, smoke black masses, calcified stone grays, and sparse signal-red command accents. + lighting_setup: Fire-dominant nocturnal contrast with intermittent blast flares that reveal tactical layers in pulses. + material_texture: Cracked battlement stone, char-flaked timber, soot-burnished metal, and airborne ash granularity. + render_quality: Epic widescreen readability with strong event hierarchy between breach zone, defender line, and siege engines. + spatial_distortion: Oblique wall traversal perspective that exaggerates breach depth and converging offensive channels. + atmosphere: Controlled collapse, disciplined resistance, and escalating heat-driven urgency. + key_features: Breach seams, volley trajectories, shield-wall pressure points, and command silhouettes amid sparks. + creative_brief: Establish a transferable siege-break grammar for any theme by centering fracture geometry, fire-lit pulse lighting, and multi-layer conflict readability. avoidRules: - photoreal - modern-tech diff --git a/components/recipes/styles/manifests/presets/pack_16/SP13-030.yaml b/components/recipes/styles/manifests/presets/pack_16/SP13-030.yaml index 36304345..cd78655b 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP13-030.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP13-030.yaml @@ -13,16 +13,16 @@ tags: - anime - samurai-medieval visualDna: - aesthetic: Warrior monk anime in a moonlit courtyard. - form_and_line: Fine lines, zen posture, and a long traditional weapon. - color_palette: Lunar blue, silver, and deep green. - lighting_setup: Moonlight with paper-lantern accents. - material_texture: Smooth stone, bamboo, and ritual textiles. - render_quality: Contemplative frame of spiritual combat readiness. - spatial_distortion: Courtyard symmetry with calm depth. - atmosphere: Discipline, calm, and inner power. - key_features: Raked gravel circle, full moon, concentrated gesture. - creative_brief: Night training that blends serenity with latent threat. + aesthetic: Ascetic martial contemplative style combining monastic serenity with latent kinetic potential, tuned for spiritual-discipline imagery. + form_and_line: Fine calligraphic contours, circular stance geometries, and weapon trajectories implied through restrained directional line cues. + color_palette: Moonlit cobalt, brushed silver, desaturated pine green, and warm paper-lantern micro-accents. + lighting_setup: Soft lunar top fill with localized lantern pools, preserving calm tonal separation and meditative shadow structure. + material_texture: Raked gravel matte, cool temple stone, fibrous bamboo, and plain ritual cloth with minimal ornament. + render_quality: High-clarity contemplative rendering emphasizing breath rhythm, posture precision, and uncluttered focal hierarchy. + spatial_distortion: Symmetric courtyard framing with gentle depth compression that turns the arena into a concentration mandala. + atmosphere: Discipline, inward stillness, and contained force waiting for release. + key_features: Circular training marks, deliberate stance transitions, moon-axis alignment, and measured environmental quiet. + creative_brief: Build a reusable blademonk grammar that styles any subject through meditative symmetry, restrained line economy, and moonlit discipline cues. avoidRules: - photoreal - bright-daylight diff --git a/components/recipes/styles/manifests/presets/pack_16/SP13-031.yaml b/components/recipes/styles/manifests/presets/pack_16/SP13-031.yaml index aa4679ae..49fe789d 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP13-031.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP13-031.yaml @@ -13,16 +13,16 @@ tags: - anime - horror visualDna: - aesthetic: School-horror anime with psychological tension. - form_and_line: Subtly broken contours and implied figures. - color_palette: Sickly green, pale gray, and muted red. - lighting_setup: Flickering fluorescent light with long shadows. - material_texture: Damp walls, aged tiles, and suspended dust. - render_quality: High-clarity atmospheric horror illustration. - spatial_distortion: Deep corridor with oppressive vanishing depth. - atmosphere: Anxiety, isolation, and invisible threat. - key_features: Half-open door, distant silhouette, ambiguous reflection. - creative_brief: An apparently empty hallway that radiates imminent danger. + aesthetic: Institutional liminal horror centered on everyday spaces becoming psychologically unstable through subtle visual dissonance. + form_and_line: Slightly misregistered contours, straight architectural lines that warp near the vanishing point, and peripheral figure suggestions. + color_palette: Fluorescent sick-green, chalk gray, nicotine beige, and restrained coagulated-red warning accents. + lighting_setup: Intermittent overhead flicker pattern with alternating dead zones that create uncertain visibility cadence. + material_texture: Damp paint bloom, worn vinyl flooring sheen, stained acoustic panels, and particulate haze. + render_quality: Precise anime readability with unease-first composition, preserving mundane detail while inserting controlled anomalies. + spatial_distortion: Corridor tunnel perspective stretched beyond comfort, with micro-tilt and depth drag near terminal doors. + atmosphere: Social emptiness, anticipatory dread, and the feeling of being observed by architecture itself. + key_features: Repeating lockers or doors, uncertain reflections, failed lighting intervals, and threshold interruptions. + creative_brief: Create a reusable school-liminal horror grammar for any subject by combining bureaucratic geometry, flicker rhythm, and barely-perceived distortions. avoidRules: - photoreal - comedy diff --git a/components/recipes/styles/manifests/presets/pack_16/SP13-032.yaml b/components/recipes/styles/manifests/presets/pack_16/SP13-032.yaml index 150694b4..ebe710d6 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP13-032.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP13-032.yaml @@ -13,16 +13,16 @@ tags: - anime - horror visualDna: - aesthetic: Supernatural anime apparition under a crimson moon. - form_and_line: Ethereal silhouettes with minimal unsettling detail. - color_palette: Blood red, deep black, and ashen white. - lighting_setup: Moon backlight with dense fog. - material_texture: Mist, dry branches, and spectral fabric. - render_quality: Terror-focused frame with clear focal hierarchy. - spatial_distortion: Open composition with ominous scale. - atmosphere: Fatalism, mystery, and ancestral dread. - key_features: Oversized moon, suspended figure, desolate surroundings. - creative_brief: A supernatural-horror image with immediate, powerful readability. + aesthetic: Folkloric celestial horror where lunar omen iconography dominates scale, silhouette, and emotional tonality. + form_and_line: Thin spectral contours, elongated drapery vectors, and stark silhouette cutouts against high-contrast sky masses. + color_palette: Saturated blood-crimson sky field, void-black landforms, chalk-ash highlights, and desaturated bone undertones. + lighting_setup: Strong backlit moon core with fog-driven edge bloom, keeping subjects semi-occluded and symbol-first. + material_texture: Vapor-heavy mist layers, brittle branch textures, weathered cloth translucency, and powder-dry ground surfaces. + render_quality: High-impact mythic readability with deliberate shape economy and controlled atmospheric granulation. + spatial_distortion: Vast negative-space composition where scale disproportion makes figures appear cosmically overruled. + atmosphere: Omen fatalism, ancestral unease, and sacred fear under an indifferent sky. + key_features: Lunar disc dominance, suspended or hovering silhouettes, windless stillness, and barren horizon separators. + creative_brief: Build a transferable crimson-omen horror style by privileging giant celestial contrast, sparse silhouettes, and fatalistic open-space composition. avoidRules: - photoreal - cute-style diff --git a/components/recipes/styles/manifests/presets/pack_16/SP13-033.yaml b/components/recipes/styles/manifests/presets/pack_16/SP13-033.yaml index 01eed842..e79d2ce5 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP13-033.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP13-033.yaml @@ -13,16 +13,16 @@ tags: - anime - horror visualDna: - aesthetic: Grotesque anime horror in an abandoned theater. - form_and_line: Nervous strokes and stylized anatomical distortion. - color_palette: Dark burgundy, dirty ivory, and ink black. - lighting_setup: Dim central spotlight with theatrical shadows. - material_texture: Aged wood, torn velvet, and dense dust. - render_quality: Disturbing yet readable horror illustration. - spatial_distortion: Frontal stage framing with compressed depth. - atmosphere: Unease, strangeness, and implied body horror. - key_features: Ominous puppet, ripped curtain, empty stare. - creative_brief: Sinister stage scene with sustained visual tension. + aesthetic: Grotesque performance-horror language where theatrical elegance is corrupted by puppet-like anatomy and staged cruelty. + form_and_line: Twitchy contour cadence, marionette-joint segmentation, and curtain-driven framing lines that trap the focal subject. + color_palette: Congealed burgundy, nicotine ivory, oxidized brass hints, and ink-black shadow basins. + lighting_setup: Isolated stage spotlight with aggressive falloff, leaving wings and rafters in predatory darkness. + material_texture: Splintered stage timber, dust-saturated velvet, cracked lacquered props, and dry residue buildup. + render_quality: Disturbingly crisp foreground forms against smeared peripheral darkness to sustain visual discomfort. + spatial_distortion: Proscenium compression with shallow-depth pressure that makes subjects feel pinned to the viewing plane. + atmosphere: Claustrophobic spectacle, involuntary audience dread, and ritualized manipulation. + key_features: Puppet morphology cues, torn drapery vectors, empty seats as black void patterning, and central fixation points. + creative_brief: Define a reusable puppet-theater horror grammar by merging corrupted stage aesthetics, anatomical stylization, and spotlight-isolation composition. avoidRules: - photoreal - slapstick diff --git a/components/recipes/styles/manifests/presets/pack_16/SP13-034.yaml b/components/recipes/styles/manifests/presets/pack_16/SP13-034.yaml index 8cd73187..0e267a1b 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP13-034.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP13-034.yaml @@ -13,16 +13,16 @@ tags: - anime - horror visualDna: - aesthetic: Rural Japanese-inspired horror centered on a cursed well. - form_and_line: Somber fine linework with implied presence. - color_palette: Cold blue, wet black, and fog gray. - lighting_setup: Diffused moonlight and damp shadows. - material_texture: Wet stone, mud, and weathered wood. - render_quality: Atmospheric image with sustained dread. - spatial_distortion: Open framing anchored by the central well. - atmosphere: Oppressive silence and invisible threat. - key_features: Ancient well, broken rope, low-lying mist. - creative_brief: Minimalist horror where a central void creates relentless tension. + aesthetic: Void-centered rural horror built on subtraction, silence, and the oppressive pull of a central absence. + form_and_line: Sparse somber linework, low-detail peripheral elements, and circular anchoring forms that repeatedly return attention to the void. + color_palette: Cold indigo wash, peat-black moisture zones, mineral gray fog, and faint desaturated cyan reflections. + lighting_setup: Diffuse nocturnal top-light with weak ground bounce, preserving deep occlusion around cavity edges. + material_texture: Water-dark stone porosity, saturated soil clumps, frayed rope fibers, and mist-laden air density. + render_quality: Minimalist high-control rendering that avoids visual noise and concentrates dread through shape economy. + spatial_distortion: Open negative-space layout with gravitational pull toward the central cavity and suppressed horizon cues. + atmosphere: Listening-state tension, rural desolation, and the conviction that something waits below perception. + key_features: Circular void anchors, moisture halos, decayed functional objects, and thin low-lying fog sheets. + creative_brief: Build a transferable deep-void horror style by using minimal geometry, moisture-rich materials, and compositional gravity around an unseen center. avoidRules: - photoreal - daylight-bright diff --git a/components/recipes/styles/manifests/presets/pack_16/SP13-035.yaml b/components/recipes/styles/manifests/presets/pack_16/SP13-035.yaml index b4785d2e..420f80a4 100644 --- a/components/recipes/styles/manifests/presets/pack_16/SP13-035.yaml +++ b/components/recipes/styles/manifests/presets/pack_16/SP13-035.yaml @@ -13,16 +13,16 @@ tags: - anime - horror visualDna: - aesthetic: Oni ritual anime with folkloric horror intensity. - form_and_line: Hard contours, ritual ornamentation, and a dominant silhouette. - color_palette: Dark red, ash black, and aged gold. - lighting_setup: Low ritual firelight with dancing shadows. - material_texture: Lacquered mask, charred wood, and airborne ash. - render_quality: Highly defined folkloric-horror illustration. - spatial_distortion: Circular composition for a nocturnal ceremony. - atmosphere: Ritual threat, mysticism, and primal danger. - key_features: Oni mask, ring of candles, invoking gesture. - creative_brief: Intense summoning scene with dark, high-impact visual language. + aesthetic: Ceremonial demonic folklore horror combining shrine-like precision with feral ritual escalation and symbolic intimidation. + form_and_line: Hard mask silhouettes, talismanic pattern bands, and radial gesture lines that imply invocation cycles. + color_palette: Oxblood reds, ash-black fields, smoke-brown mids, and tarnished gold ritual accents. + lighting_setup: Low fire-ring illumination with stochastic shadow dance, emphasizing mask contours and hand-sign focality. + material_texture: Lacquer crackle, charred timber grain, wax drips, ash particulates, and scorched fabric edges. + render_quality: High-impact folkloric clarity with aggressive focal contrast and controlled peripheral obscurity. + spatial_distortion: Circular rite composition with centripetal pull, as if all geometry is bending toward the invocation core. + atmosphere: Taboo ceremony, escalating dread, and primal authority made visual through symbols and heat. + key_features: Dominant oni visage language, candle or ember ring systems, talisman clusters, and invocation-hand choreography. + creative_brief: Create a reusable oni-ritual horror grammar by prioritizing radial ritual geometry, fire-ring contrast, and symbolic mask dominance across any subject. avoidRules: - photoreal - cute-style diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index b021c1a0..dec56ab6 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -51,7 +51,7 @@ graph TD - `lib/studioLegacyVisualSnapshotExport.ts`: builds legacy `GenerationBatch[]` snapshots only for export compatibility. - `lib/buildStudioPageController.ts`: concentrates `Studio Page` debug, grid, and operations projection and also exposes the shared `buildStudioViewportController()` presentation seam, so route view, recipe props, and dock visibility stop being rebuilt inline in `useStudioShell.ts`. - `lib/buildStudioHeaderToolbarProps.ts`: concentrates `Command Center` and header-toolbar transitions, runtime status derivation, queue counts, and provider fallback in one seam. -- `hooks/useStudioOverlayController.ts`: keeps the lower-level overlay controller seam and now also exposes a deeper shell-overlay seam that derives `Studio Settings` library fallback and background-toggle choreography from runtime/settings modules instead of leaving that wiring inline in `useStudioShell.ts`. +- `hooks/useStudioOverlayController.ts`: keeps the lower-level overlay controller seam and now also exposes a deeper shell-overlay seam that derives `Studio Settings` library fallback and background-toggle choreography from runtime/settings modules, then publishes grouped `settingsModule` data into `StudioSystemOverlays` instead of widening a flat settings prop surface. - `lib/studioReadiness.ts` and `lib/studioDiagnostics.ts`: pure builders for onboarding, header status, and system panels. - `apps/local-server/src/settingsRoutes.ts`: groups editable `Studio Settings` read/patch HTTP behavior so `appFactory.ts` keeps runtime composition concerns. - `apps/local-server/src/codexRoutes.ts`: groups Local Codex Session and model/account route behavior (`/api/codex/*`) behind one backend seam. @@ -71,7 +71,7 @@ graph TD 1. The user works in the UI: prompt, recipe, attachments, batch count, provider, and workspace. 2. `useGenerationPipeline` delegates execution to the local generation runner. -3. The runner resolves the Recipe Module, creates a `batch-*` local run id, builds provider-independent Generation Task Specs with `spec-*` ids, creates one or more Persistent Jobs, and waits through the shared SSE stream. +3. The runner resolves the Recipe Module, creates a `batch-*` local run id, builds provider-independent Generation Task Specs with `spec-*` ids and compact quality intent, creates one or more Persistent Jobs, and waits through the shared SSE stream. 4. The backend worker executes each job through the Provider Boundary. 5. Codex remains the primary adapter and runs turns against `codex app-server`. 6. External adapters compile the same Generation Task Spec into compact provider-specific inputs and only execute when concrete runtime preflight passes. @@ -102,6 +102,7 @@ The Provider Boundary keeps Generation Tasks provider-independent: - Recipe Modules produce Generation Task Specs. - Providers compile specs into compact provider-specific Compiled Provider Inputs. +- Quality intent lives in Generation Task Specs and compiles into provider prompts before Recipe Provider Directives. - Provider Secrets remain outside SQLite-backed Studio Settings. - Providers must return the same local contract: job state, Local Assets, Catalog Entries, metadata, logs, and diagnostics. - Planned providers stay blocked until a concrete executor can produce or import Local Assets. diff --git a/docs/TECHNICAL_DEBT.md b/docs/TECHNICAL_DEBT.md index a21bc2bc..a0be8f07 100644 --- a/docs/TECHNICAL_DEBT.md +++ b/docs/TECHNICAL_DEBT.md @@ -13,7 +13,7 @@ Cola de ejecución actual: 1. Profundizar orquestación de `Studio Shell`. 2. Profundizar `Studio Generation Session`. -3. Separar seams de `Studio Settings` por dominio operativo. +3. Reducir traducción de overlays de sistema tras separar seams de `Studio Settings` por dominio operativo. 4. Completar deepening de rutas en `appFactory`. 5. Mejorar semántica de refresh en `Local Studio Sync`. 6. Revisar claridad de seams en `Local Generation Run`. @@ -71,6 +71,11 @@ Recommended next steps: - strengthen isolated tests for catalog, worker lifecycle, and provider execution; - preserve the Provider Boundary so route handlers and non-provider modules do not import concrete provider executors directly. +Recent delta: + +- `useStudioSettings` removed the flat compatibility interface and now exposes only domain seams (`settingsDomain`, `providerDomain`, `outputSourcesDomain`) for shell callers. +- `createStudioApp` composition tests now also cover codex failure-path behavior and app-server runtime dependency wiring. + ## Prioridad media ### 1. Studio Runtime vs Studio Readiness naming diff --git a/docs/active/effect-ts-adoption-workplan-2026-05-31.md b/docs/active/effect-ts-adoption-workplan-2026-05-31.md new file mode 100644 index 00000000..7c6dc584 --- /dev/null +++ b/docs/active/effect-ts-adoption-workplan-2026-05-31.md @@ -0,0 +1,198 @@ +# Effect-TS adoption workplan (full task backlog) + +Date: 2026-05-31 +Source analysis: `docs/architecture/architecture-review-effect-ts-2026-05-31.md` + +## Objective + +Adopt Effect-TS incrementally in Codex Studio to improve reliability, typed errors, retry/timeout semantics, and boundary validation without breaking public APIs. + +## Rollout strategy + +- Prefer thin vertical slices (AFK-first) over big-bang rewrites. +- Keep existing external contracts stable while migrating internals. +- Validate each slice with focused tests + `bun run check` on touched surfaces. + +## Task backlog (complete) + +### Slice 01 - Provider retry runtime seam with Effect (AFK) + +- **Status**: In progress (implemented in this session) +- **Scope**: + - Refactor provider retry runtime in `apps/local-server/src/providers/externalProviderResults.ts`. + - Keep current function signature and behavior for callers (`fal`, `google`, `comfy`). +- **Acceptance criteria**: + - [ ] Retry logic still retries transient failures and stops on abort. + - [ ] Existing provider results tests pass. + - [ ] No API changes required for executors. +- **Blocked by**: None. + +### Slice 02 - `POST /jobs` boundary schema validation pilot (AFK) + +- **Status**: In progress (implemented in this session) +- **Scope**: + - Add Effect Schema decoding at route boundary in `apps/local-server/src/jobRoutes.ts`. + - Return explicit 400 payloads for malformed JSON and schema mismatch. +- **Acceptance criteria**: + - [ ] Malformed JSON returns `code: invalid_json`. + - [ ] Schema mismatch returns `code: invalid_request_body`. + - [ ] Existing happy path tests remain green. +- **Blocked by**: None. + +### Slice 03 - Shared provider retry policy module (AFK) + +- **Status**: Implemented (phase 1). +- **Scope**: + - Extract retry policy primitives (`retryable status`, delay strategy, stop conditions) into a reusable module under providers. + - Wire `falExecutor.ts`, `googleExecutor.ts`, `comfyExecutor.ts` to consume policy. +- **Acceptance criteria**: + - [x] All hosted providers use the shared policy. + - [x] Backoff behavior is centrally configurable. + - [x] Existing provider tests pass unchanged or with minimal updates. +- **Blocked by**: Slice 01. + +### Slice 04 - Worker orchestration typed error channel (AFK) + +- **Status**: In progress (phase 1). +- **Scope**: + - Introduce typed domain errors in `apps/local-server/src/worker.ts`. + - Consolidate timeout/cancel/retry semantics under Effect runtime internally. +- **Acceptance criteria**: + - [x] Queue processing lifecycle remains behavior-compatible. + - [x] Cancellation and terminal state transitions keep current semantics. + - [x] Targeted worker tests cover typed failure paths. +- **Blocked by**: Slice 03 (recommended), not hard. + +### Slice 05 - Codex turn pipeline unification (AFK) + +- **Status**: In progress (phase 1). +- **Scope**: + - Refactor `apps/local-server/src/codex/turn.ts` internals into one Effect pipeline. + - Standardize transient vs terminal errors and retry policy. +- **Acceptance criteria**: + - [x] Session invalidation/recovery behavior preserved. + - [x] Abort and retry paths are deterministic and tested. + - [x] No public API changes for callers. +- **Blocked by**: Slice 04 preferred. + +### Slice 06 - RPC client reconnect/waiter lifecycle hardening (AFK) + +- **Status**: In progress (phase 1). +- **Scope**: + - Migrate `apps/local-server/src/codex/rpcClient.ts` connection and notification waiting internals to Effect-based runtime semantics. +- **Acceptance criteria**: + - [x] Reconnect behavior remains stable. + - [x] Waiter cleanup is deterministic on close/abort. + - [x] Existing rpc-related tests pass. +- **Blocked by**: Slice 05 preferred. + +### Slice 07 - Local generation run typed runtime pipeline (AFK) + +- **Status**: Planned. +- **Scope**: + - Refactor `services/localGenerationRun.ts` and adapters into typed outcome pipeline. +- **Acceptance criteria**: + - [ ] `cancelled` / `failed` / `timeout` outcomes are explicit and stable. + - [ ] Hook consumers keep existing interface. + - [ ] No behavior drift in successful generation path. +- **Blocked by**: Slice 02 (schema pilot lessons), optional. + +### Slice 08 - SSE client/server stream lifecycle consolidation (AFK) + +- **Status**: Planned. +- **Scope**: + - Consolidate reconnection/heartbeat/cancel policies across: + - `apps/local-server/src/eventStreamRoutes.ts` + - `services/studioEventSource.ts` +- **Acceptance criteria**: + - [ ] Event stream recovers cleanly from transient disconnects. + - [ ] Keepalive and watcher stop behavior are deterministic. + - [ ] No regressions in Local Studio Sync behavior. +- **Blocked by**: Slice 04 and Slice 06 preferred. + +### Slice 09 - App-server process supervision resource scoping (AFK) + +- **Status**: Planned. +- **Scope**: + - Harden process lifecycle in `apps/local-server/src/codex/processSupervisor.ts` with explicit acquisition/release semantics. +- **Acceptance criteria**: + - [ ] Startup timeout and failure causes become explicit. + - [ ] Teardown is deterministic in tests. + - [ ] No regression in app-server startup path. +- **Blocked by**: Slice 05 preferred. + +### Slice 10 - Local codex session typed fallback causes (AFK) + +- **Status**: Planned. +- **Scope**: + - Improve cause taxonomy and fallback handling in `apps/local-server/src/codex/localCodexSession.ts`. +- **Acceptance criteria**: + - [ ] Distinct fallback causes are mapped consistently. + - [ ] Ready/offline messaging remains behavior-compatible. + - [ ] Related tests include cause differentiation. +- **Blocked by**: None. + +### Slice 11 - Tooling scripts runtime standardization (AFK) + +- **Status**: Planned. +- **Scope**: + - Apply Effect-based retry/timeout/concurrency utilities in: + - `scripts/generate-style-defaults.ts` + - `scripts/style-default-utils.ts` + - `scripts/evaluate-recipe-prompts-live.ts` +- **Acceptance criteria**: + - [ ] Script retries and timeout policies are centralized. + - [ ] Output/report contracts remain unchanged. + - [ ] Tooling scripts remain Bun-compatible. +- **Blocked by**: Slice 03 preferred. + +### Slice 12 - Expand schema boundary coverage to remaining routes (AFK) + +- **Status**: In progress. +- **Scope**: + - Roll out Schema-based boundary decoding to: + - `settingsRoutes.ts` + - `outputSourceRoutes.ts` + - `projectRoutes.ts` + - `librariesRoutes.ts` +- **Acceptance criteria**: + - [x] Input validation errors are consistent across routes. + - [ ] Route semantics stay backwards-compatible. + - [x] Route tests cover malformed and shape-invalid payloads. +- **Blocked by**: Slice 02. + +## HITL checkpoints + +### HITL-01 - Error taxonomy approval + +- **Scope**: approve worker/codex/provider error categories surfaced to UI/logs. +- **Needed before**: full rollout of Slices 04-06. + +### HITL-02 - Validation error payload contract + +- **Scope**: confirm standardized error payload shape for all route boundary decode failures. +- **Needed before**: Slice 12 broad rollout. + +### HITL-03 - Observability fields standard + +- **Scope**: confirm mandatory structured log fields for retry/timeout/cancel events. +- **Needed before**: Slices 03, 04, 11 completion. + +## Immediate implementation order (started now) + +1. Slice 01 (provider retry seam) ✅ started. +2. Slice 02 (`POST /jobs` schema pilot) ✅ started. +3. Run focused tests and check on touched files. +4. If green, continue with Slice 03 extraction. + +## Non-goals for this rollout + +- Rewriting presentation-only React components to Effect. +- Replacing pure utility modules that already have low complexity. +- Breaking current local API contracts. + +## Validation protocol per slice + +- Focused tests for touched files first. +- Project check for touched files. +- Fast gate (`bun run validate:fast`) before stacking next large slice. diff --git a/docs/active/pipeline-image-quality-plan.md b/docs/active/pipeline-image-quality-plan.md index 4ed3bee3..d7b1815f 100644 --- a/docs/active/pipeline-image-quality-plan.md +++ b/docs/active/pipeline-image-quality-plan.md @@ -264,12 +264,12 @@ Review dimensions: ## Done checklist - [ ] Representative quality set chosen. -- [ ] Quality structure added only where useful. +- [x] Quality structure added in `Generation Task Spec.quality`. - [ ] Reference roles validated before queue. -- [ ] Prompt tightening helper tested. -- [ ] Quality presets defined and documented. +- [x] Prompt tightening helper tested through `composeGenerationQualityPromptSections()`. +- [x] Quality presets defined and documented. - [ ] Live comparison templates filled. - [ ] Reviewer notes stored as refs, not images. -- [ ] `SKILLS.md` updated with quality workflow. -- [ ] Focused tests pass. +- [x] `SKILLS.md` updated with quality workflow. +- [x] Focused tests pass. - [ ] Broad gates attempted and reported. diff --git a/docs/active/style-presets-style-first-refactor.md b/docs/active/style-presets-style-first-refactor.md index 7f8e9351..e4060551 100644 --- a/docs/active/style-presets-style-first-refactor.md +++ b/docs/active/style-presets-style-first-refactor.md @@ -10,13 +10,13 @@ Este refactor corrige presets que describían escenas específicas en lugar de e ## Decisiones clave -| Tema | Decisión | -|---|---| -| Identidad de preset | La identidad vive en trazo, paleta, iluminación, materialidad, composición y acabado; no en lugar/acción concreta. | -| Referencias de autor | Si el preset es explícitamente de autor/escuela, se conserva el nombre del autor como ancla estilística. | -| Campo `creative_brief` | Debe explicar lógica visual y transferibilidad del estilo, no contar una escena cerrada. | -| Refactor | Manual 1-a-1 en presets críticos para evitar clones de keywords y plantillas narrativas. | -| Calidad | Mantener diferenciación entre presets vecinos de una misma categoría. | +| Tema | Decisión | +| ---------------------- | ------------------------------------------------------------------------------------------------------------------ | +| Identidad de preset | La identidad vive en trazo, paleta, iluminación, materialidad, composición y acabado; no en lugar/acción concreta. | +| Referencias de autor | Si el preset es explícitamente de autor/escuela, se conserva el nombre del autor como ancla estilística. | +| Campo `creative_brief` | Debe explicar lógica visual y transferibilidad del estilo, no contar una escena cerrada. | +| Refactor | Manual 1-a-1 en presets críticos para evitar clones de keywords y plantillas narrativas. | +| Calidad | Mantener diferenciación entre presets vecinos de una misma categoría. | ## Implementación completada (Phase 1) @@ -728,6 +728,409 @@ Quincuagésima ola manual completada (30 presets adicionales, revisión profunda Total manual refactorizado hasta ahora: **458 presets**. +Quincuagésima primera ola manual completada (10 presets adicionales, continuidad `pack_15`): + +- `components/recipes/styles/manifests/presets/pack_15/SP15-031.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-032.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-033.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-034.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-035.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-036.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-037.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-038.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-039.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-040.yaml` + +Total manual refactorizado hasta ahora: **468 presets**. + +Quincuagésima segunda ola manual completada (10 presets adicionales, revisión profunda sin atajos): + +- `components/recipes/styles/manifests/presets/pack_15/SP15-041.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-042.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-043.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-044.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-045.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-046.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-047.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-048.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-049.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-050.yaml` + +Total manual refactorizado hasta ahora: **478 presets**. + +Quincuagésima tercera ola manual completada (10 presets adicionales, revisión profunda sin atajos): + +- `components/recipes/styles/manifests/presets/pack_15/SP15-051.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-052.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-053.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-054.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-055.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-056.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-057.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-058.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-059.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-060.yaml` + +Total manual refactorizado hasta ahora: **488 presets**. + +Quincuagésima cuarta ola manual completada (10 presets adicionales, nuevo estándar creativo aplicado): + +- `components/recipes/styles/manifests/presets/pack_15/SP15-061.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-062.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-063.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-064.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-065.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-066.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-067.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-068.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-069.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-070.yaml` + +Total manual refactorizado hasta ahora: **498 presets**. + +Quincuagésima quinta ola manual completada (30 presets adicionales, revisión profunda): + +- `components/recipes/styles/manifests/presets/pack_15/SP15-071.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-072.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-073.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-074.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-075.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-076.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-077.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-078.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-079.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-080.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-081.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-082.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-083.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-084.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-085.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-086.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-087.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-088.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-089.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-090.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-091.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-092.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-093.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-094.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-095.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-096.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-097.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-098.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-099.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-100.yaml` + +Total manual refactorizado hasta ahora: **528 presets**. + +Quincuagésima sexta ola manual completada (27 presets adicionales, cierre de `pack_15`): + +- `components/recipes/styles/manifests/presets/pack_15/SP15-101.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-102.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-103.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-104.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-105.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-106.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-107.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-108.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-109.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-110.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-111.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-112.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-113.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-114.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-115.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-116.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-117.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-118.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-119.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-120.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-121.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-122.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-123.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-124.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-125.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-126.yaml` +- `components/recipes/styles/manifests/presets/pack_15/SP15-127.yaml` + +Total manual refactorizado hasta ahora: **555 presets**. + +Reauditoría creativa aplicada sobre lote previo (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_15/SP15-031.yaml` a `SP15-060.yaml` +- Motivo: el primer pase era correcto pero demasiado genérico; se elevó a tesis visual específica por preset. +- Resultado esperado: stonepunk más táctil/ritual, seapunk más sistémico, atompunk con tensión institucional y decopunk más narrativo/material para generación. + +Reauditoría profunda de completitud aplicada (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_07/SP07-001.yaml` a `SP07-030.yaml` +- Alcance: reescritura integral de `visualDna` (no sólo `creative_brief`) para elevar especificidad técnica, transferibilidad style-first y diferenciación semántica entre presets. +- Validación técnica: `bun run styles:validate -- --pack=pack_07` ✅ + +Reauditoría profunda de completitud aplicada (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_07/SP07-031.yaml` a `SP07-060.yaml` +- Alcance: refactor integral multi-campo (`aesthetic`, `form_and_line`, `lighting_setup`, `material_texture`, `render_quality`, `atmosphere`, `key_features`, `creative_brief`) para reforzar completitud y consistencia style-first. +- Validación técnica: `bun run styles:validate -- --pack=pack_07` ✅ + +Reauditoría profunda de completitud aplicada (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_07/SP07-061.yaml` a `SP07-080.yaml` +- Alcance: refactor integral multi-campo (`aesthetic`, `form_and_line`, `lighting_setup`, `material_texture`, `render_quality`, `atmosphere`, `key_features`, `creative_brief`) para elevar especificidad semántica y transferibilidad style-first en presets de alta fantasía, miniatura, paradoja espacial y megaestructura sci-fi. +- Validación técnica: `bun run styles:validate -- --pack=pack_07` ✅ + +Reauditoría profunda de completitud aplicada (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_13/SP05-326.yaml` a `SP05-335.yaml` +- Alcance: refactor integral multi-campo (`aesthetic`, `form_and_line`, `lighting_setup`, `material_texture`, `render_quality`, `atmosphere`, `key_features`, `creative_brief`) para reforzar diferenciación estilística dentro de `12. Anime Style Spectrum` y evitar briefs narrativos genéricos. +- Validación técnica: `bun run styles:validate -- --pack=pack_13` ✅ + +Reauditoría profunda de completitud aplicada (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_13/SP05-336.yaml` a `SP05-342.yaml` +- Alcance: refactor integral multi-campo (`aesthetic`, `form_and_line`, `lighting_setup`, `material_texture`, `render_quality`, `atmosphere`, `key_features`, `creative_brief`) para preservar contraste semántico entre autores/escuelas y elevar especificidad técnica del bloque final contiguo. +- Validación técnica: `bun run styles:validate -- --pack=pack_13` ✅ + +Reauditoría profunda de completitud aplicada (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_05/SP05-231.yaml` a `SP05-240.yaml` +- Alcance: refactor integral multi-campo (`aesthetic`, `form_and_line`, `color_palette`, `lighting_setup`, `material_texture`, `render_quality`, `spatial_distortion`, `atmosphere`, `key_features`, `creative_brief`) para eliminar plantillas repetidas y consolidar diferenciación fina en `7. Mecha & Cyberpunk`. +- Validación técnica: `bun run styles:validate -- --pack=pack_05` ✅ + +Reauditoría profunda de completitud aplicada (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_05/SP05-241.yaml` a `SP05-250.yaml` +- Alcance: refactor integral multi-campo (`aesthetic`, `form_and_line`, `color_palette`, `lighting_setup`, `material_texture`, `render_quality`, `spatial_distortion`, `atmosphere`, `key_features`, `creative_brief`) para diferenciar con precisión sublíneas de `8. Isekai & High Fantasy` y remover uniformidad de base. +- Validación técnica: `bun run styles:validate -- --pack=pack_05` ✅ + +Reauditoría profunda de completitud aplicada (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_05/SP05-251.yaml` a `SP05-260.yaml` +- Alcance: refactor integral multi-campo (`aesthetic`, `form_and_line`, `color_palette`, `lighting_setup`, `material_texture`, `render_quality`, `spatial_distortion`, `atmosphere`, `key_features`, `creative_brief`) para fortalecer contraste entre fantasía militar, cozy-road, romance de portal, utilitarian quest y cuento pastel. +- Validación técnica: `bun run styles:validate -- --pack=pack_05` ✅ + +Reauditoría profunda de completitud aplicada (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_12/SP12-001.yaml` a `SP12-010.yaml` +- Alcance: refactor integral multi-campo (`aesthetic`, `subject_treatment`, `color_and_tone`, `lighting_and_shadow`, `texture_and_material`, `camera_and_composition`, `atmosphere_and_mood`, `rendering_and_quality`) para migrar de escenas concretas a gramáticas de géneros de videojuegos, legibilidad gameplay-first y lenguaje de pipeline/render. +- Validación técnica: `bun run styles:validate -- --pack=pack_12` ✅ + +Reauditoría profunda de completitud aplicada (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_12/SP12-011.yaml` a `SP12-020.yaml` +- Alcance: refactor integral multi-campo (`aesthetic`, `subject_treatment`, `color_and_tone`, `lighting_and_shadow`, `texture_and_material`, `camera_and_composition`, `atmosphere_and_mood`, `rendering_and_quality`) con énfasis en subgéneros jugables (survival sci-fi submarino, pixel-RPG hub, action-adventure místico, hero shooter vertical, metroidvania tecno-arcano, immersive-sim cortesano, arcade sport extremo, tower-defense modular, survival-horror subterráneo y space-trade RPG). +- Validación técnica: `bun run styles:validate -- --pack=pack_12` ✅ + +Reauditoría profunda de completitud aplicada (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_12/SP12-021.yaml` a `SP12-030.yaml` +- Alcance: refactor integral multi-campo (`aesthetic`, `subject_treatment`, `color_and_tone`, `lighting_and_shadow`, `texture_and_material`, `camera_and_composition`, `atmosphere_and_mood`, `rendering_and_quality`) reforzando identidad por subgénero (racing-arcade desértico, survival-hub ártico, colony-builder orbital, runner de trampas, beat-em-up neon-noir, tactical-RPG isométrico, co-op extraction minero, duel-fighter ceremonial, action-RPG submarino y horror-action de parque maldito). +- Validación técnica: `bun run styles:validate -- --pack=pack_12` ✅ + +Reauditoría profunda de completitud aplicada (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_12/SP12-031.yaml` a `SP12-040.yaml` +- Alcance: refactor integral multi-campo (`aesthetic`, `subject_treatment`, `color_and_tone`, `lighting_and_shadow`, `texture_and_material`, `camera_and_composition`, `atmosphere_and_mood`, `rendering_and_quality`) consolidando estilos por tipo de juego y loop dominante (auto-battler táctico, stealth-heist portuario, tower-defense rural sci-fi, tactical-shooter vertical, co-op defense móvil, puzzle-chamber lunar, platformer whimsical, naval tactics, rhythm-battle gótico y co-op monster-hunt). +- Validación técnica: `bun run styles:validate -- --pack=pack_12` ✅ + +Reauditoría profunda de completitud aplicada (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_12/SP12-041.yaml` a `SP12-050.yaml` +- Alcance: refactor integral multi-campo (`aesthetic`, `subject_treatment`, `color_and_tone`, `lighting_and_shadow`, `texture_and_material`, `camera_and_composition`, `atmosphere_and_mood`, `rendering_and_quality`) en clave gameplay-first para frontier-defense, incident-response sci-fi, urban-disaster, social-stealth, mech-hunt táctico, nomad open-world, arena-boss trial, urban crystalpunk transit, dungeon-raid coordinado y survival-horror polar. +- Validación técnica: `bun run styles:validate -- --pack=pack_12` ✅ + +Reauditoría profunda de completitud aplicada (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_12/SP12-051.yaml` a `SP12-060.yaml` +- Alcance: refactor integral multi-campo (`aesthetic`, `subject_treatment`, `color_and_tone`, `lighting_and_shadow`, `texture_and_material`, `camera_and_composition`, `atmosphere_and_mood`, `rendering_and_quality`) reforzando tipologías de loop y legibilidad sistémica (deckbuilder hub, objective-PvP capture, tactical-fantasy coven arena, train-heist futurista, puzzle-garden lumínico, mobility chase urbano, sky-piracy aeronaval, sound-puzzle cavern, hero-draft esports y last-stand siege). +- Validación técnica: `bun run styles:validate -- --pack=pack_12` ✅ + +Reauditoría profunda de completitud aplicada (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_12/SP12-061.yaml` a `SP12-070.yaml` +- Alcance: refactor integral multi-campo (`aesthetic`, `subject_treatment`, `color_and_tone`, `lighting_and_shadow`, `texture_and_material`, `camera_and_composition`, `atmosphere_and_mood`, `rendering_and_quality`) para consolidar presets de endgame shrine-run, open-world urbano fluvial, race-event arqueológico, tower-defense rural nocturno, duel-arena de precisión, transit-survival horror, warfront de desgaste, skyforge prep-hub, objective-warfare de señal y archery-trial místico. +- Validación técnica: `bun run styles:validate -- --pack=pack_12` ✅ + +Reauditoría profunda de completitud aplicada (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_12/SP12-071.yaml` a `SP12-080.yaml` +- Alcance: refactor integral multi-campo (`aesthetic`, `subject_treatment`, `color_and_tone`, `lighting_and_shadow`, `texture_and_material`, `camera_and_composition`, `atmosphere_and_mood`, `rendering_and_quality`) cerrando el pack con lenguaje de géneros jugables (urban-insurgency, raid-racer de ruinas, colossus-hunt cooperativo, card-duel clandestino, mechball esports, polar-siege, quarry-escape, stealth-op shinobi, co-op citadel-defense y final-boss eclipse). +- Validación técnica: `bun run styles:validate -- --pack=pack_12` ✅ + +Reauditoría profunda de completitud aplicada (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_16/SP05-343.yaml` a `SP05-352.yaml` +- Alcance: refactor integral multi-campo (`aesthetic`, `form_and_line`, `color_palette`, `lighting_setup`, `material_texture`, `render_quality`, `spatial_distortion`, `atmosphere`, `key_features`, `creative_brief`) para convertir presets sports-performance de scene-driven a gramáticas transferibles por disciplina (volleyball, striker-football, hardwood basketball, phantom-pass basketball, uphill cycling, mound-duel baseball, relay swim, endurance run, neon-ramp skate). +- Validación técnica: `bun run styles:validate -- --pack=pack_16` ✅ + +Reauditoría profunda de completitud aplicada (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_16/SP05-353.yaml` a `SP05-362.yaml` +- Alcance: refactor integral multi-campo (`aesthetic`, `form_and_line`, `color_palette`, `lighting_setup`, `material_texture`, `render_quality`, `spatial_distortion`, `atmosphere`, `key_features`, `creative_brief`) para consolidar gramáticas deportivas transferibles en motorsport/touge, smart-apex racing, derby-idol sprint, tennis duel theater, ping-pong psicológico, boxing comeback, figure-skating performance, karuta competitivo, tennis metódico y fairway duel. +- Validación técnica: `bun run styles:validate -- --pack=pack_16` ✅ + +Reauditoría profunda de completitud aplicada (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_16/SP05-363.yaml` a `SP05-372.yaml` +- Alcance: refactor integral multi-campo (`aesthetic`, `form_and_line`, `color_palette`, `lighting_setup`, `material_texture`, `render_quality`, `spatial_distortion`, `atmosphere`, `key_features`, `creative_brief`) para convertir el bloque performance en gramáticas transferibles de rhythmic gymnastics, ballet rehearsal, ballroom competition, koto ensemble, brass section practice, midnight jazz, garage band growth, indie stage confession, orchestra rehearsal y revue stage duel. +- Validación técnica: `bun run styles:validate -- --pack=pack_16` ✅ + +Reauditoría profunda de completitud aplicada (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_16/SP13-026.yaml` a `SP13-035.yaml` +- Alcance: refactor integral multi-campo (`aesthetic`, `form_and_line`, `color_palette`, `lighting_setup`, `material_texture`, `render_quality`, `spatial_distortion`, `atmosphere`, `key_features`, `creative_brief`) para convertir bloques samurai-medieval y horror de scene-driven a gramáticas style-first transferibles, con contraste semántico fuerte entre presets contiguos (duelo ceremonial, guerra de clanes, voto caballeresco, brecha de asedio, ascetismo marcial, liminal escolar, omen lunar, teatro grotesco, vacío rural y rito oni). +- Validación técnica: `bun run styles:validate -- --pack=pack_16` ✅ + +Reauditoría profunda de completitud aplicada (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_16/SP05-281.yaml` a `SP05-290.yaml` +- Alcance: refactor integral multi-campo (`aesthetic`, `form_and_line`, `color_palette`, `lighting_setup`, `material_texture`, `render_quality`, `spatial_distortion`, `atmosphere`, `key_features`, `creative_brief`) para reemplazar narrativa scene-locked por gramáticas transferibles en `10. Studio Masterpieces`, diferenciando cine-memoria, humanismo urbano navideño, duelo metafísico, aventura celeste retro, eco-profecía postcolapso, maternidad rural estacional, ópera digital, temporalidad juvenil, misticismo en ruina y tragedia paramilitar. +- Validación técnica: `bun run styles:validate -- --pack=pack_16` ✅ + +Reauditoría profunda de completitud aplicada (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_16/SP05-291.yaml` a `SP05-300.yaml` +- Alcance: refactor integral multi-campo (`aesthetic`, `form_and_line`, `color_palette`, `lighting_setup`, `material_texture`, `render_quality`, `spatial_distortion`, `atmosphere`, `key_features`, `creative_brief`) para consolidar gramáticas transferibles y no scene-locked en `10. Studio Masterpieces`, diferenciando reconciliación íntima, teatro punk histórico, mito callejero vertical, mutación psicodélica, cámara musical de microgesto, retrofuturo art-decó, lirismo pluvial, odisea nocturna etílica, invasión onírica carnavalesca y rescate mecha hipergráfico. +- Validación técnica: `bun run styles:validate -- --pack=pack_16` ✅ + +Reauditoría profunda de completitud aplicada (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_16/SP05-301.yaml` a `SP05-310.yaml` +- Alcance: refactor integral multi-campo (`aesthetic`, `form_and_line`, `color_palette`, `lighting_setup`, `material_texture`, `render_quality`, `spatial_distortion`, `atmosphere`, `key_features`, `creative_brief`) para transformar el bloque `11. 70s & 80s Retro Anime` en gramáticas style-first transferibles, diferenciando ópera naval espacial, outlaw melancólico, ferrocarril cósmico poético, drama barroco revolucionario, rom-com sci-fi estridente, romance doméstico maduro, nostalgia baseball juvenil, action-noir urbano, space-glam en dúo y pulp profesional de rescate. +- Validación técnica: `bun run styles:validate -- --pack=pack_16` ✅ + +Reauditoría profunda de completitud aplicada (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_16/SP05-311.yaml` a `SP05-320.yaml` +- Alcance: refactor integral multi-campo (`aesthetic`, `form_and_line`, `color_palette`, `lighting_setup`, `material_texture`, `render_quality`, `spatial_distortion`, `atmosphere`, `key_features`, `creative_brief`) para cerrar el tramo retro con gramáticas transferibles de aventura ecológica postcolapso, heist glam nocturno, épica zodiacal, drama mecha formativo, guerra política angular, bio-mecha fantástica, techno-rebeldía urbana, horror demónico expresionista, dualidad mecha-pop y rogue pulp espacial. +- Validación técnica: `bun run styles:validate -- --pack=pack_16` ✅ + +Reauditoría profunda de completitud aplicada (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_16/SP05-150.yaml` a `SP05-159.yaml` +- Alcance: refactor integral multi-campo (`aesthetic`, `form_and_line`, `color_palette`, `lighting_setup`, `material_texture`, `render_quality`, `spatial_distortion`, `atmosphere`, `key_features`, `creative_brief`) para robustecer `2. 2000s Classics` con gramáticas style-first de fantasy escolar ígnea, club meta-cosmológico, comedia samurái anacrónica, exorcismo tecno-gótico, thriller vampírico militar, romcom de academia mágica, horror rural en bucle, speed-tech de rooftop, contemplación ecológica sobrenatural y melodrama rock urbano. +- Validación técnica: `bun run styles:validate -- --pack=pack_16` ✅ + +Reauditoría de consistencia style-first aplicada (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_15/SP15-031.yaml` a `SP15-060.yaml` +- Ajuste aplicado: normalización de `creative_brief` para reforzar formulación reusable, coherencia inter-preset y transferibilidad semántica por subgénero. +- Validación técnica: `bun run styles:validate -- --pack=pack_15` ✅ + +Reauditoría profunda de completitud aplicada (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_16/SP05-141.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-145.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-146.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-147.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-149.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-160.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-161.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-163.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-164.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-165.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-166.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-167.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-169.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-170.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-173.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-174.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-175.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-179.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-180.yaml` +- Alcance: refactor integral multi-campo (`aesthetic`, `form_and_line`, `color_palette`, `lighting_setup`, `material_texture`, `render_quality`, `spatial_distortion`, `atmosphere`, `key_features`, `creative_brief`) con lineamiento style-first estricto, briefs transferibles no scene-locked y diferenciación semántica reforzada en bloque amplio. +- Validación técnica: `bun run styles:validate -- --pack=pack_16` ✅ + +Reauditoría profunda de completitud aplicada (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_16/SP05-003.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-004.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-005.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-006.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-007.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-008.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-009.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-010.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-011.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-012.yaml` +- Alcance: refactor integral multi-campo (`aesthetic`, `form_and_line`, `color_palette`, `lighting_setup`, `material_texture`, `render_quality`, `spatial_distortion`, `atmosphere`, `key_features`, `creative_brief`) para transformar presets legacy de base template en gramáticas style-first transferibles, con contraste semántico reforzado entre heist noir, space opera melancólica, mecha bélico, idol-mecha, wasteland marcial, detective urbano, megaciudad cyber, aventura cómica y dúo shonen/magical noventero. +- Validación técnica: `bun run styles:validate -- --pack=pack_16` ✅ + +Reauditoría profunda de completitud aplicada (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_16/SP05-071.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-072.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-073.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-074.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-075.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-076.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-077.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-078.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-079.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-080.yaml` +- Alcance: refactor integral multi-campo (`aesthetic`, `form_and_line`, `color_palette`, `lighting_setup`, `material_texture`, `render_quality`, `spatial_distortion`, `atmosphere`, `key_features`, `creative_brief`) para convertir el bloque scene-heavy de `10. Studio Masterpieces` en gramáticas style-first transferibles, reforzando contraste semántico entre fantasía liminal cálida, eco-épica ancestral, steampunk romántico errante, melodrama celeste, drama pluvial urbano, surrealismo onírico, thriller identitario, cyber-apocalipsis megalopolitano, carrera hipercinética y lirismo oceánico-cósmico. +- Validación técnica: `bun run styles:validate -- --pack=pack_16` ✅ + +Reauditoría de precisión manual aplicada (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_16/SP05-301.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-302.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-303.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-304.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-305.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-306.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-307.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-308.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-309.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-310.yaml` +- Alcance: segunda pasada manual preset-por-preset para aumentar contraste fino entre vecinos (ritmo, textura, iluminación y tesis narrativa) sin perder lineamiento style-first reusable. +- Validación técnica: `bun run styles:validate -- --pack=pack_16` ✅ + +Reauditoría de precisión manual aplicada (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_16/SP05-311.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-312.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-313.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-314.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-315.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-316.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-317.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-318.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-319.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-320.yaml` +- Alcance: segunda pasada manual preset-por-preset enfocada en micro-diferenciación semántica (gestualidad, iluminación, materialidad y framing) dentro del tramo retro para evitar convergencia estilística entre vecinos. +- Validación técnica: `bun run styles:validate -- --pack=pack_16` ✅ + +Reauditoría de precisión manual aplicada (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_16/SP05-343.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-344.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-345.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-346.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-347.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-348.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-349.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-350.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-351.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-352.yaml` +- Alcance: segunda pasada manual preset-por-preset sobre bloque sports-performance para reforzar contraste semántico fino entre vecinos (ritmo, tesis competitiva, materialidad y framing) manteniendo lineamiento style-first reusable. +- Validación técnica: `bun run styles:validate -- --pack=pack_16` ✅ + +Reauditoría de precisión manual aplicada (sin sumar al total, ya contado): + +- `components/recipes/styles/manifests/presets/pack_16/SP05-353.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-354.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-355.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-356.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-357.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-358.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-359.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-360.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-361.yaml` +- `components/recipes/styles/manifests/presets/pack_16/SP05-362.yaml` +- Alcance: segunda pasada manual preset-por-preset en motorsport, racket-sports, boxing, skating, karuta y golf para reforzar diferenciación de foco competitivo, ritmo y materialidad sin perder transferibilidad style-first. +- Validación técnica: `bun run styles:validate -- --pack=pack_16` ✅ + ## Guía de reescritura aplicada ### Do ✅ @@ -735,15 +1138,22 @@ Total manual refactorizado hasta ahora: **458 presets**. - Describir **lenguaje visual** (linework, color logic, material response, compositional behavior). - Usar términos de estilo transferibles a múltiples temas. - Definir diferencias reales entre presets cercanos. +- Darle a cada preset una **tesis visual rara y útil**, no sólo una gramática reusable genérica. +- Forzar contraste entre vecinos del mismo subgénero: rol, ritmo, material, luz, motivo y composición deben cambiar. +- Convertir escena base en mecanismo de dirección artística: “cómo se ve y cómo transforma cualquier sujeto”. ### Avoid ❌ - Fijar la identidad en “city/street/classroom/market/rooftop/battle scene”. - Repetir bloques idénticos de `visualDna` en lotes grandes. - Escribir briefs como mini-historias cerradas del mismo set narrativo. +- Resolver presets con fórmulas pobres tipo “Preserve X grammar as reusable style” sin una apuesta visual concreta. +- Dejar presets vecinos como vagas similitudes con distinto nombre. ## Próxima fase sugerida +Abrir siguiente bache contiguo en `pack_16` sobre `SP05-363.yaml` a `SP05-372.yaml` para segunda pasada de precisión manual, manteniendo estilo transferable y contraste semántico fuerte entre presets adyacentes. + Prioridad por riesgo de drift semántico (scene-heavy): 1. `pack_07` → `1. Residential Interiors` + `4. Landscape And Gardens` diff --git a/docs/architecture/DEEPENING-ROADMAP.md b/docs/architecture/DEEPENING-ROADMAP.md index 0b8b5af4..dcb55f6a 100644 --- a/docs/architecture/DEEPENING-ROADMAP.md +++ b/docs/architecture/DEEPENING-ROADMAP.md @@ -2,7 +2,7 @@ Esta hoja de ruta sigue refactors que convierten módulos superficiales en módulos más profundos, con mejor locality, leverage y testabilidad. Las decisiones relacionadas viven en `docs/adr/`. -Current findings index: `docs/architecture/architecture-review-2026-05-29.md`. +Current findings index: `docs/architecture/architecture-review-2026-05-31.md`. ## Conceptos @@ -23,6 +23,19 @@ Execution order for the accepted batch: 5. Deepen `Local Studio Sync` refresh policy semantics. 6. Review naming and seam clarity in `Local Generation Run` provider-neutral flow. +## Lote de revisión aceptado - 2026-05-31 + +The latest accepted batch comes from `docs/architecture/architecture-review-2026-05-31.md`. + +Execution order for this batch: + +1. Deepen `Studio Shell` composition policy. +2. Deepen `Workspace lifecycle` invariants. +3. Remove dual `Studio Settings` interface (domain + flat compatibility). +4. Deepen `Command Center` projection policy. +5. Add direct test surface for `createStudioApp` composition seam. +6. Deepen `Local Studio Sync` refresh policy semantics. + ## Seguimiento de trabajo ### 1. Deepen the `Studio Shell` orchestration module @@ -180,6 +193,104 @@ Execution order for the accepted batch: - **Exit criteria:** `appFactory.ts` acts mainly as runtime composition module, with heavy route groups mounted from focused route modules. - **Docs:** update `docs/ARCHITECTURE.md` backend seam section once providers/codex route groups are also extracted. +### 10. Deepen `Studio Shell` composition policy (2026-05-31 batch) + +- **Status:** In progress +- **Files:** `hooks/useStudioShell.ts`, `components/AppContent.tsx`, + `lib/buildStudioHeaderToolbarProps.ts`, `lib/buildStudioPageController.ts` +- **Depends on:** none +- **Unblocks:** narrower shell interface and stable integration test surface +- **Concrete steps:** + - define one deep composition-policy module for cross-seam shell invariants; + - keep `useStudioShell.ts` as a thinner adapter interface over that policy; + - add focused tests for shell policy (without mounting full UI tree). +- **Exit criteria:** shell callers stop depending on broad cross-domain wiring details. +- **Docs:** `docs/ARCHITECTURE.md`, `docs/TECHNICAL_DEBT.md`, findings index. + +### 11. Deepen `Workspace lifecycle` invariants (2026-05-31 batch) + +- **Status:** In progress +- **Files:** `hooks/useWorkspaceStrip.ts`, `hooks/useStudioActionConfirmations.ts`, + `hooks/useCatalog.ts`, `lib/buildStudioHeaderToolbarProps.ts`, `components/header/WorkspaceStrip.tsx` +- **Depends on:** 10 +- **Unblocks:** deterministic workspace switch/delete/clear behavior +- **Concrete steps:** + - done: added `lib/workspaceLifecycle.ts` with shared lifecycle invariants for switch and delete ordering; + - done: routed `buildStudioHeaderToolbarProps`, `useStudioActionConfirmations`, and `useWorkspaceStrip` through the shared lifecycle seam; + - done: added focused seam tests in `lib/workspaceLifecycle.test.ts` for default workspace guard, switch behavior, and clear-before-delete ordering. + - next: add integration tests that cover the full strip + confirmation flow through the same seam. +- **Exit criteria:** workspace policy no longer leaks across strip/confirm/catalog callers. +- **Docs:** `docs/ARCHITECTURE.md`, `docs/TECHNICAL_DEBT.md`. + +### 12. Retire dual `Studio Settings` interface (2026-05-31 batch) + +- **Status:** Done +- **Files:** `hooks/useStudioSettings.ts`, `hooks/useStudioShell.ts`, `components/StudioSettingsModal.tsx` +- **Depends on:** 10 +- **Unblocks:** smaller settings fixtures and clearer domain seams +- **Concrete steps:** + - done: migrated remaining shell callers to `settingsDomain` / `providerDomain` / `outputSourcesDomain`. + - done: removed flat compatibility fields from `useStudioSettings` return contract. + - next: add focused hook tests for domain-only interface behavior. +- **Exit criteria:** no caller depends on flat compatibility fields. +- **Docs:** `docs/ARCHITECTURE.md`, `docs/TECHNICAL_DEBT.md`. + +### 13. Deepen `Command Center` projection policy (2026-05-31 batch) + +- **Status:** Done +- **Files:** `lib/buildStudioHeaderToolbarProps.ts`, `lib/buildStudioPageController.ts`, `components/HeaderToolbar.tsx` +- **Depends on:** 10 +- **Unblocks:** explicit projection invariants and reduced shell wiring spread +- **Concrete steps:** + - done: compressed projection inputs into a policy seam with explicit invariants by grouping provider, queue, and actions contexts; + - done: kept `HeaderToolbar` as a visual adapter; + - done: added direct tests for projection policy outputs. +- **Exit criteria:** projection invariants are testable through a dedicated module interface. +- **Docs:** `docs/ARCHITECTURE.md`, findings index. + +### 14. Add direct test surface for `createStudioApp` composition seam (2026-05-31 batch) + +- **Status:** In progress +- **Files:** `apps/local-server/src/appFactory.ts`, `apps/local-server/src/appFactory.test.ts` +- **Depends on:** none +- **Unblocks:** safe backend composition changes and ADR-0014 closure criteria +- **Concrete steps:** + - done: create first composition tests for injected codex/project seams and catalog command wiring; + - done: added failure-path coverage for codex route composition (`/api/codex/models` error path). + - done: added runtime wiring coverage for injected app-server dependencies (`/api/app-server/start`). + - next: add coverage for worker dependency wiring and additional failure-path composition behavior in job/runtime routes. +- **Exit criteria:** `createStudioApp` has direct seam tests that cover primary wiring paths. +- **Docs:** `docs/adr/0014-backend-dependency-injection-seams.md`, `docs/ARCHITECTURE.md`. + +### 15. Deepen `Local Studio Sync` refresh policy semantics (2026-05-31 batch) + +- **Status:** Planned +- **Files:** `hooks/useLocalStudioSync.ts`, `hooks/localStudioSyncRefreshPolicy.ts`, `hooks/localStudioSyncProjection.ts` +- **Depends on:** 10, 13 +- **Unblocks:** resilient refresh behavior under burst and reconnect patterns +- **Concrete steps:** + - model refresh triggers with explicit event categories; + - expand coalescing/retry semantics beyond asset-added/disconnect; + - add focused tests for burst and reconnect scenarios. +- **Exit criteria:** refresh behavior evolves behind policy seam without hook churn. +- **Docs:** `docs/ARCHITECTURE.md`, `docs/TECHNICAL_DEBT.md`. + +### 16. Deepen `Studio Overlay Controller` settings seam (2026-05-31 batch) + +- **Status:** Done +- **Files:** `hooks/useStudioOverlayController.ts`, `components/overlays/types.ts`, + `components/overlays/StudioSystemOverlays.tsx`, `hooks/useStudioOverlayController.test.ts` +- **Depends on:** 10, 12 +- **Unblocks:** smaller system-overlay interface and clearer domain ownership for `Studio Settings` data +- **Concrete steps:** + - done: `StudioSystemOverlaysProps` now groups settings data and actions under `settingsModule` instead of exposing a broad flat settings surface; + - done: `buildStudioOverlayController()` now publishes grouped `settingsModule` data into `systemOverlays`; + - done: `StudioSystemOverlays` now consumes grouped `settingsModule` domains and keeps modal wiring behavior unchanged; + - done: updated overlay seam tests to assert `settingsModule` paths. + - done: reduced the remaining controller argument flattening by renaming the shell seam input to `settingsModule` and threading the grouped settings module straight through the controller. +- **Exit criteria:** no new callers depend on flat settings fields in `systemOverlays`; overlay settings wiring remains domain-grouped. +- **Docs:** `docs/ARCHITECTURE.md`, findings index. + ### 6. Deepen `Local Studio Sync` state ownership - **Status:** In progress diff --git a/docs/architecture/architecture-review-2026-05-31.md b/docs/architecture/architecture-review-2026-05-31.md new file mode 100644 index 00000000..a921083d --- /dev/null +++ b/docs/architecture/architecture-review-2026-05-31.md @@ -0,0 +1,324 @@ +# Architecture review — Codex Studio + +Date: 2026-05-31 + +## Summary + +- La fricción principal no está en ausencia de seams, sino en seams cuya **interface** todavía filtra demasiada **implementation**. +- El repo ya tiene deepening real en backend y shell, pero persisten módulos **shallow** por compatibilidad dual y por adapters de mapeo demasiado verbosos. +- Esta revisión prioriza cerrar seams incompletos para subir **locality** y **leverage**, sin reabrir ADRs ya encaminados. + +## Recommendations + +### 1. Deepen el módulo Studio Shell para reducir fan-in y fan-out de interface + +**Recommendation strength**: Strong + +**Files** + +- `hooks/useStudioShell.ts` +- `components/AppContent.tsx` +- `lib/buildStudioHeaderToolbarProps.ts` +- `lib/buildStudioPageController.ts` + +**Problem** + +`useStudioShell.ts` concentra demasiado ensamblado y cruza invariantes de runtime, workspace, overlays, queue y navigation. El módulo existe, pero su **interface** sigue exponiendo demasiada **implementation**. + +Deletion test: si se elimina `useStudioShell.ts`, la complejidad reaparece casi completa en `AppContent` y callers vecinos. + +**Solution** + +Reducir la interface de `Studio Shell` a un seam más pequeño: separar una policy de composición que absorba reglas entre toolbar, page controller y overlays, dejando `useStudioShell.ts` como fachada estable. + +**Benefits** + +- locality: cambios de coordinación de shell quedan en un módulo dedicado. +- leverage: callers consumen menos campos y menos reglas implícitas. +- tests: la policy de shell se prueba cruzando un seam único, sin montar todo el árbol. + +**Before / After** + +- Before: `useStudioShell.ts` mezcla composición, policy y mapping de varios seams. +- After: `useStudioShell.ts` queda como interface fina; la policy vive detrás de un módulo deep. + +**Dependencies / sequencing** + +- Debe ir primero para reducir churn del resto. +- Desbloquea recomendaciones 2, 3, 4 y 7. + +**Documentation follow-ups** + +- `docs/ARCHITECTURE.md` (sección `Studio Shell`). +- `docs/TECHNICAL_DEBT.md` (estado de deuda de shell). +- `docs/architecture/DEEPENING-ROADMAP.md` (estado y criterios de salida). + +### 2. Deepen el módulo Workspace lifecycle para unir invariantes de catálogo + confirmación + switching + +**Recommendation strength**: Strong + +**Files** + +- `hooks/useWorkspaceStrip.ts` +- `hooks/useStudioActionConfirmations.ts` +- `hooks/useCatalog.ts` +- `lib/workspaceLifecycle.ts` +- `lib/buildStudioHeaderToolbarProps.ts` +- `components/header/WorkspaceStrip.tsx` + +**Problem** + +La lógica de workspace sigue repartida entre strip, confirmaciones, catálogo y switching. El orden operativo es crítico, pero la **interface** sigue distribuida. + +Deletion test: si se elimina cualquiera de esos módulos, la complejidad no desaparece; se redistribuye entre callers. + +**Solution** + +Profundizar `Workspace lifecycle` para encapsular invariantes de orden (clear-before-delete), sincronización con catálogo y transición de vista/switching detrás de un seam explícito. + +**Benefits** + +- locality: reglas de workspace se corrigen en un solo módulo. +- leverage: `HeaderToolbar` y `WorkspaceStrip` cruzan una interface mínima. +- tests: más cobertura por seam de lifecycle y menos fragilidad por eventos UI. + +**Before / After** + +- Before: policy repartida entre strip, confirmaciones, catálogo y toolbar mapping. +- After: policy centralizada detrás de un seam; UI cruza adapters delgados. + +**Dependencies / sequencing** + +- Después de recomendación 1. +- Desbloquea robustez de switching/delete sin coupling accidental. + +**Documentation follow-ups** + +- `docs/ARCHITECTURE.md` (sección `Command Center` + workspace). +- `docs/TECHNICAL_DEBT.md` (deuda de invariantes de workspace). + +### 3. Deepen el módulo Studio Settings para retirar interface dual (dominios + compatibilidad plana) + +**Recommendation strength**: Strong + +**Files** + +- `hooks/useStudioSettings.ts` +- `hooks/useStudioShell.ts` +- `hooks/useStudioOverlayController.ts` +- `components/StudioSettingsModal.tsx` + +**Problem** + +`useStudioSettings.ts` ya expone dominios (`settingsDomain`, `providerDomain`, `outputSourcesDomain`), pero también mantiene una superficie plana duplicada. Esa duplicación vuelve **shallow** el módulo: más interface sin más comportamiento. + +Deletion test: si se elimina la superficie plana, la complejidad no reaparece en callers migrados; desaparece ruido. + +**Solution** + +Completar migración de callers a interface por dominios y retirar la superficie plana duplicada. + +**Benefits** + +- locality: cada dominio cambia sin contaminar los otros. +- leverage: menos campos en la interface con la misma capacidad. +- tests: fixtures más pequeños y deterministas por dominio. + +**Before / After** + +- Before: interface dual (dominios + plano) con reglas repetidas. +- After: interface única por dominios con adapters UI delgados. + +**Dependencies / sequencing** + +- Después de recomendación 1. +- No contradice ADR-0023 ni ADR-0030. + +**Documentation follow-ups** + +- `docs/ARCHITECTURE.md` (`Studio Settings` + runtime preflight). +- `docs/TECHNICAL_DEBT.md` (cerrar deuda de compatibilidad plana). + +### 4. Deepen el módulo Command Center projection para encapsular policy de estado y transiciones + +**Recommendation strength**: Worth exploring + +**Files** + +- `lib/buildStudioHeaderToolbarProps.ts` +- `lib/buildStudioPageController.ts` +- `components/HeaderToolbar.tsx` +- `hooks/useStudioHeaderToolbarConfig.test.ts` + +**Problem** + +La proyección ya está concentrada y tiene test directo de toolbar, pero la **interface** de entrada sigue ancha y la cobertura de invariantes de proyección es parcial (más orientada a happy path). + +Deletion test: si se elimina la proyección, reaparece mapping extenso en shell; el seam aporta valor, pero su **depth** todavía es limitado. + +**Solution** + +Definir una policy de proyección del `Command Center` con invariantes explícitas (runtime tone, queue totals, switching side-effects) y ampliar test surface a casos no felices. + +**Benefits** + +- locality: policy de proyección y transición en un módulo. +- leverage: menos wiring manual desde shell. +- tests: más confianza en invariantes, no solo en mapping básico. + +**Before / After** + +- Before: mapping útil con entradas verbosas y cobertura parcial. +- After: policy más deep con invariantes explícitas y pruebas más completas. + +**Dependencies / sequencing** + +- Después de recomendación 1. +- Alineado con ADR-0024. + +**Documentation follow-ups** + +- `docs/ARCHITECTURE.md` (`Command Center`). +- `docs/architecture/DEEPENING-ROADMAP.md` (sub-item de projection policy). + +### 5. Deepen el módulo Local Studio Sync policy para modelar eventos más allá de asset/disconnect + +**Recommendation strength**: Worth exploring + +**Files** + +- `hooks/useLocalStudioSync.ts` +- `hooks/localStudioSyncRefreshPolicy.ts` +- `hooks/localStudioSyncProjection.ts` + +**Problem** + +La policy actual refresca en `onAssetAdded` y desconexión. Es correcta, pero su **interface** sigue mínima para ráfagas y reconexiones complejas. + +Deletion test: si se elimina `localStudioSyncRefreshPolicy.ts`, la complejidad de coalescing vuelve a `useLocalStudioSync.ts`. + +**Solution** + +Expandir la policy como módulo deep: categorías de evento explícitas, reglas de coalescing por tipo y refresh diferido/retry de reconexión. + +**Benefits** + +- locality: estrategia de refresh en un módulo. +- leverage: `useLocalStudioSync.ts` queda como ensamblado estable. +- tests: cobertura de policy sin montar stream completo. + +**Before / After** + +- Before: policy correcta pero estrecha. +- After: policy explícita para comportamiento bajo carga/reconexión. + +**Dependencies / sequencing** + +- Después de recomendaciones 1 y 4. +- Alineado con ADR-0029; sin conflicto. + +**Documentation follow-ups** + +- `docs/ARCHITECTURE.md` (`Local Studio Sync`). +- `docs/TECHNICAL_DEBT.md` (criterios de salida de sync policy). + +### 6. Deepen la verificación del módulo createStudioApp para cubrir composición no feliz + +**Recommendation strength**: Strong + +**Files** + +- `apps/local-server/src/appFactory.ts` +- `apps/local-server/src/appFactory.test.ts` +- `apps/local-server/src/jobRoutes.ts` +- `apps/local-server/src/runtimeRoutes.ts` + +**Problem** + +`createStudioApp` ya tiene test surface directo para wiring base (codex/projects/catalog), pero faltan casos de composición no feliz (errores de adapters, wiring de worker/dependencias en rutas críticas). El seam es deep, pero con verificación parcial. + +Deletion test: si se elimina `createStudioApp`, reaparece wiring de runtime en muchos lugares. + +**Solution** + +Expandir tests de composición con adapters fake y fallas controladas: rutas montadas, dependencia inyectada en rutas críticas y propagación de error modes esperados por seam. + +**Benefits** + +- locality: regresiones de wiring se detectan en un módulo. +- leverage: cambios en rutas/dependencias se validan sin levantar runtime completo. +- tests: cobertura de seam crítico también en error modes. + +**Before / After** + +- Before: seam de composición con pruebas base pero sin cubrir suficientes caminos no felices. +- After: seam de composición con verificación explícita de wiring y fallas. + +**Dependencies / sequencing** + +- Puede avanzar en paralelo con recomendaciones 4 y 5. +- Alineado con ADR-0014. + +**Documentation follow-ups** + +- `docs/ARCHITECTURE.md` (backend composition seam). +- `docs/adr/0014-backend-dependency-injection-seams.md` (actualizar progreso/estado). + +### 7. Deepen el módulo Studio Overlay Controller para reducir traducción de interface dominio→UI + +**Recommendation strength**: Worth exploring + +**Files** + +- `hooks/useStudioOverlayController.ts` +- `components/overlays/types.ts` +- `hooks/useStudioShell.ts` + +**Problem** + +`buildStudioShellOverlayController()` traduce dominios (`settingsDomain`, `providerDomain`, `outputSourcesDomain`, runtime/onboarding) hacia una interface plana extensa de `systemOverlays`. Ese adapter es mecánicamente grande y tiende a bajo **depth**. + +Deletion test: si se elimina esa traducción, la complejidad reaparece en `useStudioShell.ts` o callers de overlays. + +**Solution** + +Profundizar el seam de overlays para alinear mejor la interface de `systemOverlays` con dominios operativos y reducir mapeo manual repetitivo. + +**Benefits** + +- locality: cambios de overlays de sistema sin tocar mapeos cruzados en shell. +- leverage: interface más corta para overlays con menos ruido de wiring. +- tests: seam más fácil de probar por dominio. + +**Before / After** + +- Before: adapter extenso que aplana múltiples dominios en una sola estructura. +- After: adapter más deep con menos traducción mecánica. + +**Dependencies / sequencing** + +- Después de recomendación 1. +- Conviene después de recomendación 3 para evitar doble migración de settings. + +**Documentation follow-ups** + +- `docs/ARCHITECTURE.md` (sección overlays/shell). +- `docs/architecture/DEEPENING-ROADMAP.md` (ítem de overlay policy seam). + +## Suggested execution order + +1. **Recomendación 1** — reduce ancho de interface del `Studio Shell` y baja churn global. +2. **Recomendación 2** — estabiliza invariantes de workspace detrás de un seam único. +3. **Recomendación 3** — elimina compatibilidad plana de `Studio Settings`. +4. **Recomendación 7** — alinea overlays con dominios para recortar traducción plana extensa. +5. **Recomendación 4** — consolida policy de `Command Center` y su test surface. +6. **Recomendación 6** — amplía verificación del seam de composición backend en error modes. +7. **Recomendación 5** — profundiza refresh policy de sync una vez establecida la proyección/shell. + +## Documentation fan-out + +- `CONTEXT.md`: no requiere términos nuevos por ahora. +- `docs/adr/0014-backend-dependency-injection-seams.md`: actualizar progreso; evaluar cambio de `Proposed` a `Accepted` al cerrar verificación de composición. +- `docs/ARCHITECTURE.md`: actualizar secciones `Studio Shell`, `Command Center`, `Studio Settings`, `Local Studio Sync`, overlays de sistema y composición backend. +- `docs/architecture/DEEPENING-ROADMAP.md`: actualizar ítems, dependencias y estado por recomendación aceptada. +- `docs/TECHNICAL_DEBT.md`: alinear prioridad y criterios de salida con este batch. \ No newline at end of file diff --git a/docs/architecture/architecture-review-effect-ts-2026-05-31.md b/docs/architecture/architecture-review-effect-ts-2026-05-31.md new file mode 100644 index 00000000..9e564af9 --- /dev/null +++ b/docs/architecture/architecture-review-effect-ts-2026-05-31.md @@ -0,0 +1,538 @@ +# Architecture review - Effect-TS adoption opportunities (Codex Studio) + +Date: 2026-05-31 + +## Summary + +- El proyecto ya tiene buenos **seams** (ADR-0014, ADR-0018, ADR-0021, ADR-0022, ADR-0029), así que la adopción de Effect puede ser incremental y de alto retorno. +- El mejor punto de entrada no es el UI puro, sino la orquestación backend/local runtime donde hoy hay más `Promise` + `try/catch` + `AbortController` + retries manuales. +- La recomendación es introducir Effect en módulos de runtime y scripts de automatización primero, manteniendo las interfaces públicas estables. + +## Candidate recommendations + +### 1) Deepen the Worker orchestration module with typed error/retry/timeout semantics + +**Files** + +- `apps/local-server/src/worker.ts` + +**Problem** + +El módulo concentra mucha lógica de control de flujo (`processQueue`, `processJob`, cancelación, publish de eventos, transitions de estado) con errores stringly-typed y helpers de abort manuales. + +**Solution** + +Migrar internamente a `Effect` para modelar: + +- pipeline de job (`dry_run`, `codex`, `external`) con errores tipados; +- cancelación/timeout con operadores nativos (`timeout`, `timeoutFail`, interrupción); +- retries declarativos con `Schedule`. + +Mantener la **interface** de `WorkerController` sin ruptura. + +**Benefits** + +- **Locality**: política de fallos y cancelación en un solo módulo. +- **Leverage**: menos ramas imperativas repetidas por tipo de job. +- Tests más precisos con inyección de `Layer`/servicios fake. + +**Before / After** + +- Before: control flow imperativo + abort/retry artesanal. +- After: runtime declarativo con canales de error explícitos y composición uniforme. + +**Recommendation strength**: **Strong** + +**Dependencies / sequencing** + +- Depende de definir un pequeño contrato de errores de worker. +- Desbloquea candidatos 2, 3 y 4. + +**Documentation follow-ups** + +- `docs/ARCHITECTURE.md` (Worker internals) +- ADR complementaria si se estandariza taxonomía de errores. + +--- + +### 2) Consolidate Codex turn lifecycle and cancellation into a single Effect runtime seam + +**Files** + +- `apps/local-server/src/codex/turn.ts` + +**Problem** + +`runImagegenJob` mezcla session pooling, retries transitorios, invalidación de thread y aborts con loops manuales y múltiples `try/catch`. + +**Solution** + +Encapsular `runCodexImagegenTurn` / `runImagegenJob` como Effects con: + +- reintento por política (`Schedule`) según clasificación de error; +- recursos (sesión/transcript) bajo `Scope`; +- cancelación uniforme sin duplicar `raceWithAbort`. + +**Benefits** + +- **Locality**: toda la política del Codex Product Runtime en un módulo profundo. +- **Leverage**: menos acoplamiento accidental entre sesión, transcript y retry. + +**Before / After** + +- Before: bucle de intentos + invalidaciones ad hoc. +- After: una pipeline explícita con políticas composables. + +**Recommendation strength**: **Strong** + +**Dependencies / sequencing** + +- Hacer después del candidato 1 o en paralelo. + +**Documentation follow-ups** + +- `docs/ARCHITECTURE.md` sección Codex Product Runtime. + +--- + +### 3) Replace ad-hoc provider HTTP retry logic with shared Effect retry policy module + +**Files** + +- `apps/local-server/src/providers/externalProviderResults.ts` +- (consumidores) `falExecutor.ts`, `comfyExecutor.ts`, `googleExecutor.ts` + +**Problem** + +Hay retries manuales con `for` + `sleep`, y señales de abort tratadas por convención local. + +**Solution** + +Crear un módulo profundo de retry/backoff con Effect para Provider Boundary: + +- policy central (`maxAttempts`, jitter/backoff, retryable status); +- timeout configurable; +- tagging de errores recuperables vs terminales. + +**Benefits** + +- **Leverage**: una policy reusable para todos los Generation Providers. +- **Locality**: cambios de resiliencia en un solo seam. + +**Before / After** + +- Before: cada adapter decide su loop de retries. +- After: policy única con semántica consistente. + +**Recommendation strength**: **Strong** + +**Dependencies / sequencing** + +- Sin bloqueos mayores; ideal como quick win backend. + +**Documentation follow-ups** + +- `docs/active/professionalization-roadmap.md` (provider resilience) + +--- + +### 4) Deepen SSE/event stream module pair with Effect Stream-like contracts + +**Files** + +- `apps/local-server/src/eventStreamRoutes.ts` +- `services/studioEventSource.ts` + +**Problem** + +Cliente y servidor SSE tienen reconexión/keep-alive/abort hechos a mano y dispersos. + +**Solution** + +Modelar eventos como un módulo profundo de stream (internamente con Effect y API pública estable): + +- reconexión con política declarativa; +- heartbeat, backpressure y cierre seguro; +- parseo de eventos con error channel explícito. + +**Benefits** + +- **Locality**: una sola política de conexión para Local Studio Sync. +- **Leverage**: menos flakes por edge cases de reconexión. + +**Before / After** + +- Before: timers/listeners manuales en dos lados del seam. +- After: contrato de stream explícito y verificable. + +**Recommendation strength**: **Worth exploring** + +**Dependencies / sequencing** + +- Recomendado después de 1-3. + +**Documentation follow-ups** + +- `docs/ARCHITECTURE.md` (`Local Studio Sync` y `/api/events`). + +--- + +### 5) Introduce a typed Local Generation Run effect pipeline + +**Files** + +- `services/localGenerationRun.ts` +- `services/localGenerationRuntimeAdapters.ts` + +**Problem** + +El flujo de creación de job + espera de terminal state + query de catálogo combina I/O, delays, abort y outcome mapping en async imperativo. + +**Solution** + +Pasar a una pipeline Effect: + +- errores de dominio (`cancelled`, `failed`, `timeout`) tipados; +- composición de pasos (`build assets`, `create job`, `watch`, `materialize result`); +- retry/timeouts configurables por task. + +**Benefits** + +- **Leverage**: mejores garantías para `Local Generation Run`. +- **Locality**: reduce política duplicada en hooks consumidores. + +**Before / After** + +- Before: async/await con checks de abort repetidos. +- After: pipeline única con control-flow declarativo. + +**Recommendation strength**: **Strong** + +**Dependencies / sequencing** + +- Después de candidato 1 o en paralelo. + +**Documentation follow-ups** + +- `docs/ARCHITECTURE.md` (`Local Generation Run`). + +--- + +### 6) Deepen local app-server process supervision with scoped resource lifecycle + +**Files** + +- `apps/local-server/src/codex/processSupervisor.ts` + +**Problem** + +Supervisor de proceso con estado global mutable y manejo de stdout/stderr best-effort. + +**Solution** + +Migrar internamente a resource management explícito (`Scope`) y canal de diagnósticos tipado: + +- adquisición/liberación de proceso; +- propagación de eventos de salida sin race conditions; +- timeout de startup con errores de dominio. + +**Benefits** + +- **Locality**: supervision robusta en un módulo. +- **Leverage**: menos fallos intermitentes difíciles de reproducir. + +**Before / After** + +- Before: mutable globals + callbacks sueltos. +- After: lifecycle explícito y deterministic teardown. + +**Recommendation strength**: **Worth exploring** + +**Dependencies / sequencing** + +- Mejor tras consolidar `turn.ts`/`rpcClient.ts`. + +**Documentation follow-ups** + +- `docs/ARCHITECTURE.md` (`App-Server Lifecycle`). + +--- + +### 7) Consolidate RPC client connect/reconnect/notification semantics + +**Files** + +- `apps/local-server/src/codex/rpcClient.ts` + +**Problem** + +Reintentos, polling de notificaciones y cleanup de waiters están implementados manualmente. + +**Solution** + +Usar runtime Effect para: + +- retry policy de conexión; +- espera de notificaciones sin `setInterval` manual; +- cancelación y finalización segura de waiters. + +**Benefits** + +- **Leverage**: cliente RPC más predecible para todo Codex Product Runtime. +- **Locality**: menos bugs de sincronización en un punto crítico. + +**Before / After** + +- Before: timers + estructuras mutables ad hoc. +- After: runtime declarativo y cancelable. + +**Recommendation strength**: **Strong** + +**Dependencies / sequencing** + +- En paralelo con candidato 2. + +**Documentation follow-ups** + +- `docs/ARCHITECTURE.md` (Codex RPC seam). + +--- + +### 8) Add Effect Schema at HTTP boundaries to replace permissive body parsing + +**Files** + +- `apps/local-server/src/jobRoutes.ts` +- `apps/local-server/src/settingsRoutes.ts` +- `apps/local-server/src/outputSourceRoutes.ts` +- `apps/local-server/src/projectRoutes.ts` +- `apps/local-server/src/librariesRoutes.ts` + +**Problem** + +Hay varios endpoints que parsean JSON con `c.req.json().catch(() => ({}))`, lo que degrada semántica de error y genera validación parcial. + +**Solution** + +Introducir `Schema.decodeUnknown` en boundaries HTTP para normalizar: + +- parse/validation errors consistentes; +- payloads discriminados por route; +- mensajes de error más accionables. + +**Benefits** + +- **Locality**: validación de entrada concentrada por seam. +- **Leverage**: menos comportamiento implícito en handlers. + +**Before / After** + +- Before: parse tolerante + errores heterogéneos. +- After: decoding explícito y uniforme. + +**Recommendation strength**: **Strong** + +**Dependencies / sequencing** + +- Puede iniciarse en una sola ruta (tracer bullet). + +**Documentation follow-ups** + +- Agregar guideline en `docs/DEV_GUIDE.md` o ADR ligera de input validation. + +--- + +### 9) Introduce Layer-based DI façade for `localStudioService` network adapter + +**Files** + +- `services/localStudioService.ts` + +**Problem** + +El módulo usa un helper `request` global, sin composición por entorno ni tipos de error diferenciados. + +**Solution** + +Crear módulo de cliente HTTP effectful (interno) con Layer para: + +- configuración de base URL; +- mapeo consistente de errores HTTP/red; +- inyección en tests sin mocks ad hoc. + +**Benefits** + +- **Leverage**: interfaz de API local más sólida para UI. +- **Locality**: comportamiento HTTP concentrado. + +**Before / After** + +- Before: helper estático y excepciones `Error` genéricas. +- After: servicio inyectable con errores tipados. + +**Recommendation strength**: **Worth exploring** + +**Dependencies / sequencing** + +- Después de validar impacto en hooks UI. + +**Documentation follow-ups** + +- `docs/ARCHITECTURE.md` (`services/localStudioService.ts`). + +--- + +### 10) Deepen queue orchestration on UI side only after backend runtime stabilization + +**Files** + +- `hooks/useQueueManager.ts` + +**Problem** + +Hook con coordinación de timers, abort controllers y estado de jobs; aún correcto, pero con complejidad creciente. + +**Solution** + +Adoptar Effect en UI sólo para la parte de orquestación (si hace falta), manteniendo React state como interfaz principal. + +**Benefits** + +- **Locality**: reduce ramas de estado/abort en el hook. +- **Leverage**: mejor trazabilidad de transiciones de cola. + +**Before / After** + +- Before: timer/abort logic manual en hook React. +- After: orquestación declarativa detrás del mismo hook público. + +**Recommendation strength**: **Speculative** + +**Dependencies / sequencing** + +- Hacer al final; primero backend y scripts. + +**Documentation follow-ups** + +- `docs/TECHNICAL_DEBT.md` (si se acepta). + +--- + +### 11) Migrate long-running generation scripts to Effect runtime utilities + +**Files** + +- `scripts/generate-style-defaults.ts` +- `scripts/style-default-utils.ts` +- `scripts/evaluate-recipe-prompts-live.ts` + +**Problem** + +Scripts con polling/retry paralelo manual, manejo de fallos parcial y persistencia de reporte distribuida. + +**Solution** + +Usar Effect en scripts para: + +- retries/timeout estándar; +- concurrencia limitada declarativa; +- logging/metrics de ejecución homogéneos. + +**Benefits** + +- **Leverage**: scripts más robustos y mantenibles. +- **Locality**: reduce duplicación entre scripts de tooling. + +**Before / After** + +- Before: loops manuales y sleeps distribuidos. +- After: políticas compartidas, mejor visibilidad de ejecuciones. + +**Recommendation strength**: **Strong** + +**Dependencies / sequencing** + +- Puede arrancar en un script piloto (quick win seguro). + +**Documentation follow-ups** + +- `docs/TOOLING.md` y comandos de validación. + +--- + +### 12) Improve local Codex session reader with typed fallback causes + +**Files** + +- `apps/local-server/src/codex/localCodexSession.ts` + +**Problem** + +Fallbacks y errores de sesión se resuelven correctamente pero en base a `catch(() => null)` y errores string. + +**Solution** + +Tipar causas esperadas (socket, auth mode, rate limit endpoint, parse) con Effect error channel para reportes más accionables. + +**Benefits** + +- **Locality**: mejora diagnóstico de `Studio Readiness` sin ampliar interfaces. +- **Leverage**: onboarding/debug más claros. + +**Before / After** + +- Before: fallback correcto pero poco semántico. +- After: catálogo de causas legible para usuario y logs. + +**Recommendation strength**: **Worth exploring** + +**Dependencies / sequencing** + +- Paralelo a candidato 7. + +**Documentation follow-ups** + +- `docs/ARCHITECTURE.md` (Local Codex Session). + +## Quick wins (1-2 días) + +1. Candidato 3 (`externalProviderResults.ts`) como piloto de retry/timeout con Effect. +2. Candidato 8 en una ruta (`jobRoutes.ts`) para validar Schema-first boundaries. +3. Candidato 11 en `scripts/evaluate-recipe-prompts-live.ts` (polling/retries/logging). + +## Medium initiatives (1-2 semanas) + +1. Candidato 1 + 2 + 7 como paquete runtime Codex. +2. Candidato 4 para endurecer SSE end-to-end (`/api/events` + `studioEventSource`). +3. Candidato 6 para cerrar ciclo de supervisión de `codex app-server`. + +## Risks and constraints + +- **Curva de aprendizaje**: Effect aumenta calidad, pero exige disciplina (errores tipados, Layers, Scope). +- **Costo de migración**: si se toca UI antes de backend, sube complejidad accidental. +- **Bundle/UI**: evitar introducir runtime Effect en superficies React livianas sin necesidad (mantener prioridad backend/tooling). +- **Interoperabilidad Bun/Vite**: iniciar en `apps/local-server` y scripts (Bun-friendly), no en hot paths del bundle UI. + +## Where NOT to apply Effect (anti-patterns) + +- Módulos puros y estables con alta **depth** actual, por ejemplo: + - `lib/studioCatalogView.ts` + - `lib/studioCatalogImageAdapter.ts` + - validadores de catálogo ya simples y testables. +- Helpers de formato sin I/O ni concurrencia. +- Componentes React de presentación (sin orquestación async compleja). + +## Suggested execution order + +1. **Tracer bullet**: candidato 3 (retry provider) + candidato 8 (una ruta con Schema). +2. Migración runtime core: candidatos 1, 2, 7. +3. Robustez de lifecycle: candidato 6. +4. Stream/readiness: candidatos 4 y 12. +5. Tooling hardening: candidato 11. +6. Revaluar UI queue (candidato 10) sólo si persiste dolor real. + +## Evidence sources used + +- Repo seams y vocabulario: `CONTEXT.md`, `docs/ARCHITECTURE.md`, ADRs 0013, 0014, 0018, 0021, 0022, 0029. +- Hotspots: `worker.ts`, `codex/turn.ts`, `codex/rpcClient.ts`, `eventStreamRoutes.ts`, `studioEventSource.ts`, `localGenerationRun.ts`, `externalProviderResults.ts`, `processSupervisor.ts`, `generate-style-defaults.ts`, `jobRoutes.ts`. +- Effect docs: quickstart, pipelines, layers, retrying, timing-out, schema basic usage, logging, y monorepo oficial. diff --git a/docs/assets/screenshots/recipes-view.png b/docs/assets/screenshots/recipes-view.png new file mode 100644 index 0000000000000000000000000000000000000000..e7066ba372bfa01e212191764279658d367045e8 GIT binary patch literal 905145 zcmZs@by!r<_cy9^BMnlD0@8|f4I!dZA}UCS3Q9}o&?$_Ff^>)EAVYV9NJ`hxNH+t_ zF!OG{zqrqR?>&DY&pZsA*=O&yKDCT^uBApvc9ZPdwQH15pFDbT?HbAZYu5;RN$|ic zH@q42!Pjd~A1S@`NZB?f&R|y^Q*hq%7TL>1ap3Xggwf(%rzH_5AqmXzH^UdCS5;EI z&OoT@HzT4Nn-%U)xR|eZ`vytCmuuIRsfFZk-;a^{$+VkCPh`hi25B!gRllCtg{Im+y49wPlsG)d>np)}(R?{_i!- zzOBateh*)k4C?)MjE?k>6XN3xEF?rVIk+<6<+azn|IZ)Uq5jVe#4;9o&a_=XMU`jy8ewAtmAJ)m-YP_MQ|5ntueIhH)vkRQB87?O@HAho#8AZ zdo?B@IHEeUYvUGR`qWXDHixuGGfFJLTe7mU((P}1RwJG}Lvm8mGw~EN;*FR1uHtSd zU($zJlg-tf4RmFx6kJ_h?VRXoHH*s2WAh8ig4w?qGU;bVQ+dpMSovAq^#jfW)`}bw z$;tRzGHddZBx+nG@n(7|bmsbY%c!u9vF~5uF*nZBO^3QAs*@OY*+>Ut+JeZ73$J>dk$g+i zT$8Uizqn!f_?CZGDx`y5kt{c{(Q{yC^c&ON|&CLwsjPi1t>cUL@jPjhhf~?f*HjI?K&jk%~ zV-qHC(q*Rp&;a+~x?SE)byKWIyF|ZyX}5mQq}fj%?0u7b z8GkbM?*_%Qubw@goS5Dz7{!`_omGNg-xCXugg?1HWjnq*^u|SO0Z)92)Hro3V|-ej zYj~8xFseK$BlcRlQU?3=bpOa1LkDYXYpX(QE3igYcC2^R1SAf#3@u;0EgE{u)il}W zH3hOuRO@!7g>YU~(%> zN=lNj61iUQ{IaB_>h3@UqsX!f`cYl&=j47D`ZArMW}2rR?xptzmB^ecw0&b9F>d0#X=0ypdUTys;r+t2jH zIZxxbUOX-$eT^H*Rc~#}vcyMgogJzC%2bq_EP^rwIU&QLj0{9o0#2toX!-o8T-0Dz zLpa;k3q@k<9rhci%d}C2{>Fdw^}kWg>ciDOy>U@o!22$HkL~4|NO?FuA}QmU;ZhSH zw~?%(Hvv^igvm`hhxQ=VF?^fXY%1&zeZ<8Mb4tpkUUojilVl|Kb+{>4#@UOYl) z9x@)aL%q&ENHMK-^QMdgvdM0?#);73f!p?^=TWgPT@+Px&)ypCjJlv8-tB4qcM5R` zILV{VCK|WhHai;!Cip3B6hEN^k+)ewi0X@QXFfqenOnhzNW1{YkL9OdA1S(uS9T=A zoXUPRPOB5ZU1~n`E&ptrR-e8B|Ftw>`(5nttfbr;(bP*IkmtN!DkRiDQ)MTj|MJ~4 zn!KF6yfyG#TZ4#$_6mgYFVQGs@+hj$RMsMVTf*%Ntw9&Z8#CEzsF?FH2vwUbxMjF` zdp9Sv!RMSTsPZ*k)ayqfgD*=;`k^pe!}^e`OZDVdT(6>XaO1Bx1fzy&X68Ch9Un2N zAGc>%di^(*bL|}Xnc=0SrM@WNMSjtkqaC-hNVm``{fdJlBQb-iwjlx=>ha8> zbhZxX)I`Z-A_78!FCMMv>op~hPmRyVn>UM;7r2GLHg6U$hlj&*>ZP3qMI%!UoTfl0 zV=p&Ibv1uMuxXK~ArqMHENJ;B+7)iC8~(wspztwAg*apMIGe!LMpW^#wA76t|0ZrT zPQfPioK29!t?+DftO#s5{8mGLX=MKxQ?_rjmtU}LJRa8{|eA)0bT_Uzr-K~CGH;R(qSup9|OV}Ca=F;yAE!o=h zdA}nBTd#7dd8nKlc{+IdkBz4IU3>hA`@qg~{^=?^L;AVrR?VV(w9)~_jIDvxZ;f%K`rC-2-a75VPUMiE?0%R40_>z(=|fAFCR4K4Ys36Fj)Csme~Kj@b~Cg$+i@3{jBc}-{gWs>bX)WdO` z+a2jE>2g1#oIn#=@{UjE#`w+cl^-l(mv7pi7KV$jF@lC=xqCvdvq^L3vA^o=jQE1y zoZ0lJ2Kx697m{sNmDPOu0%5Aes?t6UZveQ93P8%1qe#)*k%93+N=&{@e%o*cJ*=$O znPtrRcJUjvC}gsv!^MsRwEW}PZ(-v)zjawA`$_m>VG&mC`Fa|e8_}p>_&HK0nx*OxN>)^mmv?H2yf8uS>Ytk0Pww|FhH?6Cm#6z;&ub--KEC-{ zC+n#w{8?M2O0y@UlNm}XFFT-^<#=glj`aKHBP>=a#(L{%j74H{mR+sgoVZ$6`F53Y-^A6wOC*|^ zJBrRX`Kr~4xD=Z zofLU=?*mJ>S3gS(D!m3$r1gvr`rh@$XPym0vFa%tj}PX(_sWdx-8M%XC2S`>4mz2T zPHKKw1@#_z{3gbp_7Hx7F5BE@?$@6w-X3!$P~*WXjxJD6@x)hc#j#lU^r`VV zUAAzM5c59wLwrxly=N28-`F_>PVAXlPpan{3qCPb2W3qNxv3G{>^7GShMejaE?Si` ziI$E%_6iXs+h6o`M9}HX2~j!jQQO`1ILL=wZfHu*g~xwJUhbk~cMx<>R5)*Hz3)#F zx1X)q^I30DWRGrHlyj=VYfiS{9;8ryPcB>Q<$WxO@A#oPD3ix z7HNYrTif9H+RoM-q~kE|Xn4ZC@XwWcMNd(?@}qm3Z`|EdB-wvQD)?Rms>&U2{0&Re zuq8(nP!wk7f=SUlFzmi6qxzBljjk4oM~F1J91#766*w(9D}`Yg{&9(o%u zR~u&Of~~Y{?|~GG3wxSr+E2-D#o-6HJ1=fWs|2DzP*{0#o zx@bifEXHfjyv7c)4@(*}oPAGxNX_!VVuC^7^+F8&uG#Uw;R^RX1?!!Hvc2QAmlj&l*>_F?LNkutpCvh(!6)80ql03ahequ$u?Ppdb8=k$vAeJa-(qKK`ApJ$*s~sxXZgDC>oiX(`_|fkmvOzTqBBHE4Tk4Zq-)lG;kCrs4{}AULrIY;_R2}Gz=B=%* ziQ+euukc^S;^a!XUIu&3AFPd7Gn5$BvXwl`R)f8%{OFk=Yz$Uos_`_bs!#aN0WwcB zdERSFli}0$1T)Qwo0L;#`Q!7)cEc!miY@N!+lw)D4_`JEIkcSS>XYnD4ZcV^sY{m?sS_&B${ zdCD@&G=`{JTEVM581+*(Un{w4ua`GHu!`W%X;E3zMLqJ8@oTmwGslCt4~ZIA3)kok zb6V!9EbV=p?)#pEHKI<`5Azn25ZasbvM-c5wj?0uk;~>Nso+xU(5voqxv4By9WV91 z_YcAC0g50`Pd+pK-%3cNVxGD$&RN0E$ml#lZCw6X`H>)kOtAj6$xi(>73TNiu@}xc zW_}-;@X1iw^kw5-Q~m2=eJm)s`5IH+7srX{UD?Z6HI5sjRdzF=BjF!-=ck6MjJ4DjHF?UCus9I~bdN&{o1|FS)&TnaFV2%$ zQ1Drcmh6tpVJ|OkKMc}=1m$G0qz3U&u3_iRdizdK4q z*kd68ooS%+A?~TO^Wva_aP5l4N0IC6Ds=RF&B)Xquv4BORAyZ#QmrGy;Yl5miJ#e| zf9aK(L`O%r2}HCxur0vIMH=9M0{@t%)0R`hH)BtC8F>oO9t*^;0WxKk=IJ(GeCPhs zj|Y|=-*2mg%At$VGVNcv)tmN1bXyK04#OZu;-6OTA%^^qKCGWiAosgi9Tb%Tpsk7! z4o>VS&a)6_kr8YDyfxp*i{Kb~AA}o{v0#1zo`1lEx@@LE>YQYKgr3Z{mbH(*@f(EB zXV&WOmVlu3{^Ul_BcA`3ui#&p6@1Qq=C3s~OD*`baQb|yzV|2b;d;EGeZaRN6e6fX zUM31zGZR|05!iK&kmhp|!7uqbv%n(Uv7-Jrn8JnQSmF1XYKNHy&pQU1UMGh!x4L{W zHf65JIr?2>rp!V?0r`{5Yu^g828Q{S8xDV~*Y7F38_Ai2oGn~(tIr!(ZD&W&@ji_A z#GZS)sEZA^8r2&0$)jdHdu~@~$sLf_)CO1kJ1%Iojh8TgB%dzN_z``(%;TNIzMF=N3G# z6yiv~3E2}oK3H6beC4SrSvR1uG6GX&l~Qy$}-8VO_N*kv{tKmzbKvrJYjp zLO!8D;0(Xr$hlwK+UR^ua*#@+Fqd0TPmk5vMj^TXz36#_WHH103h@DjTap89hE=vK zH|2;Zn1`wz{ELD#lO-I}+QTg?z0G*hH>FnLWM_Zm@Y01+;MR-(!ve=@48%GOIb zwuq77xnGoo;#6 zs?RUS$o_O*7uFwPm#u z-D$aN5eC$?%ViiOR5T+q)BLI^af&o!J_(fe2niZ6S+JPd`Te&hOV4EN0&t~iaQxT& z!ygZQ&a|wRq<0X1h3o!hmHF=2c#uAOT(;bJl;_C(Yq3}LLG*Pz<{I-3MK8?DvSk!? z1@S`mtb3EQIlw56+0e87)Pq{rlTC)_CoQxQoEEw9p^>Li5{V5sthaUPzp)~e>|Vpv z?CkNhP1KN2;NVGFGnR}p^mT3!wOjOqD5mCLpK^=-#NJVx7+*tK0o+yYxOlXAo4o&} zBoeb;F{prBiEBpK&l#MQkiPCX-XLBa2#D3%Qcmd(IsNMC4jC_ThXsb&M<-XIKhwbo zqV6(3uy_P;JLpo4Z+mGWQLxSBZf$>`B99VZNTGJR!sWD08N+-w^t{iMf2+r?dX9hl zUYld!+Q*zUzq9H2%@{c?!<(Eb0p;8c0 zcH#;ay%&Tz4-+u)ak_2Ne6b113a7`)qqob-jB05Mi5SEa72k>r;J5(_#GOnq!C3@N zo0bBIIi!|9H~4bztI#=RBbwfm;NMiQbL-!W0I+|2aC~(1CMQ|3e!0cz_SBN3>kg=I zVVrK0=1Z(JY~xJwrYw7bhwS;vlWwEnpGBt$6E|{Dv)rad?e_D$I3H?CI5O zgYuGAGgT#C3*N6wKGjPTrAh4ggN7aOw?9G9(`I*;cQ_b-Eb?g_kMEWta&xY}`o@F7 zt%&;Xdv1pf?W-pUU!GPsQ^u69M44ii6wupuh_uD18c(NfBtwBVzM&1>)Fw7u$Wo0et>2YF{0jdvnsaq1A(%yKz?H~KTlSwiAbn8` z)h+si;8y{JZDk_`>=J9(6C}rbOqOC!72&>1DScMnxjw~_`d~`40-vf3Fvc11VA0^rW2Os_koR8!6rwcHY{IOTnL777bZRLNrZvV$uX#XaUg04U zjOzbkp+;`~m(V))XI&dO=fyv9jh5p{ReK&g8-&pF#j=T#9`r!%(m^xzl&jTEztbJm z+*zYQ$KGHXv}@Q3nweMXwqdwue6dmHfc!O<&LgoMZ8MHT#pCL?+&v}R^D$@J?aiOK zc>H#16PhX(DjQ>@_678eo+B$C{z4f$3m`c1K z&Gj_z`Fw>FzViHFLvH7Fg)2-<%X&MKH_c;Y$}0Vi*4ki#`*N4}UL(403wv+=p6bIt zK;}UQ;1d^mi%UqDIQPE-jQSsVZKm9^dl8n7S+VHhEI7*6hF(lo13U?!Qq_~%SB~Hj zFFw9E{bWdg2@*tJmhO8xoGGo&|PzFsM3!v~GQHT`nC{JD5RO7GnZRuY5{366V`jtf(# zE2s~@p~+)y{iX?nU9vCSZzbjg8i`ZSm)ijE@{LeAGk026dZ)z zMwG%ROD`akTU$qdYoJ^DLVx|J9!QmSm~S`-ggHq<2m&+{_@a%e>|c`5UO#Y79_z9W z+bLK?kD)k}o{O(PQ}<^UUcY7LM#n|Wj04U_1OF92Pn>!CVg9GgTmoDK zk^x^h&AxW^qMZtT984N#-*jFV{sjm&+3xe6=wY=zp)VGsXeox7vc&u5)vC?6^`utn?)ja(}?RwK|CqIZIHkCC*Q?nHb!KW zU2ITErXH!D?ss|NyY?{M6Es}M4_x|)+Cp7|?>g+9EqNM=fp@5K>w;w?huZfSeOro-WaYg7VpgZbmR0Z=m_W0Ts08?3EXzZqoSu1KP?N+dbd?W zA0A1y++!|Z*BHDz^lr1%{M5fQ%CzxpiQEgd+xX!x&&i*VL6-z$w+EDuQxmI&;eszU z)Kv@4L6x?5GV(of_!chlnOp=TLAfyTqXj5WhpBr$?NHx=l$2>6EzA`HWyAn6XIWabI!YXn0*9v;u(9pU2JJb)e zhtm3?;5s=;L!5rWB9_SJGhIG+acqS7(>7k2ppp1%f*R`K1mlo*tlkF#9lQ9);~J-B z=zb9SFxjWQMjWxHWtS>w5zGq7kjrDs=xEu~dGG1##BAYm!T${4`6_LVrI zYk1Q!gtL+7I}VNZQL>~`FIGRDw+wjC+YH_N^jA~zipN>~k-8?t&3u^=MAaJI-F&$t zQerKVxO;7ft7eXdh5|n$aV60ztroP1;g7WKZ!LSVG^CD6bAa{4Xp>Gxh8HTDpwL&L%2cOtbbU!$D1?k_phnR}?ItK1T>r~msl zaNNN5RS+??!oQ55K>&b2-9dRcfnD1*HW*Aw=lB4WO{C9ys{0T@;JMFkttalR8*;y8 zSdH^?YB0^eTL0JEUfd-T=Zl_M9~K+lc3O(y&9b|8M`6DOKR@-f6J8HR)vxaXcqFws z=Qd+!UE3O7zf(1nn_zM!Gpck3pa%vOWUY3l8$3Bt`tIA4G&E;%+T-AXZ0F^50nKTz z3H=T9)RXh|^pIzn-YAZ?E%Zn(r&jXojf&bAs;uyYTVU~E{gzma)lkF1#a7vN#o%Y4 z3%dZ!8YO)NGI}$^IL7j|n`@n|mOIb*mIbj(QG-!1to)(2b?b!I6`os9l%+vX1ct0hZW zw(J%FPgBmMVJ@&>VA--W7bniNLmqVjjYhC}wuR1hBKK>4l_5LiW!Nb{z-DTii z6*64v``QRgIzMKoE-^Y>jKkI7oSFRWVC|=njjRf{RGANbp_&yA0%xynJe`2WeFEAB zI2BF%ZF{72J%mg?oc+w`y=F*~MxNFjD{hgajX}={+d=24J_DAwv}S2SYLv~XLkER~ z!k)Z6KU~dE$G+>?YiILY41vgiO&9BR)GtYh22uqEvkrMMfNqmjI3B|1O*=c+)jALK z5W#@5&j>;na+iRIVOB+;XYHKA28erY=A3N6X>Pu>{zSu zKhXYx&w=V}Tpbrr1ousUpqHp|I^%Gm%48fE&3VXqRMLz&Odm`|BPbepSCDgMTri^V z4-+3j_2B?vWR$Nop?7)pPTAx^${m~AVF8Y|K6 z%hQd&#H?&oTsZI%(tQqllO38oS9)TtGl6kXT8}w2HKP~HUEtUarDV0Q+u%7-?E&;z z((X_q3Wx!hK>pP!muk^Djh39R`Ip6+`sp{{$;nAg!bLX(OH=a5y0A5Nw}TFX+O9Z? zlu9dlwBUEV)ENboEOD&`yO}B=A$_Z`#O{{X$IN}mH|BqTm60G?u?ojLiR7W{sSiZ{ zWYFZ%KRsCHl|O#&w<)s}ZVBGJ+D?rOIt>AUF~e!;i%N_S?$RCUxn9C#^23k{!ZjKH z7{&o3y5HQJlbPvUZ9nJa)a+G>W+!@Y*88>k`S~T9y5Lh>#C4-=-JQkb(-H??a<;zT zD%A49>YNRM?RcdO!HooLoLUgjE@@NMo@$OtnM4?hNk}MQ&z9Q^Dl9t5=(}N@(6Lu~ ziz_k?^KytS|0{2~J`lKv`iO`6MG>mpj=+lq=pkOwn-t)%w_L@1*5a*UUSg&6mzhuJ zhMGpdPoHwTpn^JajXQG;VyRl~cqt`SIzzwASjuyrab=R>^6ENWo*x0b3vP=dUN_ z3YdDoZxybOX0Pq8fsZow`}rX)srSU;BB4rgy>}!py$9R#wSOqA!pnTBs!C5o!q)!O zuRpMsH@gl{&N`smp!68pkpq{jxppn7sN=(pJ8Chzv$aQHqhx+&u_p1nJehbuAm;)2 z6NXgbpaa@`)+qw0^L}rfyB<$mXlUr5?`}?47p7b0Xsth07RBOpxt5F*{V=jZN_S`y zKb-Mt&J`Ls-USpw0mQdpX+b5+UeH5jeJ@;w=2G;Z&u%DUx>DCc3Sj+H?Q4kBWhWEU ztjF?6e!Ab<@9zTpYIb%))9N>GZbC1&1Y+gaQ=D}$f2?BcKYpaeYTef$K6&?bG@Rxmz*2zs0lpz-Lp$?!L_*;~0EV|q#7cCEl+KOy;d?x+jlI3! z>h}{YhH?_F2fY~<49+BFJ4`{f}-Hkp$OLLfErJ#kD42`31L37bS7(v z&LKn^k|!Jjv&$&WnKw(wWUlTR9TYk-_$9V5VSt?K+b)gq9#^$4o3K0&E5uHZj z6XY^{Lqy@`0x4!Jf6ZYE{xj2XUF(n_q#NtC4lln`huW!JYhQ)UVK}W{QE)0W*i6`K zYW6SrFkMHa7Eta2%LvL~Ko8F7I%;~TIGdb7KN#%<<}#b}AFB?BS)?ux z-K-ywkI;{!Z@$viMV~FhDwkr7$nsM@{RVQ)dnrMs`W~S9MnZ<(D$k{4gs;U(aV*I4 z0RDU>pWA~l3IJLrlLvRd6G&768TckHQ~K@ZsIOxM`wqAJ{DvR;6L568qW~+7z7D4> zQmHE>xaujE=Z6eS6|^Usq*%plk|dQjwuU>U%~&F_tIot>&J*`YQGE^QH~#gJ=-ql# zJ3Go5%%hoVFZDNKOwBr3p<0^y06YirlRCp8Og0Z&J2!$VE@( zZz|R*y4=xLqnhe^AJ6MHnm8;zu$8zDyf;RuO}#!`|3+s`qNF(g_?P*?lIqej?d_~{ z0?DjbJ?+#GuYW^}9_)qJ7QF>}C5#PxVMO`nVqX>@v-)h}AGd!zSmxDE3)EcAhRuhq z+>gxeu%Gj~LTj&Yw4300ZuP8nbv+gv$W&5&qbcLQ`*~@tKSH~r9jlVxW@v&{nhKxi-0D{EMdX9aNtpdcRi@^1aToNl2O3z&6MgNF%k4!ms(?mb(s zoL~f`+V^>*wdLv8(9nS}woiAlzGsW|lD7KIW~~+d{hGRY8bu`~Q8D+n*-~Z1M@L69 zC|k}&e?kmQ+ZrnOe)T<}p!4Xuiuy=`d}p--1TjWx%ESB#bj0#S!cx{kGEhR%?VMPD ziDr;{sHm!nZ@Q!j2j&7v|JAlg5w~GHc^6nz(2Tp>GZ!I0(-av#n;P`10uHLe(VvHU z#;y!W1uzKq40KXw0I$rLh5ju-?l_t?ao|bxn+jd~^u-mV zzuHw>E%1bIG4Yg!74nS}IUl`T1=^}>!wb0UodoW71C9#b8?8+ouzfp>El~D0*7E)- z5{greVzirnS;|cpulkdun(c)SO1mfTdbAb#ywn@O8&mf90{iBgNcDet`YCyb-cG^PI} zbuR_Cq0Ncju5cD<*!Kp6?R31v5FnL=ASxOCb5YPW+G5ye5(G&-61D(4W|8yg38hRI zG&r_stxxy6V99gPMPeyjdO$qK$Q)7Lr zKj2#WQ`AKo=_O+s1@#?Ir>yjPyG}Op(<4r456*iq=Yu668cd>DX0%j`(+YxExZ?Qn8@9cyk zWXZ24HCwqznftEVd38>!6D|f{c=xjkwxx9X$~Shk!T!jghF}1QZRitcn}T3H?6}mB z@9>g5fhqRDe)jI{M@~5@T+E>JVE^@~WB;{Cpgqak&#r(vxdwt3t?amiW%qVcR;$&2 z;gfQ&OO1dRoeh&(ssT>bBb)JsR+R)1(>lM)Zhj4(xH(H$WZ+$!k=5CR-xjb=Z5M}iwBc7>c$s4JfO`x_sybaUTR zJ7vV5HGW$CEl}1#J3&@+v*k;Es@pV3?S;I4YGjq|dIUg~&@SERVtZJTp)FAUK*h{CqOA@jG;!?H>O*4WjIStd>i=W<6%aUH z+WJ@ro_>{TrOkAj>Za^?J97WibEng5p9^?d>+Bjq9?A4mFE=rp@$JX;DMi7Y6rk2}psTh#i0&5=jHQ=2Nzl9(>gSiY1zj6u`ND*n? z_CW83lblHr#d`TW61r`T?}z~N#XO8XwBEcX=zMO^PcLOL^rx}+PGyA^#B(DT67o^i zIA3cWyYY*CrW%Sko0D2ZNw3`y^TP~&SXZ(AgKq8yl-G0pY5lJIthw{vC(bW6Tbl~L z0|^QzC%VCBZTJ;?7jvd=X>xf@&X+~bCLU`L>ZQ&!{0k1>@t;9zJ7Rt~zNmDkL0J|F z`;}GLypf*igu~>5k@L|JYS5%M=b0qgZWFqcPxo{hY-an0gR-*5Q~o6FuIRpWYQb&0 zqjd-jM==Y89 zUjp~i6Ja*_(WY){zkPh%fe|B7jKak~@K@Nv1dC@wLx~o1PC;blgRv_mTX^!hm9SBb z;tvftyNTcVph(@nujImK3Qtgb9yEv8&a&0JEz^?iQ5d2O17DVV~9tW9KNUgW(brxjfiN$oI4L!J@_~}>3iDC zdg|2fv^zUxtrigzLVf@+MPXGHRWvu?sV%#(oy|lmj{JeahlzhcLa=oMZY`+f%yiQd zPZzxq#H}rNFogI(tdUY9E0rEA^yYAUwpP0;GcAS=V!#JN20>MHh^X+WO+_I`g;W{{ z7SMd?L6qq%_#+*PVK)sC)-(e?owfU$yNVc-YI}CAtg~gH)bnCnQa~9pnO*v>XYv%) zC=G^8Jm8#3FU7Zcc^G#nCUZPzI6iIv_@HA#Ld|_8Q7KV#6HAeZ<#u#bO+Y^WSV-L( za~&LJP4}kzihpObSD2FA6G%_mKki?Lib>R2on@@zOLBW3{|kVTg5)+c2p)aNPpz_4 zTXt_wcE5;r3sj+!CUCC=5{f(`W*Y=vYKW`7PCg>IGjuY6^Z>YIJAt;$#t}fQ&Y((U zH4>C9ceP129rQau(T2}O;ewQOp?|-|8>&JshGD`r3wX*rfirc-I(|lf{4_^oYJn|PP99GBHw$ChY zL769#fcCux+|C=sd+_#Ih0wq8_nevsGXT+y|Q^=9_n3TTq4$kgWsSdcq~PvLk>FP9Chm%VC%F^ z8U>34(XrOIS}Ezo;{7qSA!nkAPBV7ZJk8qPCUPztBdWHCW|xsW>^+hdg>d=jkS4J7 zmx+UH@<1wH@NwbV=Ek$;1F8Zz2$>&S^mEhj%BSIEKz`wPFDiZUFB@b`mVnNzaB)|d z5b^UWTXJRzmiVMXzjPpV%PCxmoYjRQ!^>%lWg5?sb#C9rSO#Fjf24FgNT==+-jw~2 z-zmRc&lb};AbulzP@FoZv718|g~YW0ZasL02KMMQz*px>QRgc7Kw%C8PWoZb9a7Oa zd)W4P32P47>`+;mLkp?wpF$dra-wx0`#!D|6Ct#2Z+~@mx-;`HGSjE!oiKvdaTDr4Y1dxLaw?(Rj*F!jcql@`ZE zQQ44yL%Of)NZGxQXg5yZe(B@iBb=Cb%iF2}0j3^{ggt2P9atal!S~*NkQ;6zh*~&C^6*W&iZ_c(=K)WcDV|zf^7(G(>`D^c7^k*mu|f7_UG3y#mw`ioYrdyy2lw zn?LjC9owU$7#n>6-N_QC+7W0o39N4cyuF&!bA{#!1EC3gE4F3hvOt~}vy!$|Dvi#! z7M0%XGF3Q-p-p^_6T|o0-X4zW5UY5ru9(|*%EQ2zf+L7afMf!@b$QE90?5jkhk;;a z<&sINAYE3v*S|#^VF1q;fJo=Own{+ZcOsT@+g%8Th}n*34tI* zmU|-CfHwaFdoi-K-88Zx3}Y+fa1ZV%z5cd?_?xEnG~FS$!xns$4(A?|@v&vM#xG^U zvu!I_Nbo&mjP9!2WXR6FHsw2l+@K}UcU-%v7u>j#jHFO#*P0E#Sv)O2J;e8RwP$my ztQjw6*}bPa_ZieTg6L~e8TRBc@tMk`dZgls!`}r0_`ANfoKsp}i-(UjI!*A-&mCm* zUbA>V-NIvfd{ww|RT8(kzt^e~E4kn*li`d9W~|Qy+TC7}N0CfYSqwYfw;Ip|dX#6Y zS%RsbCtv!HTaFV=t8{yI$^)LbLH3NhwD&iw!?R4Z?55z{f0+Fh)w>9pjNq2tRIa(& z=?(djU_)x9WS;=lc=<8eG(K<4N_C^aW` z(h|0)u$Cll1LA$jb&UkUkrFlhwC}$0M;39?gfulo$-tfuU%AByw}#^p_04C&9JgKs z0H}Ki&d#9J@-eU=B&`kFOBR1ktN#uL_8RckjJz^Q~*#@|XoMZR$YJ#Z& zD0YRv5^~572uTf0_CRQA`Kl_) z`XyygJ(RP-aS;y@MH0pxm~~3)sPLGt&E&=Fm%C=dDG%A)c@p6}hrq`j;6DadWYA~rAuw@nOZ(8M35ab98rRu^ zK6$%Y2`Yu{^t2x>&{>jqVe2vRwmSf9;GP7KXXd>B4c*q~n&m4kDY*)*s=+u?d*5D# zSb>~FyGOW@31$ZMc!wCD$5?)ou>T`F_HVwC80))JsruY42LhkYe@-5C8eIjw5vlsl zj5-BGFyQy-wy)XHFmbNvoYhSGWPH`GG=@&hHknFmVBUW|k#an&;ue^YKMut9uw2xm zXuQqoZ|&umHaiOkgFqqSL#u&cF~_SAliSq0I37(XRX_6iW7wkGyK6oKEsh{I=JX%?4y-&}d-SAzet=;c>!Uj{+J z-}ty#BakmBk_lBeBEIw}4GiBW8)j^s-gaC3{XOmW+l3Y-CR5BZhyrnSWI+UeGV|B9 z$1nzhXifMvfHY3UCybmYjNPxwhxL0!JDHeN@uOY<2ZxFSnZP8&S$GayzEkqaLPN|c zE#e$l8`}f2)ahW13Ha%?Air{cwC=t$4SaCld7q9q7-5qJ{ze2&v}kRi6f zh(F0FBQP{`-v`;`3qmx|7Ov2aeP;6hyJ75ZSCe5wT|q=aAbNN7!!o88aO)QsDx$c; zqM{;fMJ;XOuO*e5hb%HK9-Z6Veeu5c{V+M8NgC+eV8D~hCt(y&wGsJgv0yagmR~@Y zEnlMk`?`(zPlIAp+yku)zv}%Gg8H8mGVnW%K*{lEHxnwPvT^Wim^eVc^Y#$2p~5`F zj%m!@y+I*H6y8E6#9Cz*_?+enj4TPgSZ!VbaCPckg7MJGejBj8K}FW;yp%<}V+c6n zqg6f=p*j5u=GrhIxd3%)-@M`q0A&*wye{^F^2H>i%N*r6{dI%U`QZi!yl`XHEp1%V z9SPiRj)x&4K1yc+`Ar)C4vd_>^upugx$@B@&g!kcnJ<KG{QZ>V_TdR zOTCIh#JoRT2INX9EimS zLrVV38vGko(}%oov9Jl1XIMjIS2>`t>9Q?n9(Vyy%>$n+-Sh4R7J53LZXO88(xM*6 z$Q||o;g%%m*@pEN{|oHA(>e+aqqP{Dtu16l3AY*lg5b^vpMRf3*tff`Ut&PAljHAC z*=cpG+kpd^)6>7#-g~_9P)mAs1rXt=LCt-cy9D+}RS5bGnp>e$?af~n%9j~~PR&KH zulxK2{-t(GcctTEAdnt73z9m-uYk*v9CuB={ z3!k}{zHY7Ax}7P{V+_J{n(#Yg#f4cV|Dy$rjVV>)y)srHeh4!91(@_79+qrL-5~B= zMbiD6#xIV)N^?0SRIee3kNkS^GaJ!}2ujw5_plwd1isVyNNfGeoWMtGi=rD16zTeJ zik`BV?{I_6$!)l0nW})Na5>dOLAKBuuNCQ`T5|rqafK70qBw1Zi1@Fd^g!2Tk-*6_1cfyr@u8K4;1hgh z)kcMSh)~&!VPJ_nn9^o&;Wmq<7&6W8C{xpr5zLt!0&Io`!(WW{5k_7cx$R+ln98!$ z+8O(LC5GhMK&XX9XtWO z(i&j*&H=~k48M@$yPI!-^V2dDsg0^flCvRH9S$I%KSOHrruNe+2vJ{)ZRrX=(#2?N z5WFria0Lc+cB*AtaD;CD?g@ah&F5>$&*|%2HUd5GQ{Y=j5>xUjcl;cEz@F9GD%;jJO2gn}hfph>jO4=Pz9Jt3 zywMl?3acIi^e+V0XAb$BJNNL3C|a!UAvhJi?kTHwy{NTjnDbmurSS@Xz5oW={XoPy zW9-qni1hO3hnrhl+ERZQ<6%8$@)LtQTyXAMObb1WU=6QY zs+3Wf239b?gJ`Q;1;BJb9*&MqtGv~8ewSiYAH<`hs-Ga71BgCf39~?M?jp6F`ju;) zMoJzbi>*;@0vQVPZy=1etWoQ@7!}w?U~{yjoOo( zUoGd@2kEUSu63)PXD9^?-StPaE;MX}OZanQ7Kj5uQY#ANMSp{oDLLxWX^Th?eP!!* zRNuLZCV&Khsqe|F#Xa^NvWoZpG8;K@fT+QNpP$M84nUDF{08c(H-3hZ5N6S=ftpPzZFk^csx@Q!LEbV_5!P~UgjtD;Tnzrtb4+Enc8&t2vpzYMsfD>xCmiIY zeKSVJ9W#*4&5&Nw;mJ%2Go%ss+47_{b;j&}T+8+M21A4+^FWe>=SaIW3SG{Q>MZ^B$1yz=6bK zhp}>s_*JKg_yxvRh(S9k@JP1+K)5}O`YIeX^f{AD8M~cC$y~0%Lr1vyO=0<(0lqYG zjn%ZxwYi_yE_`x>^_5~pHqk29Lb}W%&6mzTR-M(-f(`}!mgNj`*eU-^}pwD zHH}l%vfs6jgT7?gVXjLA#%tX`LU;JIz-qCD_@Bgq;qk;+&vr24&T2ZrB>^&2EBvy@D zRjVy(1vNr!B{s2Q6h%>cQxrv8dz2PcZFM~Pe7?W$?>y%@&;8#!=Y4YSbKduT-Pd)! z#tquPnRKN~nT@>u0L}pqtxxb#QutIg?>W}LE6jSgNGbG$M<|kXlq9~{ADAT_;)iCG zyRi60ezwlS2#rj)bK&KH4sLm!O|ZXYO}U_%&3KU(Pi<2Mt50gh)3zl?(R@hLsWWrT zH$y@EEpUKoCOJt{>^rz}))&I|@G0bZ-T*s`l3}#hBtB%8;aK3KY^V1_|F`i^lehk( zMu*ejBpkd8JrG}^sw7deE)ZUjVBvL-lKvT7i0&5a&T({mtQ~@d`o8py7%Tmd()t2J z#yp9OC=;cQcLAh)t1F)QmtW(rRNPaN3fm!KVhi-p-I4x*Rq*e}1MMu;x3wmO?3O+( zHd|UcH`bIg9In3Sy$8~8lkrJbgx7ERbhAWGHj;*@)m{IC21-6Du3R`@A(#KFy)1hG7b z3QN|_Cy#9X>huD>Ght3-ghGqE?!W193DLYlz1q1~>$%d}M$*?GH%gN9_4TPOtm+BW zwbc^~4o4&O^_;6YwVv;f3|>Ce1%dA5Ex4Bk2{j3m+l8uGER4{?pImJ0ntpvBZVBI; z4!B2N#}+8zN`LiyB&2fsbJDGxi4JzBHT%z3?zTsS5)vsDOjz;0zrCYy&`)`PJ#~Q; zI+vD~NPOgMqIo}LVQ~>ACx_dkG)aE`^x=I;V0C?c+vB_Q1EjD*aAL+Bzkex-Bt9!1 zsc0Bc&X5$p&0TZv>*}q=_BcGL5Pn&hOEs`LAJ0G=!A~-fuzJH`9NENC1K}r?+I3>Y z!&7nZxd782TG$i%hf-N=caMFck(P!!cUe?+UtW+X1TBrn?c&Z;wA9RVBrgQVb}Y9& z%I;+~Nu`9)mc6Iwh+vkKl{#;0lOuVr{AgGz3JGryEe4YRfY!?Lhe)6CVXit9LZF5 z@l&eyh9!$6DpP4q4ST|)5X+noiI70C=bxCqGs%{gHJ1~<#3Neow?2tT(jd7CkmxWZ zqY(DH{_q!1k!^Q&xnA8~0Gkb}*=)X=NBe!fb=PH7z!YOyd6Gt--Kc6u$iLZ!KRcitDRU6LV<(Lx<{|dw48Ba*H{p z%x=xkdfjh_)vK*}Z|v)mAxaqg?;I%npuvnnlVC8FYp+o8CD{k(D_tL-`;$-5OgE3O zOuzj|@Q*FSFl??>+;S!{!wmJS5d+<>iyN$_Z^BAR&owyGX)yt3ORW<*DS|yMRr4~IJGQ5{p@BjCP5YHyIeD|<2zy<9LG!VV z;PH*SgCzGLkpp4YmKy*Hm(CB~z?U%(lgC5uyw4Gbj$gm}Zd;%+QY(H{ngplTS~D?Z zQGBOfe*ps~Rk|%9G2+`ZuD`*HkYT9xax0Xg>Ms&ax{> z)CNAj_FW9y9?xLoLh^a)AR{9+Mi}f%!2d3S9OxI`tx{sC3OCy2hc2C%;x~K48%4`6 ze0#n=cDZ~}M~!Hy`9WTT;%oecA7ebCLh@SG`@Dv5ysnUIlnGs9;O@1g}qNY7P;HJQ*WBEVP2)~?EoHB%AjZbvwC?Ix_~;@2|**MZ8bija9gvPvAek6F6bR~ zlBWOSrdF#%_LukJ0c1~aVa0A(wV+kxc-OTZ^Oo4?Nv9y`dkSKMU9vY5)?p;Q&N=Bx zzdzp)3SFfj?V$R8>s+{q@Z~e__f`MJ{XzZ3pS|XQ&X=Tk^q*0C{r@ng{?|avtcPTW zmHeIl74pACDwnw~-6s<5?Tr6*4@>?|`ESARwbFmuQca$6C{jpRAMmUGpUl2hg3v>9 z4EwL3nr8VYDZwPAn2XM@|6{xMKSP-Mf8N0BJ3B4^UneoZRrY^53ICbj|9AW$?U?`f zz#sQNR{EcbxwvGg{$B<6|9J=R+y9?H`#)oxJmOBy|Mw67_xV5H{r`WEEudPE0!_-& zDe4j!SZs#dMAMA@^NR^`BPC&Ka z5}aCxg}Y>K=QEir-jFdI;obqQV3|n}i_^i5K01$LJe=%v266=gsXEA9`3jm^#;8^}w*QqC(+0!Xj1=!~&ekBdJ+Ckx3^} z1qIo;0sJPDm%2h&yrgh@rQpnNphWU(vsA@`3g}imK~m%af^4=uj$DCA$97$8HO5~dV=n2BuW>#SZ?D#=*|s5RRJ-#Mff z7A0doiSg0GAcfGHgPc1kU&-!{@qL9xJg$|Jw_ga)QQz1X6{<6>hQ&4GLYb3t&0|$x|8CYb9(^-V(+R zD4t`b3Norx7bX~YnSW9Lg<^!VL1ek!JsAbayN5F zJ;1HGe7qZd(~GXb6FMw9T^lW>V+*Ywm-beF_>d>rG2Qo#xW5;n)6Zlub3`h~s*SO~ zcGvftv`RzxNl*xAfP;@Wk$q~mTxKERP=V^mXwb!n3mCbT?R4GgCB19s9G30iH7{Wn z1ti!!yVKs=8-3L!PD{AoZY2BCXMQ-St*?WPS zqconoXS1f>x?_<=5&JG30zVgHmI_9B;va)~V$jh9HV$dt8xyCBxzF8IRJWHzDfop< zjqjYr#+mMb0X&AB8F&lopQ4kaNo%tTZ^eZ3s#$q$QvltuEm5~u8=ggJ;DmEYMnGji zOqLA0XqVFcXu|5RckpcD{pX}O%L4btzoW6n_?cS{7B?Cy5uYn_N4#>DigMAMN2a_d zY+?pwnC==f!o-+o?qUMAFmWZb*{GJYUWmk9_^9v@ro;0|z-LH`@Q8RXYB4I0OY@8{ z4(gONV*d?&sw*UR_L;3NcRc%zx$id8MTXA@x73IYEE#>)W2F3KJU%OfUZl*2v&87| z=abFK%!>x*c5Q_HZ|H`@U`Xxq{oz`8?2=3N=tXwVTu~V^(Rs+NSnyTqheQ&8G{!zX zdwdw&CeUVokdG%M3eV|^nt!uog;4E_!p&58+A>EehW16@ya;4YI0)hY1|H{tuxqiS zhsro^P5y!UhVWEX(JXo5qoI6n{FRqtvF?Jdl%QKLWpN-(LFyRhLOZvCwprt&cbx#$ z#KN6i34os)nKZ^5sul^8Gjl9`ZQ!~HlB;Uvg@yRC*y-F@jqfh{l~LVh^YkKI*kJk6 zE*T9id0LZrs`J+zfqS$>gTAQTX^t*?HT}zKYBZ8%ay(dUtSi_wo&r&Mq+(`IaX2;I ziu@ALco$afo488dBh`U#w&e5q>wov?uLPz-gtIg7U!cM|IeX^d6TNY=ato=-RQF(X z@iWSM22WT~n${`Yb+j683G^)d4Ym}qufN}z2*$CSL}sSW2k|aV$<*{eWjYwT;VuB= zvN&t~NB+YTtSbGZ6_`UmkJ3u|4b6&8wcx3sWtu*Y)!x?ykAfPKcihV0pq{%K@MN+Z z%lxiMa{xi^7vgj)1u7YiQp-jkp4EST(ouH3rOH(0&fNNlxMHz*p2>}7LBa@ht zO!^*#W~}s`$~a#*HaM3ipuPwQxizHrg{-@z`kf7zS&xUP>dvWmETyOEge4~{m$rX8NOx)%>VKYwQ_uCj4-d__2qpVzGbF>UhYcUDO@}(W}F)a^3H1j z=M0cZx!xT#n{EuX`s+0!*puiNy69 ztG4BHdUtq1)(gWMmIs2Px}g;5BCHS6hsyw^kAL3Aqat-bWK*30my)o&8P z#KX)%yyj3rG~bM`E))U4n@CBQ3b-ijCpsrpw|Q%_$oqo8qd_si<(cu9I%4CsfrBV7 z^Q7f%e3@zE_aLjW%J=nWuRFDD34E9j_O@d0>Fl_D2U#tA6uK9OV*b3$$|#K_6no$x z?`_XD!U^UjuIp4>Q{y9IrU2(zjwknYf7{Z0>gv|gx7H|O=~-f;t!>WO6g07w1nm@l z+>~BEfDk6BM@b%R&UWUk^tia!&rJ%dJ4Tth$DK@3(XXz>3!gL21==q~$k^JS8QuAL zPYU_L*OHZ<>#p+B&mysm3wruhH61uvNh~TH-!ZV@v&~xc!SH#H0H*dw{ODFcE^|MZ#SJ(-U|wSAIGO*6pmzKH^E-$K@_(3Hq-_*_U3-OENGKQqk6*E7>~`f&jN+59s%tISo+Ffu`B25>RzM> z22E8by{pUaz|x~+69Cg^q5PIiR*Dz(R|Z1hj)Kk3*WTlE`GjHu6{bf}ou7-nTl!{1 z_aQf#=`CLRBpfuM_F>4M1iJc9=2NwE`zMA19XvL27;Y-RW6e;n&{$Sm@W?YLo?hipOd} z-x--!G?7svb(7@06^edYACDMi#qEwrV*b@m3R@dnc_k@#ZPB!8wHGSe@#TEnCY80! z9%EW9T7auIDF}hM^L}Pa~tCeWNJn)ZS{E^)D$?3sGRtjZ()PsST zpxL}SvM92%@8F_+Lx0EM(cNa`uG_)v=jN0eFSTVVe}dwLSCoHBanDQ*wJ@W zJ_*QH(Y-#j!Irml`o&KD{QhUQ!I*yOKNk1rEuK#LPTsp3H^8_GwD5$!$$R{k1{eL^ z6)5y3_MwiM)~>|!yh08yd#u%-OJ*l5hO#K+V%M#oHD?4>1KVaPgiL54Y7x3-S=mei z^WK@M3vOOYJQqjC+O-&j6r);&YLPRX zj#c<6aGwjNxbpyZcc!B0vF}F+B%>j+jgc3(0Q+W5U6BO8EZZEe^L8maU$gc3xtq0# zSp4ZqY%Lp0K3VC^fEslWpqDM8Hd^HYAOsq5n;cQAce{>*jSr6_rbyt_$bPjKy>6)k zLSrhLJLQ8|B(Bby z*kQnUgx1?(UlYXR)Y;o!))m_=sTV{!!ivC%2jJILu-s-q6oQA`#u z_mOqp^qHFV&Pvg9ffpHmT|?546sv4JdHU57nOEE#As;V2ZzL~b#xwDa=?3g5{iG$7 z@hCfym~tcSB&@idtHL|nscNVevYqoT6C^O_9@{ZfXlYgq9v-PH}1Xawe`h$u1Mc^F4rfzqo2yGNXr53p=Lp5X%DD zEKPX6*b_kjW}xiVxdWh{QgmtjYL_+%nW^_Wx2ArmuMO{@xAY459M9J0)%>%=_#;QN zJik@~C3}Z8PM&pOiHf+%$NkJxq1r|0!7aWejuqi zLmt_s<5@jiNmbN~EcE!O*57c=+fwRbnzWCUtfQg)9=!Z$8kAL78S({e-t|v@@VVil zBSu$nY5dJ5@6LJ7015Vd?1U1grtmGvQ6eLd&Fi1xb8)n*RVf}`D0z6Kw79s~^1F^| z9M70+6kHaVBM)DymVSZIe}Bi$VQ8?)Z_zgDwJ$MmzquzeNS_k%mHVH12=hR#&BN}R zLgg@0Px739;CET5Im|XIYEA4FRJD9!+?X{vl|?24U#s5M!#o-Dt%_;5mMLS^V=_XV z_()1|XZ{4h57GT|9b=z;_qlF?@S-)4;HWd4e$?zL4@*a@0}2>%KM`H3<>E`T*>lAP zsJt|^G%F?IbQFK~`HPnH1Ga)WWc~AR9Vts@H(Yyxn=P&JRW zOA!&fe9!XFA!71kXcTWEWls|&Tz3FxMeuHVdP&Bl<+9zOds_Az4{O0j#n0mS+ToK4 z9`lW@yC+8>hVas$T`Xq+4?c)+jGiy{k4iI&%hXi(RxEy40 z42wpemqP&_az-3b$^JN{nk*EAoz?447w)D44=41UuW0c0p8a`WO>-}dy-!*?T!(0A zB8tY1x!@A>QVu9q41`oUivs(vFrc{NJs(sOF(aSO-RqVVm{hJep7#@g+HGR#J@1`| zs+mRu&xOy0VYc5yCGYMmEZ=n<4g-`nG%PLKq`mPHZ{)%a?W7R0%T?!oS{wNdVDSY)X3@laa8)gOiF9ok6jDX*18J-aY5{Z(={o z8b^o_awjy9jeU;Jnw%m{!wlN8V#To-w>)|1b_I!II{EAVixe3FOzU?nkjcoQ=yohCf+oDa9JgWs=6(zecGTMInne6YP@!oQcq zbICV=*uvS9B*K8tiG^48BSD)chGKKeVl7n#nlRKbFEK!{Nyc zyZf~{W4qs&*nK?1f>d8(D3MlC3i59obP->mmbdG6^u?M|CU7;91LZfHBg*) z?|fXsGou2J$RO;^-Rg_z%c3f$?hswea#+wc2K{NeIE{jpwZv(&d=Fv@oa^!MfJc?27daE39 zNm}Ie*1wEr4pwIav$3RI6c#t6vGFpm=_dzPkW1oLanPbW+CKGSCojW3AaAem@dxlB zaYI3S(lGBzxr;h!VLj?Goml|9V1YD&Z&~VV`oV$?3Xg0y!k+;rIMuWwtXIC05~_jA zq`(u6%^2*MJ6{7LJz$eSB*(u_0K4WLrinIj5K*Uc)=Q5?pzn}0F1%1bK{sObjyMJ2 z6X87uV$Q&v_r0mA*#%_FkP-0~La|=G>&7eXC*otDF|i^<52gc8dZb+U2_A>HsN*f} zm|#0)5#YhITqxfMF=m)hK>(SZh}mu$fox)Y7)ZKIp`f5(Frij&Wpi+8URxP+sctF z7Xo%qDHGXkcA}}L&?g=IRCl4X)*OdF9t zi?vFR+a|!h@8nykXE@fB?5FCMm|RcEOOBkgT%$K)kK;_{j-s7IbP=edcByRmx)}k1 z``5apWf0jh;pKakuS2JkVnaVY?t6<-wH$IjFm+`JI-HGUQmc{ELCF6@b%B&VmJ-4% zGMY+S%3GxnyQ)J0A+66jRs@cIjaU<^rB_Vtt+$a{S>a%j2my@yg`SgaEm`B|n1>p; zfpG41(8Q>9qcjiuDkE|dSishn$nRPsER$ywcaE<(LOL8LC6^Z_$?)BrGmqGmnAnlB zkoF5Q4*Gh+4T2*i-jnYIsC12-UT&1LrYB2+NV&+s8wDZm^`RVE(VfDRILAUo%7(^A zIiN9&Mb&;(2(B*cJanqX9=tS_O|qf!yBV_l+r|3Phe|;!NT_9ic|(vngZq$8>(AhG zf{o)&i;C`KTv#mi+p-AbMyE>*RO7kgqZ}V&Te&qmY_w_?C?33C8pTs!p?O;`FK9Eq z%G^~@np3b&b|&|#UoMpTyR-GQwF~qIf}34F<>Jf``6S7**e*M6zoVX4ql2cmFFpYU z%(W^^{VAKfwQWUK^OFVf)6Te0Z#i&R)RdF4j4Boxki1OjoGc^QkB+?(bP3z}rD6O$ zM7cVla&#C}z*Rk_2rRJo5%=YHwO}^z!g@7RUI8Wlb(oz3MJSuS+cJVaa2retiuPvy z!ACY+YLQ(S7rY!Rc}Q{B|CY5Vb1)9O*-C!&``ca~QTYboR}^#NX1+g)r_jH&I58D$ zpr;U%E#N9mSn9qeDvq%wFXJ}nY%E~`ZtHwXiSw3j3Zt%|i^ek>wjs#QMD5t>KExcA zu^W9j0(fgm7KY?yA*TMkay?jo>&7d{NnR-mjPbcCwX9a_jWly96_rLfn)!b)Jv`p%nA_YW=p(4?XFU_-+`#5wXu33( zeIHXsP<)o+9V_*ufeoqLNztsBlq~hmrK4Jf{hiXeJ~Zgt87+*W7gRTo;xdaw)LRNM zOL4@G$6uKc*?TmiRbM6&l{}K;h{KzPR$RWRhA%`DGudTKuFxpmXGCHiUD+RpcWiE} zNeyamGge?Cvm@zj1enl#mO@pu!lD)15r8mmP**}Am=a3&P(JE&Udljx-QJxHLorKK zGu*bo5cE2daGMIGL#KzS=y%t5Hkiu3heDkm7}`JzY=N6ilc6w;BnW%qAH0PvH+E`v z@v+7dwCqLpE2f4s=H{V|msw2N)%0nigM!QlMsK~bAe2nkX9=FXhi9c@@#W|yIZ7|T4>sX&Fs&Ur(e+ZNS3bcs+*s+;CHeHyiIFM0CR`VW#bQD4c^XC|Zzs-@c_jyTyQ?Y$$ymS=xyUp`chahAX9&>98zJ6kiU(U#QUkM+F#j!H{{F~{h#TCmN_UqepjOtdao`FEg4slth@T;LaJY; z4kbNad;HLwr{E*nZ856HW&DMh6(cY)H%7YrsrT&H_cu3hcFLkJW*Hb!l1a{gAX7m< z;ibo$a91U$BkFAM{0^`rSnBl#<6;h2j8l^gz&PrjxL+Ui+g1B=+<1-wVdZE&+S%$O z%5DvwIo#-KF!Zs-&o$^XI~+Hc1k4jjaWRSVz4raKy&uqnY4+w-779(-BTjidatAKC zb2{G1EvK3TaTne5a4ZNYY_|tL`Le@&5XC!)RUY;2pbK*|^l*@hsR+W%gPwiy&l<*% zYX~4$4lr)(`WZb1dJgI(qipMa0o3v;B0>8WyvSMax6Wll`yB!;8&9Et>>I#N(ST04 zX0x_9BpWm}CeXo(Y+R`VLDV=4diN+FF;CdiRb=aGqH8gvxq%I%r1O4n}w z{HFC=ylNCJFR$hQLpnU`kTV)vefTfEFl1yceUP0!?hQiDz4PBUJ57cD(X`-Id2ut{ zkB=0@%2Q*y=Bv^ZOHHBj^iFoCI_%a!r&BibP0y*k@kP*?%k1A)Uz zJT3Ke_v_*|wVENi;|S8hGv%#=jC{irS6f7gOecC!Eu zje_T3n=ci2k3{N+GC$;{T!I~B>v$7)RNMChq_g5iPdiy~aVgJsTzY)&oZV$i$ZoU9 zy~vRlU+QSQ(uubwY*N-eX2b!l*I}BWyt$n+)$)#SGf z#!-uIRNizKAI003Eg%DG`Lf5UZNe_<)~&ClI(&lHWD%OYwZ}C_jOAkT8H`5YDGfHU zABm2`t&|AJ(g)nyFb^v*YmU($quS|57bpV-&Lh^z& z5W96*3oB$s<7BpO>GvL~*`^S=zI|$DJTfVaYwkjDP0#>b2$D~EiJo8{$OCCu62kRc zOj6a2X`_sD)F&~4{FQNO9B=G%&V&SaC(a+=1gE#f$&uLw>WxXsJ?M{pCIEAfFJcwnG!GApR`vJ3 zijA={)*%P54J%&jU@j4OMj2b7r(hE}-merInafECzI07AydanApXey%Uaxo^YHahU z%OfQG!|$|b-0KQG{^_qnzwV8H-EY`*C)F<#=82F861N`F$n6CJA;KA+M0g|RRDVR` z{t~YU5Tqdgr-xMh|5+XNI{6S3|2mXT!qDhrY6Oq95AjEmN*Ajub3`!py6apx;jpRD zT{?e}`s*E-?K537P8bDtoaJoa(F&qQ-c0B;FJg@xZlWayz^4t)#)}QcJYHp34lR$` zd&#tNK7WMvSjAljtyjR+f#lvzDTJ4M*BRFTw--RAmsIa8i4}dg%Qu1Rt5jX8m~FV5 zFb_|Bcc7sq5%E${QkC66CtDYHu%-P;O6dC|P#;b@+=jZqrya5tv`9RGKX@gY^NMzD z1T$RL)l~A7b?b`?MlO?V4Jp^^V#E4Hh!3CNoMC1YPTNX0`##ZjW6USV0cw6gUDM3X%ROE~AYei}!j1hv! z-5z#v;gj=IIQINftl^eDBAs#;Cs%^2UHi80*Hp+QSjObC!{Sxt>diqmb1%WJ5U*wC z*c@L%u-Ui^F{^98(1VvMzZi|tl3)U`@D6@>WzLW%^#`91;}OqjCd+u$t}hVS88np_ zJkQ{a6HW)Y8ei@kBTUOp@oueOA0DE$(2_TtgSuib3lHX0CO;_ckvcgCgLY_{@ei-I z{&j1mod^OdbwYIy=Nxh)wSaVHhcHu?wvr@#7d%9OMbn{!Q}w;xnlo(Far1J&q5EUt ziNYq>M0ZNTVfZw4KYe@}z%U_v3>+OYWXc!^}F>QdAy`+r~=lT5_QlOAX3)>>dnD{Um!J@Jn}@sZ@pP zewc{OeeMbHP^Dnya)bVXPEF$U7x3w6!|PC;7UI*54l`PV5v~C+HyjyW7D|l@8Vb)e znI5N|{&$LK`L#~XoJQ%CJSFh`l6#U$zzPK2DN0agLyIX3;P0x9JZ36pIzB8mREJFaIV90tgr%;% zX*49&YLz)#1JQP&gS6sGtFIa327kF((L%GU zhnia#NjJ{e>2tC>q&k8)3HmRjBqgwtl!==%ok1BH)Ur1+^r-0$lWZv~;a~6hA3<$y z?!^laD9x>>0AZSlj7K=EFVgHj2ChjtMdcFoTu{#1L;*V$81jJ!To~fQ(C3yNt-mdr z0~l>NFHIV8U!w>Lnoi)eyk5JwTj0;=2=L!5(sq zw$9crmx)k$!Y||;bs1t_@Q;tRoU>eb;#&7( zxI~!)A_T}jVaGnv41X5zqTvlfAwRBJO%Uq8J%{w)w?Jl!P&av_K>y5M**>;@4oX7o zx;Y5Uc8SFaP?VWV@>x+4dBcV-leL|*A1ChPk}<8?eG!5ptfa(FL)ol4opVYFw8V~Z zCEAY4BGOs3T2cr%qM&7Us!}8KlrPha1Tn(~SvMZz8txgmMAH=$=?hX{d%|o}-X4&{ zo&N0vS`c_9g00b$oG<fDMm=#c2%ntb2>J6Y z;L9%_tt~-(2x|^b6~{b6EHUNyI1Th7txm%9+7f#!bCYxmZJ#dPonJA0i7hdJ7H#w1 z4q8GjLeWuVDcOxk)~A6`m-^!vbG;}|&DuJBWPS(ycKi)nojWcmL1fXk&+d`t$7;wH zZcut=i_RwW`knjfj&!w7U;pW*QL4DL`p&{`@Z@Y7s(QnT&=g94Md3_Jdc3>3>JZ!U z%7^Ynr?TD@v0o~PuNM%6?K|~=byYUD4%v3C*+KRnutrKT(b@qL>I59%_=R)mV6(n1 zg4+Rh>W>m>+6RX@Gowv$VS;4fU>Vz6P=))lWRiv(LQQMOQ#pEm^PQihH^PV~y?3NI z?~vjYG0zjHXA|w62I8?qq1*u7JBbhIKAwPL3bk3pu(WP1<0Ea;80asgjnlYZ>|>`P z?XcjRE=b0S8vu+|r#TW7sonJhhoN_0>@#8&-tJu`RJP>54$TfG{VXUzZVMTc?$L^w zqOICVQK$JY#1wsm=n*94a^jL@mjV=B{oa2!Qkg{3PL{!1fu%C~z2yFkEQ;V>k7Lfb`*)*7^~G_#&Lv0DRN#x(p_yVcfT%>B z&;X~`q~G?Am<5(NxYyqdL2HP)_)xwPorwD7*JIB*9^~M6TU3}2<{TmiV;KX?ZZ4F) z!qUfHbQ6=ypEYp7mcl5SxRC`uNNpG z`xa8+%#1=3%XgFSkHen|&1h-quvjWJS%5mh)pIR{4iGIeL090T-33OWItgcmR1^D( zj=uicqxx;J4IYwyjDX3Ox3B!Y(5nSA4}ImB#I0u={e{IS9<_m{IR0WomcI2&cEbh{ z_Knm1b-kXjn$ZCjv$_kEEx|`uq$Q8|lWAu39Uo#=m?I68GsI?&7_6zXs0#m`@OtO+ zI_ZMLtRd7bT-`Wv$V*z^u-QRseIz6aatx4y|BT$e@Z)r1))k-I$lzBebs%M| z)Sn(KlT`LGBaF}2{V$Vx|JkoU4RzK+t-K!kt3Ko>_nQWEKe}0s7wd%1Pd>{Hm?V>{ z4NIp*%c5)97i%j5L^b=nQ@2v4NxPuoAJYqukV&SCOJkKT57gSg-wkAz&L!BEHd|`1 zH~Q~}gUJDD#dZVQ-M!O9dKHJWv0>AySFwdW0xkwu%| zltl{~gDhHgb#^e}!K~329i&-UJ)C=*camKMz7vyOZ@k<`0vvk1(?gUVr@D0k+x5t> zAe>&5e82O3nLI;t-0rhr^&scdB(gI=@NPkUU(w{i@>736WI#U~8wFCjFP^CXQCVbS z0BK~SJnAIy=T^ev1=py141(;~P&YJ#_kxR8F(Um`%e{eJ-$g;b2RMjM6$PN!^NKF| zhMG6N6=i|c7aZ_NDa&U~!JBTs?t$L9Mdb%nrFi1VBkyalx89iud3~f!M7!oKS?Ie? zh}XW>L)cI}OA$~E(idNyIN)NzrZScVS&6jYH3CfAeIsl6rkqFSuI4oansM<(JYF1fQ)o7sg@#>AxmJq;M?wLve{3dclTb!L z9yyq~AxE#X_vs3v1iq!}|1~}y#JLQbccaii4Haw!zEeZzz^sk6rlY1mb?zFZ>a?Kt z039>pnc+CbOLM=&K__z!V}F+6_@Qhe3N|PfS{fbnwt{xAk~$)G=dm>imh+au(59@r zz|Z(?{2}i&*4%ie#Wim{J8dyg03uc~AvL>blc-1{%)eq zQMFWdmcytp(9}@B)?X%tYaPm*@+8h6P7x%e)~VCH!x_}76FNj|rfmbN-BW-DsF}_vZH^3;7-vxOr^)!HwJ(Q)ss>ucTBwhy%TmZ$ zBzGF+lX36#Q!n#mJ95A$s6~*LEWniRzNa~{KOClyx(+jEa1j$6S9~b(>R-~tE)5_K zQH&W~ClOds{gF&GZtS=E_>d$ENxI+An-_;%Pz^Ql4uZ+dw-c+uc1obG*w~PJj|uz2 zIDh46Zmucmg5Cu~)|^ybJC>Q0w~rieFn5xi%qPC+^)l9hnpmts)|7V;j?M>; zt-2sPwG;~-0gRM&)D$M5N{clx^{i6dn_kjfHUuusRWh~>m5lp8Xp+(O;=dIQ zvbabzB-7lCoUtDxplFo0t6;TcH-;snRHrz71m(MjphOA})*dzM`vFt?zH1g!_ay(d z9$~wsJw6muC^&dDX?xG?mgZEj=nxP1sgE!#igL#A!&7bpMWN$T`(1^9w?7qQ{B zF4ph+4bA00HlBCVKrFfT=N#med3S@UzvP*woy07XdH@gicg2`b=8A&eltom(4i#!R zyF6(pT^j%7OPoqqa#j@KE)C%9V3$<8NPIc+=&?`Yt15i&O|Wnbz&oqjbWm#=@Gs}* zD+-}eZA>*-;$T!!2gXWd?`F0%!c1qocdE6URKONvzcV$2>rY>dpR5{m$Tx8K1hI*I zzI}GZJJ+D)^njBytKbI;gWcRLYxggs6teH}6yzhT|0aK?4_a>sR zuo*oU(3P~uj1h^bFrTFf8T4YwxTbPfPHG&HSQ|#Yie)x zt47b};f~r)r##4hVmtbR|Ply z8BQu8DtqLz#F5W_K-9wE&G@e#((9b+`+^-$G;y(=D%rilwJd!Efv1*(kdU3<53u+G zH@)RM{$CH8N**#f(4yX$oyYWdxv=dT+itTAQYTFtxn zEM$o7oIQ3PaoI%BwYF@ZyPju%T3y+<6T-*Fg0hNYlM~OO^m{zolPeWJ>{21R2Duua z*tXF5o51l6juQsVr}Bo1v!865G;4=h(GD*gb;+?KAxIFEW3IAz^;uVyMp#*5 zrC4^Xno&GaT3+_w-!n4y2R+IW3K9><5yD4}eC8H@}YV+ONhcSpnG0Qa)XIaMPuvZi&w5Q`C&FNjYjya;QyD`vEF#8zfcP(^`3Lf}-DwYv6Vn*nkd(_MKAb}?(Aq=}gZSqtsM^ZP zk3YJYRl^*NFwsUA)r|DLW+5wf$$)V&==4Xgl!reThCKnkK@ zn4eb5>2M(#E=X5)iJdZWjKeGXC%snI=mK4pNAG$fw4~P%7MW@z0Y-6FLf)DX1+1_) zChz??wDc&-&GU96!Bx%L^p(6CbC4;IXTlO%$!C~m5f(AOF?g$wIu(qni)CE8eoJX$@Rxsm8mIb-Xy2~Luk56*+7Y9^`RQ>FbcNB;x0v5jI;~Lvh%sj*kb;~#%V(k}A&+oKEcQQ9;$rvlVm-N`9 zsu(ICdQ>9mXe9)``KbHY+Si)=@`3|=@I|FlH{s53E=+MWy#hlb`+Qj!_J`H|%%iT4 zXZjIAeP@?VdpJ~BgMZvLg{wc0gdoXesBy6zU=O&R!FE)eNUfuf;?1mkiAJlo8ETBDR)#Pw=(ac`2Ckyk1?0)Z?TSoSdzCScX)DbgCphtYgfOdZ82g^B3BP_fTrCqg*Z@Rh^CT@(f0=T~_;YM!wZ0L? zf5jOVVz$)ydNF%oUK%jXz1}rN~FZTLcm*e^0Wi z3|W@$M<@q>@CVpZU2h4TN(UF*VCg?Un6fOGbf>3wwoRVW_x}oS$}{|lcu7;yWG?UM zVIo}HZ2Yz*E$#|$&;#5vdmHP6YewSwW zW)a92qX11t{rShHmq#hUu(6br7MMxz&ivQy>_vb8PhCZlvf>Q8J8}8yH^H>Bj7vOs zA*m9QO|7zna^>Ag^xjk#Fc16aQt|w+PO_#Q5GaM_HrW>Cj2ZeaAsIL@z5yJ>!1BKE za*=N-LWShG9UkuOQ-yKoAR=W#Tjqn(GR{e4JeeqH+DR5D`5=V^G@V~cSo7q%w`e94 z?mj7U-IK`~b6LZ=zZ22<8xI*0G#>eE(`XApZ|fcNrCB_x%kV z5fDM78|h}~?(SA%hLG+-S_Gs8>2B$e8W4tVknZm82I+?Xbw6wUo;SRhHv?;NUFV#= z&;EY43FH&QhC^J(jHjkRV79-)>UswG(M}(9miQ^ejby(F1pqUGns4sj>cUy$EaD2B zMEQ)0PXy4^$_;d?Kd@zLrPoI>ejMyeNL{Md$bER+GLwYQI}(ub(G0MBDSP(+cHZ+f zQ5R9bD%bPn#{#DeRZ`OIlc56Mvbs&+ej4^B$tPkR*idj!*xtE2(I65&dGbSCn6b2M zUbA3kf`yVG3X3c`V;D3fI$`T}ODo=>RB-g0L75nC*h(RTDWE;j?e5GE5FxA9bBJjuQ8Gr_tL}Def#@Q9WE!TF3r#8l z=Kg`tyH9RjH7@TliaRuBz$!_RZr8w+N>F94^~h;DV-2oE$T(Dp`Z=5_%y$Jh^R*CH z3Pfp#DkFc2BO#+2^!BP%+nZRjTHd$1&?Uod9 z%K!xlx@{6&sg4sEguoGb4qq4B4XSXSGau=ox@$`hk0;9LB=UycGR&n5-`Y97T56-t zC!RIg?p6sd{!3!WOHj(z70rT2N|0R4ITu=bki~<GKs zW6n%x60#0Q+Y+LM7GN;KZt+{hjwSEu^GcYj4l81(j2~*!K5(*29f6}JZH2wErcQN| z_?V_J_h`h1dGp>pZ}WG@!LiC`%I>$*`OqOII93l@rtD14I2{d`#=hm2*mt7!0OQb9 zw#u^fqRKzZcD&x7={27D@W@8EKH1=RTTF9^$_(n>>8Yn{9w%xFpW&EZ=;9l*DwWaK zm;)ahK{TKrl~^zqn#CNDgv^>bG(UysJCms?5%YP=Mk(@|2&IJaWqS{K{M8r3-DZnZ zxmZ;xo-ZbJNxD;G?DRxfBcZ7yVNFOq_{HIeTofBEuZ*)l{vL1P8msr=i%t2IluOBn zsN{B*7Dz%Zs2SAb+|Lzwh4Mu$3>}zBwd+WR7rw|)k4st`@7U)$wP<{)!orZKkXu~i zVzP|N{Jm!>l?WcpGu6&S3p>%GTZ*W_(kV-|Hq+o{bjKgI8FW&(VdYq_PDinHX2vb- z782*q?a6>vKvgjY`MaBcq3zbxKkh>Q_BP;QJhVCTX4QG1hKKZQAJeglB`GE;^W}l3 z(KBcgE~37p05Hb{w?d!)v?Fqq(;MEv3rcUIt#20q*Zg;+X%3^QWD+Jn$AQILWHqH6nUsZ;9G zoOH}{&yX>AOz+olEKIwdL&~=@u6%>z*-W;Ku0tL@-&XVH_n@ees#(1b#K$!Y{$5M& zy_$VCtooz7=&*Vr(Lgj{e&6qaBby@Bo%K?iC;a`<$SIY-OZlMP?^WGM9qKPVt2aT| zi5{f3l|7Lhe7nG%KRsnCwrTtuOHOuVy_JyhA@4TH_p{?PIjBkpAv_4FQE7yf2q)=( zJB}!soklwKN(A+toYAdB_wg7AW6&5Y}KSyJHo=;qm*=Uf+6=|qLyMnaid zf~9}4w#O3N`X{c*y3%YxN%-@|vK4X|wNwPnp$Om2)aK{g7m_#Sm|-ruC-_OW(pJk6 z#Vftj|N0ZCH>(!w~Eq0vvLlG+(D|+pKg=(v7VOm2qH7gBV=I&MOk_(rZ`R&6gbU7&#f9lg&=Lx&?2B(KW)X zqu!lY{?JXjTFZJf*bo2rtRHC#jM7#5=a$f*T9aSKChD>-dghA7gaq;%h70Q&Wp9v3 z6S{1O^t(bhgB_zvv1f(Y#Om-<@q| zT+%H5xDWOccqX7)vk+(Q)UT_N({;JgPmR@!FtV|*j{1X=K`cTRbsVqgHn_gJE=eRc zE%)BV;<7|N@(Z=j#xIX%q)Yb@5xZ|x6lBAggtLm@6sE^_rh00I%H%gV&+0~*F5{Mx zG4(F1HBnPR_U4(35ZU%UZ#h(~@{>!rqAtK|u9_yG-FMplwuq z$+eusPmQ*ewH&hlxiLosgj(<+5X|6HwOhuc9rDq%81`6f?zDMtUwv72oFDMKE+AuIY)hR-QwevF0d#^YszSFWVpw#cC!w$ZhmU?I*) za*|;Jyhvisfa#ete-OI&Fm0Osp>b>wb0&T%^}IXx#u{agG$*CN6Q?{-0yotG#0wcCsTD9o%)jAu@b75;!zQyD?GUoP63cV4w)wdbB;Ye5;gdR0 zv#CM7v)8p<);I79M;j7$Tw*JGX5`_Y7#*b5n@&9!bJhUVM!4U1r4Jg6==-1!cwuSy z%DVq{CDU0hMy*_83YXOchnm6*Cm?R37&DZT)6$YNTg_eF zltxdWLM6+ENg)e=HGR6O6A=Y26wjnw@JLIzO~vOV0grzP!|Ibs9TVnn(PhIAKC1{T z^^WLv;y*A2!s3Lp#6 zMAOGA*`BntsTjdP1XGqZPQV^Dt0$;=bi`_<)`Bu`DT@gA0xgV7-(wg@d^>~a80i+) zu{!vv>C)!CW$(L3B&B0dL|)y(3$!rr0>wrWNShK^b}+)t1ACKoES48;DkFwwP9jiu zCbcN-hAufFo|}k~9HOzs_+Qn8$VbiXx@KvKXJ0(z$Wpq=vf_#8UNjY|OshOTW^M#A z@$xr8#fnvQz)A_7ahAJgxbl6goTs%ic1i}kQaj!@NVZtB5RUsl<}JuNp)kGK1E_~= ziz)$u4Sl%j@@qIXL`@$wE22^lYS2VNmw9LTB$|LyPP9lcre{Ye_mj&i=ct~`6?63K zFMp_O$#jEiY(;yGVe~iXh<7KR^GPgdySzR?xoDu`nW13DwA+_%RLSItKg?KP|DCms zeI#os>X4UOpcD*O;vJz!uQp`2>~p!C85c#v+IgsW6j)zBeDtVZzy`YHA3a|$@v2v4 zBfmfOP(n%oiW}HARCL-DG)Kp*u>uc0JM4R#q1FU96~@jH+DVXsf${wovFjawguLJq zXzY5*8TER~_sLcD%kG32{6313O>h3CK7z~kF+xoco0Pt!-Il`~2^;45oiPXlJ5p#M z`~YD+7qZH&#snM7e~8Lvgiz}coqH$dzGo}=jcpE*y+FA)le(SgHgjUFvtQ&J8`;%D-r~|fgXkgs@#$D338P^SlCMf5 zPpKP}nGLfr6)fY;6WS;e4Jpf?vor<)9iqkxO>Mj^*(pEWr-ZN5$+<-ng%-vO1Z7FM zZPt`OES%;lXmdCMNOg=&I_D(DHG)zRfQp<#Mq;3s6AZ0;`64wC?41xgI^o3N$C}U9 zqS!-_LH#CdX!0lF>|OV=w0+ksO+)&90PQAO+H|_OBF!nY7|ZHwx2ITC9gPuwy1P@k zsT(@hkz#!!ro(?8i(#AHV!o)!+#RU$XU-e$yflSEvC2I}x8NPH$2sg`p=fqCe*qmh zjbjZ==+QvMj2ctum3bvl80BmitS5$u_)_iE5hu8sS3Si)QlpzG@+I^=fv{=7C+K8- zBpisk5f~_cmdG3Vg5PvsExg0LWn*wlx;s5Y>TCKj65=jiL)BBJc@!A2BB4`zkmCdy z*YF76d=qi#F_!QNwigvo4dw~#-h5wB?>#Hs^?vIxzbh5vzRN!AI5}52@<2Xpl zq`@N-=Z)cvfyfS9NG*|f(G(2buTf2wUp&!k{pxpgOr)i)s+0S^=2CMRL0KWc+bBtU zW~Qgt9ZY$hE|}zqAhTG3$iC$%g~GqX*KmokW%W`OlEzJBD72T{(eQ<#b7N-FcSHI8 z@dv_gQciQri30lwNR@S;ij^aME;W- zP7zi1LlF8*id*wO2C9>uJ4r2)Ai%W3)GUPp z{g2S(@ZmQNzOUYoFIJ?n7l z8(vH20;yb0bZ2B@5XpR0hx1t2s96P;w5}7FJPY5JiiQ?L9kQbwHtRWpO+*+K+5+xj zMK0B}o+$eBr?Bq&$ygG)#u@-|1C|(JEC&9XSR5`Mvi2x?dna zly>#}Kmq$)rDu@-BSpaG;rbX;{G1~{41h<`0re#WB7eC*sb8;H?of2PSa=G=0k=;6 z%K#{#f}I^pYr0$A=u2vQ!|KJ*aM_CaG$;ya0f7k5hME~y>G*d{Tu_%8rsv;zr=f-}CV_W(s{De|XeNa=T5ZEjWn-{n<-;ru zUc5KM<>0N`x{NFn<4yiXf-xwAd7FBi3g-SWm;M&&Yer(1Uv)%eGU51U3Z^5?ZmmjhLDe|FbTTa{)#GyuWGk_%W6Dr!2V};QMbE%zX~7jK zsF;exPR>C$^a3|f@*vsX&l4drUnc6mA9rRLZ8^*B$N#i~7vXd(G0Sp3p_PryWKxq> zQ*>=qATdQN;43z?bj+8Vm)MmSzM;?f87_~DlQ#{~!5iER`D>RS#=_@9198lvXx7vu z&g`ybGF*D2i)!5H}Dj;^rloM{^_B z2aTRT0`cETtcKUSfa-B@PRIInO;R;F8sH({c5Pt1j|< z2;dmCiw<6Zy6$y#Ad1InZvE$T%Vz+0$rF%d`jkY9@y9g@M&3eafpuspcWU7@Pf}6z zkz*B4mdP{rfm&+pYT^R-TI*Ac>W_+#KMmhnM1C${7pca8j`org|Z zKObT>d><`wXe_wVI%RR_-5KqMWOdb*7+fQLVnL>=((S&oUCmW=oj zoyLBC{Z}CsA`@Jjo@-u&d5DA>(;RtS#GGrPS+FqtA)T$qtbr&YT~&QGTVE@4kh+BG z=T;8>+&AjLqPxe{a4a;kcK`Oclhy)O#^n*m_u?!TOR_XQ}U4eYNrcVorv2KT32oe z2pT~8bJfj?`=9#dq1RSw=>lidx<<=zx5H|{Dl_MPxu0#*g@K*cUcDJf_rUrcY63ul zcU`zuS!owrKqfBo&8@eV4=*e4uC(zZXTNfKh$-xwoDv%m@u&;M zr9ZY_@);WntOydh{3o5FkFAS$+!-y_3|KibU7C4vAKa!i0o%H3h~2365g;4B*^Yc- z7N@=s!`B>-7CA4{%p2NkRr=Z9z!YPl*_%NO_3Q5<%4X>rc>5Odmm80MVzw7dB!Q(J z?wE9!DS}>A;5Vf6%1wbj|KEMGNk&^w3K10vcI3E--jDMdp+F3rR4SpwjaErxw!R<3 zd6k@>KE;dsviMSddzQvM7;kB4=;w^xdWz@aufyV#o{Q+*5$DC;-L7@)Ygjc6Y=vVh zBi-j%Qz~bnNrass2EaWHBBy76hl1&U5m-Fg(FhHlwb$pOMIe4m0xdg>CCy};a+gR& z-bb=}GL>4@#>wUg{fmCb?1+W#!)HEVd~q(?jZe|2&6Jf(BFgzRxejjVJ%12S=2^`Wxwp4kZlpEq@ynp6L6U-`Yju& zpl$GYU~|4dY#xb4*Awu#i5$_MuClS8=p)Pk9;xyR0?}v?uv+ByxXBZRj zj(3_#3Z3zReVdrO8fz6P2DfOUO@|Roi9aEtpVw-_;E^TkQ~%5p%s2Y1`ki>FC*Hm* z{tSfZagAk$UnJ-E|KL1j3TD8O9pLJGZeMvHY^|^nR-*B9D2Cbi42)`G0$4aS@{wKW z>@APy!l%vBVMFBJN8?b{VZbu^?Bjtw0Gu_SM?6+jc|77=E)fsM^Lp1LrRgKG{>}b+ zX#|`Avz~}l&P@dKGa(n))YAjToW-u8=jD;dAZy)P#@K=5z3%AVVqJ8-1HfLyyU-w*Gxa0S}8Vo3c z0OEbJ$q=F6V2V#4!o&`)Kv1Qp_G4UN`P0e_CI9)sb54;VYpOq0E@%lBRJ2jWb7to+p+66nH^@6x6Jyy?-l(3PWPwb0Hq*SQ0HlW9>%t`l z28+t~w94)BR6t`w6N^=S3^7ponofyj`U)tDKijl<&pr-&>YhF z9aaF2SyKd%$QjhqtDQP~e!YCXP-O6Z&JAbxIensgdUGj$IVP>`1elN4`VKEgyUCyL ztAOp=3eHl&qWePic%D2j56}0LuFFWyy@8=#;hb6ehVAoq*0OEB_9LA>k z3IP_~5AKho!yJN{fF3Nz7w^3ubhm5d_{=|gPrpEA3$FpZ;+uu&S)U7-gMrI%4N$X` z-y8tAr{K4yL~$?8^rR$0o2uiV;m|v{(aR3M(er@rvv+SBu+H<@Ovr%3(IS3l14PQI z>!i_$&;yJi%adz1j#SXL3kH$bFwChz;m4l^oZb;(2NsObm*)G0Qh-%zmz!(SbqMi{ zq>uh@b@Mu^%ph&d#y@D<^(Cx&@^ybPa&fr;c+D1o$j}^q^P9_d%9_D*7ZB$JK|+c$ z2LV6l(OVGwXQjb9o9Ngzg!q9LCSkaXJSI$dVWizUR0f}%6`atE5&P;$L}Y7a@D};3 zyYCKT`w#u8V?vN$zX{>e6=BT4fy8)Wd;!-?m*&rufC(wh(k>AEX$TZW(dK{uMtg{i$sw#7una<+Ch5!O$-67!fAZGoVm|B zxkTQp6LZdyg0fW-2h|H;)GQ~QVI4*API~ujT)Yv@RxVBMh&n~w6;CSlU_%e0-*|KvAL49N zFx!q~Er=SdPKv@p6EG2zF5D&arMVOM+Q-wY{YCTgd42@QAgn)m6XZU7>+Ih9%1uWi zh^!Q9GOa$#41hz{1_*teDD^M?4{hh$e_T&jyqD^oXuc8)TK@wWi`o@nF9@8{NNjIo zGYh zgZM5Q!?NoB4DNdY0MmvDeJ3}Ke^SnNC+N1h;QoHyCK;7{=922}ALwhNF zwx}MT0LIATR;?4*v+f$Ye^8A-n8DEQaOXksg3nhIlj58%{`vC}#IIldtJ3>=&HWqi+X?kjA zOI+Ojh_1n4q&~K?9K*!J6ZXK(N`SsKw0v?yolcsIo%}GJ9^BWTRM#f<1mkmwXX&m) zXk`uLNJ>k){P->2zcQ0!?wajf$8-`uSG8M#vOZhrvPtNdJO*7HS&^u^jQxgj1oSn_kWEt zGdp{;H%{Z*O7PPxTJ#!_6|r9d>4EEsnWCP>59LNLZx>{>ooqUXBeIkvA&Qrn6I|M)dcB+Fd{4yp?u-UFAKA+zst=mIU>c* zFFA@aP+Er>iCg~T+#5^Sja*s7RL1ldkSh^ZO8pbiEXy8l4*YHDR8GveCj5{#LY~b# z!B%tceNxM{_==wJd+8NY_i28vT&5aW^q9(e#!?qCqlej5_!pn~wM$i=x2x@ZkpFdY z=j9Ol3jUXeIw^R>YeRsz=u~+xve|TC;{l?9i_bCuj7^tLpji=L2&PR!R2{Su25Dl_ zF!6|s&$MI^?0aP_Qtk+NMCg)qj3^Jks;6-V20i}z+o4R2J!q`B8aA3%$JQ4nDDWdF zL53jJxf`76Gmv}3S%Z4>9Jk;;sj04$T@#sZFv=|?^JA+4Uxt?wTRR~rl7TDlVNa9? zd+}OEn=EOmw5lUG6sI|Do~Mh0g8(j^E_B!&vBq}P*GD-p)GQFk4_>zzzMJCR{eFG0 zjJkC2+kwdzs#X3CiS$F=KX2d$SFwVs998}{US|)sBKs#~5LYqYDY^wIKl3PJ{*aVn zl^lrAvz9r-ZRUbFi7MxV9vk+w-z&I>2EpEMtLcyv`a;gjZWF_i-4UT5)9IZL5UN)# zb^GP^zw|1|JQ$!QygI)&%||BQeNPbr&i8*`^8-CGM{lj#vk^svK9*X<(* z1vz{UogkRCC;+}O$m)FhdLe7PZ^Sv`9 z=$(MS2`h1bfcVbHxW%k`tkrTY$o53c6DNaWsh#zrQ(@KW**w$2pTb;3rWY z5qp5b@E(_^02uPAQGLdj>-+9{E6z9R82`qF#_yyfX8^>+6bXRhYolpU3^?@(fWL8C z;IkC^CNU^Aemy3s9=-xjPsh?=Hd&R7M#7yo0MeXWPUuHc)|)LJ$zs79mwDr%uleNn z{F*Vy!}0sp*q$Z+ZUby4e zTI#bR86_uqkJOESc+v*`PQ=W_KNQkWR57E@5gkO_u^C3r+KQ3fg7uj8rp z8~4;C*7Vakjyq~VFm6_3VYPnVZl&fMky?A6<_Q<$-L{kNJGg;ci9&ZcE!Qd*oQIeo}V3P0s;bTb1 z;0Jyj6*7jSOXf3e88wlVkOEYv8dV6hrxONH9ia_N6vQ+ozPPJ@e~Cgd96%O?D9hl9 zBEelGQ_+}Zt1TQhJO&LxOSl536l~^~aIqO3v2>B7U3MK@<7fE+DSm@`A=mROdY~)( zKbg&4xF2*eFxpv+8$sBSBvW{#tGeGM2|^y+v--9t>qz#bAY&~Zgxz5V{;l1+*A8`R zTk$nn+b0o!_d{5HnI0NR`3h05tFGn0!}@%_@b!3Lt&-fs(d5m4OvDtsHSUe- z@p*dqz_ID~lfnaxBmkJ&Q9wgLm6YG)K{Bs9&V9Ahd^}*Hxb>6z`G7fwkE(f`~xuUAB#;_xhSD?zQy3W5K(X@X1tITKuKXfu)>m4#^zRV@>O$emU4LG{42*_Bs{SuE4;^U~k=vJA8IsW-3fq zk!IGuJW0H%e_ofT5V>7@9grblB30PvIT3U2%b`+u-`I}Rb}=ISZSr%A=W$z`W8_GM z#;2RKumW&{^K`E4pFY2?iURzO&QC5o-)}qK0975U;WS>KMZc;ev90m^ptQVa4+}95)Xd}XuWz;w>s;K^b7@)h zt=YwXNqB3!Y*qRGbp3~ZtxzZj6GrQ{F_nliW!bR5AczvJAcz*0i`U(487W8Q84_LK zwe1A{%*e*zjx^1xZ07&v{?Ol0(QqsFc}4Ot{WD~%uZsq}rI)6kUZu?&eZtF|+2(G8 zO$AKLJN&yl6zpvZtxr@Dr18})lfU^3qu|O?A(+9~xpzUhf}<2>2{Gy1e&7LX%X2~~ z$#*aBRohWQ^+LZpZNg=y$eKxE@4s9ki;W4`aZkY6J2o%|M_sJ zh50tBksA!Qfe;%EL)E`7VgI>zt>8euYhf`>7FLRyw8~I8cNMUqKx4?$a#mP1u&re2Owx9$_kbX^lYFbbE<1Ahj#|| z;-hcnrmeBirv$%K@nuW-yXNCT4p~}}l0I)WVrr>V2n|kJygp2>?Ljp<;{=cJ-kb*i z`G(+->(2fL?s@M7J`02|QK;lg%Tm;T^O@~*M4exDu03DxXUO_~SXQ_Fxw$uv;_lE| z2U20Y{>z~?G?;)V{T-PAR$axFekr5nq7xgZr+XXf3OO>XC0SCO-gCoc0aaW4Oqe>H zs9WrIO&XATQ(9jlI^PSEv7#v_?>vQJe&DON8qKV)<9i5YAY_vf#uX9WP0a{C=5gBi zvHHB@e%jKOZ`9@^je^+?wV#Ju+&PaD3xA93sIkqi2bNIT@Xwj8FPG{RPc}TJWsoY% zE@0OG`k==Cu$H%UHV$Qf+jbtl9T}-gBOf7j2&-E0yeNADl-tX_aZ?v{Byg+gT@vdr zubcg+0(S4a_ScwDTWBND_!iJiYTU=Jib@f1+E}Qu%lLJ@1PHU->f#tXKh<=RjLS@}dXmcs$MMJG|dp^#!V_cgGGs z;qGLDw&t^JhT0$1hdpc$rdk-((*AX`dpq^K;vUoac`f*^;>+^=bm?riCfYBf7oX?7 zFBn4Og=*FH#=^% zwy(xu7d!$v0)M&-C7jFAkBg;mb|8WOyQjJx1PN7sFlWu4aNgQ1jin4LT$VdB-)ywt+JjlOFtx=6npE@t!ti4#Bif4faBSj>q zoE-M1^pcI=9uSzj)Vl9TM;}*Ja(XSV-aNTIv|bO*EoL}8)Vf1qzql<~1!(mv7)!!H zu|nL`79kP!h=;)L?We$Qrpsspc5FXVyyomErk((qBf>}mrn2jl+>i3Ive2}IoVA6T z(xS)z9+SHZLb<&0>uY7=!jPUHq8{h8Utll$SSIHU*<1Peq5gepSKuZ%`$(Uslo_^!FoT~pgr)64P8Lz~I+bAQ(3TPdKH_;?oWJH+|& z;QMk~$>sZWXykp~&+s3qJ(4c!a=24=u{&z^@9HWtnf>$Q?#pA=%jnC?OXz3sfAV7W zjV`;_k)*Q@%Z*phUZ;6U$kHaX^<{OHt!EcmFOR^rm6Zigcxz?UUPG0Y!%BT9_mt7o zw2?RPyFJa+wFWi*cscy@jAqs$6KT7<6M3=AIPM0T^1WAo+5hu=`a(MHzUo0})-&|7 z#USo+Iaf>uRck#P+m(4(4t|4q;(OLjc-ngL{+dn&+l|5M_yUsU`+PTY^8SF;=c?2w z=V0&o$*b;5i_89b!DOL&-VDag2l1!NPbyDmJ3G<7kE=bK-!k}5?j*uRPeuh0Rc^! zRziw@M~QO9uzu7L*#-pY)jU)ItK~n+t%RzeXj4BC z{#*j-Cf|KqnCw3nhJ>Z)Xk32Xk`Tf{Q?O0AUO9F#kPcVt=^JE_v!nj@bK}_WW8*6e zifP6-nARb6II3}(xCQ6VhU4!_=G)URid(F6H&YCMe9+iNHvOQh8xUOF5(1}9=D4wi z6U|)3rxrm!7M!o|$Mi5(Z;}4o)Ut1MAlLgaBpS<6@lJwS_UQW`L{deKg%2DL1@Vdl zK$Izimrvx+&ttHcQs&}t4My2Jy*xz^yS{v{o5)~;={yIrVlMKP_q;|Zudzxs76jrq zenycqCNny}e=L-JeA+5usLq7qUm*6gJ>AtvSjAC8k$3GQMt-qf_8msW{D68M1SP1A zR1C~dD0~SM5S-!0n8rb_Wcp1#mUkqZy|8PWV_mJ54R;JK9YfRoX`2DnAV)c%lVh|z zQkA75UUVxWVEo2|N#tV%-*9qjEoBhZ$u;p{1Q$H86%HbmIlAO=3y7DQ3T1n2X}hGq zv$^15Z)|N%`mV|AhTFt#HKHR~gnYNdFK($%Uxau!Kk9S6UzpXO&tbHM;Xb;L>)Cm1 zVoB-8^^je^SN>K}TMSx=8v+?_tR>u>nWS5s69i^}W0 zZlZ?x-aK|tydYeOwmo0{0d9ogc&*8dn&m2YTKw8mw|O6=#Q(a*w8jc_?xyXq_q(`0zpKr-Dh zK>Kevu2i}u0ij#zGzxLb{Ak#zwPM?;)p!b{mbuzgP1|&a7BAbB>Oj1fns6f_%+pZJ zQtt}PG&UPUw(v|h<)AGQ(?3+wnMO;D>UFx}9O|Lx4*ihRxjrT~&0A0hi8Ui5YbJU4 z^;e1R8s0wmq*mb&a!!&hTJqR6iC>V0Z5lb!jlG)IT>;lLsL^*^K-tEd|4V9KgtISK zl)gr%r#|yDgJ$QuD?94(s9V~8Q;x}rRaVXk5)8hz87*#V z@z&>Y*g>p2^2(e!nNvS8^!)s@wKsZWl$NBB2Try;9@x^aS{;!;6&CZJF@!!_j%p$_ zJX|JFBJtbr1-~_|ns2GuKNZPo_&>$HD!P>5ZAIsHOEdI*C6FJG6>a=$zC%`)YdsVJI0GpJ!=>jnj)l?bbCED?T75f zs`sAMU5~XPe(ej@^L~Or-Zi(8)+pkKTOAE;#`<-vn%E~XtPAU?66UEy2I<58`-)*x zomP6gdly~2?5LJeXY9q$UB3AaSKp$rC#@VRhhBsry^nX4OX7i-`wg!`qOkMQ$Y0Z| zmp9Ov&Dvjg5X#RK{>pYzxBgkHREG}{m2c}QqV0Bgpuk5SJM(Y-IC>f)g?p*$3=h6Y zvJKjJQOH9BMS{DO@!}k07(raRhGWduQ7MGSjhDN#h-D0dF;Dv4E@`6z22|=22F+? zogAe^!R23jU4E>J?*dBXO(d;*6t!1I;i~Z`<|ExgvG|EF3#a=0T#c}9^fS?O0~yJo zy0?1QN4-_cSao#@Lpdce1CI5ypF2~=oDuzGzpIsr47)7PC*HTiBd(4Kv>vLMRr=lQyEkKAU^y(`Y+b17Sl}%b|5?nBT@BLx? z{(L5f*L)+2!BfP5i*>~RoXfELd*@R^6Rqr&_@@&JxC-D^~dJosAv%5ZLE-warg!g{A8ph z;~V&pO%h4zAAnlQH5K{EQGe7WS5b8Es6XhUx#)|Z^ZYAnZ0eG9ND%?{uNtD0Es1%- z2N>_(!9mF_&H)9@%Z2#M#l{YXBm*9Og=KU5 z4GPl~sgEP$UByGbS|S18n4x+-#?@VHsikyUpI*RKbpQe zs>%2NTafNXS{g=4cXztsMu&8FNlSNwG%`ZR2=PF<8mtz!^YJGmWCoIom|0; zU!}DxIXpSCU^q?YD}`-w`q9xOM{YN}jB!f1xz^u9YwUy3FcWG21c8TAA;D9LgnEmL zimPjfbUlM-V?I9jkSx3pJN6a3++;pS%Ovv>QcwAq+qKio8l97V3Tyb&nN)0)iP0{Y zVd0Y^thOaiPEIBww@h3LPNoq{F>Pb@V}v265e$#hQtiqq9uGUBJwUBsBZDzJ;}=N* z1I^~t(!Lp6T~IZ@6H5gDmSbwYdG$P+qajH6&!ONBmaLX7)>E+I+e&jJWy?9HDE+ ztubyo^DchY|EqHGVih*bs$N!TOqWKVFHiIYkJI5yE`aL;f_5 zX*%D)MU(SHI?HJ5hL?*<8}VlrmD3yLj7G}H95|Z=I4NO2|^NA6gD#P>@ z_TN1nj6!cCEHtBWrYx4o8B;9WnV&I6jpJ0eD*dmj zvt3N*-|ZxB1B6KVLm#`#tALvV)+Cj(_1_0+-rn_jBWgU~X!-J5cM;6;ZRkj~Hp1hc z5$T1fVhNd!p~b6-yv7qa{AEJ`7Ds3bq%At#zMb~E81z==o%8|wr>*zET{57~&uBnN z7bv75k3%iHvkEICkjnV2N7~hejWh0u_MQ1>ohmO@X}Gb3w~LFZ!1BO8R4SIXQcKL1 zD9cT|BQ&EbtC;EcTGt)0tL1jR>GMICz5hj69{0{|pJnX*^_R|@>#{!5A87Ml8S1!t za1X+pU|)5*oxOV)nP7Bd=|XAD)DRw|B(Tkhi-Au zqTWZu3xroGh~~FyvWk~~a=bqz0Bm`sF>USY6g%ckI@*L2)%j^xrJ`ubZ{uY4 z%%16LyG(k-itwcN#;^W5Ii5t5;Ike~A!cCa>75jl(`o-N5)2tJu^g@8ae_ty{>nZT zIjU_v4!G1qivli-pWr$R#9&vrlBpsxO1xFN=T~VU{OA4g5_m+|>5A(#Q5hTD8|TV$8SR;m66yN7R{xlHWm_(`ETTf8)=qZB`~m3Z(u>{G0Yu%sW_Al>&qZZ zC5=IEg(`MKzsI1|ugb9D&a(99s(`iHdicy*D&BKd*w`#`8ukuB@z76}mq5inE{lIE3UFou=hLZkMK19cIV$Ld${dI8Sw5eu1lK zPmCh0a}-($4$O(d=0~eXT^$NdO4{fHW#`WNEw8ebJMGgR^4g3bo-7L|K%Z!}d-Vd1+%LY)$&a`{a@0 z_@bG)f@>CCt;HFq_h`e{8suvQ=0lI{&xoZ^z;X&m9=0Riei+|kn<6_ckqaE zT#;D<-+b7gk1cXHxZ*vgG;qtnMc~GCHitwmi)@-7O7r$$nja;{=El&$onF#eeM!G1 zDtlMLPXC{5h$dU|1HHM1MwXNCSo^XrzaI(ha3eCq0~!fAGiEUFo|&-cLOh6#c9}Nc~uv2kc@!H#4dXA|` z6&hp(N{+Z2Qiw9%N_G3Vu|5UTSvybqxkv5=K}uQcs(@0n`HW`{adz-_oNc@WK3t}b z_8?<}^f}(vUm82>m1k*C)e{afI-mZ7L3MhsWId}_3}bjL1Wh{Ev26W5D2Ti)R^EEo zxPx4d;a^^;<;XoMABo%4I!lj#enR5Hs^V~3p7gIP+2fx7k{~*R%Yi@i%=@m^3VjD; z=Y^YwHijkW8O-LMEfO6;QZEIBphFs9e+>n)Bx|}NH zDdY`DiLw#avr)dskf$ucIEr*!MV~L1YEj7uuq7+Tm{*NS=lVe&dl_QRVa=0+H%gru zI&ujSMh>bTm4|b@Wak2N*u40VU4G+dhE7QbM`_+!hmBX#-9|9nZvg%ahS2+&-rn8} zc4JJ;(!1-E(3|aSW8>F)f0h+K2Az$XKV7bGtk3K{`(u-N5`5Buus1X{y*c~#rMX$8 zVeYb0|I61V)DgXBaAI|^rA!GbE{oDUL056fPzk!*&hLRwzz*;a9-wSNfgIpIU6|Oi z^k=@`alKslFnV~LUI#aZ>yE|f&zF<(ukkER}c#o_H;z3923uBP{yosp(du-KI+UY5r`4m`CYA zDj+fJFz*ksvqoHxbl$i2wP?icl7I(-=&ebM}DB zrC=98j&9{sc3=GIQz0l!;N@KvjVXIt>XC@~)627hA{4~zZ#=KgraS(CMB=QS8Rg(XAOnLm6bo;cT@AN zJchRF4&JI4eSQzTjXU`u0y{Rhcdfpw>*4<9oVGgI&`a*gmzJ!s`ojW(R=^F$=9be? zxmHhW9)Ur;jzWDV{B^}%rUeGijcJ?V(2Uv4t8oUj1F$HX;jcUEKsDK+!0t(qaG#W# z+Ll{6qfPnj%JexW%jDFq1A{oDS|uVo8SxdWwg88NJm)4ub>-~-I{W?<)702uui$W` zE5b_Pm@-%ekGUkDt-sgs=TcO>+u?{^d^2y_v-QD0Uw9+5HL13l(zvqcvQn_%}B%JYcy=O`l z%oPRlst75Y=-%3gBEkwVtBC{}@BHpv?c$fJ$NyS0ZOQ&7;Yp4(%a`=%g8%;tBzOah z;__+;XvF>hRY-3t!qL8Ucv_Rp;+(9r0J+Jm%FTG45U?*@JpP5cl+lP!`CAhP7;ey9 z!}u_)BJB&e@9Mf%7#S=!qlmI>Ha90Dsi+~QuAbDe;DVS6vv*<~s|_inrY3OUCnY27 zv|nNvZlsPAzL-zr$ynfRwn_gzdjIfmD+NsFd9)-PTirn#pZ^2F`F~jW#b?97V(-vCMY)lZvFA9rRVYX zKj-nAmA}LH=I!2Tt@w^MfM&$6=i$h0=BekQ<%!~Y8~DplC<#x$Vi-;zM;{*_Db0ia zF0Vfl#K}HLTIypsG48AK8odhHkLCKyCY z+V@F`@tv4SeZ@Tioyt9C=;;HXM)pvviUd0I{qd?K)-S)R`>ZVTv8RQF4D-h`(mA(^ zF&-15k_tuH$A9@yxsUu0H@hFLw%rZJe*)UAyGrwigULck?tF`Ri(o)B0=rRts+|V_ zk8C}cQV4F;Wl8{6_$lAQJ%Ew)Bn~sjlQIwJiHV7QJywbrN?csnT>>h)xngfczNlN! z1+o4NQRSZB0`Way5$b$;ysNCNv@Y{^b36I|T6T~??lQ6M;dAKi?r;i27_9PshT#D) z0i`@{n?IJzyc8)vdLBBQ`w#dE1n;&_T)zBEjp1lM17vEo@Bg7ZY_z&xR$fj{5?qa| zrqElZ40>mSmP*GHrQbY5{H)rKMJ3DlP_-*u#7fXx_uJ_23#NA}FCnZD$6)dvc7p_D zE@CQODI<|JSdj-W$_(N#k7Mx178-wv%99FeKFQ7vWmuwNVg5`{Mc@(XBwf-n$Rk0O zM4;9dz6NnY4N&k0%MVXJkE__>*!365D>qhg(fE#+1rwc^c0%~WysGGX5rNoITZ3@j))jNp1p*;r(q zYmr>rR929jLKHlq=19QEcA28^j#pf{SNrHWovqyzt<>(RaSZ1{=xb7oD)siR;soY9 zS65%@YhTxawHdSXmAI-6{k1ndqKAEl6qH_qXE|bv-JD8NsFcjy&Zh~wjUsSdmLfNf zFQKe+qo81TP#Io}&tsXg-t3j8oZ@aGwBgmi zlz^xrQoRe#OZyr-?2TwKSG%pECQsnO1|$-J=R4Xf`;WV!k9Lt@)$qHy*G0}22KQmc z#{bQ+fRe`jgx-f`d6^I5p&%S#yte*tNECPwrW^o~1wm+Ox01&yXH;5&Y$!p?>VIr< zX^dO&;qpn(lMDr>XsZi`38(wvI0)~!NWzB%Cf2%|au8-WwMQS}B>cXXy`iZos-2?7 zAdgeY-}HK?;%ReGbNzNfba-p@b;w!9aEd7Zf3I5r{YrmC1o6HRSo#!Tnzt4f*lzFF z0NU&E?&Q}sDZ5U{X|L!jH-q!nA7yS%`%~Pn8H{)BWbfLNR(xJ^>Lg5lMLb@7U*C`| z1N%gl_wzOXEAEr|lHMe5KE0d8rSH1lodk$H$A$KL=j0+n(gF-%~8mfPU5zA&7h1`;7Xk;_bswOVT+B{!QqA zxq8U@1Y*>%m?-5%3#2}XsXhB*-t)LQm;l&garpmal-c*{T76cy_`5Ys=A4>@0ffEQ zP*f?vNE;V~|DG>|eH252N5@7T;$}l{B3?Ma5O|dbGfN@DmER{K>g^4pkgkY7Qy?=h zHWa(m3kH5>ufDPMmopi0{+ug18H%jUGBJt*?gF2h;*~Mio-6a(1(4envG)W(Jo_ohS`xNFz_Ilxuf8u^LB^&<6p)Li3=7PL5dJrCQ zLJAxSq2Ypf&_6HJ!!U`k-yQFzsKU$+1;ZPQ>gePZ2>GsG9F054~RM)fk4&G$o? z1u1mCq+TrIUcIIp0vm6#vN7dVKgi7R;q_BhNpjgPiK6gR}CM3 zVeo@={$p)62%V@N?Lu#|pBURr1h}jUynlD!pCvp!u0Kh-dIz$V3-+0 zEpKga59j}0bNl`C6wr|q3JX`WvS5?!;yt34^c;#dqwcNVn*-R`+sYTRD;QV>lh^iSsz56lr zYNIz8xF_(Izk*aA_4{pv?7!z#F3w;m4-1DJ0Eq@*H{lwP|0hJLB2fswTHL(``n1>1 z#pNM_t<_^^oQefvj(UYL)C2JE)8~LW$c2WpO8P#@yjHo^RBS1J%zLpv3CMc{vgeB0 zKwGmLGo ztiqqGvmhLJr}I&Uhe?!x95m-pH?*f2@NMAm%b4=XdqO|z&GLM;`@hZI=UB|7X zrO?%OjzaWU;RPF_h+Hp$EKJhl3xX>-d#Zo3W5j?tQ^r$y)bt;oPg`oPLkfnchW_&^ z;pD&X%H{@ShLnHjsGk#I7@AzN=*YhE;S0DC`|R<^sA5woEPuz^)H!bbdLripdW&}H zT(#0mwGG@IMTKi&Xs%!{ZHPl-W9ix$ZjB_zt{%}vpG;b!7eV*X)JT4#%%dA2!pz7x z82LFL{!(H#KgH1ti}amaI7Xv1U2a|%@t#nu6-0A1C*_0l?>8}i3Kt49xh$=pW)_`| zqoO0Jiy4bR(BB7pGt>fneJguT+Uco({OCyuW5Sjer@ECG3M&hd?tDD7G*b|f`w%kL z@TfHPcCaF9C#zj**Ewxkss_oy3ok!!vt#^e%LTE3Ov;lb=_K^4V`U;i76<9qT}o>3 zPu|Q|SnAcwX;=U9DyhuZYGZSLV&Vknx94})anmP@_{rNSJe0)lavZ(5ifKQX%}bI_ zr6WtNq@4$Dg$X2hNO!of1XY;c{V9fp zKdt7h93w9U z$-(|hU!XU@gf~RV)HXLq=e-B!(ff{`r!m(FCy1y8aZ-;5J5JZk_0O8<0#spkkF(!# zGkY6rT^)%fvzB&tcEQ2V=LLV0X5r^xLPbp4y=Rc>MaA7{%)@~lCS$8U|yhP{2sFYoa+~$%Q`+g!$C4R#}nfidRau*H9ttx=u<$$ zOu7Qd84p?jM8et(Xo!zt*xaZX!xFM?t5LYST^8wl;q>qGr;OSC6ViWZ#`5) zzX%7Ki(BM`N(Rm-mAuT~VdoZRiFw;n!@ubfj~lTI0Z`54>TPfCuU~OKd7gHBRJe6c z@MXNw3@bC#Aa`z7Z6mRFNA`g_$V`x69faD4K8;!&pNAd{^38!2mOYNo=(-*A4q?`^ zo&0ks^Ywj}(BU?X84(t5W}hB}JBha8I&sPGvR`kG#(mDjG^Y1o(jHe@?!>6GE!r!2 zx?yfy8DT9&W^T<)iS_i@ldBhTig`PgraMLP#zSWwZmD$x7q`^F_`i5GwyR4GC*Pj5 zIl4WMBaqqUnDSPImJFs%7}v_N)zBC2|9(MQf7my}%Ny5bUPQ`1XE*LPv(stX7L!d! zII~$`m3D!*+nV}zDou#Ru=p(IuPL!6;yYUGQmMD_GqKUkjy)Cu&AKFgC|Q3J@D$Fsdq0>dn&2 zRH2PG9!ChL*_-@|b0-0N(d&z_Lw9fr-VF_Y9C|cu3o?!BX1hBF9w^!S(|)hr$<1u9 z-EkPk%J*yaj`oMm1U^7A30QOh67g|T@?_)FJrD+P`JarCvbX8XUF?1%f{=szacyO# zabX8{HGf6?aPRuRZ8SUd#?BlDnk>8PsIPBtxz?D2d*q-UU;`a7VhsXQ#IX8$Jb7|- z6z%he2Re$342ef$!fvW|as2t}6YS&jL0tAOSF3;aveT(O=tf-A5gZINBt$BAf0VRUu zfiWf!uXCEd+gCG4lR+M_2rU!orLW4Re~4yykF~dKhhH2CY^j+|qh6LhrC8zae7Umy z>ZNPWVU*ijiI zVIec*y>c-961jUbB4xVKJz$BKQIAccidZO~TjB7tD)fJESpwU$w}!H9fRZ#JSU=IC zz&90?wZ`{Xi)ozOTWgf)t!Ex5ka2HVRM)4^LAWk zB?t)ZlDR*94s0`S1+6nwL{<1fviFv4%eTt2xfELEG$q^`Mf^kei%u?#Jp=A zC8#qtHSPEQC>sh?_{)cf=X1%aKKOG^VzcO9}xDopf!I<`8H-Pgz9j!mQ z7@1GfR<-G)u(mWbCB zIX?>e!9bf)WW{%E*h{0SG}HC>R50ORFyZKv5=10@eFxm6rDU&t!`Or`?wq;YauT#f zb7J1+X^6pc`I@cU+(_|&-wYrzo{~0f^UTazK%d>E&$LfU6E(d zOWZn6*`Bigg&@`kQ&d9oEU6j_m_PiTSy|i{gWt+xz1z5hHZ{NXYe5+SyK?hdbIQfm z!nO?_bD{xqR-7pJsI9!tao%~MY`uQbFOrl*e;H;god*bMeJs)%@8R28|G6faq3A?g zG*TgqCrgWmsb^X>*f`PV{@wqB>zg@TJDg(lTr6MKbP^5c=EG=?*MUVn9oWJ(zKh`~ zfZ~i18HRzVkyHG5fejoxj5W-aaBK&`v|{z`MuiAvzqC{e6=9xFZ$7ci6nwL_@AGO+ zxJrzlG*=NM`Mo4S@a-|b7-qfc2qu4OmVTa(eIX~M;`~Iwjr4JD5m&$$s*Y=uSrtJP zDIc_{aj-UGHSUSC=1x6VGprWJ3CVj$I&Gwz{KX{hCu((yKSeuHx?oia4ar04s``Cb zXJ`0fWW>xnAqlw$%tba9fgI;b5;AsYx%<@9u?bCcV1Re z{&7Xj7V9;~I3pC)F!DXwIP+f@NwonEYS*;yl_u6>lq+b~v$q+tH;fDKgQqlBJN(?F z=!2i`Lf^V9dFha4r-W?DNU}B7*HZ&IjwlAd!60!*+IGa{E25tHtE z^Icx{s*2wK3+rV!%IZc4d_T@S}=Y;d{m0XxVZafJq!J-ws z8Wnx!;h+QqG9`5=Hdhdp5ew-QW7LZ%CZn_`ro4$r@M&>D*fo5c__+^0$QjucG#d((7>1S+RbVk?<`o`kyBhhUGx=CD`b}s_ONzm)tK;n_U`ZC;49qi_^gbN zw8XpwoS`iCv&G2Jz!Q_TR~+$$wG=RAXb_qqIe$fv7mIzmD{*yVTjZy*J%yJ63du+u zp&NWU$P6RO?4(KD2Q>sWR`s;Z$bj-eP!>NG4{!7?$AGR?r8iBf^apA7wgg^ko_95D z^Tv%uRqin{Y;=#;AE3Su4UL_a3`%S@uioywKSQsPb8j+?N-sv`d>uV$t#;@>6QVwk zQK*h&mPct%MVepmq#PwGU<$;?M{%5BfP|lTd%Tr{4|W)MlFLqBz~Y>eRm5MQ%>|F3 z+U>~=k(TzBbRe6^zt|e5+X0BqO0zFXGdjrg1vLUdL9^^h$V=6?6EG~NXiaWL6lt1N z>1ea-2wZg7s^!qP^G3n*&wN-l4sxf<*p#`H>`jg!L-9vk`SpCzM|6H@ebJ7|2l>dP++>emW*KRYN&!Ahp`r*TZjo?&!Z08$qOBI?@mnUM zPX8~h%^*Mwz*k}=S6l14TUrt{5`aBrlU^eIAMthL%yUm3D9uRi+qIp5+MXUap0B01 zzbj%_s@)-mv3INg5gvObUx7HR>r+?t%;o0i;PaZOj3LSBrk^KjV z{rR50Jskp+Nai^($tf{NwaOOi01Fax!1n%1Tf=|!$Sd}or!o!VKD@UUbtVXQIoL2T zfs!7gFeVaR5(Nf+L6iwRA(H-e^xQ4?+;#LUudJj~v0bD*?xj3U^xTL7u1z?W@4cz|G35ISB`8ZS0-4^RT7pBUY0#d_>#?>pfPePyW z5KR8J7n}<`(F(%zp?5%=eyTsF?D>bLIyRUXL`eX9wLaulJh$ z-J7ve;HN=3!WZ%dv|MpRmo&r8W?R`MRO9idv`hu~h? z%}ImlE&Ec{BFWgxu zHB!Y`qvBE3f`N0n9qfEq^|H2I?V&$Os2xkl+rj!-ztFOb9Tqs%XrKXLrawU(Ftu>d zq!wl7RS6@A_0sd&@NqlXH(qtv_lI&588|j!krKyJaP=;|%<{Ra^+utZCFw}sUmB`o z#iU>qVgA?RM)7k$2!dybu48x+EsK+m*wxF%-Y4OX7L#FuY!I2pudo7m!IN^aLrtUP zReI@j^Oo=2o4)qr$&TQOGNIW?i`)Xja;SChvf=`H%6vZ~)czbDw zel6t^9-y1v>Kp!~hI*);5BuWv+KCKuHUosSo#aXMHS1E@GEuOX+Uk(T&E^Pi+W~QK zwR$zBYP5~@(Dz$qxMW<=vuwqV4oPoBZfm5ApABC_vio31&xvaj+n%*0L2J@5sqC+- z94?3Fh78n3@@&=5dh}VoIw@X#``CLCCO%`Oh3a>=V_nDQqRKyu)d#}A{$J5pAiH3Gvec8dHA^ zxOElWLg5|3cas4B9{R6e7UjHip5S=jN+5*+;4Xpn65wS*FG?9Kw((+An8Wk$THM~m zT^t-7e0aM4LhN@hMoCe&h;9eiC27l$LyFK=FZ-=Q%-0j$Z}NZH$& zk8dq1;%jSL+(MH$^iIacK#swWmpzXk)12@V+p@dNpKe9-^HbV7Gx-zooydK}p+QyZ ze{MuJdUoFbq*!Rixj**n8O&3S!j#}f4*=#3zV6!tF7rS}+dm@zRlgY;Q?Fk&5f1PJ zHTySm)e=4v#@9oV==&5b-+EL3Zc=cRNy*H^hI=WaJ{d5Rb?#xbZ3)a5E8DY4e5YdD zo|@zc+z(uAC7+9Z**{o_>+YkYnHkmGEO$D)Q@L+H3v%PbM`v0IW z$FZ0jr}}{7=ft96j_j*X6u|YN>&C`;*7@_>G)iO^EL_)1GgEMtY~GM-LTQi#>!W0e z`1*9a7zH#DDb~!aLX&Z6(J>%pu5kQ^R=Bk*+crA-7j_;nJ55ugi=w97v~t9|-KJkwEjM z^Z0YG(D(TDpAlhO#YBs^M)_KAQpEUre6cF(^_>>0keCZ}9PtD;=eQdmrv08PKEm^7 zi%zzhdS7!`Hb2==r*-m+j%j`3mpI+?CYbwngr2FeJpPG8i1d`B%9qfhqU;-+?N6_{ zd|mw;`A0PL9<1y)6*1sA$3Ait)YM3-a(exui!`aOhb6_xdu;(mGR%hL#OUAT2*bm=}``j zlEXt9#Eaq+WVw6#wzvWzfl8f&E8VV!4Xe(%)`|Af3B&Ypn>WxX2D;8Zzy26twN=v| z>2--5^s>f|C%4B>f9(+?&EF~@=*)AVkzJb2YpU`OAi=QX56}R#1NlrCjjWr@>wwp! zwY9mqy{qf|{zh=}1x#f$kZQ0Dz+RoTk3|U+kYrkP{!4%{w9Mbv^QXH(-H2D6n8zUM zfGKf(2rQ~d+$*|L%{CDgUXMe%y0!*H{P`yyAic3KeOe#>ES{qco|xdQ$Ru?Hku>n) zW5spDa_{NeOf0_zDRs7@=S|2ZD3}{(|3N8dIdT_(SB*t>f46*3zglm*#@+}j7G%at z+ei+iAZ^dtoFXGyr|ftxu`J9{D#g4|EcJaDfjf(`y$>qm_-PnkU)$$N$nwUNllyd> zA6FY$N3b0yfA138KH4D;s`QW%s!>#n-%7|WX>;lqC86-f8x^|Cy#9gSWIAZF&R!Tt zIk9Sx%5_g${yqKssM71o-<`Q_5|2mAX^|j!Exjr2BCEc1Nv@>OMH6!==j9&QRa1p$ zy+vZ?_XJxH2*jU|bZZ}b2U!O^DKuv7yYQ-0M(!n7W@ zDE6||_!m0tEaMkrQg~I-6!V_X$vUk|`nrEvl*mt7$Z}^~$KI01XtrTfX%71Ta1_v@ zzEoe2-bZ<=ES9XsbJuFQsdxuLax2@ zKvq5}OS;X-rxM@%p})TX@og7Zyhg(tJ&Uli^1jHR*)yd*UMZpCXV06JrK@I!9WQ~f zl0O4ld8G5=Ac0RA2o|ny{tkTh1@;HMUOpUf^+tSCM3U~$K{#C@GN}PKK+Sb$x?i@R z)hd@=Og8=7ue@SdVkrge(qg^6&16gTrJ2o^J$Jz z#^BoQ4o|cOx=beQ(!*TRD+TNQ?fkp*;{^V)Sd$8G+jHYZUeqjIfXPB`ViF>f@ zTFkT@H#e~tuPzfJ@9})OsRv|dkQGAdb!M9Z|0k844+tGPeruFiN;oAAnG-MsyQtNu z6jdh^%=0@w%Dw_+z^PAJ^;y}rCDMx~E;N-^*;YUO-*M1jX=MLZJI(vs>4P0Px1(AJ zdJ~7RKV5F*glRZE^{y;vRx(ba=H<4*Db0#^{kQb*rE{^9rrJ@#T-@73f%R@^a6x^r zXgqyPAS0EUQMeY$lk0>=<5@i&vNW)CNWk100UWwL*U$4pJJZur1H5u2f2q>Fat;0en+Eacsi277*_R-pV10e1dG#kVFNqgsA&j$&)7bq=JKiWKX|27j0QnF95SbUD%R~IPS4NvZgwD0u5TsQ2 zUHzOBuVr_%6XT+=JzqPvzLDj%Eqd|N3`GyV7SSPLq|_^IiF-wC2XccB?UPAKocaus z+QoZTdk)@umzyEqvvsW+H*Cb!(k?WCUn4#icvs2IULw8_-Ku^OFy$OiR{riI1DY{`eaF%xywy%u6~0`H;Q4C#~Hfxy+uYfuM| zpVkMVTk21+Cb|D?lgl_Z<}uMj(x5`!<>D{+oQ29TZfsg=>a@)m-83o#(Q9GG!79w^ zS(jLPa`DRG(tybk(3EMwU7|;3_<8BktTerU4T*BRJ-@TYkn@`#lMzOA6uaj41-dGO zV@$^}WrfS<$>(K47DZT^+ew)!qLBfpL4Ie}>nX62r z$yzdE-L>dB%#8FqR?>|x@IQ8NQL4f^yMK~ORR4q{D=Q}v9`igu$zXNw7m(;fL^Qz>J86moyRe6V^=wgmUMt(oHa|fjEs2`*r35>( zZXAa!u=F`nH~xQE00WLiqB{vSj&71t?=hHsh6%f5vgstFKAmd@!-7!}9&lY;df|h` z0@c^?tN&B`d!Hu*BMcTpcb?19>GRNLtv3GBU-$i2YENj$9PR6Mjt9MPs~xICOmzM! zkLyZ#s(62UVr|Jltpmqd41%wj4EWb?X6DwIb8p{c@6!iGHPUUHlvs8%z**EI5bZx3 zc+=O;rC4@BMa-plKjt}{ygUDhN;=OCNW&#m_FE*|K9+jKLE-FxSm!Cb$b}9qHV@J@kEtm*bAy4y1;YIp+CWXx< zhrb#aD}h?&b9Xbd&`!H_sp-gVj^U#qwB;H++VhNQ}KZmoTv~8#pe957we%3eKm|VVM3Ru z3`>cwdI1|ndrC5_ufs{_l%~@ZynhErhcOte%91@7D;U{5%TMw3aKa46*WcHZYfiS zi7*>ryqWZ^5sw8sbi&9godhYEs4fA8xG{9Do#!68hTyMIBD|N4tU z`GoID9hdqyfjg4-CON>;&QimXk&OAHq#Nu0osPky0n|^iBUStR{2FJddfHBAGJ-^J zFE+bD-wwZ+gPYgbd>!m30ES~*vderK^C{E zO8}!6pHZ-dI1TsLHz+81h7oSj2k6D4N(gBj)GyRzkk zb1J>uuhZnFLG3mMLh_M^RsrGQ!Q9V5`fv$8?;DF6(bbBBzhCDYQc)V-em1f-W;OYe zSkB>BI-uy6Ig5^1Mj3^eMzJ|d5OQHEO5>o1z^xA&!0)*QdgFA*r?8L7)wX}zwhUIR z2(LM$q4{ajwKglClP_E)VrVHwpGlQbC}M<`hJ-`*xW*}GR7e!gSCi~jaav)TJQ zZPV-V2Tb@7vVxsIQWj?^;Ju~Ei3JLj@WEgUdiX265PWAU9oJloE0zBwT>nJG~+gXFukk)tye8soCUMf|#>(M+!=2bE&DiZOJ<0AeA<3WBr zdcNmIh3(6;X1(ec3mg+1x0Hl5Zr7H~k0s}7SwVTQV4$wLw5am%J-qGpb~VqYI8M&X z@j&Xop2pZ8aaj)wbRFgQAmzqU3wX=SEDhS}5{(9}tbB5Eb))&k&r+Qm$VcOgrAzB$ zn-EA9@;GVy;jjE&>dmlmZKm|WCg)%pM^2Tk%-L=@Mc9tIsH${@!7mdQ^$=HeJ@xU# z_KG@;YU~8dI+0-!;YR}_qanhKQF|$R=D0wLRxf_)BrH=iv!R~S8H2;L%g)F!LV~Mm z5_F|;a6Xs5#K%g9=(9Zpqbc!Hs)NBg59U39j4RJw?;az9@(oJhKln8Wsq~A%VbtPN zMbX%01YdagViS$b%PNm{^yMC=-8tlpGu5RtwB98H2Djj!BnM}26i`aCmMw}yhSXm; zoRoc0|Do0WB>xJFA!F?Eh2sIvuP$d%Rjfs*on^`WDswxQfV#a5iKCUyv~rq!yn`IQ zQH^bysbjrrBOo_QcY?*z;>veq@VjB2TIvcydHB9meQ_&p4AUL3wp1qWVU3?11ke%p z*2w9{$4WHiENn+(6&0PC3&&xLZGVV8tSEz`KzS$V3r3;#?RcbznF9PdQh=~wCZJvu zSWl?EHhk?#8Vt(loialjpm;=u+j+_gmbWE>; z2Uir4`<+B1>`TSLr&PzJS=B_PCR8u;X@}$~XN)i3Q(9fKTW9clBUjrQ(&R zz=f<(WzX##Q3wl;3UFR11(>|_rIJ#6D=QU4|r2|9b zE{RdO`lG~7=n9U&K7JEJp$;SdB!WR8DZBL2=lCzuXL{=}lOq|Fru=cd3WhIHDFAna z#u<*m>5u)=s*fmH%%P=ww5UczXqqqaeKI+=_=0#5hsE4vHbzHX5ULtaSmOeu9qYEr#C4^pBy zLS)ZE>=?K(=oU)En?}OL-~6gqK)?^%w})21x4?QN>*)T#=&#tx=Uiy|$d z!iotjot$N3{yK_eD49ZFCjlYCtFy+Fh%+aDdEr25lf_}NsrfIhSim_te1s57sQvS1{;2iO7-?(oX`Jo# zdhA;{*nK{vMmh_flF@2zr!DrA3zS%Ien^TiuTeo-11UM_HH!mU)8}k@3H{*}?ul8% z>`W=NpP^A-6#^l@{@O`i?~Fe3K_x5(n`BORm5k(EGNk1^}a zQRhr~Nrqg?&=?wDF)rzoJ!zMlb@#Wq3bRE|Mv#&707tK)#?}^l2PgkCZaCBs{&LiZ zhdS*U&$Nj3@P;6>D1qdM1{>XKuz)fWwW9TGBu+O?f?uU$V1?Gl1)O5^*|=o5w*mv< zswNN`1~wH3$zu4}taF^2`4{{A|D)+F zyrOE~uP;&p0@B?z44u-_4bH#}9ny_-Bi-GNFat6S-5nww(p`$uB_N=L{N{Pz_5BNG zt+VDn_jUHQ_h%Q$*$uy^hHEDXy~Z67P@Bq$oSI4HswsehB>pgZq}B7iE{@Qzo z2;eE}0l*5)c5^tt)BgI7e-Q@C0#bJ9FjVqSo(nBHJHBfZ`>o~HxfC1w!Kth#vLVD z#orfGB#^5e?;We+)al|WQ0xbcT^YYlIToxqkYT{!8?LrD(*N8jvFZ?-yR0T`h@s}S zHVC`_4*$T$3^x05u!ks~NbgSKSNiU^5^qk6q_E;D*1_uQy}`$@u(RfM`US(RkZO7X z@xc-U3Rf1kFU#p{VDLbd%%*XUfZ{5dia@hezKR!l*I#c(q_rrO#UXw{x$U-q4-Tb< zEW^}R7$?3aD5vR{AO)zU-;=?Eio{h!mYYa(+vU^s-W59T{hGC`4Fdd9Lf>|i$cC_v zTX+X9Jia21{#^(&szCS(fye``JMq7WDto@BIW78qs+J<88hCD0vA2y^=D)&}?tkSV zZ*$1|A~;EH^;_?`h?0iu2T0{IJx|)VKyBe>3N75F27_iioZ|gg`_=MHV#+*RGrE~f zfBK_>H0&glg2!TuA17zW1_4GOr}S7f{NoM@eU&)gP|b~{srcH3!TdWq>MG8dQMMs~Fc1V*KXPrZf*hj?hcu>Et8Oavr*uD&X>6L~zXp z`RtvZFAwNFpl(*PANxfq@R~n55qtKO5S8$|opEMaTD^pN^$MCZi8z0mgtHS1IYi`O ziI*G`F{BeFsG%l3VyF(j|1A+}Y}CoCUdBfNAM>CrVQ~6IYwWw=&Lf~Z=>vJqog!z^ zhTZO1^+gXhWKWS2O^yxtL1y2RQB=>fHZ&D$xTx-mgRDw9ZB;_Eh0V}nrqUBH^!I(- z+cr1P@zNs;nROYE|54wWeSz{`is%e15evJUf}Vj|Xzy1_SWi$^?+?VFadTs=z(`%= zdo~1P+RYYDk&)ebgj3&E?57D!c>+)K%(h~Rs3Hm|4sH!k=R~JOEBWRzcoe+->Vzbc zdyyR9<;4sU{#Dx~|0wq$F^vk1Z&^^NKCJdLX$YTNX*D5sS+o;dx+OH5apH6`w`!I* zh0zk{;)na+B@a>&-H&JvJ#)!D>(8VcWTOs*a9FSqv2;E+HV3jF#di zfy9x2$ME@|77&Sgs4V&G@z|gi0LJ$TwT>~ME!H6ww=6r3ZZo?3UY0MaixEr9WoZ9V zmkn!668>tM;A+s>NnxTsuIKg)5iiks>4|WBpJmFM9B+|A8wK?FnS-91$)@73^r`~Z zP31`y84{E0ZIKcvhaj#hcplPPn;!UDMI-m#FzV8e?|Ub(S|x*t{W~&L92uy{^qV&g zY?@k0Jl);L1k=jrR%<3Yy03^|waT<-XZ2NqLj8}cT(c8^70g(tPVkV!diFg%9rJ0pg*DKdJ#$NNe`{6qWt(K;vDb(Pk_BqEhSrxT!rz`pUz6JO06~k*#a6%Mk?Lfi@dFGY(kQ`9DgwxeQf4;dbgX}Wz~N?4apK6U79~}E6q`q#$c&{h-|!3&1K;CEL20S2(6u`y)`MoFgUVmN4*O@&+Fe% zX#xuxL6_o;$C9cEO4WSZ_93F=-0S#wyi@`p3Q=ifwoR9w{73YU&6D~cV@}|PIqswg zKxvWQMvXnr-^~l~(UirN3gkwiYnw4%XYqF+(%Js~x#{sAPFv)smy6FeU54(>SS6j_ zmnFS1;`54Azr2k~TWAQ5(Ooz;;TnzOQz@@{|JfE0i*@|J0h`(5_C9ZE)Oc8Wp%Kjr4opXQ! zjBkNS-H^72n9d^4OT6(6PzhETb@VDq#lr*HarK7(tY^H{RBr(*(xiJd0v3eekPTeo zwNc<>`lBSb_a!igA^|cR^4Ez3GHU$Z)VMRk;*bPf%TuA(C`d4rJ@Amkv5Rg1jK+L2n!TLQO?`OC z=nrRM-SG+LDe+zzda9sRhD^oB>ZTW@LD%v+JUHV#&t0zpV7|8YKXl`ZTMX15Y=PeR z`OUqG9qyP&F3_q*0W7XcE^8c|C4gXk$D)(v(yG8?#BjA!=$P=eu%yyn$3)jXWOsYv zP5^fZnYz&h+{DbNgF9`ui`bi79lrD|LmUw<3gr9Ms-#Hfweubf6sC8B-J+F$RwFE2 zeIee99oHH3RT3pLucFqNy_CBWLDKq@hu!>mP`a7kxhTCuAI4IgBNF}1G0RC{ceNlH zjTv`kW48be^z&lLEBKm*V98xG);4((ts+<2s8{!XUXxnZT40XIHulUU477g z0+7b@t(Fw$G#wTu4ExWNlUJi?ZA^7`M4q!DX^<8vIi5rl)t?5GcK@WmAiYFBJs3?# z06Ap)jhBZxbKRwI9jTqnAjy;Tssgqr|2p@!)ql181&7WYw?{0Nj8PUx4Rj;4gND1= zEB!kvr|Q|G-^88vygkh#k;xcfO{%XHeH%Z*p?CRdR%ve8lS4=8N==t|078dUSlYJ) znZ8}y=6-qDofYMlT4JO^?$nv8Q~csEx|SF&jx#XSW2*0eV?P>QybKG(2MU>l`7j+@ z@xqQ`M+Zd|@#sl;HctmXJ9)qP+j+0E)?Q)HJh5PvSO-rSyRT)rNC($LoDU6-R#Uh+k|w_L<8wkz0} zv|IJ9I{p)z;L}#Trsjy9HR}pJp~hvWY5-L(<82C0=LqrTOUOgHnNmaJ5W%TF6hdeU zIw&fWy7F*v$03_PRrY|}$0*jwF1}8w`D2SP!$5jVBb93BV(nmR^o`sX(hJC!4Ae*6 z2Y-}@VBoxl@^ZF+FIIt2EQge%T<@?K(4;BZznLys2{&QhH6nhS1A5)#s^gl9oj;k5 z0(%=1mLx3jccBO>8cg=(teRU?&H}#=eg=>4rZ< zoIAjxo($+~73Y)Tn~YoRt!lqxIc)knm0wSvJ+lMMGyr^6fY42ysb*i~U?tJ~^wp&J zZF4kc8?!f!PV0~}aX5buW5Stw<#S-5zIM1dUFGHDuG<#AW#Nb4D(nKw6$RG16Dt^% zoZMNBKl64cS`qg|H{Tq=OrxzuWpjz}Che(~?s8ph`boLcaZHzkZXXWEBO{|0>WvL&o z7wTpsUv0m@tfGD1MyvPX^Xs%?sul=8-8Qiearb_0nQ7BY>z3bSo@onPoQqi)swX{8 zt^tcvdJjY}c^-X5??lJ2a9JifrCYv?Oo10?_Ta2iT-gys)kHENEpn~ln~{Z>$>oH_ z*ZM^D=>#lS&Aw6wr3v+?Q$M219 z&=h*;#@l|P=MmtL=Yl% z8Hzv7mzixK&zAqkC29^k+v|9iRg|NA_3aHBuLDQK$Fn4}%dEEtj^Dl%kK+l~#!FR_ zE6Q7!^^j4qulcdp%E8I&RG8}Dr1P*Ey$z>ur;MV#c0pohoF%7=x4q;|TMQkVwGrX>H9gf5xeZRmjU|as)CtsD%j@m40P`s-TF-kyYZ)e|`4{t%)R{ITD=23cS z-LZIiH*b)jVR4|t`DW9$tYCgKUT}uRp#}=arbjAJ*1AK&a!S5yRzVC&U%(aIqn;MB zs+Egt8iA_I7{i%uYkjVigfptC7Ps^s+~tIF;J9;88f%M6k6cx&?4J#aruP$QjV~bO z6Znh$TlYZ#ewsrZC=`$;VOYXWg*s{i^n{gLG) zf6e*pd_|%a>kWO%r};D`y2=)&sj#Te{ReN^^Vw~+RXJa+BA68xMc5S#Y8S;-XRYJ+ z7mOgU<+3DQNyzm#>ViapYBc0x+`NE;o8SZu@Z;?*Vd77;gZX@5sy>5!54L(A@C1tvHI z4=DY3Do+%MGjx7#Xm*kT+uOcY#5sC>NXLbcc~Uf^adQ3iRpYl2t}bC+fPR zptL(v!j<^X3w}oE?MguUw|{*6=5PKp<8vc3pF2 zA5|L}{%}*M1;=O_<%JyW-h_3(+@FoJnIgt)J>Uf;ci^nWLV)AeL{V-Ulq=LhI7M<0jZuiwCWjs*rENLC0 z&3{QtMj#liXCKARvqG!|3D5!?PM^+#XnOxC)S;_7>OiBUZ2^iUe2rfit1Tp9+*U6Z zYHrJAcbpn|aKo?%>mmiFrw7<|IhKc=A%ggHb+$);n8Yh+_?@`KF;OMF zsx5$pdvMD;Y1}JVf{*$Gs7W<9!MUis1DU|_>;@Z&N;Uc1L%@eIKlym6Kzz1HEZ)k|2dW39TkjRFGX6Y4QD+k?h)cT6UDOEZbZ^)F_0 znfFBiKa&Kpam{ig5JQrsCT@hCGMrrE$KF7KD*r|bm)f8sqN9l+z+ka)DX*0priTG9 z7^;$Pp@GmTeTyth2za_m9ophep!HQDEskquc>&YcD7v`ub!Ts2pn^`N*RPQU*bMKkmT{>x zZZOIVf{RkHMoiF}m4kx_$gE|vC>{j$uYLfkI=kj^d7iljrXX=k>aWJT!iwY&@vH&WTea=6Ih?i?7O6Kz0tLWoCpv zY>xWD1d)%fbtJCBHSY8eY8b(RTu^3gf<)}qxEUbg!I&3Df?qw~05Tfq(O9MHd61~k z{?1p~V7~uU%IX*!TUsO}e~eY%9U|!Q%N;noZP1{v2oe_g;=;0Nx@^G zxPk@?(0E%&CTg?e10Yqb8}!s^Ap4uIv=rkKwUqAiC`sI=lE_0+Dl=X*rdKUEKI{0B zJWLP&o_4WjMr@1zH+afqOH@L^dz+QRNG%(Pq{l23Yl%G9@1@(98#+e>x4-q^AWGy5 z`c1Q&_7NzYOqu>i1F_K>T|Lcezf+0}4gV&X-=tbbFuP|z=Ohpi|W@2@VXXQF0n8(maR=*BCFsy3rkS`o}1d>B~ZRXS8M`5PZlvQLYG0Y;5Mo9#0~RRyGGjS}JUil+U-Y%Cbs}D*ittT4|){-+x9D zP1CsVH^CAj2@8*DGwH0Ha?qdRa(OntdW3lVOvB|B7E~~w>Flv|hT5V;Lc4;sDez_L zWJbRMVX`C^MbvFK># z6%7274B?o_PH3l=`PGwb_nC|@d7MbE^mFP2>6j$F-8^vKh0y}NC*%6(L%%2Ki{B(C_4C6|m!OE%)nmTSu< zLW6N|HrYCO@(TXISWrjxBlC!4cl^SbT<1mxLduv$l@I@5BHTbWO*SAfkypgUT@v;c z^mT=(6pgrgAgrN(2FKLMh@EIOFgrkfT!#AuZAAHDbg~Dkm}xW^Cul9|d-{^xVEs zy8VOce4OAdyR6#8^6gxgz+pCs~kDnHlT$i0Tq`gxFFSf;zO_}Hqe$Ri1?j|lLC>D210W%-7wgH&}Xuua1|!)W*#0_5OcQ)NFu0hzQI zUC($-h_dEwCWzU#fLAYVmJ!8hd$JP(e9fr27xgCq7JHUyi^z&(wx$v{cSy>JaF+8l z_J7ArtWV%*AJil@@Ddk>oQMi$sG~+-@2_NmD&DKq-B$-y!B`T2!dMgpyQRi2N8w4D zn?bQp=O5fMaQeAx{N2kOtF!PsuNH$Z>zKbiwrw}ui!-#>glZ0lrUoFkbWe$#W%w_mP0P!LeV@S6jpVzrWQlI zYKr03*kFjno~VPo!2O&W@186ssoJGHs+W`Vqt4}TBEH!4~X*Jqs2iS zlT%UIR?*HcZOJzi5ZQLbk`iQ2q-&`ti~>FMY|5dRcPH8tK^)TaMKWw{h5bjvzHyWn z(=WRs1t`kuIU=OLsj517Cu$uGNl-8sYGlpi!*DtHQywUxidzYI^CtfjJdw(mDr`FlUC5#b4MUg2JBIlS0_~i>EvfuVyUu$0+%B zH!1W*3kF>_dv5$}6*L|;Kk0*2#N~#uf`J3jEF_FDh!!;7p%}>AVwws}1Gu4hxK*M^ z*$J+aR{JWc2y;5!Yj%OAW_}VaLH59VcLk>3Z1xE#kYc<90ZAd@(USX3VB}g~PsxxT z0L~~%z6OJdZis5&kBOw#B^bk~2aw{Hm?$w8F{BM100bxoD|OfsUGD{$Dt8X(`PIr_ zT@DO@c-Cmslcnpr8$gX|U&0rPSP*Vn58d8cg~VBvYj9A~lAmkBr{b#Jz`dBC(~rlR z5;sL9?wz2lbtBTFS%eg)Fo`$GTQbzUAfvdU(|oDy=+&gccdIIqQagLwN5I=hrPptq#pvoa?Ng(tau=64cxbXHJSZ!ZBTgLD!C5=ysnk?P7WZ7bP~kD6R{_wdYw&+2kkNSho?aiK*46)gA%pQg|WX3 zx7g-ypa3s-e>ZxThc=wN%pUq{98P-fgv4&%7?qv1u<+D0RI*oweJcP=?=34WYj zHTd*B9hqdei3L@OL=CZzsd2`%Ya5HdR+8;^^aYjwZN^91*18m@Ad`~kS3<64BBjC` zKDHCs2k*a+BH!C~6dub$@|?dUEy2wH!#e$7@Ui}5bvHj&kZKgeDC+I43`G~-d9w+I zdYFYC4e13zC(&#OCf{_U-Y<(~JWinDU}qtaAyauhuIz9|x=cy3^fQ&>vSRC@rv;T* z~6``EAFV9>(JD*vPcmdpEwmayzH6|fox=v zlIr=Rer}XBv*~2L<5PVWU{F#6ibw%Y%3RcHWU9U3+F<1nbiSikmIg}w(w=<|2GeC} zqU+d}I~f`#kB@qDYM6pz!K23=1ARzG5h}H)eII+C)qy^Nr(%w3@2tBhkl*p0=K^Kt zdr0!fWI)4P0A||#iCoS>U~ICaCW{V6$}r*W7`we7fw*d*Fg32xYel?8rPIYz$ zFE^p^=I~Zm?p`3HT>D;`>$|2Rk~zGFgW4d}+>wIBK|0P$V>FZDT)E53vDXqn8~*y< zv*lVr^H4Wti-3VPtZFW*pUtRLWoKa0yU+u=3wh`g>!@n87r~WIZ-6w(Hse%Etnlme za2M)6%O}dTBmLZuVvYBe*V?fO+Z7)>UCzv8mnHZ4$`xe9NeVY>u!q!{qYv3A8LqkD)?lGl5xxE`tfhrxL{ipapO;kR(vgKDH3|6Zn{8i6$PE8MA&5A@(p%;3VOx2^qQudQ?i(;rDqDj*}R9di|SKV9|=DX>*#Db0$ zExI2E%Syxl-iq;XV9zMO(NJ{HzI2|}QZ`rY^g!w*%~B_vi6DZu)Hysm$_`$KlhR&@baxM3ZL48mvLnfu_ z{3mjTcVqTiwai~C%t{5b-lr)YB8>`89l_+AU8!S*J4Y&ee^*jdHDy7?ciS+Lg8|h- z^AoG!UeBn!C$~l>F^g#gBhM*STyP=3;4ibc)c-6eYrrN6JhM(p?6r6j>uj`Q*+7a| zA9od$9ki-SHQj;A({zQmR%Xu@@V2oM1F8^!W)MF}T~dtUP0KTOthhmJvjEFJQl;bW zbTTtio$gS&1w!nGzZ=88Zgr^w)LyflI@&*Dr05m_3{?wd2F}jH6&=qrkCHNRaEOy5 zYW$?v(}UO!Cpf_~wpa(=ZPsf<)O<3D$k!^e1 zDFc;j7S$!L4Um*i^tnu(nO+pa+U&~nnh;n#$SVCyZ(B;nn891?6VxmjKrJkPD3ua7 z{*t)RCCL@7vHPwbWJ@UoioIdJvXsX}LY!x%Yg1oL!5ZfeLyv&LtJ$s=`aOXft(wGF z=RBu98Z4)DYOi4LatSbz*1HSv!J8;xd{)*P~=tBIKka(zdG2<4TB6xG*CX zqgEBbj|@`_cqN8AvCX)qoQa?bl7ER%kwb0yV1gNr?akfI&1F4B9Aga8?d|49dV8zE zrivHm*5TV6-SSnuX(am?tHRSf$Nt*Q&}s4Ji}lG$7Wpo*>-)&B)x&uf*U#5rGJ8~j z2|u$=J;p7aIwq)fAO8wzp3bKS$eAl@ZWH2e0l>$ z?zO;a@b-+3eVRo_nIO((H8DiBV4P!w&dQZEhyptIGSE2lE5-}RM5M{PMY3|85F zaNbcxJqA>!Ngq;`B3j8l!?WRx2k(++?ACK47v|jB8yn-DPGw zAZTarxa+=oS?T?Gw{(;dfo@I2(q#Wp`*OmJ|FgzqM|!V0k7l|WTx&~=9MP@-q8F@5`QOFGKvihume~wwgcch^14$Zd-&-S82<#rdvPbm? zAr6jn?N%G>Xi#EqCyOD2Cpsjp!%Jhl$>fZ&kD)J%)w~A5tQKlrb@ES5mgOfcr^FQa zF1;kk!#q`jDJvd!6#kX9vfM;LA}{ql$7`jmdTLd~o6S+va#@{_C6CXqzM;jv{g8#+ z>3D|)yoK+x4<-JfEuX+V$7|WfHagG`iii#%7cWd=cUd6D?|LN-`_Nz#6}|TB+FY5* zBqB6EKt|^OOSu~Zx)dt$N}sQwWA9lqm52nCk3sz1mNKOM=N~4+?$%<}2UXs-*IHAt zI=&Gae{PUEWt5IOz8hteQ1h~VD_~wx(|mJDlTdGCg}pn*(sEETy8sEkPDG2J;7k0| z)@WSoi~hD)jzgfgz1DWDlgv>APDf@7=xm&R@SRiAzg`Klr==EvFuPsFgk8v0-kYi&-CV;0A(^j`+YMT*etU8SQmfyRNa&H>}BcD;T@r z{&^q#BW6_aZDC$4u+X&-KkqcxT=(rW&TeHJP23L;vm0OJ!Tw%7iYUR8?8?}yI9|&H zt$fw$*`V#o1^QeDH-1h`1po0tIh%pmKwm^e1ll-t#$g#R8)8i1UBL)8UH%VlE?s>1 zESe{!TY{sfB060HgF0<)%MNxt*IqN$LUztARHG>xh--iCfA&SK7FS7c`d~I`JG#s< zCEj{JAgL4Bo*S56P5{Di^?9?e)S* zwedN>u2=-JJO^Kr@J?A0YW%b8dLw>$YH%zU2U;RI7d4CB_2`|!dp?IynVxTCRRaC4jNya{WF$=zSCJdjm-*FbJK;No6 zH<1_rNUXxLr{M2sE{w!bbxsFmVR|Dd^zP(4ME4Z^{oNq;I{HQx7F?s2A+^j`4JGXX zFTAIZ^Lo@Cw$pL5uo-hUe7+F$SS&Lnjoe5mwwsosr2MeBS25Al@DD@Mt0z17w9hv3 zB%O$2tDkELX&`SBp994@I@{Z}z7k(x0LVwif0^Y^yUmw;-S5iC(h`I{n=geVwnSAMP zk`Qggc}r`w;cWGfo83v()?j*Ku3oK}ZQNV(wL`{>6!HLN%2pm+X*;ksdr4>M)YxDp z0oZ%elfvulQq+4qjtPB&Ir_uISM^QZ`k4ID6UH~1z7XClE3TOjLJq)@S|uz?+KV(e zta+7`XRP6J*c0vgR-b@ucb&ck;Mc(wpIb+eS`hG8Z+u!BHu)f4wbgVJvab^L^CLG# zuI9Zp5A~9u*36mp5{)-W^9s$rvW<;i+jH6wQdm#P3!67c}#L0!_97tdMYYW z!&7+l_-2YOl)rx;&NG8#(TLG>*zi&{WjG^GagqwBL({1eJfU&6$skjOMuqPgwfsUx z@%2o&D!{4*_)t93%bmlWV43gF@=191%w4@of`>ks&A_Yd`4+8K$?h)OeXJo>`ONQ+ zY|;v?RbP(3e2xG6!gP=>dEijgUYfJ7D)P6fVvh9zIpRF1Q^@fve=SO8sjI20tEs83 z{npBU3e_HFkqk9ZPyG@nGk4-}mQzw|6KrL*Dma4zfaZJz33^wfu(O?b&7DzKc>%knwUTwnWNmTa`SUG7C6w!S9Yc7-=;Q5liC94 zG?nI|h}PF3RAh5szr!10Fe$uTurAF`2NFp7M+*hV_ZUa-ECef~Ays*X-~n_0Y`Xll zzmlFtRjd5C`7(ZVgd$@g<+J?w)sykKFEjOisUz`{wL0*BaOy0JEcN|H1r;V^%I;ok`>5CD zir-e#(l!2|nX)(F5*NOy312j`^6bU8s>c>rR`w6w815OcBmn>L3bOox;pnDcA;w9A zrWl3t6eHR5sz}R;PWNuVs8o!aG>m$!Pw&lU28aop()F<*dy*sh!(gq}&Toag&~`XT zmvMy&@6?#aqnFfShAYC;#MjpCeLC{TYBtk|mj(;)A9GU1Y&S(FFDlG}M*|=wtjW(OE-zE*S$42sR+@Y6-)2YS59SRP z#*V2v;bgTIT1aGmTt#a%;)mTH)FL;)r7A*oN_LHXL{uG-rECw*fO)}X4ql9 zwfUZlC)F}6t0ad*lluFw43?xP>NUqz+5!}rRssp@yc_m!4kGt4T`AHaDPUeGx}X5NE{JtyvGy z8x?&V^7wkRfBk22X6)x@7G2D%b9Mg)n(78}7yRrQNz(_38VU;zABXR?ZMx1M8o!T{ z^^iLTR`2+Hr-tz^b)LKVIBZ`&5?w^?#ntD%+885R|Q}cH^>*TaX@)KAZe-0&vl&rS9-3op?6J2UXwf} zudt+JS}dDw+)5vzvZoCp^B(B67J}&-lN{u_4E!%{rIv4ZE(CqrC_ z6x2vc<+Pu^X~XarK&vX$<&3$wZ=;2?O1WlWO)V&{GNsVR5)Hp zCLR4OdHvcss5FR_3JDp%+L0>jKq}3nFa`}i6{FENpIaDZ*H<^R_5hdA;+MOi~hlV93L0;&?SIF~^eMj+!}N zC;mxPH(3xUnci_L8dGR~FZg=m#ov8Z(DFhglZJ^X9tK-pyN|EpID$Kn*z;k1YyxWU zQf%thwXfP07C%%_nZfc?EhHj9Esiy&vY;Rm@#V>#uuy{QcFi^Vii%XplI%_Q56@le zT!%q?M54i4b$;?O4u@K}v%ULsMvv&Bya&aHJPd3)vnPPq?oXB5_~6(S@toj>k(>Z~ zeO3`o$?4n-w;d3UibrxeXGp0Eg~kzASrC}z@80pCyU!>tfFt<3?%y@8iXCxgzmLPy zb8~Lq-efjpPEoVLw@npsdDVX`%~!X#w>N{8#)k}bJ0^H5@Se5k@(11$d%fRJmy+26Ts@tzBOZi@Jq&S&9O+V}wgc zW%l_A8`<#d#vi{qBG~FWhf)o52l`mcl{!EzVBVDYdBMtS!6XrmZ)h``XVKcH+ zS6UFyK5k5$lC^1G1lToW8fj$HNLyURJ<&pUW|2XfY7jpI+VS#K4m}i=Vzf0IjY;x3 z>}d9`0h)C-hwA6};@c$l+M`)qLsWutoyCWQi_-F;U1FoZW%sVrU$R_6#N~F-yeA;) z_^nBr<%^BY;i&zyt*xpa>BM?vgD-~E`t`>&97}r3sd(S#yzPALo))<*4hEd_YHDg+ zoeK@jOsPUQxgt4vy?uRs`DfK^KM%M<2=pg=Fia@x`1tAoeM3PgW0&E8bCTQo=E*3& z-m>1*_s>~2CdqQ9QPBh1r>o5MZNvQKI#a*ewVZ7I9ft1rF}YT9?xx&jP%@wiC;z#e zY-hf@EohVPh%KvoI!o={lG5?1AhI1x)jyi29c2>pwZnc5bn_k1z;<9S;0s#B8csj_T@>4 z@|HfjT8!*%*M#|QXo=oxY}`|PrS2Ab(*C4XFGSMrygky7Z$oCRcRR%J>-?p+OD3Fq zmqenz)jB&{e@V~1%fTwxd+{TPdTD~F67{&DF&ESHo8(sI>YlWecQc0yUDiUwr>r*%+Dgwb;ZjT<>R#{xJS4PZF|JH!#`NDh#vdCs|UCjYEC%oSf6x4xMV) zR4jjA)`Zs7aHDd`c})T9A0vC>LgH|rLpU#1SUC~WihkyUn z>wVVh!{`1vj8o;D`wkLV=OX}hCh=-7*!P8r@NI_GzzcdV$F{hvuj=^eH3=r{yG(vl z$}>8g%dR)r`syq#m1`tzCcS7;#ISZ<=J{Nf9H zN0g$k1(Rm|b~MVoZU120@5hZ{RL~Flw6)#F?vG|ZIuTOhw0=eYeFB;u4w$i7u|JKy zlJU^_Wq?2H)4@=+gnmi`zO_X;cPa>2GO+`_)}Q?>17*2N=cn6t%^PM6FO4`*NPd@{ z?UoYxVL2^ULGW67+e^|}Yu!+Ddl+lPB0~3>j}^_B#D~FuQRr^Iz7&S9Tud*WrA(-q zyClMB%&MyX5bZ;MM|b0L?BJg~?7^FVOkHcDZ*ANth&HyhMO;Tj*m&EJJ)SU}tTq#< z>f8sz36y)D(Bf=}hD&Bpj`{)v7`OAd2c9T4hl7pd^(gZSqxEt{)oxeP zYD*O6a({#rBCS^+-rFa3Rgpc!N#m|tg>>4{udS)jjaf_O-5nZBN@o;`OlrP1R3eDD z_0)e@H z9;z>sYh60Gh-e7^a(8U0W939?`Gze97gmIJ)*+1;Cy$|I^JDHdrKAKeX*-l(v277s ziV|m%(Szu0_XwyX{^Udkl}xDF4lDkBj12xXS)S08Lsx^HfwNpD_?pGx#2EbM1!b*% zuJ7bYky>Yds37-8^cT#`sUJ{ie4&Lq3WwLb=!_F`(FSMdRd5rE3bxl^7ZujYT9Q=?Vu%5ly65gzhB#3e} zr_oq}-kfxjtzV!pqbRcJfKqYKsr26K_SlwJ=5opL-H#{~aC?2T=Y~#iDLWg{>Dz-Q zSS{oRsGhBM) zcE!KI_n=#QNgHr5Gm_Ba>rj%8a%OTr8<)=rmG?LXtq9PJS%b$c$Cc2RiXxDZa z@G5br1w}lt%~MBF4u|CSIc7%#;||udSI=1&N<=K6$f^>YW^7Vi?ZuMbV5Tiqun21; zl`bbV?(Pz407}WkZL#k(tlN}>LZccFa!dY=&|bYK5ya&p*b6T#%CjH^8}3lzf6XC+ zxq4F~q?(JcA{X?60PmpN2o-UoP>*fZyT!TN-rE>vjp#S|<(FJm7M6kcyBegAt!?fq zgy=gT_Oq(=!9$il?F+Afw7l%#^uUKd7gzh!AgLaYUEF^|n2V?;H+q@&6nE`$pAM}h zP_I<*-bsto^7O~P(Bt$RzK`2|z9F7hvtA+F*Qz4@n@M;Se5O4YRQNdzA~bX-yH=Ly-N{AolCKL$22HY|evo&3$6>rFnmJXCMygRys@)(ytyDA!_5lI>A-qP(}?FTo=#o;M$~z_MF_b8W`!XfNs8># zp7q=I?%qMEuW&z%eBBXSE4)BVSDxADwo>%z#K>3Y&VlF84kv^-9V=@Qj6D=ed)q}1 z7Fo=De}9#FY79Jd`D+gL^2oH}sd|>puK485F%nj9e`2P1FOEcle(BOZ_KR@b+<2l` z@RGj&Ci6Ti-WCmJbqENF6vDt!RU8dotWYWB0XqsJqYa;sn)a-|pgmbK*Z)LD4Hz6Uy2mfBnoBi)AEBC|S43 zyiVN+jTA67J8*%*4Zh#*xw1aKu%_N?3R_J!mq8UQu6piI7xlQ^oaCXZ%XZGB$OD{P z6>n3&$S9p%{T!R$pLSOu*N7^*nOyZ;t}`2%v|410=nQ;1^Yird_(s0Z`p#nFTkq+v zMh>bTqoK7m%ox2Om8$ zby4bfQH;|VPQt3R12)s$!*~`BIX4$SR8ZYflqu$#7Sx0o8XT?`9Q`an+zKUq^m z^MQ8HkjzXasKquo`E%Upya|<6H4Jt9t8IyH;WHspe6hJ`%6p0(qMZg!DV@$W;zq@d%-U%rA;>sp+aLW0P1^SmRm%=A+~{yfk3@)UOW33Q0+NN#%l~oj;~=WLaO+2x=*_kIkjdzt?oM*jbCaw-qK68$C!S9 zh{6L1F{%s@T|TVNW8X43yGRfFi%)XuHH-P~O}5ayPIV~N`}Q}1f{Fh*Bb1Wg)=%RWAYq6W-mA{O!w!$TbM zAx3W{_}@;ReU!fQzKIRTS~6YbMmD}_#9$mz9#bArz*ZG>&`7s&R8w*9Rv+{()6R#) zOEa*=h`R#flZ&^Cxv6YuBygCH}kvfRSq^5iW8WeUD-V~Vxf7tSNpcOft?5SYMYx6kq=`MD1OS`hqZ^Y z(~TR~u{JE*+{L9Uu7+^?FW>_LN=alD5-V~2sxte;-Uexp@KVJkkd z2A{ZEl&?#+MyWV9Csn8ty>y{y-YA2jy?5_fbwDA0pCd_kZWN;KUkus^<-sm%CJpPW zE4t`) zRfmmuMy^3gnn1i81fp*=Li4JK`$k%oOCNmrQS?Di?K0Aw!P$QK0)<6fwBrWE{=oqX z((;wx&z{BI?X~rF+}GPb*f;u*(i>Rn%7!;RPX-~R^6%D57y6rVqPHqld* zYcV0-a#QAX=h}r!mu}v;h5IbHzq`I}$GRi_M*OILSrqYXx>nm()!lD z7G*1xnT(8?#hrvZ_knW77Pwo23Q>|GRJMku1kq_kZMYk(!d@y zrgm}Dh7Nl`iu2z94MkO?*F1F^_b6}Nym|4$MO;amI}O7n6iCc91k?oV@4a~O0tfHi zJ9q9qc(DEQIX17=bY6V_z4uR@K0O?`WxuGgseK0eV0Uj9m-5)-aX{kU2d+3#=X&$j zJL_xff|Hqm_Bk#bCKFVX-~tzb#?XR$nOEdi40=ojbQtr;Hp7#l908CvahpEDIyS zdU*Ey*^|K&JCnFkrZsKHEF-_VapM-McyW&alY6oK95+O87y7+--@|&wdVmTO?$}H( zw_hT!M;?edym|AT3ziqfo`tZY%z0ScBeVx6S4daQsOT_JSnQd&C4p(-?l#0S3XMXm z4K!C|_Hl=s4zr6}9hNP)o~h_fBeQItkp5)i&!1AB6Oq&`^~~0=ef*3Lnnp2W@)HrW zxxlruyks{$h6mU`&G}XxZ*b^@F&+~Vf};Ty+JgM>nJ>Gpb_X`ObP*cO3u(;E7(`Wv zECE0jDt?>$N?6aQ&z!w-M?ysQeg@4#tzM(SZidSJRBQJRe(iV3@I}tYGfu zE}c4qyy(`u@4R>7mG^4q@C!+}+v3wJ_Gw=`&|UE1bz% z;UI2>N4q;aZqALGSo=fnviOTbt4UMgV09(-W*?n3@DFeesh?XeYL52fq)Erv%{5ew zwSj`=lCcT4igSwL8=~LJgdA_Tf-)HuBR$MuJhGh0qLH|tg^f{`b7-TyC{Y|Dsy!<( zyPk9#V=#DS%}55P>~>le>IEBZw=Q>g*2$$y7cm|z<~g&n+aR?Wxc39bySv*cjXgm5>Hgi#%`MEp>Z&|Ic4XWs{KCz6i=>6fSapKfcE~?w0 z(2$f18SSn$XcFf-lG;5J9!T!$l(OyrP0>W`@gI#>zD_YW+KS|ZKAva^}n#lrDC5cX3-#3X!-5##M?r znR@Qr>CSnf=O@^XD(T_wM_s=D{ESSd(S4WW~i=5y$=C zlc!GNwlA)u?B(~>ReIJ&xoseNG1)UXQ)=+*X|r2Bnyi>>=IVs0nUi$bEv^~Y9(m1R z0Q_w)Acr`)O{eGdx$_rs!Gj?%N)(Q<=EQ9b4Fy%9?tlXGm$szf-P|YBq0bCm+h>7B z;}MLglRVa&ileSi3`^RRo<4xWa4X9NGAX+=0YdLARha@mU|6Mo0TGeNj;{vvJ*qBmTF z|ERp!Mw&%p%PK9NY3O(N1TpP-t#XX)C-VnY2;2!3~zLK$i=FBN=uE;#KujTM8=-bP7cC2iQVQ3!OUbBb$rdVlMfu~Le zE*%^DHSw5-Dfaj5mZH(?oUmoY+OStc(sv&0Ae{~eqk%h0xjY;W7_*y`jy>An+-(69eoS{VDcC$3y z;zC`Jv2~#}KcNtFGaWyHa(HAd2Zju_m19@Y^pu~bn>f?V-g|-$cOP4R>pcvYdxr(^4(q{j8c?sub6b4Y6vSDsWEaAqN-JCV2 zwy~?8I(7QM9>TCY;X~~3>+2`%lPTz773bvb9rKpX%kc|q1#|Lxef`wwQ#eKJ z?CvbDnA-;U5x1(4TcH48wnV4lIVRupZ8x*8x0wN=2J35Un3#EzXnBZRd(WP3Vcx9N zF%`u(VX=FgLmTJMi!yT zrJX)|1{E_yyDN{|`D^A0MEi1%t?z+9&FfomV$DC<0X`n>ubTJfa2w9#cFjCGXRh*? z_s`VwUwg2fxuUf@)FOq1V%VJYGk94VIV_a2WjTZ810{R!6U#=1MO6ET z?7{J8oiBh{<6Das@@y|pte!uA@tt?xK_$e+ix;tPllb8;IHCufRm}^$M$R~W8WjN8 zG^jhlcEVnPvntM&_yzaVd54{a5Zg|ql`*$iP!oW~vu|oG4M}9M>r4!YGWo@e7jO-N zU4`bR$z%;X!?|;39zR|)YEeaI73gHc$_Xdx56R97_bXpIb?)30hd+)rs}a#S zQ1KV4Iug01g9CFgYX8-qJ+y0PJoD^6x^;SicL{r`eKBQ!Xf+39oE_IqsL#NK$LL_B z;}}uIG;iy?c!B%-3Y`35&QYE@d+E}Z&8UDcw3_albXU9G_b}%}? zx-$pQQE*489K8+Q!9?>^*YoGd!&5bw>EzX( zIU|I57B#cCyZf?SGdox_FGbCm={AmYuw?dqR{f8D%#IQciMlgHWpLcd&9_)`OA-fheZ&KreAJwJiAu{_wiYd{O zeQzGusG||`75f&ydw<+)ts3h}8<^bk@_GDZ3={3{?eD)bn`c8~I$oPUOcNu3Wi>%Wn*2O1<;))hit7Q=_OjVH6eE zVR7?CnJ2J~8JOoUUJl(-d0_Wkf_Ws-$6TjUPGezhH(Mq~LCuz|)tT+>?QZWFUIg*N z*gR%vc%eCX?)P4e_6T_qmJy2+2CaJ&gWegR46HGLq2s;Az?I>m8z*qD3K#$T`{qdv z4sKG}-g)tI+rMHF4HMVT$uhNg9S#ZuP=|4$gzy=o75vKAmD9UuC=YFFO*Kr7*>axq zu%Tr-paafiJt}hqfu%sPL^SEz<(xBv>tl>~9am+7%50RRu_CJD;~0goOZEk->(_6* z_x=Z0ui>Cr$Bg03X0C_sy&7BdOZFUt+0{Zt0&XKN+bu%e-G2D!fgKcdf?;6wlcZ=h zY55xkL*xb*FI{}OeS^BO8EgE?jUvM$LuZOzk@;yw*3Q5j6+hTD!xM8d1#xQx%qi)E zr}k7Y?X=o$$0gJ>T)2RHrx%|ibFoj`D{+k)$IY@i1#%kIrDxBc!(l!cD1L*3Yi4LH zsNqC^=7fD;2;9j^5_L|Tv7(L{l{?#8TaR&*dT1-eD0EkG`|l*ymEr#=S|CH+u_xSZ z>d42C+hF-^x&v=0+mshu0r`$?g>PKBYFa^?cYgMaDJGOLLMx!J6Bry@fnMD)=R-#0 zU2D)K?+w-cq-Rvi<&2`{1X$*4<{N_9FzyJQlidNx{NXv z7Kf^c3_T9qvt}pk;jlGSJ7E=Jx=)^LVI3le+1_5Gg_Tk68Ug8~y$#ot+r!d-k%0sSsp4_+@X; zynAe|o4CC~Y(uQ%D_5@An?M(_0x2GQzh`7GprB-R(iCxH!|r{Xj9CugjtH<5GkfHe z*GBsTBIa6&z0W-%6jL;^=q}d=_+2U^Sv|8y1DDMUpHsW>XKd$CNy)$171H)`wpW-v zt1($46(E3XUwiKagByVvg-5GM18NRjsAA0|_it)k7Y^LmB`cuv73c1xinf52n%9!N z^;xtA-^7x+6!hW>i0buD57zzC|?o%p~^iRoud3*M^DJoMMJ%Bhu5h*9n*5W_jDLZ);jYUd-}9nBMRbZA;FGdTw;NV2=GWGiJTBrSaWQU4`k zQnUif0v1qSiAc|?&Sv|eqOs3vtOLr-YHn1QpL0N;Vp10)tni$Y5XM(OB$cCB@Di7hd_F3IZf6a? zCgzA-dinC@o!ehM-h6yuuc+hN69vt)=gwWeeC6Evi}s55xl5NXqeyKGmU@W+W%S37 z9^Jct8-q_L(|G6GJod7)x1(GaBxjCFp%Co%7vhU1?uyB2l=9D!{l08`nhkMd znB=t8sVo_rA0xBnY8FPrCER{Ied-KKowzKSn4Q)kez|b|0_|3yh>1nGd*{xhN9O4s z%n$BRT)BMZ+VvZ_U%9+uRzbK_*}n7g>#x7$^&T$8aZPgL`mLpF*Vl&wTdd@0+`tK~Z~W+dd8Ct}c#72R_bc#svDn z?LuC-aN+WmtC+euVs;*>OPiaUd$_uomY*f9ZtNVD6;BNcP-(Nh9Xhb*h|Oa=xJ5CZ zSjz-~4M`CS+}=;ty*;FZSLEHO;ZI zg1dO;O2@`Y9CR;VZr{6q_ujp`FJ3&ubsetWak$;MapUr(t0#;*h1$wz&!6CC9=#_+ zC$q2-A8$Uod*}9x7cWqEYA!n13n;kzc*VRAehNb(qp&74cW`r(Uev__b?46QhmRiF z=dH1~Axl|1cmDk4%a<>lzqGc789R09;^nO;n@_j4T+>>M?YMx)^)#+9??1R__x?u_fJt7 zf=NuAfeo{bNxlB7caK&-n(<}o;j(FI-1p$HQaB-jmyiIF!SrDPo2JU z`7$oHjap(zhaaatD(+qU1Gs^_W0Fl}ng`Y&o9EHKrn`62SPRBIGS8~)n1sM3gk1=k zB$n~nGgKQ-lkTnE#b<5o3JvY%wHlZm@Ef;oT)%-l7=v$ZZ5dW(w9fXWxXJXuD!Qy; z2`$Evl7~hyYkou|mgFJfU9^iq=Z{Kg9+v0$x|nIi(ThHL%)Wjr!}f(HJhlq;!e~`k z^Ve*6t*)D$TpVl%`^v9rIjkp@?_&e-gP+)dP+%wNmPy)Vc1O%|n6JOw+}a%NANZ54u0;0v6wJi#xpU`v znTnffr%xM=$d=h~+?(!C^)xgD)~GED$~>1)`C#|L!s^%M*=RbKQBXN``qY{=L652z zoavUWRdIV};tcMZZEwHWeEiV9{B#sv2=Zn~j7cK7a`Z6kG< zeLbV|8Bf;MjqT~FNY}T*MQnx3SGW~kJi=CZ{1CY$x5ByeXMHQ2w5@5ZuM_$oV;@7^39t!?ER88T#w*% z`QX8W$B!Sqv|4#=2plXIE}X}HYyGUFie)sqZg-Z)!y)S%gmA`P%5l*Ny^2F;|0fgD zorML?($ZkVT!1@m?=>rnVaaorkLA)XWUVJqsJ$CSSQ`Zi`8W2Sp=Cyc0n z5zB=m9b-Ok+{MR_H<9C!F$Qc7b9?>dDU6?twP42Z_rR>wPGBhPthk$Q^*saped*Gr zTeoi5`z2gO4{a5_^i{NOQ@l!5bmq)CYl0q^Ax}0pANw8xxM)HT$YIW(H`m&5$N%9eFxDzeN2^!^@>85kMk8N3oUP;P12MQR`cmFPk@saSlhZ^PX8$IvtfZC++s1KY!+5 zXD zmI8qeQE~AzG%5nM3pdbFp(WC3qlIuDcz(PLR~%MElcUNuB3or=6vT)gsAz(&Bz6m**D2RvADr)k`P*v#O zyt~Cvp!{i)`B9Z>BW9q`&KkU`A(a!o6a*c1QIU#-yw_40g5X-1%NO+4x!I2%9pEPE{kwNj&PHic zM{5uJM6m)4#jR;xz&9_LpFwFjzi1+_nAq2W%Z5^LeT*VLMzXPCp25W&q8yCh?K9kF zV;v=I{A=Fm*V=6FuB~mD7j?|TVklWYe*E~Wuf9OB6$M(X1l(AE`Qka9Z^EpS7=&vK z^Je$%F69j+S5#Jn!%W$YDuBV%wvSB2HODpz!N)NIhNo7Yz= z?7fE&q%T=sw+_rw60>xdX78_?=`lq1ttPxG6^gN@2|?Hm8rNQH(0$<@39DZ-4dGS4MR@ zonZ1OPHy7vA$IR8SFYHcqS9*})dSk!AD`IA#Bk)^y?=LWa}yVf=E(MNd1GVk*|V#d z^35Bj(Q)4sRUq0bRBV&slG~UozjOENo$VdFd5UU})zh12k#XUU6)x{_^AWc!PMtin z{c^|K_cntL6E#N2Hy_(E>kj;25?Dy1qdjB9slB~@+%dR)=k_-4ESPiFMv_}yUd5dn ze`0iskvx3#`1b9u{DrWvFdLXRtj*Z>=MYVJ^Z4Gzi8cG!!oh(te~Q~BckX&Cy1SB`>F=+dfdBz4_T$HVP0wiU3%j8Pn4_Q!MXG2PM$h-`O;Wt~>iRo16-h7Fosa=qPBPC-HI5bqERbjP2SwNIMoMX;JjVR`-unkZ} zPrFFDM4}L#dEtQbp!P!8lC{i??RWsuP*+ee^=YRJC!11LMw~OL%!EuTyy$KD-G2Z8 z5CBO;K~w>m0qzgt7Cdf<;pQM_8dYnzzxwj4ufKe3&M}~>(il@&Sy|rNI=yZ8hOS+| zfg=Jp$j+U=u(kOZH%12ol_jJS(%ghQd-m$J8`zm&?Y-JI4>0MOrNG|(YHtT~f_mA# zS9^LIy|M-Nxo~7>r%#>X<{J#?Ajrk!AP99fviXF90jf=LBC~qmG#kpC0$H}t_MBQ? zS-}xxk4x{Ml9j&LJ=l|*o9e~$=k{@!0kskC&|bd0XG|YoxUjOkgz}iNg>diACQ2Pn zGBM}VQ9)%VVwWpr&&1ePxMEx3gl~nfP*IAb9#z!b3Y(kU3OA8C+g7-E`phG@eK`p- zM$!RdadUo@hmveB$NJ39{t}9&)-)8|!!x3Wx$9%kN#NGxinTtaoRWA#$`2?wHx{sg zQC+2sCcs|vH7E2(egogJR;wwo_Kuu|6th*XHE*1yj(AG^bV?}Bu|!d#STgr)tj66M zcwe#S<;MpHimq|sKkOB_EuN#wJV~Sli>8FMQfa#NXr3$NW+>iYzKk3F7jQG(Zj?Xy z^2;xAj~>fi#yEUX3xV^XyssIzzWtBgRl!BTG;$OFK9AdT z!EBh5AgAbZs<}3bN<>^@*eA0F<~7pOrx7wDkhvog7?ie`UCi`)@2*`w&_b3 z{FJmHR@C1(bLJE>JuB2rtRa(Cj1yzFCu7FuW#jP(bvDQ%Y`UlL2bRuCU*^Ry)E1x) z17pBx_vzE8Uw-+;?c29esbDYSke+501rJe0EB4aK$$NGUVh+aHDqmm6{y)JLnbxS} zP#Ao3a}%So`X_fBXVqxshyEo`Kpu|j4b+0*58mPO$4U(U#DRl3^ff=lR@>Y(XDpE8 zS(S+~lZGY2TE&{di2_M`ljbybNUNN1o5J?`%Lzr*WjQ;P2Q22< z?*so)m(c%*y+3J^EXmdbF;$!0%-zjr_ZTuWsvgjdL4e+X!Ud(VfRI>%zo35rMfeA} z;m_zbMYy7Hiw!9PL96vSw?TCuU}9FS4?!ln&;P=~`a??RxWyI~Zkr)7YK~9?U z*UR(PE*~`#4uJeYNzVw^Uf46Hm0Lh9bWo6nq7`<3RR}6(1||y2*vfQX!x3bYle52BS7w z74Kc%R@PoZUdY+e8GAOETcuZ^$8>yH&=+fCwy#11hHo7jw9cbezv*Fz9ZmVMo!Qxpbx8UNE zxI~SeP1&Q@NKR6ZDQe~n8bfFf`M4!=5gov{#Lbkku0oBdc&2nBk6Q#GNs*&1Aq6bx z(h=hk`@fUI@lMj9wds^8PwD-o&?jwxKp>5&0?9{4xc>Aah56w>&+R7%FgJXf$e9nzmTm6 z^l{l}2$!wcTi24BI725aInGe{h(BVtT@i-H?M!x!Wqk5wWg>Per^s}{kV>lQs=Tl#w zYL$3~#auWOT1OaYa!W|wJ1y6N?&AV5eF?fl0tU%rSZD0!JD!i=@^RaRTKn01^P6Nx_I+7Ag`AsUdo z5*s%5_?kOeqp@G#-rk5v0y8is%f?DE zG!ZkZKXM+%Y<~`FUN~0#(!5-(c(qL=d3WgOIkDn})Ar2mS3`@Fe!@%JV>EzOgvtwf z)alytXnM?F&`px2IF|U=K#QW33vt*AHGW?Cu1lU9?|nV0UK~{_;t3u@RWQx$#1K9w zj~aI!$~X!ZPC5QN2{j~Jp(aO;*P|xZGWj{|ehK+WrPOm!l|fakk$VyddlT42HbkR&81O;Akeo@&E6mepE}G=8n3$rWXXQebC4^l**S3UMA|?|)heUA^ zVNanGN%aP)NT?O8kTj-u!wW#@V~dUU*C z^aiLOj_4>yyi_(tg*s?HRI9X{7PJqo!o-p^emQbV6YdkfWXIc({lBr(JUH0L1cOXM zZXaMT;rlh&yv&BPdVNQtEON{jl1N2hb^E1`Nq^e&IW!^`!RpG>`ht?yqAH-*kD$UI z%YAd_fUCxy8J29KSh&tlL{$XI(x3fYu+GBQUn$S3`VHHJU(KOW4MSA4iZC3A-wO0S z7VO#CIY17vLLQ{T<(L)2h zV{Qmv@?ElV$RZ*Ef#UY^v?D_Yl|P*<1|7YajFxC>AgzaS#v~a$hC#)A^k<1!=b)p^VvPW@k z%Tc(K3NmXym3nMKg0v^;N;Rg4{u?I|B}K=AJeplu!DL>8de%K}j4`QYXGLCDev+q? z>rtgb39tZFX%tQ2@;660$kt@eG(@~uSPg|Z^pBJ2{!_9SvwUeGH>n;=rdGXt-V*zR z+TGj722DW-D1^!I=KALD{sx=?U1>_`El8Z|_qv}yeMTXm8`uXQV0XR0<8!!n+YLVC z8TW(<)Kc~k=nc=$&wJh8Xgqj$5I3J@RbIs+E9onlrD2j}hm8K>z)H*1R%d)yv&Yc} z)Rf>~Be>=)|Ik~+A{_VIec9z5nHg+ z5LOdxm5%nlsASpb6S_hTgG;&6s_wSPY9;nI3gJ{Om+Un$#Xd(D{Mk9jfTs^+_zg!6 zQ$8m~g}9`I<=2548#Th(;pV&@8+VAwyz}q8CDMm$v|Dy8(rfE&`239qdL>@{yKRK+KKbueH61 zX}pDi>1P=WllgFC(zRfi*;pn?O0R;Bl`@^pUelyvKX0%>F0`(5V79WqbHEw-dIj?{ zPO>{VKR?3@m=#X4n_OAR4m@+hJv^0@cG4ovQM&O&{w)9qFBrFIUG zxo|@%D@)EZS$@U@-U~@yCi_prIU`Enm(KBTa>pj|0S;p?JuQru5?GI7U5N^z`s z+lJ(;M1x z-+#vu;1qV!AAkJgk3atC(L7fle8qP}it1F`w-LH3$**e9FswpzTarcHD$Am-8WC!u zXz;%4GN?_So}T`zfAz1}!AThm#_xXjyZ`VX{)3-&nU`NKnHhx;wUsvMp-rutk@~L2w zslvGtpy3PQ^v>q>hj;9CN~Pp*bh*Zyquaxn*>wejwAJ|F;hT5wcK7#v#16wk6xdew z$RGNoGQvcnutp}LiBaJd6A=uA$gB7%Q8YsKPsOLqX0vgB(0}MW06H1;j%TM$e#kf1 z&dzW+0M8|%j9HdwfLT2|JxBRaZ9q2Y^}FNIh~lgcOtI+U;O!pdRz09EIaa6N|9w9wiiN^|# z&P$HI`Fu5zxn;taW3trHPg?CuLq_tbM)GIFMwu3(s59H2mKeV7ehJx2*l{`Q+?Ac_ z;fl&XkD)3*54U+%b$$l*bXj|X$ozvAf-a1;Vl}8V8_UxPu9jt2e6C!M+aO7|Qc`7^ z-xU4)5`BsG4UEyS=OPqC3H=lY6CJe=<_+=-(f;oJ2k0`Oyuh-O5SQc07&7^2JmOgk z?YSwJRMOh@1!n$W35yhAfBgFXu!neQ9AE=es+d>&iEXwJRlm=$+*+$42B#^-HjlcwujjT#%ojgPfFuzhAstc*HE4iey{;W35 zy9N#O<~HNtMZFGnf0(%BOhosUc~_&H-|)4X;0$Ik`DLq@LQIlmIBB~u-Ar3U01Nho zU=Sk|^RZT`?Y3GR1Aro34F|(smv&*YHPXzLyv)C1@1D)>?(eX&s_f%&I;G1Kt=)ZN ze9y!^!lOZPfCmF8(3?9=r~+ZGc=Pt{V9>?tS*Ck&b}q?)VyZNDS|_Jx(3{Su&KEyv zhhg-cJiyF37>iTv6av4#DS~oHScaO_pztz!hy^G&`%6 zDm&!@eV|y@upWU!fWo&@t(={WU}TkJBCXag`?{PJHh<$J&1=}UTTP6@4vzwbh7Lv{ zW;taP?$S}f?mD4kG~(`3Z}wdsa`rEfWY4A0b#urrRBb|GnZ;VdRxbZ(^0GCVR48nC z4YQ8T;S_DgUAqa$f~69?hp;M@Tu@d@n5ms_0a+i~DFdEkRx&}uj zd$Mdl6Gb@BblR^4wKTyU3HKqO>?w!f_EixYDiaE*dNdo?qM2Cnl}a6>ArV9{?pSEx z+p#UWND}E(!KhHMH1aYx#s(_)9zX+|&0VP*wsO8WwSRJQ+G@3&Vpi$HMj zGItT!=IQ3K#4|0DMxpD@&d$+GD9Rfc5*EaWL9(Glit}nmg;|2Aa>TxpF@A?iHx-N* z8YOY&MY4nNNRr+0F~*|b?{VO(iTG`nXf)!dNYwHED-n9}MIh*fL+{={<*q1rAH!tLlq(Ok#h`#IoCl}DZQ zk&oG~*P_Zi7VrHzsB6N?Sn(n1W^0<4|K2KA{CZRsCRMCCa@@WNC6^E_l_DbMe$SvP zkNV*&VwP5-zMqAc%ezfj#TL`mg?LY?{CS{qN(9N^Kkselt|Z!;w!a6{#*?7!5_0aNkxIR&o99b9{XA zZ~o1{0Ru^wWJlwJgZ97p7ykm>*T4Vw|33fn%O;ETBx%a?%>Im2z6AGza_cTC{;8peOUvRVO)b&;IxS!0fkn|NH;16C+pV-2hG7q*kc7b?neA^Fq;F z)vNMW*g#U{YZeKg<}N{PdC)$DR`gW@re;@gOKEV?RTUBvh!X(~5msr6(p zsn?t2%DFt7iXRdUjram$?Q|lJx%|ug=^6{t&}dp3Pr zl$=@3W{^v7@2>av_o^(}9v&XFZ`CQJ5KNpH)Sz+25qXFol*%zd1j@us1El$@OA(fB*2~k3T{~ zw_J!rKgnVsv_IV6-QL{nT0KkS_^7hCOW_&(omW%3!FW zi24494~Iub;!WG}9JG$=wZ_rW;m%G=PTvb7;`lSocYqq_XK$dwnN6(+F#LnQ1O2=F z{CT9I^>bXV+Jk$sZFe$z*QtKl%Pt?lMXy=@y+1 z!_Mc|k;E0$x)HaAa_4f1BT+(IfEC8eu!$*APV zUM^0$RVEb1YBQx|e{$9}(6}a8TstW}P*|IwOy&L!Z<9o*6rM*Vm>D#Dbq;dAq${1E z)=SwNlfeL*6IEW!k5M=W zhnD~eqop#L=C4SqLKGtm?JQUn7+`o5=ImO=jzXMQ*-@B|=d-DnaJ#aEgC>M8tKbBH z*OdABAf({=Ng;6PN&K{wOCHJ6AKnOG#{Yr`8<)o7q7@P#8bDWMbgHmnDj^X{XnT=B z?sOiU0!s09XSR%y_eo-4$TlPHzY@EHSUOnJ#)UjlD$m%sev!wW292Iy1DYq590Vc_ z@Se%e2klcd@Hq6sb*8vt^$JH&qfq47<)MWaznY$1Q7RpMjM0S8Z78?h)14~EZk717 z!P~d*AmFgiF3&L1fMV&9qr6s2u665F)vLr27I8itBZ_SjUGO=`1-9qpWJVX=TNKU& zbZ#&xB}sI4l&JvAKs3KD`MF~ct0mswvFFkzetdicK9*U1dW7vk$8xB7y40e`kLV0+ z6*vXF08MuEuA>2O=tLj_S`tasB!f)TmFn+JK<2o zzi8hgM?CGqtgz+y!v`=(Z`cW#eGNqB?(Y7_AO8RW(3sQ*i?Y{ei4WwvKHzc{Gdz3Z z5t?N{at_9PU|JxUyWwzfb8~y>Bs=s2nhwd1{i@PGfn-Oap{CPiFugUOI;w(V^Crhq@HueUOTB+6A`|i8<5L($ymdz`U+J5@!$2mW;r7E_Hp@!do z{~kMn4S{Lo{RO}O6Z=V9gqESO+jScKLWO;v6X-HY71QTeM}76&B_!f8!lPX}@WbO! zAO5}UP!qj-jyt9K{WVevsm#Vs*7U93q|s1%t37zD}Ft?A{jk88!O(# zs19Pq8_#40Xjl!MLAOuR#7^Rf?k|U$Bo`|_u*w)uV|B_Au0gfhAXdCXlOSt~>dhj_ zKOw1tFeERPl=>T!j$P?jA1hwP&tquGwbA4SMy>t&EkM0I>tv#Jc^^f!4ypG#RApyu zhJo}`E}f$Bmz7eU*?u~TzxVg$rl$V%>C^9i_d76t|LmXr^NR}zLl=Me!|y{$Q(1v7 zEjfPHqe?v%4L+ZA^|U{%LS2itKuzR!RhewmkPy{DiwOPa|NNhU+56>}PyhDc{#)$e zA3l8e*Z=xo|Ms_khTglszYivfos+AQQpatQYO~#01p>Q&!NfAVG1;ggVLdlTvyYBV zHPipyKUkc%OIQ8<|Nj3|x*IIs91i|3|Hs8|PZ$66ef2+mT%UJy)JXv*oa|<^Xz0Q2`(RsfO4e@c>`?yAzw7ZrnNES8U=O5(j&s~A&pXi%X$ zA9V7Ic57p*>{eKOcP8#2qFPZev6sL~Br{>aQb&y)QZK*np+XFfq?_KOA^Na)O zmy7ql6{@m3Ut#v>l&+4Xwjuv@TG1#wP2>~uO`uD^V_{L<-mI538H zb|G4c18m2QS|c$w>?gLLGkVVXM6kia?Do2l`W?esf*Jy*Rnmfy?*(dp4K{mdZ8OYaAXxdAA^6*b@*u^wq{;O6nklJNv<)urJ=Pv7I@NYk|29R&P0B?ec0qtlCHS)-LNM zRtpLT$$A9R(U7YOntfJIqex5Sq;cA4Tw*4wx$+!%IMw~+2~fYMYQGG_Iqz*eP==Sp zpIWSR^OhKULXa-Al~_$FtHMe$BJqV~QeG;s%-mTbp4v)D5^RBK$=0AyDrvj!{2Fv~ zAuc&xp`tj7Bf5J|)W4kB+Sexi@EKDO?|rMHlpLxOU6@KoNQd<&4|7Ry?9t64Y4Q4R zWysefsJLw*>u;II87AHZSsASnq98A;Pf$1K;my`E`yv0ZbPL8{bbWmV#aX>pKRP~! zH3Iu6^o)js0PC!95_A?V@Oq_kxX&Jt-8dQ!IHbWIkYze>6%7&u24gyzKz-J1k#jAW zLT~SGr;`~zginLRX}0JT2yCNRKv1SOX{++{i|&$gwC8=%a?-h7 zDyJx%u^|s>>4&45lv2DP>clHd$Cd$ zX&>2-dM6lK7jqfWBWuvTyh`x?W~d6z)oL3afG%X<5ucyppCP5O>@Sqj1xF1JWh#44 z81HaE_~P%bN2ONcb)@XZi8X79L}^;l<3_f~;DAmzHil17?ts;Rt-@Pt{PYHW;xlBm zct(j=F7ms@N3u$Cg&qH4l7MyP`y69FEmY^#+NxAKiy$7D*47>Xivlc7vLjP4u$|r0 z(-SBrkVWy8CJ-x*9-l~{5%FY*xHxdCos%N14=v7!Nl|71~;$&ug&DTejy>MoP;nEp~ zN$ZRS#WC1AMoR%IS#3D<5Y3lBC8*Us%1;Suh!fPa-IS{LpnSPZ?o0wm5toY2c9u=v)Fe9ANX`^0zNfsZdau^ zllzKOVRrGYht2~&jS2+kj%jCa(0R;#u*D^I$Uwe=n(dyo+)(@D2;Pu|9d!(n zWr>l*MM%V%cZs8FLlP))BwKOwEhZE8dKOIy70hhps+6p~1iEj?deB$Eh6j8J!HD!7 zl_Y7<=ciNXF4o0+H|YZN>`sP;z67db1wr%#yJNvSf`(k6QYQEuk##Ta)6C&RzI^^a!Dph%3{T{NRF+UMkf7>q!vV1Ag+=ElV;cQZ|ny#znmKTRGr zHaM+`U#2Twvza~F%3Y+{RSU-+mIV;Z8UAkxBK7I>Cr|?zkYM&87dx$8^cCBgs&Z=e z@L-N^Y_|`9{rvG~Ol56t9wO49?bUj{6s$eVLuk^uluQud&K<EEn2ZkEj*mnr6un-Q7$OwX%Q57!$g%Pdrl_%yYjG(k-0t)KRcd zbO-be%k-d};}-dUxx-bJHCY(+Wm2on=`g<#I_ZsoUQsT{>@{-QM!~wE$XPDf<6^)b zc_vAA+$tY;#r$0o_1E49nrnhzo09a}4O4^`BxAB!oaByEj%b+mFRw@jMAcY{rIdz6 zwbmh}Qg0`vH1KJX(&H@QGA195~b4l=|4l^hoC0x zb$igVfiQp_0BOR`4y!8Wi&c6Bd4nq2{&B&F99u>v6PSU$em2cZCX?Z?OWy64RX#L8 z!QM~KCZh?KE1v>6;wZjjY~ENtWxD9F6SPRf$V%j(wI_alV3>r-WIUpS;jjw#dIM~N zfI(M5`Z(fr1*Ar)s2Z8x$ah@^6#}ACR~RZBg`&LKWM+(3BuzN_TjpJt3|MFURC=@; z?51g2W`|2VrtIR6Hwu+9 z3Av;Y$?T*Jiu%T=t0e8Y&>Ld|3gf+-;1OLLqhr2-GYe5)5cmJGuyZy*^9O8nP_m7u z683Xu^fRO2P*GlJwl0+7$!~MX(d;-c-35nvgAEvT%^fST-ybmBNfF(#az~>HtOb}) z;xH4+aHb?mIjI{41-`^daYv+NX7#HgZLtrrDfoo@`v(+@X;-tS#Kgczm?DGzqfD@@+VT@rJHA#}mM^O8LvH~Ul{elO=V@%%u)CY#kUzwT z20{%-zn@7A8);z3AYqyKd-hU@lM|Q0x(Pcrvxlm!Mlgq}%<_3nl>RqKtwUQS?M56Y zm&&sZLY;UQV~@m^UYVDO74KF}6#o4slEo3-3zM8{;rcU=+Txw=IC?pQa*GyTg^z(D$(RlCALDg%ZPUmLA zb}^_JO&wIOM^!xMc$Te4&C^i#LMXM#LI^8q;%bNdq%_t%A5~TYmGjMn^2QW>*JbxL zGTWmvUMgh}j8d_%5Lh*`s49@S^T{Z4uH=+mr6q@3fRQ!u?=2fXIhm&?JR524-lDMjW0bN|567lVUZ z36yKMw^#II+!P28Fl*rVYOTJ*k-EXno}XX9QgVKNE>}!OqY?OH6k4|0-t?in(#;+6 z%C*xFQ4P`sJ^|*~u&B$I*%yr+P2m~$+s&O;x75X&XFo#sP(7ez@X+lxEJTMelR!wp zry;9wgw-9^Ue?iS5)G#_XlzY>C^mRD>zRm3@hy{GDF59TX;kEp4*r-8>+?Bg$Y$~03pXV59MpG3W`a1n zlR?b}XqHNnBXMnSuk)d~rBa?nCbgcnmrqqu(rDIv%892ytzd$!OE`>hJ2&B-wKXUw z64)azFTZqqy}e5;rd_P5_Wl9c14#DYh5e6aHC?Kxkq(+qlta3alKGSnT_bBWnw~Dn z#R0h!fYo<>bM@)dFIck>gC%@AGGe&dJJ!Chm$nCmNqYk0#P#);%gaxlZb!2*gFD1{ zQs}mGxoV&tnq*KFm=KH$rOpnom$1y<-QV_leRq14)USzI_MkWIbvV*Mk{NeQd^sc8 z?L45#yLopOsVU8!`t%k=o;+rb)b4QAAww zH%PkFvgfXxsKyGv`GQn15BGd(HQfQmY0#6JbsVG~ z0;R67a)`Cqg;D9`{SxLO=&It$P^O5u%fgbSv-!a9jwq)z-xf;T0l?s8;|!c?RYdnK zR3OU$01yC4L_t*b$)J)2NwqfKd)z?vSklg59S1LEZD2Z2GQmsZ@b9*F0^V9@KC}gD zNMknVsM$hc`9fUTNw1kEaPw0kIYdLA$z%vD{qGWLy9sy+Y!AC^Z@@+Y0|xC;&@k4j zw5Pbd>9piM3QEa```bP(@VO%}Ueym`=&V z{>kZCYqtrFM8DU)y}LnC2Zsk?U!mpoS{)>z#mBo8T}q=Gf=<>OwQ{8dOAQ(#>jDkg z+uy5^vUQv+v(3*ZSM?PSJD+cGfv+fnR5=}mKw)j0AIMm?^%1%<89wH*m$ynvH4=8E zR@^nKIDgE%OyaX`tmL#2-$%tQaN#S0U=QSHFj@?3~BYOr0gL{6cgh z_B6OXQmP84itrk~D8Cl?g@l40u{;u7Rk3-+FH@^ULBd?ghB@2H-W~-isSzWpSOY!> z?}7b@Z~e}BwJ!K5PZL`_3SqZbDKSLJSja%#WgVle_elCM1cbZ0+s~grae()Urg%sV zxn8E(lOebWbOEY?4xoGX9Ik`dEgSD-M^4YUu#v)RrA8FjQR&|v^{dCD@hUcIXLJZ-ni)BhkVM0@GxGBpa0=F z6pUbw16hOSd8BB3pO40zfIszR8JOoKquJkE20>DpT@`YDB2XI=YWj#d%ex+gG6hlqNmLu>$pf zN7UY!Y@;$CeFC~|(ziBWa@=VuGbr&3=0%cm&!>`zin>$>sE%v39#y$D75o(Z9ZWJ+ zG>B>yYD}6J{I@U;M!CI{UHedUgz;#6_2tXYKmT}hdp(^@o5bte0>}VxbMwa^f8XtN zQu8cZCi%$!&_vfMjAZHD-`A>iZ@o<%?!nu)@1c7=Iy{mqCg7_fEr9LbZy%a~;Xtjx z_wJIkvMWBgHM!|;o}XRdHh zt_k$Khet=yU>+PCa1g~^s5$W39jqNt!RH)<#*Z%i)%DEnAAkIN^o(puxt=k~gyZUD zO)Cwuqb0s504cuL?|%C9^Dn>rOpN%#hFuLRW*)0jwDQAMk!emIO+{#1&rAm81#CW* z%btHoH3mfz$vk95Atlh<_{}NxL?6s-)}6s#1(R5{Qe}I|h|XTok!R`~mT5_N+re6os+zF-CSS&^z%<&uD(EuW<|NuE91QzkH-6@4(4YjY52@z|Kra;qiVDH)b=g) zOfusj1mvna$V*mF5}Tpir^D~PK6&vd-`+IIlN`uT69f>X5C3=2K4c+(=lJ-zKj;lc zBUZ|gBLX&B_dkC8@#f}cW`jT5$$;`<7`}M(_Ph7r!EWNLDdB_xEt=il-TvVZf1nTx z)=4xe#K@2Ngq(iM*1+qQ%7k{~{{H?CfBZef`-P8*%C}WO|3{P2av}O|T1%|vD9`q#d1-oZ*dIma5OT5s zdqKR{M$3&3oRigxw~=VV_{FOVnVSq6S9?2j8NAZ%6 zo3D$KM(%%HU0p+y2o3>j3@pL<`J2gPM7LMjF00}l&?vEq_C9|68Cp8bc0N|7rB&?Y zbBM~r;u36pd=P{@^Ncw7!7jLnv$IoRSigsdhiDosH()33Zf{{66$P>F7G)!r?d`SM z&kxi$OV|z%C>$~L_e(5?gTup0twwP>O68p<$VD5K2N8iGG}BjGBS1VPyX(t|u*nJk*uq8Vzs%q!rTpSh!Xqk&j#3M(pbFvZL*Puav+R-;g zuB6b)6_1qFYK@PXFMOB!F%oxcRb~<8f^(@k7t*gb`geY|<|?&xTW&w=5AieBU=Hg(Wy?e_;N;wO!9 zH$iy^w_a5h8DQqnr+@nN>6c$Vb~+vK&RCb?aSKFJf^wnQlao_a10~>F__|mZ#D5o( zuuQmP1Y~&NF2Z2>F0$P&RGOWtRm4~;0n*vl;uXjddEDd?Bge;&KV4pakvmClG-2MD zjhL&K5eWy_7{BCF|5x|{mW-R5>z{u5>FVkVblVueYLr{q;$?J--V(`1`Z zJTHYhUR}pJu;QerhmR$xK%vVjWm>#)O6!-42A}!RizM}mu#qd0!jG9OOQuo*P!+gQ zvYr1VR68_^6)!^>J} z7EQ&IoW!>#uU{G=OS~%S>a0|%7R#V%qw=V$p~=6T&ugOiE1ROaz&q1=G&lM5%HK^I z9C~YX`=pLbHvUKdekil#O9(XpPfn^0YFqTOc?O!6tzrdu{LyTy*P?0W3Y5-J?t^cG zj;zA*2BFJ?&Jhgsgu)DVfKDWehI?3gp%}t2fj}h}`4l!1Bs3|<`>WzCgTbIwzCJoW zV%J-Zv-1nEjB*qRDha4cQJQi`zthT=bfZe*3Je_(gV+;s=_CR`EZAxxrxqIQO~HLXLS1hpx>nk_EW>!7BcuyIO_@|`4M|4!Vt{J zn}i7}V2Y{~{%ykPV*e*ymX9Zu+ebaym!UEd7pN>l$K$V@e;HOeIk_{K(T+N^_XqEf zOY9|dx1BV6;ygsIk1nQD)~?c_`dvACLxC%xvM-4DuH8@=m7|HWF*sKHX=tDwiMv9l zh7A=|V->1n7CA!6WrU{lvofW@>5|WR*oruOC|!rL;oq}KysRmR=+d1hvV4+CcRror z)Yr519+jG4wYFMxf)c7UG3oUO!|`;C8H}1-UjuDH_5a;>KYah)_n5~tpZDmHG+9Ti zs>QIEiGHWs!>Z))NbD_YI-{69{a)vx)9G~}ek*$r)t-WZc7x){4~C#5_@Um|IcT?0 z8T?J2ueuNS_cx>TdPF!G?3glV&kT1upxU8|+vtDO{BoLPF?-e}v+nhTeCR3PITStJ z-P@IySszi|Awz770_2uTGs@c=aiD^7sRMDkvGZlONoLv)A3nT$`@Yp8iy*E2-KINf zOTzeMGQ7UIg(epn6PgdQB$Ki(F`?c$Kfl;T(`Xf|StI=qD|8S2wLsja7rISjF zdffybNa%n0IOGKHUteD>mP?(U_SJzG0sEn#dvz}SyFLBwZ_xXBrJ{)LMC|!&Y(kdL z>BJ-^j_97gjMh*L2G{_MnoMUftx-tWU?utw*}QZzcUdBxg`$`fpdkEpL9-kokC!YT z(xDnRN5Yk#i^{$p)%s;o<0YITR0Z-6{fo9>`muLfiYLq#wUX;4$z3w((FrZ4M;Rm) zQZ@Hip%CjkFuvEE*(L~O7k0DBm@JD4hZSks-L^p&M$-VivVO>E6;K!y>(vI7{1Vrf zgOQZNlC{?PBrnx@ulw-j>TGSFhEQB*=@6uTpOA zHd(d0!zUzk``{4s@6DUHw9GNvq3mnzabO`W>e{{5?nCu~ZB9uj47;8WlPZtOsPQO_ z>9Dgh#5gr*6i_~$VYeR1?EJt8gHw`G03!v%FqkwBgESVyN%V3McRkOlnwJazPAn7q z&cb>jiwV^9bK9+QH(Fx3yU-VGR4;R&B)UU9T|hlKo6)h1`E)^qXX$Pta)mRDzndFM ztxEd44#r(rOi}F~Q46m}e+^0DH|YGzPHWC#$=I75@#ol@VP{8|VybYcIcyY@49W`P zDu=#KskaV7$i}^~9*ssoao`8`k4HuGy(`)&@9%5u>}U}UmsT7)Vjqfc?6a8aVdOBzlU*!`%Qz- z!7r>OFW2iezCw!RgSLC0u=;d^78Vh77k+fXrcG3$1FH+&)9q-JU3uJdM(H)0edC<}A8CCs{ZdrxAzV7yQiI)qVs&00|$niBUJ zl0ujO01yC4L_t&xc{pVQ3|;s@A?%yEkEKpNjhihrjU~Ge=jZ2Qe8Mjfve+~woa)`(4Zh20^$&f*H2BX9g9?z)T?a9wfmDLOAoP1~2qAJ{BUjub3STx#U(DGzWGD$X1 z=3~X%i$|sHV#R0BY&7_%C3PAbZ)Gw(Bd=Ekcy|SdbaEx?SwXjJJqOi6toVXx@TIk} z;!7_aN&dM>w}R3*bwHA6GK@Ky~1FZv`+bu@Cu`h%hy6>1XEPS=bxU82HUX- z$VfE4zvfu+c{J?FA~fv{*Td<|Q7Y3{dR5-%qdMJgwPO*D7>qOA<_4&@G^?Q4O;B4A z=~7p#bUFCEI;#n!{|O?xKa!L>`)a7Q(cm+vveJYud^w-gdS%HDHDT|VG=OM!r}N(p zP(N_lqO>mM@`k(f7HFm#nM%HUl`-U^*EB-p`^>N-Ed$%Iz{-csZVQs`%xX zLfuR=*~y+}3}=p=;l9GAC{{e43gr18fBf# zR2dth!o^XDK~tE4+{+}(ySrOD0n{e{vqCZ;2=#hBC>NlxfPTZo#fcMes3XAm%Gn|o znfCbPrfr@(c0>!lv9p8n2gj!{mK>j+a%6?&9SKNuSR29~`S)kV!FWi=m)h;agTq6K zObhX^T&@PES@WZ$X^IB&ZqkMIB{o_wR!p>KE_pn#lDIhw|TPdD4WiVd#)pXnaSC2S{UKG*r-hu?5SkcOOoWlE)eLv$MN z-S&oSrc%~Kq#U92uvRJClqQv%{0Y0YA&nt_!s`Oui6oo1L|V@J>B;H4_wNr6jzC&^ z{r*os{q*_Mr{Q=oU(isFDSj;eo`Vb?ADz%WIW&L|ekOF@)7oROme3(%C~?PQr?}A-tN^eWsgH29{d6`*G#OV-T zW-FKWs8q`Yag4F|QTUTu)hTE)+=FE}0=6kw%CCuPD~hCJx(O;uF)R+TFZ!?ObgmR7 zRj8iM>>_G?(yRPJB)Pk}x!i@pc8_QTG*}cxS?1|-MJ~Qb!5Vq*XU?{u zs6~dYztEk*%EH0k$v%pvX?E;39tI?`Sup{s$c-@^NICc%kyo|48mjgIZHf>2T`g48C98Id`Sdk1`l3>EJ z#)1vh?zWllu0b=$;tV-rnv1y(Rz`erZ*TAT_~hZ?VLGLKz`K#;`j^4;zj^cK`|m&C z547TzLV#bpD-Kj3?K|@sd2}5QgRS4*`~c+k2wOJ@LlmE6zYQuP(gBCfsK5{_V=khH z7f-O8L;HVs*GQRIj=*upmp)+$K>6T~-oAbN-FM%^Zh^MfY8A1L$QO4=ifMBgdAUj= zPQ4nQHhtCeT_IxQ zT+IaYsru3nx+f|S^+Hk`qQ-rFps24>uS{S9H;OZ&hf5~E-q7q!aO>3Hl) zE>^tG?Y|yPwnx=BO6tHgC6hKYsWw5CJHi`MMQ>n8g8Bb-&{77~p_Gz~Qob$9@xaZh zo?IUd{+q{&&!Cx}%(N)elbM3^{T%hhTGY#-MS3LrtkO`)D^Eb>6@DQxh2UBg`yeD= z3HA;(DSkOQImM1iN9wy>ETC&!emowiLRC!7mysTY$;fSqFW?o*OcLkaX zyh`a<+)Mkph{otn=i$wpi{Jd_!{7bg-=dKB@85%w!~WjsbhXY)KzfDcM&&=fdS~A* zsUkB;rsP7_B5NxR%Go>_Hr6I9pB`raLe2lt+ns;+7izjlj$4c0oa)80{4mJBtRkUo zE0o)iouWEMjsHalI@kbThvNS$;IQxSZ=lPA<^milm{+=N!Ka_(1hf*%^5NkQ;slfnH423qaE=_9 z7tFC-QCD<_eIZU2GMrq69WT(G{b~)Wi1tAndXkHaH<-s@TzA13Qwj9*Xggp(&N;MkY{E9UdJ))NeF)Kru>XJ)6OP@MSz2 zE`{mg+d;l#c;hiFC;BQSd|ji5Sq*(6N8487v6dQQvd47eF()+s7TRs>O5qMw5Z2pRRSs!z>NP02Y@<}UWGhH_ygd77ryuK6#BKMIe=LVHe4(TU z;av3{6-7S_lb+UPlFW3P1=(^)E5TD26}GPP-QH#+f8w`!sf^i9w*+Jf%w^`7fB{PL zLS`hp8@nT0umRiHT`(9`mlp$y8AZC+Wy#PL96wNv1i=et&Rv^#!a9-A^U+}=dLz)aZgcw-_p?xlu#-ar0&?afT_Z+%p)%+q~^7`+t zK&7vYvX@ZD-R?uD(}6tzN^=-6&d)Ef#ISLIsL&8ENu6CPRh!NF+1dH~_uoUYj`hVi zU>2D0p7~ViCS{eUDv%qE5%2lRFB~jHsPDa3uEd_;nP&pViUFxc7SIx=CEHhaK!LsZ zEfneI2Auvi%D_AL1suM_EpIk=kB*LD`G6q-8DJg37eOU79Vw&P9>ngl6Sh(zySPYU zSjaHCps~GP4^kU>>e_8xT=*{PORREMo5G^A!_LRhMejjaV6n#PzPh>;7Q&=~ZM5Se zOgi`TR3(tu<=*px=x3V6Wi(`mbtNan$rDHSg(77RG;?$?;zIU3gh{HiJp#;e4NR{@!RWmE+-NB;K57JXl(dNH@kiqUOj z#hX|MWwJzdBQ)3}%o9+kU$ND`dGqGOhYzQxXZRhA0eaTzM+u#1ffA|k!WWrt#UIm)- zKm6ejS65fzrpbBrhDlerdXe2ZY{Cju75yD0L-sFZp;x0SoF_7Fwg33@0y|h?I-P>^3QkGKmS=--B*f~AG*{(nXuk1{F%0M{Qf}h zyl&`X2i;uOa!&L1=B7(NeCHX0B6rgF_V!5Y!Cq6q{olj5G8(x+2=tW8y0OzdIy!D( zR+sJo01yC4L_t)y+vM`1)r3k{?!b@|q)|QAC!`T8>+9>*a4-}vWZXNi%`KQoOok0}}+=@~HeXOMPW&$uOFduAH;40Ac8_@0r*ge30!`#V^b4iAoC z``KxtQ76Yo$Ng@X&c0>884@y+p=)bV^H^S~oAHD-Se!aUqv=a}3M~%nlV!4ur_x$V} z+L`5I5hwyEC%PWAs73*?%gUZW(df*xlk*B+V^YrJmg{_qG(&BiP7`CjvAe>O;KYpy zZ*nM=8QdW0IA(eB)4-%en3dH=tbxnKy%;D#LQc!)w`AN%JdZ4|nND@I!#Q)0=#?Xk zcH)HmM~Eh?W41pPbqy#+^;(o33Z2D=XXT)!ahd|>Fl|LL3jc0Ys;W-EyC#{hWSZni zIZ%p0V|a9Y)L_RYhlj^Me3)VHzPa8Vjs_qH7{q$5vDa?Def#e1yZ8I;ebD^rgahx4 zMo?6$$f=r%X=#+iRGBZPP?cVO{!HgT>h-+}Id@!@7ZVIBPS7qQGSjKt9uz6tAE;J9K`cv9}NH>Q1*)<|~FNPp|D+?=-1`wG*O-)rXVm2n>cF1#tX} zc{&Pga!yC#-TQPDCX*3p`GSHfCGm&SI)9C%;vEv~TnTdBE{L2;$va;wS=y5XhKH5n zNhRdWNcolXVztupmzbSF{Ku2=%ti8W+fB*@h5UveAVEF#a~k%?QDa^n6*@l}DN&Sw zCzZGq&Y_K*k+&O7232aoHyV>bGx)?>#eHSi>C^Q7zH@zj1<@4RYV7#fIWbqUMs9EK zzz|~0H95p<92~U4mb`uY7A6PH_6BzAH?F(GSOH(;mxl5Jb{<9JAWeX)$Ld2f`G8jk z_8SVhXBAj-;igO%MoDyPH5xFnkV8_KDumh4*3+i&Ju_Cm8%RR1sveSw0G1wb7e^G& zjKZfc=?dCz3(ZW(XV-vzIt`Y=A*2#VH$h$)NF-!Ec6r!Kp!}>a&9;$c^xj*-#?-O-aUd0dJJD z*YU~t#6}U*>pk4wUZ0(vusbpmqfmb)p<|NC9FvUVA*SJ9HatU;qGh?DeN|j6>nZPlKi8n_z2*YlA<{}nK)lbr46FNo3&_E)MIEA;5|UCH>4P~a3T7w zlE#|2q(vp)w?SW7)E$!B1l4Y5PaJ9m1V{)Uq@Fv+iaos3z9=C-8A(KX2c z2$N~GfBEI(|L{Nj|NiB_{BOatN&X*y{ORBQyMJd))`^90=EliPKR*TaFRag-d-D2B z?Pl-O(b83S@BjHf4*t9Uc6qX!oa_RDy=3?Q@jsf$Jjff?_KC@&S}7G*%m1COgfwG{ z$7q^2b-HDkdxL0kM-kA8?cV3;sVAprH@7!nsl9tBkT!_=XXntw?SR`eap(~+9UOf1 z3zTc5iwbJZ`h|t~;5t1ygH;B~L{cu?S^pKuGUG9WHamy{d;8>-3vIy5DEUWrV-=ce zAkyz29DMljTNKFmGsr&%)DRC34^SHJvB&U>^Ebrlo}Lf-Jutse)&mfc1I8H0ejVsC z@9x1{2d>puJ;kW&nKKA5YkOv(OQk>#aZ`=u)&8J&dwX+sdcI4NLmdMF)70JlErtLx zM?he7wobXV9a4dqA{6E={KXPhRs7hwm!`?HFGtuU`sRZDHyaL|YN4aFjc z0~$swo?5kx_0{b>U|{f0quzvYcyxRS#X&-GF9%rM{Xu6rPgHvPPi2@1$4=N97NN@J zr9UzH)5#dC`{wqR!l)lqVO%`n2U`8i#n4C>$Ifpx;n`R7^(Uq4Th?F@$tbvWY+R>Pd7G?3C@EleqJ3Ca0drL&`7DZ-{E^4Xg}{ z1om#|he^M!E84lB6gQ#l@@tVtO;*wHoLZ&t$ism^`d_|$fhHa67;HPNW$)g-qhn7O z9cZZMWcI7T;I1q9QS}I|W122tSP)V1|hk>F)2b)4>nxzl-iM@6S69~9*v=rPs zq~*__f8jV5K4KgUoOP)9@t63OlAG~#yhDd8#TG2*KL*52-JYFM+!Q+Y(Qbp)hZF+Y zq21mG2L%-d+I4et`}^Pj9(0TYnb=1R1K)l39fyl+bC9_fnuh`~_pUdG3AhKyvM5Y_BD4E6u;;WuYz7ktG_%CWl$*rA7qI}C*Q z8OsqUnm=q6yGLW$pVlE!r{fb?k-BtTY%WK4tu^|-19F7!tyJ0)&JE2+*U4oX87!9U z4!mS{cXv@7TG=F%w|McmTm``}5N*Leo zzWV`f5rcHtaF7dBk6g}vxpFaJUgk08E2G*g_Tr<##<7Gx`E=B?G67j$kE$5ex*!_7 zUW+R8q)76QqD=j~0@0$nIMijzu!a3EB>nRISY$C4Fyb>tyfM zQ57o(a&^u&Ewe+dKxMzsSuhCU9>4JQP?xj`_woy((Wf(W!}Yd)g^2Fzl~EN(gEy;C zS<~rzmZdMPS_qG#YV{85Q1d!y_JI`hKmAYtGx#e!NMbL>F9n72K&|}b2Iz`4Xo6%| z?aVLwMbXETPNdB?1?b=W&0qiR-~Np#kikA>x@+yAKaz||%_?+VUSI94@`k^ACM|x) zJPj@X-Iw?J$3Qg5O=!?*(GMUpX7sxocL$R=T9bB_+uP@@>fDKT)wNUd$~~KsCzdkZUy*zC_yq*w^7Ahg`jx{h=ey9Dji}EfJ<|(% zCVJf9^LaWLgzj$d4iAso2Ndc9+9fEd`J&0()h(TlZatfrG$<9Vb`z7N4N>LhnME`6 zEWW?y**2dohqAqd;=KUrKo-C6P-x=#eo6XqOLlpyp)lGQ(MCftO&?DtvAyIugvqn5 zCO^22RkiZctD(xX$d282oGu4sUJ>uTEbg`?3E2#C7keJ3Q%luSnNO?v3lrKg-?qss zSaaoTqff%>d!DKbQy1LriZDHwvEY!%6!agjKrzasvSB!B+= zx!di-!eZN>o{{kal8y1@dZ6Scw$wA?fNiZ<L(p>a6d+uN;_s|W3aGtxM8VD(hS zi(9?~FT+@xq}hLZreybB&0aqI3{mVGr^QN>G(M`a4+T}mKtNjo#i_E4JIqUH{v{L> zP-m-t8X^X=I0VH113Z0D>?eB>GeCGFMqlG{CP0!@6c&hKDs`8CCk zf+R>x;^vYk(-dH~QaJ?alM8vib#&`IN&0=zlf`T?6>l|~z1VYv+Xg#1@pHqrbTAyu zXUnUrOYuVE`_uJXl+?CX{xprwCtVZ7s!>w8$G_}F%~fb#(V*=Szmi#@ihC@tmV4QS zXqY#{nrwp_FQpWr>QOZ0K0Pz4QXxm_^ca^N6hAkdKdu;cli#&9+81;{pM#BKW0Wp7 z&3l~(C>%N9hoWHV^~UMh8F-B8Y)a9X$lWIv3M>TV{fQ26+}?a7bn~-I)81zZgDyJ^W6fCIBvD|e`SjcG%Mb#q5DM>~mMxS7l!iI$s000mGNkllq7DJ4lUz0!f3 zi(eZmlY}|0=8PB&3h*Ard&eKx>&1kI&d#72Qu&-(1)Z$i-jQI8@9*z^`l((n*J$3h z+rk+_GtT!mmVBJQ!m-VuD1?b+2wnxs=$o4>=-K!7(u<72_@ zgd|izx(N0Iz7w;M_=so`*J>$U^zq}z>uayC*8%q>e}pOn?Ws!GhnyrkYmHohTH@@o zP>+)vy-I~I${0TiA(1sktYXx+e9(25eRJ*eMU%VncnYJngbxAJ(xFY{6WWEvhc_`N z#gW&HHj#uKWPt~*ILYqe^XE%YFlM1+%5LkgW6>%9Li)Gp4fzrbjQZ_>d6rga)DuZ? zp_s0IM{YDQg)lJ=gEb=kMm`?U5R!=R?qIFV+OqJnGuJ9lBLg#R_-h9PEQ()6wyC z?Rml=naR68sZ=V0>Zk6`Dl@`s^ZE~^Xn2S@Mx~ycqv=z+?T05-^DjK}@dJ@BIhbj> z=({>U+e7V&pA3~n>_HpM!el%m&)l~+tyZhqf|jt_-fzS3NG|x7_SC^z9UCyey z_%K?T)GzFEY9^kKnO_%OCFweQ-J9!c@VKyr;6t}Jq+GzKA$ZF1D`e7ir`}#92Lp_Z zr~s4;U`FvWxz9>3x{@_wJRClBJH1}7+1%Bv{zDe5>lB3`R;?-f{t2a_8uKV>AAzMv?=7N z*TGIX4*b>im!E(7@$$>%cszs(4r`5_aZ!j){B08JxZFq749y!#VhdSnFc(c9b%>iQ zOS%#_#e%)PrSpdSdvqGQ%@37t*VjzqWF+=lak|g(EgcfS@tP*5SWt}S!qSASZKYl+1TIx4RA=dT`>LGSYN z^2eY4aDDS7;Yh9Q2!aB4qlV;%jmYjD^{&OnQpCxx; zNn7!W3o2D;nz6^EIU908YJ^X%R7xri!w%*a4dF|JI-SCroon#t7VKkf!J&BFGBLp*Mbtb0p>QBJMCC#TwtIXK^YhJ{w+DwuO&BW3(N5LB zk2#1{35z4Ngr7e_Irb47H0_d15@r(j!?}Mn6b@&}YaP>XCa?Py`X*dK=17nPYFLonfXDaMHori~$<0DO;e^@CAb*F?Q zQkGK!Ng@6!2^;PVBu3tuVrkRIm)wWT<#ai|xxP`xj>6&5(N04~q2i`TItnlY|3c5l zht2~!Q%B1obJFlDB@N&56HkU<@L)rtu~5cE_X&BRbPjtlCPwX#IW*e(3sE+gNX+@_ zj&3l8rFp^u&`l^cDaSA{P>ja$&$r9_oRU3iY;YqA#ka7I8KZdbnj>R@E1NMFnn8^_ zi{NS32H(}z02iadsHI5^`e-zQ^;FT)n_XO7fGe)sr{>29|ITI;jv4~v!OxeMpS#_j z=qq{MPZhb%oQv*0$9Iz8M`F%gwp8-1#J8Mx*ex(+$GYxzyUdGD!+C`V8h?-)s2s2) zQL-G~QWSsDZqQtyr>GQfiCO&{m_1mlUSX@rv0NF^=iN^8=xeyfSkA zQ2jGb_t2{8;37I*<`zJHaEd zHIBJOx>`kB%zR$aI_2BLx$2T4;u$G~FV@iS5O0kshcAP-lFQ=mG($x3Tz0B5TAkTa zbIGU)CQ{+#QS}H+L^uUjsa z)ryB)z6^$t^M|7Wq{*uXvVbRLe5 z$Vo1Y5YYW8_H+c@%NS;uZU>!!|B#(d&xQ7qgpRg>Ux&g4<;cx()X;?1nuN?q_MJz2 zX6SmRgr4~F^}DuVW8A$vb>~WXi5Emcn7P2v=hHR!|7E^8lUelCTB-J1P)L zQ>NVi;9C)F2|B1=h!Q-V&Tek6p_9jKKcy4U2hHXV^d@rofPyGYCz#k!Abz>JB5UYy zfREtE2dt4Vmz`c0Lx2Bpj|D514B!9mI)$wUP$(v#P+*@Y_W}|<>hS5) zN9gilDM9{zuSaBJxf~41V8d~V3@FT)Bd#YtUW=y12+Ql$_0@u`Po+-x9u$K`Q|s+I zp+oWX&h^bTvhs=S=w^MeRgmz1Db*?7jXKKlNl z^Xc<1Adh2yVLX|#kGLr2il0c*EpmaQT=H7B@MYyGiGNu+tz|r`vuGx-JK|^DJP*-y z0m_dijf=#}xx{!hXob!Dl_R=`sJniYMRP9`@sMAF(^Xb$5cYX+s%xoJkuN0`u3HN} zv^nbO4G2DYr(9lwAVA%BdU^`oSd$k87CAKGOEzH)ha)A+)NZbco-z?{pqI(7V#ck=Rj~2BUzzRz|^^QR7hn z|AtX8(S-n=AMUS}B#{fWu1s3p1uH=p`Hei!I_J;~_1F%T2d1pLl>^hg+wWo~y%1(R z=_^9l#Xo;6?{i8{QNl#?U%ot3Tk-K0cykD=^{rve8z6C0Pp^?v_p0G(k ztb?ruTnBei16CZd3Wr^EeJx!yfF;0lKC-bciTfhjD3=Df$NJ8!Vs}pz#q{$E@36VT zZy#y5NK)D^{f6df;pjSDHwrTMh>rrDfsBa(?RF3FBZ$A7Cw`L1Yv`XjhQmvC=sk=w z6MW2J%uLvmx-8kD=pWI=~Jk36wO(mXp>yz8J$QaOqgCYO%7dej&fsENII zdP?;yD@=P7000mGNklAH85q;k9p74Fbqby8aVgrpz+{G3c)CmMWyg}xx_LL*zoBbXbqBvY3*dGxV(?<-OF zg39R4zID=ek8-4b6V$z6T(S_AK2P7ty_`o~ekT{NLW2WCkD_TQF>2PJVI?zY+#4aP z@(qkp6LJL^G${NDNfp*=gS;xvnAYDN5XmO}d{~RBa3;tMc{x;Vf`(6#NN7~*<45Pw zz-q$u{lgC*z!HMJPJ?yx>3$e9cK7z=LI&i~Avk`zK}_Bus+FoPt*n@`kP3Id*Z20wjc=)}VTvH9{}g?(fsY!J zNk(!WGk?`Xb2voK+ayOui}|oW;INR(YK@wM_Ox0p$TMgi+75Yp%8{v|=tS#Ki@7}_ z9d$6+W;CI-OTp)%gTTvRp{JqMBzVX5OlIOb?#K2Fl!{~N8FB-%G+bual}RsCKlq^c z$HR=un}?b`t5qLhZb#{RgPkT=lJ=yD(LJ)4*R z5$_PNm?(Blz-RgvqKXbnR?63Ni=g(9ac~|d%kCMg1ZYDRN^-lqI_J6T*O!Ejm9oLt)1p>gXC4@DnZjWo?v)~wB84U zDThc!=32eBzt`T|-GfO0?*Q$QiDKq?O&vtEle(8>MUzLJ9oQJ4FvT*#VsQ=@sHz;{ zyt%(mM=6nn_690QHat{zTYHTLkuS`&ULQXWIm(Fj9SjlyLeVDA6(ARyZ?N@-d|Fuw zmlMQ5_xDiFj`vI*a1Y#5toLW>ebnv2OgnPQXz{5<=Z?{2lt4Yz+-JC&~QotX_G=qsA8(JF;au{6G3G- zpwYf?R@`HKj=R3_;$?|u{tmnUYUmXK$)s2@4)yymJ|!So$c4)LGTGi~{U!;uL?1TD zl`B~wP)U$kaYgH=j(i;!1q>GG0GHViPlI%72eg_VWF*NBg(#LOc>CBDehD!83e>~9 zY?6{)uMz_Wo)+IlA*eh$1YM1qO9cD;zAr5`?8TAe+$?waakosO4pFIYPG$Pm(8X(t zh$Ez1E+g`+lbK`k-_4htL-Rb6dTCS=5n&1V4S#;cz9{v5T2il!_x?D#&4*S#{@9kk z)bbTk8+hFNR&`0Q7v2>8`biP-e5CQOhCZ*(A`Wku6v5j5p!_0x(nYqvqix2tsgot|)G)TpS_z7FbJ7c~#eA)nn*N)@v@ zempcp<%HZd#LkXb(?{Vfxd!C%fKNP?SdYkAC4V7@!PLdwgw?D`r42;FBD=3>>pw_~ z2kP+mvik~Cc#-W((hb&KbtLi za;5?%Y<2jKvX`Oq-Qs&jZsRKHnOvi6-moo-&F?Nw$kl+`K!AD^- zfyD)-LS+!#@Y6Bz)Y8}*l%%azt=^z(Ok~23OeW#W{6FLug#+1<$%I0`rUWh9C-{HN zVK$l6=hG>4^>m=#giBSg%DXY@m(mkarLwGQAu6+?%Jav`e#V(h5>X|HV4zd)a1P~@ zdKh9ATs~7-+8z?bJi2kRB-&3}6qO2vFDX-WcXC;|V7Dpc2SpZz*Q?T2Qc@+ko}`k6 zSsGN8b-d+@?3CnbD_I(M%`UBTkXO;|J;Sa}Go3+ z-BStoZdsekkM+`i%%Va-<556=7=!!XZ|!g?m*>m@l*6STo%GJ%5Jp2dmS{Y>7h zFtAxNoVP084K0nu5I`LdxmR10$;gL)kMpie`aQ*@UNkq&`<#+PRHj53lK{$k-c!U$ zm$vcV7mh*m(cmLgu}dr7qL;=z+9I=gKP#1IK~30Wu4K)Nu4LR*Me)lgT_iRbS-4U)-%MeTGI_O)>!4M-e8aq|yZKu!az@+FHpjQx$4R#ijx5&zEm z$5%}1oGEkFccoFn_Qk^_FSB{CL=AM)fQsb?!t%7R{GyS57O%DieU&NMkBFSapv|t9DSuivxghq zl)Xu}?95|g@{&jQ_xC*ilS7qyg3fItG+mM}i$3;bcN0^fMk_|4X5zb;Ca6h%o7)J@ z@snGl_E#ODA+#E`YcR()tV6ebpy^h8Dpx(@3Hu?O^X@6=la0~rS6037N~l{M76kX` zO(uCX%&r?Qu!qTvcDf+!mJlK;iiH(_Ao|z~K6;yCi(dBJhogGTgCxqBqU`dRqB6t2 z&*Uw|G&4pEu1ytwH1mSatfF9PMR`}CZq=?vSIedA9=AgnQ`CX76^S-B7r$f%$=Yf8 zqDjs6l3KF~d&v$^cfTZzUt&km@i$ibayF+3EvnT@)K87)qkf`sDv43*-T*Z&8KNZE z89wY#qHvuQ{$2bU<98SSoqS9?w9Md~qtDVkCupBxnsQ7`^dZLqSYE+>w;0t{ITE76 z8>z5GVh_-w$P@wCO$-Ujmr=+2yoIRm4HpYh7osK=kUT1(@K&MPErAeCon028X;MVr zOkOvE?FtR=mjp}0tp!f9hPI?^StRc`u4`RhnMfYpEJ@nbRj4S7W3=Q(KPjBRu5+?Q zxtB}E1?4V63zB#XRth$m7(Pflat$tc86U6LYJ0onS#dm}D+05?6_3^`^C2__G=xni z3MLbZPOQTAMzoHO`c`2wA?F^m$=Ka8N$q)I$(g({YWzm}G*ktAo}2tS@Di3mz4|gl zX($^Yxs4`AW}Zq=Tp2wnP$B?>S};0EQK_Ht&Jq)UrZxXvJAGsHDUVxBE~vUO?*HSr zN^Zf5;wV{-n#|t1KCgdCt$ECLERCl*g$2Jfn&C}TG)U?oVnk8Nc9Sv^0!P+dI0~yv z{uW8T-?q2cs#faQ?1rNed8CZ^rN{eflcax&=9QMUR^k&OySuyi1nAOeJWia>I?VfM zvSj_vTPnI$-shAYqG(KmE>X3ha|Uq$cfs-AtLWs(WR!{bo(0u&PeMcDnMF+$wO9wd zWpT+t&#d~c|JW1joEen(K=ZQBNmBmeLWyEEg26@o$G}9YjV{js&TY?&n-5eH~Oq zT>VC<+xJ6ZN@YlKID#h2$LdlLhuoolN6?9h?| zz6vm3#f|7-_kSVOge_dNhpyjYH$cN))vM8LGE-ETL|-Z9#y5HSv83|zYK<86RFuDD zq*Ly6^&1kTIRWzNm`MI%vu~e!RnWnowq;udXZMrJk+I zFBVmwP;Wzoopw@k8lSZYq!)6N(PTC)In8=`ND|F*06p)Hvpoq2P zcA!Rn38HxKiG+%bD22OULIV2^>?OL$ULt#vvK>;QTl^?L;aHaoBjL_f(SpzBE$sOK zU6nm_>61Y-y%8=P1o} zV-(g=#p-ze#jHa8W)YxXv#(rVk=maQPA@~7fp55R)hWmuqtSOAs#c*&<AJkZ z%v9k{986%X()F%_=6KY^v`)Ln&%FYa2W4em@1`Y(dcC1}6pdfdP8MB->O3kh@V$X5 z2fUSVM=Bg9I+sf~!>a7pUZ<#?8}=KfIQ+Z)DoZJObo(dWmmhiDcXgr7BS6izd8Hca z<)5@OUlTQt<;~34qLS?>cq+QdcfV~?Ws`2V&2d&fZw7rlsk2eav#8c?*|1f>341EY zYvZ5$q`0oqaco{!ln(Mn==!|RDLFu?r5vrHZaDsgrkkM>?|rIly!X2Jn9_QhL+M#A zWkXc!znkyLun8G-)fff3j_``M+HCZ zW(1&B-!-{vL`la8twZCkE@;tlbM1`PmdLEUkUe=mqxRYe}!L2R^Tg9UvhBo zR({He@EKGElR?MP;L~cZMYa31O}cMA9St{7w~gkz!=fRdvl_L@m_x|#&U!76RGd`B z+p!M0rp;eoo77?DebNL6ufrbL1}$#gS3zByblS8~`=JYz+mtR>$`T|^6+IytFv4ep+2up>zG4* z*BPTSBegLqTBoO@Dt=a>;Z7{c%~5H%?~OdFR3RGfLmoB3ZnPd%emC`GeGTeI@SCHL zCXrKuSL4UoTw>m^Z(!{OR`&HK)PcO5SL^k9wNeHRnJ>ui3cs(MEFj#d)%}x0H&CBO z9lzn_1qameXvr4o^Oo2xQMJO?Gs*tC^t`fik6*JY=7(f+&7k&oho++zqMpodfU11S zLC1!9EmuxXYWVV5l6dDQ_LQPx&r5tBJVv<$cQ!7`d^bmdi_up~>h!?!3!~3WDwQQ` zA%AcG`bOybPdEggx#MV{V&-GPvF2UUJh}KQgpMVZGL8fN2s!u!H*yvokuV@v29>$1)%etG-*<&#Ta5PTc#b2os4=gFay64A^2`>Zl>AnxyBV*xMP&%wDEQq|$vQ1U)1A(t z=@uE}wKM;lp!r$_GiN)rs3(ofs5~0TIEnA57eaMdlV_tDP`>NA1rtv8qP|j*oE)Q& zY8|Nk`wmrZ=DZjRPW7ODfL|!2V!d{Fa9Aprz{OQ6<%5GZGu7q&{dT=ppG+rsA1}0a zcj@XeMTBl~^tcw}_65n{NiYRe{7Cu{l;1D`$F(k5E{mDU7ov6XG36&DRZP_h-RB1i z0t%GK&(YD*`PoIY*<=q9HLB$o?ELO z9oktZ=-wX1x1(^sE$Jn6QF=ut+{a%jiBV3H>|sH_*n_05v1i#?ez15;C7RJa!x=WkU&-cPUCSL`&6bjpLWd{gO1^yK-87 zo0oGyUD;?@d&ziA_7bAV#spho_Pbib?UdN)=bR~LYULWG9jL-bP}jT-QL_Ry!BCp8 ztHYgjGnBn2v&#>6E8OnT{*t(5%94cLb5Vp0ccOecw>w!{rU-8;j_4kkvaP*DZbiiX zW&+fND33>qy64r=OsxX8#*fZ=REbi^q`t5=MUAm%Pco?X4$6vA!@t;5v?0T^8EV*x zmPbu^aOu~8y19`-)#FLNzFy&I65zmea1bS!gfcGlEtoW50)ZWbWDyFGTMa&{1J;no zQE8Bq9i}JH@wvjaBU4HRY7yE9$>$8dP=l30xf6embl5S<=aqMy?J|Sv05yfEpPrAQ zDkd7fWZ#5rttbTUa%ijylpO0P*6|MB6hD45lg0&gsP&()G{KFTpy8JNji|TEpifTf zpdSie_VcFjyIZ36ThFd@Ffeg46ra92Dw8M4zx;yV{l-bH{A|(IxabEoTuS*CrRXL} z1-VhNV3{DO`cX6LB#mOOXJ* z_Hp%3Bc_NQ(U|Zk^fN2Ds;|BV8ge5#x=tkFUJ~a>%C1blQC%Dj{^ihYy!Z8}jLyrU z%Os7lYP`=wu5$qzcIld=vqSi3@G3;5fjmsbW7V$)UAj6Kpu{8_ku-halTA=rDTza^lW z_uuyi{lELWzdJrYdH?SHa5VUfzxa#8!-Ma?`~L3kzE-coOfsHK=D(j0hlB6F`wlAX z`FsJJitp{|boPfo{-M|F=68u$^oUUYJ3`%$VTD&FP4<*(ew3b)EaZ_|t=$hFegosj zL+Ac){^oDc1Hb*vZ(F-9@e%Uo;>}<#%*@i3_%ncaW4MNO=)$fLoM*$}nelkZ74x9Oj^Z{EV#CfPw0 zuCK3u{OPCP{N}^i>AC!PaemS5b~@b-W*QWgfBUz8i+(sgIm6szmpNtk74!M>^9XXt z^G;1|kSu;oDDCs>E~zW(Kj+7ME%XJG;V*s$J0N;@E7Y)xJdbKmvQ@#e9#zGVzhAP` zfFe@vm$-QEDlizi4O&UO_Xhq`X}tG2U$*p%GZi!_P6jJYyi}9O;U=Efb`OnuRmU|> zmx{Kx&sL)1y*k8$R%(^C4;Oya*TeMqV>#b)j+BYA6eNJD?FTm8Z~L|?3But#e7ClwRMT_T=d>kG<)^6ysaHdaAt#Kl~Qs`N=qHU-|U)@%wXQ?d?aGgw(`cZioTqFWLQ z*D-y{8OBxC5@=KD^|4I~b^B(HN8dX?i~aRisN&RV=mYU_1cg$t8&b3_!8 zj)bG)VC*)S882iuBPJ@6=#)faPfM0!RN#dq_aV7k=oBSEQNCmz@v;;daDlRHQLng|X7Lt8k^2AUAM3+({YP1Aop{2in6Exn-Oo+NV8+Q3ZgT+y} z#d)t)7lsPE3~I8fg!Q#b-wFE4cneAf4WI4N{OE@-Z-u^0vZ&5aMAtt$$Kr1Oe5*P? zC+~|q;$p7KPldRRvO68Jc~4quhRtkAH?J16*#cT8wm80IyIyaMj9LHDY|_gMVx>?i zr)TWWVUzy0#EYYr_&g1DjP4_7zzk$iEvJk8SA-K=g{l>Su)v5Pg z<&vJeOVQwkU^7U|Oi^RLCTc4qCW_2j%jH$uqCv?U=GANShTlk0t+UKYh`Qw#q0SMd zE_&hHpgb0m)bY#DLH%SaX`LDUaL+Djof*OBpy~zD!bc>pO;D{vQklM@);)Ude(@Bv z+wD$gGpPG3l}fACBuTkeZ?_LxO$f_snJjj8+LP%NJ72rK50eRg>~uPR_1Axe0{@$T z{@=`Iv%mhEzfx_aFb@p$68C{wt3wPf)V z2@eqqZT|B%nfz%zvH(nwC?s!NPtvny5#uWqp%MiE%~5uI z4bok2G@3iD`VIx6=joIz7fUvo!^A$}Kz}6|$nXx#>0}sIk3WWwx6G!~;dnHgPUNsB z@=@j3Ff&1(=UGQ8c|Y1Zm>doWTtl`d^tbPbT`Fa6() zO?ReTp(tF9`VMRtz|#sW6F1GQZ34A`a8kjxg=xTE6tQVRF~u3vY(w-{^qIsz-CS$Y?`|pf9Gn?12u>yh}ho+vmWdzsc z#dK;k8s%~o^8pJpLuS{b>uaSV3iBdkv=#a-lObVzCb~(|QEwBB%;R~#Rh^&T-sdF6 z>h2ST+^YRjB|%cSc%+s{E&)iaafkUb%HOmCBy+BQLhetrU~@{4E_)Tt~AQGXCkBwXo3 z9pu$IzI~!1VM^iHPmWM^N8h6kXPWg+}88ZscJP^;BCKf8eZ`tWcs!PRf?ZrTU? z_#M-1GMS=}@Pe`$9;iGucaegT>7nzWzUrgbVdR=LuQeKCH37{cT@N`HqzzW0 zpp&8qatS_~7V^YLZxQc(4Qh(Z7K&|(G1|XN+B4r}wt@&@hP?#3EhOb5oGdTc)eh_3 zD#CL}N$x+ZDbvOA-jf(r@n+`rEXvbLw?k}-`rTT;aJ+XF@E;ZpxD(}=m2@<9))-Ta zI_}PL1|E$gx-0ca%=Y!DNe_o@5bxb_>e``c$xlH21lR=iTtSGsQ7A??N#ZYX576g= zQ5y^gqw&O8clpZkA0;H4%EvL~SSG*c0*-IHvH2E;rZ1zyXR#q_Uf|NhG4 zDw0%Cm8b3+Ov6F8!B8H7uRJ^gUtX=(O59^G4uB24f589Ub-NwRjaIAq=Iy(alQSr1 zwO+^8_y@EQEZXN^KHWdu!75U(H}DC34A1^vTdXe>6qG(U8Q9O=<8#B&c*&*(%(R33 z_S^UG4-Sv2m8ujQ5OZ=wiy1W>jt2c6{tt$UYPEiTc6M@ly2JZXuiL%6{Cs^$S0EEt=XkX@F9Z_&4$Bqf6(oBd%b=a%(@GeAy+p_ z*lf9VhsVdq?frJW(d4uLWWzw~P&ae}TG#7!N8>R#QC?!HG>d*{HXCo=ygffVZ|t-% zH$nfFU|1jSK7IOhe}9LTYWL<&qj7$5adCdpY_?Pou9jYpNphLWGSSQOO5$SVz9?!H4UeLJm(=N@<5EbkLbU)^3MMxD{9I@~bv_1d z$>I?d{|RcGbFFwwEw1zGj(yG;ZH0c@q{>a;Ezr!fo-Vo-stbA1wRxXYtLN1DneBZd zD(kmat5Se9vX_)#MCaQfb0133?U3vA9j^W*5mPFa5;l}tt&V>ulQP5{6ew3Q%oD@0 zhL3UI-3ZN$;94~MT|vX0J-5-*8+^1&C{Ibp5#96A;9WT{kLq>N;8l=!B`U9YG!U%T zp#HxQEd{6w-qArVO0hOTtJH)*`%4fFKI(s+MjFpXgMT!+#j9U0XUoNQmR z)*Htm53gJ(H$U}?Sn(>S`N_SYzE$!yhS>LpkN2)JHLx!%SLsH?*7#I3ihjR2>P{bS zgl3u^MuXS-nM$dbc?QEiOeXv7Hkfk=KNPK`xm&L_`hz}1GcgskIO>MD$}gHH`U$b( z1?9<*1e%0=-cZjF?lO;}%AuaLu1kg+cUUr7jpk#g?smH;$0tznmvjlz4fJfb0|$e+ z!aAsy?)Q5TZFgIH39CmS){sB(di{s*Kj5|TWXvWL`EcC$V*aXl@6MocSEO}Yg%&Xw zo1*?l_Z6;C$_Po4tiKRZ(Fx)aL{o@Fiowi2JeGt00ERlqlOzJO#RXmT;fD`+69Tm} zndm^B^|DD{XW2$=GDb~I$>{C>VlvtGF|U)%LS7+Uq?F$jRVuHwH{o@yLex)@4N!Ub zCyHN^+Dig|T;$=#Q6`^5JAYghzXU~1=!xRJ`;yaX%~A*om$S4KbCrU4R2K`RPd-7<)8{%8~FSelJfbcnQU2m7{8S4Lw{c z`ADrG&@)}~F|tgi6@EaqE(P@rE2XwYP3pIOE7aOG)}X7uyAHMGI@C=b?LMhip(=>x z5)O?&Wger#c891PYiavh)c(C8>RaT|UqO2-Rr!=YrDTi(2Vb8>od&~8Hppi6sYu}skIqv>Rf&)wbKe*X0N>gr3c z+nF!sx>RYk_TIdCck$*8suwqk5_CCazL=23rFV0E{pHJ-*=)YkYMq{6zz&37MLFnc zzPz%SCv)mjI=o!lKR9^z-Sw0fIo(u;=6e82Tq%`*SljGCxe)s^(Q?{z?;B3LQ#l85rb% z=myX^q``7|EGl46M%?6GSLap9*BikV6X`1?v*h|2sDH_X6zQv>zs_2{6solqNkp2M z@+01~!dtDXh^2Q=h+6Iigt}G}lSvJBarvZ+og36EQXock-X6^-RpGpPK~&i#Z(m@l zLVvh(07k4DA^LjB_`B(m8liQYB&oWjwO@Jyk|a?i@NG~Npu%|MQDa;PC~W!x;fhe# zqSRqm_;Ln)!KAJD*GQth3l_EP@6v67Qu4`3xu*WKlC5`BH-e9#@`pz;+yUR7qE3sK zPo{Sfe$7cQMs1!HI^c+jDH{F6+aCPCFNdn9q03Yqs*YNB$e%$CQ5nwL(( zB0^y&_!3FK*K0PLyL+$-Xb4}2hezPc~6n)5ckIFGN!3)Ni z@MRT}uRtSY@;gqEN-E5&Vl>SddwgAwDmunjt>UNe-hT&1x7BKjZWEFkU#B)_XJ<%V zUte(mbK{#N1KR0!E+%v;j;#fA*j-?hn&iAr1)Y;^QjpX!x-yx|t-?`|HojCc_mxbG z=>IEaa+5P(EVL^5qjGgR99fnF-&k=FoZr9y4s%cPjz{?}N@tPK5*1A8=bqPNSGrOzVLd=sRS@r8 z`)x+{T>6Lamso#XV}2lB$9wk*rVZk~KR=>-cyuL?07F5% zz8dp{$m*||3=+Yd-5xEKWfHQ}tmV>JL!TpV%*4nL$?7ot9-BoIEB;tnSL^7ory+|8 zyAWTJa+&36{)k7Fvht~|BnC_T0m;ZIsY{Y8*{<#t-`yOQ-gy<2=X1%}uD0>sO&tE+ zClwzgSI&`za<08R$qh+;G37T~pdi?-=FXcpZ-4t||M2a*x2-0O1nl6OddrZ{c;ZXz zt=-*ryWMQI@He!zbmo`;&)#Jd=P6!gPth}yKx(Bo>SRl=fM-28Jo@nA1HQPozt8qF zZSO3R+85=)B2&ZX_S^fd)-FEx>67kuIwj559~(P-`J-Xyr&4|ryW>r2dUU+MPd8U! zAs{Qtoc!1}>CiwG;zz$n_d=FSXvb)OgiYe?6!x39$HyntT9vM+z%DT!!PK$4+uYmV zEAh=jQr!5Bfj@MJ=is10d!<<}mcwBm%|K}=>W2@%ef#$9e!C6DTv|O^U7C+e*I=7D zIBf6jqII=jevu*e&;S4s07*naRMDNz1F64df7B&()c)T7(ecs2;Q=;d8N&Izj)oi@ z9NyeqLu0;R`@JT!BKa%ZMNjSRmdiG(t%N(_)2{My+LaEEj`sF;Yqj#npOYE&NfqOc zU(mxm*_5LMiJ!pO*N*An+de*VdHD&J9@^=Q3D|&us#p$KCcI~evoDJvQMaeqqCzwv*L0<|TqcuA5{#B|;jEc% zkay5H{JSmMn|W5(S*=RuxxQCIze+Nt88R&C1b!kKekFMOtDx(X->OzGg<=k~KQ6jc zh0cdG0ov?sfhzYDm0W-dTQ1>Du#>RXrM{$Rp;WZRszAaoDtRMxb#m3bdO=iqA}q9B zuZ`L6vcG)tMZU|z(b5w)XO($zlzK0Dop|prm{f5@_t#4r>vPxWqFC|INg7wQ)&=q2 zpOe=JBV_BmRWx|LIvFlHOG#w>zj@NQ$Ay32Dru#*yhN{4(}h?g3Sz~7E0ih2=BSBL zqk?GgA?j#?Subk6coLh@XgoSPJO+E;?REF|_IGz%v+2A7xusg|_Xos#Ykkme@9yp? zCsvDr+_g7oLHwaY)Jv)19>RZzFB|t`G3uwvW_eAf8k?gKaWEeS!-1hQoePLs%VY_0 z3i|z@e)IX=PfFrT246-#6%C#TYi5j|sH?V#qq zpiJMY^+^@&_*%yYE4M0Yv!wk{rtA3I3QAxIdKVWLmKlRR~j_WkE= zGSQiicm`_LzVIAWW!6cKrl=>OmcZpu?P+veA5p_)DkjPGC}CBJ_uiyP&f<>?YhanM zy(D;%;G?o@0~C#qK`1?HPx%x;PvD-41uq zvBo?W@7-10zo~+ntV7f8Owr8txgJf+*&KCsT7@bp5x9#!#jUV*ArsQW_~mK>x0D+MU|>nl~nFB!`N!p~YEoIUDPRNx@nqg)6_ zHnG#sFRO6nrn4@$FRVtH?8Aof?*02Wbi`>Nzl=xY!Jr5FkD9=wvD0kr?X_yP#(ulZ zQMJ|W?bUQTxxKj=)cYLb96y(!b%LD(uc2g^DMrHqN+9=-)F8Sf(dl&XJ@BmG|M216 z`|n`YfPHQ@o%IL9@p!nH%_MvXY#U@LY3#Jyht+DG?=Vq3l_?lF^b-3#r2SG!Q-(Je{8D3qI% zYAtF4R7EQEk=b3rOnwK&FzDapn63#cwVrj zGDnD0tg2%@GTrEfw1crIQ(T6s4isDd(b^hcS&z4nIf&2)=wHt znN0JpmegyG(fWDyOw>yO#zyw`gi%6$D0ec+cu1*NNrvB5N(Jon7DYMk(LYR3!0#z$YF2%n; zJ+BIQhE=HlyYRb3sFrT=?2WR4$KtF(2zN$(U%eK}BPD#E@A&wbZxWLZ?&jwD_U;aO|LH&d zrw{?ev6x=fq+H4ClRMP@0lGe~d%^GKD^ZBXyR8;_C11s04?nI&kx=gcknLF+6H3xg zKvh6_gBnW(bAEvX)H1jM6C5QyO4oQ-Q*`-vGhVNubo$JifXMnR z?~jg1dkd}o$6r3)USFdnyoV%nx?D6v>&`ANF5bL>NdRLD2?6C?UVgg2yPr)bco8-X z*ecHH!8-@LyL%TGW=s)E`kniSvUP7ocP9G%!KaTu-`rkL$5Z?ULrQa}d2n=ic6NSv zbObG1o8z)P;JLrQ+q>S~YwhjA4zYW7evY5e1nh~hUYwqtot~beT_|?Y>w}ww$%HOJ z8SB3YgM~`|^2;xSeiy%i^zZNQot~dxoWB8E2`kaj$!YuQ3het%qxI(PySMM&p>#HwcE+6h6xOIvwH0}2J#l_j#1ySB}a%J1y9g*zi-P zO=LbNwK#U@dTkF4Xzkrs?q;Qha_7t345Cxm7?w|;J`ValIR=Z33AUM&(-X8Bb#2n{ zot)gAK>LXP7y6wfbVcUN<(JMwXTGF^MKDV>cAAIWfyhF>0?gaVbSlB;IS`B`$ibGX zgMBlR}H|14P z6C5NAn7}njKkEvPJ3I$fk=@+{)z0vx`Zdt?$=CbtYonNZvL}|yRZM)Cbj2T+ef!zp zN;5$FQ`sg5bbHZm-u|%mqjlx zp|}4m*xmj8{lmSWKmPcm&-<5u`IkPg8tSws+3S6i%MUGJ7$PF zp1%;aaB#d&uR z@1&A2JK;Y!;_^|MNdL*+}w1y>%g@{=#THrByJOGRU8{V=f*1VOBuTLDpjy2^y!UkD4__`qGf~-foXqA8hC7^Qo1(7UUmRUo z4fnV5=aYib_a)13>4)6x)+%DKv>RUO_Vi^r-6=2YAj)xei)0yJr;JP%)p2aV;03MI zc!tI$mE&f#dy);3`H~+;yZ!PX&)St0(vxtZRN|C z&%Iu!*=*XqDyD3(zx(0)ckjPr7Xf=`r)Mxeb$h6%_xPU? zO?5o!jHM_AdcDHDDX*`yQOdVPl_PFRQOQC#mO6K)DT4+d^2rRkJ}Hkf=9wt?4Z1OG zNW(kjh;d{=n?1tm{Qv+E07*naRLy3ZW8Gtt3ss?uSP>l-N0h{>ESK83?=EhyCuSR> zE0Xe_DVh>5iz=TCi0JyHZB&$sl9_Y0TcIjLpL3{IYpM6K;>=cSCe-dqXZu*eT7r z(WO5aZMRf1FHF-;>*-Yooz$Sh7DuBg%UJs2C+L(JJNDY_Wo}lg1SFAB|C; zQ#-WmP$j+U{>!5(Bo2CQH26nRr+|J0mC)Qe;zT`aob!M}bba0@pgQ<&c$FbUWlMcY zRB&x0jcc_w8vLWEiuS<`Q4?xTgF0)SjbZ*$XkG%^6xH_n{<^%*Bb_SjD<3QV3FwBS zpmV!**rKh_(#Fx?GbsOU&z`Cx_0(gi*3mJG7e^D7dpsIPbeBO{iK@sd5TQCy8wynn zBFRhAi|~0==~NFcNfR*MKCc6}L4`NCy}OIiTz_brMFf1GH$+`O`4+8#}m8YjBJWpMS`e~6-CO(o>x{{0cKATM!5SQ)L3pZcw$gEa@yJ5(z1MvpbBm?xu2d_gDkf^q+@NApGL z49ZGg?n7mRm%u=>BHsIw(S@KKRVg3-UAq5Q5z&1;y1G^o8t#Zv=H@6vo)A77(LEZn z9BRjU1JwRq3L?6%PX^yD$om?oOx+hm-H$p>Dqj3D?*}UsZ-U$PI z@ghqjDwf|te<@~w)m zNJJc%XYf&21z@?^rx+xa8b$c6&Ze{5+naX#kgN>{2e28Oo}Tr4eQc4Zr{~8fr#m|h zQ0Z>3`{nA({oUPoJb^JprF{izkJe4_U}Mu$y_hGv`@0w{%;ZW13h63#&)vN}6t%zK zu2iIT51)Sd`SYh=&^j4VYTO)sOT7vaZHKOO)@|#KPjn#)!J=AS2&+9 zdcEH5?KLbG>xOlLUA)btvMC= z)=F&|OI*KDRCc45m@V!{PXOgMXJJ%!rM8L6?$D)j7u{Y7m9Jxgj3>0*Ab<(yPbO!enlIO(=i9DEhL=EV+ILx=}LNb~n$f zzHObqaNzu1Qq$3Kv5E=lTQUsUO1OhLd^RoIhX9o;DD%ApuY zjURK{c?QRidDdvdK@t*k}Itc?c$ zQmA}6M0pcPU1+*?_`J3!cZr2zMFZ7e{3rg5L{KU5J`ER=j(` z>VM7JSn)a3P9cXzk;cC{s+{^e<9;xMIx}0rtP6TF@m=v%P+JZE`{t;5Vl;T4OiXUG z-WW~0@nz9)fL5W=luTvzb!af)sxZmD8lhni#Ay0QfU4Yg15lfnKvh`305xIKWj7g< zM%){PXw)L5^oFP}GptyEs(hoKfvT_v(!Ww)^r?Peo232aD=vr6eLQ5DSKF!_Qg|78kMqjH8Eotl(QU^Njkw^5QDt<zF%VFz1#3; zZq9LzYPEuwC4R}6R9s{B*lywtOInfcA}S^5ez)>15#8T}7zwLE%dB3T*EQhzs3}BU z1C)y7r9A5UP{oukgYu@!;gFM}c<=n0Jt7gJax2`#;onsdX)QdQV!nDrcaLUjWm4wD zcfxvk&X2 zmx}}~pvdhz6l@$ye`x9_)5*gfEH77`P8Sw^znv&@w`zvu`0M8A=%{^gbWE`{YI}PW z3O-3AcpJXMw}ifngJg*pfCQ!<)SO&UE|XFTHG!fCriDefGrs!r`QYH7LCz=ZuphjC z|NdY|5!_)3Kp(;OatFK0_0?d|hsoQRPzutO3f;Ou{psq4RunI#(L%N4zSNR^#jr7B zAMapIK%f0^e~a>Zy*|fFcajVRlt>1{;r;E+Ek$=fp|-&qv4>~(wpK-9Fj1hf&1MVV z#eC>?Iw)s8ogK6f@QGTjfj672-Aeg>q31HDve2aegvw!DjI1&?)J-`w*^HcICUO!} zrkHm3uK1k8GLfSWV$obKheNW~9334V9#Ehcv6}3*_N&!f6y>)?H_eO+LiWYA(t68? z?q*$Nb-#73Llt+0o$Icq-e_u`7nR**{2Hiqhn!;3Ru7d1cxUgRG-`pVJEfTzXgR(j z(eJ~(etl1dwA-(O47w^AjBom(*Fax1=^snXpMgG}3^RIGc7wbd)@ps;O)L3rliFV0 zCPlx@;h^R({#_f9yj&I=jb8iys-FDH=!QwfghGq6K1T=a>N4&$14m^qKsCFolKb@7 z84A%=5#7HP>bfhNR4R)1{+uL}*_E;4UB{YDqQSo&>e+H_eSeuGis&wo-v?h1RWe3? z7AJ93b`xtiUltA3K3kzrjupQemAyN0)lOySua6q{6vlhcpxlI%TkxnW*@Ti;_;O)C zzciXYTcX=VgI6j0VKO{}3S_Hqho-B~w>XzK>J4R^yDgec2A_5vX-px?f4o*Sc$MRz zHbhr7ir>{iw=2gOuSb-<8ft#nvn|Bg~A&o7mFQZj7I%O`!$=Q=#o z(m#2ViTPUSbCR39;D89xI=%q40+nGl&Jws0s;thg5Di~5x$oNI$suopg0;@)3)nxP zJX$Q5I@20sz0}D4686VM@!tLYlHkBZxYX^xLG!aHJ?xE&*=rMoLJ3!C+Ss5@kDwlM z{j&N~0kRr+P(z3WUru206h_)64Iv-M~=`Y(#= zBGh+<4w4yE2lds#9;sJ+C|n@v-;bg?3eg!tDi>MZ1glJGU5eM{qj^W}N>mg)E_`Avx5zS9Cx_G8F7_RAqirW;UM`+kn>1-MV3Q~TaCrZNa&BRNxR?3ia~7cjS!N|gosy_`)a<#Gk3p>@a{v~I3Uysw$4bq5FSN`(T4 zG@HA%DqVJg$qJ?y)C#RbpZ9tXo%{P_k(>>O`)#~j+1+hnbYN+jPA6_$RWJ!Tsl{Yr z?IV>cdZo&dVAyrL)vd3{>;6L12K_;&(?MMYBOsrLj&-$jSJ;ZU)*mXHeyd zNw7^6qXq0uA-`c~oeJigWeK!%ASoe{RAe()mpAjpU<3LFsIp`sVP1mj%AwRMN~KD% zu(Q}_S2cs?I&)P|TGapL(Qu7tUd~W}V0@KQd2VDKnkjh$^hJ{D<8$V~!o0(_;%xSO(KJm64*+8DDoi(1o@Uk!aU>A5(s6ZA<-rc<`0 z80EQ|WQvOO+DP&NORNKir#RmG>!GggFOv*7f*<37bxrQq-If4ZG2mT+-RV115*67edwZ(5Sl#^ZM5^XvD^^+e2RqE$rbHsCpi% zb)<;TjC+*y`$8V|Dzo##oVUJRXe3UG3uHW?7u5eRXDZ6 zVppSS>o!KCy-BYQA`<*!Hcpy2@5?8{kE(U+@lQVd`>*_wd1*FC`c;&n1?iexjb@7q z`5wx)Hs1RNsLG=y_IX{e)$lj;DbrcjUSi1*|8K@#62^Ns(fgTd7q7Yyg{6QZ%c^KK zYrQh>Cg>)~fSESNWC&u2hMPeK4bM6cDt+c<&OEz(s?fOJGUGj&2hh zJI-!MNf7VdDN>bwdPMj2sLs6{?u$D2vgiCZMEy~Y$I)PAY1i{1`pkImW^LX)YI{Sf zv^uHR=Cw&bksd|;=)2}yRHrwipN6U;G*b;bReV$!okn!$aUmVIJ40vBBKeoom7L3&hy`2YYA07*naRD);YcV%^RbMxxe%V*D?aR_^QF3!pBBib?GD<-dh zeEs^zTd@fZiewn4Kgf*q#TQ?Yp@O)(1nknK^X%kwO6dLl-R0%G>znJd(+esMaeF5b zzsZm*CiF~>gwwH`i7e3 z=Jtl#WOya*w1pFMk_cS+gt8n?-k zJ0klwQ%2}IzE~}8*&sA0I~k=p=3=r_FZ3rpF~00naqd8sIs+a8MPLPu0~j&I^lnA_ zkjhmck5Vq7fWsq)tVP3C);1WGZ$CM-B5Z&RKaKZ3=i5WGaQwL$t$63ys$ug!QW}nm zek8JT7-C%3E3aBf56>`a0W-OMJ*;jj?j zTqI=RunNq zp(Wn?@zBGPDs|*!<`%5Ry}P2pgWu2{p2R#>ycs+gONHU~Nlj8c9*Q;^JOI?ttV16X zg?_Q(6=_4Q5i8)4RH?5(jPn{kA_?Y7D0W7Jue4P+8bjCA4cmQC)6P4f&?qBSP}3bA zHDqd%fI^%#_Lq-MVjvrKsX1B~Dlm#YO(I7Hjf27{FjBr%GPG5OhB7eGKN@_!U>&Fo z$-XH14Gwma6%i5JrLRWRuD=~?ccqxAaYCDLm@Ns?0}ZG7qrYV-$2?bR!BaL4IBcR#xRZB0hVR$<=C+G*@~D) zbZ?qQMSTwwOBlaJ39~Wa^VG1`4~sez(S2LALhGMUi-4WW?&&+{ z4j`a3uNuxRSIhVB-+%kmX=KfZeP z>c{u*-_1DuI6$+_3@dCL*}}ngWx4-RuzxCXL$+S6n`_4F*IG@^I#fg>GmMrP`s3vE z^u>!8tkz%5sD0QZGo3tp^86RS{NjlOj-aoKP(sXd-i6z zE`~f<^V+Ra1NeWPsoh*0=xg8*91S?q@kw#=NW5~%QGc?eRV}EHG9!y z2U%oRIla0ftGphG@HSCu;YW`ifBEGXr)Q@n>&p2E1(}Dw`0|&Zef~KatSCFOc##Q= zx^Fz1s2q&h!jv7JQm1W8zANLj*@vT{IbvD;7MOW(jhJ@~2gM3C6i8@H$Oi^Olff)+ zw9O>eqm-kBNSDYrqSPqlg@(b_@a;pR_$NkyI=|?U#KsyAoUfP zhj6dQdp{7GEE$bxtUu=R7v^W-`=F3LabWny39;fMAB*4dieor`ZOR^j#9FNQygJpG z?RhHISn-EKV{1wDmpZ$PX!-Cc_KQPqFJwR%pV$%&USG-o?tbCn$hM&qYhUHCRpX;PVGnMN^o?lSN{RA9v$Uz-Hb#SQO1au} zbrjQuhDyHOXeD9&*Bu-U@6=H%sXCifuo+lV;p}t7?DN{%4Yjt-vc_ETi}{}YaA=eY zDk2bs+Vv-WWsgI46f(UGKbuVCamOL|N+tyB zpQecJ?ywQv%T4j#L%s(aT$_h7;(R!W%&P7QzuY-Jn)bNtyl}h{|&`97*UPr|$U6Y6$oAt#ht73KdjZpmZ%U z+uObk1@1z@$6XKNn;5jHsbz<$bBY^7$P{j;N+xdT>I=bEq}D0^q9`@*-R<2E-~X^& ztgb&?KY#J!@#Dv&wLdwXijylcb)21?oIZZ?^!c+F&z?R%fAr`tfBO3Mo0k%>%H@gs z_?&i{r$0qL){zwEk9{#K6@&|qSw;K`OO}8k*+qW$`@bh+0EZHhu}9kcQ+D5VHW^Q7 z40GW0w{NbmuQlchrE`0G^ZM0~&z?OyKffT2J{e)?XR@mN`0~fsuU_BJ?s9gaZG}EQ zFvoN$^_GboMjldj$X8pYj~+jnFXq$9)Sq|_aX6f3n}GHB=MEJO^Nxd#4B6!+}+;3d;k9Jn|F72v-9&(YvWv2U(+Q5$*E%J3yEQRffW)w$q`Y=T(qKp z2E~xn_R?%iD8i~1M?q>0gdl}Cp}k06Gq{L4w0ONLsDqeyjp&61@v_yNm*$2$WO@X3 z$N1-)P{=t$BZ@Bbw%>?49fVX%6pIKoDvf07O)i+f zN^1kU5Yim@X1q%E>MhuF#xg~NZ$_g`(n!j2mMnz(!AZyNA|0CJ!#&U#{$0@&6sH4q z)oAc8kN2LT5X2cZvba1reCUFBKl@muJ6f#xeNb6|Rx*$v&M)V{pzC(D6pwkwLPHP2 zMpXZZXh$^o7SaV0K0#9Iw@CR@9=3oVG#IYBW%CN zYbU|{vWZ0bJj_Fby7q6Kkz(UGi)LYG>>_v=sm2q^uuINP#nsydpL_{eBK(&cPoFBH9Ai!cknxzu5a@;Z$RxDfZ`#<=GugU>mBc11x?oy z(Y?sf{Uf^D<0p00xkE;DhfjlyOfMtDo23ycvX@H}(VgQ(&u65+C1ooC1xF@dsovDA zUZ`_tIFd8XqY-U^NaJxkDt(g=cH;sJ>}J6GNtagcyuwIO!)rX zYDJdzni}N-T2rWtbNsM=H1ki}&rC7c6P%0FB3t<@R6?#9Es!*>We6d7Lw&Dq_ zEK@|sVltUNe=#o0r}108&qrp9)oOipb@}q;_dovdlGMk-c)47Q`Qq~O^3|(X&z^rq z#udtbxtw2Jy?^!k<%bVfi^U3j1bcuejqxoU{_67G``P?n`|xj(8a|CHP7dt zf6k1~>$sT_6+<278hS^&%-P{B-Wu6zqa2d+b#k5M?35aRG8xfgvRKTQ%Nfnlv3N5h z%|E*-E7vsJ$S(Bg;)0fVsu6}j>y!nh`S|gp^Ru%ug>%&NuuRpzn-rlgnUeXER_Gzi<+@^60(IkLsK+(6tFcK{GrHD z&h5xN?z&!xISLxgFuhPaY|xt!(#w$pn`q%jAfw)p?idZe zowO6y4;39dADwia(cs;NSn+BgRC|LrwFW8OxAUil_8=V?X~o5jNfQb1Fr=%L@h-k0|Jxn!y-zfFlT`!iqKuTI(205?uHD^er5N$eSnPJv*2|`YSUp%- zMeVn{lA23fsj4WLrjyqyjpHDkc|8PbySpc<^u}+=WFiyY=O3qX<(KfIrkDL5px{ng z;-F?9^5SKOZCUx;rf)_WXB3ocnsz7^c%^$Nt!Nhu<;}WQYwu}ll>w4+N02h7L%4bb z1Y)9qd5(6vxLSjNDQ97Zk@Lxh;%FgK+n}l$oPRT+T)r^!bn+MC4_))pY|*x$_N!}- z=-!P&jyCp>M`I6>wurPL>H=jtopPz?Gj0Du^qVKsY3`59+e=cCnCH+!hO9I4cxXF` zkZ&?w9uRL=l>aApq$mmq9!07;A7D_4VlCc#um>d6N!;BulB*U}eZ85iae0fPP6?fE zQs#j;A9i4tPZV7es5B2+D)1H2!lc^(B18%r$Ar8!@W-aZ%*hu9wBPy-NgiDsH9w64 z5*dl0%qQsWfi@bl?a$ZNso8~NkZ5uA6Dhrcx_)0!70UPvk}iu(9n*le=7ol zMdMIuN8w|WN?{`zmKHRXwJ$?rgREOFS?{)3Oz4@iTYNsFUzW9RxkZW9oSmN0zv7h$ zmg^GzlIF~U7lu|bAnp6v=_!DZwi>x^_A;N2M{&u83(_3V=X!t3Fe9x|CEj})igh&q z7Hz3w*K7ASp$j#7aR2}i07*naRM7q{gby*yM{FsTQ-^)xm&^q{CdRUf6Ee0UG@`2i z3mF3$Nd8if5Rt>c?u$qMX?e_Ne?(X)@n*psIr_@g;XBUqiJ$v@->C&;fP+h5?a4jTI%KHB9{`IRLzy032b+Ze4S(ffd;<_N@AVvj?XT2e)W&+=Xp#D&itiWWI*QRrI z&m1;|Fhb&bl%e`UH1TR7Be!(UMXj+((Ai%wZL$WMPW^pJJSOYq6G7v*`c8xjQ#>hz zZ`JJ{%%$a@6pB%bu)TYve6>rtb2IWauO?_#6cM5zW;j@3j32*8i`~m z@CH(+hN=A<5p<+(Z7It#HZ$c?wBYBv>Gcu z|F#~{{YWToMC0ET6tfk|qAK4;flX1Ye(JejL|r70k9xw>xD^`4cSAIIsG;z&QIzAP zttdb?S!!vzZq#OTI5dBC8?>8@Yea3cycyLdls}#MJK^CEkGkr~%Z;duxwxta8jPrG zkN3V0YRSA{9VFOf%`5{*d#gq?eY-PRlZ3ZG?eCFCvx9Abps}*l7X|rovRNP;PYYyIz$uW68P0vU6Tv@Q=?D1$a9-y3-b){~nR}x1~ z(^n;$xGkdZ=A=&cUvZSwfy_d7Qomktq8g@BL!r{=tm`Zt7klCLWqFRV*h|_N`&v_L zNP$sWNpqCKXf)IzidKmIY;cL#)i}zjXZn=>UIV)&m0UO)tEw%u%IwV>R*G^U+QG17 zU*udWIV;MWb0)o3(Qhp6U_xUT*%gI0)Q&LPTTz<~W-~I3P%TbHg}sooz(dwju?_=j z@!soAcr2rE?mBMaqV(vjacEIZ*Sk81lqilLDOeygcj1BXKHP>QGlsqI-F*kXA}w z=HtEeCUGRqh>(GLvf-20BXuuJD4%rZs~e*9VVqs%P)d~gVlm@y#TP&2PXB_}@0aXZ zf4QK1X|Bup>!C6+DoE+p%!1hSKJzY(f=f+B`bbvRdPgNm17dmsi$g?o|EQ!ND)or& z_GRs|Zj@VWwI*#NF%4$M%;FGDq(qDX&m9Omo-eqFF^{vWvk)m49VZzNrdZptPLvg^BY=7Z)cd zr=$}gJK6R1hr63wS|6@HTvFH4@2}1uJ%91y*T4StFMsvbqsNaXlM&ypI6vdAoRdL9 z?{;9$Ia4o)&6Ax%(4s^0S_7U>rV}#8oSvSMjiz+-a$SO1%cuourMkFybar-5#yDms z5>I6mW%2OP6jT=s5H>kX~MqIpp2jw{PCQW!@s*`KFgA^!k%0Pc9x^sBIvGUE$S% zYDadIlarI{>ud2Dl~UH)5o;p*6W??h@?2n^JYSI5^XL(MbxLD^UVilG;y1tj?dP9= zA%-Fp|5|6Xrj!1B!eM5p6CPb%UV(Y2E^Gn1x?;y%0K^~Zwe#~w8d&T0=K9^+cOR}k zQ1y$6PQLom?|YB$!cZ@qa4%3fdH9v(Y`$QzVZDeR)$*ko^_&2Sb8rWfaXFce`PNS{ z1h4`OY$Va2w~2>gw?e7tEYa~Sn$Os(2hm&(_S+aM-d4b(ab4Jz^v8Pv+|H55T zve42;RdU`O;+b6~-g^ZV`Ig$Bz0-wbwXOB7pxU8zG6+;`kCEKRGGamE9#H|8vP=}R z+>?y74zm3~>{x4+=LsG0%084qL!6lw{RIo!Qf4wZ%29V7XOzNfMezj%wGh%MiSvjnBJk;L<-U`K9H283M!nc1X zT6DyUH>f{%dO$SFgwADaYy1|C7$2s}u~D?K;$s8G!o@2x5064qtoX2JX^jS7`8G%8 z%dC&Q`OVB+zt?yG6xyS~Z-s`bk=hEN+Ri(pm0qZ!5Q?-fYWgU?>Ece)ejAc%K+WeL z7fph?^NJ(=8&vqjxImeuyC)i$M%TB2!!Xf18hlJDu5M@#F)M8JepnYjwnUw6JBwC| zfw+;hJrbeR3+C^lwst2{du$sr{<0Mcp^yo!oZ&Vo#KF)Htv*;iFW!n`?Txl?hq67s zppx9(+?2C>dW%dD?0|bXydxdM{q0IEAEWWP1Pdi;@56_y`#b&}WOG8>_0!XH(T8%1 zYd(5O8-La>@F~TU6H1LlcoIkDEZ)2nImz@EZ|ukHi{mjFKm75V(vc40_U48*7#ynf z^o+LsG>RogD5==)OWDK_bb5A1r3$`BNV_q+rN8ELR+&x4rzdB6c)4WF>0*9=FB(r) zs1ZcvmJJxnx2yX*4&zFOBhtxHj+CYB-nlp=;oja}bMRHB`0VO*dUA2`m}-5`uD{88 zFeiO7wbIEcU#_6vse)vmp<2knb4QyRIr0qDq~)ANAKjXg21L0t@&;)^4afQ#-siBl zbZS`I!rb26l8Tm+rOqM+lXG{h<8=;T!$4_AF(1Tzzs(+zhN;2nPZ|Sb(d>_S7snL3dKvhZr2}@X*c<-c)(1Y4B-g}NNQO*TJIyR^ajOSUJ zDkOzkTA^`symyJmJ77x~O?T?wfgF{f0WcWe5I0z|ZUQuV&BetN8n`rWudc4-HVoMy zf%(iSO(^6MKIgN^L%B3ShBcZa#A@7f#b=*IyGNOl-GL@7k9IxyEhm~&<2d3NlgE!A zpPZbLqT%xLN|Yld&%rSzdp?=a92B9aEN^db`7R7wn1<8I^z7_RkIGU*5jVNHF4pA@ ztL#T(QX`UbfnP2;OB%h@&ZJ@`Gm8|J(j2Vim^SH**d|Kil!H^s@04_f1F`0kK4N}L zY=mvPrP~nE-O5ZZ9(W9B_1l`z02MTJ_W@C;p-O@oFjmm%csZe%BD%AVTY@)`fo&mI z)&_DnLN_`75|yg+r~}n5DCUiY=7T;yr@mYSvQ(2l4I$MK>E;AYFi&+N#8z$5D~XA2 z9XlmFaV}U=TgOh`j+Z@=A1=ngfh%Y?S!WtHDX;~j$_Wo1s|pX2NT9+Z+waA$xyn&5 z<^~se&C5h%zMD`!0r2$M)8GB>_b*<2MtqA@{NM3Kgm11tT#J#Bk2A2TW4WMWKY99$ zwDtuS(F`1JuOT#uH$mt@mK>;35|90cgbi9`Y1%&J=Q;BMQK8yfo+RxM8zDQ*IWPCa zvz}Uw%KzKn{rTXd?%Q~t_c|Fr(6Os#aEfNAw=5rEYrqk0WPo6$`@|;a3YmI^8 zvy<9QA3b{f?D-2~der9BAXL5CVm6+R$-Y4)*8{B+@qt!8@?9>@$_A=XpgI!kW5zh0 zXjmNne==#z7O#H%@h^Y=nv6-5AGO}E$kO%IZzwxH9YVTbkq2CUT-r$Xz5}S71-m|* zJbC=|`Df2b(BpEF6nAq&E5%~Dihlg^7L&h4v?2=^pOslH2I76JK+Ip;@DzntoruD; ztSr!-s9bI=8Dh_7{uB}BV=`GID&?=Bn1^uR9>p*M_eA{(04gtW21Vn>pPGWt4hUC4 zoYznk0feOG%D}GFcU^Cd7E<5y2S?7%*f*VO9B825-`|zx4T%}L2O;x=2%Gn8Wt^Up z31QAwH(L71(lgPOU5w+@S!8HYO)d$pWT@lKj+k3$dqN@y6>ljwrza%pOxR%~F2z-y zOzP-C$f+d+Qvetmr-rQ-QZwV=Wf@1hol%0qh=vMN!3 z5z2ikmx8I9MRBL&dBj50g~&WkJ+0D67S36!F{Z+4u`-*RP_wjkpzwewcB9CL?TDex zL>?$z@`Jkh+ig)NdQu&MGUTHAXRDMuNQa0WsHPqHSPR;iuj?$8XVI!HMWYwi3Wob( zUI-4N8o2go@XjA?0rYyto+#=Kvl<#1U4eP{cirIBPz-LhARMDb57FRbC)zhPiZ$k403Si%z8uTn94p@NX9)2mEb40{BX&o$C02YwHE?&1RwKzD z4oymP%&sz2O0|ASRB`MVE8fUO9_xp?nyM5q+iD#hMZ{V!?2c-vpthEbvEp|?TYACI zrC6%H(X5*QlES_6pos(J7B&C?5CBO;K~x1>gFx@E?2000hW4${l(KobwBL5ed+&)> zTC(X|z@+I$`KKqUzu6v3WFHia8KcLyexqGM8HTT zH(Kez%HvU&VoCN#eRW*bzLJscs7<-`TaddJteU6YrjyX4w5Q-hm**F>_aR-<{p=28 zLJY?viA!-JN|yOzK3hqMYErwLp3vTVEXUkedhDI=cFc!*enjqa@JVnz2v0j(JqVUn z6!nPrh%%Z>YzF#dil=<4i{yKhG$q34VyS1imwKX8Ha2WXSjq7)ki+Z)Jv*QWhZl1` zpgJyC(aA^47FwzanJdoDsAzH_hIO^1J~%nU6`u~f*IMvCijSG|_K7x%Yq_GbF1@=9 z(!HLZoDBGA`C6lzJ3cT?d1xr($=b2jm-q9c`(PawSrJGcVr46nfo1&a^Ws60Puhr2w2r8pw16n6J1S_o6YC>gW z?bhiqK-4VrO1$@uq+GkH@KboCWy<`5PG1zlY;(@FB%YyqJXcxyNPO&MJTHu7a)0%Ig6>{s2PpyIr-3oD3 z6egm3H`)Dd8>*_D?NK{6EDBAib3USbeOy`8^(0xBgghp|@v&LC<-?hWy|is2?ko|J zh`p>Ts7j&`P6mPQJXQ5yrW;qW_4M^pZ$tPBq?uS&1HAL>j#I)+4gY#X^KZ990lLvB z?Lh~sFO;m*p2-Th@FT{=d#9mG3P(8?zY2%W1oibPD{ez7`G!LFLiGhXJBiaVYsSC) z@=IFE?(Xge1JXqAvAw)?{43} ze|K|z!=BuRBQh%d;ul|v{&Yp^Oid7Yg=OfAFMdHL6N$)G-rwC{U0q&Ze;{qCq)qD> zkVW_Pn;*ab?mKEU8lSZOPUR2>u`g0YJ|U&!ql_k+k>?`d0nmFsD$B$0V&h_4jgd|%E15Z!Er)2m7FZbHX2_Kgs<20W= z*K_(*jKzl!*ROtj`R45#BFQ8}Wxu$1Ok9~NK=zntPoKYe{c6UiaQvv0%5uMou*c>) znWv;X9+N@q7r*}Xi|3!wqCg!;CaX*Cz7NZVUPn&bNV{#&Ur4n}>mH3{je{ay7j0D# zpo>JTaE87p_cEwtgSt#qzI9u~U02Rv1H69(RHqS*2AV0$z!^#t?_KV1-O2ric^y>| zMT1e<6(rQxbwsdlBwZRgyfmMjOlVB9)4a7FB^ikMypUTa<0;QyVs}fj)5#WODuHup zEoRe&T=hV?Hac7AXlJIx=2$)6B-@jf+|tm9yDV9aMr?0D7N}Nw#e^Vp5rLP#!C(}w zbS&i3#^m&r-zWK(#Xy$bW!foFf~zRl&|XKRN4~sU`VG`T@4m~OHaC{} zPF5DNmZ9Oa)g{JE$!*b3juhd6_mq)5YQ9dq4vI{h%ri%5=VlbLX;nv^GqGD+l4>SH zI;al%qM#+m85>BoPDPHS-|rSHK1Ve;L>=`v$>jcL7VjOvUftLZ-GhuS^0pvdb2NBB zZ@sQWgZGl3%DS#IR=nF3(Y^F>@5>#~C}eh{t|6j(TCI+Rs_r^0e_(4QUFO2jeFzjX zslNWLO6FQx2rontr7Ko^4fR!y;!Q;__i<5x*j6s=7JH#C?F3^>CJ&YeLc_drsV{1C z0k%XzWkPGP50#4A@C~Rj9>ibzqp2CUMWfj%f7t~zHdU(eu4oxk4!=~s1ldR)lJy(Gd8^ z6={ZN_i_f4ox-3V@j|``Pp_(ah7Yz6C&hqFFC``A#J>h4~z4iy3Q+x6r zhLy|oCh1>pZmy}>Ns~)Tm=XIu8m;)&yneyEAJTV7rdj|rV7@!MIXY#fPtawEwZ&<_;4vyvL7e3 zJDQM!00)v$N#&xfRb|5>rQQ=~e!>?B7NQ~W6=Z$AKhs18PHJb?Vw5q0w4a{x`%=tN zD^8H?E4OP^_7Ox{SNcyUDVcY*`mF0^>96!(B`&9}nvTEe(@BU+Nj z>cH&8l(nmlrjELn;P4yB^{On($}|BlA~U%ZgL)g9%L;8MK$7irB3XIDqh%I`-Og_N zca)wJTKg6nQ6mIrDQjAds3|#Oa)?ny^$)rKcVC2<%#g=>kEWDx7BZlyT%~m31bW_L zXjLI?sHA3P5npRI_Rq+)c}FYsDQVRuL^XfawWIpICCxI&jyahSqn^*?$M^5Wj~T?(OfLLA;%gtL?4gSqky5*#-Jy3&Eu*Rw zucPxNi2#)2+qbXZy?y=Y@#9Aq7i3U+{@G_wU%#Z5jK|GXR3ka(+0z$%SD4lAd|{W& zPgG7C3{*#2WvFUY!PjqIUEkc$>Ic=GTUBNVWy^UHm&t> zUme~D^KTpKrM&WZxG>}y4 z9>|y^Hl*T2UMj7bTrIu5rBa-q^O+JVfHWiLDSo${@Z^;kUA)Rt592F;mWySjaycFF zh2Jdbc4Ii1unqO*h8Wu|{Va~Q24UH9fwA+c6m^S6W!8O%v*VY`P=@n2rN|qg7cAMd z3I52LUYU!ZK=!yWQfwb>g?@^pOZWd^&!jez(&KA;W3~O|Y^(JkC>W+1(VirTM4^Xl zG@^SY{Chnbd~6WciLy$rBUbz-6eQ(=PBd4GGq2W4r{S5>USKmC+w;Ll@Bz;)s?%TZ zOhYXiyrO`cV#Sw1g>SA0B@`fHw`6?zK&TnAy`#Z5qL9Q|my4HyZa|?8H5=ZC zK`RS=<>g9Kf!i+Ldj)kaxM#1Ry34fRh97&P*;-~3-v@0YD?5=o8fHo=YAm*@{yNbt zV^@pHZp-BMi0Iylc9RfwH7>g{awyVPycZeEx#?vXvd}Cir%2h&Co9X6)E2z@#(7RJ zi6#`}s=gef=4b|s0c#9N#wM9U&t$LU@Ru}C;k`&o@3O~j4y?+_vAE8S2lWT}dI)Jk z+2SH6zt%B|B&EX}7n~?fnSpYj^_nypL+{UJpdN(dwx5qLvldf))bd_vrNLT;;_6)@ z8E~hhzF-9aT<+oGWAHDQ$F0z62u?Q#9y;WVqG~ z@cKBvlLs@-yniLG3m>LmmfUn)9zH%+3?Qfh=ob_(@T4432NAZxz-#5SU!8LuD7adi z_eaAE2(?H=43T1^)JV>&fgBQ--KTeSQ*+#xm9UZ2tX*^LrURhe`L>~u@rVs*o|LPn zX%AdV&EW%iJ^ovB6CTo$vv^2#1KWIkx&wR zKV!XAC)xw8h)fyr;v)A>h@+4hf<5C&)DTqfb`CXU>`0DGl37r0d!RE{$R#y){|!^l zd^V$rvw+%FO;RRsNd{!IT$hVd&QmiFSa8??Cr3@^%(BMx&e@8uwZ-G}AhCt!;}ORS z9+gA6c($Yj_4d5vPMim(T+}t|M_EVDkzr80nX77JEqB^v%CR3p@hHW{A*$L++_#`# z)i7V=sxzU3jGZ2ZC%YsZAH~L{sE(@i*of{%>c4iaHL@dO@Q@qY3UjhP(YjG+Lk+8{ zqNd#%(45O19JP{1oo`^6wklDTaW5Jo33&(EaeFL0#3fV|YB6hLO2=Au&NM={E|{(~ zChMUKKbe-&@%V<$&=^Lo~dIQQsiA;zQ4Zy zpq@-zy1fD5{h_1nj?k0Df0kEQmp{Jzfh-Cm4y-jHs|GF8&z?Q|a7B5|XyT5>6Ec}R zdGh4(xUn{fBpJ3nQ9;pF%{BhsfddD_T4+OJv@E#gu`!~oxgbT*&9~z zf8d*EYgb?C`jE)pJ|~}l@g-Se=4{X^)n-XQa;TN_Gy41P_WtU_)w{QEu0N0|!cjAd z*fy2gQ5~OMOG^@C9FBCm#Zv$P5CBO;K~yH^=jYq)5H<&Qu9KsJ-fl$`~Um`52< zk9_;hH{X8y&F$R{c)wEI%*4+=`|Jza)5&>uvc8-@di+QN%N222#kEO7!7ZssuV24< z_WUy{KeajK`~1b{@7}+^zrE9zL^eqVM7b{zf~I*Vu)5%V@-ymx%io@qe@ohc-K~%*~=>CcPCDbE1&{A@J_++BZ3&5 zm02!bv0x#W6=+I^0Ez(7ld86y$n)G#rH>l2)bKE(Mv>hW)_cdRgY^>*g5ft=x{WCG z?v8r%qdX>jPs@q3*63M_(~upUAJXEC(WkCOok+kTDQ9VoUQG`|*VB#u{P@Q?*ZWOq zT7MrJ-AH227_9=yN)m=te_755EsZEPp`P3Z)l(p?s1yR^3{aFdGZerI>S$~9V5Hp) zN_mQ$TRLalPbnR0fp*^)P{hol>?~?yw!1o4IvSeCY*z{6;m~}+at5u&if=;UASgfw zs-0CuF^^XqKd-cI6N&-KgmxVc$3TnT(cqg#PG2-UsU@3Yw(o<&CKNZK`p4DPl@>pU zPf#OcXZ0eXCMO@7-1Bjr={PgUF>ZLBtA3mFNyzsIjmhqY_Fbt>q0mh52C^oQ_d-+Z z=Ax$#^y!l-V^gAJ3e$9()B-S-7-`)byl9I z5jE=N5hD#*Dmd)37-PiYz7HTlItbFpass8e6yqrJwA)X&I%*l|Jjd|2C#8L(d>MID zDZiqcOej6%+P4(p0O zA}`pnP=F(%ZKVA@bazz(4k&Np!JiPfsO?0n~hucomjj};0u`W?HTn@rezI3jI>*f=?40{vT}zgoUpFT~Z1 z@ENkctQL9#-X|>CvBHKG5DN}6u`c5_Ca^8!2<{RqoH&znD|WjzVU5Y4n2BA+N!(iY z(>-Q(bc*aVgq?99st@#g;&*(}j6H^*0V_o2ZV^amTUg|ys z)Xg!UFr7(91dlrG-;Z7VxuvQziiUXa&`J82V{;1ww0p~hV!ENc8PyZ7ISNhRrm`T3o=)bb>y@8=S#UfHd z^PAe|_V)J2SFe72`QyzsnIhOh6XvllMdV1);O!%M-M#wpM^Z;pO<#QWf;iRV$4}1A z&R%@>*;<@Xshw4WLUZ7y%S*BxeEaRUWK+=rpf{)>57N$#px8X{fh;R8UVKihjM&K2 zr%%ah^8W364oJ-xBdnmQ>yfi$K=YI(yfzh*%slEz0s_|^a8z>=b!L~B@2FB_u(`dt zCShPKYGSF~DOsM*&Q2GL&sHq_l;ZhkqCuOqcHe#X?f2h)dv|wFMhh~)4Eg@w`oo70 zKT;e2@WcJ=MhtAeG}H;idnE?Uvy;=a)3cL{M~`N+c_B_$AYGC1HDX6_d^_a*yZ3L& zSVATcVy!P;ym-*HEr>7^xD%G_L`ZG1C2i|G)y?giWFMs)(ih6bRfhC{J zI^r{JT7M6K_93-9pkGAyioA)*srM&})+KY1=h-Yb0&4*qo%b@ze~MF6IiFOn<5eU*;_B~9E%b^^ z5+K8Z1yP=@3$8XVIkQsD*Gbe0@dmb1rLO)+n-pqQ`cZ2{7DM1Gs`SnxGzjF3R3!mE z?=@i`y~Nq>snmMzlK#~|De6X8{G=_-hk7+fH&AQ4MOPba}jYEptDTnNraeE50IaMzn56-;8QEbbQ+fjgHG6 z1VtMw9`dI?R1S+mQ#AOEsQ%fHR9Uo$C(^)o)8R>-+8A!D%XsUG_g-m@eb5-X#<|vB z=s+R)eBRtgrtVmDMuQh9k+#$|671>HZqnv*SW?n<*U9)4>?kO^}oG<9udpOj!)1JxgsLNRty(gzR#x=Fs}bv1`5r&X zY}EMFjHP%7h@+k(MlR+cS}oFR!3wY`Rji&(I~Zz9jffpEf_K4H{}7<#QwKc^&fB7B zv{Z*pxd+V$>7_lx-1Cu28V|Es0&U8pv#q8DXJjgOMCtEJVZ)$B7$gIahIXr?zFR72$O;Ww#@^3UZWuZ7 z^iUl|%+QTwC}JZS=LKSl!sj-j^?9Uwvo;j>MBRp{?E9eDghC%w{|?d*1o5cQi%@b{ z8x2Fw(bWQRPtMl?-{Q+99R2(C>o;V> z`0>Y=w|Dn;qY_q678Uq{BU=ba9?TDXS*Qq;V$E%P2>6Ri`6|!@Atf zs8m1v@cp;neDnI%tHu0&GCiSOG?E#$B-?JwsB7l?X0!XdcW>XmdGq@0?3~OA)Oe2{ zJ-K*v@!|T)%M8-6%rhla2(bv(nTnr5U%>FMoHJN+>?S@$AK1-6j0LDmDst?&+3fQD zyYIgH=KJryC4&v|PCoz6wOecL&d<-acCjIWLlmq@W_thr-OHChP-9Y=N!d!)BPtJx zAC%_R)g_sTX0yA6j~WtNxxBf#kt;seaz4F~klGVqRj)5C*|k%3B!2bPhpX4GUO#*C zbikH!Agjrf$B%Ds*a*kruNDjS*#aW#>xB)+g``fL-`(B5fA{W(AHMtk+wb1Kd&SW* z@@VRiq()~O@IWZ^A+a-tc@qkCR724o2QBwNQ_3z}$C2n_V+|IFI1gZ00EFKdGV*yi zbRVJIgk$$O;_7yNdODS5eWczkKo)Kq&oqiuL#h!zw`x3e1)K>XBr|!Odv(<7h*Gn`VEwKFQ%!3glkgf!<#AMh^2|j zQ&|lRnHHDr(NBo1Jf9?5-FfBIgQ4}~+l{0OwgnnbI{=XD{fnSgFXD9Qfr3R{FlTx} zEsrF>4XP$ye^svO+fsvGNc*H)9ah{5?`ZHARYhVYwRRGl)Eb8; zF&)uJdn-HYilTK-7sh1Vcy58lwrZ51%;#Nb<6NktSY@hNeH&3rR!~E^{!3dwo!%}_ z6#bfHr2c5xk@60);(Y=cT1gz`pB+%&L5)l!bP)zL@zU@|18S8&jo-S=y5_4N`?sRa z3+1qAjD2fcuP>@Y(ltbMcj00p)Xa4iR8s>(R?+-v6erM-AQw;jqhJ~*9Shi-^p3e` zuCLwF@o~mML4vh&5M1Soj*_F8usd(s*^;`F6s9QQ1QrWeEcrw>$>^tNXQK(b!lA_J zM>+N`wg<7h@NxL@SQjPUzobn|tfdoAzYCJ-#n;3Mq=VfIqeOt5Ovd3X0G}H{)s;>r z@yfh9#Igh5c`xT-A>iVxU3kZ3vr)hd$Xi=)?4`^@stu-x|p#|h|4f=dg!Lq zu#p3)sq^f>Tb*JBbKd0a-9%FajKB0m%?lX+J`!5t{`;UFYy9>2XrD(fDl|!EpejMW z&*X|wLC-*S-PLIDdf_QXgV*C)Wi9-B47Kf2M0d49rUf8JwSqPpyz*zZ@R6QwG3En~ zXQvmW2Vkdsq$y*E8S^!J++yPetME96%|hMx@uV3PuomZ5te^xrg%6yzizf$e|#PQy}nHTU>V_oNLDZcDTV@dWBHYQO@gpbvrTdoU#ScyX^Xzx{g7zStOWypPPbTE0aEGxTk96jUb~ zB2-Y%{5#RMlzXD(=D6!Ye3J&G<|;zGcU2~;7khx{Q8z~=GEgWeVY+ zXRkk8eg63ukDol@$j0N5UVr0YX0!R-?ajOQ@7}z6_4eHxQrwGa#MikL50H0vcduUk zxaP@;@86MHpTnWM>=@OlS*rj55CBO;K~y-swz{9)tzNGdv-yV)AKrcb_Q{iH=jR-m zVnk6%lDK!B{NtqDPQ_U&W^ZuZ{OVB-i7Ey+_VdJ{Pq63 zZ@(q-{NjR&bbEX4{5hJyT}gzP&ECCxHyV?fVsdwTcgZ0`mLYNyPr#DThA-J6*!SO& z^+IDp1T9A5zr;^&Zm!?HdHo|7@|_$fFUxuP_Vrs5waBXR?(=s~pFSg-(3oW~vI>LN zj#~S})#Yn`e!P5tNk$H0t@rnL>_+VRnuLv)KfJuY{=oKQ8Co%4G8mIt=*{cbWcH9) zYmOS{o+HfjF?L!4s0%LNUuku;;_R~Q?)LSom(%IwR;0KY+n!mNxx2rm2BtscU`i$# zvn)h5tvfQ_yeA{nySMMIZ>|>-Y(_?M+;~JL24>wq7#f}pq|ENt80N=BVH4Un&U{D8 zIxO`viX4{WMfUcV1M)4s)iCi5)h*^En5!!Fb_TQ1Y>moc5jFa*Rb?i3$yTyMF65dB znFQwd_j8G+Fq}>?-kOqfattSlsZL)n<(C!sV`!*1Eks{KGLF+&=%G`bhGGO?#ME?3 zN;y$)v+;3`0XvuD!(nRF`_+>J00Qi&j63b+z?&h7uYk?q}iLqxv zTd3)DsF4`H%cXiZpF5jJ>7l8j#e zwKFs>MEyuRw0;_B1^-E)EhN~j)&rp6#Yixl$0X4SSMg_>Ajn0LeeH>=>pU$_fXaYI z(&gxOq>K3lep{Ll?lOxr+v<_g7}LU+3q!njdASld(W5P-!z_Ab9rZfRePYEw0P1QH z-KF=Umy7LC8DlH4)5MWqLDxacqys~n&bO6ZRDvU+wmdCp{5PTDeTXW*9%R%H!jVX~ zUo`lN6>TGG$8)W%An)HY+FFi)w&p8j8LOZLZy_N}3dBt}6vKxARn79gq#25^4GIw4 zu5LtKn)>>Jp8_3d_{FB3QU>4V`=F4O+LT}Kng_n&Oh;%D`=G9ajMcBSTfDEVbeTnj zihRrup?FBfX5EHr;%4|kodi41QrWgfp;_iZTlgB>2L(Ge?CjW+9Llj%-hqo7a}GvA zByoyG5+b$XWX!IDNsuS`o2(6#-~b02 zFJ!>moe2kYmGg$HRdxx)NxVg}Pmtw?^sR+Nrj2b%3(Ar|Sz@6f(>VkPAC+3`^_2x* zD-ksTYh>g+W~mo7Xm23LNa;5@vF>Y5yp8HeDvVR{&LIwbfp!kG;h!(K*wmlwJe@SA zGd5t51Vu^@xnkl~X0jvVgK5-kRHW(TL_CMYx^RRQc8%nfEbL{ALnF-jn4WTO-rh)f z-YK7RA8U_O-S6)2HDvl)Y&Nu%EEn8CH~xtIP{a0yr7;_GhO654Yv8JlC?tlSk?kl1 zZl1_))X3IVG%NAm=tm;^=?(L#UPrwgAmQJI(#4p?Tn+G!;f9@hs{@EaVHW<~`N1Bu zK+F0=ySWO9Ez#g9q4{Eddw+}UKuF zFDDTf+2*>OvleDalXg+C!Ie*NlLB+GT=)qKB`fuq2^CW@j>`O9xwJzFwO%f6SV3@4 zmQPXyoN*ZWffyx;SJ32}pNIo-ki(~H)@7RwIB~i~CYC9gYJev={olPrOcihG%ULlv zA!ah2;Bti$VTf}Vsg?u96K~-jkkjH^ssX)2^K>;Bt_Pwr;Q}nk7<9K-X@J=c5#75{ z*d?Mnbdqr^^3lk!_tU9US*3XJ z_LLPBr_7ktm-Tq>F6bcmgadk%*+{5hsCd`9up3E>o3_b?r-n!?r!J>nyky!8m&}>Jfq*gdq-vd=G(sj-|m`gu#=#1NUh=IR@~}x zMJbXxo-7Kdr{^c^7-~diS+chrvI}rt*B@@~`4~7Y;-#$qbFvoDztap3z=JnvV7AreRF%we5Um4FR_T5+nYcC`D?OI6nrmmd3$qncY7;7 zsk}Ov1cdv$oA18)h71NHKA(=zu%yam)A{`N<~9{lMC65=zh^Vg-TU`%$hJZMi8$eF z#|mVs-91@zZtnPWImd+}4fwa;eM6RsV#utRtW$Tl*K5;sAz$|MLxvV&k9@g=667Ny zbK=`CU%ng+$;`&z&hBqxeL)QN)XwzU_uqX_wr4eNQ9shCBU{wB-~Oe*0aVv+9*0X& z+EO9;_6)aATH_8V73?oF#95}Z|I$`&gky9Av`la4(cYJw{#_>$p zDI34pBj{4mvG~g8a4970s4Fn~P%pVM>zi|od2!6;2y+j4siX^oq*< z0B9sJ`7v{yBz$zz1$iB&`MIdNu!E7S4}xIaw5zN`=Ay1xl-&(jVcB6 zZ-*tbTI^1;;ajNIw+;2pRTH+iKr1=Pc=l5Ip-@Qj2G;XE92%Q-2NLk?5-a4B)a(&^#b?{sdfTHINO%vC*Et;ec*G~l2PAVlwUMm6#*m|oj3*QJ z(j&$XKC3QhHU@p*X!c;P0T}suyX;=XpEbxi^6^0S+w90fygaPraF)96RgdI+vXaBH zERt_4306;A1rF}O7t#ZF7LQ)y!*`_4Ol`3XsWMe(B^wS24>@$20!eb5-blQ5v2BAv z-t#yPG%W(-P{PB@wqzyyf3Dzw{ddu3kMtBACx(i_xv5>{Wjt5klBSzL*Et9y#ZYJ+lQij3UQSC94SA9eGx=9~Qrzn9E{bPe2I&A1_@If2`1+5f;mbiwQojoI_T$hREul87I6|n+zC}} z!45dq@ho{--OY5vy!{(c3>MHWQD`Bn93YAs4@*MMd}2GKmFc0-)cBiFJFE94bGbw^ z&gOmxTJ5_=RJTvG><+|@W;hyN>ej0W52lbR{?R1~z~3bBH^ zZ~zBPeVryQmE^B6U(mINlF2|$k+aOee2>h}OO5_UUoExpk{x^Wk-&3OY)#brKZLkC zm{jdb+O8C#RD}eB@+rtJV6C@)) z0SN~_MAFdfs^Slr1I4M`Wv$1y;^fkUUwXbonW}SoBbi+Xhp6U|`&IqGnYT0p>B&B1cF8R%_qR^lSPW>CZ z%#2tip~fg0`tadV^b8tu4(hBtybtPs@|d$_utQ>3)a9+3)u|iJlWjwxldOIVX&5x4 zQL2X)tz!#RM;k~xdFz91Kh*zWM|kb?=GN{+0jiSB)+GNskqhaulOXM#C0*dp8^EF4$b%j zZDx?kRLFkIsdGCS`C*OpY>Op4o#=rK$M-ReTfGoQT2eC1fOG5cwtg#a{(_QHuBK=x zNG%siTm(&&SxvBxgvMf>XtqqE7(}%etio`5gB0TWYg)35-5tJ#xI9D@y}Y{%3MLF) zox~8}F7RwPG+7^JbrNf1(jO7(gN7jss7#)Hle|w)$*-Ze0W<1x1`E7ASPkf8~f^p zZvz>*Wg}W8?S8Bus$olVw7}}O=DvCFl>4F{!RS8Qg(H3kL=z`8sF&UQqX4^;Is!2T z1K0x1NmdD+$Ym^c!Yf!ZyVd{z5CBO;K~$W<@(ohiPdO0IaK_Jl1=TPfdcPt1Ffl!{ z3u*gTG8sgVl=0**gkW0E*o4pov=163o3gWKiqWsv`nlgjgg(+`UE2!seN>Prf)uSQ zf6TXnLQq7SQlT93bwTQn=VZ~GNY%{P5-RU&a8yS-%|yPVCg#St@Pz^C4?-#Hi=O=q zs)okRs2tepAX5O6JxD9LmDXC^A61rnJk*8BtW6Yxw8a%?3skEQfweZFi8(mk%EgV4 zznQTS^>+xiLUjOaL`#3lCymTwqG)>`z{)V`iL%*4qLzVopp9})4>b0Ijm!+s&Up~D5x^oLR+!)S3z0IU+20ZCq@#)mG~D) zMgo0V&pvZL@0M0|P7;7%(pv=?vAu z+nsNA)?zo*EbgQv@!NJ+U&3@y`3RhO%3h{XjX>#Rd&ZJmR7RaQPZ+eoP2YMp(urax zy7n95AFDD;oL6Ug$m~82+^_nv;5sb;!{H+5N2ku8X)Vy;(H) zI?4?tLBbk(VJ9-{UlADA=JG=l>|K6J%0=m3zSRv%B#k8IqQS9(#`MeNN**d`C{<~{ z4JGk|zk-^K{BG7P6OdP|H2FfX#CYa~RpHwOLyU_l7}8l1!#+G_W2Fv)I@i@!A{6c0&RAPDZK;&3qjs^js0tM=Xpy7Pf#wiI2Xrkc zVmJo6{kI9#BE_Uk%ISzkE_-O>SoygZ8d|G@LZu}ul6lxGb)&w&qPhcOol>7*BZ`<% zQ>2EM>uCHoG#v)!>{5liL|RAVV2E3QST8$}+R&^KOjEe93PW5nY%|8xdZUP~x@$X4 zGGU`1YFopf1K5d#f%hx%^YihaG$NaLQyLOI(3oIcA$p!dyYXVc~g*MgBSJ0w% z?de7lt7uF)HeFP>n>8S!v8EeQfTW3rjVMGVIyt4AfnhU z!F$+2%{rVNi!mt6aE8&=wvw-KD0fIy3-4U)@Curya}A9Q%Gr_jSB)mD1$FIc0~y=D zk*uuy6_NVWL`@YMTEn1tIMlv?rkhf@sdluI)JH%8yy6h}vdBsUr{#QuuTd^I9@xC} z9^De^*yq(s0>!VJ>bo`B-oIO;dCJEoUG2x6Q9Iu1**yT-NWvj%^fL+l+ByEc586#0 zAZ1KOh=Gy4q2kNPczUdyScfB{aWmyyIuHphsIzqsC{$3%BzrlW^?4u?l6U}l`O8$m z-l%hlpVv_Ple2IT)Lkd)+bU0|7mBz$8h*^I!UsfE@9n%$>TFwu)^-O)9i)4T&1mf3 zZZv)#g}^YFyU{fA4GLl893G9i_eV`j_C+iGYxY*9dFKFVEQ$Ty%2#&YIm5y7J$N6~ zLjgpK#t$2tu?d9^G^qGpKQv293l7=i@{;E{_d|{1Ay3+LMEywLHYil`4XhFZQ!-Vo zk*0+DaX0EL8nb|`mjRL_jMZXQQOwcQ%iE)A%ZawoyOY|;QJ&8>yp_7_O5#4`Uzy3| z6KdI=$i!3)y&JljG~6oAz;0B3K{KFTBN|DwNc^>t`ir5uNmp4ITvZilkg&Mv@hEnX zzs~F>5|zhGHWgID53R~FdF8ikvyntZv%pkWuR3a9L4RYn8^vza2oO=J8hL038gG&J zM_rDB%bfKc7Ilpz;{IekUp)~M>zm0gv5)pZu^lby-^Ov(hIW(oTS&JQoq4$@>2o$x z>>*Lp2OTKxgt|r)szPuBiqUau zc+@YrY-;tE5;2NIk2id{m5e39m7lr?$xw-fo+72!dSPp_rGIxpACRm(`=Hv65kf0r z9u#eYTc3Sv^z+m2i7n~&M!U&_q|C!fBke=FB-b5`bm7rnaC|FH<2eBU?tlhscNImf=W8!>+a;z0g@;4| zDiUL~GaUnUH8jD8LY+>Va0R~|g%)&e0-(m;#2_)I-tUbVR z7H9>xjbj%_SB=@eBkG*1oI!CeUG|NIgrsP476q?I+K9&XiYT<9xl9A}&M z=^msD6|nbd;y{X=e;*Pci7wlcIE25d#~qIB^TNR&XKye;b+UD%JxMgIyqPr22uBUV85&oq7F2(1Kr#1&9M+_UZ_#`Ia5?IBLeVxEX17guN6jLa z>R2bEh_feI&)1-kd&US$T=m=jXzZG{Z+oGkHE<(o+Bw!S8_w-yY6>vJ7tDqv|2CqK zv-f>bGqx*}d`}cNqM@eQ(Jde42y}zuTyA&^C~81-Q#Gw;G^+XE^GSU`6!O0}q7X)1 z1$qcH{{Cs8{+&27yHO?e#hgs2VVhv*+D{0Ll?e<1YSjnBF8ZL_3q>5sooHhZwxN-k ze>61Iw-gsBT-M=mAYsF!y3n7@kUMNngp?wfTJ>93V@+r>iV~FTiN^kIM=Ke%q6Z`a zI!HJi8ngFxZxktyhqe`G5A^4!|KnS-vQ6uULL=Huc7MAuWh1$H<+2`niCXLm8T@ov zC1#WuG4M%eM4E>|J*j_hLSZY?xhUnv?%R$u`wu$G^H!=!rsL*W07mh+>29*5+@U(AXfD z^7k%kF}$z^s^>)GM5~mc163Z7Q_r z0WsYn@Ipg{G`$aoj8qyMh)_d|JyD}2PZC&coE&wXD1=SgM$}h7ukT){ZOO>uO*{M7 zJJ7AjO1|-qNE2FA(0C;%pv6`wV%!^Vftv2Fpv|P|vaP=Lg^r{g9`vKGhC<=PYC=^k zhxBbHTC||W$3~^5e$M&o6I+;aJoppPOCq?SpdBCDlsB>mIpo#A zi^vUVA>aV9f$j80VFy&ZY$MtxKOYD6eS|5XV+GZ3aU*IwNS}>pXy*-Rn7Rl1P=7g62$|&E zOvaM-Br)i(LL&A09t4FJ6f;H@#!(Gz{kA*hMpR$ugNA7Wo5%(!cTcoFE#euwP|ga9 zc_p%yeFxOlP9YqQOgU9r-jJ{p*LZiTi#JEA(3;0P)2iPq(w+JpIgclm#w35S&oskPI znHshOHSOFBjja(2W|}!PmT9ht=Ib}c;nyFH0~pN>&5fujC)ge_WE}+?9XXlChsP;5crBcjo;r%z->61RCY9#6>@t3yJ2#|r@x)p;_R42OQtP+LLlh^jz4 zqu7MH$X)kDWzXM@7P}W-5F-Ep5CBO;K~$mWtrz>C(9%{#A2j|3ExVe2WGtS2;U|Ye zZ}b2pCL;m%Lrp3l8O1)|D#uX1P5+T*WIP`0EONYn#fHr zTNJX!Flc;wqnW-Ik{6nv|1_{c02U7myT!u!L zG@VsYn{C%dODS%}T?!QU0;RaSySoH$afjmWPLU))14W9v71t8no#O5m{=EOpcaVde zWEkdtWM6ylweU1D+*l!Q+0l{$-PXSIo0FhO$@mL%buE{Qswd=|A*eueUJz}nKq zy{hp#_cNA%sskT)SBS;8B~D5}ltwW*yn?SmBr~)^Tw*fo&lF}O8~BQ#(?Sc93Fb{` zSpyt{v3c1LZpV+8iDrn}H1AF16^MlrXjcKy?@M)X$H70O1*`@)|1}Jw8Wvx7|l?s0`|XEZcIC^b+$(H=*Mr+{r}99c^9DIa5FFfoBTN;ZfL^wCp5dvtQ&jPBSv||()Iad)jkW0N7RNW@8QtPr z3QVjV-CSJ5NfegZzx(|A*!23c7w3=+DbNObrN-i&M7{}Xl3J<$#rJD91B{18!o&D< z3WqY~&{04bU&<}i{3H>txP@?zcQc{NTHMi3eoxu2k5{8a4yTPp* zkaQLUQe;NpG*EYh*9GR*V0NIx8D9X-SUXuanMRP<%uOq}qQI!)u}q zc4NR7rZ7+=rG7UqFLcbGqI25FUKRjkL`!zAQg$$bq8@{fwlblx^V}1AdI6x&Y6}Wlq51} zM{DLDQ#0LwzpE^6QuyP|)R63ZA`&)3+SaHXBn0;H?jy;34WqO0Rtir(fnZ^jIb-%0E)9mkcjM_N9`O#h!}zP%G1Y)U|ovKa3JyTcta==e!O;O$y`Te^=EN z+>!AWsA`CuMf)pk6t0U1W2y5K$2+t(59H70Cn4$}o#i@CfM88k0XEhoP``4h?oC9W zCRi`V+$y)gm)-GmLA64z%7#A+g7jx1^1%uFRFjuJOis~@uycSTuaA8zC8)=$fFL}p ziMC;^498n)JG;;PUAfT#88m?7O(Q%`qE4V^5W}icO_Y`L99WBPO#6+9HW{VN9xTpl zhE6va$FwkL(@y623vks$>KLWXl4U?p4teCBZ#x<-}3i$7vM1`|7lws=HJ3oDm zXHA++gR8>ajzA=#W|6xS*JmP#UK~&5bE;U!`Pu2$oq;~;tuo9;7d&C9L4iBJBGlRF z(+T=2ihfW=1?w2OS#=!?=Ms~>~1uBrRk$exZf}) zMthfU`JcjOuU%#e^_JJTV=szc;iyT2lzwv8UeUpkROCrzWZ6FQMcP2g1g^h zF;|eBl@@W#gsMdGVp+h_vKsYrx{RV+6!Fp2;qH3&QEw>D0{6E&>;PrAVz4a453K{~ z7Fj-L7YE{$+S^ssR7ky;SaN<`|J{ShUBz$YLMYXnunyN_@U;|rlc@<#ICMnbu()>`1G;FA zldaz5@AF?r!dj{Lu07!wz$0sfaDGhEyA;SZV@(DH)sh)9YJ1MuAgpD4AjK{q~k!C0zzo zj&f~X3BlTq)1j6N=KNS|k*-a0-?p1<&#kd+CKoIheHNlav;1z(oa*d39!hxh|wFy>!7t>^yEMdg72Cp8_@iO*Vuq(Q6%SZEDzrSK2@ z(m1M{M|Xd)pov8VXQB9mQBCrGRZgA^(JV3{WWZeH=<-wnG<4`+&<&85pp~YgsD@Al z5&GCwtKut(vxKJoFhx?$dv6VwQlB$xQPR=v`(nHlDIlth1mE+M`rn|(diVJ({;?QP zDb0e));j$BVyaQ|%KsrXBzOW>;TURLHM+|7M6L8~#PI|7y(x)Qq)H-}zFTkWxQL$= z{Ej4Q_^=fDC^?uJU*HsGd;S{$4c!U@He}(G=8pc92-rBjR^H;5641}0B8Lab4uU+N z%9*2VImxb0q*+C7aVIx?zclQu(aR#q(UICNS`2ls9P$aG8xo8I813^Yr5pxjKc{Je z*=&Wne@1&HfAdi~;cs7&Yz!h-`WWxR^>Oa2m&D@ic1IN8+>QpjjRm5dJmvJ=awLN} zh8k@(M;ZVJq((CETrOLIS9b>Ck39fNtB5^*DACL*3abL;8<{%bBo~QHlF!+Ho%+kx zW{O|1$D-mnkN32$h@~>0(9sa_v)Tj*40kTp+J+bImK>wR<75dOp&R~1Bx_}|VK{}l z>I(?$%Dng3Q#tsEw)E6!GUQmDQ|cthM5knDFTZQH5YvJ1H-_Nl$pO(n-QWO60>Y2| zJ(Fx}ZDp5pfJzkjn8!#|;G`n257^=jtI9!F@1{K6FcQIdbm&m#GIS=POl?xCv5qTl zBym%$^2}n=g(rQ?$j)d|yQiqTtp36aLdl8I zv`+zgb!&(A5;J!OR=llG`M}IcNRS8W*&DB;T$0!AbfUFjoErI(u%pKOEJPJmAw>!B zPHB`x_(m5a(&a2?a`u@uX*s%4EZ7Kg1WTu`7~jWCh;OLJB32l(ND5V_t2kIcUSAG@ClCE!1sA9pEurhG%Vpi?Y~otl zDZCSs;e(kz8Q{B&)qpgxfW}84s8M0PgOVa~l09alF$Db+UCx|>ZpbVyy?qFG-r>5AzLNQgg-o0BuSYa*OF2|ILsZ>?m*lN=GuNjp6`*n$P!5K`Cb!6f{E zuq{5@Ajr0!Z5`eLExP9z8;y{N3n?}8l64N$*)M+s{hhL5&xA+Op&NmLYK%Am(E4-2A7!F%37$h5PXm(CmHrZiOq!5bxovq7e}j)3WbWPwh-JNp zFOveZzExTiAiOl+T=&=6-LuPM#D4tOQ%~+-3Mk+*0%qU_2=hKiQ@a0yz!z}QSCcy5 zJEO4|3fW0=O^|rt&wOpaAZMfQZ1$e{j0OH4z-d9l#4}hQa@Xlhqul3fgi6n1%KSB zV-kg?f#V7IRhxhYI6^8oDKEJ|5{9!XY*snP(eFRsY0FB-9m~RUAaM5US4FWC3fR30 zsb9U1*XPGCRM`pa%B1fMl19fx5JzbQFR2d$3*pxr4Detc0g7B}bCRe)iNV*u&%iy$ z^n7m)(FGrW*G=`~;>{T0e7AKApSPUb?vRQ_?xF#LiLgvp*OzfEwfM#M0YU5ZB& z`J94$^HR_z>G6XU0U4NWTZxZLVvRDdbMgz|%0@|Yg=0DXQsY3^dwP1|5bxR@ixy1^_qut-2 zQM5g(l379_9#x^YjQP7yUt%p%;(TlMwH_<@)}92HloqIHk?|-Q`N;yrBi`jT*tF^3 zO}9igKmSbP&Ntqd+>Rwb+BLRzj^$5!!77tlOWBtE1GIREyD zJH()b5Z?Q+rTj@FiO`o$|6J^I_D5%^wiN=*b;>#WR;z>9{-hn}usF#^Y62*@l#^(f zSW5MIPhgICsJV9*xisrQXQ*=c74T`X-V02+Fev$yl03iveX?1D?`8SBt%3+mu407c zEsgANV-7{`>Q>=ye{WtNd|1aCS%TE{CNzr1;%P7-S~v2!8L(Ve)|u@}-6;7wR}i@5 z!0JI=%Wk7LJXEvCbj!jP%1W+vL((h`2PLfvBbQfHqm&a{j^wU_Fp%o5QSc1qhs;iu zS|{``+SP>BEACHS+cf%C)lvO_pyygP4q~Moq)teg#zgn2^pP{b>Yi*{RY;Kiw7Z>p% zH8opQEo0->ThcC_nePCOXSo#0kj?v;u@*b>^8X3|j3Yfc6Z``&TIZaTR2;&C-#ANY z^_6=o67t6nwTb#C&N9w=rQh5?W_9|!ltbW>1~q#L!-?Qe)0jA+2fi#1O^M)OrvA`-f0U99iK$BV zX$G7}iPL>nViKpW$BFs2b0$tSJG4B(HW|&}V2;HOKS-a!-@f>h)HfQ{F#QAgNgU?U zwzlPZG@$httm}R~Kq7~(RzJy!*R`vhd4u7-$VPWHf;>weVqe~SvfPvhjMzsr;|!FO z#M}LsPKY!5xqCzO3TJh$3@|bB9gB)Jl&OmnDez(o$@yjO=<;Owb5FKImopvIN$2ng zj-RfpgZsJM9}nQ`^N){YwfwhkN-H90r2bvGPIS3HUlDTkbT}q}wD_O*gTPRSwyXd*&w0|Jl9AAYV`zu!)jnWOHNqap}g_*qL-GcyG3jg=5CcuyVU z$ion0J^U9`yMy^anlkn!Zi2|+^mpH%Tj~O}GK*;sF&836y0F}2oIPRm z>X52cBj8gi$+P;r;S`8uf-WpDF)ETK=LsB7*ejud87Lm|dqZvwFR~CrZ*KA{dy`=$ z;OS(gwS>6a>*4~MB(}<0h=cuf^Pby9rW2QG9iha_C%6)zx%P);RcidskbTG+VI~k`GYu$WH^voo|mI_pBrx^d*82yP#OHIE^02jN*odU_gLd${YVt?TK;HJH2v zH?^np;U8!4^LF9>+3QX4%b*$TQV*D7QKSEy^m-u%hsHc_!C9HFPwQ}Vp8TkgCgaO4 z=lb)*-{4Yd*ah`Ln%MyQ6l3r`V&Ek#_;vjigYe(7Yu8g#@KfRSZ14l;E4Ak5mrb1D zY-NVm`=nQ{b69LWz&gD7K@67k>dFQr*v`WJxI6p$T=;tRbQVk#n)-2C=K1#W^6>Rp z>^1m$b^T@atn2ac7a++0=J2NLc~nem7UE+T^zf1J=BT=>bUosE>u)e@bl&XsU^wmP zD{TGMzdVsBd-Cnhcy>iDd73f4Z7hnxEGajh{z8wI#~^e{BDuJy|A=yQ7G*V7+kD(CWQn$S4qj@mpWOKItR02d7<*G8vzSSq% zpPH8{G_1S2*_beWs2MYFcjQK{H@j!D3wQPrwD?9!=Jpd4SDME-MD7OoJ8-Q zhMtORcVzlIEd#IE4m7$E?G%gYepTMWM{)ZuKM=pBT7;Fw6%P zO2()h%AiD$)2eyLCPWrA;zLw`zjn@8Ywd4cb-klCMBo8W&<{33kEV27x>yk?5s#6< zC2?XLiFd9mpFQuZ;c1d~T2r*OH^4|O|$gvnZxKM2xcCMPwEo?`u26ywND zpbin1l?9m^xyD6iu7r?%C{JvaEeo>Kc4X@~dvl1nawm3>lJq^YtOg;&(n@#huqgqu z`lm=@JKYHo_w{;@1m4sDC4E|oh*gfBEOMVF-ujX%nA`AI7xJ;XN_5Qj)8oa%)gJuB z$9;BPGd5cXESs8|PVBkAe?ocr=H>PHwEh|-m=9mhhr6NXiHVbj4$t$}13ZI+?;dX) zRmOuPsqJ;s?>U1m;AS~$ri%qf_~I#i6^DLy8g7zXG+*oNC_aGS&ZSOTT3d_jhbAR$ z@7KVf zxNS$F5u)A|YsRuCA1vgG7CzVF&uQLHuKEO~vq86z_Dr^?LB|pq4q$<45051Nu}bI) z3Lr=fAL)H7SmXKi&|j}5JMNLk&@Gl0$)^btX)Dv%kiKaY?eIEe1YTgjEOZw=Zhr+c zIw(BM59-EPXv~?1-w3n68}f_TKrOp`1` zw-T_lr?B<2CaR1Cv$|?e@&Nc*A(-o(kXJbHsaryQf$FA<&PCRPw2n;Ug&fg;9i`H4hI+MpObm<@#-EyeRv^l*9rR5?RXv5-il8J*IC}{{!Iv`E zSk6EOX0m8Vjk23V;*drEDNK^CJb=f+=S2)bF1Y(wu`_Kcel1lZF>&tXscVzuyhXB} z2Cmk;1&xlfu$@Mz8w90CHDF$<@G`A)s83jKZB056o$L+11u@{S?l@sbJxSTHBV=2>!a)I zNf$12DTdscV>cuF=F?r4wOIF3hdz(b^Pygs-_x!0aS!~k?~5ruh`s!L706LG>!3v( zNos6hvDaLLHNBp^iclpLiUvNyUW6EzL2w90K|HU9clC+XZTq4VY}I>xb$vZ)5Ij2i zi)#+A&OH+0A2KKG2>w*d#iRd(vn$h>Cic9EvxMe%6MmWhmpBy$CrVzg>y0=`Pp4Ot zBEI)?XXQmPQhzAKY@pPT`tZwFGXEn29w}of5m;3+88@#yQUu!Wl3<}S*tK?p?^^CD9!2a2}FUM9A7U}=L=6ZKG7;V{ns%1ipq-A~!qLFY3=QojpoRUBA(6T#?F6tDa%d>>O+5o?lh!V~%CcSEF{U7VqeI@20)_;=X zB~7#=Je`9H5+zv9(5;zK&Q0F`+ynqVn$4~m*1OF`QQzPwbS-AlkqOPzh5auJNHU6P zTqSEand~md2@yP;vFHv1QKTyRFp}SEa7!K_!;NA^B(I7(Li^S~uC2T*0@a1}G=7_`hAKfuwEV*aO(Ej^3SDwsu@PAhgCDzH+ zpH1q$M)9W)aD5mN2q6Q;mgg${Im*Oq|VNJJaZ+n;7 zA9i>%Ns_aa$Guq&X((=8@?)L@C+8xvwLvN-B3H0w#OAfMZ&e9y#VL!CE|LL&v}S7x z%-NqE+B(`ky(E)uI&Ak-<#)DL3J(#Uetw!leu_PP5zyvi`Hoi&C^pYUS%(IvYG1>) z#N_$Z-+eU-XWw%zS(D38_OFR7k{N^8M0FzPt>9Gs?4f0Hjok_q83bXW8{t{skDiUG z|2P?EK1nDC5(MNEB1a8X)qK%?4g*q_NY)`H9OVZu4>%=RRU`FJGWh7v)OY=DqJjpx z@>X@h=_(IR@Lr;vXv!8+#-w9BmXS%TAfe>5u#E-|bn_!P5#xvZHJvmML`eoM-=kI%yh=(&l2 zKW$)lU9TN}4Lmx(W&X6E!i*jZ&4v-(+)u~Ju>}5dR?i=2kJc#IekuIr4Y==uRlhzi z+7-UQeF>sL&)M<3a2hrvqn#PNH1rz*E@ULiS{YsL*7k06!SobguaaR_7c5?nKgC|S z*~TZnPBf1lBoTJDiX9$vtZDz%8!Xb7P~r3dCUAPE`SxtBj9qHTNZ&(<9ccd6;3(Q6 z;?(|Zq0hH|UPi(bvl%o-38wWmq)c1fMS>}?*4Dg37C$JBz3=)c5&E7>A$U6Y@)C97>D9rcYJ00> ziAPFO)#baS`HSgAmZei4%l)<_?Yk`5CL=kMy(Z6@hf)P=VlqYeR9EV687MX0B54Ez z!66e`0{1D#BaJ5|M64AaR`gg9mx_my9vIWbyia7QZ?9-QNB}q`u&bB-aRF2m$-wE% zlnt9$?)8G-ykzpp#MsCbD4lyZ&#!kp1Sss=?{1ccV`N_6ev5%87-#S4*IWr_iBpG7h?>@vbnHTvGrV_j*>oLWOx_tk4 zMnYzBoY=k7S*ta4cAyubSIRS3)dtvT$g$U_yL(S}_bynBY?>OwwrkX_121pVTsRj~ zR*JN&cv3I9>a%ISVY4wMXY+URYl-NHEgMnx^j#a! za4|a5%XjLC0r*YPsGJB-TI|>I=iLcJUhZY7H-x*-gR*c;A&kinKa^O`eWr;pTYkHC zz31H7LL)?(XFYS~X9Q*%f@Wtn{S_i;_LToe-(PNJ@@^CvDtxGr> zH^Yaqdgc zC#%7)XRrA|uTjDGQOTX9R(gVJ4vHk^S#n`X5Cfuo1s0A+PXc4~?^YUIy>yp9Sjh0s zB-@7DM`G$(+b(A(fy{L0ZOGNkU0{8eQ3>lC)Gc^o>f15DxvGJDQI-FT{JO^ zgQQQe)PuEO%E&Gwhm1z>kRCqSoqgrHVtZQx({acMww)b8-eeRFbR{l!X?9f|s?-Ry z7afVHyLQ9<(=~kt`cWv~?kyxKjw~xd=AL+`n(G%2PILt45t+zIN-MszY8iZ=(Lu>h z)@g&-og9976(=`VEf4H8Twnj|f-v+)0@IntM&`uBZ{*f|YHn@()b7rmDQ+s|V9VN% zM?{1&_9d+Txvu{hcIv`in6Wi^wsU>F^&Cn7qfsPE-G-O3Ly8g+6l(GbVn7S!@?aj3 zWFHkatRaTb`<~U+_h9%Hq9>?A9Je?=&UYdU z8Pjf)OQK361RHB4D3QIJA->+q9k;Sp&v`HS<;#aO!jsxlm&Niw9W>5(eiqzaZCw#U z7h4^r#}lf5_tX9;mHyUeKXq}nyGxAcoq_8ae`*^#aJ9Va#iew0tv)+jiCt1|&e{C# z^$_-=;1r!0L_$y`ma7s@aU4dKv{I!#b0Z9)*#9OLSf^>GGyphHVMeeHt*Y`+>3Ho1 z5XX4wk+<)hM22cGNqODzvaZQVir5oXBZ8A}&yB!?qjx?xBJY;wbiXTF+cdhw>Fx~y zp_BNcRBo8BiTe%Tb>FVAlC?7c_Py^RP6*Zm?g-W}31v(}v`ebyd68E#F+_Gv6 z^{gSC?D!(axLwogt4q{YCUnDbJc55w(BX%k9rLun>uK8=2L~0Lp|%IFD|X>|(w3ZB zfiUc6@FSyNz84Cde|~Z_Uwx1ONwW`0&SEmARj*v$$kjO6$D zTi8`(Jv*57PqG8Qs%`_W$n8UY_W;>W{qf^RG!#m_RAAT_~G1oZ(Gv! zma*p+W-dS?UOkwYU04_&PES;w=xyJiUzsU+$W4121BBqOH?aDC@f({d?xikp8`hvB@wF7@PjQrzOvG98w=1J8WY~ofj^V^ zPb#lr^HO=la>_BwHB}e0m{oKrcEmR|UmL55&uTP77z0>JuFihe?C`vbsc-6$Yv@cD z7K+g#B47R7)r_mC7^~SZJ{Ljm(2(O#dh+LaQ<250=q>p1sh>2%$o2c=uinkvB3$2*P$!n2I^ArJEG_Yjyql$d<3Z?htFGE*E{j($~rVp;|}Zxn8?;{ zMI%)YiO5F9kpaJKJB-*k-^uCqk{{Kw-Hj|f=~MpsW^P1EN~+^jHF-N?;>29 zS}mY8C%E$i=a}UyDqe4LoEUr$RICwLRYrKx|Mb5sAX$)fB#3E8f%5%{4ola2`56^5 z_7CA9V!z{IJ`x$)DssZCWOr8$>EnNWaYRX$(&FP;8KM_rBLmHkni}OU_sju9yt;N6 z9)$tq!-x&DUON|>6T>5Q!6UaxV2~Uf;JHm=p8D{CsqdFH>GSuc%hzJ{tjr@3`JWae zilbjl%qx?@6W!3|@*`PrGBy6)y#5ENZH|B0kY%EVaVVn7?;SOaLS#306E_aBs)s5)yCcDHIA=`0hYt9ZvIvQU+UZ_f;_pfd|rRKhu_%m)qKw zi8)P^aUq@v5 zT&4VWf6N?Xxx2fw4lh!f{H0fYwi8ciqi9p4#tT5t2(O^2XQpB8zq!FGj#5&L#8N!G zyu5sQy6aPcKdBONW!xA(DwT*};LN7SQ>0S{%J&P2b-`~{XeXR&?Y>X&imRFzZCFrp zJ#{?tSUjDIU+FTOQn(x_*4?`NFpp-|l-AiOLhJP6>Y4fx!|LJ$wH8 z%D;|x!H&A*e=Xghvq<$bDHXjPbQ!^-Cs+7y&V^Lri)}69p`bcs7?bp0tNPHFDePjE z6M^E<(Y#q3J-ly!=5rr~Q7c2Y3)H+v2tADOHkd%}vb3diCPt~zB2`vKcvI@93Ws~t zQM_?|KczzR)N&ttKfBNq5CbJM4| zvjx&SRB(BJp(R2uvmBXrz--_LNvWz9n;f;nMEu&40OVY0D*ef zvS$p$O$tO2i%R%}wJWBO{G&LI`y@`!ON5Z2H+6pa^CHU4Y8p)iMi7c5`NrD*+(V-X z;i5mQN8z3i^L*+mh>u?+V|Dss5}fuJr++FZF?zO}P^)Ymy>B|OFSj96_Rr_6kgc5a zSPdD)*fhR+$nylUxBBJqNuP9{VPaz|B79^(8c2j<&)ftLZ=u%`qI_{ zaYCJz+%M}wQNUWG_CGFzC~a2Q>;v7S~53*${hUlv+SpZP87X6a;{Fx6b%Za=le(`Fynzy zTZBgfy;CeQb$L?5ZeOF0^tR%RO6iCwK}_<%l}j-{-$JWvQfZDQ`5uD$IZ|w}A1`+M zlv((m9GJr5D+!iqMO1WZZWxr$437)zRBM8+Rj*l*lYsu4=CWgQ@|N}Qe|cZiZz?uI zrd%30P~1ckNB(5VEktfd=ar!&-_H%X)oiqRT*EvXt`9JuCt|@s%t4o}h5kxY|9=`| zch$o#5?*Ar#T5dmBTn3f?jwhiMxmL}^G2TYtikecoVJPsyu-sh+2pl&$k^eND|ULn zkt3|K&)LywJVNkxtaz!${vB=9e;<);#JBW**3mfMedWQTx13<@td@+yQCqRsh@U}0 zeP{BiLuL{1lP&AmP^k*N@}B?0`WFIfBnp4z{=7NsajGtcA*0$2*6v|E$=x4A*Z+u2 zN4(N2weVCUrG66x{Phu_N+P=2%$?$diwjGeP5VumX8Cdk%z&o)!++x}xJ@`8F0m@L zAXSNFzR373#*ztAi`9G{?Pl8n9mb9`F8c{{3T>{7L=hDI8|qaESfJqQp~KCHdOS~% zp@Hz*r3_cCK&zqB=1gC{@A1wv%YgEWc!=<0)UV?8bPc4JcM7BZw-UY84cW9}2KA;d zeva4DIQJBsyU7xEMkkp&Qa~K($60pcU_DO<(g}ocr7N5Fu5g)Q5+N(h2VmZkH%!yU zpQ?YINJu?jyRad{*VtIs2DdSEBFZSoz-!sDTPCz%bij%QA21tiuHIE_kn;Eyl7L*e zIVHyr^6x;wiLmvZmsKT4N0F#(*Pvh`YyZVj%u=E^ng(WZpu$^qaMFHPPG(rmXGv7j z9=as5x(Rg@&G&M22nW6mN;3-fpsc5>+RO-B{WTx$%&eD2 zC~)ig*0d`KUo=wC@O91>92a`(XgEo!FqG~#!Saq4-2$RB(uIf~ROAIL&2C(Hk9_WB ztt_V%Pk5a-AC^Mu`u%t~x0QPM$|w5prQPD#OLWP4ImojQWqJnd4|?+mKZ7<^@90F1 zMLOU32Zh%zxN(REpBO_+JCf~)*_a~a@g2d66p|0|YPvNUt(SK@<~dEV*@7@ZxSGy! zww~Cq91)AII*?+bJe?P=0flc=jMk%sV9?>9I{Al7t>Q7a17Z#1F*!FG+kK9w54b{df zc*b!_BQ%dJ?@Tb^(?c*@yDtkAsVZu9s63FyUoPsw<8}U z=hy@2Zq9TeT@!DQX97C2w<+ZiQUtcFT6VklW*#JCMi<@GiF}MC^&#A92GG#n)wI?i zmd(MafEg2E{7W?Ekl9o=KKJqsH|FnidZOs*(oCBdYD8$xw4x?zuVzHtX8gdA4D2uK z2+Jh*{1`gc?4o6|{XUYyS%}{0>2C)$?7&Lg-|%^MqLD(esP;KMu@v`A$n60v#KV6E zC9s$X#jUjL1EVNVL*qEP!o}(m;534 z`!*coUugq1Du`Qc9r;RX5~M#AzbX-H>K)RO`;`571{peXvh{x;iE@g`&+;P9Xz*vP zPpEIpt&~5RH7)i+cfmCf$-^k5F|4i@qbRT1#U1xGr3`0Y^T(R?M4+#aVc1O@`?RD{ zg%Q9|W81sjq~t(%pqx%@gkf@RvJN;mz_-#z0Un?&HV01X&kdZMiZX|h%G1vN!tgnX zE~wOyyKDVw_5n&Aa--$HSL}g>wVDoWXmn6Q2lJ#YcGnx`09Q zAp5d>OXcKb*Cz~mlF)G8Gi7RoyI!dKU3)lF3hM1qYRN^A%i?gw7hZKuv0rw_K--1p z(^C%~=JKUAPhONX&9 zoV6RDYeS7ALt(1fTh}MPb_)|z-)1u`2Am%aK{ef&P|`5c znM`#Eo(;44^(g862K!>nj`~nOPvRdTcAmUty`Arh20k2*{1=TxAl4s{ydfS2*6*G2JM}lvy?YR;_@#eYh9bR|; zlpGlPwA+}R;p(pK7@jTTac4=PHVsX_UsDVX(o$lPPDAAGjDK^xJWf9nKb@|iVkov#G^<{r6NmruJ{`VKR2FCJKi7PfU(H7{a(5*&$C|z zaOp;~y#U*|C=9^DGBj-?rI@RJlnZu-R%Gb6^A(GZUc-1=JYE?|aipj4ub;4eB^$BD z|593yvNv)6$R%RG2$mb?Y(Hhidx`$BC3w1kDV6c?W| z`3;mf3ABG@@HSlg9Y^pbq2%z;QiE`3x7In#V1A%URhNKG8u~f?U0DKA=Xyi4Iz<-Z zn@5%FJ85qCnlOB7E{!Qb;eT1cu|)JJNWwpb=Ub%Z+%<8*TmY*>SshzItzjTZ{43OPRWbI60#fk&u#2V#KcIOPn=O{95CeU@Cq>KB{%k++*y zeRl)b)v^hO)k@RHc}8?{Kprj@o~y>jXyAp9d+zL+6ML5fivymPGyWN87bYPVkZW`U{Q2 z+Q_TU3{>U|s=bUcWjf|mt-}wD%7*n9r)Xp|o0dWGn*^8oRBgKQ23GiL;>*XEWg)WX z)~boRnl08gnLeMPQgYAeg~-EGU?&GP{_dDfOc}_64I)w|M%Dv}3mpkNz$AtDUIL*D z6RQ9%oX`U#Z*g9>T(+Fgm5QBF5rh;}{h5GsPXZoz_g)hJ5WW)pv|h`W6hcJFu3Yi(=H8rQ`BVhHE@P<>zgZVTBDr8z9RmILb^#_^ZL@BjTK zNxtL*f}r&WEX+gM5YFFvN^;wKvqE601iHvFagkJu#C%9qpkx9%gR*#*vBk}UTA#BH z`AYEIYDAn03ZoD;v0oh{S}%M`{0p^6M^-Y_6nyYTnfg-gLT(2?|Nj7PK#{-f1%fC& zvl&~t@}X&+H0#nkev9H?4Y^>RLXlF?A59mDX z!&ANsPEJp$8)(mX&sPf87%moimJv7z_(X$_7<86|h03Jti>4c2EFf`(Qa7!DMff5X zn12($);%z}de2fev-K}k)r z;9@Zc5ejp85kkt~k_FxcNg6^%361{-9^_;g3}`e@NnJP|6*3sgG3gwKv)O#Pn3MWf z#xsT`Go3z0y<@_Y6JxS+UZjY*%gnXxR~I4~0g~!)z$d9klL`GW57%3yVygH{%@L~P z^A))=E~NZV5k`0=UtY_dP8-j10Wpqfz0@VMC2CmW={cQ5{`_@ZkqY$Z)STU8`SFe6vGj+c~|GqXcvAN+SERBnF*tDX z11*L7E4A4M+R(nOoHmh`Dozlo4)b*B6{kHiW^j`l(02AF|3dnUmfZsN^do}hUPf1{^3>?`QgyWygyv#3J@M+{9dVoC zl2wJ_V*mI7~F{3u5mZSuT|Bw(v~5e-ekNsmVBSc79GAj~bu;W^YuBIiW+g!yy%WJtGlfHXN`xL>+}}ZYd~T zwqg`~>x4`+YjHKkO+hVEI?Z)79GskOGJM&KS~*|e-`%ru=*-_e3QIgI#YD@@E8x0NI}qsXCp*XDc0q-wIZ9KM ztIwxICO!ASL9_=&kEKAmyqBDR>i>5HjR1$omjqS;DJVBz_H zzAx349Kzy-xdEQz5RE6wLo``EMvZwyIx|zy%7<}BpyjdmL}NoqA<6bRqOka{J>a!=Py`bxZvoSxwil5=^0IG+RKP0dz06{b^SJL@W3 zLUx!DLz{a664Tv_G=5yTFcJF*_^u>dvSn1zcvyMwjG=;|Lt`J6Av?bVay|?g37BI- z=W|^7tBTc9L9PT08&C*IF^?6lONkQmM{(ik7K@cId@@=LXbjM@r!3m&4SAKJ59hSz z&F4W7^JgGj5U0bUkC-mE6;T3oY44o=)ZS$If&C@of{$D*SVVMbQpCQF?P0APl){uE^c@6U#|D>wSGGO3L3MgU;4l$QqaFM# zOB&v^ne(H!Xh)mBg|yRDen-NTLp&hrOBK*)@vVL<27t7^?SZGK1zzO4XEYD+RmB1 z>e#5xLg~!yP}4^c*rtD3U$JC2dK?ne01$_31+|6;vo7l_gPK{wqv7R>F)Tx6)%K_v zKd>#@lyZ96paA|vi033dP!}0jY6Iu;w#xp94crgS!4_2hr-Jq&oh2a`wkv29Z1Sdd zR;&#u>_*049)JXhiw>Bc#%;+Vty8oQ370_SoC~+5zE zU`^$K6cxmk2fDu!CN39N)^hk^AbLS3S^|H@U(@lM7M+r~`GIEU7t2D?zF^Qmm5x-_bUbUy+XErj=9VLvAT2nj<+{ zn>v?|d^_0{OCN>yDfJL;!3R-?>@XxWNU0t?2I3fm<-2zSTO;9L}gHxx={Ix!bhx zBCT`#$W53fNU3Iii|P-&aq;C9jhRLjA^L*m)HJYvwBcb2}s(|J0p>1 z;veJ)EeqU}=?QDtX&X784|q>CrIP5kYxNDkT0_17nBC9=kgh^HRVTCN-swF66<+n= z)tawYEFnqEU?ceHp2QjV!8TvZ=mQf-hViH$kEmJsJlmmMCcLQ|llpPCx(9IuMpJS$ zq-HFrleiaUMClwUOPLYFp_(XYAkaW0g__JA@!}$}#kjM1fU!kH{kyRiMh$&!pch$q6^nIn-Yg6viPny)z~BX+D?l1|xfCv1dLCyNCA zAM+kgYE1>ERwfxt8kq;P^T)R+<@I8|7@zP`&W4sH4Va~-PjmbJ=5{vc=AtP!ola;> zN{h+n(3RQ?YF(2V?=&O~vJsJcL57?3!rdKd|Ck}TvepZexHrbQ7Re8}P#Z~$V(sNm zg4A}7%i>=F+SDn`H&`SS*Pub@0=bps`9_TDTtl66aj)fi_wNRh*G*m-i6xI@4QFM& zMmZXd*0M%>iCTnY5$bp$5&>JzA-Zq_N{XrrC3}Ha39t}ZOZm1|LDu?#2ml;EiBJ+e zXqwZ6<>|lR*NPzR>lv4*5%z+s^72>C=H`A>FFd9fax+Lg$tu6mfhhIaoa`bzNTSNMHdb^!QrN8-X-(rPc*8 z!_(6f>BM{Ds}eekvy#48YZ#~S?ZA0sBo9U1K!wre7g_bAs|gMU_bhyJ@5nZ3uoOvB z_nT|kO{>dCzDX(l!jcJkm8;+Q$gWo}AM2eb-PR4_*wCseq+jXCp+|*hWVgL!qjzFh zit1y`_XzRX0+nWTA+VX3*fno|$Rk~@@~*BT8&Nc>Ga_1#6(3MIKB;$coWB<;&AT(I zgLZ!u!Vbk;)UYTRlz-IYDM2NoU>WYFH=^0M&WDaqs2;@B>lEST!nyrX@1pq#Df^v| zFr;Vn>#Oa2Y}AD(@Vc^Wiuc})2EOSjOrB9cJ{e0Wg)HhQ)Xu*2M4@33X+>Sw(yBa( z!NSxBZAm%4-~wtAGv9Tfm3&Q8MLa`I)_qVgXeDclHe|gm3BH3cr0nWw)NXA=Jry$A zfsDBvlZ=)d9i_M}Nk0tN%N0jb9gYYPAKYW~4l8JjO?zMd@xf+ zB`cKa1uB3PpL856Rb+r10n@#Qs&!U!BVj7JlT1tX91h2Ps$1G!&N1=znpi?sY_hHn zB%Pt8vsS&&n2+R3Tj@bp*%Glb(U*Z=Ua>j`B`hslbZBEnY8p*;CC3xgfDw~rEzDRP zgNQDeTVOO6n}Zmf#_YSDtLarC)WiIV_;VUb=Yr^tSL}9tG*SN~AP&Ar9pmeDG9B@d zAbsU(P7ShJs>~gBXrzuI6&w3k;jNFx7B1I3e&hxZc&?+2hbQHN{mApdd3H0x$GE&x zl=)&#ugO&$DT!zmssBkgL`5BoK1=$pT&{S`tXbL0r?IHgOBp}xG6jppg0?qKoEjBj zsdjQ^e^Lb3nJ5n5N&U25@o1-h4EL*&TRt>ajpL9QR^mwNOm5)mAO<1X%m-<=%=opc z+T$YUB`3LV0_H3sqy+$D;)XP}M=zkqvPG0#)yp)YcAL%b_<*Md02q!%;ZAdbPb{lG zl!T(yiciwX(Z8uT%SklmV#aq7NR>X20ql4u%IZtt5lc*9B-#WTa;2Ia3US%97E7R9 zahd8E7GE&~aWcbU1E`S0nb@F1b|56D*S(^XG=&Q_f71J;k*B7Zu;!HSx0Rv|DY;~mvB>Ux z@LV*T<%p{=)=KeNP@WVeeaj(gI2JQkh_))kz^H3+&LS5w2jI4%nYd=VBN?uwYTVSk z>t4#?cb-?{VYr=&q}62&HCY&Fy2<98_F|;3){8I9NNL6mhS6Bg6{OjXY~7@9=O8x- zMFqedX?ijocoCK-Bee+@;}IX9RBbPrPh@E+N5~DN; z69&#^FzQog)FPZwYT{PTiKnA6rOCX2*gu=uwBo`xQB2@stv{J^>rr-WKpL(%D)>n2TeNVL}fIg%pjQA3pS=MVcB~r_a z0S5ixVNK0IjWH zivm)Z%<8@W|DkWYGs8%HzyS?NnNYZ_>e=`JmURv0!@24L&g^&Eof9nLAx zI)i_Zp^Jb$rsmg$PLC0%bEiA?2ecQO0k(4WM)>g|%_XD6@%i_Sti^64v=>1_6ZK5UvzE z6u7hUVCx)E<(!4S2Cc@?atTFNzBjLxsE8^xVTrN_8*|o;^`dOEi1pP1TT69?Bg7q+ zKHF<_dy~H7P@vV+lzO4OLNXD=peV zUxq1<^79CKwTF^PS77;3Sp$;QPird2B;$=`p}OE?XZGc$jZQ{L8YK&@azIgGxu`ug zAimepF5f^ArRO!h%y9gmB<2fn&uF7a513kj6H41dd!(C)HM?~vhUFo77E(2pj4Mkp zfSI%~UUrzm3m4f*)aoONjO|>G*P>BKi1rycqg}x<>IujO|Crc=D78Q7xl9diteQ3p z?1&_@L0ZhV151cOo_tg zql2tU{jICJ2@$=XMOG^fqOAX*b(DNqEt>U$yhuewbR`_NdIUdyns7nnfl^xBZyIts z5K`C$nV{;AA>MmcuR3y)v5m7MaL;}J?5!AYs~$kE&V0ZmQLX)1kzI}&Kx2SbuS% z>yL!czQ>O}#Nq=Yv>b3#o9x!S#emTvw)=o#h=vxFE|C7QyWt``wtF$sfDm!&W0GsM z{SZW~tlnSr9B5t;u0gLG>qt8uO^-F>!tiAe6RjoA$-QF;{y-7ettQ?(e(Um{nvRtH z1;KXhC`&Lm8B)YTF6JYdq?!y#63QrT4#?4<9byra1qG1KXJev+-buun^r*3y^;V|( zAJFS`=ZnTbK78n%?#s1j8)I5>8I7Y(3YFGP z{{$!gdLfZwPys#P9*zNGKN$=k&<*HyY3b|z?i0Zh2CNR!h$4Z9*<5GQHRLN*$@Kk6 zhlEJ^_bTVZVVJc6Wi}2tf9oMr#-peh0&E~UmC=8|Rdtsxtp`=(9rqtH6q!ycIP9PW z*qivZ(|hPTi$%n!mME}+&}>A}sJ1O}8cMUmqv}ECnQ@Ae1gyST2PzD7MmT8NBYLx) zMpZztlb=U5>FD>DL01}SF3Eof$+!%WGbAyPylDGhwS})EL?o~TQl+(YjoA^J)B%pT zzNLbD7+WCHwQ58(^F5nEi!1}uSx8xXR-F&wZe(1{!$6|ZP>Y%#@~j=!>Cxl`W@spw zEWe+>eo4xbl8hFq=}x`pU1X)#_zI$$A{#Pf3zw|DYBq3H(?Ao>n}c|>oYQ6E^HZ8p zeesPWZX)+Kr{wqE%pzqCl%#*{4_W|LvpIMn-vmPk4N?fMLO`g&?HXYYOU$O|61d+@?|~ z^q0>4;|?kx4Vai={PVQiaB%Hk{=)@h&dAK=FiAl-GA63WS zn>nd53dw<Z^M6GG7E^;^Wm2=p1`t*QG5c>QwO6S$l!Zpkcg(YmBxs`hyu)ambsqM}txt zJpU)qXUG?p3WTm+##3QcnUD8AMKjOf&Unl-@!tJG^fqe0K=N*y%L_~jI@9%HH9MH} z+%8QgRmy05HQW%X8J{fMrtXoKLyX|1x(!?UWM46E*=mUE?YLy4%J>cz65|j<^<0fB z(;W?pB2{PTi6$D^*dayzUcwrTVFzFr?pb-`5f&kOl>}2VBvTlvqo^)=;g?}j^I??* zo7bE6!fxdg#P_B|!7Ph`7OWSNHTGzche&T`4B)_{fs5XLz{+oHBS#A!Q6ueS#eiYQ z(HLpi-*i$H+)=w2_hm*QU_5sa(@P4%-t_je1v(P7jz%{_6WJOCp5j-!dUZ7W52?!G z@PX=x0z)rV*am@SKcXaisH?3QYJCfX-N-`7JEj`J%^_unY}jI}QL`c4SMfk+VAYYo zrN`AQ+U~cR#}!k|n0G{2a+v*1NCC7gAcvkTr6nvj0J`D;t(5vLKx4{}swIL)M6*FT zW23l2UvdTG!JS3e8UlQF*|1S#doL{lbG4)BBd#|Umx+U+r0+g(aWGmI!XNn(?1$5adcs?Jf;m-P8ZUd zSE9k|ZZeC$o5WSX$jP9P??Uq`>KcbRSqab+vEuV-F|GU_9TQsi1s^SZokTh%ggg58 zC&_r%ry)bMuPVxkCK|j$Z6_<7Do|scN?Un8)^oY{lJ+c+X(G+^QOJ6QSD7n zew6Z!oXx23FGDFUIP;{nfpMOkX4@7t4I6$S8hnj%U8<1ABWIm!z0++%bK`L2fGHH) zi-NjMGq|Lj)NckQD)!bHrIe8!(B?^M1H3n6%X{BMV-LA~-(Co>iw55?7&fr{vhgID z2{)Y^lE~RwHKa=4RFp&EpqH-?$~97So1^1P?J(H9Yd}w-52-7Ri=K-SEf#K$#;-5+ z(Di}KKWcM;QKD{T`dfDe000mGNkl78#x+uxX`2q4deLz zb&^B4-p=~?)YoAZu677#yYC#wOo+)|!T#oCM@x1b_YkJ2e_VzR+F8U|?$RB!@6!%f0+Dk4dp<3gd;p%2@ zf*AAAMe2&=g0q3%hdrwS$9YVn0mmzmf3X=&?{R_O7-toQ+h*%ea!PDRmI@nN^B4S(*cx&IY-ZKDCbs5%>KF4s5u7 zi*V4+3Eaa6y`DOxP|~KV%-HuL|Ggq=0z>B1k33?o+QqR{jO*$At@^W16&dRr@Bjky zef2k%=b*YAIh|Ax`>Qiw!0KXN`c++-aT+tyZylu2DrDN@BAy*b_i%78)w=2-lTEUw zS8H+9R_DOD;%zcw8LI-RO#rTnt40cbMs**}IDGT6+;c-fROVNqouT7oF z^s+3-5#d96UA3yBIW(6DvYLrNQXR#Z+HX{Ym~TB~L)LD>Pn8}HaI*y$Qe$+?su!qL zLZRA-JuXdNWR9Cs%5HtikJhAnT);HujG(v(dR&JjQ4O%pdR-9#tFN*G=p-WewvJJA zRokSdI3iO>x)W6heSLrbbG;l8qO-$N0Nb5?u;@(J@jHwmZ^^d!BkDmi$HvL|q-GK) z$y)vSU=GUfS~Zo1KwBd+Tb1Rghbt^H7t@#TAmWD-Sp_uL=rwP^MC?WEA<}her;j6v za!9*`^_s5U(bb-XM=}lF6wst1j6UhP{5X8_hYeJMz!whZ#^fiNdd7XpuKVX(R-u2? zRPL|;kp=DAnNV9V#zKWQo8?h?|ar^qgsD$kwFHLEPkSbfs3`y#=mrj zI%v9FM13N98tZ)%`l{2$Y{jJ_V5rqES9te0cV-S~KAWTpN8KFZbNpM%|LfQP9I%Z_ zN9(vboptTf!62W0554G|)c2$uldo`!s0r()p*zAs#eE00%CcA~>I9R|8eDfch^pnN zo;3dV@BfvTWq-J+8=C&4A6}A!h0c7nrTH6~Y}<29IF*^Ly!e=7H{CUKn>abtR{ zIO5TvRt79vG5wUX*4TW0;LkoScIiw@rhXN4w4-L#3L)B~*{f_zL1dYuzKM+cw52yh zo9f7#B^gbi-Yv6nc(c1}##mmoxzdTZRKch07*=wqWfYp7EsQzRJc>R27R^O@N6dr6 zdO=TkWAtWSqa~flUsj)&`f)R;{);|GzN}Psm^4W2W-v3_Agsj0z}MR@>yiw_DoLz`-VMyABk?j^y`FU4nYUQuwyvG z%zAIF1j%)8>A;SGFNi<|k^LT$cawVbYHh1#&lgiC?DXb`>_K1IdJGJJy6OM=QZogd zam;S!nk>YkFD$gAZZ~Ruruv>SDXCO!f%2OsQpDm?yMM+QUfX0w8cykYJwZAjS9o~w zG7ndbD^|LupVS8RoYY{DC8*W4l>d4-sCO@H9Oi9OYDZVIdDj~Ssy4CKKR(PAmDEe>D<=`N*n^G5C(3`t3d~T09kFQ+ z$&gV;iv?94lMhB|8Cc<5&EN)hB$^tO@dHPX0+FdEEb@8Gn8Q^m#;7JE-)O6yjXm>s zYi_~P3LapiaxnjFtWLcS#y_JsZ6fH^l=Ino)9hyU#^TB&1yDbS@E9g_%(4|*Jjb}H z*--CsM?y7E#&6q25c9eQ+ZWYQ2~%U0%3Eg=SIX`j?;Hpz?<0uX;P?IM(c^x!EE+j$ zz1oz7jHdSU1+&YSrk(BTXz<;wSn*D(Vn1#{NDW%EauKYswt6ELrz z+oQp+qajqCRHMP2Thls@$Iv`8*L+@U5h4-5GYKZ)i! zYbxh-+$dO$vTNtDCVel2G-1>6A>HLlN%`UZEZPhmhmNx-M-$!|G_?jfi48Z6X>Bz5 zu%P4kFuE4+{T|dbRfXg#-h1Zs@@a7qeN{C0Wz-*1I7`XWUgnReo6y`IOVQu~F?028 z?$T8>js&h_wr4bx+fhpTvn90V%=3V(zMUh9q9mbA_WManT~>a13Ay@&)SF8rtW3s} z8Vr~VpghI{7*KPY+vBn>tZFqXDK1l)gvr7r(g3IY`mg#@fyN@(=PG)HO*EYQnlz*1 z5O27kiE*bDDO@ZCWnp^@X)s>QK}6(JdtE87mh5GkEM=c-F~&JOi>srLa~DJ*p%<

rv6M@z+O_^j_Pr?-4K|u0_k!soo%NqG2)v!#X*}Fzg|3 zGa+ekh7#{RpVmSMdH);ikPkNq=5s*pmh8G^8V-45$Qe-taMicG7gINse4MUe?y91V zREJyGdZO9sHF;H_v9aUYJ9}kqnKHKl6O%J!zB}kR&FMwAldli98rcldv%d_53*1ks z12y%l(HrmD=^eUW=Y$IFG-(}~7}k=@KJ218Bwo~FJ;Ix$7y;(PC*+halcB82tRUNGI zbP?|8g7#rvQ$ma+B+EFiC}KAsJ1l8KG;}Z>>e#{8m%0Elaj~jTEqFB?7OL_U4&-}t z+&n~&9BK!mW?L3!iV5$YVF=g{J4E_WZyx3`O9d-Kan^w2j_nkeE5`5z$~M(@tB)!T zlzPFHNZlhe%C}i?$T|yks)z!lE>a)Z9;h@0>!U9FYB8fGIJ-FbAq}}ePPEsnuR7$+ zYzTrO^{>Rq&}xVdxNt{Q-X}G#I%7Gtd#tJsQH_%=bTU*9s^1;4Yg|>%B?DZS@ylfw zv^Q;~4!FW9U+&<-8@8J`2lhHzEbjdkwvD=-9)jISg;fpQI%$7FVXita<2VPmZdi0D zbLKw4<>19GSqIzRl9%T}-6(z8tgKMBm3$1NUk&04z|mQ)-7GGsY3%aS(V$cqpqX!% zP>OP?ft=4)Q*W5e^!K533w<9M^PQsgzQY^PlGF>)buu?B6*+i=J{ZINPexNO+(50% za#D2<-asG7ce%_l{Ck(gl=Fga#aeU+-blvf3>(=c0I#x_hVzy@(9}k1A<_|Et0UMOA$nr8!<7raqmdS;#nU*s>e&ZHx|L zEl-gFwjD%T$%<`9i5?Z~;Zrll5@3}=2H4MNUZ%vd7K^6;aCKb^a7`FJxpqB zd*wV@0$d7Hiedsyn;e}^=rzU_8QUa+UCM!7r3Gb)_CwGWDeoav-Vlv1H78?4))zh4 zkgIt~wPU=Iq?h(YN2TXxSTEVi%=tm55TzXilfr7sUN%<_acL>Im$WgE#xR*8kjh=} z8FC!+hC8#!jE~2Pzax_TGbj-~PbM{R-cqgnoY3$yvEp6r?B9?%4I3dhQRc!5)&bsM zjuuh1ag1Y(mJ!S4Yh>+w3#HT@!MBxTx2gc|>D!Pw#=FqehT}rMqy2xFiRfPT{fAMT zOx7kLP?PUC=Fa^I)NLHOgF+s$Q`ColPjiQTJ2RIq%i}yRDS5$4rFsFH2N()$^|h;J z6>4=tsix83$BaTNPie)r+%rn+QQ6;wl3TbopcLxx@76~db-IL1E~2lB2EUBDE=v3` z&^!|FLra%dEm{5HbY2gT`iEzjtAuAFy66A98*Rv>8YwGt>isE6FCp_U?;z>XXz;rz z$d3&1)ja$_x7EQb)zFPPxH^rctT)QdU^(WUTG4`j6GGVO28K041A>pnD@OULh0tJ* z@xw#998E5TJ_ch*RT)v@P;NwwCYCpy2SjN(S%Py|<&R?>u}=iM1wO`{QaV_Z^%Kb7 z365OUy^r1L+-1wVRN3B2I2ubxS1>u04pMr2(RxFQ!#p}hrKxh zerTw6`Bz1&l=Xm^km|t0ZgFbJhMMio;p-{e3hw*yi|X?sE}HtKC6G* z(Zr*W{S78TQ?(3)smhCYaPh9&jz3*@)*b2}i0uwl40^1$`%5t{7ArmtgtEZ|Tqn01 z+*A^kwA3A$dQ~3O7U9tCsVunEBTBQ~--iHnL>Sx4)nYmm0@C7Fob~K>Qg=G5`yg{O zZSLbK&Eb@_iULte3MuX}w$m|9gQD~ZwaLgU$goZZzYSIT%n^>culXFC_#SPqe0>JY znei53jGcl}={khUVpP=ET%2y@g(Giuh4G-WNsMq?A0V%`$iPvW6L0{sz}Y7m|1udb zxK7AnzduqsF6!Juj)ST_I~;8FR;J2*;rY7nEEJ@wT+}1N?qI6Q02fspZF03xP>=Se zq7do)74G;Y1;kOhqN8DC2IGd#Bn=veTvaA2o7RA#aD~ugrBk(;sp8_UgcBdeZ|qT% z-k)GepfAIu;S^wEA;(9p000mGNklSIl# z5yV@ia0diwb#KAyBfmW2@;dF|=K+DsiAWi)%6D4vbdoj2AJJ zCtC_InN>kx{yLyB-eF*4LU+OR7AQ8uare+uuUKpHkeiESZenJrF_j_h-%A`gc1lPs^qaye$ZN=umnHtNmeLb z7AzY4fWi#66pm3lAE%OSUXj7U{a6!msddz#KJQh3He4{;CEqI+QMP?VEtUdIK;pH7 zip{l!6urQvGT|5lbEG=nJ8lPOxxYj6^{5mxDKA!;C(G+qlW$Uc1drC=QbzqEIg2(t zu21<7M_)yHzI>YR978Af;qt=J?>1grWL@^O<=+39A;OQi08z3rM^ ziV`2S4rx0G2)?56D&Un7+;&&m4()8BbM;Rp$p`r63Q;N%Qx2h289B!$1k*KG+%^1a zSF;H^j3Ej2;#f)YtT7ex3WdQLU0~)HL$YPD_bs^kHF_F=M#Q40B>A@OzZYmw#?+5P z4u66M^tW`Wi@sRx_MWjTLkc#d<+m12WiaoQV=_rOnCi&-H;cASdu0dPoDQ;xswrul zBuO0Yyp{&A-EAMhrDVew>4i?iDUyX`9}zWVG>2w~Lv;8y#>>c~?;3x2ALBFFeoeKv zE7*WipW>n?XFCIQBwcbh_ie`_v+seHr8F9d4pH$2yC8(@vq@+GlVElp!A3QgHYNwKv?_6fen947o|_^-_p3_Ynyk?h{lP$1T z8`r#cX11W#;_yTdYwXUB8;Ie0NnDG`TUbmH84+n{Kp^O@bZ&?@vh>O~l{smWM%im{ zo9WYRydtZT0z zIqjxv=-k73n+yx_-ifNUk6{y_5^5L$g^9-%Dt(>5h)j0Maf;f8t%^UWvBu+J|H;49 zZ?axC)Ml3xqxx!4Np4@(CIs2m`-aJZEM}(Nlqc=kF$s=C98pobiP?dJq&t~K*}UY_ zo0D!_uha{PfeXhFN84y76dKKgK0l?kJ~UA34#wL72gN89CNj25*A7mM*J!uw<6R_^ zAEG~)ClSr7Ixx1khq4lMl$UX!6o2A zEcz}rdF;ikgi{wNzdk=1QE+7pLUBncOH8~o_{eH@$FIRKQ>J9TY7n)WtiH%R7V2p_2A ziFc;@(7>u#QY?ONikuPkwOsAfNF%a;SbH$4_lMo_@QG+R@ab_e5AVB>cKHyM?N)x< zKTGop*<%MH?0^(EAgdMOey|E9Pv0lDH)C)q>QzH_)PT3Dy$;oi!qqlEraO{Ec0IYo zd#Cz9m{1K^VPSg2F`eu4aztIcS`cUo2>Txu^P05p=pGBrhRrW+(%*;){Rn>85Sml$b4M}s7aJ7 zfl45Li)$EVt+V=?jGo}zDmO%k+5$UO{!#XQS&X#Or-tTkHmjHNF)U z#rwn}9QmKjO{H??6+bRGpVhZOFKb3njG^ z$IBTM3h!Q)FU!=vI-kKmRFO!>^wo&m2Sir4(;}yj?eU_*y*qy>ZA~+`-4Q5^f%hX6kLB-Egpeluz%X;5B4(}MgYX%jp)<~o{Jv(yeRLCLMO zvnbt*vJ2AgNBEo3j$JhP`%wLWrn7)s+W_wK1HlMPs6U2;FC41JM$Q*p zvA6%I2vVeyr_(pidun*1z6dCKnvTJ5*;X|8P5#!q|717NPp2gEqic%0({qd^Xc`<; zSNp~GW^=7JU3*^l@I7eW7;vQEER2YpqUs6`>iwChx7(8UrUCJKCxS&S2%J7g9%aDio^$O&%BOn+v2(N1N}Dq-(&fRw}#f%6)x z)0-1Ki1m|@gk3wN^gwv8Pi@SRumuM z;v~aF;DYSY2yFZl&`D($V_Vg>DR7>>@z z;M^Tze;e2rySobah9?>H=$c-tdR8|OBNldbHxaD~;R-Jmz}5%blLHzO(OmaCldYd& z9%Rm`Oe?0Lm{fM4Gs{BUn3FHl9!X`fp7d~5Mi$}-p182?=;CjiLyr~pbV00b2+FQw zk}g4CxIbvv6=_f%ikQk5v&gZX1zT<~o4cTXC$+zH?Dd_72;S`x=Ns(`|TY62F)G{n5?)lZ`{ps8jzoT}rmbRWu4#I_MN)-MRohK8XO z^w+OnA0NL64q-+tT^2Ijtdi14)^Ytq%rU&_9Sc>yRQmPxjWE{)2S>drP6qS4sD2}_Z~zsoMn)2G3}n_tPpx+P zGT*Rjg^0^g=35C%;>Ch|ST8UFiJL)*@%#7|%X<;&k_(u@xC5cfxG|+_iHQxu?nZF* zWn}*PBTJwE;B>#<)~iv&Y=AvbPnevtNbHuo_nohS+ckOAH0~y5MUtG2aQ51t%s67m z`fN3FwzCNyb9)t{3ntwpBU6WZS(^*TWU3Ks=iEe4>O}TQUbmeQ4d) ztk$GwJ(yl>Xi<{T;m2=W_BYNg_8M%U&-Qy)F2z^Xx3idXO~Hc7^l1yWV#H}R#-MI` z?uOD%!{opYSQFQ1bNk40%ee`5KOr3mEp~-nO=Lrwa3>yL9oi+-tQ_LfXY8n7&HUE31)bZ<%hgOS65Bh_r^z@&(RA%n-=NLI z(K4s!IY;fA(b<&Qq2VqxDe(GPUgiC0_W)`uUYc=JG_FG2h}K$^9zd-dZlVi4_$HLy z$eHJ#SI5RvXlmz1_h5ZAj}m#5rq8Wjh?8!if1gBSee*B*U;D!;RBBcX|KcWrW4tIs z!E0jdx0jG?!YA;1mbQ}?000mGNkljqjv?fBCrujWL>LBh>% zXHm9bV-u7TnkyL6Mn9V@O;C2#4;#=Xqn7m9V6az-JF@^yzo%h>XxIwEO)$?6|b9-MLBQ@MbJ za+OiHM{Mv8v7as$#Ara=6l-##BFC{CodZtuL$c+UpHFJmbCqM&E_TXiC5b7%lfJj6O+dA09F5e~gIA*S*7*B3l4 z$^$QOFo+aXYfWFMjTxQTUMZcc^|R+bl-BM8_+Tc}vrfzt=NW z_p{io8y3H@JzsGNx_ASfJD9y4b&>SeP)<+Can~P0-$zdKoz$rM_7=Lx5ia~PB}2{E z-i7|jB)hg^KTRG*>5oL`t8Ze^?Dx+?5Ab}v_ZbwKTMSz%u%>(rxxJd!hVGKrAZx zHv905%o6L-V{fvUA@K!(hc5O4-wiq+8Ya!tfE-|c{ zHS#4_!P|)?Ht<1iZ{sMVJ235Ui!M^J|V7GL{l_tF3Vz`){t=p&7?gK zpeTP8D}Du?@K@Z`@!o5+jR$@Y8Wrs+R(v%`wxC>Mwl@RpttfK|4u1!l$DxILacBm+ zgi`b5`dYmAJJBjQ{0h3-gJG(Gcm}m9qkjX@EJtBea(oAxmddFFVv_s4#wbuH>LX601wrG1@2G(dGvsftE!%+$YKhmHmk|zHt>IxhKU`Y3vW4g zY4nBQofPUT!jF7>eE$0DFJVIe`TEib@S}J1-uc3$ah}rg8*Xf?F}Gfq?$P98WHnEm z8&$Hg2V%05MV86=IGSny+_|0a-1JV)x6AEQcL$85oEkHGeF}-?NCo$U+OL~kJdLL@ zh(uHqCnv_^$EP|OAcCn;e>#8v{l9--U@x*VW=i=}Bjmx^{O$*8n2v`qv$DVL;n|&I z0p)TUiMMIU8rudDuI$CDVWt>sP-U+>(wlB7>Ghiy=M5=$O6mx5OGBRMQ#5t4E!K9( zA5%A`L6~|hfg$+WrVBk8^FkDV0#ps>bjs5IML}|y>`0h~U}IqdKq-PtF8s&g7II+>L~FjKUy zv!iSXZW3xM*~ISB1d_S%OXkJla5|m-`T7UOD3n&{HiFP`fB5VF{f|&z|9pvFVYHir zsWGj`yLhd>G^0)#=oknKxLSxqMwFKx!tV9)ar`(Q8P;0xSwBcio-Zc!p`5a1guMW2 zvk*HZPPEuAvDeK+&uSD`LTf`?6p~YB)@GrcGQ;R7kl8ld(2TRbi;lmP8bj6ysuo$A z{8NoAehFJCx(fAaZUF-+d4G@oxPqAtaZ(bveB)d&RA(9G0UXS#DdotV7xtNN^SHt| z$$gJ%vY$A~HC!GlY1hyXY z$TQED*Nxyf-G|XKW8R3y$9th!Li5s>y6izTuaiH3W(LmHsJwg^ng{azWb@pG{-I=U ztg>+aN29*_HlbKU+%>oAxSPa#pQ5-{uNQ1;$6POaQbl5Qf^9IyLooY`a`{$xt}sV+ zQNF{T8KE&0CkEcJGIKdmmqfrJTPEfv%g*qDV}N2#MJ0AloU*qiUmh!fTTfzM_=HkL zEIcH0apz4`999&DJf!$oxuzk-$w-OEjthwq%Wi6XUmMeCQd*Z(_Muu*w$@0AQh}6`Mztg4=)=RjU{r(_(^gsW6nd%FyS7+KF z*F?T?$hW*T1wLf+S7urks-9+jpe-mnjcK|L+gyDn}Up6(`Uof79;J{EPeXh_U!Bb;r>V4*Zy5|BEp)j^c^J1k~~Ezu6yLR#klm@?>#Q*=DA=NtCV5|HQ(M!dG=XH$+bq=0h!m{ z^r)5AFS+X|nCciZFttN9VC)yWw9zEBUaBVR?dVTFn6bV69lg+}CtExd(X5X1;b%)q zd^FeaFMc)+zW3xy^qM1md^!y?aQyiAz#VOPi<+Dmc~0}W9VNHmEugcX{~k0i5-&j+ z=Hb%3M~yZCm%GCt=Yj9J$SR|NM=#H z0~gu=P&{3r-+?~*(NvI&uVDfe(3u5iD2~_)m*ZW8G6BqJ(t;kTkpGmaQrlCYj3Y>xc=t~ z&lS9UpM{Xj(=6S%Yjy_wdk&d$@g$7#xz0BwbY=TNJ}) zfZsx-Zj5_V44>~NG(82i9}G44YDOTMZl|BYxN<1dhv zb+Ar|mV)NRvG1F8!{m}M5r{9t(qT+qzyGZMrTZWE;S7^=7y54_XR5RreYUOs1JI=> zzdAc6S5SsauEXId6AgASr$*1Qo-$3&bm;<36yi1L`nR*Fz2Ia!kprH_drx1z1hr@8 zhPCGg(|&pfY03a9zP$L)LEVWjvK+H$2*D@SoEF#7I^_%+YU`@47$N1m2`#$}%1b3W z`en{r0oIkf7s_oF;JRDK^C8z-Ij zBg!s{2~ioc3FW32(&4wdY_WuBVQ+@(9_&zjkF%?Sf)1u~Qo8Sk+ zqj~EOFtDJ7XEGxmNAu6KWT>T=3nb;H*hr?ulg(KxdRyBxOUzR56V==OE66Zmdm>ql z!q+{4{!^Y&BbQvD$_nO+YWhxCt!}v074& z-BI4O)1^!Ow{{{Q$_{9&Qt-JvgO>U|dOpv5a0u-_?NPst-9$%tlw$tw5k6#8k60J; zcjUTYC1uX7msaW}v~pw)C>ji*xkC6ur?IYH!${5o@8|Kd#?!@}OGx*k`$p z)~pTDL7BpS;z3bc3-4CNpY&6#qjEF)995eJ34c=qN=~f_o(C-r&;HkidIi(VJ zHqFyfoZQ28%yzDquNgEBh4)G0m;e9}07*naR3Aj$G_j##XqRVtjpn7`K9na>+1F7w zGFDK#WqcEjymUfCu6P^=cc9!vr2M~)(xk2Y!uX$uR;`g<=+eFT&c%C=Qp>I@D28H0 zLo+R_l=BMmJo+$s_lJ4oX4gDVpyl~P&~?&PD*Rq_!dLw1=rXzTtf3ZR4pCSLG10>I zZ>vd}9;b16yi_zfh$VJ~^E$I3-upACwtrX0il<~x$?W&;d&zjmnaUaMUx%)d6c^dj zcTLLH)G1|cW8cqtP~C;5zKi1|L_u>%)_a^jFW)lzm3a*{i?95`^QajST4^D(CP(_1 z?aip;?Wi?KO?otQv$>DjnC+>vS~RtDA-8|)(D{Ls)2~rlNclA=a_sU}1@{5nw6Kon z&uA&OLuYE5&p@4v=$?BilMU+rp8dArHmmNoWy+P1eGi6Ep=N*R`iPyu0a>cP1KqcG zqpsbSP}+{pJ|3NY2a%-x0MLK^l9k-MEhN8$JcU}DgoS+PQBK=pgXUZkTDqICM>|DP zi(2nTdwc}ZR+nbzc@Go;UpEms29@S~7pD=ol4dku^^ZnNu!gLa9MhsVdS8QAWfE!Th|y zk(aMg^R0y#?G{jeA({u$EmYe%suQCpmiF6pBdqy0`%ZZw+D(VbJ!rR%+H{eH;jh2` z`uzNhV8<#7k`&;*Avyc~H}|1YLJ_A1Cm}`Qd*Z}M(URUxcHMTe_hg<&4&|4lM9-t$ zbltd#y82RPA@YXXbyJj=QTi{sigy1;(708_z~6oT6@P?$%{H$y6O_2RRFTu16urOArxl_|Rl zJc)MDZE#v-d_;FfaC^_IG-$USweUP)HCFs|m%Nkg-~-t%n%s!W{^y`RqPrt$j-=eS zsqZ}Mdx7edLt?&sr#y&ubwu}P&^#h-lx{=2S(NK&@Ds9%24A<;5?Y3+k3+sr+O*1R zqop+M!L;=>=sLOnZG*Cp20ur3u79g$d>+m5-WxJ6G8uITBI~jhv}yMCTOZMVolKw8 z3hMvO_06c)ka0Tj=7Ooq`Uy(;R67R$ayn~J+Io09%6t>ePkDJG+U)HPr8zW1gge3d zi%nHd@+<4aBtnT_)XC<4c^;+b(FB$Hx~zRuRH!Xq`AMg8Gpym{CWNZypODS7gw~~c z?ZfWhJ08;*xsj>=CO0$I4vSLa$4E*&Rh8b6-2>HFefT{jPso)I=^3%Z_}xuY)#e_slKx)m(d&C zo>ow<(JnWBgSsZF&`^RFP%ckK-KAcuMeqYBxe@bqq59h;GC{@o!lpV_NKyCE>7|Q%0+6*L$$ANP4YEV2gC$Ee;AN_ZKyMp51 zt>4xa^k`gC($jS%v_QEjRiot43>9>Y5lW~*E$<21rEi-Bs`DQ@X(l_ed`{_{Wx~xS zafkN#*p+LYo8~T*>VfhqlnaY!yj(^zPgTm*pm}x5|2j1P&JOMFM=7K3zKfqzWCLR} z%6SmpgYp#RO0*q|o8<58+u4$$ibHNtnxL^YC@#*ikEW=bR=JN%(7)7!1?9;B!4HPX zx9cdoq;d;%xzV!fg8gu3u1j?{n%g7w3%l7pOLG19EK1X6PruNlopT|%t5hZhbzMwL zD7QV>&7y71g(Fms*k_A+(g`bT2`1UaVLSCL7S4Sqw8doQA0L=-!GmGlltEE`BrlEQO>R3 z^&S29x#P)`Hg{lnH9F1i<>d5?Iy)ZOZJ+7O@Gf+gB-&2WtH|b=Tbsg5P^(0UTJzjK zrt9qNLIFh87X)b>D4m)pt)@W(VGY;oCHsU;Mg~6FlB1WxQ$&_f%1O zK25ef$`&%|oF5~@^Q3F`iu7mZobS)0FCp_Nz3baNqF+a5KeJoN_~8b$OpUpGA3(!R z6yrz^f@(o>KA&WL2&y|&BOxKvGNN%`g+}2>_L;Afz>A&bpQ06=Xe+G?3T1OYkd;^Vppe^{3yRh3V zMJ|~q{uHGcNZD5;t&jBv`viIi`3x`Gpv{~kdIZgXI61`%T0M87RhvvvT6+$N1Z;38ShY+E-W$t@!d$$63S@k?HTmSRlNEX1^Eh;EZz zLp_J_Fd1Tb$K+S}g(#&Jx>Tn@bJNu<)5^Ez8rq}2Mq^d1%_tSekHIx^7L#p7a|65a zd=m{*)K@s8Sw*)24GyK`FQEB0d*NS4gYToX@6V&@x2liwD>=Im&nDAvZ=f!s=QIXq zNReei{q5suS{O^Fsdi>wW+?ey$S6e~X^IwZ$C}8ud8qdC5Zr9du19B4YMmx6qD@k{ zH&cCsZ&mqwzu(QG_QxcWNB%IA+fhm>Ptj&uZ2o=*rFFDJBq72A?pxIu&9RDcHT%2| zeZk`xgO;^364eiBYoqKg+t3`uYnCl+l6v zowRK}+ECYWz^y13kGIc|@uH1YkmHkC8P50JHj}(ecJ<45lh%?eq>tI2XUfl`sk;NJ z|1jxC9c}qGHdsqiF7u;g*h~hShOW#@XqnwVhDNcA`tgfVX99vYUoNN9>Dyf2hNMAB zG4$;8JKC9SM8wtl2uEpI@at7>L%)3e7)n2bdV$VO^nK()zU{x6ZwVo{9?zlUf6?dB zw5QDX0=pCY>rlFhx-#dLVG|mwYF+?fla|rkc&-O+4wht7!Q#0RjsaTKxG(u*jG^P%?=Nnlpe-oPJd5aD zQg1|^84&x%OvA=U|IV%6ru|Mdq<8K>^T@KlGiN@1O!`#YoZ0`8^}c^Ow^^ObJeq%g zIoZ_6k-olEqw}PR*Mv#PO9kg65JhoE{?OI&3Lc{W8i(?<@R0J^sQzj zACBdfyuITyL}dx}(BRUKVJ5+vJFFk~Q&_FgHk6mDW((p3<;mwOB+Y)ijlB77*oN|4 zQqQ32ugMD1EJYKN{$P^Re!29rZ|$~yY=aDS5HPByVA-Bcaxtpi$#qO_{^}gdD4JVO z+abr5Yw}1EZ6wno7Z-pobH?tVSaQnWX4KZHU7sLz-0901LU@+6uuh2!*+|CjSRlh) zBvDI}V+WVX*shtUNodvTd9~Ys(q^;_!WWU`N6yO2Wv`qe>Bq>tcexI5 z$$v%OZd#Ozq{EULCn<+_kg3)&-KfpueA-^zRC(4+I%S4U zWiLva?1P;TqxDjBJzr)Q9Dd4bvWr(SS=(=-{YG@!N48%rp>@3X`_No+*CxSz+q$lK z2KAe74*$N6x`Tt~7CQHP^=(s|rk!&y5%DbAxp?pEXxakUmAS}vnhk>M@b5I)KG3ZXuV4P2W8`^f@4b&=|d;f8is&Si1o+(5*w>B>~g`P#5 zLcE^L>-H*1TgZ}h+^*BSO_CP>VZAfHjI`hKU-w&?$Rcgd7HN+6pZ%gk#D(3y!)*@v zgLr1VPredCjuww&M^cY|083bX5f}~`~6OX#wgd6mM3mXVtkc4 zDrGeyHjkyLM84B_feg3MyvDhP<8_p(>fa!%Ww9ALw@6=Xo_o10=*_J2%lCA~K8-FO zIRDKL--2ddU>l&7)9^0+LCGm_`z_*{9QTL4*`3U!nS2D#=UAc9^)UVp50P<`!2Ig= zyTh)J>|JJ0vdl404Ufv8IA{chkHcY4@IRIlr!rJFlHnn;dk2|&vpKdA-9e@;v*Xo> z?we8aow5b(=3>P^Kql9&OD>Y1vj6}P07*naRH(1-OGr)!v&Tv1s?1gcH-HPeFv}i9 zv+vy{6z3eIQoF>JW#QMaU!R{A?|o>t?!)0AkfMR21Hdqw@64Y6JesU-XVLx^%Fm;@ z*#X)L^C0?GauTJyJl$#x^Z$~b>|Pu@y*z&sx}`N*-Yjla2rmqD451{>g%x4!T@g)U z#1j5J?QFEd<~>hJF@@ogqGCzTN2#htxw1BWoFD%{_i?Je>DZC+o{Df@X-)7iQ~laL zU4)-mk>qeA>#(Gh?l!t=eSL- zqx3Mkgr|+8{F2s5vSU}`-(u)*AOAdmn_J6m`uCzuk=~9H`GOTvWZiHowZ6Vg^1BRMkz$HgVo*=$ z7eoUd^J~UZbDE$5|HvoD!(q2Sh_FW1SkZRCL&!*`$BsGL_hX)LathI}cDvL0G@j1# zzNT|Le*XF;)8>3WUoV;qL_F6~RVP7N`<;fhm3n-C|1(}LAq_~VPY5MBN=Yu4la#z; ztT@O^(98LBxePKHwQP1az{jfjtlcB}PKuT;EgEH%8EqP}Mtw8KzG&X`sG~zYNoKxX zMq_~&UZ%;nJgMW0(J9&J68+XfZhZg2B)fk@jrv;i3hJxON&la7^NDoO2=aoAGOx~) zbFW8jE6NT)IEnQsZ-p}5yCk|Dq9@HLq9wI`wK}AIAgI?4jYR$Vp;xN@`TKIYSW#hD zH*zVKdHCp3J(ZBTERtOFMRpNUFBSpPX)C)%&YA<9tdgl}RMiq77tR}vX-{R#RmsXo zcF|tgAbhJI4QF^ z4rxS365LNA(`cVX*=`Tj-%>iV8cKJfyagqvL3uan1|d6Br`u@0eKUs!E+WD;Qih*y zSaYbcZs|5$DkE>r0#)KPpV$~AhE3~ile(3K7S|1!DWRu7<5qg}G<*wRPu zLvOZ5pvm>B&T?`X=&nxj2!n(7!Ndp!$W zZS(c6`8(Vuw`$3P*~^(lqz^*i{cECELX z=LUCzGZ8~)d>xY20t=&f!DDsFdK%Y&Wk`s?NKRf-p6~DP^Lb2YY>jj~XLh`;kH(jv z^bA^`%i;iU(7EwkUQSKN=||UuccRVUUqz{50PMFPKod!6R>osmnh|;Y@31oDL2e7h zh;?HLC65L@(C4cI9_>5l;e83UvH_k&Iia2TiNc}AuNpCR^P9xUsd`3pecj7l-7@X2 zkx7rD3@XVrZnI%m-i=!0Oc}7(p~10CrOnaox6!mlmRVrZXFDFH)_xVrSn7wBZ&h45 zv}hcHXy^J{14}Q=@uKlGE%k-R%STX^SFNIReH0_~JcM#W15dOUF5lr^G~+TO=hpDs zs7+Ywg<4YAqRp52Y&ENl$xFe4s^(sFX4iR?od0_pxwK1?+n!cXn*IDal$X$STBJH! z-rBd!p5&Ueor{;yN!sfuEw$C1C^u-`M;RS$_sbRWXsG?ExPFh5q7hkaNADt=q?Sov z<`pv3BfoIGVRFwtJT9=ENv(cD|Lfy}^iL8Qd zi_+rPufKNvUYkky8offkm*3T916R`YZutJ7zjTq$5FTCrLr7B+8{m>qwJ-XpUIcu- z7IueB_5H&^Qv3tFs$7T#3T zT1`9_ZcF!dXmLd>D_?3K$Vp7s^Ug-G-q6sCY+XHBn!!P7WIv2fQ|8GZuSHj;XhqhX z)@_pF29t8VA1x&gHAZW@#UD#HtH~Tnei3&_zIx*Y0Tmgl2!3S8*XwY#lW@Jn=k?UD z-X68YLp9J#B#C%BGU=-P2fCSPx+_b8O?b5ni??`WNx=dlOUmIxr{%|ounyPr1wvb$ z<~taCMRPHDK>mQ}q2I-1<)gp;`hW6m7>5glB0ESuOf7`+bbDCV$nTP#-5EpK)XvPN zvo2XC55_VkZ$Pvn>e5b%jp7~ciYV4fErz}+zrg%Xm%(ml-&+>02dv9D^-GarbCK+L zG~^9z0i_1bo$`mEexwoIMCnP?55f>`qq!II3#({6khzyPqFjEMWHdpo#F>d%M+mN(qz3_M=kZ) z=;#evl5z!m45bH9qGr`?g3~UcGi$qhd40$KKTgiJmFGR4LC3eH{4hF8R?HY>_A0Sr z`PytK{6=(1@Zlg0n zi<~Cp+#T5M+qBPaZuFn8Cha+L|~xkO~G*0**< z%|C0{`_b?Uv?ZG}PQ!t(qhuTRL*Kp+y{lCCJ2-aBe(CbbWiHCdO_XemjrYWRe+7vv zU6aV_<5r-1v^+@Cs#wCmH>mwRy72F5akhSsxy_Qf7gCY#Ma#zbG-_`&tU^K4 z7C?#F$f%9XF>g{$u_u2o{W6QjQZ1yM|KK?e=W(>&H}&6qIiP$W2R4J>9%$}a<-2a6 zTVB}mG>JS$^0x5r&A0XO;WcC)y*tqsoG)h)AnqfJtm@DUj5v0Bx99`+!L^7YNjYCG ztfEXc_UQYIC^I0GR3(S}p^{pWhjx5`ih`h5mz3l~T;Yy;4{KyebC9K{f*wH*u7gIW z9ftwOkfU1tb$V!ka1*7~gF>(J(EV=2MJE{Hb+%fXP*i?0QLL0hUOw_sE7hBZf4p4J z!*z&v3E(44>#O&__HyLulS`9;=wxaKGYlx;UcVJ_l1|Xp*-^bDg(Wm~^9o9HQ~iDD zR*X*-jX9vW-RctQF31!za|Zd6%he9GG##iE zswnF`*Vke0W!p9k?PY3ze11YN669=uK6kQQh&W&eZ+irOMW+1s=_I8)LZAS>qt3Mu zjlNW!BD47O<5T9LXhY>c^7~O$9kz@}vR^XkROE0#00tc6ccMTQv51lyeDHkfrDf!+ zes^HCHq&V;tC8eo+YHR$&a&2g9zSIkTT4n4b=^1aE2zoZ5w0*K)3e6LKFQVuQGn(m zO5Lk!ct%mbNG)QT!?ip2-{A{4hN4lqV~MN*1McR`qqg69)LnNq2J{a^+1D;O4F~8~ zqN()?ny(@y9&r&(ZMzX2)4F{Zn$3eYp_JCTQ0`-`p+2d5zNMTm!E+RG=|PC$WJ^DV z7|S$|$>^%WP-RccvJirEpzKzLQmP+E!(C|lCAU&R{nrWgjO@G7QrcVSxQaHdF)p>n zf60ZmYEYu6DE*H@mr0&O$<_wlNBiCa+u~rBBO&QU@g7eKdmBk?iMB1SXLL8oddk>+ ze8_gK*P$d|S+by45aIq2|Ek79n4j-&J*Oy3e>|E;3n||DEX?~LKge;0a0`AIE?sxY zyH5x)Y_+IWOsgS3UGx-m>A)u>?SkGh{{H?JW&=u&qp1xfBl%o72#VqiRWP7ns*T3Y z`au*ZDP=;bl$VfC20ijV?iv;*y5#Vlt+hh91f*S>02tXa2nKRN0^{v`qogt z=DZ7~5`JvH2cJN5Br}f|8-=@2J1pA-zZXTCMX~|Xqw&nn#Vz(t)Hv@k55g>Uc?p_G za%~bqj5BwGw7(rnHM&OnmE1GQThKg`{m^;>r5c_6d{LOW^sQ?Rnr`3g=$2B2MO%dM z0P0rJjB;K)%UdCYN^F>mPmD`d^3esCpa#A6t^W0&k(j<+ReObslo%sdZK+{n9AzskdTs7)j}q0 zs+p_Z^XjMzxO*=38n3$d;u5;vrRolN<>iFo1Op3?04I1l z)8)`IT%kbSU9TrmqV9Y3re%sr)uf7MWf<5Lrnyq^kN0u>95qn=RYe{LRhW#*J&$mj z{p;cl1u^pl7gP_e%TA6`s?M=oN55Q5v}@)93cEvj#n7@CE5HS zKZ*J-dk{5)sCAUwKAli%(DiQ<8rx7;hTXx0VlbcY?B2AICEh#8eBrB$&Q)bTP-5j> z7tNLG6=)gWW|f-9U@auN19g)qGQOaiZ!>CT;3j3v>(`>37mBCRwnlCkP@2n~`!>$6 z_oI0_|A{E2iRPN|KOU`GqiGyZrW87gf&)(TNV|I}8hkCha1*}DDC8eEpe@O4CMKd1 z*a>5fG6+*N*k(K`8=+ozU_l~0gX&TAiUve=q7D!R2JCK4{S(ZL!@1zFT%r(`V!-ow zT?{IU4@nj36H#Uyr8VRTVx}9yjYyi%UgTz%Q;8Np4;RP|h9G*vfO{Oq;bnk1?$MkD znKeukZ39jVc6FN_Tu?Pv!kX(;)d z&8aE0ICf-XHpgN+Ips-D!mdUA0bIdE;WQ`8u#44BUNaSoT^Yd@wH_9_w&HQ94zZ;- z-P*MgwHN+ebeW`j0RJRP+fbUk{2J6|fa52PG!B`&w?uTGMd^7GS@hl?2p4{%2yLwe z(mMGcg<6BW6fMn|`Pf@%^zlKNv(R@6sypX;M3>icLry41hrv(zB7z3+SQ4m9J_lsWn{@BHpF z`F0)U8np$MQ@w&)3GYLb@~AYOZ^=+DptPvr4)uTJa+e=%T-1BnGbra>a^YKg5z77- zO6)F8dSxbo74TiCwV3bm+i2c28#H%c`Zi2{X^N%)I#I(GG;BeiA@kC>N;1vKMad0& z8}RYtBzRf+mS-Yp+(Fg_Aa`7%9;WL(`1|qu>-&7Un6D~3EigO!kk8S>Ngwa-k zDar4r@6)#wU4yajdUg77I_ZV-{Z8~L-``*7>%}ZZ$WCB-B}A`>=&>Zw4!5*e;}@yr zhsA6cRfzQd2P1l0>L79-*o$UC%vn# z^X{ONS?6Y_wi~ia=*eH>n#$iYrihgSh`0faQhAT!izS(GuBp+sS@H@;k^p z2Pw*VtN5$0LS2o1Cu&P{-cq~nH=^Bt(LWhoCga~0%{+&zwFMjt;q7SfX_X62%5z-b z5;{XdtREwnByES@0XGfD_qXsEU%G?CIWUwQdYq9%1dQioF;pMI7M4ty3RrBMvj&Kx zo>)1Y?2oHgBO7ywq3v-x>5)V}F&|f5yy31k7MDv@Cm=G&6*`h0F1eI-v0L!?eY8vQ zdNR@*9vod6a||7?mOXKs2Q@nN8uin7n*&0toVxT zCK289u7oA4LZ2aMKvouKh%svZdR{|3ZQ zKwvDZ(s;3yu7g#Wot~NOJ{MebSwI7GiWTPrPBkKz)bj^i16xJ({Gc9r0&Z)?{B?oR zfwaTju`9k%2R*u*YODft)1|p+TaS%y3avn~HWuVfa>gM<^g#QMqefDJFP|Y)ZO2Vh zrj#nQZu$o0`ol&=HiK5(_Zqa2%_w<>O!?k{R^5?r{?#Q+Xr0g>N3xszJcmx-oFyq& zyi2aM8xcm09*l3uU`isgO>R*x8`2b=Y&nYN-I_E6dbfu>MO7lbO6mg0HWLKJ3P&W@AxM;Eqohp1>jMD9Ewh${)e_BZeNaOSHOH$f+Ia zz%m3Ly*1L3E?|UxStMlHc8EVn^VpwqNWEeQ@Dcp zFfmz&5JW=aN^TF-gI)-i;EsI;7QCKZTSSP{W4{#eb zK!sq&4d#UE8jme%bzz&k@eo`iw?o75%~#9gK@}$W1OVUxEj*IdUj_T5vY2GY%8DjACjY*_e1$X(b#1N0}*vh z+C^tI!R-z`3}{pnBg{z->o}ygFmo2$-Rwt{|B8saCie;Ed1y>N@a;oLA*~8H_QBg} z?qY&|9r0Ss#6N~VaqD8)o^lU9gtGg$p!KMDEy^os`n*N+JMNFltH~6_-@hHD8l@MZ z?4Qgbq|sY`bbmyY(uFPmHBojS+M<^75?V7SCDS|6D3CQdY=dTiO8C^{7kjUQquc``2^t zc+`J*7rKz?651rit_AKwtF+VKT<6<-TNS!VjcO*jDamsv)o3A!oAV1D&jGF&BF^P&rl zgkCs3U(V)57e*VsvE#TfHN;5H8pBytFX}(X3|7F<%eRN)0jBgLW4eQ7*YzR?kkpG= z!t~pTVYm>^Hc*Oa_!C&b>{Jf|v--|{(IAAX*ywS$Dp>OotCz5G5H*Qp+Tj{hr=Gq< zEPIxd#fTvC0}3q902iO|?W1QH^W~*lA3ZjxV)LNFrh_DY`u;v&FH}6}=kCc})hPP5 zpfo{w^2b}zQY5REUzq%8{sFX86YTe|9)66P$G0iMIsAqtr?o z?;WCn8Z}h|CBb_sk5fuu$!=n5! z>k~^>wW(p0S$RCDw+Ec?Rp@|V@x7^4dmO)|{HmJJWyFGrV9imHE{WQLpbn9yIH}Fq zc`%>qVPsr8#br{0Vri#>4ZVG-w^7k(0aj&$tYgwZ8gBkzAz1ZrE4hrYdWrgiHvgELWZjne=sf9a)Gsp!SyuAbN&8(PD|&WoPxxe>r0ZCkWlHc2C)2 zZ>sbmHh1>b)%a2M`O-F&UxFs`O(;Ep);qhQ;oW4)cNT4T{QBj8FX}mjKMv(0_4|WR zDg$E{oh9S3kWCB}x5&kK?^Bdw_;+&Mnp3XM)T`(`Y2ruA8del$4x*V}E+^TsJA?qi zy&CO)5Fu7R6aofmk);njyIl1-(-k^747H^G>kNdu}Y<6?VLdNY_k zt1Y$`{ypCsHkl4KDKbHr9h3x>PlTJ&AaFEV=n=b?Zr-}g{g?f2u}M(upw_(ysgC4s zXQDnuZr`CRq&#Gi+j0L?_X6Dc(Ds4%V}{m8N+^079N7~01xtFf)X^~SW(_QA8z_ec zQ^1&B%C?3snh~frD;q=9+Vo&LczU$-phwdf^KC`Gt;*P{xUbmeRQumUa|dYhs)_C^=}oya#!-i&6@ocUxY4L8xbzt>TI0=4+(@sHS+XmBCRF$d!G$bQ=;l5Vt;fLO`OZf#2|=lK>9YUWK{Di zcaYO6NFQjxL!EePHm-kTiteQ>S9s{6o}Bn8uI}~&Zet%t8?uO(Yi?`g7ePKyeN&&P zkW`NV(WxR7Dr(B2#{>Pz27=!I8c3u$-Cj-+AKDJ;aVT+A_Jp{|1zYaM5O12mLlGjf z;M#q_c}Y(xo!Z1$1|zcWY=c0KPXGWA07*naR7nkXcFpT9Q82|g?y)UA{dH?)fDAmnnQ^JqkP#aAB%gJz)w4IdVB|#0PV;8A1Pk@7m zSyo*rxowH4UsB2jV~Mu$gnjYCB;I@7Cu8gveL*MP29R12VnebB*Zlx(t6q)l?EpiV zlf%_mIBksc35x?E<|JJ;k+2Ircah6cE45LV9#!P+z28Lb8qO^0hVcxU{I^DK^3izj zG$DP=_E|FCctVMXJi=|2Y9tIeSot0P`AXuAsi!%ToR@0pW4`?0Yk`wFiPziz`6|3 zi*yzxC8!@Qi<%ZoqQ?c8s@N2T-9}_5G{BT9JnWRA*IYy=p_jVgxeNbgv-Tio)&m8} zfd57ld^_*#!4X+Q39E?vC31ozbF(bzn|RvNNzaHX1eh-G&BZ~gX~1oji?VG;X()p1 zy9bXsaJ*^Duv6(nS_9#QNi-`onms;ztJVYHCrF}qks+Q_%9wlxT_=<1=Z>lII?_r! zLlUi_lS5n-aM*FcEG;m!Zj;>r&OkB0?}!!u4C)3<$kHoMCbnUnd{-p-*P@}~kk`?0 z4@qHjH2APBR=h=J4|U9TEO8~kyY<66P#KNm_!z2_$vfLgYKb?ZwyID2*YFpiRSz0$ zGb@#W--KpyYDi}sH*zY}hkr*OHRza7PFrf3>_{r|5aE$%@RTc(MzS$uAs1j44KDmU z5jm7HTln&b?z2g~4K0HeIn_6rkU0eB_pFwkt41Nr?f3woga$$~kIbj@g zo5Vj-3ZCtsMSVN`G@0v5Hw2-%-ZW_e8|`D*EP$!!Bp7qQ+lx3d4AF>Qg{22!*bjS1X7xrG?x~Nq6zjz?Q7!7dreL?Qt{S<0 z7>|cNR5z#rGqR~uifgq!uv@o zQY(v=LRTqymi*0*iK>a`P|s^lAEveEg{UtW&%OK;DDxfYzlsbs$!WiwMd!bDt!Mk9 z368z*i+twE+lEDh?*lBZMl7{{q@{Jr5^dK7k1jmQM_l#pA*+K$<}2o*p3IFKGhN3x zoKLF7F-fe3V%Z;zT{8<3E3uhnLj*xTo=8jscJIGQpJY zEX9$%+wlO&%w;4@Upd#>PKSZgG%6<>2N=K~iMHx2xvd@>@Im0(q?-rHd_&ly7 ze#fSsL78im$&@!565PnJ_-&JN>^rAJDQK{|RNvZMO;_WaQl&#eV4C~3PT7sK((`L* z^s!DIa zgWlwbh8+ZU1%HgtZ4it(I#}Z$Y)yzRN%Q$2`MW1&#-vE6tHxu~{m%jVy0~kK#=Empx`rRba z-ADZJ#6~ z(3_>Q7RVL6pNu7NDc1w4E!8aAHL>EGZ=FA@+5Pv8Xl9vKQBI`|4&^*SLd~ka5cS*+ zrO|5})*H|~mU4@Q2}&29iiU6(YSoE7zK+%@R`29&^0rBF zO)i;E%fF7MC;Tw!tFTPw$1mf&5dMAs+jJ9R(A+wz8)TzaIR?YE%DPu1%{r>vncL`}HkSvt z_4;O?DYIPxGn8Uj)DBm}M>D<3sLe+slQiTG(!we!`vmuBCbD06Ih9H`QN2`aT+KK{ zo=W3E^%@9jj1CD^kxlj4>;}nj-7S0_Za#8n!FzStl)jVXv8WEP|GSYCCx6`9Xf)I! zg6X&FMh<)+4SaQ7$yrgM%_L0Zc(pio>oxK{7{Yi1g>gaLcgChe#|_m_|(99szo(ZvBAEXD`EGPMC=vF$8|H2&5EzrRJXF^X1(R8F0SC&3CQUNXaqr|y(f)hr`v@R6KZjA!y2p8t1~k-m$h`BTgz z=zlh8RW{FWobGxXUwuEhgXu}J3^qoA)Np;T zKq*@#PD_Pp@&MZT6G3Rz9-Ti;+>6?PUip^G$?Jva%^vLBxOy>43umk3!-JRmsB2fdM1AzwH>*r zT8(G35?UQ?8A(-cQeGr;Mvei#jZS)hBT6?>mvwp1IBH5gLQ$ZRKj*nZhSe&}blD&K zaFjuLl1!dMcRqM->&QGxzONrgsYX}EnO~;cx&1ygv^o<1cZ-JB@ah@#2gs_M@{+m{ZT?7XP2}9u z=j>CH<<+9{oK7}G z6-L|X2R&?mv)Ln)IhQ~+^;AC~3`&#@sl?-SF=nIVxNf8aM&hR-9!T06Rg0p$Lt0fe z06dXet{}n+w$&)=HLn+hbC;xY!HkAD59(OcwV<3DHzgMX3(IJ{-34KgAT}K+9*M>z zz~a=fxChOJO#IDuG%`sEC5y#7LD?>t)cI!ejcDd_t48q)zBCep7?TgJ4ng*2!PaCy-wdayQ{f_(1+vU^YbrRRQ?uK>M-OFbEci%=N38t zUQYfRJNl#sqaj^mj6w=971ZoNcHpxgMV!vv2lPqm_3s4dX1JLFzNbUf7#x`fE~UWH zEkxUZRICt@G!SDQKR%9qzZWs+>2wNaPoS%hy_M~@wPitiS}ZT1SP)^C^cXNjoNiA;09`%Q1y4yUs!$56Br%Eb@s7#q;5&TOuQNGGQ*!zwskwW0T$Z|T>U1rnYqbal7=CV@E4+t6_*<{4`3|*ThK7u z3v=9c898u?`3MRF#5Huv_A}=R`v96XWT9E3>wJgTqK0$a%BLLE8k)u@qpikCA5lKj z1A#9(Zb*8F%qz@fRFyY*iO=MU_qc&JNg3(*_M2#(bRF=_eH&#db)^cK7crL? z`@O6tjgRFebXw(Abg8YT=(Ov3QXO(ar=~Rwt=i2AH#|D+ePidS5r(`9U4MC*v@%Bx znR@~!!@h8jc=q1+C!YsB#FcWT$Mr*~Yn#aYnsHb4fCxS*pLzOrA;;i;9-~ryW~lih zrR^uQkITX&n>nfA3sA`N74IOLPy-na{%qB33Xq@7bn*n{$sa$7Ze6>ZS@$z!T2(8O zs2!{|_%ie-$;mRk361ie`Sta+O!;_ zA|Vt-WcoJqshD`>UsHc_u_eqGHd4MRg)z*p9}IC)_9;9?ZQqKzmJ+9~;K(2qCzxWU zBoks`3Ac>{LM6o(2zFc>vyLP-h3}M6$TssXr7Tx{pvOs1~K(H<8&5b^o6P0f64|`Lf_8R?I z#p?%AH5`wU)fvt+<=bB481Dr^1Y^-0t6{{)$H%W)BP4-R)u_O@6@S;yl9?q|+;)dN?F)*aMQUHcOlj?W7Xk@JY+gW+Fo1mGH+I))o>(~F7*-$WzS{%t*P{~(QJMPT` zqm*HIH!(K+6w4wZb zQL~{T-81#mzhOHYlIoMj4K)63|5qfHc^8QHH^;eX@LdW2Zkr(2$F>)cA>`m9z8&(D zS10?Uyq5l@%y$rlyE4K>`gTM;V4C>ebcx2JA~?HVTt#iZs_MV_(7Bkr`i>+{?4fE8_2vwgeTB)pM4gs znZUB>%%L7!LMgXW!^S_2-p! zGwORGIFu%6tZ$vpCY1Tcw`se~yIzCRLuh=;IeZ2UZ$Lw;j(IF!L-SsiPF^7ms#%mm zZK*RsZ;&B{f1gEj`1b}4k&Vf|DDvXGiKLn(NWb_lT1ScU31AtW`LkR0A)h8T}mWIu! zxelL2t$sWc9eo`w9s4^_GrxEob?vrJ=GHShrfef3L_Tj3O|7>P^#R_uqp`pt{L!dQ zG;3jwS5b0P6x7c#iUXQc52`3Uz|l&ykVv;3W4!kUMXISE+mvlaPxGxy6=qS6PNvll z%=vN(Ltv33t7$|R_WhpsdXN75Tk_mP_HTAzod$G`$BAAA*^rbU4v^97$JgOv(m$1b zA5@JZQfWd^mdo`l9L^EimA<>E_ff1PDnM7~V9ITGXLV|VKGTL;YSRCa1n`0oiyq~tqPLQ&!b5ArGk=_c1jqfEUHXWJ0I2ANVUJezeF1+ z=^Q^lcAd13I#xYj&r-{yYNbR07A!8dx*Fm!nPS+ewtpC1p?zXyQxB{c^$e+v18Yak zYmg55x?V4mw>D0{lU^OvmE%R7FKKW-GYIN-BwgC8o(+R)RHfRbSH;p^Y9$4`$iO_E zW$QTR_2yeRs#0ppe3jb4@TiAx zI@M9p=|tuxD+DLYu*RXZJI|7QKT46`(4kb~z2l_7NwyW^y@wR2IR}TgFwVC!dYq*4 z*s}Q`I@W&tLPO1Ps$ROa33Zt^m=$Tv9)@dyOLNxXX+}SZuGi>QZS_Z?4l4DXqO;^P zWAe{Lt@^jVjZd0Zk^KmDfcLSEo&F5UycR1ym;4zL{QecISqIli52MjxhC}0&Pt5kq zVzyJ_D7)gJ=rw4ViT6J6)@bmLqq$fp6@@yMcwOd2H2Ex{Nq5_-TfUv3Mfh|7w;>15 z7{|NNF`@CmOXQp4C(zVxWo)D=_B=}dTt+1dn*X-gh`bQBBRnTl?+IGMzf)Z7e9E(E zQ9C6xib||EH}~DKOK2Xe?pZ`Sw=C{E`< z3p=u_FHN`aXVCl(SB`L}D9t@#1x+KN%6B3PBge*snm4NoK$PEPm;5XmdT6>;B|LjL&L8=cR`#b$+|IbTR!wXZC z>(6NxU3i{Br!R;4!#|FkEF%7ehf!O5YV7SKryY?}G44jwDJA~lyk_Ov+V2{`GcyEn z8MVdHIU|ZWx$Pz;(==Q;Hc!#CPHjiI-VXiNOH^53K8%)Hxb0*Xwbgdz+f8UJM2)&~ z7SxN3sjx>hhdQeC^A?mgqnzN!(bNT7NJ<0AZ~wmfKZ*KIc_T_Q?9Q`japUCBJVZU3 zKeYLxMhPlJHV@$HGY65A&BzFh#HmlzTb+RW-pe7ZUvkLK#N6F}P{vwUK49Pguv>zhW z?oC_08&p@Jg;9HpZg;-GCS?bg>rhR7be}56A4m0?g=%-Z?n8b)tL#Sv;jn-kU`8W? z{|+J7f>ggtOFN7n_8%XgB7`5{rAJzW4{UCmq<&BZsb?XPzZ=H^YZCQ!2G63MM*Qei z=^_QTcyX#`fRzWl(U}vrqghmZe*TKSCdTW&KUhbJhC|){Q1oSb)yUFUSncRx)0|T5 zRqxVS3^;-hFSy~_S@?uKi^l6J71UhdMo!c)S`m#JH6BD)v{P4U+GzWo^yw9{W2n0c z0(sHUSm+K4DWtg_bYVZF);R)>8mvxgx--)a_zlyj*HR()b5rG$8Q!Ql$RHiGA9q3e zjS*T!2dCcO@6x42)#l0R9`4|F>hl$0Go-I~{eB3;2aIggFWGfqSiQg>gACUX`F|;l zluufL;KFE3VQDaMb&pmX7wm`fny82P!qPm)&rj{pRA$!j7#CQw?8m5kU{u`Npq$gn zLLZMA#scIWd4-I;$1EC>#y$O)EsmN6)AACBeEXY|03z>_sbK5*K1?U9I)bf0bhBh-@Xs^rJDP8twyhEt3MOHS>N4j)IJ9lnH%GHUtsZfbNxLfB|sh6X3z0eaiXs*#?s2vcR-sj1;<$^ia zA3u!R9}~38o1op%B=UIYcL6^p?bPF6?&@gpi3?(f=1;hBP5#86( zW*}`vIeD0!L!%0T%1mj{5|w=&?d}%jofQB85CBO;K~#w7zKEKG`{z*R6g*HQzrQ~J z68XEudxvAC50M6+PG3fTd?@+-U6Wt`{QWnA27^B{w=i{EwImv*Db);$MkI~dzCX$f z*Xs^$X*zgn7DWShQAFFp+CiQ{6#zSUY8v%4BO-4z%lPN}>vTE|R}nFLUWRe)w1-o% zOY%^o77KlMzFaRNgNCam3rX@V)8*G^r@R2QA5bUJHK|Mi!2Yrs8L4dwE!VZGH1=pfp(qtxZF|BzvJf+3EyiR7_6tDY~d zNOlKVO@c;Nr(5thr>0$Tbek@p81>5}HNx=*rL-|( zqII@6nKj7>pJ<$_gmtDxGrti}G>iE@PEPpA$I)$M;R>EcTQZ%5T_4oad4GC*AG%7; z)abux_^DX&8&OxV-;CPy&yvvYRz&yrp`PRzY5YDi#g>{4@cs-sSS~f%MuSh}JW8*K z75|f{ZFV*P+~s@y_oKP#sE#Fm2MV65U+%$oqcK*zM~zGL(cm3A;Dp;XC+pl+HCiq= zq?B)?HkI5VE|+<|7oI`4^k6xLlM8y}tFQ%~C7YJaWI9Pzr?w?BDGcHg-L!KkN;1#6 zMVZV5rDV4hjEQ0w{=GphH_z=f3frOTw(7aXNLC!D5t$OQt6qJb`g8Ok52P5n$xizdTx$W z^S&c#O1iA?McFOx6r8u*TPQbZ;vvYjfM-^MR~sZWmv99&*2Plp^7>H2xkqNuT>V_0 zd(cp$G(l+=O)kjZi{`@SM)RFLMeC#@xllo7m)NauDWk@ZE~8zYRG0qN$r71&&hM9t zMG5ViswK2rLG7G=3ngE{DN6J(np>dDO(*A&gF32G*|9at0p=SpN;C9mN)({|eqT_| zr<{^9Gk3G39}MfL1rJhH!TBr_b9qEot@rOWVnmP1AYUj^+N970qH&>M;hHoA0331z zigD0Jc&xfwxDJgZf|D3U-H9?<@jwMb4S4eytnQMPx|6!9#9X24xZC%ipT8h0S9=Jx zI#nl9S9?SWAw|)c7Tm!}m6pg{ajS*{kD9O`qzWRlsC%XHs;+nj$noWo_b(T7)1?L% zal#=Ch)R5b4pvSatmKTK_A~eZKUsr_szXl{_#NpX@-)6x4aCm8ipgu>^i*J@()@r> z83%$vE$lY-tc_s06)Zkj_D0h?>Hn#pEHtnhos5V+jb2j?y%bX8F$_q`qI&e!sw3iR zS!}H!#n_vcWgM-oHEIs}8Ane_x&iD9as1>B217yH6b-BT8Vw;6cMbKQ8X&hv16lk} zcmvab;fO>cY7X=C!f9u*HP(zXiLJ&u&;nXXzLft-Qs@(DK)%|*(`Hr^WSAIPh!fS9 zSz+o!q81q=z@p^fzd9KD-UhiZ^AIzVe0v*^=i zKe_2kX?J${&Y-^XtNA`i)@eV5ZX?sG_5yUBw4bU(@>2g!G?FXd)}!vlXj6=T1zP`6 zUbcUo1ZM`tzb{5@ApHR-`^O6?^Np6wSG*f##}s7+hQ~Lc@e)S7)e+Iop`C3gd7NxR zxkkxn+! zx)lG9DuDpsi`oyaF(c~8ZkA+TBVG4#n(VQ@R32X=&p}lv#s)j?Yl@O@C>vVkPj0{# zCAxunh%*m9LF=cw zPSe&fGWVMOUn8zuK=V4_v#!2-5?v>oGtNZB+Q`p~@QNl&Xr0swI{&N-d*ug}SJ3~t zrz~*km+%UdCx84#v=lf^q%s-(sCpAR-TxfQe%ikT{c}jF&lnG(WE(^`3ICq&CQxb! z+@w|+**K04#ktM?xg*}YSK;1;&XZJ)jk{2yva7XZlI*;M4DLq5EUJxZrI?~r7VaM< z{T7l-^>TF5?6=W8SV9SwzDA~E*eH!jPLkS)=C%r%^rhZFHZ>Ywhu$uRC9q0TX=ayi zsJ)$1H1*J1e+cS+LO6G|HOS%LG1N8mkwaDLEu_Xnf_Eh3lH(Pv5NPC7HM2EvzG>3{({@6PD792{D2GlB5m*BuSx3$KTZQ8WbfrO4IN>(O*`D( zQ};?SWp(Oh9=hPnOaD|?VCt)j)dAOD1lU6qnFqBoIe(7`%z#MU8jR$8`PQH&>Jn;) z7#kY3-eQV~ESsTU6per+V0s!9LsdJFgI{ny;vwF(4BGx0P(+I%UrKVq^s0_QjbkLA zi;NnJKyPRVLlDHtfHNtk(@Dy67Pk4I771isNvbj#tWAzb4doJ@k>RGTSq!LB2d=&t z5i$;l>wXqJ$93otm0n6K#giY+)z|?2hvX=VjWJwJMWKU42Fy4jo_UYab%C#8J$z!~ zjZwkS1!L`XL|rbXv6E&ovHD=jEn@v~*CV({Kp^@ceIQk5Groxzs@U{@>iA0rCylDT zKwJ{oqo~foj7U!BZ><8U2R4y74LXudo2Gg-$S81I)0T*2Z32Cv-Z_9nEv>b@X*#f8 zjYy7~l$uZw41;vAA>{iJiPRGXiVnfKUHsSTr;H^b$JK)4`*!551VjStYk%CgZSvlo5 zntWeIhWGQahHfTHmG4Cz=lrASda2%t{wPVW8yiiH?nVDyWGJ_kwtQ1U@qG`#x7bW9l#@EN0-%7d~h46w{@sFeTlVKwn?uaD6*c#hWN|83w0De75DLiMW zf)$6+#fl$`wP>mE6KIa;Zlh)s$~=#{#W1A(ozmC{&57V))Q|2o)O{b7D!&AE2hRwl z+Lb;EC0a&EqsX^ag{H4K?>??2bB=Klna<_Nda*B3M05D}2DR~H7BjAcd~XrO8=3J3 zza6ijxo8f}zs&wU`^yr^cacu7?4!u&9~{HK+gCivh+LX{XCar8dKJ3$K?j7adbb8J zQzu#u|2|3Nar9@NrVN?n#qjU;M-ehCC3OpJ^Q{@1DXAX9dzbWDYR{qk4wU&})UOne zpf-G0(b*S%4_fLIeh*4+pwEF%qVy+`oYwR^&|I(5hVjaLaHg`{kg{JwUvkFMnNVx3 z#NtnyE~TDc$i?$7--X6kS~Bi)4Fhox8o30b?EPt-gODGpBWAbgajSMMeqhpudk7iCQ)GYp8B-On?z7B2kC2C1usRc5)G0Dql zoI7TX0YPwpbX%TpL}<`g?E=0-)mze_*XLDZ64Eiuim{sSHk8$ek_hxQz6Av97MDW( zOkG4$uc6ct;9Z5|Qh1R(n}er8btj0i0HYFwS<%SxhvNaxmqhDxR#Si;aotsEL9n7x zX9bt*IjAyY-)XRP?U8uztYf?TFQ{Z>=OYn&YjYv&{2mG!N#XnJTZGp;*p9G_&-Ra67EU(HhEqDCw*{?I@ldI?dI+G`AObt!)~G2&G-n(TLf!NV0;zYb%h}XC zFj4AFxYTLP60`n6fv?vd;n`IIb3I#`Y3z_*-4xCs@h3$W#HFbQrE2kAy({2s7=>vj2&Cnba+`r z80%C7l~Ju2x>Pkr8k$84zt`evzYs#-U2XK+A_=D2^aq-_86KISpfin{=udENhBvS? zv?E$(8|`syXfz@XM|6cUQxAv1AG}Ams)V$dQ(^;VNlxF+qjAS&8$T+6L>0|zO}zRF zk&~HcwWy>911PV-oz3@UB-PLR(2Y;(51wP~)=-z}kD~NMnV&>|`1xHU=Y50!Pb2NY zZm2T8DA+D5l#U0xQBL%uC<3BGR=X`^&X?R7bs6Ov4U=zaBl^A$9iuI&2{(BbO`=a`z6-Udh)sQ)zY0yOcfpg^ zY7Fku8__G#w6IX_JNx&wXkM{_wxiCYxX|T$p`f`6Sp+wo2=-WKkMl2#|FzT%kla(dy?PCW8yWLtrP!90jMf!kWqc9g|1>`dgY! zDr}bJTFWevUS;yWhgZid-}?3)=*ACcU(1UQ&wj}5O{*4N$@E1i*HAMX--7zl8GqpE ztYC-ItI&TlxzwXf$&55FsrWZ8qgX?|)}0*}7+(*~a$1`$xB1luvp3O{3g^_PWMUxN z%KBnVP@Y3e?UqRdSz9D&iS+H`25oRZmey-}VKd1tue-?D_{})sx*_LKrb(yFqRmjK zQJO`$ww-Twlsr_nkaZQNb74DLjf98EJT~g4cmeu6>8HjzYR2DG_m*Ld2Z3V^bK6;dU^WmNTysts^pR{ap- zsc3B_qqEAQ&vulO9AO_I0&6yhOHzujudl0yTkjCL1P+yYjcf9KI+?x2t}{yjNsUCH zfBF`cz}Q18W85A*eqCU+ppthreZUmop%&(-%2ZZx`4wAC>$l$>c5t7irXK1fO3qm@ zWw>H4a6Dlq)g?awnn73E$5TyL2Sjeo)S`ut3IY6^gn%{ zL<3?y22WZS(%35Is3CIZQhb4e@~K)mwYrhM(-0k9^hE}#`XH}ePH^)zs**!Wh^xm+ zqA8%sP_JcD9<{O%T^;Vq^>C8L8uLb*)Q+)G^TgW&(ntdei7~J@_1hITH5zE;B6*1p zNz;)}%zj8)7(+tpAj*jm<}9p%Nk$l~gt*gclAZY>!x+={?^LBXd`T;*V=-+dX(Ege zRC9pwhkCw-9t2^8gzR-3TH&EiAm|fxct=MNa95_fpVU68Zc&v(;0r>>_vpGE&Ivj; zPHL$`WlfHgD@=mK&XI8%Zb5A^Ve={BRsdJUPpNrQ&CwNWAjxW9UY*9u+P5bg6h!-|E?pHk~r_^`m6%)@c!4?!j5K&1vr2 zx1f_j`*O5fK=S}tL1&7+0cGa{Y7w3GLLNH{C^?iU%0hE7IH>^&*?bO_$qbqV?&D+; zCMuE^nxM=@hO>gsH&p&A6{*efA#&}pyEv3g4RYa4dTu8Z*S2%zU6j^te{%cN(sWr) ze+A7P!Xj##{xslYQrWs9*(X^x{=@jo!|3mNn&!2@PPm?BXxzuMhIQrJb#mneH#=s? zcZYwsNgir)7A<_qo6+1(H_D56VctFG(}TX_9ZfhbbE{(AB*?y+o~pcLdq-MGP(Y3OY%$Oy`$OhLn%d85Ahm! z?)`#pAj?4F5*x4{bN8Wk@F)@8H;_%x@)Af833o3s!RnaGXWBIinZ4hO3IP zyK9J1=uc*Xt&zH6HxMVX-rm#d%O~HW!%#m|I~9W4jY7Rt7`}#oy53YKS~U@@@1yEy zRKH~EKT8`fg(Hc@R-=&f)%;m~t4#l@0)6B=juulyRXCFBZg;@vQO$E5c513(e61<8 zHE{ZnTteug40E3gbX3}-B8Wd}4EfO}lH?@?6Rkn$_UcrOG&qT97DyL8w8AiaeQC__ z5jB$EhQl6y$yg0#U@HSJ>{?(|DnJKC(LO9#WD$nnHVoRUY$I^nr3NLqiK!obt0~gZ z!A}&_4IQkH^xCON{Qrq}1+~Wqx=MM}!b9{}0e-gzvw9?LRiq=zCmXA*x|WM}6ZR?d z6eoXweQCjrlj)%Kz`_$W7JV2s3cV_g1}&lX$)Q7hk@NK|g|WqO9H4U&^^dAnu674a zsxGQJZFN*kUOUiURdl^nr^DsJa5-IQ{96VI2EfpZHfgs<$BhyXfbNPH4Zzye63s86=8AA;>TjuXqiPX(#JAOn^^nU z=Voz*$=!{`3kN?R?|q7L^gOOE)O@`6u@3)krfChCmSp8RLcEbsIJb9@;dRmA*U@bx zQ5)}_CX3;}4^8d!Bzjj%zMiBvpMW-^|IwsvU%I9lD+1S%6jFq9+p_(-;n1%8eX-(= z4@vCgu89VZEpid9$@z%iPmt#HGLkv^8ZX3(pPVA!6)XOQB)u{kJUetYmiS_%@wud4 zL*5k)evZ2?(cmX&=TGIKy(761jb6*{MO`oa7|L}IPTQ(Fh`kndEqNE(wj{fF@Ag7N z+M$7paF1uvFtGyR5(_v4|7kCjLz+4$TW$GcF72UiNEOm=t3MrK&y;qfN>@ zsl~HsT7%ZUP4-eVk1bd)LaR3$G)ye5$Ti))==;g(bO@okH_E=sX=8}{L>`$vn=HVb5D#fWHu$pmB%-ja%Kqw+(7L zu5Cii2AoO#$8XP2)l@HAfgMUtzhb*xw~993@&?pOMRlnjL2+Cxq>Uht*2Re5T2D<1 z$$mTcFVCTYO8`K|d3MU0GsmNKsL{v^+Q}T{4-I#c64zJ~iMcGZgPqlsNAszMQ^ZJ* zg6n+%<@-rqK=WB^5%n8-UTrMEyF9R&I8j_t;_{JEjgyi1H@|MAjHViq%_uxoiD38~ zb2l{J>QW8K_3Q$V>;F_ap#d@~R~vfi{&HqA8$26?_RV-T(T0tUbdAx1mJ_7vR_9Js z9Tu6BEd+=PCgQNM7Qw;*vG&EHx`^c59GXRg1l)N^YLL^eS7%VeXv!PWg=#?%ja-AT zSRJ#&B3u??L`At;loWzPUKQv>BXs=NB5ii+aY_v<5WB-_Mi^&iY+>CrAn-|##cnjm z6*?m>(f@jC&)B6n6P`r@lRrO?HuoUD60v{UK}JLzNw+aDkK)E~m7W?dvBk6iq_!>B zvo(Gw2IH|+r6r^dOOC@(y&0^RFBqI;W*OZTjb>qP#xaHm!RMoP%K%fJ&H|^0jN-2= zUCjX(eAB51GRq6?-&tkS2U%Ye?$K3>o)72a8M$UfgU;DSBj&pkw<>s_F*9&h!jR|yY^UKgAXxM}{ zWRvp09ksbXni*oWER7s;V%5}&&X%$oEpmUXqB~CTV`v)Iv;{R51AoFfWQeGxjs3Jm zt+GC;T%?zxJVDEcMp$DK(ULHi)r?hHgWN|BHFL=!Zvh+8rWntlp6N}M?a}PYa&T?Y zzJSht8|Ki?6m@fGX=ipPAgT)8r6bH;D5qUgIG=L*s8Nn=QR32aqZtY&XBO=fO3kwY zjbj50@FOVh8V-|DmnYrJ(LC94n4Fvzvv%!XG~?jmc_Kn#ck*h{)b%&f_5kbOYCfrp zw}ggCI^@{(NH*v;GLPQLxVZzJ&1DuXjW#8XNd|8mY!#VfHsad2oRoJU+4MqiFVCY^ zY-4M4;+_w0(E7QF&ht-&D#@VpY~`F$&NuhY z1~ip9zBQIIhmg9&bPN%t(r_bUGmUr+Df<-cW@YjE-J}muJ@i;5k+f>zg5&5?PKm(r zSEtb?uIKYtbY?}Nv@~+CVo)jt97CZ!Er;lVdbF~PsTdUE0U#AV79+&685692pUjII ziZNbJ->1{}RS&P}#-C-B%be3I#R#$D@qOQ$xsTlX8QYK@R8o#;dA(VCt$irC{#|=B zb%DK1ehUaGQl~Xxy8f9ypVSu-LFyjNNm)r!GAZ&$FfH0J+U?*xawrc-`w|Miw41hj zO$fP>iTrp&A|pbZ#BQZ(3CLy6eRQ+TRWH3h-aFUlWc;65!7J2f9s{tEl*q0jDPBpA z8|Y+D*+iDHlgslSG}K*6^m;V^;VSE9(Vv2@m-%IAQ;h!zbcUpR#$=PSN9!`Y91R;$ zio4RLZ}E2sahr?3WSy(6=eArtiCPxRXn2eyioAhew-?ATMw`p9jE?U_N6&oP`>0O2 zh~|y}d6OEa-@50wpkzGMcst(vc63avWk&r*JXXb8MXeXo@UD6xZ^w_Ki_ze%mGY!Y zKixzNoO(a3qOrbpI-5}D8{gu`*b9cg0xfNo>-8ek`ek&#w`lIN{6ad1<{`I^mN7&KTKPmDr&CV4T{(c7K`j;pKqvV(?*D;jv z?_uFvx5>XFK|4 zvY8j0Hh>8l?L8ys#*vIWFvnv`+>9~Cy2vq`dz?uull(2sJk|(X(NHOJ(r**gwLp_{ zsCyx@CSB(X`2fldYPmE`_ZUid#9eK0D=%LLO!}QNM1uVXz4;H4JO{E~Dc^sQv(lQ5va39URV=IsaQFbrTKY1`6d4 zBKf%y=h1%^ssB(dao{`ayNpI%lIbn({B|3fOjE+k zQ+6m#&{>l2LhTnDmd0EVFZbKI%y04(2T1M|CiEfi) zipw2B-t`;wnte&V6dirOiKEEXx7y_6q5YEeL%%0h{6>^2{^?1S7Ep5E-i{S-E<+dk z_eMnb$IuXR%S6G^o#>d*JT`8k^jfs(1uD9tm!PGOh^V<1miz8rG$g)_(kWnq&J44Z za`3_7SJ7PfkdkW2yxMSz-{Zr-d(?}AQXl{T5CBO;K~$X`%Ct&oS(A;-RcF3Ux>m{? zUxoU|ZwjwPn|8>5*fYih(Mb0{^+0HIeg@6&7_)sR8m6fIU$Qa`^%yP_q4}0JJSlg- zxzD2XRy6-SOLm*Wzf;cWG15x7kz9#o5@_vNN4LE2FMDihn$&B4STyJxo~9(8tX9wG z$Z4ieqWOjU$jRc8^RoFvbJ;zDZX-Euau1+XcUD+H^PZ=Fn1d;<7FzpVZzQubH(_T3 z*sPvzh=!C5*Ci}WNkX~V(w;{h$xTU&0WdPXydAambmiOXW=De(&7d`Vlvx~_Lp`UF z`)UhHn^8{iPor+!g?dMyAyeb{o#qZSDaIN!c8a-WTS6C7z5}HR%knVl2jMzu&la?v zN3&>L(=>qe{@5W1fvH9i`#pLd6Ba}madv*3BdSNa3tU2Z*3fffd7O0H&{!%Aqg>`q zs9#1xm`Qm(-xYK{Wr$y{TB>oj%yBw|=-#PHY7ULc%gv}pydQ(PuHtkHcAR{hrfX{d zRNs)+5Rcjx5r@lv1iD_||0FaI508>NK*k{*T->sn^eq`yP)pxj!zD{Z&Kaf48JsSE z&!Xh^{gr%I$dC(`EBGEXxcU>j#(N3sW-Co!el6;s`@dZ)^Q%yLTRZ*A4{yiwysIdiXjlt!z z6lNp;2cp&>ccP`Ctl1t$b1&2aT+ZF`G+MlSp;DVr_ z>9gOcTu=ZaKO_oT|5(uGG4_eMLAhqGUXS`pr2|s@(H$Nid2)@`Uil5EHAV0PhND1l z7R~*hn=$ww?MZDlPr8gAK*L5fRbd9bMRF{4-Q%<6e3gzmK6yFI4@@(c!Q4 zZ+QxV*<}k7 z8(@j6$Y^&Lni+xy&G|NHZmtG(t+9?;zhty+$yGG|@{?!?ccacWyYP8#k=9#jJa^|*Y(L8b9f#xcB6eQOb)Cqn#9RB+2e}4V?C4Y+=L>7u) zzyA9Cyh(=3<(d=E0~q6h+`7@*?T=-&ZT6hh3OfCEg~Y#{^TjyXir&hIY*a42>;}>n zw7VOPck8SQ{#?2^famJ_U-WmOJcrVcp$jC6=#+?4H2&SGUpPe5iJJhY5CxPbIHxE? z4VtnD%lY0U8*cM`XsLc$&EAT>k+k0Qow)hi-_;s3s2h|23UrAq=lLH&jpOf-7odg(`feq z%F(H;9RWOR8e0QkAK8~lTP2hnn$ONHTJy1;H8f9H(|4l2k6Ly*ldcDEqbnqpO_p=h zSv#lonez*-ou_Ekk}27uG3wGeG&l9(uxG9oWFt+Fo8%q^uUBtg;tEoEHlen#H!1sE zx1*_$RKGlrQnE0Rx?W;@YdM=hm`folRKW1Yz`(#eW7j;S!E;;g~bsi>PmCg)V zH}@8@njVjlb+V!U#b+9}pvwiO)#|LHvqgOg$+H7}9c>D^VUqCbI~9scMJp(+qpK-b z*fKdY+8;tAIg7^KGnS9@GbLpy5$VQ$e*o)~K5It{&o*(+WoG}nh2BH5D>D&IYmtAq zOJjNI&uC6IIN`oWxkkI3W`m|yZP9UTQD5SG(PJ46HA;7)^Z=Tp$=yVAVeS7yxPkh7 z8#HG`bw4yHbBmf{BcsMb`J`&J^Qd3qOjekZjXy7;%w>`T?P@f)mXTXfTK~3bmQ|GR zM5}3&QRW#GmFnDIhQg`&<9#$V_VIj>-qkHXdco(f|5h4`Fj`Y zYIH9;``DXd!Uz>K3r6cTC+m{OEKOKKtz@hD-XQC*--!PI?EQ(F+^EvFjYg1JgYEvV zz0dzV-_>?irTBp$f?yOHGOO&imREI#ZZRW3An~Xc=rQzuCY>rGu)*yYp|L^wZD`vJ zf9(S)eio$y)fCl1ufkXsgurZwwUuH{>1}$;dj_VH`Uj|{>=Y_LDWx=Bs|Kr^sL5$+ zR5wwT=RW_bGvax3D7pzu6Tyk{Xe7lsWq|nmC8)eUm`Z6EHHu1J#e(ioa;ZDMIBBlx z2C5@Fkrs@vWMkpeJ#031;IEze~;s4lV? zTm6H>ouYK2LsN=WPRmnUnOBt zJKQ3Hb*wrxma>jsl{)N2Lv>HuL>;g)H_%pCI31HFg`DctWpUu98{`J5-Kw^;pgOqt zpW<<#phYxvm8dQ_M0+N=Qr{R6&CKb^+jVo|flo%8B?WewYD{Yt|&N4W#vVM?Ko2s2qs3}k7^h|riGFhQk969d`VM_+73P4EOJA3mu^z4cl=+a8%=+U z(dhqn`*?eMbAN5vjrZ-%3%pZ9;m){5qo%GYiPGgM8j$xyMYsipDprkpQ&7m?DzLe3 zcAxgb?NK}Jb4D?4$S|OiiWPdqTnpD$S)miSl`dmC4ENDg2G(DX+I{p$ZuHG;nAfBL zarZ;ImKp(h6CC53dVIONpsHcF!*EYCRikorlsl$H>jm(&s2YTy?DOZ*lTG-fnge&M z{9n>U{z`yGeW&TYe>#OYG+mY{arlRsNey0#qj|Bk$<$~MP5Z@6d$zf#o79H#r5dbd z+vC-Ux^7st|73J4Pq>z|eUh%3cGaZh)TM82kJ=%Pm4Sa#t(l^TZL0IxvZ6cPL|i86 zX<{QyV+@gw10~^pBBhftLfqEbq%0UOpwSbg=Y^EdkZJPS`UWK09Proj?_|<%E&nc& zWCH-~m`W!_QSDPX*|=DpZ2oSZsV_(wt0+CmdS>_wA)+?PzXPn#n&Keby>ycaTc`>? zv`fawd%%`Q;67qn{(b1le)_owt^J#O%D)$8KCr3HO#XeGbE_2ZK|?j!M|E4Uhf)O{ zQs~|JkEba;_GEguqiBxp0SZt(eQA2OiQH<>(4u}$QA&hi`F9)Nw8Fx4Ki>WEM$;Ct zGiLdB)t%Rew7=5&NN=6$*d*n)aos%+!PKGXb;?c^Y8|we~BT z8};64kQbBRqf$mvhR3Lsppo*;X*Oak)X~S(+EeHWCV)1J^e&Q1hpF9a(%pS?iyMfeNF>L5M+_^g_9zsmpBOgh5OQCDs# zcIdsIuN8j^l@#gbx@f&0Zz`>L8OIbCTm7m>IFSx-C=dEFS(^GZJnk0Y*9t0*0D%2iP~i&~x@(b;aJ&iZngqRa*mwv4$^0y%$> zLQ6@WIH-CRABb^8gVofE2d0vj7|z>{{5$e8(gOK23{-QQHI>96PSN6!Y^kYE_?E66 zxj>V1I*j^MtEgt2d>*($=~jHEB=*AHOV^LQ5|#O}Mx|Dud|aZDZrO@Rs}5S9U#C#c z#@8l1(xd{AjqGf;OPkO6^u>xXw(JA9OL#ccZ$QWyFx0 z66tkR6}9ZDTgRBTZ-<)70A2O>g^3bJa?UixgnGa}r6v+YoHjS@CNpGFWjq#K%W2h-Z~^xm`HS(VpuDucfkO$b{r%u0k0Qb^q)s($wblb?%XUV^G-kXEx+ zs2aiaC~Prf1Ly{tZm8|%F+V;&Y+Q0n^6!wA*8Fj~xB*$%;d=3_EL3WenOsk3`4*~? z)|i5{8;aWflulv*tf%4ur#2-0~$x=5;A zNtJ0Uiak|!@-RG}`OjO!tOt!NvW>Z%*{8sR1UrnzS*B!QR%CaeR^=UFRu1X-6sj7H z&2Aq{$2nQtlBb)+na`qswiyiW`OF@@_aoHuP-l}?{1FPDYlhf~8a!4P$1$OdE%~ze zaP$Y5l;mS(DqrBCIQ^cZ@l9vBxTvx5KFO)NQ}&x75Toups75lzrnLuskH#o+T6n;5 z2dc+!QX#p6G0)dh|5 zwC#6xBZclfTZ(gUG-B5j-D^`SbxpbU+T0Xph1)VZ{Xpfgoc}xM%z?dZET}C*sOw~G z+w}#thw6?<-qxWs>Bhs}-$ZSy){jicY39XlGtcDGJTCu^(fP@_CEAEs*8a0;W^z<|CQO=TKHiOf;RCB5Y-8L_6U#|eU?MYc@q{*^TzWxq zh)HX@40AvWw{b`~QglyWknm^(6*Xp?-uq5dVkKFJvx@G;#aNjzG<7oq_b_debup_{ zB|lMP^v5@+P?64Cq1e%TuWQ{A$~9KvY)lerzKhwaW+N&|Sf%qOW%cv(^Y?H6eEasz zh7U@v*XQrwzl+{`af3fSy+rE2TJtY0f-Q39iC`-L01yC4L_t)tP*$I%#+*tKFSMm{ z$kxl{`t%OC0xd znqZ{^P05Mm)V_q z??)(_jau0=r?7(>)@&cs)>GRNidqf6MU$fY=~U^xYec1BdTQ`w zg8WDQ5I@|bT$55W%kv&WF^?K*TA13u!aUONQ!gMi3$-%o1Y~_mMlW%KT4tFtuWTG{ zYPVSU%tnvunO@jPqgiCTN;`0IgOuTrLLOmoLvaYtI~)c7H?&CJ*-}3EN}S7p6opN+ zWj^lE^6!#M%N^w3i$exBe0xR{4$Hr9atNDfQHOGKOq(XQsI93wEOZa6+%~qjxN53HQ&f#|>?drl%blDxIwWWw+~A_z z|MIVQB_1<$T*{-QwqmWZL zo1*G&ODai`n$x49*U17JQwf*KQB$J?-pQw&nu3aHlx91X6sWfb)~Fd!Swi5vN_U4U zaWThq-3%pGzS}sa>b4otc~hm=Ptf~?0YB#OqxR?Lm)F;CZmmFyhVBvfFVH0a&N&Gx zC$oU`F{Zjs`8tEVo_6tnfi~_7k0b6Wj8Af5_%rdJ`|Z&6a(Q`uaqB>CDdFPM=N5vV z-J*$G{J0|fjN-G2|3F^E3(>d)t$TO)1qqiU-@ZFPomVMzx-NtW>Lotls7ic1_5QhR z^Jjudsk`zubg}=B3(bY~`t9}EuYz230)xY7UZ1Yyxiem0UcP<*{_K~95{=il^SRI= zZ*(!gkBL&BTPez@?#rZ|V+y|`ojY{bc96y>0i-TfZ2@W~O@ORB?gey~nP=41?`Y=FIA_xEcb0w;vq;fd6ys=fM$!F#RQkakR@rJX1PI=_4)jDx*27nKc|+dR)fzD<<{(@r1w6ib;y|Oy>Fzb zo(HiXF1C`4yy&I#Y8%b-IkAdj?oY!>aiT*T1G`pXc8}uXqS7@YqG&r8m0Re93Du$w zfS!TGIw0`#8&J=<(!p*E=a^?y={Yr@asivTg=YEH_Z&CT{J=aRSsbujXeoN?l9DNp z17u3O5|i4fQ|Zw2lT|z?=Qg)dj&ozYA=%iUVvTXuXDVt3wDt7#C(FOvGt8nE-p{P# zKRA5t*A-=Gj@@pcs&(tZy6W5Qbl$X}nswbkjH!xrn?B5h@{vPbhVr&lHs1|tYJ>Wc zC7)-fg=fj=va8^U?3%`y=yiLQhZ%)9SS);K(iE0VptnrO6Szu2+D*xg!mX}06@`Lw zYx~r3`}pr+_5R{9~0uy3-LZe!H;i z^UL$o^~vz7k?y2h-Em78*Xz^8uS58={sR)XKH&c6w-@t|gswSsZhw6L;g(D;;Z;GJ z5I`^8wD=X2r|2du{2+v_t*%!LkG$ZXmE5`rO)gw$Jp&Cbz=W4HZCI2r)c2!bdGY^) zxD`lr{_Lav?7Z>b`KMJ9YVV_jUHpI)3VUThr6Bs$-ruyW6%m{3CRL3&SX*ee zkLhwxy68dgA|lteK}DO*M&<3L8Zdt%1s0)@dT9^SEH`qs%Mk_0@>yyE-x}vqt$UoQ z!BZ~D4auj3T6Tyz1x59P=aTy~MG;rrQoXbB8L+0Xi^ij=*{;f{Nhxm^b$%PQN&T^; zTx}M~3@Fv$tu8Of=RIoqcTE>1|4tbK`BBiZsV|3eL}Bx6F8ckF<}oQ_Rh{XYVG_(o zMn0~R>WWeRT`tDz2XrWQ!X491ChVdqwv?ISQ#PwBFjpZT&wcXmtzp0;=nm&p`n>px z^jIM+wq28dugA$PibI+(&6W%{<{GCShZh{7e~-V%>VZ%_$;eUl9PNf);fx+OamFkX z(x73?DOu9sO(48AW%?dt1>1PeJJkHsyv4Xf(w=dhgn_drix6 zw$NU;fMV!&5*>%zrYhkplxy9&6!uX{|9g;h4}&V-$hetzwyYP3B|-8r`e;g$qmUcbM-zWR?mu213P3h-Zhe0zO)awp?zhg+|B zd4B!=<9oQwe-1)#(z#`b*Kh99S2vRKGY)RK#c$H(7dxDnudm<2HzzOQGY;pq^$Qo* zt4oJVu3J5MamTa&!ozPoboDQs`7du?zJ(3SeLgtXe#*yZi~lIcE!NP~hD(Tx?e}jk z=HH$7ZmGlHUua!?US3~c{FQ!*#DopFp4_=_-(LK(kpBk8t#N=K_+DSV^H=Ba<~?+A zdv=#Ohv9uWFFX@IKza2`L|6Y|kY8c)hj9sYu3o>nxWD=ZA?Kk>kuN{r$f~EQC9ls^ z3Xm7dZ)A>BR8aU2(58v!(Rk1~`B7u&EUk?d_HZ+B_BPwyRI#qGUK8W@D;PM(fR zx-1_BrQ8!;?mqosr6_YMU39pZ=CwnH+AyY2u?p2+mW!Iyei6#`FedgGjbT(2l-m_b zb)&c!bm`xNS}Qpd=N3CuO244`GxwtApGH*)M$W52SeL>^iaBj)wu8c&T3$T^UPahQ zv&vA=j^2BgB1nA{2 zr5N+Vs0&ao=*YjfeO8_mwI!URSLhzAm1bwH`g_bB*w5jjIT)K`x2MzI1)Hcg_1&*c z6tmSpbSbK}gxXil3m@@-8C#@bMr+ifMwJMV4RK%>g=vb6&!@T@);S=< zojH2MOof8!+n|!t%lbzsRKpG(?k1|M*_d+1ty6uctWg=z*lEi5p8rn5PvY~Q5+Q6-;jZyh5%2FV8P4PDuK}y}vIXH@sY4E-%Kp^NS96`&ceFpM1As;g)UOHEw|eLsq!7`)_K(({Iok zxl-+N70Ioo_|J6Ad)VB|$K0)sxbeBW)+H)zpGCWBUBcRv^}nyL@9%zxua|G%ZXdVz z+b@@Dx6a{`{_*h^f^y+}xMyCMim-b0dh@|AE?B?&mT_LWOu)6^K@ObFkUxIee+ z_4)er?AO9wqS5aIW?V3f5uIwfBdF!)7KUm9QPe`~zX|Q72&8#aRFA6vOp0BBcgj4w zL+`zy6na=PmyKdjq9Lzt$POhf3Tjj^2zOx0FeMfDeW+FG2UJ-*No6Q9Nwrsxq(|a> z7KH=({AFp!EYAGa6k2KQQfj2tDA!Y(+rs$Kyq;R6Hs>yMiy5CgHkmZYQA*TJibFbZ zd$|wAoC3As^az9LC9QBLXM0cmHk6WlDoq(h*|v!)ZxhWYe@~<)3?6_J)u7p!Jl;eA z@r8+twcWaL7HyT_1t8I?6l$vTxk;@w3y{ipwFE)O-CDl|>0MM+56VUh*%T<~-#HZ@GE+^SBvZ~5wD4pjwUe}ngQmJ5q^4EZ+osu!q&}f8 z#xd1khx|KEn|Od83Fx?)DkZn?Q}l>gL__LFbunU+6IeCJZud~GT-c#7L+R+#ZDw(d zDP16c&pxpFv4>LsE(YzVm?^r)Jf~9DG!_YJoxKyO zsRZ5&Gkz7p5nG{{3nmMdXcUzD?~-Cy4L(Z|*SZ0v`rM>&4{GgZdQj0Fm1g@^Q^AYEvrEbEz@Ky)aK@pW<0c1?Scwe*F07`}e5#?iva&r1ARA zUFntz3N?5(e?X9bhwO<$0&1Jw)KlA1>aNShVe!C!2!ddK{rdUq*RPM8TLW=x56>?z z&mZp}KY#x3-9^l;lsvz9S7EQ?H@~siPdDd68)}8sos0AJ*ROwn{ru^?dVYBd&7E%v zqt9=@&@ZJtQ$!qft1gRMmT)=XLJxB*e#ya@uu@{(74Lq#vNyjM)+G#w4EPU3o?qPZ z#;>=ZuC_csy?p=i!+G`d*S~MSetx)Blkml~Tk>(#h3T@?g&uYrBR?+hZ@>Qc@Bdtc zy`0ST;x2IEx@D~Qk2e=X=PK+YcJXUJVNK}i>FVMWvgIS}ROVN(NUw#yJ*Q7ktltmp z=9j%bZk8p2@?oEpg85A-wkZ6i1KKe|wyMR;tu+1)pJBm zHM23{J!wk5*{M>#iGG&(S?T@bY0pfv1HU@f zb49|vXByUB4_RO-4qGWeq9Xski<<3}@=XuHfqmKl01yC4L_t*5Xy|gK_PiR%t{v%!}^ZEHHr}1K1$K_cO z?Y3>wiM;jBsL3_kRivQR4<=U8GE}o&4PHzs-%znl;Wm6_f`wbvTVYMv=uz8D;G~I} zgi<`G(!QC}&Cc~I{;1{OTW$f$X~q;#MezVt*R@ZtP`(8kh~?i=QU|HuM|tSzd8_V) z0mW6S$2mr4hg{z`=dY}fO|(cx)68yweI{a)HUnLu!w9ca6^(YAn@rV3({-aD%9N0-8w!Xv4*D|+wRt)>85ss2kj z9%~Mby_v?rsG>%B9`*X@pHYhL($q+uEGVk63+8(7Dno#So}n5wD4R`+ImJne*i-M+ zRNpw-s~H-7mT0&iv_wH)lTbt9eut-^QVqV4e^*7&h;tqdX%5nloT9RQN|&%7g8z8r z?LDkC_+;2+@y18oD~yJT_U0D{+)2OQu+Up_7}|K++1l?wDB)WF^?UF*IH704m^uER zJX{%xm9ON%AOG!2*l5B1-(C3n;y);HF2l-1SOW`Nc{wNUf_J~j@#f+mqU1k$p^sE< zOIX9e@Wj5@5RG^Gki|c#`gI*#qA&{3R?N=Lhur@^!b-0MK4xKg#?NI=zB3y*KV&<;z zNLAbR82VY}kvRXQ1KKvjU;9T;+)AmN4}T5vTNgBN=T;>f7Fv5RHFzmG6C={3v7u8m z4SUuoEk9gj{kTcxQKg_XnH%y4IsWt1KY z?xG2LQQ5QA?NyhrkwIU|$%~Yrl*2SNk`*RBT$DN4r*cTA8K=|_Qpx!iMW&GFRjme( za^spz4Ib4$s3=slP=g;)U5uC(8067R(@gJOQJA2*P_S&gQn*BspJ9=6L(>$imfMU9 zmwYbLTTp0>go^`*=H!vbae}JfHAQtnn`*ateak2}V*27TT=4|Ubq*a?bQ{Kd7Rv7f zw9hrA2U^jke{i1CCBLuyyKdR(uxC)LetaTL5#|b=icr^#J5kjJ)n;+aoo_;; zuG@W7rM68^G@*Qon5U(`G8p2y4F9{(dv~Uv#rt@tmyxZKf9L$P`80{-66O?Xej)!9 zw4`}wV`VuZH(|o$B*p};Qh@ZOXWOl=Mbh!uw3f1mejQVunu<6#bFygqcTv>KDt&5n zwWN5pd@g7f4V#4Jo7CQi+9u`H)h5_naQj5F%I6I<7Z0E~$Jq+{a3ScISP^*V&(Zv} zentIaK-f8Y$pebF7^p*b!EW_pntI1B?qSX5*`52iy}QK&|J>j|qVSKbVX?q3pSTOI zmuuLp*@yS$KgoD=qeQ=-uff~L4Z~A0t&Dgv`R6C{-+AWNVt%^h_)k?XSAX8pj$}4$ zoE603pV8;Z2aP-3q78=6Y+ZU?3%dC8E&}eV7x&cZ!u|R4U$;DBgLu1JsBlT3RUQAp zW5Ty2*Ngw?Gd-0#^H6z{!Bxf%9S`&ej($b}w0o$%)G7*GFABHv zrRfyq$8EVa=r++5#fhTjljfM}`YRId5-)!B&<-e_lpAM_lG)XY=fo~LSH;^R6ld1* z?_|>NTK>IfN;KwamR!(Xo6e;vTAe8`kWPeyj)&pxRSbV21pZaI_)tl&mq|Qxx2XIc z(Rw7Tz3 zV$$nw5Q|vid|c6eKpUk{QNwgubGu~YFxn4QOTCanq^*Xp}H}#Dd!QE@JR&e zy@wT%An?v=@NObr)Zh~h%O^HW&Fg?{DtJ9f-?y5 zX*!hx@Wa)T*Y+<+p`zr#{-rZ{1!t?l$9Xi`$RfN*X~SY_q4(}9WN48J3Yq*n^us;P zg#5T4RVlLR^1t+M^ufo&>eU}?(qV#V8APe-#U%On!fflkU+$n4e+D)C=-AXP|A{8m zy7;MXT+-e_A&dlXkUhkuG9sG#C#JlI*qCN{1z>gNG|jQw9wmQt85OHmV+sK5GcpC0 z?Qt(GMH}@hbeguH5VyvXyedjzL?)&~Hc^`F%I}LvEzdJh zpv0LjM<_R05y;;Gg;SN}J8JOK5n7NU31&zB9eJT>8MxJE)!}xjBo49NJ=>|CeM8qC zN1jQfHXTNNZdFtyPJY*|_&uhS0i$^Bp+^tZz0&HbMwb7(Iq1Cm*5@-Sr#G5#u1Q%e z`%+4V0Hl|<hpQsFDr>J&Bf8Gk16w zs%x0g%EUXHb%b@aH&bn5`7PU-W*MOa)F&iN$Emg>RY*)*FvUX}Z-||9J49-K>P#r; z*e#zyRa;O;V8&EEnayjRrqH5t4RDJjej{dIZf>QRQ=P!VjCpcDQ&(cF1}<_vMVbEc z15f7aI0aaxHjff#Wrs=;N6%EY_b9gSmeXhv?pCu%!VXhKGFHnDmB?pa5f2t^*MMQ> z{n>xj5g#crY%cW_7AfP1SO)9iF*r~f@%wqty0z)G3^=45s~9X^g4~Dyi~jQtx8Q62 zHnnaX;ubb8uz>%r^F76_?2IKyPfxKJrcysZxA-&dr(Gp@#(+zP8TE8si6Zql3AaNPx*JAvV z($!_cyU&ETP#w^v%ca7v()i*tZbjVh(&hK*^3M|C6PmE>q_)3{H7S$&grWuebgJUq zxJUnM6jH+iRbDlyGHZ&vDbo6-zhRAfB#SMLnBiZ8s!1g~jN~~csLZ=7O$KHc7sp>Z zq~n~#LAKx9d_cX5m;C8w7+@rwGr~MwrOj9Y2A2p=yM8 zP@tk=2B`Mw;v~1J6n9RuyeeqE;Y?|c-3}=4(=`Zp2TiXRP+k=imrSxPB6^hbSqh@0 zdDYU9nlke}pvq{BsrV&vt}i&3$~mgiV_L^~j+zdQ6|e5jbde$AB$bNSG;?oK+gKlA z$plf|v(Zgl*;uMZ7>aIaYkQ8EvI|-VQy9`L4#g!67b$faW#yju!4~oZP8b{eC#l>m z41F#sq-0><`G|Jrkk2~&rr8)D93)p!mJ0OyNs}I?U+Pg&SIpk^+szXW+Ws!@;DBEm zh9dbzg}jqFvt%-#P53CPJM}TG?+3Y=HO-0y@~e9k@vc;&oi!8pqx1vQ{H$(0wFwU} zi{l6dNJ;xmj?e>Nqz{huga=P3@5OL4YG_m;W@qu4Mo3W|t`2gZ=0h1WjadAnAe z@FsYXAMf~c)$2l+lb|8H>MmPhC#o*RYW_dNS`yS@7r z48Ne_xA5{REna%XU*Rq!_X|n6_}ISt4Yz<6haC9uAG_RcZ|^^U{`%>cQo_4_bg?6T z6R_p><`UtTb3RCa#lMlatmv-a!NlXHX(*hhBX0`+e9D(J#)S5OqWd&eaq!#3T`g$6 zcQ2ScV*+HaD2mT_Ge_gtQ)$XNlL@UC$6wl`q(zlh*1+|@gZsb)>bw1m+!g<#;xf(p=$C&a>_c%3p zdN8HmlX~w}oabrtdGIo%N$-73B~Q3TY?=V7*(4;s72dn2vnHk00-MXfLp9Z@>AZPr zzn}ZtF;$!nAcj)x~(gJo6Cwci;?xY5Dhi9Ih^1^L(U3x1lp-&^xwK9BnuY6K0CG zqL#fvXsk5aIv|D0NU9s*T#7lxDis0P5k2nE1Zn3001yC4L_t(mZK(KF4tkSCw`@5L zr?TcZql4twlfKf@vjaO!6{BYTOwBRvn~B)yaxw?ej5oEEGB-EmHl5FtHc7EEWnj=X zL##EW=+OkUP~eN>coCw^IEKn;r2`hqCWeQ!M8kMuOabHO>_nkMt*qSS6z@+#l1y7A zsnU<4zMlrop2Dyo=6dn!wvOSm!o+R(d$ZlT3REC}BFy^lh^T*5k#PveJ)G=#i_R+3U} z!#6Oo^i?Tr8oX^XPdQM_nOdC$R;NZ4TXK?t$$#W2)hF z=JTD*yxG4a)q|6Y>dXGpF&*dRr-D-+V4ZSr&3joSzRJjpLpB5Onl7QrujNH^c0@~DBG3j=d zQYGZP0v=|Y7R3n~BW%;wKo_pDQxy66i1XHjXT7psaVeJ+vdrpHmgvRhu@A+Yzb*I~{688_u!2JIQS#}-$ZpJv6*BwKUw4zrFRK?FH=J# zxmUOq&r^%EO38zYf*NfW5wkT7Uey$oZ&{qNoU9&DB+lOI@snJfatk2OyvB^WwzHW` zj9c?Hede5+np4fv&JnYAIP=+~9ILb+S3Uf&YcsB(ip-XCxmMqxs}z27`FDGUSrqX7 z%sT#q1BY#2^JduRwqnquvFcQ}sC^){JrkgPGw-7hGdl+j5aR0{R|o= z-mPluLFH0xGHjgEfQp9G>(r{o$f_DHG#VQzNSDJiN@7Bu{OFagHqvh~h2NK^N`SMp z8X)eV$Qd4KF0zP)TiUIa$J1Ffhh|LvkoMfhn#mP%meP+QRl%lkp%y>fPH~d5d5Drl zW#lLM{kIQq?wOz5iQYRs2Zl#7d1CRKM7i~quvHXoLR|!^Z`h)bo2LE`ZTd{D6n$c` zq+N)kXgvEv>2W7%G#5P~|E#55o(sw)5`DG{?`|F1Nt@9anI$TyoA3f0$(+2szuQIY z+gp(B$YsCm;5JK+Pcwzfk@5USkql0PYP*UyN6hlaF$*V((ioMfLr-B696T3h;?r@WvZ?Uhl+%;s0tPhFS)h#jX?`YHIs5X+=l`demBbf77zw zLu}0NM=3X!I2wsmbs}5o(xE#|%g0ixeOP`GhG0$YC(`2DO{Qg~@uG}WdhI3(kd=|{ zM$e!WP)drro!eCBl~7(i$}*BGu#Dcb(&yhBC~i@MC!aXZBPvCv%2d0h+*{Q7bLiNV zc2eg#6m3D*1QFkAhB`63N_W)Wf#C-|te&A1Dvo`CXntl(ztpy)ES5GE4-{bF5ADCB|((E+Wf;Z5Xi99km%^au8lK6Yr2cJg3{Pk|^ zo9T<=FpjyECdHg5wUy7nrabA{W(ETEXi5wFhWU()&7DuuqCqH45viIoPMkEnl!gK_&E53Pr`USxoJO1X`ua+w?3a=DGApxMR1Ep>QCdzbtJYpH-hf zo$7uH`J?tQ!0;bg(#N2M!)baeo@K@~{JpO!bJJ>Dp_(rAc|nJc-QJ1Hv*e|q+jAox zmM5bj?J<>&%)btWP(Q6o!9KI^bGSozVTmbl%e+pd1ZmvfE8kr-t`_LWfoZCJ#-cS8 zx93u-S2|Wj369IRpq3B$(zip?^Y2--VTbne@K`kB8Qi1*c{d<$r6I|G48JJq8 z#fJ+eoi@{m!t%FSkRM}O`&_#nQ`+$i(hgnmpoF_jD8oy6WuY#B1}}43Mdmm`sR+$gF~uHktXtCOrd;St!a$aZc2qtJ5LhD_~oAu)$ax| z?K59cP(7$fS5`$V6t6HkcGir)$J~Ma9Bz+JI&^Aea~|zou$$`pdqC5;yfBLf0&}JG z(z`XKWvCaLt-`c5ExJJN)u2W7cp#0?CMZl(WPD$$)7a{U_fuWMb z5LCBe&#oto+rbGn@8Q!5=Qeymgu3)qBqbMaX=G5yeuRu&;KRPh zO6VDi^Za6<_G*IG0i8gBC%A?3Q(`;4Hf}`_tLZcaDPlzdlal9An#cLSPKSAwl@VQ_ zOik?p3S6O4=1n9TJQ;`ldUs7@PmWVup9Gbuw_$Dumxkj@-~oNiFec4@;ZlQWZ^EMQAy#BaWF(r+<) zR7G+JwKG&_wbV2nt0IPl&-(W16g^hX_4!!b+VjixQm>lew2614EF(Se=9h-Z6<_dxx3Nw_B`_R&?5AMC7d5q~j53GJ@q|@*BxtFmiz1n_ zetNpTyu7-9z~AWk^C5@GC4W+Ys;#HCHFoXTS9EVtR1|YcuYqi(6qERxyR~A9qFpk% zAB~X|iW~Ia0Vnj{TNEVu52NboF;TNe(OuK1;HN0^__FC%(}vzV#MKD1W~O>2Z@|gp zuIcE#_o>9HO`G8!r2HOJN`j)7HHtfEh{h_-GL~MwbdSX^&o4iI{0NHf{#BIg_37KU z@87915>571V!ZVq!q)d1+Fgvo^zDlpe>JRcanUn>8nz)?yM$X;;F} zqGHzcKyCn2{7Ziq+A;lq)YSQA8r${o)1GF+eph$_0XlJq<;=!iz-@&W=NyWV!ecNh78atnxt&>sBI>2(nOwL#e5!h zKt=zYGAazb<68(u$-lSU0+iE?P1DxVs4hN2)phODBdU_0?vX{wzpKI0$j|x$ol!%I z1+AA-XL7lBY@>Npuw`O?@g5VgNmD3AjufXZ zI+qrWm#7nVxbC}&DiaTyI<`ZT&&FIuUJaGkVdR3;1RF2%e0_R)rXHGFc?3}N9qDqZ z>K)GpCRV2Q8Rc%(G>)&B7H&<9p?HgVpxVz!wWN#kbDr9q!bS=^sCwUag-T=UOW7hW7z@Bn@X0rCIgExltc?q;l{7rN?OV zpet=>s53(w;UdZ!_9Bx1R~sq)<~)BUzDClT$1xEl8*+ONTp4C2xmR-^@Z0su82anevLyV_t$62}u3Z zZjJJ`OSy~^U5eSvq5QQoZu26DW<5Qtv!!}C!h*W- z##feq&)Vg1*fS_rKR%JB2&;yhUD~@-)sEEHEn9K`01yC4L_t($aogOIelL2C-aS-&e7wKEe`sYh@&o8K4;$z7IrAkCW9!3@ zXvj}%y2G$Mfv%}UUg$Ox+luZ0ao?>bwKe5NP!=t|7F{*vVMZ@+95hvdr=vrW-NsS% zSnr)TmIcWB`(4z|nUKf1rnX4|dKBzAitb;*gu+CgrQnJItmyth>FJrIN#K6JzrQVh zchs<9SH49!-@G;tw@0m_<@hFyJO)&^8#7cY>L!}Sc{@#tN_V2%s?5_Yy+uG@fsW(+ zU!#nceY9g{!@P|&z-xR9m28TGyv>a)quQrd>$s+nvT#o`RW~;p<<8J)6LcH+m)?zj zArsE4b)RM4KUPSS8<14lsofiyc0~<-Ol_Yoc3La`e$?{EH}?w{;?u;E57nqpqT4>D zoU_$1PsZ(gsKnV?5uRKxU-BeRul;Q5f1q0XDQK&VY8vyZlU^L;hAKf3z?h;lriv1E z-$H4;VY&DU&GsI(LmCG&{CkfYd_h%%7EPN8yn`A?O;Kr}sJ!5TYVaY?W51(rv6!|> z{vG7LCbz07jx7Wm0NKuC)@Hd@P;tIa3$K)u_!D3ot&VhoF;UaSbmiYcIyIeq$kr0} z(|Q!Gj=NJW|E{*qi-n%6-xtoIpU-2OUyAUF2Yn)GOtzS3`LnQPSyp{0;(yR|1>rxK zlrsQ>?70^WwE;)aA9f$5wq;107kmy?E#pJ!Cmoo_q%@10WR2!tZ=o#{kDDr8v!?Gv z!_9)>qf{E#(uje^sWKK}a|!dF?{48lQ%YhO9h5^N6%^>6k9unwPvjl6WeU7sc}cgL z(jOcCik1gk4GL)(H=rq=pFy#vGTQE$^v)V5p9V>#$)&%^EXF+p8b{t-3QLRXGAhQY zN2r}MgUeX@I7y|jRJ}Tvo@VNM@C?%*hG#C^T8L{I!itDL1}3eS{QC7%)a1N8ycc$k zSk4L^VPvJ^)twt(&%EEF8NG7%ut$|IhO(uHAA)0VW;SJ`4X*5U$$-=(kwUbN9l(yg<=h_D5DPb zc~w#W&&0isOuhFz+kf2m-D*|swt}y{RVa#}M(r6wjM$?n5}VqJR_#4v?~zE%+MCv_ zReP`6dsDk^=XKrZao_(ze)t?Y-mm9)JZX^qN-p^t0i5Oh29d(v>ng29_*L)O}Ajv%vQsve4FS;i$T3dWXZ!R^G%wB{heDkFZxrUe&$ zOl|^6dU98AtGujEqN8}C>x(Vr>JpQNjwYzFN}vvVmc4m@;MbYH4xS12XmE`o(Ae{5f{=PgzhHV>W*jp|4a^lkWXal%7Mck3U zQ)10WnrrCgURIsF??-CPP39&{=O z+!bycsmVYR^&grD+dM*3gazFMk4wC-yPy{NGx;qxQ2A9_GVKHU0$%|!j!!S{KcunU zS8XNptCzTuzFlpY-|H&!I@S?zh_!e$R+~Cm$!|KOZ6e2z5-=bH{%K+O}jlFdBD{KIt^j@-iPpBrWzpXKso%-C0UqIM-kyqnj&y zbw!_fTr>$}@Wd?pAj$GJ(aaRpIwMk>CnCO2&r2_UPjZ-> zjVfQN#c5a*}VG4mhOKtc4 zLxjc&&$45y(UQ_!S#0G3Hv8{6HbB1T?Po5`H8wYL$#|SCT-xBT*cp{EJ$X{bZDPsy z@n+s}Ci#at9(*zR@k2&m?W+Ln@P{q>sP1{pNkd!$xiQ~hs?CvA9rb7D63u+j+@a!m zY*=&^jvV>sw!`&^c~8R=Y(8nfVvP^Wd)M`C$B3zNoO z*0eM`ku~co|A_?stoT1q@s{am$Tkq8^g%p29k{<4_E-Im%%XFF;w{@PrEhu7>qJlJIA?xc()i zNJ$Lo8$-MNhBV}M%0QFZk6~>Ue|atnn-#1y2+DskjjaR#!HZK_o0cCVQYev-y#{Vg zBp$cgBR=Va^NK?uk%8O=xhhebs$%#45qn8Epqj@#@E@y9mPxLAH}?Q!aR*MR{O77y zZa+EMzs@=(%E&KgM(l+%w3k3sNcghEAe_FWIOl!h>=UFK$!t*BOmpwWNJYcpk7?#> z5rIFQE@s%S$4O0$ipS{Rifa5@1!CeU*WNji6IZ?a^-#kRcu|_l%+^IDoJJw}F~ za|HSBv?pB=-ZM_1)UNv!xyz|5olqPqZ+g4-; zI@xX1iM1@v|2ec@^di_Pzog@^@GjBj1?fB`s#&o$!xs`LFA0*ID|ou;LK!360q5s* z|AN*839fGv1_;*F8n<2u?3*RT#|DqNYg^Eu`?#`;KdVfJA1J~NA3l;ykr&z0A746T z@mwW#<+~;X46ZK;5(`R>cnTvy64ed`f9=S=%&CWF_bBU{qvD694=Z}d9%HU3{y0M3 zl}jZWpFyY(+L3w-U(vsu#JL|F-<@w1Sxf_{?;W_8THlgVLiSTqnj=#iLMHRKn$ozh zJmN-h7Z%-{MX!DlULAlwO95eAPoYA`^S~6q%^erd;Ujt-^cT^@PKw^P5)k6 z9g=X;+p5>e-1_c2e$nWby#@+y1>>Q^M|H;TiM<^usi;N>8Iw#~a+4*H!0{OQqKJI2 z{5S#^Ynp`QMr-n@l=p%#U$by=(=S(%sxel??J4f6B3fy`Oo@JZp8P|KekTX>HoL;T zi3d0M+tP6KYKkhp7BxOJe2c-^R_Z|Qp%B2vz)E*&-si6{!9o?wHDCImJfQ=0Y48>Y zDrtG!#Vvw8SdwN1r&1e#VhX>Xvt>c)=FT0TH)jU(gm+&tRoCm}V&w8>R|}guI6sV> z)~^nS*^Q{@UI-jgZc4_G3|8{n6=F5m(yw`QiZ%_u78|;vy0ocf0=bR;rfs+w&NJ_Y z?3jhaL6BAAj)aOvmow?%ldtXMW4SZ-_ePFG)w~6rEN6{Y3sY^{qOVTUFMy zvf8;fYG?8uDTETFVQoJpp$QI-UbG#RdpT+;q@RZ@Bo!7h?f0Mx-{^8Y5+5iKuugAW zP}83hSWk_n?+guYLk{W0>_i-|ZH~M{F_{K`6@BKGkA4u_hl`ZAEr9)8?uElXDNGg4 z+yw2qU{^7xT&)D#j^JM0bC$ZfLE^F>clIPtkW~B8BCVdJ+|dhnyfCk;lT6xAwR%v z!(KXM@A8i)h9V}PkHv6_-+F%Vy*Yc5d&8(3`L^5Dj{dko*@toujq%&deRu7^{#1na z0x(sF$t-wMRbOu*6E`q@(CL_m)rfX%?Y9Mj3Z*Z&2NV1Mu-ppvsg4Kkdwia2n_o0u zUBS)dixJ<5Q?|C;7ixK<}w|VycHrqq;gvH9o-@ zfGS&!i5w`EwPrs)3$v-|1(3tyvhv6Gs{%@zu(-aSF8VoKW{~RbCj_Ukx`TFLUp-?3crpL#>6cjvOq%Z0o0ZRyX==b zU8T#55=p~WN;v&+ZRaGPx3GULu6;xePcW4_KK&lofC-bDd9+3GknI_5wpj|zy>w%L zVAI5Ala@r4n(U#RRx*3@wyJ&F7S)$)pd(OsG!K+m4I3DQ&Xug@Gg)_wyk)T_eIZX z=?U8#hk*Z)+Cf*9Awmi)M%ViF^0d`+eD(_Y62@XnocAQK36Y2_hm`{CVQ&>=3n~|g z5EZ((9I$`l&M^QLJy4YeYlg&e6#bNQgCHn+UV8uG;555bG3(kFNPZdyGzn6HbA!|_%c*rLIT)x*=V^Pa2W^$q6;zJ4R<0Gb#IEH)*7ES*mIV0#zUq1 zM6s8PR`hW!C?52TonM{L)omUv{~a4UeP~8|hadR1c+hHevJG!0Zytrsy<%7F({nqa z$}zxyyCIyj3Lr=_@FNVI4@q2eTHm!Ya@5QTbqAQT#RJfDb z`SdM;vn6Mb0D5`SuA)V0(n^S3T)|qkk68R$SxO42zB%l|Wl(*%_&h{0KPSp|TY`KVHFG*t!wcmfD`V!IB)T>`N1QI}VwI0bsGvIl8 zDIkuMnqPPMCc%A;Io)Sln<+Wn`#V4d!0*jLdy!t)dVurGcEFW*?v`I*8hckTb+bmQ z0QOlqVxQuX=3EygO-I_ki;^w|!N(!0ppl4!S*L|Wapt?FF=zEIbWPN3ZdyZTxKu`` znxEtCwQ1-x4Z0=d<;54jlMP|F%;Ai;w>g3aQdf)IX*^(`d`Y$CpLC-S`fchg`np5u zL5X#XCF@JFBU)tR3I2|0-}|eBbTu>69@`i0G)`{sp0_7hVfk&ZJOm52uV)HU*fVG- ziQwGGYM^0{L&T5o&sB(jlca`1(s1m9(&2cSDi!*kMItoA|3A6BK4|6LnX}Wk4tL!k zzQTHN59I{}*R_XHtHo>c8K?lvfXrcR_%H}kchEV%T6ggx_!jf7WI3nGb~{^$Pc@B; zY|SyjeDaPE@>qI@(o%1@U}R0lCD`v}%SHS%^V2*aR_%GwZ%@Jrf7=!h=X42ctGbzH zy`$y=(Sz`v04Rl&h7Grkc8PcOQITs?jJe`SCa;8A#GV1l>)Px?AB0kCIg52cwCDct zfld7&l8-E85;j|hAE1%`ya?zwe{^p14Hw|a2^Yuxtz;dJin^GMUd)|R-op%0(qm^; zXQ>{EY`H>JL|kMqM~&kguo~m=I%4$&3^*%&NM79LnpU*?DyHoWT8RE>d;hbksbax9 zjI>>@24=fz`<=aZXzd9_wa`m3tBg0RO%ghebiK^KD~$IFFv|8Z8zNKrzqp-!k99n4iygT{-DCZR8RvPC$>{24$Sq1JI|mW-dD74M%rO5R)(h zHrsz zVxwM=@g)l=6HvQe3t+O-n3u;a?Eq=W>KDo~hu}dk0TQoK68+8EF+hpg~N-fUH0I0K?)#ATGt0HB> za-oLziC`AH9_@p>Q%s^@zqG@{sVy~!-5x~c;1<-`iAzaEQLzN5@8rhl~(+CIo) zG!WEHpDWWHBcs&BVV4R?Odx2?qd@*W3E#G<96-p-DnE96b6S_S0Xf)+_iw`TOY@%^ z84$z$pJc~892~Dh2#*&(lpiYin$9O^A#=Csn#&M6U+h88H?PamE;$qS`@rWX!#Ay?%HqXg zY(7QQ%^v|>`gd$Lb((Shg*Q@`NXh)QCBZ0_kq35yiN<27$N=WwK$n5>J(%-14W;^U z-XVQz3aJ6HeJb4)W(z#~dh)fA#5+b^(XTlzc2M!4Nfsx%1LxUzf4l~^h1*5v${#@%EgiK(KEM@Dh9GHF@cbdCM*c{&S!lC}k1Cy1%d6EQ-*wT0?Ml;|pU*fV;@Xr2vedz))llimla z-hRtC1?q=IGJ4K((Aqg778VqzY@yHjbG8)r>6#3%u^{yLCyc<8t`SwrSfv9_sRC*>k*0%6)A_tGhKQuTKl|MKD)B!0j7p!g10(Z%94eCRNpc>!VT4G2xq$tV2Tu+61E;7y&1S?8B@)rj`(q z1l_K#T?q!PNIFNZwC_ff+uceM{*5Y)N4;d1t}$Z za~0ht;$5JSUc>LAM~^y2#m2fniWQBlDk%N4|3e{a!jSKs!LqsPzdZbw)FvUqM5lkN zY}rb!Ww~(&W_D8gUMQEJkBq+}GqMjTQ==A}zNw|EsdWDC@p-SWQaNO;Xf30dG?xbf?lKpy3ukqj-x6w|21(<9o#7QFg8$I@!0M0 zd{y|?hoomd_tM#BV3v$^=F-u0p;OOais*pMUbhN0^QrMP3q8D-oTKM-x>SgdV*?;# zO^C+q)v8#EfE1fEt(4%`I(AaQb3Jm9OHsU*gL!^+V*gZn1(b7&t;pCD!8La!h+Zrw z&{zuDT@$oj*gy#$K_cwUtW03zE)_i<(U&Y2gi%5P4QoNKEa(~oQ8}W*I@pi85osA< zrjJ(x`3$nM%lKrjrQdFOc($hZ71C78bSwHaMCwx?dt>^y*>2eykGKrh$ZJ*oc?0q0 z-sZ-X?X?`Gh;g*dUlkTF>4pFn_$WOOQ(2E3RP!8sJKIE@2ic`LujT5hOto?q1_A{^ zJY#REP0xPCp9~#w$q4y)Q$dT1hZX8Jq0|ND@e5U6h91m88SN?HLZ?`lBJQ?#8NLio zfwk>-hniSpqXqLARrV-VKoAAWhbar&9FF{F=()aYLQC^u>!5vCW5fJTyq}v$>@7%3 z9Q^ouL*Pw{1Aj-v*U?v_9a%B0wo*`_751#X2uP~-s)GgDuVSjjaFK)f(Xg-&9G8*k zV))%(Z}qw*2LJZUTQZ)38>5M+rs0WeasT5mtCu`O;QAZT`)Cb;!=CKrZGIu%FXEd` zJ)JkUT_L}0!3bdWisfu$PG|h@1FAg0>QBc~$HH2lp%Egv zEZ)u%DL+UTchT#lu~=0XYHOYp^XC|q8>_0bbarNlpf>MOh8p zO3aZeJ@BWCJL8g6ebH}Weowq}yuP?hI)`^4Avmh}#0pqa+o?Y;xbynsH=Y15(w?HL z+uOZ=8yi6;7C&=l{=}dEJ23Tm{qvbe_u%a_>Nf4?YBXow=Z-6ZccJ`XvZWQFLSaf! zi^}@HXG&)?R~sAIsqu5d7eif1Tl?+_dO_O=kI%z|(x>eE^F^v{eXtZB666qMOg`mP zN7oLuRj=dTr|?hES|#L35t{QgB&Q9Hc=NN^zkCK-5~``zDBIIVxA&Ld+KL>ZUr8El z)Q)8i(rZz{5AM5XpHQ91pwtcWK{{rbYEv1ouLtu4c~Ltmhj4r~Z(N*#^_%{5-KAJ+ z^Y!=kyLxC)`u)322F=mkT`b)<_@}F0bfg}zj@d$a8vdR2w8?Fod%X2^`E?heVp`#5 z81TF=qPYE`mgC|DOT@v)bVhQ|Mg>&PO+WkH5as2@?0ceEP$n_uP`GXQ?d{44qj7I5 zBaDXg5b)Utc~6~$asr2Sy)Sdi5#H_LBb&Y)%+u)b!36dBKcLcKF>xxrBg2409%ObzG1x zMu5(q`4+<9#~kK|B~j+rb@T#uyp#p5{WVDH*?!xogAMZFlOFum6XpW3O%RjO)^3}d zE(kIlb5*h0`g)6RPl6o;@^{U1x9EK9>uk5qTzmpjVLZpqipvy2I!4W^b)?VQQElLS zUF}aCI^*tZkG~ewDc;1ff=9lqx|OJA&t}b;3@*n(a$Hx3)A?_0NQ;7s`#>p^O8jKw zA>ljpfqbYohsC}1^@$p3PzQ4Mm za_zP$og+L|P|szo_p>-XUHWd7kZ^^t}a{3}cg-gfFY!k|Z2gSw+ zWQ3ftPF_58y$?5}D{EpzM%Ye<`F;AwQOBpl#Aw~h-{Owx7@VujV3gC`T>yY>}~9PFT32h-6rM#lt9L~9vAg4WW{}a^Vx{w zk{>i9EZ7N{eV6vQO9UyA_@VioHY;VXzfpC;S*9Vx|Mr1t+xh-I_N1q~lUy-pDJ+;j z9{#4U6b5>>_G)V@h9OQfVAieH6WBAQ=$qLS#l1E+KAN!7@mrdZqu?dUZgO^ZY&ie!9HoWT?+nwvP z(78d-nu3Cx$q0`4eQT$J&7k&b#-m#gW-X+}y5y?Usz=+uL-xydo}6Fm^rIvFdqYnk z*&<8|$6=2;00s2w&vuzRn%UW=a(nCD=ey~Q$A6VVwqH&M>f&v26FaPrLi>zqwk#>n zvkyueT9{||9k%m-6o4O=N|vd=Wzf8Ek=5!eezPl6(g+&wB_uW;LTv`qq&ZOAS;+I= zX5?YV8|{&QkG|G7jj#aUClU$@faY_jj((Aft2lUa-Ye97;yY~nX0T`pr{t#iPX{4% z$O~b!2L(>&ciFl9-7_j7a3Yga8K1)xcqpxEMyZl+-IAgTgtYc7 zak`bACG`}1*4fr`7I1|Me8c#w@E?wclTJ-_vsA=o=}1Wm@@=XcEZT#2bz54oBN=@5R7V5m=)}uS{{y+2H%>qMZ8tRPvMfa zM=}{-ReOhY9l%4vBeUAQkyZ=v_B6!fZuWxc4gd--mWeYG&x62BY{UHIUFyRLG$&l zE{!O_S!O~+^BZ@$T@R=aBr;L#%ShMFxemQef8#(hKA3P)%r@i0BZQG^Ql1D3>IxXb znAdzagjnd-dTt|0y&aAZ69T!vyz#%0QF$p>%68rQCQS6SdoC!>&^s(LkM1vJqci8$ zN^tK;&KLfwPz47b&DK7-@Xwdmo&HC=c{vM>+OOP(4!`S|-+)X5_f)E&f2 zHbx6Iw^2b*E>QhBu1VLcv*V_mAJ)GF1J)w2hw(v{oW$?n}It@SqbobnGh78vL2ca1blV9>d zy2N8)&b8Ir3KCk&;ekH&VGr7MO`aHMi$`BEG2fNqFHbVg$VU*9vE;(JErdh7p_B{x!lJe}o$?!i^TiB?c6f*}d8o69erCNm1 zWAU|4UqF2PX}fat#Wn?}hX*y38&~Yx$BB~&6awd8?ntTPJf}7#hzaW=WffVB<)wW1Rt_$I_%~ywWD4vO7=>o zpfm_iIyoi`ohJ&<0K(Iw#Bak?hku!W*a2`u6576A9&AY6-(C2dJWfY=zK&?Ux;#KD z3bOeJ%rW%stDiI4aAwzOJkW9iZ~UW!Uscc^O!#xZn*Vp`f6tQE;}s-2)VrB2sY3nP zK?^ATD77~KUC$ge{XaKpu-3u?W{14*gNGD?>seU>C01NVtk|Mrz`p1h(d)YfMsF&UG-5u|`yo#dr{{XBu10$T317>4r;AUio3 zH>OOzS?2i}mRSBiV#nlFJp44jV}G+-f*>QIjSbh&VAAS8n$8=JJ-Dk_gv@2pD!qjI zFkwsPSlEOp>g&%ZzzlPT_b=FVkO_nz4;RbEhD`+Fmp4;(X;G{6iOcieLG?Wa6w1Nq z*xG}~-hq9fLs^G#22c)-y%pm7F>7$9 z_ZqKd0B?Chp{Yswz8&wp|3%wf%P2$@f4%yqqnk}?4)J#N4c@$2#nZ79GiQl^!U|55 zD8zrE%7EzWC$Vvl7yMvscADX@nf-YRY3|Y}Cf=USLK3K-yTAi# z!D*HogqS{ZfQ#VebWh;3sn|uIt&~y;_$593Owm*-%Iz}r@kfA*GBu4b+S$lF65|p3 z_Sq{QNB6B7O*k@N6TAYu4F_x@ID{SnViMVoz}S zBB9A=@_h}9J`-&ijt#7Le%gTAbKx3e?SzbAJ|B#r6t~Gea}T^~op#$>o<5F=U98T; z9YdjOhR7ebG5ZssWQlgw%9d;LKzJZ!{GZB&hoBQb7eI$vF>=>SC8C@1ic$wy`0(^I z-e#W96_Q)+Td>b{QX_AL7=t?8aa|d>wJlz6v3+!r#yYSL{&i9}K5xkpoV(B{+Rx=z z2R1sQGKNIUvr<|qK}7H^uil9DkTjew-fGDcQ`SWbBWZ=29X~UIx+l^qKdcl+ky86A)u- z26fss2Ofp)!ikjnNB_bP1S~<0HeC>GlB~d987XS3)e3(={!~B8r|~ zk=r=SjMVC+0Tv3sz#Lr;^Iadin4&u-7RLC}z)+1}z-o>MWcKRk)&jGqTVsm(^WUrZ zv>mE?dnvj|f|%n^+1FIEipQ-SH+xK%Z(fN+G^ep!JbU|wEw281}mGzf$Q)9o!V<01UbA^-Vfo!loc$+Q?zxV zh;L9_*(e+7mmOZSk*vmlUMsq0mZdK+cNe8T0*<$@ol$~_+n!ZhG7C4k!*PTwQHb&A z-s;KHgm2tIiGm5tNu}YN5o?v;Bo~G^jIzxwmk8_baW6uc~2Ct;z?9ylNDRmX3%e)`3Lgc5K^(S8S9cFEAH=h1mF zVVgyMhsIoHz>lu}{+&GYqCKc%e8Qr9sh0Onu0iTp!I{nR(k2F8a%!i%#Whx13{slp!{3xh|fYm#mity|)yY)f=f+QWe zsT>y&f8Pc9@^Rx6ORc4*(Ce4H^3ob>5xX{%Xjii1lKxdJLi3?M83~D_sqB~kr8=At z8{ST0vm&l(0GBrT_&*_loHx@sXQO*Uh8*F^M`-q+q5X)n#+W?hQ!Wo?OT*aWCQWMw zo<^uz+J7_sv?yAYQ0Kg5xv5A$`76*^ZZhXqyr%nz97dbCPYSBf{@RuG<)ALV1x^iB z_=k@!JFHQa^_FrP9L@ij1-dJ6QtCJ5v~$U}J2K+UO`8u{H-*zyJ{63T9Caz!JjXW` z++NqzVyPo4mr&AqRFik|Lh-`wXsgexOV623)}90df&j>JX_bTB$e;dFlWLgHbZ~M0 zxhpv$Qf|8~%1zu83MPgE-1bNI3AKF9l1OqN%`}n}QWGYpaN`ieU!ss8^*~e>{ zp@jdkxwB;!*{SEfL(1^cx+9rh_}RSmKqi;n-y^~V?0#0B_&-~RbqU9(m05eO>#U?e zm!H{Sq~T1d1;Ny`*WaEgFttoEj=yXq^snavel6GopM`NWpw_s&$-yp+4qum7SLr%f z(PE19c-L!LnJHOu} zz1ID-N-{o0wzJA->>wj{? z$dfZD>lUTr5Tj7xEQ}gwHVra^%*{Vj^0zg1NQSAo=*O~zv!$nbO$rZj_Fn7|uQVic zOI}M^qh7x(aI1TJY%^d~m|-WlB^p>LtZCeWm|w*VVa4UiK&PpQM%nGfDP+tvqgIfs zp9e?c2v_om&UIcNrG}dclDV!-cKO7q86sj~+Hlr$M!n@BpN)csHg<_X7SY+(&w5Kz*#%XVYirrsjEuCs4#nPNyk9rLkf z-nj|LNzk>hkf-l0Jc=Ho)HfeuV2B)Ni*_=SFpA$hWhXeP>Cr{S`(KkRsD?c`jKyah zlEZE3Z3U&nO%xP?Ob!`ZgSshxDZ?AXbM(V`+bXT%*(yce7$v?5<#`ngBp^ystx)te z>~tXKK<#pEB98pW)LU>EP6PJ$Yd`ygcJ&&*sq>fekF`qAen!12hEc@h4nFVa; z>lkU;&%$yO&^iEdO(EBRN34{LzwRW7aWe;3G**mW;w?DKf~hx(HwHJZH&vJ1G7A72 z6`E{B1e**s_>9+^HHZ+aB9V*);Si;E-{A1YCU6d=r{Z3kmqTdYO=;nl1I(vdzBGm)5vL*McrQwgX8MU+`$)(L_>WMo50td!5UC)b3#BJ z^!;^vl*6H-a2Ek*o!GW@DxU$Nec8hdQqR*r%hi@w>o?GwbqH1|c^+gqnCjEUf#j7b z-5+5c7%ogg+?MA>)F-B0dD?WyO-N@q#N|q0H0BJocb+K$wE=Ea_78QWKg8ETth2}1 z@!AuwBo}gAC3l_I`&2eZ*28o*M}jrs0X82CqV;|71U(VGb)zqkXE-`{iC7gw=*-8k zoytA}e}%Or@~Aexr3lpqa8}?c|0=SmHx}n(yNq5&btz&QyJ0F}RtZudgklZM0FtDJ;~=A8%jY`<7rKvTMb$@qR{JUR?Ijcj~K` z+QF1h-R-%pS-VDy2Sb^N;o-tY_`!Gi!-W$@^07^6?SL@DbWG}`&(L7~_cv~6gh{jL zb={P%rs93FP<*90bDP}$nWMwT!RC;^{&L1MHWqmg@uCNAovy2gL?mPuKOBd^YSf1^ zfpvbtv~+6`v>K#UGmUNwdLzSUj7|HziMuEu1F&2WR+yh2p{E zeIV)2+%a4+ec?^RFR%q>66nTW!9trthOmhlP#DTF&n(DKC-HqD<+@NYjb^qWUDJD+ z{gQXLrlpra0!A$weHA6O*V{6u>csnJ`4avLC2wNNJT!;NL_CDQYK=!uyy0%f@%z$J zSm~WNnk+bIsa$uu(?u#ETf#$`nbgrIQfGNLbiSZg$vA&5WVnHWVhLWutn*|5$r zC?I0Ue)pD+V>D9=e@K`nd4j;PCpJ-w^;7k{iH%GmhzFKXBK8z)aA@~&vEVOH_`$=a zxbRCOGMk&B``4QlE6yq}m9jp+XHiw55BJc?VRbx{71O@PPlkN zor8AG=#AwlMc{t!%B118&4lx4Fzgq#OyfeqvK?HRd19FW#e`$18|@U&R_AVZ%Kx?_ zORbXk`}&69j`o-^*^k{4q(Hy9puDQ#qA;)tf?WBmp;Z?z&wgN}eK{YRcu6Z!G^l#) z1z+qe_=4G*DTvdzqF#LF9kyE{DxCGMJhqOS14~lZ*IQ3Ewa<>Meb+N@PoVqoN6I%J zFq&ojstjFCKK(=cJiPW>K5>8@W-%_9b$D{;!Ci98EE#-VG(~1LPY=QDJyIBw+;K>J z-`ZFm4TGEYokc^!KGx$QcAMiRDk2-^+s+I*-xfWVlV*F(MeVUnIK;gj#^GpH;a#Mk zt6kh{J;RpzFHk<6Y`aXa=&2A%!`xeTYi8PzJ#m^_e4en z8iVoE?o`zHpL#06_w*I_w1t03*_4b)A9nb#51XPF)H28P<0<5I@)Ek^07^=c#Pr5( z9z+E{)48dZ@zdFJAmBu{hpH%s=4mR%{l(@*r+>QKo)cN(bIdV$>TY!?%(l%{gICR*m&c8$V@`oXEfqt z+TN;nK%M6N40Unv*+fq)6SKcnW}3k1Q+km#KJpNSes0>Y(|+;*w;b7=)drsgT~%@{ zxPegRc#y)#My*a zbe*yl-9OE`j*J<#Ys=2Nxf|%e`=2>T8_V;yv(X7m4}#2U;5IBrXhl*TIlmVY?#tlu6ugS3M9&@skW7^*w$No%m+HlrA z;Z$Egv8R&a=_t$gHw3LuuxwXu0cJiI6{tXfbV~!oSRyTh<5-3b4VxqRdKcTkuVBca z6tTqZG@__2w0;7_{u{cDxO3&(tjZb~u==ot_a*DOeCm#~`q`7d2vK`5yHxELZt{3u zdgu=u9%#I{Vq7|7xWZUxF20e4#UN2b3eU6QPemz;`6}O{uUT<>Qz3vHu=i-X=JQ7M*KgI!#7ex@&gbBk3e-NJbLgn_O7K-Wa_v9wqBCs?gakOZM zAV)JrgFyf+Dyb=#R(eU~Al-lMF5dh^Z&3xsBDpok< z-~lL+xmYvMDg#W{R31AcL(hS%4?kL1Ouu$OX$mn)&};jrlQM!P7~o zw+g0~8}isCc^ekRym&4`5xXrthcs{Towax)&Z6s5t~*}x(-i{UgzH6DK17|)K0X<(dA>T->NO^mNj}K=K8v<6mLp4TC;s5XBv>i zLi*&suQNy959!Aww&2$& zJLt85!Lqw2a`pL}KhMM^SxsJAzagGliYyC9`uj8r~icVTxT<7XRKKym$w;xm@)b1M2GjqFOEg!8z}vS6#t&QF60% zFEXrG_63GiFemRuD+93n_mfLl>t77rJgW2Mhb>7e{{7e%>D!xMZ*dW=c^+AF+A_pl zw-l;K<=4Qjj<#I~mmxIgNr{ax70LQ~f$U8iE!FjEGk`5U7kcQ;1flfG8SC43_p=Q7 zp@cM*X#n1!E?j=Pe2AYnmeTlR*Lw2hQe}@z6RficU;uR$5D zgn%P&C?izT&E0;!t+HUQl_#uT`{QExA9;)Brhd5yd5$#g94ufy^eRB$XvhgmK!zo` z8;(zuCD30Lr%V()Zmg*Ny>IFZpgtTN@Dw#uqk+BtmR`9>!4?QP>`HK~;;99*g#_fyfhP%n)Mlc^sy0O)@&)DAkPh&+tyXYL%dtmcsUgVsIwU?5)XZo?}T3XAp$5CnS81sLFN ztNzj=>(Ip{@1jxW;9K%D`o2V;pb8Zr?N=ye^IoYns6AzMzQ>ofBKZEnXv2hyyXx3!32Og+8t!8EbVE4|rZ_O> zcf0;;;f6NtXc5_6N5l#{CUzAseE zQjHmTC&h*eb#(G!RgoEMVRc3|=*2zDI}rN`tHpD}#yu-Y{F0CG@s<6I^&rK*suKa{ zKK1;==&y=)U*%RAL{kZFrH(&oC4(^b^yx?r%&#w5Eu-K8xtc6n_voQWcF{NxVz)4R z*RI!LPi@gcqvG^4E)ZPzL(WBsyQ-V?ydclJTzvrx(wPV(z>v5rM!qH+sQPZE`c&wz z+RGP(^S_mk#nNHtAy4PQ$}maDW?yqebV+Ko76vktPE%4@OU*q|dc+s}pbFkzU$9}Z zQCV{+PaB2U_0f(?Q+e0pl=ZyorybK;1BX1A^-9>h0Aw7T1mQMQE&VqmG4nchx~g*O zS`E;&%ou=w7ZszX3#+I}$p6+CTwu7iSs1s0AU*&_(?Jf@q&Gwc@h`|W)(Kff~Osgp_c zAuE9Y3e;UNP9J|m*lZsvQe|_0&Kt}7Odb}Hkv4Qe2fnM`7ftlv8x4L&-xl;}Ef zu87oV)i#e@&rDF*7?b@ZCgUI==~wya)I38p38dzSY4vHa^40h3##wrw%)=*x((fH~?ghh)IOiUf`I4>G8 zwTcS%ZoJ~>akstI=p8v(TkJdj(dOiXOE3GT0(b7Z7Toq$@-Nxr{Wmk)q5~Rc+J7Ye z39DR;76PD;_4Fyj?_a~jm~K%4b3UMrL!|Gxi!-=t|MLKB9&feXU?YtO7GNn~ACE0X z2|YgQh-??1i$$$?s#e66{-dqTB2B6a1`Kwom$T4Mc!87@ox~l-#|#0F73Ad`bbzg<^N_B>D84)Awqtih?$OZl5jl}@bEbm*d}%P ztu_@!y>x~dZ+fZrb$ZDhIGr1O=Y&tvpgFeOI7~h_Py)(!^^PoJ|5HEo4(|uM58-`< z|B^~=wQWc+%OMycl1xNu^P;cRW-G>+r!QfpnEXgz%l~fb^cT9`fm0sxBp=5ip5m%^ zG8)0s9y_qgA(X0xUpgs^A2sROvXnMJMvpDOcIOEn=T=wHYqSCo)jQ&#-%1(9CwyXvLcqEhlD8CJjK*He>F2-(aL+PRS z(RN))`SsP)PFR!P2v+Sw@gHYjvKO=3!^M4b1%F2a*~@-9xwxo#uWP#!|EEwvH%NSt z(!ov=z0E!U)uRNEI|&dkw^4TS@zkml!~lCLqk!_5ikY;sb`ECBVk9&~xKs^X93`-q z<dnZnFwJ-XnjKs7oHm{xBcw!G63b|zO(z^p1N}L z$gz8TcM|d1IzCvaBu>~3WSWlc)1kPqH4w-d6`(DYtU0mZDHmwU{m;W(zD>7hOj-G^u6xR#MqduAvWan2KvB7U&{b z$1^^lE~pR~NcjE6=j7O5N281ZWFS4nb1-8vrTSeCq{?F#eiunb$^bz08mb-t>EMoI z;qE(sbtmy0Bf^*CQR4xjL9?f}-%{R$eE8SJsG#fu+>8?{bL`~g{#zt{qPXgH@Twp+ zQ_868d1#_*lDm16X)3-i=~dEO6S{9#P$7}OM#3Wv?<5-cPN{!ufj<<*C=Q5)n`D+d zDE$!pP%B)FiP_GOD$%$@|7qrhKU0JZqPI$AmE}gPNS80UFiX!|YkzoXf_ev3I%cXD zrn>s${O#~nlq(#ZJ?oqV|^@ALR05r@EUc5`#|vW=p&UFrEs0=)H9d)qI%SMaqNNK4<7GThS8a4(IyM>rf}^)a zCjyJ!2LT;7vAkpiO=xn6tqBpxSv#bWxQEL+YRvNzpehZz*0z`EOtWilwTfw~L)@-7 z#;sltcyi5!n-&X2j;>=APSB9>B2iJj0_fCdQxo_WxN^#3m{a;adtipe-7AH>O4`Ds zI`u%sZdU3O z$Y&*zxIy&t)=Z2%ncuNp@Bq9F7?ek>5GpT~NQJV?73(Q&XKmPbIuOJI#+~y! zJ-G)gZQmIflE=|_PAn&VZi?k7p9)CPTJc zCxz@~Ci|NLKVI?b%>%yWAjkNkXAHva8-7UtX6xnsG*|{l_$%9wU&-YejnH-&o%W;* zQ@r(5D;Y^#VJUpdyi$EU2#}}vFi6qQGdpmPWJlh^rW=rrNTr(GsGJN8>%?MUqk zX>i8}qrk^jzG+z&y5sw6xpI6^kkFTD4#Bz7@~FBF$bq+YNkEan5{fDAriP-|>$m@G zJS5=mv%qE5rMpwo0D8Si52qTu)rw#d56N%0Dn=$PYg-jBy#HwTGp9$`vK2 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