Index: frontend/node_modules/@csstools/postcss-stepped-value-functions/CHANGELOG.md
===================================================================
--- frontend/node_modules/@csstools/postcss-stepped-value-functions/CHANGELOG.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@csstools/postcss-stepped-value-functions/CHANGELOG.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,9 @@
+# Changes to PostCSS Stepped Value Functions
+
+### 1.0.1 (July 8, 2022)
+
+- Fix case insensitive matching.
+
+### 1.0.0 (May 2, 2022)
+
+- Initial version
Index: frontend/node_modules/@csstools/postcss-stepped-value-functions/LICENSE.md
===================================================================
--- frontend/node_modules/@csstools/postcss-stepped-value-functions/LICENSE.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@csstools/postcss-stepped-value-functions/LICENSE.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,108 @@
+# CC0 1.0 Universal
+
+## Statement of Purpose
+
+The laws of most jurisdictions throughout the world automatically confer
+exclusive Copyright and Related Rights (defined below) upon the creator and
+subsequent owner(s) (each and all, an “owner”) of an original work of
+authorship and/or a database (each, a “Work”).
+
+Certain owners wish to permanently relinquish those rights to a Work for the
+purpose of contributing to a commons of creative, cultural and scientific works
+(“Commons”) that the public can reliably and without fear of later claims of
+infringement build upon, modify, incorporate in other works, reuse and
+redistribute as freely as possible in any form whatsoever and for any purposes,
+including without limitation commercial purposes. These owners may contribute
+to the Commons to promote the ideal of a free culture and the further
+production of creative, cultural and scientific works, or to gain reputation or
+greater distribution for their Work in part through the use and efforts of
+others.
+
+For these and/or other purposes and motivations, and without any expectation of
+additional consideration or compensation, the person associating CC0 with a
+Work (the “Affirmer”), to the extent that he or she is an owner of Copyright
+and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and
+publicly distribute the Work under its terms, with knowledge of his or her
+Copyright and Related Rights in the Work and the meaning and intended legal
+effect of CC0 on those rights.
+
+1. Copyright and Related Rights. A Work made available under CC0 may be
+   protected by copyright and related or neighboring rights (“Copyright and
+   Related Rights”). Copyright and Related Rights include, but are not limited
+   to, the following:
+   1. the right to reproduce, adapt, distribute, perform, display, communicate,
+      and translate a Work;
+   2. moral rights retained by the original author(s) and/or performer(s);
+   3. publicity and privacy rights pertaining to a person’s image or likeness
+      depicted in a Work;
+   4. rights protecting against unfair competition in regards to a Work,
+      subject to the limitations in paragraph 4(i), below;
+   5. rights protecting the extraction, dissemination, use and reuse of data in
+      a Work;
+   6. database rights (such as those arising under Directive 96/9/EC of the
+      European Parliament and of the Council of 11 March 1996 on the legal
+      protection of databases, and under any national implementation thereof,
+      including any amended or successor version of such directive); and
+   7. other similar, equivalent or corresponding rights throughout the world
+      based on applicable law or treaty, and any national implementations
+      thereof.
+
+2. Waiver. To the greatest extent permitted by, but not in contravention of,
+   applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and
+   unconditionally waives, abandons, and surrenders all of Affirmer’s Copyright
+   and Related Rights and associated claims and causes of action, whether now
+   known or unknown (including existing as well as future claims and causes of
+   action), in the Work (i) in all territories worldwide, (ii) for the maximum
+   duration provided by applicable law or treaty (including future time
+   extensions), (iii) in any current or future medium and for any number of
+   copies, and (iv) for any purpose whatsoever, including without limitation
+   commercial, advertising or promotional purposes (the “Waiver”). Affirmer
+   makes the Waiver for the benefit of each member of the public at large and
+   to the detriment of Affirmer’s heirs and successors, fully intending that
+   such Waiver shall not be subject to revocation, rescission, cancellation,
+   termination, or any other legal or equitable action to disrupt the quiet
+   enjoyment of the Work by the public as contemplated by Affirmer’s express
+   Statement of Purpose.
+
+3. Public License Fallback. Should any part of the Waiver for any reason be
+   judged legally invalid or ineffective under applicable law, then the Waiver
+   shall be preserved to the maximum extent permitted taking into account
+   Affirmer’s express Statement of Purpose. In addition, to the extent the
+   Waiver is so judged Affirmer hereby grants to each affected person a
+   royalty-free, non transferable, non sublicensable, non exclusive,
+   irrevocable and unconditional license to exercise Affirmer’s Copyright and
+   Related Rights in the Work (i) in all territories worldwide, (ii) for the
+   maximum duration provided by applicable law or treaty (including future time
+   extensions), (iii) in any current or future medium and for any number of
+   copies, and (iv) for any purpose whatsoever, including without limitation
+   commercial, advertising or promotional purposes (the “License”). The License
+   shall be deemed effective as of the date CC0 was applied by Affirmer to the
+   Work. Should any part of the License for any reason be judged legally
+   invalid or ineffective under applicable law, such partial invalidity or
+   ineffectiveness shall not invalidate the remainder of the License, and in
+   such case Affirmer hereby affirms that he or she will not (i) exercise any
+   of his or her remaining Copyright and Related Rights in the Work or (ii)
+   assert any associated claims and causes of action with respect to the Work,
+   in either case contrary to Affirmer’s express Statement of Purpose.
+
+4. Limitations and Disclaimers.
+   1. No trademark or patent rights held by Affirmer are waived, abandoned,
+      surrendered, licensed or otherwise affected by this document.
+   2. Affirmer offers the Work as-is and makes no representations or warranties
+      of any kind concerning the Work, express, implied, statutory or
+      otherwise, including without limitation warranties of title,
+      merchantability, fitness for a particular purpose, non infringement, or
+      the absence of latent or other defects, accuracy, or the present or
+      absence of errors, whether or not discoverable, all to the greatest
+      extent permissible under applicable law.
+   3. Affirmer disclaims responsibility for clearing rights of other persons
+      that may apply to the Work or any use thereof, including without
+      limitation any person’s Copyright and Related Rights in the Work.
+      Further, Affirmer disclaims responsibility for obtaining any necessary
+      consents, permissions or other rights required for any use of the Work.
+   4. Affirmer understands and acknowledges that Creative Commons is not a
+      party to this document and has no duty or obligation with respect to this
+      CC0 or use of the Work.
+
+For more information, please see
+http://creativecommons.org/publicdomain/zero/1.0/.
Index: frontend/node_modules/@csstools/postcss-stepped-value-functions/README.md
===================================================================
--- frontend/node_modules/@csstools/postcss-stepped-value-functions/README.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@csstools/postcss-stepped-value-functions/README.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,134 @@
+# PostCSS Stepped Value Functions [<img src="https://postcss.github.io/postcss/logo.svg" alt="PostCSS Logo" width="90" height="90" align="right">][postcss]
+
+[<img alt="npm version" src="https://img.shields.io/npm/v/@csstools/postcss-stepped-value-functions.svg" height="20">][npm-url] [<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/stepped-value-functions.svg" height="20">][css-url] [<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url] [<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]
+
+[PostCSS Stepped Value Functions] lets you use `round`, `rem` and `mod` stepped value functions, following the [CSS Values 4].
+
+```pcss
+.test-functions {
+	padding: 8px mod(18px, 5px) 1px calc(rem(15px, 6px) + 50%);
+	transform: rotate(mod(-140deg, -90deg));
+	top: round(15px, 4px);
+	right: round(nearest, 15px, 4px);
+	bottom: round(up, 15px, 7px);
+	left: round(down, 15px, 4px);
+	width: round(to-zero, 15px, 4px);
+}
+
+/* becomes */
+
+.test-functions {
+	padding: 8px 3px 1px calc(3px + 50%);
+	transform: rotate(-50deg);
+	top: 16px;
+	right: 16px;
+	bottom: 21px;
+	left: 12px;
+	width: 12px;
+}
+```
+
+## Usage
+
+Add [PostCSS Stepped Value Functions] to your project:
+
+```bash
+npm install postcss @csstools/postcss-stepped-value-functions --save-dev
+```
+
+Use it as a [PostCSS] plugin:
+
+```js
+const postcss = require('postcss');
+const postcssSteppedValueFunctions = require('@csstools/postcss-stepped-value-functions');
+
+postcss([
+	postcssSteppedValueFunctions(/* pluginOptions */)
+]).process(YOUR_CSS /*, processOptions */);
+```
+
+[PostCSS Stepped Value Functions] runs in all Node environments, with special
+instructions for:
+
+| [Node](INSTALL.md#node) | [PostCSS CLI](INSTALL.md#postcss-cli) | [Webpack](INSTALL.md#webpack) | [Create React App](INSTALL.md#create-react-app) | [Gulp](INSTALL.md#gulp) | [Grunt](INSTALL.md#grunt) |
+| --- | --- | --- | --- | --- | --- |
+
+## ⚠️ About custom properties
+
+Given the dynamic nature of custom properties it's impossible to know what the variable value is, which means the plugin can't compute a final value for the stylesheet. 
+
+Because of that, any usage that contains a `var` is skipped.
+
+## Options
+
+### preserve
+
+The `preserve` option determines whether the original notation
+is preserved. By default, it is not preserved.
+
+```js
+postcssSteppedValueFunctions({ preserve: true })
+```
+
+```pcss
+.test-functions {
+	padding: 8px mod(18px, 5px) 1px calc(rem(15px, 6px) + 50%);
+	transform: rotate(mod(-140deg, -90deg));
+	top: round(15px, 4px);
+	right: round(nearest, 15px, 4px);
+	bottom: round(up, 15px, 7px);
+	left: round(down, 15px, 4px);
+	width: round(to-zero, 15px, 4px);
+}
+
+/* becomes */
+
+.test-functions {
+	padding: 8px 3px 1px calc(3px + 50%);
+	padding: 8px mod(18px, 5px) 1px calc(rem(15px, 6px) + 50%);
+	transform: rotate(-50deg);
+	transform: rotate(mod(-140deg, -90deg));
+	top: 16px;
+	top: round(15px, 4px);
+	right: 16px;
+	right: round(nearest, 15px, 4px);
+	bottom: 21px;
+	bottom: round(up, 15px, 7px);
+	left: 12px;
+	left: round(down, 15px, 4px);
+	width: 12px;
+	width: round(to-zero, 15px, 4px);
+}
+```
+
+### onInvalid
+
+`onInvalid` option allows you to assign the `warn` value so you can get warnings when the usage of the functions is wrong.
+
+```js
+postcssSteppedValueFunctions({ onInvalid: 'warn' })
+```
+
+```pcss
+.invalid {
+	font-size: mod(18px, 5rem);
+}
+```
+
+Will produce on the terminal:
+
+```bash
+[postcss-stepped-value-functions]: Failed to transform mod(18px, 5rem) as the units don't match
+```
+
+[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test
+[css-url]: https://cssdb.org/#stepped-value-functions
+[discord]: https://discord.gg/bUadyRwkJS
+[npm-url]: https://www.npmjs.com/package/@csstools/postcss-stepped-value-functions
+
+[Gulp PostCSS]: https://github.com/postcss/gulp-postcss
+[Grunt PostCSS]: https://github.com/nDmitry/grunt-postcss
+[PostCSS]: https://github.com/postcss/postcss
+[PostCSS Loader]: https://github.com/postcss/postcss-loader
+[PostCSS Stepped Value Functions]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-stepped-value-functions
+[CSS Values 4]: https://www.w3.org/TR/css-values-4/#round-func
Index: frontend/node_modules/@csstools/postcss-stepped-value-functions/dist/index.cjs
===================================================================
--- frontend/node_modules/@csstools/postcss-stepped-value-functions/dist/index.cjs	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@csstools/postcss-stepped-value-functions/dist/index.cjs	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=e(require("postcss-value-parser"));function n(e,n,o,r){const a=[];let s=!1;if(e.nodes.forEach((e=>{"word"!==e.type?function(e){return"function"===e.type&&"var"===e.value.toLowerCase()}(e)&&(s=!0):a.push(e)})),s)return void u(n,o,`Failed to transform ${n.value} as variables can't be processed.`,r);if(2!==a.length)return void u(n,o,`Failed to transform ${n.value} as it's expecting 2 arguments instead of ${a.length}`,r);const l=t.default.unit(a[0].value),i=t.default.unit(a[1].value);if(l&&i){if(l.unit===i.unit)return[l,i];u(n,o,`Failed to transform ${n.value} as the units don't match`,r)}}function u(e,t,n,u){"warn"===u.onInvalid&&e.warn(t,n)}function o(e){delete e.nodes;const t=e;return t.type="word",t}var r;!function(e){e.Nearest="nearest",e.Up="up",e.Down="down",e.ToZero="to-zero"}(r||(r={}));const a=/^[a-z|-]+$/i;const s=e=>{const s=Object.assign({preserve:!1,onInvalid:""},e);return{postcssPlugin:"postcss-stepped-value-functions",Declaration(e,{result:l}){const i=["mod(","rem(","round("].some((t=>e.value.toLowerCase().includes(t)));if(!e||!i)return;const c=e.clone();if(c.value.toLowerCase().includes("mod(")){const e=function(e,u,r){const a=t.default(e.value);return a.walk((t=>{if("function"!==t.type||"mod"!==t.value.toLowerCase())return;const a=n(t,e,u,r);if(!a)return;const[s,l]=a,i=Number(s.number),c=Number(l.number),d=(i%c+c)%c;"number"!=typeof d||isNaN(d)||(o(t).value=0===d?"0":`${d}${s.unit}`)}),!0),a.toString()}(c,l,s);e&&(c.value=e)}if(c.value.toLowerCase().includes("rem(")){const e=function(e,u,r){const a=t.default(e.value);return a.walk((t=>{if("function"!==t.type||"rem"!==t.value.toLowerCase())return;const a=n(t,e,u,r);if(!a)return;const[s,l]=a,i=Number(s.number)%Number(l.number);("number"==typeof i||isNaN(i))&&(o(t).value=0===i?"0":`${i}${s.unit}`)}),!0),a.toString()}(c,l,s);e&&(c.value=e)}if(c.value.toLowerCase().includes("round(")){const e=function(e,n,s){const l=t.default(e.value);return l.walk((l=>{if("function"!==l.type||"round"!==l.value.toLowerCase())return;if(3!==l.nodes.length&&5!==l.nodes.length)return void u(e,n,`Failed to transform ${e.value} as the amount of arguments isn't valid`,s);const i=l.nodes.filter((e=>"word"===e.type)),c=i[0].value;let d,f,v;if(a.test(c.toLowerCase())){var m,p;if(!Object.values(r).includes(c.toLowerCase()))return void u(e,n,`Failed to transform ${e.value} as ${c} is not a valid rounding strategy.`,s);d=c.toLowerCase(),f=t.default.unit((null==i||null==(m=i[1])?void 0:m.value)||""),v=t.default.unit((null==i||null==(p=i[2])?void 0:p.value)||"")}else{var b,w;d=r.Nearest,f=t.default.unit((null==i||null==(b=i[0])?void 0:b.value)||""),v=t.default.unit((null==i||null==(w=i[1])?void 0:w.value)||"")}if(!f||!v)return;if(f.unit!==v.unit)return void u(e,n,`Failed to transform ${e.value} as the units don't match`,s);const h=Number(f.number),N=Number(v.number);let $;switch(d){case r.Down:$=Math.floor(h/N)*N;break;case r.Up:$=Math.ceil(h/N)*N;break;case r.ToZero:$=Math.trunc(h/N)*N;break;case r.Nearest:default:$=Math.round(h/N)*N}"number"!=typeof $||isNaN($)||(o(l).value=0===$?"0":`${$}${f.unit}`)}),!0),l.toString()}(c,l,s);e&&(c.value=e)}e.value!==c.value&&(e.before(c),s.preserve||e.remove())}}};s.postcss=!0,module.exports=s;
Index: frontend/node_modules/@csstools/postcss-stepped-value-functions/dist/index.d.ts
===================================================================
--- frontend/node_modules/@csstools/postcss-stepped-value-functions/dist/index.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@csstools/postcss-stepped-value-functions/dist/index.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,7 @@
+import type { PluginCreator } from 'postcss';
+export declare type pluginOptions = {
+    preserve?: boolean;
+    onInvalid?: string;
+};
+declare const creator: PluginCreator<pluginOptions>;
+export default creator;
Index: frontend/node_modules/@csstools/postcss-stepped-value-functions/dist/index.mjs
===================================================================
--- frontend/node_modules/@csstools/postcss-stepped-value-functions/dist/index.mjs	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@csstools/postcss-stepped-value-functions/dist/index.mjs	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+import e from"postcss-value-parser";function t(t,o,r,u){const a=[];let s=!1;if(t.nodes.forEach((e=>{"word"!==e.type?function(e){return"function"===e.type&&"var"===e.value.toLowerCase()}(e)&&(s=!0):a.push(e)})),s)return void n(o,r,`Failed to transform ${o.value} as variables can't be processed.`,u);if(2!==a.length)return void n(o,r,`Failed to transform ${o.value} as it's expecting 2 arguments instead of ${a.length}`,u);const i=e.unit(a[0].value),l=e.unit(a[1].value);if(i&&l){if(i.unit===l.unit)return[i,l];n(o,r,`Failed to transform ${o.value} as the units don't match`,u)}}function n(e,t,n,o){"warn"===o.onInvalid&&e.warn(t,n)}function o(e){delete e.nodes;const t=e;return t.type="word",t}var r;!function(e){e.Nearest="nearest",e.Up="up",e.Down="down",e.ToZero="to-zero"}(r||(r={}));const u=/^[a-z|-]+$/i;const a=a=>{const s=Object.assign({preserve:!1,onInvalid:""},a);return{postcssPlugin:"postcss-stepped-value-functions",Declaration(a,{result:i}){const l=["mod(","rem(","round("].some((e=>a.value.toLowerCase().includes(e)));if(!a||!l)return;const c=a.clone();if(c.value.toLowerCase().includes("mod(")){const n=function(n,r,u){const a=e(n.value);return a.walk((e=>{if("function"!==e.type||"mod"!==e.value.toLowerCase())return;const a=t(e,n,r,u);if(!a)return;const[s,i]=a,l=Number(s.number),c=Number(i.number),v=(l%c+c)%c;"number"!=typeof v||isNaN(v)||(o(e).value=0===v?"0":`${v}${s.unit}`)}),!0),a.toString()}(c,i,s);n&&(c.value=n)}if(c.value.toLowerCase().includes("rem(")){const n=function(n,r,u){const a=e(n.value);return a.walk((e=>{if("function"!==e.type||"rem"!==e.value.toLowerCase())return;const a=t(e,n,r,u);if(!a)return;const[s,i]=a,l=Number(s.number)%Number(i.number);("number"==typeof l||isNaN(l))&&(o(e).value=0===l?"0":`${l}${s.unit}`)}),!0),a.toString()}(c,i,s);n&&(c.value=n)}if(c.value.toLowerCase().includes("round(")){const t=function(t,a,s){const i=e(t.value);return i.walk((i=>{if("function"!==i.type||"round"!==i.value.toLowerCase())return;if(3!==i.nodes.length&&5!==i.nodes.length)return void n(t,a,`Failed to transform ${t.value} as the amount of arguments isn't valid`,s);const l=i.nodes.filter((e=>"word"===e.type)),c=l[0].value;let v,d,f;if(u.test(c.toLowerCase())){var m,p;if(!Object.values(r).includes(c.toLowerCase()))return void n(t,a,`Failed to transform ${t.value} as ${c} is not a valid rounding strategy.`,s);v=c.toLowerCase(),d=e.unit((null==l||null==(m=l[1])?void 0:m.value)||""),f=e.unit((null==l||null==(p=l[2])?void 0:p.value)||"")}else{var b,w;v=r.Nearest,d=e.unit((null==l||null==(b=l[0])?void 0:b.value)||""),f=e.unit((null==l||null==(w=l[1])?void 0:w.value)||"")}if(!d||!f)return;if(d.unit!==f.unit)return void n(t,a,`Failed to transform ${t.value} as the units don't match`,s);const h=Number(d.number),N=Number(f.number);let $;switch(v){case r.Down:$=Math.floor(h/N)*N;break;case r.Up:$=Math.ceil(h/N)*N;break;case r.ToZero:$=Math.trunc(h/N)*N;break;case r.Nearest:default:$=Math.round(h/N)*N}"number"!=typeof $||isNaN($)||(o(i).value=0===$?"0":`${$}${d.unit}`)}),!0),i.toString()}(c,i,s);t&&(c.value=t)}a.value!==c.value&&(a.before(c),s.preserve||a.remove())}}};a.postcss=!0;export{a as default};
Index: frontend/node_modules/@csstools/postcss-stepped-value-functions/dist/mod.d.ts
===================================================================
--- frontend/node_modules/@csstools/postcss-stepped-value-functions/dist/mod.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@csstools/postcss-stepped-value-functions/dist/mod.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,5 @@
+import type { Declaration, Result } from 'postcss';
+import { pluginOptions } from './index';
+declare const modFunctionCheck = "mod(";
+declare function transformModFunction(decl: Declaration, result: Result, options: pluginOptions): string | undefined;
+export { modFunctionCheck, transformModFunction };
Index: frontend/node_modules/@csstools/postcss-stepped-value-functions/dist/rem.d.ts
===================================================================
--- frontend/node_modules/@csstools/postcss-stepped-value-functions/dist/rem.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@csstools/postcss-stepped-value-functions/dist/rem.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,5 @@
+import type { Declaration, Result } from 'postcss';
+import { pluginOptions } from './index';
+declare const remFunctionCheck = "rem(";
+declare function transformRemFunction(decl: Declaration, result: Result, options: pluginOptions): string | undefined;
+export { remFunctionCheck, transformRemFunction };
Index: frontend/node_modules/@csstools/postcss-stepped-value-functions/dist/round.d.ts
===================================================================
--- frontend/node_modules/@csstools/postcss-stepped-value-functions/dist/round.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@csstools/postcss-stepped-value-functions/dist/round.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,5 @@
+import type { Declaration, Result } from 'postcss';
+import { pluginOptions } from './index';
+declare const roundFunctionCheck = "round(";
+declare function transformRoundFunction(decl: Declaration, result: Result, options: pluginOptions): string | undefined;
+export { roundFunctionCheck, transformRoundFunction };
Index: frontend/node_modules/@csstools/postcss-stepped-value-functions/dist/utils.d.ts
===================================================================
--- frontend/node_modules/@csstools/postcss-stepped-value-functions/dist/utils.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@csstools/postcss-stepped-value-functions/dist/utils.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,8 @@
+import valueParser from 'postcss-value-parser';
+import type { FunctionNode, Node, WordNode } from 'postcss-value-parser';
+import type { Declaration, Result } from 'postcss';
+import { pluginOptions } from './index';
+export declare function isVarNode(node: Node): boolean;
+export declare function validateArgumentsAndTypes(node: FunctionNode, decl: Declaration, result: Result, options: pluginOptions): valueParser.Dimension[] | undefined;
+export declare function optionallyWarn(decl: Declaration, result: Result, message: string, options: pluginOptions): void;
+export declare function functionNodeToWordNode(fn: FunctionNode): WordNode;
Index: frontend/node_modules/@csstools/postcss-stepped-value-functions/package.json
===================================================================
--- frontend/node_modules/@csstools/postcss-stepped-value-functions/package.json	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/@csstools/postcss-stepped-value-functions/package.json	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,82 @@
+{
+	"name": "@csstools/postcss-stepped-value-functions",
+	"description": "Use round, rem and mod functions in CSS",
+	"version": "1.0.1",
+	"contributors": [
+		{
+			"name": "Antonio Laguna",
+			"email": "antonio@laguna.es",
+			"url": "https://antonio.laguna.es"
+		},
+		{
+			"name": "Romain Menke",
+			"email": "romainmenke@gmail.com"
+		}
+	],
+	"license": "CC0-1.0",
+	"funding": {
+		"type": "opencollective",
+		"url": "https://opencollective.com/csstools"
+	},
+	"engines": {
+		"node": "^12 || ^14 || >=16"
+	},
+	"main": "dist/index.cjs",
+	"module": "dist/index.mjs",
+	"types": "dist/index.d.ts",
+	"exports": {
+		".": {
+			"import": "./dist/index.mjs",
+			"require": "./dist/index.cjs",
+			"default": "./dist/index.mjs"
+		}
+	},
+	"files": [
+		"CHANGELOG.md",
+		"LICENSE.md",
+		"README.md",
+		"dist"
+	],
+	"dependencies": {
+		"postcss-value-parser": "^4.2.0"
+	},
+	"peerDependencies": {
+		"postcss": "^8.2"
+	},
+	"scripts": {
+		"build": "rollup -c ../../rollup/default.js",
+		"clean": "node -e \"fs.rmSync('./dist', { recursive: true, force: true });\"",
+		"docs": "node ../../.github/bin/generate-docs/install.mjs && node ../../.github/bin/generate-docs/readme.mjs",
+		"lint": "npm run lint:eslint && npm run lint:package-json",
+		"lint:eslint": "eslint ./src --ext .js --ext .ts --ext .mjs --no-error-on-unmatched-pattern",
+		"lint:package-json": "node ../../.github/bin/format-package-json.mjs",
+		"prepublishOnly": "npm run clean && npm run build && npm run test",
+		"test": "node .tape.mjs && npm run test:exports",
+		"test:exports": "node ./test/_import.mjs && node ./test/_require.cjs",
+		"test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs"
+	},
+	"homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-stepped-value-functions#readme",
+	"repository": {
+		"type": "git",
+		"url": "https://github.com/csstools/postcss-plugins.git",
+		"directory": "plugins/postcss-stepped-value-functions"
+	},
+	"bugs": "https://github.com/csstools/postcss-plugins/issues",
+	"keywords": [
+		"css",
+		"modulus",
+		"postcss-plugin",
+		"remainder",
+		"round",
+		"stepped"
+	],
+	"csstools": {
+		"cssdbId": "stepped-value-functions",
+		"exportName": "postcssSteppedValueFunctions",
+		"humanReadableName": "PostCSS Stepped Value Functions",
+		"specUrl": "https://www.w3.org/TR/css-values-4/#round-func"
+	},
+	"volta": {
+		"extends": "../../package.json"
+	}
+}
