diff --git a/content/getting-started/7.create-an-automation.md b/content/getting-started/7.create-an-automation.md
index 10a4e879..58928682 100644
--- a/content/getting-started/7.create-an-automation.md
+++ b/content/getting-started/7.create-an-automation.md
@@ -22,7 +22,7 @@ Create a `posts` collection with at least a `title` and `content` field. [Follow

-Navigate to the Flows section in the Settings module. Click on :icon{name="material-symbols:add-circle-outline"} in the page header and name the new flow "Post Created".
+Navigate to the Flows module in the module bar. Click on :icon{name="material-symbols:add-circle-outline"} in the page header and name the new flow "Post Created".
## Configure a Trigger
@@ -30,11 +30,11 @@ Navigate to the Flows section in the Settings module. Click on :icon{name="mater
Click on :icon{name="material-symbols:play-arrow-outline"} to open trigger setup. Select "Event Hook" as the trigger type and select "Action (Non-Blocking)". This will allow you to set up this flow to respond to when an event takes place by running an action that doesn't interrupt.
-Select `items.create` as the scope, and then check the "Posts" collection. This combination means that the operation will be triggered when an post is created.
+Select `items.create` as the scope, and then select the "Posts" collection. This combination means that the operation will be triggered when a post is created.
## Configure an Operation
-
+
Click on :icon{name="material-symbols:add-circle-outline"} on the trigger panel.
diff --git a/content/guides/06.flows/3.triggers.md b/content/guides/06.flows/3.triggers.md
index 97d2d492..e93c0bbe 100644
--- a/content/guides/06.flows/3.triggers.md
+++ b/content/guides/06.flows/3.triggers.md
@@ -23,7 +23,7 @@ Any data generated by the event will be nested in the `$trigger`.
- Action (Non-Blocking) — Actions do not block the event. A non-blocking action is mostly useful for
completing tasks in response to an event, without modifying the event or slowing the API.
- **Scope** — Set the types of events that trip this trigger.
-- **Collections** — Set the collections whose events trip this trigger.
+- **Collections** — Set the collections whose events trip this trigger. Use the search box to find a collection quickly.
- **Response Body** — This is optional and only for "Filter (Blocking)" events. It defines data to replace the
event's original `payload`. Choose to return:
- **Data of Last Operation** — Replaces event `payload` with value from `$last`.
@@ -141,9 +141,11 @@ The manual trigger must take in item ID(s) before you can click it. On the colle
grayed out until you select some number of items. From the item page, the current item's ID is passed in
automatically. These item IDs are passed in to `$trigger` as an array.
-- **Collections** — Choose the Collection(s) to add the button to.
-- **Location** — Choose to display the button on the [Item Page](/guides/content/editor),
- [Collection Page](/guides/content/explore), or both.
+- **Collections** — Choose the Collection(s) to add the button to. Use the search box to find a collection quickly.
+- **Location** — Choose where the button appears: the [Item Page](/guides/content/editor),
+ the [Collection Page](/guides/content/explore), both, or **None (Hidden)**. Choose **None (Hidden)** when the
+ Flow should not add a button of its own. It can still be run from a [Button Links](/guides/data-model/interfaces#button-links)
+ interface configured to trigger it.
- **Asynchronous** — Toggle whether the Flow executes asynchronously. If enabled, you can immediately trigger the Flow
again. If not, you must wait for the Flow to complete to use it again.
- **Collection Page (Requires Selection)** — Toggle whether a selection is required in the Collection Page to trigger.
diff --git a/content/guides/06.flows/4.operations.md b/content/guides/06.flows/4.operations.md
index 921a1221..ba272d63 100644
--- a/content/guides/06.flows/4.operations.md
+++ b/content/guides/06.flows/4.operations.md
@@ -247,6 +247,7 @@ If you are self-hosting Directus, then you need to make sure that email capabili
- **CC** — Email addresses to be copied[1].
- **BCC** — Email addresses to be blind copied[1].
- **Reply To** — The email address replies will be sent to[1].
+- **From Name** — The sender name shown to recipients. Defaults to the project name.
- **Type** — The email body format: `WYSIWYG`, `Markdown`, or `Template`.
- **Body** — Available for `WYSIWYG` and `Markdown` types. Use the editor to compose the email content.
- **Template** — Available when the type is set to `Template`. Select the template to use.
diff --git a/content/guides/06.flows/5.manage-flows.md b/content/guides/06.flows/5.manage-flows.md
new file mode 100644
index 00000000..6db0dd2a
--- /dev/null
+++ b/content/guides/06.flows/5.manage-flows.md
@@ -0,0 +1,58 @@
+---
+stableId: a953ba99-dea5-44a2-8c7b-176180759fe9
+title: Manage Flows
+description: Organize, find, duplicate, import, and export Flows from the Flows module.
+---
+
+Flows have their own module in the module bar. The Flows page lists every Flow in a table with its folder, status, trigger type, name, and description. From here you can organize Flows into folders, search and filter the list, duplicate a Flow, and import and export Flows.
+
+::callout{icon="i-lucide-info"}
+Flows used to live in the Settings module. Links to the old location redirect to the Flows module, so existing bookmarks keep working.
+::
+
+## Organize Flows into Folders
+
+
+
+The navigation pane on the left lists your folders. **All Flows** is the root and shows every Flow in the project. Selecting a folder shows only the Flows inside it, and the folder is stored in the page URL so you can bookmark or share a link to it.
+
+- **Create a folder** — Select the **Create Folder** button in the header bar and enter a name. The new folder is nested under the folder you currently have open.
+- **Rename, move, or delete a folder** — Open the folder's context menu in the navigation pane and select **Rename Folder**, **Move to Folder**, or **Delete Folder**.
+- **Move Flows** — Open a Flow's context menu and select **Move to Folder**. To move several Flows at once, select them in the table and use the **Move to Folder** button in the header bar.
+
+::callout{icon="i-lucide-info"}
+Deleting a folder never deletes the Flows inside it. Choose **Delete this folder only** to move its subfolders and Flows up to the parent folder, or **Delete this folder and its subfolders** to remove the whole tree and move its Flows to the nearest surviving parent folder. Flows land in **All Flows** only when no parent folder survives.
+::
+
+## Search and Filter Flows
+
+
+
+Use the search box in the header bar to find Flows by name. Select the filter icon to add conditions on Flow fields such as **Status**, **Trigger**, or the folder's **Name**.
+
+## Duplicate a Flow
+
+To copy a Flow together with its trigger configuration and all of its operations, open the Flow's context menu and select **Duplicate Flow**. Enter a name for the copy and select **Duplicate**. The copy is placed in the same folder as the original.
+
+::callout{icon="i-lucide-info"}
+A duplicated Flow is always created with an **inactive** status so it will not run until you review and activate it.
+::
+
+## Export Flows
+
+
+
+To export a single Flow, open its context menu and select **Export Flow**. To export several Flows at once, select them in the table and use the **Export Flows** button in the header bar. Each export is a JSON file containing the Flow and its operations.
+
+## Import a Flow
+
+
+
+To import a Flow, open the right-hand sidebar and expand **Import**. Choose a JSON file that was previously exported from Directus, then select **Start Import**. If a folder is open when you import, the Flow is placed in that folder.
+
+Directus rejects files that are not valid JSON, files that are not a Flow export, and exports that contain an operation belonging to a different Flow.
+
+::callout{icon="i-lucide-triangle-alert" color="warning"}
+**Review an imported Flow before activating it**
+An imported Flow is always set to an **inactive** status, so it will not run until you activate it. If it references collections that do not exist in your project, update those operations to use collections that are available.
+::
diff --git a/content/guides/06.flows/index.md b/content/guides/06.flows/index.md
index 589b5c62..32975f5c 100644
--- a/content/guides/06.flows/index.md
+++ b/content/guides/06.flows/index.md
@@ -6,6 +6,8 @@ description: Flows enable custom, event-driven data processing and task automati
Flows enable custom, event-driven data processing and task automation within Directus. Each flow is composed of one trigger, a series of operations, and a data chain that is passed between each step.
+Flows live in the **Flows** module in the module bar and are available to users with admin access. See [Manage Flows](/guides/flows/manage-flows) to organize, search, duplicate, import, and export them.
+
::callout{icon="i-lucide-info"}
Flows run arbitrary code with elevated accountability. See [Security Best Practices](/guides/security/best-practices#flows) for guidance on restricting who can create, edit, or trigger them.
::
@@ -17,6 +19,7 @@ Flows run arbitrary code with elevated accountability. See [Security Best Practi
- **Icon** — Adds an icon to help quickly identify the flow.
- **Description** — Sets a brief verbal description of the flow.
- **Color** — Sets a color to help identify the flow.
+- **Folder** — Shows which folder holds the flow on the Flows page. This is read-only. A new flow goes into whichever folder you have open when you create it, and you move it afterwards with **Move to Folder**. See [Manage Flows](/guides/flows/manage-flows#organize-flows-into-folders).
- **Activity and Logs Tracking** — Selects whether the flow should be tracked in both the [activity log](/guides/auth/accountability) and the flow's logs, only in the activity log, or neither.
## Logs
diff --git a/content/guides/09.extensions/0.overview.md b/content/guides/09.extensions/0.overview.md
index f0890e05..02f7e9e4 100644
--- a/content/guides/09.extensions/0.overview.md
+++ b/content/guides/09.extensions/0.overview.md
@@ -49,7 +49,7 @@ Extensions execute code inside the Directus server. See [Security Best Practices

-[Modules](/guides/extensions/app-extensions/modules) are top-level areas of the Data Studio, navigated to from the left-hand module bar. They will load at the specified routes. The Data Studio splits up functionality into modules - the content module, the files module, the user module, the insights module, and the settings module. Extensions can add new modules to the Data Studio.
+[Modules](/guides/extensions/app-extensions/modules) are top-level areas of the Data Studio, navigated to from the left-hand module bar. They will load at the specified routes. The Data Studio splits up functionality into modules - the content module, the files module, the user module, the insights module, the flows module, and the settings module. Extensions can add new modules to the Data Studio.
### Themes
diff --git a/content/guides/09.extensions/3.app-extensions/5.modules.md b/content/guides/09.extensions/3.app-extensions/5.modules.md
index cf68f041..21678600 100644
--- a/content/guides/09.extensions/3.app-extensions/5.modules.md
+++ b/content/guides/09.extensions/3.app-extensions/5.modules.md
@@ -8,7 +8,7 @@ Modules are top-level areas of the Data Studio, navigated to from the left-hand

-The Data Studio splits up functionality into modules - the content module, the files module, the user module, the insights module, and the settings module. Extensions can add new modules to the Data Studio.
+The Data Studio splits up functionality into modules - the content module, the files module, the user module, the insights module, the flows module, and the settings module. Extensions can add new modules to the Data Studio.
::callout{icon="i-lucide-info"}
**Enable the Module**
diff --git a/content/guides/10.environment-sync/0.index.md b/content/guides/10.environment-sync/0.index.md
index 158fcd2a..5f82ed61 100644
--- a/content/guides/10.environment-sync/0.index.md
+++ b/content/guides/10.environment-sync/0.index.md
@@ -19,7 +19,7 @@ The CLI is built to be safe to point at production: `diff` never applies anythin
## What syncs
- **Schema**: every collection, field, and relation, including custom fields on system collections.
-- **Configuration**: roles, policies, access, permissions, flows, operations, dashboards, panels, settings, media-library folders, and custom Data Studio translation strings.
+- **Configuration**: roles, policies, access, permissions, flows, operations, dashboards, panels, settings, media-library and flow folders, and custom Data Studio translation strings.
- **Opt-in**: user accounts, with every secret field stripped.
Unlike a full schema snapshot, a pull is not all-or-nothing. `--collections posts` narrows which Schema files it overwrites, and resource flags like `--flows` or `--no-schema` choose which Configuration files it touches. That is how you promote finished work from a shared development instance while unfinished work stays out of the sync files entirely. Scope is by collection and resource type, not by individual record. See [Promote only the changes that are ready](/guides/environment-sync/common-workflows#promote-only-the-changes-that-are-ready).
diff --git a/content/guides/10.environment-sync/2.how-it-works.md b/content/guides/10.environment-sync/2.how-it-works.md
index 748b3e06..5e6d2b38 100644
--- a/content/guides/10.environment-sync/2.how-it-works.md
+++ b/content/guides/10.environment-sync/2.how-it-works.md
@@ -44,7 +44,7 @@ Scoping narrows what a pull overwrites from the source. Sync files outside the s
The same role or flow carries a different primary key on every instance, so a push has to decide which target record corresponds to each source record before it can update rather than duplicate. Two mechanisms decide, in order:
- **The ID map.** Each push records its decisions in `id_map.json`: this source record corresponds to that target record. Later pushes look there first.
-- **Identifying fields.** A record not yet in the map is matched by stable fields: `name` for most named resources, `email` for a user, `flow` plus `key` for an operation, and `language` plus `key` for a translation. Access rules and permissions use their relationship fields. Panels have no such fields, which is why a first push into a look-alike target can duplicate them once.
+- **Identifying fields.** A record not yet in the map is matched by stable fields: `name` for most named resources, `name` plus `folder` for a flow, `name` plus `parent` plus `type` for a folder, `email` for a user, `flow` plus `key` for an operation, and `language` plus `key` for a translation. Access rules and permissions use their relationship fields. Panels have no such fields, which is why a first push into a look-alike target can duplicate them once.
For an existing translation, the CLI replaces the source ID with the matching target ID and sends the complete record. Directus 12.2.0 and later accept an import update that repeats that record's current `language` and `key`, so both `merge` and `mirror` can update translation strings. A pair already owned by another translation still fails as a duplicate.
diff --git a/content/guides/10.environment-sync/6.reference.md b/content/guides/10.environment-sync/6.reference.md
index 530ee73c..6a53fea7 100644
--- a/content/guides/10.environment-sync/6.reference.md
+++ b/content/guides/10.environment-sync/6.reference.md
@@ -114,7 +114,7 @@ d6s sync pull --from [scope flags]
A bare pull includes every selectable resource except users. This means translations sync by default. Pass `--no-translations` to exclude them, or `--translations` to pull only translations.
-The selectable resources are `roles`, `policies`, `flows`, `dashboards`, `settings`, `folders`, `users`, and `translations`. The CLI automatically includes `access`, `permissions`, `operations`, and `panels` with their parent resources (see [the dependency table](#configuration-resources)). Positive selection (`--flows`) cannot be combined with `--all` or with `--no-` flags. An exclusion that a retained resource depends on is refused rather than silently overridden: `--no-policies` alone fails because `roles` requires policies and would pull them back — pass `--no-roles` as well, or keep policies. Resource selection never narrows the schema; the two axes are scoped independently.
+The selectable resources are `roles`, `policies`, `flows`, `dashboards`, `settings`, `folders`, `users`, and `translations`. The CLI automatically includes `access`, `permissions`, `operations`, and `panels` with their parent resources (see [the dependency table](#configuration-resources)). `--flows` also brings `folders`, because the folder a flow lives in is part of its identity. Folders differ from the automatic resources in one way: `folders` is selectable in its own right, so `--no-deps` drops it from a `--flows` selection while `operations` still comes. Positive selection (`--flows`) cannot be combined with `--all` or with `--no-` flags. An exclusion that a retained resource depends on is refused rather than silently overridden: `--no-policies` alone fails because `roles` requires policies and would pull them back, so pass `--no-roles` as well, or keep policies. `--no-folders` alone fails for the same reason, because `flows` requires folders. Resource selection never narrows the schema; the two axes are scoped independently.
Two warnings a scoped pull can raise, neither of which widens the scope for you:
@@ -225,12 +225,12 @@ Resource selection follows a dependency graph: selecting a resource pulls in wha
| `policies` | Yes | `--policies` | `access`, `permissions` | See the warning below before selecting policies on their own. |
| `access` | Yes, with roles and policies | — | — | Grants attached to users are dropped when users are out of scope; a mirror push does not delete them on the target. |
| `permissions` | Yes, with policies | — | — | Record counts are verified against the server. If the source hides records (unlicensed custom permission rules), the pull is incomplete. Stored duplicates of the built-in app-access permissions are dropped and reported; the server recreates them. |
-| `flows` | Yes | `--flows` | `operations` | |
+| `flows` | Yes | `--flows` | `operations`, `folders` | Folders come along because the folder a flow lives in is part of how it is matched. |
| `operations` | Yes, with flows | — | — | |
| `dashboards` | Yes | `--dashboards` | `panels` | |
| `panels` | Yes, with dashboards | — | — | Panels have no field to match on, so a first push into a matching target can duplicate once; the ID map prevents repeats. |
| `settings` | Yes | `--settings` | — | A single record. License and AI credentials, branding images (logos, backgrounds, favicon), and the default storage folder are stripped. |
-| `folders` | Yes | `--folders` | — | The media-library folder tree. Distinct from collection folders (Data Studio sidebar groups), which sync as Schema. |
+| `folders` | Yes | `--folders` | — | Both folder trees. Media-library folders and flow folders share `directus_folders` and are told apart by their `type`. Distinct from collection folders (Data Studio sidebar groups), which sync as Schema. |
| `translations` | Yes | `--translations` | — | Matched by `language` and `key`; on Directus 12.2.0 and later, `merge` and `mirror` can update existing strings. |
| `users` | Opt-in | `--users` | `roles`, `policies` | Secret fields (`password`, `token`, `tfa_secret`, and others) are stripped. |
@@ -254,8 +254,8 @@ Two rules govern every pull, scoped or not:
| `... --collections posts` | `posts` overwritten; all others left unchanged | Default set overwritten; users left unchanged |
| `... --no-flows` | All overwritten from source | Other defaults overwritten; flows, operations, and users left unchanged |
| `... --no-translations` | All overwritten from source | Other defaults overwritten; translations and users left unchanged |
-| `... --flows` | All overwritten (resource flags do not narrow Schema) | Flows and operations overwritten; all others left unchanged |
-| `... --flows --no-schema` | All left unchanged | Flows and operations overwritten; all others left unchanged |
+| `... --flows` | All overwritten (resource flags do not narrow Schema) | Flows, operations, and folders overwritten; all others left unchanged |
+| `... --flows --no-schema` | All left unchanged | Flows, operations, and folders overwritten; all others left unchanged |
| `... --collections posts --no-flows` | `posts` overwritten; all others left unchanged | Other defaults overwritten; flows, operations, and users left unchanged |
## Push modes
@@ -290,7 +290,9 @@ Records are matched across instances first by the ID map (`/
| Resource | Matched by |
| ----------------------------------------------- | ------------------------------------ |
-| Roles, policies, flows, dashboards, and folders | `name` |
+| Roles, policies, and dashboards | `name` |
+| Flows | `name` and `folder` |
+| Folders | `name`, `parent`, and `type` |
| Users | `email` |
| Access rules | `role`, `user`, and `policy` |
| Permissions | `policy`, `collection`, and `action` |
diff --git a/content/guides/13.integrations/2.clay/use-directus-webhooks-with-clay.md b/content/guides/13.integrations/2.clay/use-directus-webhooks-with-clay.md
index b2d4a4c3..31a10b07 100644
--- a/content/guides/13.integrations/2.clay/use-directus-webhooks-with-clay.md
+++ b/content/guides/13.integrations/2.clay/use-directus-webhooks-with-clay.md
@@ -41,7 +41,7 @@ See this webhook flow setup in action with our interactive demo or skip to the s
---
-1. **Go to Settings → Flows** in your Directus Admin Panel
+1. **Open the Flows module** from the module bar in your Directus Admin Panel
2. **Click "Create Flow"**
3. **Configure the flow:**
- **Name:** Give it a descriptive name (e.g., "Send New Posts to Clay")
diff --git a/content/tutorials/5.extensions/send-sms-messages-with-twilio-in-custom-operations.md b/content/tutorials/5.extensions/send-sms-messages-with-twilio-in-custom-operations.md
index 30f7b75e..09325bc6 100644
--- a/content/tutorials/5.extensions/send-sms-messages-with-twilio-in-custom-operations.md
+++ b/content/tutorials/5.extensions/send-sms-messages-with-twilio-in-custom-operations.md
@@ -193,7 +193,7 @@ code has no negative effect.
## Use the Operation
-In the Directus Data Studio, open the Flows section in Settings. Create a new flow with an event trigger. Select the
+In the Directus Data Studio, open the Flows module. Create a new flow with an event trigger. Select the
collection(s) to include.
If the payload does not contain the phone number, use the **Read Data** operation to fetch the phone number from the
diff --git a/content/tutorials/5.extensions/use-npm-packages-in-custom-operations.md b/content/tutorials/5.extensions/use-npm-packages-in-custom-operations.md
index 8a44ba14..4b440f69 100644
--- a/content/tutorials/5.extensions/use-npm-packages-in-custom-operations.md
+++ b/content/tutorials/5.extensions/use-npm-packages-in-custom-operations.md
@@ -118,7 +118,7 @@ code has no negative effect.
## Use the Operation
-In the Directus Data Studio, open the Flows section in Settings. Create a new flow with a manual trigger. Select the
+In the Directus Data Studio, open the Flows module. Create a new flow with a manual trigger. Select the
collection(s) to include this button on.
Add a new step (operation) by clicking the tick/plus on the card, then choose **Lodash Camel Case** from the list. In
diff --git a/content/tutorials/7.workflows/generate-images-with-dall-e-and-directus-automate.md b/content/tutorials/7.workflows/generate-images-with-dall-e-and-directus-automate.md
index ea20eb7e..4919ae68 100644
--- a/content/tutorials/7.workflows/generate-images-with-dall-e-and-directus-automate.md
+++ b/content/tutorials/7.workflows/generate-images-with-dall-e-and-directus-automate.md
@@ -22,7 +22,7 @@ In your Directus project, create a new collection called `generations` and add a
## Create Flow Trigger
-In the Settings Module, go to the Flows section and create a new Flow called “Generate Image”. Use a Manual Flow Trigger and select the Generations collection. In the Location dropdown, select Item Page Only. Finally, select Require Confirmation.
+In the Flows module, create a new Flow called “Generate Image”. Use a Manual Flow Trigger and select the Generations collection. In the Location dropdown, select Item Page Only. Finally, select Require Confirmation.
[Confirmation Dialogs](/guides/automate/triggers) are shown in a modal before a flow is triggered, and any data entered is made available to the flow.
diff --git a/content/tutorials/7.workflows/generate-social-posts-with-gpt-4-and-directus-automate.md b/content/tutorials/7.workflows/generate-social-posts-with-gpt-4-and-directus-automate.md
index 468940a8..ad155a50 100644
--- a/content/tutorials/7.workflows/generate-social-posts-with-gpt-4-and-directus-automate.md
+++ b/content/tutorials/7.workflows/generate-social-posts-with-gpt-4-and-directus-automate.md
@@ -23,7 +23,7 @@ In your Directus project, create a new collection called `posts` with the follow
## Create Flow Trigger & Read Data
-In the Settings Module, go to the Flows section and create a new Flow called “Generate Social Post”. Use a Manual Flow Trigger and select the Posts collection.
+In the Flows module, create a new Flow called “Generate Social Post”. Use a Manual Flow Trigger and select the Posts collection.
The trigger will only return the `ID` of the article, but the whole post is needed to send to OpenAI. Create a **Read Data** operation called "Article" and give it full access permissions. On the Articles collection, access the `{{$trigger.body.keys[0]}}` item.
diff --git a/public/img/103e850c-54ff-45d6-88f6-8aac7f00a617.webp b/public/img/103e850c-54ff-45d6-88f6-8aac7f00a617.webp
index ec38d766..8ca6bd5a 100644
Binary files a/public/img/103e850c-54ff-45d6-88f6-8aac7f00a617.webp and b/public/img/103e850c-54ff-45d6-88f6-8aac7f00a617.webp differ
diff --git a/public/img/166bfc26-b9c0-4609-82da-6c7930d226dc.webp b/public/img/166bfc26-b9c0-4609-82da-6c7930d226dc.webp
new file mode 100644
index 00000000..15bc7ef6
Binary files /dev/null and b/public/img/166bfc26-b9c0-4609-82da-6c7930d226dc.webp differ
diff --git a/public/img/222e9acb-ae30-47be-b59f-0125c10fc58f.webp b/public/img/222e9acb-ae30-47be-b59f-0125c10fc58f.webp
index 6fc9a16a..2c20ed7c 100644
Binary files a/public/img/222e9acb-ae30-47be-b59f-0125c10fc58f.webp and b/public/img/222e9acb-ae30-47be-b59f-0125c10fc58f.webp differ
diff --git a/public/img/2c56ca1f-e5ce-47c1-864d-1b7c25496870.webp b/public/img/2c56ca1f-e5ce-47c1-864d-1b7c25496870.webp
index ad0fec9e..efd6ea4c 100644
Binary files a/public/img/2c56ca1f-e5ce-47c1-864d-1b7c25496870.webp and b/public/img/2c56ca1f-e5ce-47c1-864d-1b7c25496870.webp differ
diff --git a/public/img/2e6dec0e-2550-4c13-8cf0-0bca786b71cc.webp b/public/img/2e6dec0e-2550-4c13-8cf0-0bca786b71cc.webp
index 0fc6ef4f..54439612 100644
Binary files a/public/img/2e6dec0e-2550-4c13-8cf0-0bca786b71cc.webp and b/public/img/2e6dec0e-2550-4c13-8cf0-0bca786b71cc.webp differ
diff --git a/public/img/300dc3af-93b2-4782-b2eb-0d07aeb51c69.webp b/public/img/300dc3af-93b2-4782-b2eb-0d07aeb51c69.webp
index 32ea385f..22a6536e 100644
Binary files a/public/img/300dc3af-93b2-4782-b2eb-0d07aeb51c69.webp and b/public/img/300dc3af-93b2-4782-b2eb-0d07aeb51c69.webp differ
diff --git a/public/img/30b3f744-dc45-4f59-8c86-ca07f8e4e3be.webp b/public/img/30b3f744-dc45-4f59-8c86-ca07f8e4e3be.webp
index 50db4095..fec916ac 100644
Binary files a/public/img/30b3f744-dc45-4f59-8c86-ca07f8e4e3be.webp and b/public/img/30b3f744-dc45-4f59-8c86-ca07f8e4e3be.webp differ
diff --git a/public/img/342dc05a-b963-4778-837c-94968ef86245.webp b/public/img/342dc05a-b963-4778-837c-94968ef86245.webp
index 11ca01fd..4f72f4be 100644
Binary files a/public/img/342dc05a-b963-4778-837c-94968ef86245.webp and b/public/img/342dc05a-b963-4778-837c-94968ef86245.webp differ
diff --git a/public/img/3c337848-a40f-4e62-9370-c943e8d5e761.webp b/public/img/3c337848-a40f-4e62-9370-c943e8d5e761.webp
index 5558a429..93fe42f1 100644
Binary files a/public/img/3c337848-a40f-4e62-9370-c943e8d5e761.webp and b/public/img/3c337848-a40f-4e62-9370-c943e8d5e761.webp differ
diff --git a/public/img/4c072da6-b396-47ad-85ff-f300e3eb9661.webp b/public/img/4c072da6-b396-47ad-85ff-f300e3eb9661.webp
index 00637b29..bf663c28 100644
Binary files a/public/img/4c072da6-b396-47ad-85ff-f300e3eb9661.webp and b/public/img/4c072da6-b396-47ad-85ff-f300e3eb9661.webp differ
diff --git a/public/img/4e26a660-0100-4f32-8e85-d5e618734c94.webp b/public/img/4e26a660-0100-4f32-8e85-d5e618734c94.webp
index 7dda44be..4ae7ddf4 100644
Binary files a/public/img/4e26a660-0100-4f32-8e85-d5e618734c94.webp and b/public/img/4e26a660-0100-4f32-8e85-d5e618734c94.webp differ
diff --git a/public/img/62eb2117-c067-466b-a5b2-75e81dc3cad9.webp b/public/img/62eb2117-c067-466b-a5b2-75e81dc3cad9.webp
index c1041afd..8048e6af 100644
Binary files a/public/img/62eb2117-c067-466b-a5b2-75e81dc3cad9.webp and b/public/img/62eb2117-c067-466b-a5b2-75e81dc3cad9.webp differ
diff --git a/public/img/64dc472d-3846-4d3e-84fa-9bd708096017.webp b/public/img/64dc472d-3846-4d3e-84fa-9bd708096017.webp
new file mode 100644
index 00000000..9544d7e2
Binary files /dev/null and b/public/img/64dc472d-3846-4d3e-84fa-9bd708096017.webp differ
diff --git a/public/img/6a5fbeab-fd3e-48c2-bf4b-8ba709b87878.webp b/public/img/6a5fbeab-fd3e-48c2-bf4b-8ba709b87878.webp
index 1ecd7fee..f7d4280e 100644
Binary files a/public/img/6a5fbeab-fd3e-48c2-bf4b-8ba709b87878.webp and b/public/img/6a5fbeab-fd3e-48c2-bf4b-8ba709b87878.webp differ
diff --git a/public/img/724d4aae-7dd7-4d36-8c1c-88e8cb59a9ee.webp b/public/img/724d4aae-7dd7-4d36-8c1c-88e8cb59a9ee.webp
index e53e6b30..83b44916 100644
Binary files a/public/img/724d4aae-7dd7-4d36-8c1c-88e8cb59a9ee.webp and b/public/img/724d4aae-7dd7-4d36-8c1c-88e8cb59a9ee.webp differ
diff --git a/public/img/753d64fc-56cb-4e8d-8007-8343e6a1438e.webp b/public/img/753d64fc-56cb-4e8d-8007-8343e6a1438e.webp
index 3ae12734..e6c0bbd5 100644
Binary files a/public/img/753d64fc-56cb-4e8d-8007-8343e6a1438e.webp and b/public/img/753d64fc-56cb-4e8d-8007-8343e6a1438e.webp differ
diff --git a/public/img/7942ab7e-dbf6-43dc-8a8b-77b1a229cddc.webp b/public/img/7942ab7e-dbf6-43dc-8a8b-77b1a229cddc.webp
index 2c1a7811..de57fb87 100644
Binary files a/public/img/7942ab7e-dbf6-43dc-8a8b-77b1a229cddc.webp and b/public/img/7942ab7e-dbf6-43dc-8a8b-77b1a229cddc.webp differ
diff --git a/public/img/857d4e58-24b5-4a8c-be42-eed011b95164.webp b/public/img/857d4e58-24b5-4a8c-be42-eed011b95164.webp
new file mode 100644
index 00000000..166ed668
Binary files /dev/null and b/public/img/857d4e58-24b5-4a8c-be42-eed011b95164.webp differ
diff --git a/public/img/85932180-168e-44d6-814d-bb29bf76a713.webp b/public/img/85932180-168e-44d6-814d-bb29bf76a713.webp
index 4e8ef359..7543fc10 100644
Binary files a/public/img/85932180-168e-44d6-814d-bb29bf76a713.webp and b/public/img/85932180-168e-44d6-814d-bb29bf76a713.webp differ
diff --git a/public/img/87a4a8ea-3a07-49d4-b1c4-e4a791e0b293.webp b/public/img/87a4a8ea-3a07-49d4-b1c4-e4a791e0b293.webp
index 20f27ef6..46cc4171 100644
Binary files a/public/img/87a4a8ea-3a07-49d4-b1c4-e4a791e0b293.webp and b/public/img/87a4a8ea-3a07-49d4-b1c4-e4a791e0b293.webp differ
diff --git a/public/img/986cbc29-01bb-4b4d-8207-b1ff1b8b4eab.webp b/public/img/986cbc29-01bb-4b4d-8207-b1ff1b8b4eab.webp
index 8c10aef0..4c3473b8 100644
Binary files a/public/img/986cbc29-01bb-4b4d-8207-b1ff1b8b4eab.webp and b/public/img/986cbc29-01bb-4b4d-8207-b1ff1b8b4eab.webp differ
diff --git a/public/img/bdc87668-f651-41d5-af35-1b3b5b8cace0.webp b/public/img/bdc87668-f651-41d5-af35-1b3b5b8cace0.webp
index 48121e18..bb73e068 100644
Binary files a/public/img/bdc87668-f651-41d5-af35-1b3b5b8cace0.webp and b/public/img/bdc87668-f651-41d5-af35-1b3b5b8cace0.webp differ
diff --git a/public/img/be18c61d-1a80-4251-8d33-547943318f6a.webp b/public/img/be18c61d-1a80-4251-8d33-547943318f6a.webp
index 9115cf94..cf75c88d 100644
Binary files a/public/img/be18c61d-1a80-4251-8d33-547943318f6a.webp and b/public/img/be18c61d-1a80-4251-8d33-547943318f6a.webp differ
diff --git a/public/img/bf02c5e9-ebe2-4bf4-9fc5-3c00811a7a8a.webp b/public/img/bf02c5e9-ebe2-4bf4-9fc5-3c00811a7a8a.webp
index 25e12c29..5dccad9a 100644
Binary files a/public/img/bf02c5e9-ebe2-4bf4-9fc5-3c00811a7a8a.webp and b/public/img/bf02c5e9-ebe2-4bf4-9fc5-3c00811a7a8a.webp differ
diff --git a/public/img/d32100e6-1238-4234-83be-93eb3427b8d2.webp b/public/img/d32100e6-1238-4234-83be-93eb3427b8d2.webp
index 58e6df6e..3654ef94 100644
Binary files a/public/img/d32100e6-1238-4234-83be-93eb3427b8d2.webp and b/public/img/d32100e6-1238-4234-83be-93eb3427b8d2.webp differ
diff --git a/public/img/f5f5d71c-462f-4a45-a6bc-6ad1ed3a8462.webp b/public/img/f5f5d71c-462f-4a45-a6bc-6ad1ed3a8462.webp
index c4ab9070..814262b5 100644
Binary files a/public/img/f5f5d71c-462f-4a45-a6bc-6ad1ed3a8462.webp and b/public/img/f5f5d71c-462f-4a45-a6bc-6ad1ed3a8462.webp differ
diff --git a/public/img/f8004890-d889-4a24-a168-c1cbb48ee435.webp b/public/img/f8004890-d889-4a24-a168-c1cbb48ee435.webp
new file mode 100644
index 00000000..77d2e555
Binary files /dev/null and b/public/img/f8004890-d889-4a24-a168-c1cbb48ee435.webp differ
diff --git a/public/img/fb4db8f8-41b4-4908-84f0-c06f064ced2f.webp b/public/img/fb4db8f8-41b4-4908-84f0-c06f064ced2f.webp
index cfdb198b..bf663c28 100644
Binary files a/public/img/fb4db8f8-41b4-4908-84f0-c06f064ced2f.webp and b/public/img/fb4db8f8-41b4-4908-84f0-c06f064ced2f.webp differ