diff --git a/.imgproxy-docs/processing.md b/.imgproxy-docs/processing.md
new file mode 100644
index 0000000..cd70077
--- /dev/null
+++ b/.imgproxy-docs/processing.md
@@ -0,0 +1,1195 @@
+---
+description: Learn about how to process images with imgproxy
+---
+
+# Processing an image
+
+Processing images with imgproxy is really easy: just send an HTTP `GET` request to imgproxy and imgproxy will respond with a processed image.
+
+:::tip
+imgproxy responds with an image file and uses an `image/*` `Content-Type` header, so you can put imgproxy's URLs right into `src` attributes of your `
` HTML tags or into `url()` CSS values
+:::
+
+The request URL path should consist of a [signature](#signature), [processing options](#processing-options), a [source URL](#source-url), and optionally an [extension](#extension), like this:
+
+```imgproxy_url_template
+http://imgproxy.example.com/%signature/%processing_options/plain/%source_url@%extension
+http://imgproxy.example.com/%signature/%processing_options/%encoded_source_url.%extension
+http://imgproxy.example.com/%signature/%processing_options/enc/%encrypted_source_url.%extension
+```
+
+Check out the [example](#example) at the end of this guide.
+
+## Signature
+
+:::warning
+The signature part should always be present in a URL. If the signature check is disabled (no key/salt pairs are provided), the signature part may contain anything (for example, `unsafe` or `_`).
+:::
+
+A signature protects your URL from being altered by an attacker. It is highly recommended to sign imgproxy URLs when imgproxy is being used in production.
+
+Once you set up your [URL signature](../configuration/options.mdx#url-signature), check out the [Signing the URL](./signing_url.mdx) guide to find out how to sign your URLs. Otherwise, since the signature still needs to be present, feel free to use any string here.
+
+## Processing options
+
+Processing options should be specified as URL parts divided by slashes (`/`). A processing option has the following format:
+
+```imgproxy_url_option
+%option_name:%argument1:%argument2:...:%argumentN
+```
+
+:::tip
+You can redefine the arguments separator with the the [IMGPROXY_ARGUMENTS_SEPARATOR](../configuration/options.mdx#IMGPROXY_ARGUMENTS_SEPARATOR) config. For example, if you set `IMGPROXY_ARGUMENTS_SEPARATOR=","`, processing options will have the following format:
+
+```
+%option_name,%argument1,%argument2,...,%argumentN
+```
+:::
+
+:::info
+The list of processing options does not define imgproxy's processing pipeline. Instead, imgproxy already comes with a specific, built-in image processing pipeline for maximum performance. Read more about this in the [About processing pipeline](../about_processing_pipeline.mdx) guide.
+:::
+
+imgproxy supports the following processing options:
+
+### Resize
+
+```imgproxy_url_option
+resize:%resizing_type:%width:%height:%enlarge:%extend
+rs:%resizing_type:%width:%height:%enlarge:%extend
+```
+
+This is a meta-option that defines the [resizing type](#resizing-type), [width](#width), [height](#height), [enlarge](#enlarge), and [extend](#extend). All arguments are optional and can be omitted to use their default values.
+
+### Size
+
+```imgproxy_url_option
+size:%width:%height:%enlarge:%extend
+s:%width:%height:%enlarge:%extend
+```
+
+This is a meta-option that defines the [width](#width), [height](#height), [enlarge](#enlarge), and [extend](#extend). All arguments are optional and can be omitted to use their default values.
+
+### Resizing type
+
+```imgproxy_url_option
+resizing_type:%resizing_type
+rt:%resizing_type
+```
+
+Defines how imgproxy will resize the source image. Supported resizing types are:
+
+* `fit`: resizes the image while keeping aspect ratio to fit a given size.
+* `fill`: resizes the image while keeping aspect ratio to fill a given size and crops projecting parts.
+* `fill-down`: the same as `fill`, but if the resized image is smaller than the requested size, imgproxy will crop the result to keep the requested aspect ratio.
+* `force`: resizes the image without keeping the aspect ratio.
+* `auto`: if both source and resulting dimensions have the same orientation (portrait or landscape), imgproxy will use `fill`. Otherwise, it will use `fit`.
+
+Default: `fit`
+
+### Resizing algorithm ((pro)) {#resizing-algorithm}
+
+```imgproxy_url_option
+resizing_algorithm:%algorithm
+ra:%algorithm
+```
+
+Defines the algorithm that imgproxy will use for resizing. Supported algorithms are `nearest`, `linear`, `cubic`, `lanczos2`, and `lanczos3`.
+
+Default: `lanczos3`
+
+### Width
+
+```imgproxy_url_option
+width:%width
+w:%width
+```
+
+Defines the width of the resulting image. When set to `0`, imgproxy will calculate width using the defined height and source aspect ratio. When set to `0` and resizing type is `force`, imgproxy will keep the original width.
+
+Default: `0`
+
+### Height
+
+```imgproxy_url_option
+height:%height
+h:%height
+```
+
+Defines the height of the resulting image. When set to `0`, imgproxy will calculate resulting height using the defined width and source aspect ratio. When set to `0` and resizing type is `force`, imgproxy will keep the original height.
+
+Default: `0`
+
+### Min width
+
+```imgproxy_url_option
+min-width:%width
+mw:%width
+```
+
+Defines the minimum width of the resulting image.
+
+:::warning
+When both `width` and `min-width` are set, the final image will be cropped according to `width`, so use this combination with care.
+:::
+
+Default: `0`
+
+### Min height
+
+```imgproxy_url_option
+min-height:%height
+mh:%height
+```
+
+Defines the minimum height of the resulting image.
+
+:::warning
+When both `height` and `min-height` are set, the final image will be cropped according to `height`, so use this combination with care.
+:::
+
+Default: `0`
+
+### Zoom
+
+```imgproxy_url_option
+zoom:%zoom_x_y
+z:%zoom_x_y
+
+zoom:%zoom_x:%zoom_y
+z:%zoom_x:%zoom_y
+```
+
+When set, imgproxy will multiply the image dimensions according to these factors. The values must be greater than 0.
+
+Can be combined with `width` and `height` options. In this case, imgproxy calculates scale factors for the provided size and then multiplies it with the provided zoom factors.
+
+:::info
+Unlike the `dpr` option, the `zoom` option doesn't affect gravities offsets, watermark offsets, and paddings.
+:::
+
+Default: `1`
+
+### Dpr
+
+```imgproxy_url_option
+dpr:%dpr
+```
+
+When set, imgproxy will multiply the image dimensions according to this factor for HiDPI (Retina) devices. The value must be greater than 0.
+
+:::info
+The `dpr` option affects gravities offsets, watermark offsets, and paddings to make the resulting image structures with and without the `dpr` option applied match.
+:::
+
+Default: `1`
+
+### Enlarge
+
+```imgproxy_url_option
+enlarge:%enlarge
+el:%enlarge
+```
+
+When set to `1`, `t` or `true`, imgproxy will enlarge the image if it is smaller than the given size.
+
+Default: `false`
+
+### Extend
+
+```imgproxy_url_option
+extend:%extend:%gravity
+ex:%extend:%gravity
+```
+
+* When `extend` is set to `1`, `t` or `true`, imgproxy will extend the image if it is smaller than the given size.
+* `gravity` _(optional)_ accepts the same values as the [gravity](#gravity) option, except `sm`, `obj`, and `objw`. When `gravity` is not set, imgproxy will use `ce` gravity without offsets.
+
+Default: `false:ce:0:0`
+
+### Extend aspect ratio
+
+```imgproxy_url_option
+extend_aspect_ratio:%extend:%gravity
+extend_ar:%extend:%gravity
+exar:%extend:%gravity
+```
+
+* When `extend` is set to `1`, `t` or `true`, imgproxy will extend the image to the requested aspect ratio.
+* `gravity` _(optional)_ accepts the same values as the [gravity](#gravity) option, except `sm`, `obj`, and `objw`. When `gravity` is not set, imgproxy will use `ce` gravity without offsets.
+
+Default: `false:ce:0:0`
+
+### Gravity
+
+```imgproxy_url_option
+gravity:%type:%x_offset:%y_offset
+g:%type:%x_offset:%y_offset
+```
+
+When imgproxy needs to cut some parts of the image, it is guided by the gravity option.
+
+* `type` - specifies the gravity type. Available values:
+ * `no`: north (top edge)
+ * `so`: south (bottom edge)
+ * `ea`: east (right edge)
+ * `we`: west (left edge)
+ * `noea`: north-east (top-right corner)
+ * `nowe`: north-west (top-left corner)
+ * `soea`: south-east (bottom-right corner)
+ * `sowe`: south-west (bottom-left corner)
+ * `ce`: center
+* `x_offset`, `y_offset` - (optional) specifies the gravity offset along the X and Y axes:
+ * When `x_offset` or `y_offset` is greater than or equal to `1`, imgproxy treats it as an absolute value.
+ * When `x_offset` or `y_offset` is less than `1`, imgproxy treats it as a relative value.
+
+Default: `ce:0:0`
+
+**Special gravities**:
+
+* `gravity:sm`: smart gravity. `libvips` detects the most "interesting" section of the image and considers it as the center of the resulting image. Offsets are not applicable here.
+* `gravity:obj:%class_name1:%class_name2:...:%class_nameN`: ((pro)) object-oriented gravity. imgproxy [detects objects](../features/object_detection.mdx) of provided classes on the image and calculates the resulting image center using their positions. If class names are omited, imgproxy will use all the detected objects. Also, you can use the `all` pseudo-class to use all the detected objects.
+* `gravity:objw:%class_name1:%class_weight1:%class_name2:%class_weight2:...:%class_nameN:%class_weightN`: ((pro)) object-oriented gravity with weights. The same as `gravity:obj` but with custom weights for each class. You can use the `all` pseudo-class to set the weight for all the detected objects. For example, `gravity:objw:all:2:face:3` will set the weight of all the detected objects to `2` and the weight of the detected faces to `3`. The default weight is `1`.
+* `gravity:fp:%x:%y`: the gravity focus point. `x` and `y` are floating point numbers between 0 and 1 that define the coordinates of the center of the resulting image. Treat 0 and 1 as right/left for `x` and top/bottom for `y`.
+
+### Objcts position ((pro)) {#objects-position}
+
+```imgproxy_url_option
+objects_position:%type:%x_offset:%y_offset
+obj_pos:%type:%x_offset:%y_offset
+op:%type:%x_offset:%y_offset
+```
+
+When imgproxy needs to cut some parts of the image, and the `obj`/`objw` gravity is used, the `objects_position` option allows you to adjust the position of the detected objects on the resulting image.
+
+* `type` - specifies the position type. Available values:
+ * `no`: north (top edge)
+ * `so`: south (bottom edge)
+ * `ea`: east (right edge)
+ * `we`: west (left edge)
+ * `noea`: north-east (top-right corner)
+ * `nowe`: north-west (top-left corner)
+ * `soea`: south-east (bottom-right corner)
+ * `sowe`: south-west (bottom-left corner)
+ * `ce`: center
+* `x_offset`, `y_offset` - (optional) specifies the position offset along the X and Y axes.
+
+Default: `ce:0:0`
+
+**Special positions**:
+
+* `objects_position:fp:%x:%y`: the focus point position. `x` and `y` are floating point numbers between 0 and 1 that define the coordinates of the center of the objects' area in the resulting image. Treat 0 and 1 as right/left for `x` and top/bottom for `y`.
+* `objects_position:prop`: the proportional position. imgproxy will try to set object offsets in the resulting image proportional to their offsets in the original image. This position type allows the picture scene to be maintained after cropping.
+
+### Crop
+
+```imgproxy_url_option
+crop:%width:%height:%gravity
+c:%width:%height:%gravity
+```
+
+Defines an area of the image to be processed (crop before resize).
+
+* `width` and `height` define the size of the area:
+ * When `width` or `height` is greater than or equal to `1`, imgproxy treats it as an absolute value.
+ * When `width` or `height` is less than `1`, imgproxy treats it as a relative value.
+ * When `width` or `height` is set to `0`, imgproxy will use the full width/height of the source image.
+* `gravity` _(optional)_ accepts the same values as the [gravity](#gravity) option. When `gravity` is not set, imgproxy will use the value of the [gravity](#gravity) option.
+
+### Trim
+
+```imgproxy_url_option
+trim:%threshold:%color:%equal_hor:%equal_ver
+t:%threshold:%color:%equal_hor:%equal_ver
+```
+
+Removes surrounding background.
+
+* `threshold` - color similarity tolerance.
+* `color` - _(optional)_ a hex-coded value of the color that needs to be cut off.
+* `equal_hor` - _(optional)_ set to `1`, `t` or `true`, imgproxy will cut only equal parts from left and right sides. That means that if 10px of background can be cut off from the left and 5px from the right, then 5px will be cut off from both sides. For example, this can be useful if objects on your images are centered but have non-symmetrical shadow.
+* `equal_ver` - _(optional)_ acts like `equal_hor` but for top/bottom sides.
+
+:::warning
+Trimming requires an image to be fully loaded into memory. This disables scale-on-load and significantly increases memory usage and processing time. Use it carefully with large images.
+:::
+
+:::info
+If you know background color of your images then setting it explicitly via `color` will also save some resources because imgproxy won't need to automatically detect it.
+:::
+
+:::info
+Use a `color` value of `FF00FF` for trimming transparent backgrounds as imgproxy uses magenta as a transparency key.
+:::
+
+:::info
+The trimming of animated images is not supported.
+:::
+
+### Padding
+
+```imgproxy_url_option
+padding:%top:%right:%bottom:%left
+pd:%top:%right:%bottom:%left
+```
+
+Defines padding size using CSS-style syntax. All arguments are optional but at least one dimension must be set. Padded space is filled according to the [background](#background) option.
+
+* `top` - top padding (and for all other sides if they haven't been explicitly set)
+* `right` - right padding (and left if it hasn't been explicitly set)
+* `bottom` - bottom padding
+* `left` - left padding
+
+:::info
+Padding is applied after all image transformations (except watermarking) and enlarges the generated image. This means that if your resize dimensions were 100x200px and you applied the `padding:10` option, then you will end up with an image with dimensions of 120x220px.
+:::
+
+:::info
+Padding follows the [dpr](#dpr) option so it will also be scaled if you've set it.
+:::
+
+### Auto rotate
+
+```imgproxy_url_option
+auto_rotate:%auto_rotate
+ar:%auto_rotate
+```
+
+When set to `1`, `t` or `true`, imgproxy will automatically rotate images based on the EXIF Orientation parameter (if available in the image meta data). The orientation tag will be removed from the image in all cases. Normally this is controlled by the [IMGPROXY_AUTO_ROTATE](../configuration/options.mdx#IMGPROXY_AUTO_ROTATE) configuration but this processing option allows the configuration to be set for each request.
+
+### Rotate
+
+```imgproxy_url_option
+rotate:%angle
+rot:%angle
+```
+
+Rotates the image on the specified angle. The orientation from the image metadata is applied before the rotation unless autorotation is disabled.
+
+:::info
+Only 0, 90, 180, 270, etc., degree angles are supported.
+:::
+
+Default: 0
+
+### Background
+
+```imgproxy_url_option
+background:%R:%G:%B
+bg:%R:%G:%B
+
+background:%hex_color
+bg:%hex_color
+```
+
+When set, imgproxy will fill the resulting image background with the specified color. `R`, `G`, and `B` are the red, green and blue channel values of the background color (0-255). `hex_color` is a hex-coded value of the color. Useful when you convert an image with alpha-channel to JPEG.
+
+With no arguments provided, disables any background manipulations.
+
+Default: disabled
+
+### Background alpha ((pro)) {#background-alpha}
+
+```imgproxy_url_option
+background_alpha:%alpha
+bga:%alpha
+```
+
+Adds an alpha channel to `background`. The value of `alpha` is a positive floating point number between `0` and `1`.
+
+Default: 1
+
+### Adjust ((pro)) {#adjust}
+
+```imgproxy_url_option
+adjust:%brightness:%contrast:%saturation
+a:%brightness:%contrast:%saturation
+```
+
+This is a meta-option that defines the [brightness](#brightness), [contrast](#contrast), and [saturation](#saturation). All arguments are optional and can be omitted to use their default values.
+
+### Brightness ((pro)) {#brightness}
+
+```imgproxy_url_option
+brightness:%brightness
+br:%brightness
+```
+
+When set, imgproxy will adjust brightness of the resulting image. `brightness` is an integer number ranging from `-255` to `255`.
+
+Default: 0
+
+### Contrast ((pro)) {#contrast}
+
+```imgproxy_url_option
+contrast:%contrast
+co:%contrast
+```
+
+When set, imgproxy will adjust the contrast of the resulting image. `contrast` is a positive floating point number, where a value of `1` leaves the contrast unchanged.
+
+Default: 1
+
+### Saturation ((pro)) {#saturation}
+
+```imgproxy_url_option
+saturation:%saturation
+sa:%saturation
+```
+
+When set, imgproxy will adjust saturation of the resulting image. `saturation` is a positive floating-point number, where a value of `1` leaves the saturation unchanged.
+
+Default: 1
+
+### Monochrome ((pro)) {#monochrome}
+
+```imgproxy_url_option
+monochrome:%intensity:%color
+mc:%intensity:%color
+```
+
+When `intensity` is greater than zero, imgproxy will convert the resulting image to monochrome.
+
+* `intensity` - a positive floating-point number between `0` and `1` that defines the intensity of the monochrome effect.
+* `color` - _(optional)_ a hex-coded value of the color that will be used as a base for the monochrome palette.
+
+Default: `0:b3b3b3`
+
+### Duotone ((pro)) {#duotone}
+
+```imgproxy_url_option
+duotone:%intensity:%color1:%color2
+dt:%intensity:%color1:%color2
+```
+
+When `intensity` is greater than zero, imgproxy will convert the resulting image to duotone.
+
+* `intensity` - a positive floating-point number between `0` and `1` that defines the intensity of the duotone effect.
+* `color1`, `color2` - _(optional)_ hex-coded values of the colors that will be used as a base for the duotone palette. `color1` is the color for the dark areas, `color2` is the color for the light areas.
+
+Default: `0:000000:ffffff`
+
+### Blur
+
+```imgproxy_url_option
+blur:%sigma
+bl:%sigma
+```
+
+When set, imgproxy will apply a gaussian blur filter to the resulting image. The value of `sigma` defines the size of the mask imgproxy will use.
+
+Default: disabled
+
+### Sharpen
+
+```imgproxy_url_option
+sharpen:%sigma
+sh:%sigma
+```
+
+When set, imgproxy will apply the sharpen filter to the resulting image. The value of `sigma` defines the size of the mask imgproxy will use.
+
+As an approximate guideline, use 0.5 sigma for 4 pixels/mm (display resolution), 1.0 for 12 pixels/mm and 1.5 for 16 pixels/mm (300 dpi == 12 pixels/mm).
+
+Default: disabled
+
+### Pixelate
+
+```imgproxy_url_option
+pixelate:%size
+pix:%size
+```
+
+When set, imgproxy will apply the pixelate filter to the resulting image. The value of `size` defines individual pixel size.
+
+Default: disabled
+
+### Unsharp masking ((pro)) {#unsharp-masking}
+
+```imgproxy_url_option
+unsharp_masking:%mode:%weight:%divider
+ush:%mode:%weight:%divider
+```
+
+Allows redefining unsharp masking options. All arguments have the same meaning as [Unsharp masking](../configuration/options.mdx#unsharp-masking) configs. All arguments are optional and can be omitted.
+
+### Blur detections ((pro)) {#blur-detections}
+
+```imgproxy_url_option
+blur_detections:%sigma:%class_name1:%class_name2:...:%class_nameN
+bd:%sigma:%class_name1:%class_name2:...:%class_nameN
+```
+
+imgproxy [detects objects](../features/object_detection.mdx) of the provided classes and blurs them. If class names are omitted, imgproxy blurs all the detected objects.
+
+The value of `sigma` defines the size of the mask imgproxy will use.
+
+### Draw detections ((pro)) {#draw-detections}
+
+```imgproxy_url_option
+draw_detections:%draw:%class_name1:%class_name2:...:%class_nameN
+dd:%draw:%class_name1:%class_name2:...:%class_nameN
+```
+
+When `draw` is set to `1`, `t` or `true`, imgproxy [detects objects](../features/object_detection.mdx) of the provided classes and draws their bounding boxes, classes, and confidences. If class names are omitted, imgproxy draws the bounding boxes of all the detected objects.
+
+### Colorize ((pro)) {#colorize}
+
+```imgproxy_url_option
+colorize:%opacity:%color:%keep_alpha
+col:%opacity:%color:%keep_alpha
+```
+
+Places a color overlay on the processed image.
+
+* `opacity`: specifies the overlay opacity. When set to `0`, overlay is not applied.
+* `color`: _(optional)_ a hex-coded value of the overlay color. Default: `000` (black).
+* `keep_alpha`: _(optional)_ when set to `1`, `t` or `true`, imgproxy will keep the alpha channel of the original image. Default: `false`
+
+### Gradient ((pro)) {#gradient}
+
+```imgproxy_url_option
+gradient:%opacity:%color:%direction:%start:%stop
+gr:%opacity:%color:%direction:%start:%stop
+```
+
+Places a gradient on the processed image. The placed gradient transitions from transparency to the specified color.
+
+* `opacity`: specifies gradient opacity. When set to `0`, gradient is not applied.
+* `color`: _(optional)_ a hex-coded value of the gradient color. Default: `000` (black).
+* `direction`: _(optional)_ specifies the direction of the gradient. The direction can be specified in two ways:
+ * An angle in degrees (clockwise). For example, `0` will create a gradient from top to down (the top side is transparrent, the bottom side is opaque), and `90` will create a gradient from right to left (the right side is transparrent, the left side is opaque).
+ * A string value. Available values:
+ * `down`: _(default)_ the top side of the gradient is transparrent, the bottom side is opaque
+ * `up`: the bottom side of the gradient is transparrent, the top side is opaque
+ * `right`: the left side of the gradient is transparrent, the right side is opaque
+ * `left`: the right side of the gradient is transparrent, the left side is opaque
+* `start`, `stop`: floating point numbers that define relative positions of where the gradient starts and where it ends. Default values are `0.0` and `1.0` respectively.
+
+### Watermark
+
+```imgproxy_url_option
+watermark:%opacity:%position:%x_offset:%y_offset:%scale
+wm:%opacity:%position:%x_offset:%y_offset:%scale
+```
+
+Places a watermark on the processed image.
+
+* `opacity`: watermark opacity modifier. Final opacity is calculated like `base_opacity * opacity`.
+* `position`: (optional) specifies the position of the watermark. Available values:
+ * `ce`: (default) center
+ * `no`: north (top edge)
+ * `so`: south (bottom edge)
+ * `ea`: east (right edge)
+ * `we`: west (left edge)
+ * `noea`: north-east (top-right corner)
+ * `nowe`: north-west (top-left corner)
+ * `soea`: south-east (bottom-right corner)
+ * `sowe`: south-west (bottom-left corner)
+ * `re`: repeat and tile the watermark to fill the entire image
+ * `ch`: ((pro)) same as `re` but watermarks are placed in a chessboard order
+* `x_offset`, `y_offset` - (optional) specify watermark offset by X and Y axes:
+ * When `x_offset` or `y_offset` is greater than or equal to `1` or less than or equal to `-1`, imgproxy treats it as an absolute value.
+ * When `x_offset` or `y_offset` is less than `1` and greater than `-1`, imgproxy treats it as a relative value.
+ * When using `re` or `ch` position, these values define the spacing between the tiles.
+* `scale`: (optional) a floating-point number that defines the watermark size relative to the resultant image size. When set to `0` or when omitted, the watermark size won't be changed.
+
+Default: disabled
+
+### Watermark URL ((pro)) {#watermark-url}
+
+```imgproxy_url_option
+watermark_url:%url
+wmu:%url
+```
+
+When set, imgproxy will use the image from the specified URL as a watermark. `url` is the URL-safe Base64-encoded URL of the custom watermark.
+
+Default: blank
+
+### Watermark text ((pro)) {#watermark-text}
+
+```imgproxy_url_option
+watermark_text:%text
+wmt:%text
+```
+
+When set, imgproxy will generate an image from the provided text and use it as a watermark. `text` is the URL-safe Base64-encoded text of the custom watermark.
+
+By default, the text color is black and the font is `sans 16`. You can use [Pango markup](https://docs.gtk.org/Pango/pango_markup.html) in the `text` value to change the style.
+
+If you want to use a custom font, you need to put it in `/usr/share/fonts` inside a container.
+
+Default: blank
+
+### Watermark size ((pro)) {#watermark-size}
+
+```imgproxy_url_option
+watermark_size:%width:%height
+wms:%width:%height
+```
+
+Defines the desired width and height of the watermark. imgproxy always uses `fit` resizing type when resizing watermarks and enlarges them when needed.
+
+When `%width` is set to `0`, imgproxy will calculate the width using the defined height and watermark's aspect ratio.
+
+When `%height` is set to `0`, imgproxy will calculate the height using the defined width and watermark's aspect ratio.
+
+:::info
+This processing option takes effect only when the `scale` argument of the `watermark` option is set to zero.
+:::
+
+Default: `0:0`
+
+### Watermark rotate ((pro)) {#watermark-rotate}
+
+```imgproxy_url_option
+watermark_rotate:%angle
+wm_rot:%angle
+wmr:%angle
+```
+
+Rotates the watermark on the specified angle (clockwise). The orientation from the image metadata is applied before the rotation.
+
+Default: `0`
+
+### Watermark shadow ((pro)) {#watermark-shadow}
+
+```imgproxy_url_option
+watermark_shadow:%sigma
+wmsh:%sigma
+```
+
+When set, imgproxy will add a shadow to the watermark. The value of `sigma` defines the size of the mask imgproxy will use to blur the shadow.
+
+Default: disabled
+
+### Style ((pro)) {#style}
+
+```imgproxy_url_option
+style:%style
+st:%style
+```
+
+When set, imgproxy will prepend a `