├── .gitignore ├── index.html ├── package-lock.json ├── package.json ├── postcss.config.cjs ├── public ├── check.mp3 ├── favicon.png ├── headshot.jpg ├── image-1.jpg ├── image-2.jpg ├── image-3.jpg ├── toggle.mp3 └── wave.png └── style.css /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Custom Site Theming 5 | 6 | 7 | 8 | 9 | 10 | 11 | 15 | 16 | 17 | 18 |
19 |
20 |
21 |

👋

22 |
23 |

I write about web dev

24 |

design

25 |

tech

26 |
27 |
28 |
29 | Devin Headshot 35 |

Hi, I’m Devin

36 |

Welcome to my blog.

37 |
38 |
39 |
40 | 41 |
42 |

Recent Posts

43 |
44 |
45 |

My Design Process

46 |
47 | Design sketches 48 |

49 | Design involves problem identification, research, 50 | brainstorming, prototyping, testing, and refining. Effective 51 | communication and feedback are crucial. 52 |

53 | Read Post 54 |
55 |
56 |
57 |

My Favorite Gear

58 |
59 | Coding gear 60 |

61 | My overview of preferred tech gear, from laptops to 62 | noise-cancelling headphones. I’ll include top picks and 63 | reasons behind my choices. 64 |

65 | Read Post 66 |
67 |
68 |
69 |

Learning to Code

70 |
71 | Laptop on desk 72 |

73 | When learning to code, start with the basics and practice 74 | regularly with real-life projects. Don't be afraid to make 75 | mistakes or ask for help. Stay curious and keep learning. 76 |

77 | Read Post 78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |

New Posts to Your Inbox

86 |

87 | Stay in the loop with my blog by subscribing to my email 88 | newsletter. Never miss a post and get exclusive content and 89 | updates. Join now! Cancel at anytime. 90 |

91 |
92 |
93 |
94 | 95 | 101 |
102 | 103 |
104 |
105 |
106 |
107 |
108 | 109 | 110 | 111 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "custom-site-theming", 3 | "version": "0.0.0", 4 | "lockfileVersion": 3, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "custom-site-theming", 9 | "version": "0.0.0", 10 | "devDependencies": { 11 | "autoprefixer": "^10.4.14", 12 | "cssnano": "^6.0.1", 13 | "postcss": "^8.4.23", 14 | "postcss-preset-env": "^8.4.1", 15 | "vite": "^4.3.2" 16 | } 17 | }, 18 | "node_modules/@csstools/cascade-layer-name-parser": { 19 | "version": "1.0.2", 20 | "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-1.0.2.tgz", 21 | "integrity": "sha512-xm7Mgwej/wBfLoK0K5LfntmPJzoULayl1XZY9JYgQgT29JiqNw++sLnx95u5y9zCihblzkyaRYJrsRMhIBzRdg==", 22 | "dev": true, 23 | "engines": { 24 | "node": "^14 || ^16 || >=18" 25 | }, 26 | "funding": { 27 | "type": "opencollective", 28 | "url": "https://opencollective.com/csstools" 29 | }, 30 | "peerDependencies": { 31 | "@csstools/css-parser-algorithms": "^2.1.1", 32 | "@csstools/css-tokenizer": "^2.1.1" 33 | } 34 | }, 35 | "node_modules/@csstools/color-helpers": { 36 | "version": "2.1.0", 37 | "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-2.1.0.tgz", 38 | "integrity": "sha512-OWkqBa7PDzZuJ3Ha7T5bxdSVfSCfTq6K1mbAhbO1MD+GSULGjrp45i5RudyJOedstSarN/3mdwu9upJE7gDXfw==", 39 | "dev": true, 40 | "funding": [ 41 | { 42 | "type": "github", 43 | "url": "https://github.com/sponsors/csstools" 44 | }, 45 | { 46 | "type": "opencollective", 47 | "url": "https://opencollective.com/csstools" 48 | } 49 | ], 50 | "engines": { 51 | "node": "^14 || ^16 || >=18" 52 | } 53 | }, 54 | "node_modules/@csstools/css-calc": { 55 | "version": "1.1.1", 56 | "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-1.1.1.tgz", 57 | "integrity": "sha512-Nh+iLCtjlooTzuR0lpmB8I6hPX/VupcGQ3Z1U2+wgJJ4fa8+cWkub+lCsbZcYPzBGsZLEL8fQAg+Na5dwEFJxg==", 58 | "dev": true, 59 | "engines": { 60 | "node": "^14 || ^16 || >=18" 61 | }, 62 | "funding": { 63 | "type": "opencollective", 64 | "url": "https://opencollective.com/csstools" 65 | }, 66 | "peerDependencies": { 67 | "@csstools/css-parser-algorithms": "^2.1.1", 68 | "@csstools/css-tokenizer": "^2.1.1" 69 | } 70 | }, 71 | "node_modules/@csstools/css-color-parser": { 72 | "version": "1.2.0", 73 | "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-1.2.0.tgz", 74 | "integrity": "sha512-kt9jhqyL/Ig/Tsf1cY+iygxs2nu3/D532048G9BSeg9YjlpZxbor6I+nvgMNB1A1ppL+i15Mb/yyDHYMQmgBtQ==", 75 | "dev": true, 76 | "funding": [ 77 | { 78 | "type": "github", 79 | "url": "https://github.com/sponsors/csstools" 80 | }, 81 | { 82 | "type": "opencollective", 83 | "url": "https://opencollective.com/csstools" 84 | } 85 | ], 86 | "dependencies": { 87 | "@csstools/color-helpers": "^2.1.0", 88 | "@csstools/css-calc": "^1.1.1" 89 | }, 90 | "engines": { 91 | "node": "^14 || ^16 || >=18" 92 | }, 93 | "peerDependencies": { 94 | "@csstools/css-parser-algorithms": "^2.1.1", 95 | "@csstools/css-tokenizer": "^2.1.1" 96 | } 97 | }, 98 | "node_modules/@csstools/css-parser-algorithms": { 99 | "version": "2.2.0", 100 | "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.2.0.tgz", 101 | "integrity": "sha512-9BoQ/jSrPq4vv3b9jjLW+PNNv56KlDH5JMx5yASSNrCtvq70FCNZUjXRvbCeR9hYj9ZyhURtqpU/RFIgg6kiOw==", 102 | "dev": true, 103 | "funding": [ 104 | { 105 | "type": "github", 106 | "url": "https://github.com/sponsors/csstools" 107 | }, 108 | { 109 | "type": "opencollective", 110 | "url": "https://opencollective.com/csstools" 111 | } 112 | ], 113 | "engines": { 114 | "node": "^14 || ^16 || >=18" 115 | }, 116 | "peerDependencies": { 117 | "@csstools/css-tokenizer": "^2.1.1" 118 | } 119 | }, 120 | "node_modules/@csstools/css-tokenizer": { 121 | "version": "2.1.1", 122 | "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.1.1.tgz", 123 | "integrity": "sha512-GbrTj2Z8MCTUv+52GE0RbFGM527xuXZ0Xa5g0Z+YN573uveS4G0qi6WNOMyz3yrFM/jaILTTwJ0+umx81EzqfA==", 124 | "dev": true, 125 | "engines": { 126 | "node": "^14 || ^16 || >=18" 127 | }, 128 | "funding": { 129 | "type": "opencollective", 130 | "url": "https://opencollective.com/csstools" 131 | } 132 | }, 133 | "node_modules/@csstools/media-query-list-parser": { 134 | "version": "2.1.0", 135 | "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.0.tgz", 136 | "integrity": "sha512-MXkR+TeaS2q9IkpyO6jVCdtA/bfpABJxIrfkLswThFN8EZZgI2RfAHhm6sDNDuYV25d5+b8Lj1fpTccIcSLPsQ==", 137 | "dev": true, 138 | "funding": [ 139 | { 140 | "type": "github", 141 | "url": "https://github.com/sponsors/csstools" 142 | }, 143 | { 144 | "type": "opencollective", 145 | "url": "https://opencollective.com/csstools" 146 | } 147 | ], 148 | "engines": { 149 | "node": "^14 || ^16 || >=18" 150 | }, 151 | "peerDependencies": { 152 | "@csstools/css-parser-algorithms": "^2.1.1", 153 | "@csstools/css-tokenizer": "^2.1.1" 154 | } 155 | }, 156 | "node_modules/@csstools/postcss-cascade-layers": { 157 | "version": "3.0.1", 158 | "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-3.0.1.tgz", 159 | "integrity": "sha512-dD8W98dOYNOH/yX4V4HXOhfCOnvVAg8TtsL+qCGNoKXuq5z2C/d026wGWgySgC8cajXXo/wNezS31Glj5GcqrA==", 160 | "dev": true, 161 | "dependencies": { 162 | "@csstools/selector-specificity": "^2.0.2", 163 | "postcss-selector-parser": "^6.0.10" 164 | }, 165 | "engines": { 166 | "node": "^14 || ^16 || >=18" 167 | }, 168 | "funding": { 169 | "type": "opencollective", 170 | "url": "https://opencollective.com/csstools" 171 | }, 172 | "peerDependencies": { 173 | "postcss": "^8.4" 174 | } 175 | }, 176 | "node_modules/@csstools/postcss-color-function": { 177 | "version": "2.2.3", 178 | "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-2.2.3.tgz", 179 | "integrity": "sha512-b1ptNkr1UWP96EEHqKBWWaV5m/0hgYGctgA/RVZhONeP1L3T/8hwoqDm9bB23yVCfOgE9U93KI9j06+pEkJTvw==", 180 | "dev": true, 181 | "funding": [ 182 | { 183 | "type": "github", 184 | "url": "https://github.com/sponsors/csstools" 185 | }, 186 | { 187 | "type": "opencollective", 188 | "url": "https://opencollective.com/csstools" 189 | } 190 | ], 191 | "dependencies": { 192 | "@csstools/css-color-parser": "^1.2.0", 193 | "@csstools/css-parser-algorithms": "^2.1.1", 194 | "@csstools/css-tokenizer": "^2.1.1", 195 | "@csstools/postcss-progressive-custom-properties": "^2.3.0" 196 | }, 197 | "engines": { 198 | "node": "^14 || ^16 || >=18" 199 | }, 200 | "peerDependencies": { 201 | "postcss": "^8.4" 202 | } 203 | }, 204 | "node_modules/@csstools/postcss-color-mix-function": { 205 | "version": "1.0.3", 206 | "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-1.0.3.tgz", 207 | "integrity": "sha512-QGXjGugTluqFZWzVf+S3wCiRiI0ukXlYqCi7OnpDotP/zaVTyl/aqZujLFzTOXy24BoWnu89frGMc79ohY5eog==", 208 | "dev": true, 209 | "funding": [ 210 | { 211 | "type": "github", 212 | "url": "https://github.com/sponsors/csstools" 213 | }, 214 | { 215 | "type": "opencollective", 216 | "url": "https://opencollective.com/csstools" 217 | } 218 | ], 219 | "dependencies": { 220 | "@csstools/css-color-parser": "^1.2.0", 221 | "@csstools/css-parser-algorithms": "^2.1.1", 222 | "@csstools/css-tokenizer": "^2.1.1", 223 | "@csstools/postcss-progressive-custom-properties": "^2.3.0" 224 | }, 225 | "engines": { 226 | "node": "^14 || ^16 || >=18" 227 | }, 228 | "peerDependencies": { 229 | "postcss": "^8.4" 230 | } 231 | }, 232 | "node_modules/@csstools/postcss-font-format-keywords": { 233 | "version": "2.0.2", 234 | "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-2.0.2.tgz", 235 | "integrity": "sha512-iKYZlIs6JsNT7NKyRjyIyezTCHLh4L4BBB3F5Nx7Dc4Z/QmBgX+YJFuUSar8IM6KclGiAUFGomXFdYxAwJydlA==", 236 | "dev": true, 237 | "dependencies": { 238 | "postcss-value-parser": "^4.2.0" 239 | }, 240 | "engines": { 241 | "node": "^14 || ^16 || >=18" 242 | }, 243 | "funding": { 244 | "type": "opencollective", 245 | "url": "https://opencollective.com/csstools" 246 | }, 247 | "peerDependencies": { 248 | "postcss": "^8.4" 249 | } 250 | }, 251 | "node_modules/@csstools/postcss-gradients-interpolation-method": { 252 | "version": "3.0.6", 253 | "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-3.0.6.tgz", 254 | "integrity": "sha512-rBOBTat/YMmB0G8VHwKqDEx+RZ4KCU9j42K8LwS0IpZnyThalZZF7BCSsZ6TFlZhcRZKlZy3LLFI2pLqjNVGGA==", 255 | "dev": true, 256 | "funding": [ 257 | { 258 | "type": "github", 259 | "url": "https://github.com/sponsors/csstools" 260 | }, 261 | { 262 | "type": "opencollective", 263 | "url": "https://opencollective.com/csstools" 264 | } 265 | ], 266 | "dependencies": { 267 | "@csstools/css-color-parser": "^1.2.0", 268 | "@csstools/css-parser-algorithms": "^2.1.1", 269 | "@csstools/css-tokenizer": "^2.1.1", 270 | "@csstools/postcss-progressive-custom-properties": "^2.3.0" 271 | }, 272 | "engines": { 273 | "node": "^14 || ^16 || >=18" 274 | }, 275 | "peerDependencies": { 276 | "postcss": "^8.4" 277 | } 278 | }, 279 | "node_modules/@csstools/postcss-hwb-function": { 280 | "version": "2.2.2", 281 | "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-2.2.2.tgz", 282 | "integrity": "sha512-W5Y5oaJ382HSlbdGfPf60d7dAK6Hqf10+Be1yZbd/TNNrQ/3dDdV1c07YwOXPQ3PZ6dvFMhxbIbn8EC3ki3nEg==", 283 | "dev": true, 284 | "funding": [ 285 | { 286 | "type": "github", 287 | "url": "https://github.com/sponsors/csstools" 288 | }, 289 | { 290 | "type": "opencollective", 291 | "url": "https://opencollective.com/csstools" 292 | } 293 | ], 294 | "dependencies": { 295 | "@csstools/css-color-parser": "^1.2.0", 296 | "@csstools/css-parser-algorithms": "^2.1.1", 297 | "@csstools/css-tokenizer": "^2.1.1" 298 | }, 299 | "engines": { 300 | "node": "^14 || ^16 || >=18" 301 | }, 302 | "peerDependencies": { 303 | "postcss": "^8.4" 304 | } 305 | }, 306 | "node_modules/@csstools/postcss-ic-unit": { 307 | "version": "2.0.4", 308 | "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-2.0.4.tgz", 309 | "integrity": "sha512-9W2ZbV7whWnr1Gt4qYgxMWzbevZMOvclUczT5vk4yR6vS53W/njiiUhtm/jh/BKYwQ1W3PECZjgAd2dH4ebJig==", 310 | "dev": true, 311 | "funding": [ 312 | { 313 | "type": "github", 314 | "url": "https://github.com/sponsors/csstools" 315 | }, 316 | { 317 | "type": "opencollective", 318 | "url": "https://opencollective.com/csstools" 319 | } 320 | ], 321 | "dependencies": { 322 | "@csstools/postcss-progressive-custom-properties": "^2.3.0", 323 | "postcss-value-parser": "^4.2.0" 324 | }, 325 | "engines": { 326 | "node": "^14 || ^16 || >=18" 327 | }, 328 | "peerDependencies": { 329 | "postcss": "^8.4" 330 | } 331 | }, 332 | "node_modules/@csstools/postcss-is-pseudo-class": { 333 | "version": "3.2.1", 334 | "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-3.2.1.tgz", 335 | "integrity": "sha512-AtANdV34kJl04Al62is3eQRk/BfOfyAvEmRJvbt+nx5REqImLC+2XhuE6skgkcPli1l8ONS67wS+l1sBzySc3Q==", 336 | "dev": true, 337 | "funding": [ 338 | { 339 | "type": "github", 340 | "url": "https://github.com/sponsors/csstools" 341 | }, 342 | { 343 | "type": "opencollective", 344 | "url": "https://opencollective.com/csstools" 345 | } 346 | ], 347 | "dependencies": { 348 | "@csstools/selector-specificity": "^2.0.0", 349 | "postcss-selector-parser": "^6.0.10" 350 | }, 351 | "engines": { 352 | "node": "^14 || ^16 || >=18" 353 | }, 354 | "peerDependencies": { 355 | "postcss": "^8.4" 356 | } 357 | }, 358 | "node_modules/@csstools/postcss-logical-float-and-clear": { 359 | "version": "1.0.1", 360 | "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-float-and-clear/-/postcss-logical-float-and-clear-1.0.1.tgz", 361 | "integrity": "sha512-eO9z2sMLddvlfFEW5Fxbjyd03zaO7cJafDurK4rCqyRt9P7aaWwha0LcSzoROlcZrw1NBV2JAp2vMKfPMQO1xw==", 362 | "dev": true, 363 | "engines": { 364 | "node": "^14 || ^16 || >=18" 365 | }, 366 | "funding": { 367 | "type": "opencollective", 368 | "url": "https://opencollective.com/csstools" 369 | }, 370 | "peerDependencies": { 371 | "postcss": "^8.4" 372 | } 373 | }, 374 | "node_modules/@csstools/postcss-logical-resize": { 375 | "version": "1.0.1", 376 | "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-resize/-/postcss-logical-resize-1.0.1.tgz", 377 | "integrity": "sha512-x1ge74eCSvpBkDDWppl+7FuD2dL68WP+wwP2qvdUcKY17vJksz+XoE1ZRV38uJgS6FNUwC0AxrPW5gy3MxsDHQ==", 378 | "dev": true, 379 | "dependencies": { 380 | "postcss-value-parser": "^4.2.0" 381 | }, 382 | "engines": { 383 | "node": "^14 || ^16 || >=18" 384 | }, 385 | "funding": { 386 | "type": "opencollective", 387 | "url": "https://opencollective.com/csstools" 388 | }, 389 | "peerDependencies": { 390 | "postcss": "^8.4" 391 | } 392 | }, 393 | "node_modules/@csstools/postcss-logical-viewport-units": { 394 | "version": "1.0.3", 395 | "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-1.0.3.tgz", 396 | "integrity": "sha512-6zqcyRg9HSqIHIPMYdt6THWhRmE5/tyHKJQLysn2TeDf/ftq7Em9qwMTx98t2C/7UxIsYS8lOiHHxAVjWn2WUg==", 397 | "dev": true, 398 | "dependencies": { 399 | "@csstools/css-tokenizer": "^2.1.1" 400 | }, 401 | "engines": { 402 | "node": "^14 || ^16 || >=18" 403 | }, 404 | "funding": { 405 | "type": "opencollective", 406 | "url": "https://opencollective.com/csstools" 407 | }, 408 | "peerDependencies": { 409 | "postcss": "^8.4" 410 | } 411 | }, 412 | "node_modules/@csstools/postcss-media-minmax": { 413 | "version": "1.0.3", 414 | "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-1.0.3.tgz", 415 | "integrity": "sha512-os7qe2HV/qBILKCGa/dl5AbpO6c+MZyunFBWPWJBrEVhulCYo13FgEWbhyERFM5FeJghiqYgJxM54oiJASpBnw==", 416 | "dev": true, 417 | "funding": [ 418 | { 419 | "type": "github", 420 | "url": "https://github.com/sponsors/csstools" 421 | }, 422 | { 423 | "type": "opencollective", 424 | "url": "https://opencollective.com/csstools" 425 | } 426 | ], 427 | "dependencies": { 428 | "@csstools/css-calc": "^1.1.1", 429 | "@csstools/css-parser-algorithms": "^2.1.1", 430 | "@csstools/css-tokenizer": "^2.1.1", 431 | "@csstools/media-query-list-parser": "^2.1.0" 432 | }, 433 | "engines": { 434 | "node": "^14 || ^16 || >=18" 435 | }, 436 | "peerDependencies": { 437 | "postcss": "^8.4" 438 | } 439 | }, 440 | "node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values": { 441 | "version": "1.0.3", 442 | "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-1.0.3.tgz", 443 | "integrity": "sha512-JHdwBSNZsur/mJXwzuC/gxyekhfSdWJaTiSOhUITk2D8pYRYcjV1MZiCiWupQNfM2Qp2W7w1A/gEU6U/xlpIyA==", 444 | "dev": true, 445 | "funding": [ 446 | { 447 | "type": "github", 448 | "url": "https://github.com/sponsors/csstools" 449 | }, 450 | { 451 | "type": "opencollective", 452 | "url": "https://opencollective.com/csstools" 453 | } 454 | ], 455 | "dependencies": { 456 | "@csstools/css-parser-algorithms": "^2.1.1", 457 | "@csstools/css-tokenizer": "^2.1.1", 458 | "@csstools/media-query-list-parser": "^2.1.0" 459 | }, 460 | "engines": { 461 | "node": "^14 || ^16 || >=18" 462 | }, 463 | "peerDependencies": { 464 | "postcss": "^8.4" 465 | } 466 | }, 467 | "node_modules/@csstools/postcss-nested-calc": { 468 | "version": "2.0.2", 469 | "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-2.0.2.tgz", 470 | "integrity": "sha512-jbwrP8rN4e7LNaRcpx3xpMUjhtt34I9OV+zgbcsYAAk6k1+3kODXJBf95/JMYWhu9g1oif7r06QVUgfWsKxCFw==", 471 | "dev": true, 472 | "dependencies": { 473 | "postcss-value-parser": "^4.2.0" 474 | }, 475 | "engines": { 476 | "node": "^14 || ^16 || >=18" 477 | }, 478 | "funding": { 479 | "type": "opencollective", 480 | "url": "https://opencollective.com/csstools" 481 | }, 482 | "peerDependencies": { 483 | "postcss": "^8.4" 484 | } 485 | }, 486 | "node_modules/@csstools/postcss-normalize-display-values": { 487 | "version": "2.0.1", 488 | "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-2.0.1.tgz", 489 | "integrity": "sha512-TQT5g3JQ5gPXC239YuRK8jFceXF9d25ZvBkyjzBGGoW5st5sPXFVQS8OjYb9IJ/K3CdfK4528y483cgS2DJR/w==", 490 | "dev": true, 491 | "dependencies": { 492 | "postcss-value-parser": "^4.2.0" 493 | }, 494 | "engines": { 495 | "node": "^14 || ^16 || >=18" 496 | }, 497 | "funding": { 498 | "type": "opencollective", 499 | "url": "https://opencollective.com/csstools" 500 | }, 501 | "peerDependencies": { 502 | "postcss": "^8.4" 503 | } 504 | }, 505 | "node_modules/@csstools/postcss-oklab-function": { 506 | "version": "2.2.3", 507 | "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-2.2.3.tgz", 508 | "integrity": "sha512-AgJ2rWMnLCDcbSMTHSqBYn66DNLBym6JpBpCaqmwZ9huGdljjDRuH3DzOYzkgQ7Pm2K92IYIq54IvFHloUOdvA==", 509 | "dev": true, 510 | "funding": [ 511 | { 512 | "type": "github", 513 | "url": "https://github.com/sponsors/csstools" 514 | }, 515 | { 516 | "type": "opencollective", 517 | "url": "https://opencollective.com/csstools" 518 | } 519 | ], 520 | "dependencies": { 521 | "@csstools/css-color-parser": "^1.2.0", 522 | "@csstools/css-parser-algorithms": "^2.1.1", 523 | "@csstools/css-tokenizer": "^2.1.1", 524 | "@csstools/postcss-progressive-custom-properties": "^2.3.0" 525 | }, 526 | "engines": { 527 | "node": "^14 || ^16 || >=18" 528 | }, 529 | "peerDependencies": { 530 | "postcss": "^8.4" 531 | } 532 | }, 533 | "node_modules/@csstools/postcss-progressive-custom-properties": { 534 | "version": "2.3.0", 535 | "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-2.3.0.tgz", 536 | "integrity": "sha512-Zd8ojyMlsL919TBExQ1I0CTpBDdyCpH/yOdqatZpuC3sd22K4SwC7+Yez3Q/vmXMWSAl+shjNeFZ7JMyxMjK+Q==", 537 | "dev": true, 538 | "funding": [ 539 | { 540 | "type": "github", 541 | "url": "https://github.com/sponsors/csstools" 542 | }, 543 | { 544 | "type": "opencollective", 545 | "url": "https://opencollective.com/csstools" 546 | } 547 | ], 548 | "dependencies": { 549 | "postcss-value-parser": "^4.2.0" 550 | }, 551 | "engines": { 552 | "node": "^14 || ^16 || >=18" 553 | }, 554 | "peerDependencies": { 555 | "postcss": "^8.4" 556 | } 557 | }, 558 | "node_modules/@csstools/postcss-relative-color-syntax": { 559 | "version": "1.0.1", 560 | "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-1.0.1.tgz", 561 | "integrity": "sha512-IskxdQqAkx/pyyOEW3Lhn3nvOu5zlaZ8wQljFl5zc3ABl+gEFf2G42yWK3+wX+J0F4jm7OikOigXo9fAISFEmg==", 562 | "dev": true, 563 | "funding": [ 564 | { 565 | "type": "github", 566 | "url": "https://github.com/sponsors/csstools" 567 | }, 568 | { 569 | "type": "opencollective", 570 | "url": "https://opencollective.com/csstools" 571 | } 572 | ], 573 | "dependencies": { 574 | "@csstools/css-color-parser": "^1.2.0", 575 | "@csstools/css-parser-algorithms": "^2.1.1", 576 | "@csstools/css-tokenizer": "^2.1.1", 577 | "@csstools/postcss-progressive-custom-properties": "^2.3.0" 578 | }, 579 | "engines": { 580 | "node": "^14 || ^16 || >=18" 581 | }, 582 | "peerDependencies": { 583 | "postcss": "^8.4" 584 | } 585 | }, 586 | "node_modules/@csstools/postcss-scope-pseudo-class": { 587 | "version": "2.0.2", 588 | "resolved": "https://registry.npmjs.org/@csstools/postcss-scope-pseudo-class/-/postcss-scope-pseudo-class-2.0.2.tgz", 589 | "integrity": "sha512-6Pvo4uexUCXt+Hz5iUtemQAcIuCYnL+ePs1khFR6/xPgC92aQLJ0zGHonWoewiBE+I++4gXK3pr+R1rlOFHe5w==", 590 | "dev": true, 591 | "dependencies": { 592 | "postcss-selector-parser": "^6.0.10" 593 | }, 594 | "engines": { 595 | "node": "^14 || ^16 || >=18" 596 | }, 597 | "funding": { 598 | "type": "opencollective", 599 | "url": "https://opencollective.com/csstools" 600 | }, 601 | "peerDependencies": { 602 | "postcss": "^8.4" 603 | } 604 | }, 605 | "node_modules/@csstools/postcss-stepped-value-functions": { 606 | "version": "2.1.1", 607 | "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-2.1.1.tgz", 608 | "integrity": "sha512-YCvdF0GCZK35nhLgs7ippcxDlRVe5QsSht3+EghqTjnYnyl3BbWIN6fYQ1dKWYTJ+7Bgi41TgqQFfJDcp9Xy/w==", 609 | "dev": true, 610 | "dependencies": { 611 | "@csstools/css-calc": "^1.1.1", 612 | "@csstools/css-parser-algorithms": "^2.1.1", 613 | "@csstools/css-tokenizer": "^2.1.1" 614 | }, 615 | "engines": { 616 | "node": "^14 || ^16 || >=18" 617 | }, 618 | "funding": { 619 | "type": "opencollective", 620 | "url": "https://opencollective.com/csstools" 621 | }, 622 | "peerDependencies": { 623 | "postcss": "^8.4" 624 | } 625 | }, 626 | "node_modules/@csstools/postcss-text-decoration-shorthand": { 627 | "version": "2.2.4", 628 | "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-2.2.4.tgz", 629 | "integrity": "sha512-zPN56sQkS/7YTCVZhOBVCWf7AiNge8fXDl7JVaHLz2RyT4pnyK2gFjckWRLpO0A2xkm1lCgZ0bepYZTwAVd/5A==", 630 | "dev": true, 631 | "funding": [ 632 | { 633 | "type": "github", 634 | "url": "https://github.com/sponsors/csstools" 635 | }, 636 | { 637 | "type": "opencollective", 638 | "url": "https://opencollective.com/csstools" 639 | } 640 | ], 641 | "dependencies": { 642 | "@csstools/color-helpers": "^2.1.0", 643 | "postcss-value-parser": "^4.2.0" 644 | }, 645 | "engines": { 646 | "node": "^14 || ^16 || >=18" 647 | }, 648 | "peerDependencies": { 649 | "postcss": "^8.4" 650 | } 651 | }, 652 | "node_modules/@csstools/postcss-trigonometric-functions": { 653 | "version": "2.1.1", 654 | "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-2.1.1.tgz", 655 | "integrity": "sha512-XcXmHEFfHXhvYz40FtDlA4Fp4NQln2bWTsCwthd2c+MCnYArUYU3YaMqzR5CrKP3pMoGYTBnp5fMqf1HxItNyw==", 656 | "dev": true, 657 | "dependencies": { 658 | "@csstools/css-calc": "^1.1.1", 659 | "@csstools/css-parser-algorithms": "^2.1.1", 660 | "@csstools/css-tokenizer": "^2.1.1" 661 | }, 662 | "engines": { 663 | "node": "^14 || ^16 || >=18" 664 | }, 665 | "funding": { 666 | "type": "opencollective", 667 | "url": "https://opencollective.com/csstools" 668 | }, 669 | "peerDependencies": { 670 | "postcss": "^8.4" 671 | } 672 | }, 673 | "node_modules/@csstools/postcss-unset-value": { 674 | "version": "2.0.1", 675 | "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-2.0.1.tgz", 676 | "integrity": "sha512-oJ9Xl29/yU8U7/pnMJRqAZd4YXNCfGEdcP4ywREuqm/xMqcgDNDppYRoCGDt40aaZQIEKBS79LytUDN/DHf0Ew==", 677 | "dev": true, 678 | "engines": { 679 | "node": "^14 || ^16 || >=18" 680 | }, 681 | "funding": { 682 | "type": "opencollective", 683 | "url": "https://opencollective.com/csstools" 684 | }, 685 | "peerDependencies": { 686 | "postcss": "^8.4" 687 | } 688 | }, 689 | "node_modules/@csstools/selector-specificity": { 690 | "version": "2.2.0", 691 | "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", 692 | "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", 693 | "dev": true, 694 | "engines": { 695 | "node": "^14 || ^16 || >=18" 696 | }, 697 | "funding": { 698 | "type": "opencollective", 699 | "url": "https://opencollective.com/csstools" 700 | }, 701 | "peerDependencies": { 702 | "postcss-selector-parser": "^6.0.10" 703 | } 704 | }, 705 | "node_modules/@esbuild/android-arm": { 706 | "version": "0.17.19", 707 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", 708 | "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", 709 | "cpu": [ 710 | "arm" 711 | ], 712 | "dev": true, 713 | "optional": true, 714 | "os": [ 715 | "android" 716 | ], 717 | "engines": { 718 | "node": ">=12" 719 | } 720 | }, 721 | "node_modules/@esbuild/android-arm64": { 722 | "version": "0.17.19", 723 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", 724 | "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", 725 | "cpu": [ 726 | "arm64" 727 | ], 728 | "dev": true, 729 | "optional": true, 730 | "os": [ 731 | "android" 732 | ], 733 | "engines": { 734 | "node": ">=12" 735 | } 736 | }, 737 | "node_modules/@esbuild/android-x64": { 738 | "version": "0.17.19", 739 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", 740 | "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", 741 | "cpu": [ 742 | "x64" 743 | ], 744 | "dev": true, 745 | "optional": true, 746 | "os": [ 747 | "android" 748 | ], 749 | "engines": { 750 | "node": ">=12" 751 | } 752 | }, 753 | "node_modules/@esbuild/darwin-arm64": { 754 | "version": "0.17.19", 755 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", 756 | "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", 757 | "cpu": [ 758 | "arm64" 759 | ], 760 | "dev": true, 761 | "optional": true, 762 | "os": [ 763 | "darwin" 764 | ], 765 | "engines": { 766 | "node": ">=12" 767 | } 768 | }, 769 | "node_modules/@esbuild/darwin-x64": { 770 | "version": "0.17.19", 771 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", 772 | "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", 773 | "cpu": [ 774 | "x64" 775 | ], 776 | "dev": true, 777 | "optional": true, 778 | "os": [ 779 | "darwin" 780 | ], 781 | "engines": { 782 | "node": ">=12" 783 | } 784 | }, 785 | "node_modules/@esbuild/freebsd-arm64": { 786 | "version": "0.17.19", 787 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", 788 | "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", 789 | "cpu": [ 790 | "arm64" 791 | ], 792 | "dev": true, 793 | "optional": true, 794 | "os": [ 795 | "freebsd" 796 | ], 797 | "engines": { 798 | "node": ">=12" 799 | } 800 | }, 801 | "node_modules/@esbuild/freebsd-x64": { 802 | "version": "0.17.19", 803 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", 804 | "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", 805 | "cpu": [ 806 | "x64" 807 | ], 808 | "dev": true, 809 | "optional": true, 810 | "os": [ 811 | "freebsd" 812 | ], 813 | "engines": { 814 | "node": ">=12" 815 | } 816 | }, 817 | "node_modules/@esbuild/linux-arm": { 818 | "version": "0.17.19", 819 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", 820 | "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", 821 | "cpu": [ 822 | "arm" 823 | ], 824 | "dev": true, 825 | "optional": true, 826 | "os": [ 827 | "linux" 828 | ], 829 | "engines": { 830 | "node": ">=12" 831 | } 832 | }, 833 | "node_modules/@esbuild/linux-arm64": { 834 | "version": "0.17.19", 835 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", 836 | "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", 837 | "cpu": [ 838 | "arm64" 839 | ], 840 | "dev": true, 841 | "optional": true, 842 | "os": [ 843 | "linux" 844 | ], 845 | "engines": { 846 | "node": ">=12" 847 | } 848 | }, 849 | "node_modules/@esbuild/linux-ia32": { 850 | "version": "0.17.19", 851 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", 852 | "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", 853 | "cpu": [ 854 | "ia32" 855 | ], 856 | "dev": true, 857 | "optional": true, 858 | "os": [ 859 | "linux" 860 | ], 861 | "engines": { 862 | "node": ">=12" 863 | } 864 | }, 865 | "node_modules/@esbuild/linux-loong64": { 866 | "version": "0.17.19", 867 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", 868 | "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", 869 | "cpu": [ 870 | "loong64" 871 | ], 872 | "dev": true, 873 | "optional": true, 874 | "os": [ 875 | "linux" 876 | ], 877 | "engines": { 878 | "node": ">=12" 879 | } 880 | }, 881 | "node_modules/@esbuild/linux-mips64el": { 882 | "version": "0.17.19", 883 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", 884 | "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", 885 | "cpu": [ 886 | "mips64el" 887 | ], 888 | "dev": true, 889 | "optional": true, 890 | "os": [ 891 | "linux" 892 | ], 893 | "engines": { 894 | "node": ">=12" 895 | } 896 | }, 897 | "node_modules/@esbuild/linux-ppc64": { 898 | "version": "0.17.19", 899 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", 900 | "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", 901 | "cpu": [ 902 | "ppc64" 903 | ], 904 | "dev": true, 905 | "optional": true, 906 | "os": [ 907 | "linux" 908 | ], 909 | "engines": { 910 | "node": ">=12" 911 | } 912 | }, 913 | "node_modules/@esbuild/linux-riscv64": { 914 | "version": "0.17.19", 915 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", 916 | "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", 917 | "cpu": [ 918 | "riscv64" 919 | ], 920 | "dev": true, 921 | "optional": true, 922 | "os": [ 923 | "linux" 924 | ], 925 | "engines": { 926 | "node": ">=12" 927 | } 928 | }, 929 | "node_modules/@esbuild/linux-s390x": { 930 | "version": "0.17.19", 931 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", 932 | "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", 933 | "cpu": [ 934 | "s390x" 935 | ], 936 | "dev": true, 937 | "optional": true, 938 | "os": [ 939 | "linux" 940 | ], 941 | "engines": { 942 | "node": ">=12" 943 | } 944 | }, 945 | "node_modules/@esbuild/linux-x64": { 946 | "version": "0.17.19", 947 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", 948 | "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", 949 | "cpu": [ 950 | "x64" 951 | ], 952 | "dev": true, 953 | "optional": true, 954 | "os": [ 955 | "linux" 956 | ], 957 | "engines": { 958 | "node": ">=12" 959 | } 960 | }, 961 | "node_modules/@esbuild/netbsd-x64": { 962 | "version": "0.17.19", 963 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", 964 | "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", 965 | "cpu": [ 966 | "x64" 967 | ], 968 | "dev": true, 969 | "optional": true, 970 | "os": [ 971 | "netbsd" 972 | ], 973 | "engines": { 974 | "node": ">=12" 975 | } 976 | }, 977 | "node_modules/@esbuild/openbsd-x64": { 978 | "version": "0.17.19", 979 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", 980 | "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", 981 | "cpu": [ 982 | "x64" 983 | ], 984 | "dev": true, 985 | "optional": true, 986 | "os": [ 987 | "openbsd" 988 | ], 989 | "engines": { 990 | "node": ">=12" 991 | } 992 | }, 993 | "node_modules/@esbuild/sunos-x64": { 994 | "version": "0.17.19", 995 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", 996 | "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", 997 | "cpu": [ 998 | "x64" 999 | ], 1000 | "dev": true, 1001 | "optional": true, 1002 | "os": [ 1003 | "sunos" 1004 | ], 1005 | "engines": { 1006 | "node": ">=12" 1007 | } 1008 | }, 1009 | "node_modules/@esbuild/win32-arm64": { 1010 | "version": "0.17.19", 1011 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", 1012 | "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", 1013 | "cpu": [ 1014 | "arm64" 1015 | ], 1016 | "dev": true, 1017 | "optional": true, 1018 | "os": [ 1019 | "win32" 1020 | ], 1021 | "engines": { 1022 | "node": ">=12" 1023 | } 1024 | }, 1025 | "node_modules/@esbuild/win32-ia32": { 1026 | "version": "0.17.19", 1027 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", 1028 | "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", 1029 | "cpu": [ 1030 | "ia32" 1031 | ], 1032 | "dev": true, 1033 | "optional": true, 1034 | "os": [ 1035 | "win32" 1036 | ], 1037 | "engines": { 1038 | "node": ">=12" 1039 | } 1040 | }, 1041 | "node_modules/@esbuild/win32-x64": { 1042 | "version": "0.17.19", 1043 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", 1044 | "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", 1045 | "cpu": [ 1046 | "x64" 1047 | ], 1048 | "dev": true, 1049 | "optional": true, 1050 | "os": [ 1051 | "win32" 1052 | ], 1053 | "engines": { 1054 | "node": ">=12" 1055 | } 1056 | }, 1057 | "node_modules/@trysound/sax": { 1058 | "version": "0.2.0", 1059 | "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", 1060 | "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", 1061 | "dev": true, 1062 | "engines": { 1063 | "node": ">=10.13.0" 1064 | } 1065 | }, 1066 | "node_modules/autoprefixer": { 1067 | "version": "10.4.14", 1068 | "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", 1069 | "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", 1070 | "dev": true, 1071 | "funding": [ 1072 | { 1073 | "type": "opencollective", 1074 | "url": "https://opencollective.com/postcss/" 1075 | }, 1076 | { 1077 | "type": "tidelift", 1078 | "url": "https://tidelift.com/funding/github/npm/autoprefixer" 1079 | } 1080 | ], 1081 | "dependencies": { 1082 | "browserslist": "^4.21.5", 1083 | "caniuse-lite": "^1.0.30001464", 1084 | "fraction.js": "^4.2.0", 1085 | "normalize-range": "^0.1.2", 1086 | "picocolors": "^1.0.0", 1087 | "postcss-value-parser": "^4.2.0" 1088 | }, 1089 | "bin": { 1090 | "autoprefixer": "bin/autoprefixer" 1091 | }, 1092 | "engines": { 1093 | "node": "^10 || ^12 || >=14" 1094 | }, 1095 | "peerDependencies": { 1096 | "postcss": "^8.1.0" 1097 | } 1098 | }, 1099 | "node_modules/boolbase": { 1100 | "version": "1.0.0", 1101 | "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", 1102 | "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", 1103 | "dev": true 1104 | }, 1105 | "node_modules/browserslist": { 1106 | "version": "4.21.7", 1107 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.7.tgz", 1108 | "integrity": "sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA==", 1109 | "dev": true, 1110 | "funding": [ 1111 | { 1112 | "type": "opencollective", 1113 | "url": "https://opencollective.com/browserslist" 1114 | }, 1115 | { 1116 | "type": "tidelift", 1117 | "url": "https://tidelift.com/funding/github/npm/browserslist" 1118 | }, 1119 | { 1120 | "type": "github", 1121 | "url": "https://github.com/sponsors/ai" 1122 | } 1123 | ], 1124 | "dependencies": { 1125 | "caniuse-lite": "^1.0.30001489", 1126 | "electron-to-chromium": "^1.4.411", 1127 | "node-releases": "^2.0.12", 1128 | "update-browserslist-db": "^1.0.11" 1129 | }, 1130 | "bin": { 1131 | "browserslist": "cli.js" 1132 | }, 1133 | "engines": { 1134 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" 1135 | } 1136 | }, 1137 | "node_modules/caniuse-api": { 1138 | "version": "3.0.0", 1139 | "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", 1140 | "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", 1141 | "dev": true, 1142 | "dependencies": { 1143 | "browserslist": "^4.0.0", 1144 | "caniuse-lite": "^1.0.0", 1145 | "lodash.memoize": "^4.1.2", 1146 | "lodash.uniq": "^4.5.0" 1147 | } 1148 | }, 1149 | "node_modules/caniuse-lite": { 1150 | "version": "1.0.30001492", 1151 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001492.tgz", 1152 | "integrity": "sha512-2efF8SAZwgAX1FJr87KWhvuJxnGJKOnctQa8xLOskAXNXq8oiuqgl6u1kk3fFpsp3GgvzlRjiK1sl63hNtFADw==", 1153 | "dev": true, 1154 | "funding": [ 1155 | { 1156 | "type": "opencollective", 1157 | "url": "https://opencollective.com/browserslist" 1158 | }, 1159 | { 1160 | "type": "tidelift", 1161 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite" 1162 | }, 1163 | { 1164 | "type": "github", 1165 | "url": "https://github.com/sponsors/ai" 1166 | } 1167 | ] 1168 | }, 1169 | "node_modules/colord": { 1170 | "version": "2.9.3", 1171 | "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", 1172 | "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", 1173 | "dev": true 1174 | }, 1175 | "node_modules/commander": { 1176 | "version": "7.2.0", 1177 | "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", 1178 | "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", 1179 | "dev": true, 1180 | "engines": { 1181 | "node": ">= 10" 1182 | } 1183 | }, 1184 | "node_modules/css-blank-pseudo": { 1185 | "version": "5.0.2", 1186 | "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-5.0.2.tgz", 1187 | "integrity": "sha512-aCU4AZ7uEcVSUzagTlA9pHciz7aWPKA/YzrEkpdSopJ2pvhIxiQ5sYeMz1/KByxlIo4XBdvMNJAVKMg/GRnhfw==", 1188 | "dev": true, 1189 | "dependencies": { 1190 | "postcss-selector-parser": "^6.0.10" 1191 | }, 1192 | "engines": { 1193 | "node": "^14 || ^16 || >=18" 1194 | }, 1195 | "funding": { 1196 | "type": "opencollective", 1197 | "url": "https://opencollective.com/csstools" 1198 | }, 1199 | "peerDependencies": { 1200 | "postcss": "^8.4" 1201 | } 1202 | }, 1203 | "node_modules/css-declaration-sorter": { 1204 | "version": "6.4.0", 1205 | "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz", 1206 | "integrity": "sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew==", 1207 | "dev": true, 1208 | "engines": { 1209 | "node": "^10 || ^12 || >=14" 1210 | }, 1211 | "peerDependencies": { 1212 | "postcss": "^8.0.9" 1213 | } 1214 | }, 1215 | "node_modules/css-has-pseudo": { 1216 | "version": "5.0.2", 1217 | "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-5.0.2.tgz", 1218 | "integrity": "sha512-q+U+4QdwwB7T9VEW/LyO6CFrLAeLqOykC5mDqJXc7aKZAhDbq7BvGT13VGJe+IwBfdN2o3Xdw2kJ5IxwV1Sc9Q==", 1219 | "dev": true, 1220 | "dependencies": { 1221 | "@csstools/selector-specificity": "^2.0.1", 1222 | "postcss-selector-parser": "^6.0.10", 1223 | "postcss-value-parser": "^4.2.0" 1224 | }, 1225 | "engines": { 1226 | "node": "^14 || ^16 || >=18" 1227 | }, 1228 | "funding": { 1229 | "type": "opencollective", 1230 | "url": "https://opencollective.com/csstools" 1231 | }, 1232 | "peerDependencies": { 1233 | "postcss": "^8.4" 1234 | } 1235 | }, 1236 | "node_modules/css-prefers-color-scheme": { 1237 | "version": "8.0.2", 1238 | "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-8.0.2.tgz", 1239 | "integrity": "sha512-OvFghizHJ45x7nsJJUSYLyQNTzsCU8yWjxAc/nhPQg1pbs18LMoET8N3kOweFDPy0JV0OSXN2iqRFhPBHYOeMA==", 1240 | "dev": true, 1241 | "engines": { 1242 | "node": "^14 || ^16 || >=18" 1243 | }, 1244 | "funding": { 1245 | "type": "opencollective", 1246 | "url": "https://opencollective.com/csstools" 1247 | }, 1248 | "peerDependencies": { 1249 | "postcss": "^8.4" 1250 | } 1251 | }, 1252 | "node_modules/css-select": { 1253 | "version": "5.1.0", 1254 | "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", 1255 | "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", 1256 | "dev": true, 1257 | "dependencies": { 1258 | "boolbase": "^1.0.0", 1259 | "css-what": "^6.1.0", 1260 | "domhandler": "^5.0.2", 1261 | "domutils": "^3.0.1", 1262 | "nth-check": "^2.0.1" 1263 | }, 1264 | "funding": { 1265 | "url": "https://github.com/sponsors/fb55" 1266 | } 1267 | }, 1268 | "node_modules/css-tree": { 1269 | "version": "2.3.1", 1270 | "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", 1271 | "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", 1272 | "dev": true, 1273 | "dependencies": { 1274 | "mdn-data": "2.0.30", 1275 | "source-map-js": "^1.0.1" 1276 | }, 1277 | "engines": { 1278 | "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" 1279 | } 1280 | }, 1281 | "node_modules/css-what": { 1282 | "version": "6.1.0", 1283 | "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", 1284 | "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", 1285 | "dev": true, 1286 | "engines": { 1287 | "node": ">= 6" 1288 | }, 1289 | "funding": { 1290 | "url": "https://github.com/sponsors/fb55" 1291 | } 1292 | }, 1293 | "node_modules/cssdb": { 1294 | "version": "7.6.0", 1295 | "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.6.0.tgz", 1296 | "integrity": "sha512-Nna7rph8V0jC6+JBY4Vk4ndErUmfJfV6NJCaZdurL0omggabiy+QB2HCQtu5c/ACLZ0I7REv7A4QyPIoYzZx0w==", 1297 | "dev": true, 1298 | "funding": [ 1299 | { 1300 | "type": "opencollective", 1301 | "url": "https://opencollective.com/csstools" 1302 | }, 1303 | { 1304 | "type": "github", 1305 | "url": "https://github.com/sponsors/csstools" 1306 | } 1307 | ] 1308 | }, 1309 | "node_modules/cssesc": { 1310 | "version": "3.0.0", 1311 | "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", 1312 | "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", 1313 | "dev": true, 1314 | "bin": { 1315 | "cssesc": "bin/cssesc" 1316 | }, 1317 | "engines": { 1318 | "node": ">=4" 1319 | } 1320 | }, 1321 | "node_modules/cssnano": { 1322 | "version": "6.0.1", 1323 | "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.0.1.tgz", 1324 | "integrity": "sha512-fVO1JdJ0LSdIGJq68eIxOqFpIJrZqXUsBt8fkrBcztCQqAjQD51OhZp7tc0ImcbwXD4k7ny84QTV90nZhmqbkg==", 1325 | "dev": true, 1326 | "dependencies": { 1327 | "cssnano-preset-default": "^6.0.1", 1328 | "lilconfig": "^2.1.0" 1329 | }, 1330 | "engines": { 1331 | "node": "^14 || ^16 || >=18.0" 1332 | }, 1333 | "funding": { 1334 | "type": "opencollective", 1335 | "url": "https://opencollective.com/cssnano" 1336 | }, 1337 | "peerDependencies": { 1338 | "postcss": "^8.2.15" 1339 | } 1340 | }, 1341 | "node_modules/cssnano-preset-default": { 1342 | "version": "6.0.1", 1343 | "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.0.1.tgz", 1344 | "integrity": "sha512-7VzyFZ5zEB1+l1nToKyrRkuaJIx0zi/1npjvZfbBwbtNTzhLtlvYraK/7/uqmX2Wb2aQtd983uuGw79jAjLSuQ==", 1345 | "dev": true, 1346 | "dependencies": { 1347 | "css-declaration-sorter": "^6.3.1", 1348 | "cssnano-utils": "^4.0.0", 1349 | "postcss-calc": "^9.0.0", 1350 | "postcss-colormin": "^6.0.0", 1351 | "postcss-convert-values": "^6.0.0", 1352 | "postcss-discard-comments": "^6.0.0", 1353 | "postcss-discard-duplicates": "^6.0.0", 1354 | "postcss-discard-empty": "^6.0.0", 1355 | "postcss-discard-overridden": "^6.0.0", 1356 | "postcss-merge-longhand": "^6.0.0", 1357 | "postcss-merge-rules": "^6.0.1", 1358 | "postcss-minify-font-values": "^6.0.0", 1359 | "postcss-minify-gradients": "^6.0.0", 1360 | "postcss-minify-params": "^6.0.0", 1361 | "postcss-minify-selectors": "^6.0.0", 1362 | "postcss-normalize-charset": "^6.0.0", 1363 | "postcss-normalize-display-values": "^6.0.0", 1364 | "postcss-normalize-positions": "^6.0.0", 1365 | "postcss-normalize-repeat-style": "^6.0.0", 1366 | "postcss-normalize-string": "^6.0.0", 1367 | "postcss-normalize-timing-functions": "^6.0.0", 1368 | "postcss-normalize-unicode": "^6.0.0", 1369 | "postcss-normalize-url": "^6.0.0", 1370 | "postcss-normalize-whitespace": "^6.0.0", 1371 | "postcss-ordered-values": "^6.0.0", 1372 | "postcss-reduce-initial": "^6.0.0", 1373 | "postcss-reduce-transforms": "^6.0.0", 1374 | "postcss-svgo": "^6.0.0", 1375 | "postcss-unique-selectors": "^6.0.0" 1376 | }, 1377 | "engines": { 1378 | "node": "^14 || ^16 || >=18.0" 1379 | }, 1380 | "peerDependencies": { 1381 | "postcss": "^8.2.15" 1382 | } 1383 | }, 1384 | "node_modules/cssnano-utils": { 1385 | "version": "4.0.0", 1386 | "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.0.tgz", 1387 | "integrity": "sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw==", 1388 | "dev": true, 1389 | "engines": { 1390 | "node": "^14 || ^16 || >=18.0" 1391 | }, 1392 | "peerDependencies": { 1393 | "postcss": "^8.2.15" 1394 | } 1395 | }, 1396 | "node_modules/csso": { 1397 | "version": "5.0.5", 1398 | "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", 1399 | "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", 1400 | "dev": true, 1401 | "dependencies": { 1402 | "css-tree": "~2.2.0" 1403 | }, 1404 | "engines": { 1405 | "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", 1406 | "npm": ">=7.0.0" 1407 | } 1408 | }, 1409 | "node_modules/csso/node_modules/css-tree": { 1410 | "version": "2.2.1", 1411 | "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", 1412 | "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", 1413 | "dev": true, 1414 | "dependencies": { 1415 | "mdn-data": "2.0.28", 1416 | "source-map-js": "^1.0.1" 1417 | }, 1418 | "engines": { 1419 | "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", 1420 | "npm": ">=7.0.0" 1421 | } 1422 | }, 1423 | "node_modules/csso/node_modules/mdn-data": { 1424 | "version": "2.0.28", 1425 | "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", 1426 | "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", 1427 | "dev": true 1428 | }, 1429 | "node_modules/dom-serializer": { 1430 | "version": "2.0.0", 1431 | "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", 1432 | "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", 1433 | "dev": true, 1434 | "dependencies": { 1435 | "domelementtype": "^2.3.0", 1436 | "domhandler": "^5.0.2", 1437 | "entities": "^4.2.0" 1438 | }, 1439 | "funding": { 1440 | "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" 1441 | } 1442 | }, 1443 | "node_modules/domelementtype": { 1444 | "version": "2.3.0", 1445 | "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", 1446 | "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", 1447 | "dev": true, 1448 | "funding": [ 1449 | { 1450 | "type": "github", 1451 | "url": "https://github.com/sponsors/fb55" 1452 | } 1453 | ] 1454 | }, 1455 | "node_modules/domhandler": { 1456 | "version": "5.0.3", 1457 | "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", 1458 | "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", 1459 | "dev": true, 1460 | "dependencies": { 1461 | "domelementtype": "^2.3.0" 1462 | }, 1463 | "engines": { 1464 | "node": ">= 4" 1465 | }, 1466 | "funding": { 1467 | "url": "https://github.com/fb55/domhandler?sponsor=1" 1468 | } 1469 | }, 1470 | "node_modules/domutils": { 1471 | "version": "3.1.0", 1472 | "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", 1473 | "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", 1474 | "dev": true, 1475 | "dependencies": { 1476 | "dom-serializer": "^2.0.0", 1477 | "domelementtype": "^2.3.0", 1478 | "domhandler": "^5.0.3" 1479 | }, 1480 | "funding": { 1481 | "url": "https://github.com/fb55/domutils?sponsor=1" 1482 | } 1483 | }, 1484 | "node_modules/electron-to-chromium": { 1485 | "version": "1.4.419", 1486 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.419.tgz", 1487 | "integrity": "sha512-jdie3RiEgygvDTyS2sgjq71B36q2cDSBfPlwzUyuOrfYTNoYWyBxxjGJV/HAu3A2hB0Y+HesvCVkVAFoCKwCSw==", 1488 | "dev": true 1489 | }, 1490 | "node_modules/entities": { 1491 | "version": "4.5.0", 1492 | "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", 1493 | "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", 1494 | "dev": true, 1495 | "engines": { 1496 | "node": ">=0.12" 1497 | }, 1498 | "funding": { 1499 | "url": "https://github.com/fb55/entities?sponsor=1" 1500 | } 1501 | }, 1502 | "node_modules/esbuild": { 1503 | "version": "0.17.19", 1504 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", 1505 | "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", 1506 | "dev": true, 1507 | "hasInstallScript": true, 1508 | "bin": { 1509 | "esbuild": "bin/esbuild" 1510 | }, 1511 | "engines": { 1512 | "node": ">=12" 1513 | }, 1514 | "optionalDependencies": { 1515 | "@esbuild/android-arm": "0.17.19", 1516 | "@esbuild/android-arm64": "0.17.19", 1517 | "@esbuild/android-x64": "0.17.19", 1518 | "@esbuild/darwin-arm64": "0.17.19", 1519 | "@esbuild/darwin-x64": "0.17.19", 1520 | "@esbuild/freebsd-arm64": "0.17.19", 1521 | "@esbuild/freebsd-x64": "0.17.19", 1522 | "@esbuild/linux-arm": "0.17.19", 1523 | "@esbuild/linux-arm64": "0.17.19", 1524 | "@esbuild/linux-ia32": "0.17.19", 1525 | "@esbuild/linux-loong64": "0.17.19", 1526 | "@esbuild/linux-mips64el": "0.17.19", 1527 | "@esbuild/linux-ppc64": "0.17.19", 1528 | "@esbuild/linux-riscv64": "0.17.19", 1529 | "@esbuild/linux-s390x": "0.17.19", 1530 | "@esbuild/linux-x64": "0.17.19", 1531 | "@esbuild/netbsd-x64": "0.17.19", 1532 | "@esbuild/openbsd-x64": "0.17.19", 1533 | "@esbuild/sunos-x64": "0.17.19", 1534 | "@esbuild/win32-arm64": "0.17.19", 1535 | "@esbuild/win32-ia32": "0.17.19", 1536 | "@esbuild/win32-x64": "0.17.19" 1537 | } 1538 | }, 1539 | "node_modules/escalade": { 1540 | "version": "3.1.1", 1541 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", 1542 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", 1543 | "dev": true, 1544 | "engines": { 1545 | "node": ">=6" 1546 | } 1547 | }, 1548 | "node_modules/fraction.js": { 1549 | "version": "4.2.0", 1550 | "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", 1551 | "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", 1552 | "dev": true, 1553 | "engines": { 1554 | "node": "*" 1555 | }, 1556 | "funding": { 1557 | "type": "patreon", 1558 | "url": "https://www.patreon.com/infusion" 1559 | } 1560 | }, 1561 | "node_modules/fsevents": { 1562 | "version": "2.3.2", 1563 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 1564 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 1565 | "dev": true, 1566 | "hasInstallScript": true, 1567 | "optional": true, 1568 | "os": [ 1569 | "darwin" 1570 | ], 1571 | "engines": { 1572 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 1573 | } 1574 | }, 1575 | "node_modules/lilconfig": { 1576 | "version": "2.1.0", 1577 | "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", 1578 | "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", 1579 | "dev": true, 1580 | "engines": { 1581 | "node": ">=10" 1582 | } 1583 | }, 1584 | "node_modules/lodash.memoize": { 1585 | "version": "4.1.2", 1586 | "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", 1587 | "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", 1588 | "dev": true 1589 | }, 1590 | "node_modules/lodash.uniq": { 1591 | "version": "4.5.0", 1592 | "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", 1593 | "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", 1594 | "dev": true 1595 | }, 1596 | "node_modules/mdn-data": { 1597 | "version": "2.0.30", 1598 | "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", 1599 | "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", 1600 | "dev": true 1601 | }, 1602 | "node_modules/nanoid": { 1603 | "version": "3.3.6", 1604 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", 1605 | "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", 1606 | "dev": true, 1607 | "funding": [ 1608 | { 1609 | "type": "github", 1610 | "url": "https://github.com/sponsors/ai" 1611 | } 1612 | ], 1613 | "bin": { 1614 | "nanoid": "bin/nanoid.cjs" 1615 | }, 1616 | "engines": { 1617 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 1618 | } 1619 | }, 1620 | "node_modules/node-releases": { 1621 | "version": "2.0.12", 1622 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz", 1623 | "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==", 1624 | "dev": true 1625 | }, 1626 | "node_modules/normalize-range": { 1627 | "version": "0.1.2", 1628 | "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", 1629 | "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", 1630 | "dev": true, 1631 | "engines": { 1632 | "node": ">=0.10.0" 1633 | } 1634 | }, 1635 | "node_modules/nth-check": { 1636 | "version": "2.1.1", 1637 | "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", 1638 | "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", 1639 | "dev": true, 1640 | "dependencies": { 1641 | "boolbase": "^1.0.0" 1642 | }, 1643 | "funding": { 1644 | "url": "https://github.com/fb55/nth-check?sponsor=1" 1645 | } 1646 | }, 1647 | "node_modules/picocolors": { 1648 | "version": "1.0.0", 1649 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 1650 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", 1651 | "dev": true 1652 | }, 1653 | "node_modules/postcss": { 1654 | "version": "8.4.24", 1655 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz", 1656 | "integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==", 1657 | "dev": true, 1658 | "funding": [ 1659 | { 1660 | "type": "opencollective", 1661 | "url": "https://opencollective.com/postcss/" 1662 | }, 1663 | { 1664 | "type": "tidelift", 1665 | "url": "https://tidelift.com/funding/github/npm/postcss" 1666 | }, 1667 | { 1668 | "type": "github", 1669 | "url": "https://github.com/sponsors/ai" 1670 | } 1671 | ], 1672 | "dependencies": { 1673 | "nanoid": "^3.3.6", 1674 | "picocolors": "^1.0.0", 1675 | "source-map-js": "^1.0.2" 1676 | }, 1677 | "engines": { 1678 | "node": "^10 || ^12 || >=14" 1679 | } 1680 | }, 1681 | "node_modules/postcss-attribute-case-insensitive": { 1682 | "version": "6.0.2", 1683 | "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-6.0.2.tgz", 1684 | "integrity": "sha512-IRuCwwAAQbgaLhxQdQcIIK0dCVXg3XDUnzgKD8iwdiYdwU4rMWRWyl/W9/0nA4ihVpq5pyALiHB2veBJ0292pw==", 1685 | "dev": true, 1686 | "dependencies": { 1687 | "postcss-selector-parser": "^6.0.10" 1688 | }, 1689 | "engines": { 1690 | "node": "^14 || ^16 || >=18" 1691 | }, 1692 | "funding": { 1693 | "type": "opencollective", 1694 | "url": "https://opencollective.com/csstools" 1695 | }, 1696 | "peerDependencies": { 1697 | "postcss": "^8.4" 1698 | } 1699 | }, 1700 | "node_modules/postcss-calc": { 1701 | "version": "9.0.1", 1702 | "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", 1703 | "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", 1704 | "dev": true, 1705 | "dependencies": { 1706 | "postcss-selector-parser": "^6.0.11", 1707 | "postcss-value-parser": "^4.2.0" 1708 | }, 1709 | "engines": { 1710 | "node": "^14 || ^16 || >=18.0" 1711 | }, 1712 | "peerDependencies": { 1713 | "postcss": "^8.2.2" 1714 | } 1715 | }, 1716 | "node_modules/postcss-clamp": { 1717 | "version": "4.1.0", 1718 | "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", 1719 | "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", 1720 | "dev": true, 1721 | "dependencies": { 1722 | "postcss-value-parser": "^4.2.0" 1723 | }, 1724 | "engines": { 1725 | "node": ">=7.6.0" 1726 | }, 1727 | "peerDependencies": { 1728 | "postcss": "^8.4.6" 1729 | } 1730 | }, 1731 | "node_modules/postcss-color-functional-notation": { 1732 | "version": "5.1.0", 1733 | "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-5.1.0.tgz", 1734 | "integrity": "sha512-w2R4py6zrVE1U7FwNaAc76tNQlG9GLkrBbcFw+VhUjyDDiV28vfZG+l4LyPmpoQpeSJVtu8VgNjE8Jv5SpC7dQ==", 1735 | "dev": true, 1736 | "funding": [ 1737 | { 1738 | "type": "github", 1739 | "url": "https://github.com/sponsors/csstools" 1740 | }, 1741 | { 1742 | "type": "opencollective", 1743 | "url": "https://opencollective.com/csstools" 1744 | } 1745 | ], 1746 | "dependencies": { 1747 | "@csstools/postcss-progressive-custom-properties": "^2.3.0", 1748 | "postcss-value-parser": "^4.2.0" 1749 | }, 1750 | "engines": { 1751 | "node": "^14 || ^16 || >=18" 1752 | }, 1753 | "peerDependencies": { 1754 | "postcss": "^8.4" 1755 | } 1756 | }, 1757 | "node_modules/postcss-color-hex-alpha": { 1758 | "version": "9.0.2", 1759 | "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-9.0.2.tgz", 1760 | "integrity": "sha512-SfPjgr//VQ/DOCf80STIAsdAs7sbIbxATvVmd+Ec7JvR8onz9pjawhq3BJM3Pie40EE3TyB0P6hft16D33Nlyg==", 1761 | "dev": true, 1762 | "dependencies": { 1763 | "postcss-value-parser": "^4.2.0" 1764 | }, 1765 | "engines": { 1766 | "node": "^14 || ^16 || >=18" 1767 | }, 1768 | "funding": { 1769 | "type": "opencollective", 1770 | "url": "https://opencollective.com/csstools" 1771 | }, 1772 | "peerDependencies": { 1773 | "postcss": "^8.4" 1774 | } 1775 | }, 1776 | "node_modules/postcss-color-rebeccapurple": { 1777 | "version": "8.0.2", 1778 | "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-8.0.2.tgz", 1779 | "integrity": "sha512-xWf/JmAxVoB5bltHpXk+uGRoGFwu4WDAR7210el+iyvTdqiKpDhtcT8N3edXMoVJY0WHFMrKMUieql/wRNiXkw==", 1780 | "dev": true, 1781 | "dependencies": { 1782 | "postcss-value-parser": "^4.2.0" 1783 | }, 1784 | "engines": { 1785 | "node": "^14 || ^16 || >=18" 1786 | }, 1787 | "funding": { 1788 | "type": "opencollective", 1789 | "url": "https://opencollective.com/csstools" 1790 | }, 1791 | "peerDependencies": { 1792 | "postcss": "^8.4" 1793 | } 1794 | }, 1795 | "node_modules/postcss-colormin": { 1796 | "version": "6.0.0", 1797 | "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.0.0.tgz", 1798 | "integrity": "sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw==", 1799 | "dev": true, 1800 | "dependencies": { 1801 | "browserslist": "^4.21.4", 1802 | "caniuse-api": "^3.0.0", 1803 | "colord": "^2.9.1", 1804 | "postcss-value-parser": "^4.2.0" 1805 | }, 1806 | "engines": { 1807 | "node": "^14 || ^16 || >=18.0" 1808 | }, 1809 | "peerDependencies": { 1810 | "postcss": "^8.2.15" 1811 | } 1812 | }, 1813 | "node_modules/postcss-convert-values": { 1814 | "version": "6.0.0", 1815 | "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.0.0.tgz", 1816 | "integrity": "sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw==", 1817 | "dev": true, 1818 | "dependencies": { 1819 | "browserslist": "^4.21.4", 1820 | "postcss-value-parser": "^4.2.0" 1821 | }, 1822 | "engines": { 1823 | "node": "^14 || ^16 || >=18.0" 1824 | }, 1825 | "peerDependencies": { 1826 | "postcss": "^8.2.15" 1827 | } 1828 | }, 1829 | "node_modules/postcss-custom-media": { 1830 | "version": "9.1.4", 1831 | "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-9.1.4.tgz", 1832 | "integrity": "sha512-4A7WEG3iIyKwfpxL5bkuSlHoHHGRTHl0212Z3uvpwJPyVfZJlkZAQNNgVC+oogrJgksDnfKyuuMbG6HafZPW8Q==", 1833 | "dev": true, 1834 | "funding": [ 1835 | { 1836 | "type": "github", 1837 | "url": "https://github.com/sponsors/csstools" 1838 | }, 1839 | { 1840 | "type": "opencollective", 1841 | "url": "https://opencollective.com/csstools" 1842 | } 1843 | ], 1844 | "dependencies": { 1845 | "@csstools/cascade-layer-name-parser": "^1.0.2", 1846 | "@csstools/css-parser-algorithms": "^2.1.1", 1847 | "@csstools/css-tokenizer": "^2.1.1", 1848 | "@csstools/media-query-list-parser": "^2.1.0" 1849 | }, 1850 | "engines": { 1851 | "node": "^14 || ^16 || >=18" 1852 | }, 1853 | "peerDependencies": { 1854 | "postcss": "^8.4" 1855 | } 1856 | }, 1857 | "node_modules/postcss-custom-properties": { 1858 | "version": "13.2.0", 1859 | "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-13.2.0.tgz", 1860 | "integrity": "sha512-UYiPqbqmVayyv56y0mtGhvUKZClflwE9cTTmPaqEX8fOVjVwsotqKGYtJXSLxrJLwf9tt7ka+Luyh1ZAOhGHWA==", 1861 | "dev": true, 1862 | "funding": [ 1863 | { 1864 | "type": "github", 1865 | "url": "https://github.com/sponsors/csstools" 1866 | }, 1867 | { 1868 | "type": "opencollective", 1869 | "url": "https://opencollective.com/csstools" 1870 | } 1871 | ], 1872 | "dependencies": { 1873 | "@csstools/cascade-layer-name-parser": "^1.0.2", 1874 | "@csstools/css-parser-algorithms": "^2.1.1", 1875 | "@csstools/css-tokenizer": "^2.1.1", 1876 | "postcss-value-parser": "^4.2.0" 1877 | }, 1878 | "engines": { 1879 | "node": "^14 || ^16 || >=18" 1880 | }, 1881 | "peerDependencies": { 1882 | "postcss": "^8.4" 1883 | } 1884 | }, 1885 | "node_modules/postcss-custom-selectors": { 1886 | "version": "7.1.3", 1887 | "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-7.1.3.tgz", 1888 | "integrity": "sha512-GTVscax6O/8s7agFF0HsOoIyjrnAbLjgCUle8tn+0oDGJuVx7p56U7ClSRoC49poxFuMfu2B4Q8GnxSCOeuFKw==", 1889 | "dev": true, 1890 | "dependencies": { 1891 | "@csstools/cascade-layer-name-parser": "^1.0.2", 1892 | "@csstools/css-parser-algorithms": "^2.1.1", 1893 | "@csstools/css-tokenizer": "^2.1.1", 1894 | "postcss-selector-parser": "^6.0.4" 1895 | }, 1896 | "engines": { 1897 | "node": "^14 || ^16 || >=18" 1898 | }, 1899 | "funding": { 1900 | "type": "opencollective", 1901 | "url": "https://opencollective.com/csstools" 1902 | }, 1903 | "peerDependencies": { 1904 | "postcss": "^8.4" 1905 | } 1906 | }, 1907 | "node_modules/postcss-dir-pseudo-class": { 1908 | "version": "7.0.2", 1909 | "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-7.0.2.tgz", 1910 | "integrity": "sha512-cMnslilYxBf9k3qejnovrUONZx1rXeUZJw06fgIUBzABJe3D2LiLL5WAER7Imt3nrkaIgG05XZBztueLEf5P8w==", 1911 | "dev": true, 1912 | "dependencies": { 1913 | "postcss-selector-parser": "^6.0.10" 1914 | }, 1915 | "engines": { 1916 | "node": "^14 || ^16 || >=18" 1917 | }, 1918 | "funding": { 1919 | "type": "opencollective", 1920 | "url": "https://opencollective.com/csstools" 1921 | }, 1922 | "peerDependencies": { 1923 | "postcss": "^8.4" 1924 | } 1925 | }, 1926 | "node_modules/postcss-discard-comments": { 1927 | "version": "6.0.0", 1928 | "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.0.tgz", 1929 | "integrity": "sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw==", 1930 | "dev": true, 1931 | "engines": { 1932 | "node": "^14 || ^16 || >=18.0" 1933 | }, 1934 | "peerDependencies": { 1935 | "postcss": "^8.2.15" 1936 | } 1937 | }, 1938 | "node_modules/postcss-discard-duplicates": { 1939 | "version": "6.0.0", 1940 | "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.0.tgz", 1941 | "integrity": "sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA==", 1942 | "dev": true, 1943 | "engines": { 1944 | "node": "^14 || ^16 || >=18.0" 1945 | }, 1946 | "peerDependencies": { 1947 | "postcss": "^8.2.15" 1948 | } 1949 | }, 1950 | "node_modules/postcss-discard-empty": { 1951 | "version": "6.0.0", 1952 | "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.0.tgz", 1953 | "integrity": "sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ==", 1954 | "dev": true, 1955 | "engines": { 1956 | "node": "^14 || ^16 || >=18.0" 1957 | }, 1958 | "peerDependencies": { 1959 | "postcss": "^8.2.15" 1960 | } 1961 | }, 1962 | "node_modules/postcss-discard-overridden": { 1963 | "version": "6.0.0", 1964 | "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.0.tgz", 1965 | "integrity": "sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw==", 1966 | "dev": true, 1967 | "engines": { 1968 | "node": "^14 || ^16 || >=18.0" 1969 | }, 1970 | "peerDependencies": { 1971 | "postcss": "^8.2.15" 1972 | } 1973 | }, 1974 | "node_modules/postcss-double-position-gradients": { 1975 | "version": "4.0.4", 1976 | "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-4.0.4.tgz", 1977 | "integrity": "sha512-nUAbUXURemLXIrl4Xoia2tiu5z/n8sY+BVDZApoeT9BlpByyrp02P/lFCRrRvZ/zrGRE+MOGLhk8o7VcMCtPtQ==", 1978 | "dev": true, 1979 | "funding": [ 1980 | { 1981 | "type": "github", 1982 | "url": "https://github.com/sponsors/csstools" 1983 | }, 1984 | { 1985 | "type": "opencollective", 1986 | "url": "https://opencollective.com/csstools" 1987 | } 1988 | ], 1989 | "dependencies": { 1990 | "@csstools/postcss-progressive-custom-properties": "^2.3.0", 1991 | "postcss-value-parser": "^4.2.0" 1992 | }, 1993 | "engines": { 1994 | "node": "^14 || ^16 || >=18" 1995 | }, 1996 | "peerDependencies": { 1997 | "postcss": "^8.4" 1998 | } 1999 | }, 2000 | "node_modules/postcss-focus-visible": { 2001 | "version": "8.0.2", 2002 | "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-8.0.2.tgz", 2003 | "integrity": "sha512-f/Vd+EC/GaKElknU59esVcRYr/Y3t1ZAQyL4u2xSOgkDy4bMCmG7VP5cGvj3+BTLNE9ETfEuz2nnt4qkZwTTeA==", 2004 | "dev": true, 2005 | "dependencies": { 2006 | "postcss-selector-parser": "^6.0.10" 2007 | }, 2008 | "engines": { 2009 | "node": "^14 || ^16 || >=18" 2010 | }, 2011 | "funding": { 2012 | "type": "opencollective", 2013 | "url": "https://opencollective.com/csstools" 2014 | }, 2015 | "peerDependencies": { 2016 | "postcss": "^8.4" 2017 | } 2018 | }, 2019 | "node_modules/postcss-focus-within": { 2020 | "version": "7.0.2", 2021 | "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-7.0.2.tgz", 2022 | "integrity": "sha512-AHAJ89UQBcqBvFgQJE9XasGuwMNkKsGj4D/f9Uk60jFmEBHpAL14DrnSk3Rj+SwZTr/WUG+mh+Rvf8fid/346w==", 2023 | "dev": true, 2024 | "dependencies": { 2025 | "postcss-selector-parser": "^6.0.10" 2026 | }, 2027 | "engines": { 2028 | "node": "^14 || ^16 || >=18" 2029 | }, 2030 | "funding": { 2031 | "type": "opencollective", 2032 | "url": "https://opencollective.com/csstools" 2033 | }, 2034 | "peerDependencies": { 2035 | "postcss": "^8.4" 2036 | } 2037 | }, 2038 | "node_modules/postcss-font-variant": { 2039 | "version": "5.0.0", 2040 | "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", 2041 | "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", 2042 | "dev": true, 2043 | "peerDependencies": { 2044 | "postcss": "^8.1.0" 2045 | } 2046 | }, 2047 | "node_modules/postcss-gap-properties": { 2048 | "version": "4.0.1", 2049 | "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-4.0.1.tgz", 2050 | "integrity": "sha512-V5OuQGw4lBumPlwHWk/PRfMKjaq/LTGR4WDTemIMCaMevArVfCCA9wBJiL1VjDAd+rzuCIlkRoRvDsSiAaZ4Fg==", 2051 | "dev": true, 2052 | "engines": { 2053 | "node": "^14 || ^16 || >=18" 2054 | }, 2055 | "funding": { 2056 | "type": "opencollective", 2057 | "url": "https://opencollective.com/csstools" 2058 | }, 2059 | "peerDependencies": { 2060 | "postcss": "^8.4" 2061 | } 2062 | }, 2063 | "node_modules/postcss-image-set-function": { 2064 | "version": "5.0.2", 2065 | "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-5.0.2.tgz", 2066 | "integrity": "sha512-Sszjwo0ubETX0Fi5MvpYzsONwrsjeabjMoc5YqHvURFItXgIu3HdCjcVuVKGMPGzKRhgaknmdM5uVWInWPJmeg==", 2067 | "dev": true, 2068 | "dependencies": { 2069 | "postcss-value-parser": "^4.2.0" 2070 | }, 2071 | "engines": { 2072 | "node": "^14 || ^16 || >=18" 2073 | }, 2074 | "funding": { 2075 | "type": "opencollective", 2076 | "url": "https://opencollective.com/csstools" 2077 | }, 2078 | "peerDependencies": { 2079 | "postcss": "^8.4" 2080 | } 2081 | }, 2082 | "node_modules/postcss-initial": { 2083 | "version": "4.0.1", 2084 | "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", 2085 | "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", 2086 | "dev": true, 2087 | "peerDependencies": { 2088 | "postcss": "^8.0.0" 2089 | } 2090 | }, 2091 | "node_modules/postcss-lab-function": { 2092 | "version": "5.2.3", 2093 | "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-5.2.3.tgz", 2094 | "integrity": "sha512-fi32AYKzji5/rvgxo5zXHFvAYBw0u0OzELbeCNjEZVLUir18Oj+9RmNphtM8QdLUaUnrfx8zy8vVYLmFLkdmrQ==", 2095 | "dev": true, 2096 | "funding": [ 2097 | { 2098 | "type": "github", 2099 | "url": "https://github.com/sponsors/csstools" 2100 | }, 2101 | { 2102 | "type": "opencollective", 2103 | "url": "https://opencollective.com/csstools" 2104 | } 2105 | ], 2106 | "dependencies": { 2107 | "@csstools/css-color-parser": "^1.2.0", 2108 | "@csstools/css-parser-algorithms": "^2.1.1", 2109 | "@csstools/css-tokenizer": "^2.1.1", 2110 | "@csstools/postcss-progressive-custom-properties": "^2.3.0" 2111 | }, 2112 | "engines": { 2113 | "node": "^14 || ^16 || >=18" 2114 | }, 2115 | "peerDependencies": { 2116 | "postcss": "^8.4" 2117 | } 2118 | }, 2119 | "node_modules/postcss-logical": { 2120 | "version": "6.2.0", 2121 | "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-6.2.0.tgz", 2122 | "integrity": "sha512-aqlfKGaY0nnbgI9jwUikp4gJKBqcH5noU/EdnIVceghaaDPYhZuyJVxlvWNy55tlTG5tunRKCTAX9yljLiFgmw==", 2123 | "dev": true, 2124 | "funding": [ 2125 | { 2126 | "type": "github", 2127 | "url": "https://github.com/sponsors/csstools" 2128 | }, 2129 | { 2130 | "type": "opencollective", 2131 | "url": "https://opencollective.com/csstools" 2132 | } 2133 | ], 2134 | "dependencies": { 2135 | "postcss-value-parser": "^4.2.0" 2136 | }, 2137 | "engines": { 2138 | "node": "^14 || ^16 || >=18" 2139 | }, 2140 | "peerDependencies": { 2141 | "postcss": "^8.4" 2142 | } 2143 | }, 2144 | "node_modules/postcss-merge-longhand": { 2145 | "version": "6.0.0", 2146 | "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.0.tgz", 2147 | "integrity": "sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg==", 2148 | "dev": true, 2149 | "dependencies": { 2150 | "postcss-value-parser": "^4.2.0", 2151 | "stylehacks": "^6.0.0" 2152 | }, 2153 | "engines": { 2154 | "node": "^14 || ^16 || >=18.0" 2155 | }, 2156 | "peerDependencies": { 2157 | "postcss": "^8.2.15" 2158 | } 2159 | }, 2160 | "node_modules/postcss-merge-rules": { 2161 | "version": "6.0.1", 2162 | "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.0.1.tgz", 2163 | "integrity": "sha512-a4tlmJIQo9SCjcfiCcCMg/ZCEe0XTkl/xK0XHBs955GWg9xDX3NwP9pwZ78QUOWB8/0XCjZeJn98Dae0zg6AAw==", 2164 | "dev": true, 2165 | "dependencies": { 2166 | "browserslist": "^4.21.4", 2167 | "caniuse-api": "^3.0.0", 2168 | "cssnano-utils": "^4.0.0", 2169 | "postcss-selector-parser": "^6.0.5" 2170 | }, 2171 | "engines": { 2172 | "node": "^14 || ^16 || >=18.0" 2173 | }, 2174 | "peerDependencies": { 2175 | "postcss": "^8.2.15" 2176 | } 2177 | }, 2178 | "node_modules/postcss-minify-font-values": { 2179 | "version": "6.0.0", 2180 | "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.0.0.tgz", 2181 | "integrity": "sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA==", 2182 | "dev": true, 2183 | "dependencies": { 2184 | "postcss-value-parser": "^4.2.0" 2185 | }, 2186 | "engines": { 2187 | "node": "^14 || ^16 || >=18.0" 2188 | }, 2189 | "peerDependencies": { 2190 | "postcss": "^8.2.15" 2191 | } 2192 | }, 2193 | "node_modules/postcss-minify-gradients": { 2194 | "version": "6.0.0", 2195 | "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.0.tgz", 2196 | "integrity": "sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA==", 2197 | "dev": true, 2198 | "dependencies": { 2199 | "colord": "^2.9.1", 2200 | "cssnano-utils": "^4.0.0", 2201 | "postcss-value-parser": "^4.2.0" 2202 | }, 2203 | "engines": { 2204 | "node": "^14 || ^16 || >=18.0" 2205 | }, 2206 | "peerDependencies": { 2207 | "postcss": "^8.2.15" 2208 | } 2209 | }, 2210 | "node_modules/postcss-minify-params": { 2211 | "version": "6.0.0", 2212 | "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.0.0.tgz", 2213 | "integrity": "sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ==", 2214 | "dev": true, 2215 | "dependencies": { 2216 | "browserslist": "^4.21.4", 2217 | "cssnano-utils": "^4.0.0", 2218 | "postcss-value-parser": "^4.2.0" 2219 | }, 2220 | "engines": { 2221 | "node": "^14 || ^16 || >=18.0" 2222 | }, 2223 | "peerDependencies": { 2224 | "postcss": "^8.2.15" 2225 | } 2226 | }, 2227 | "node_modules/postcss-minify-selectors": { 2228 | "version": "6.0.0", 2229 | "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.0.tgz", 2230 | "integrity": "sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g==", 2231 | "dev": true, 2232 | "dependencies": { 2233 | "postcss-selector-parser": "^6.0.5" 2234 | }, 2235 | "engines": { 2236 | "node": "^14 || ^16 || >=18.0" 2237 | }, 2238 | "peerDependencies": { 2239 | "postcss": "^8.2.15" 2240 | } 2241 | }, 2242 | "node_modules/postcss-nesting": { 2243 | "version": "11.2.2", 2244 | "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-11.2.2.tgz", 2245 | "integrity": "sha512-aOTiUniAB1bcPE6GGiynWRa6PZFPhOTAm5q3q5cem6QeSijIHHkWr6gs65ukCZMXeak8yXeZVbBJET3VM+HlhA==", 2246 | "dev": true, 2247 | "dependencies": { 2248 | "@csstools/selector-specificity": "^2.0.0", 2249 | "postcss-selector-parser": "^6.0.10" 2250 | }, 2251 | "engines": { 2252 | "node": "^14 || ^16 || >=18" 2253 | }, 2254 | "funding": { 2255 | "type": "opencollective", 2256 | "url": "https://opencollective.com/csstools" 2257 | }, 2258 | "peerDependencies": { 2259 | "postcss": "^8.4" 2260 | } 2261 | }, 2262 | "node_modules/postcss-normalize-charset": { 2263 | "version": "6.0.0", 2264 | "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.0.tgz", 2265 | "integrity": "sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ==", 2266 | "dev": true, 2267 | "engines": { 2268 | "node": "^14 || ^16 || >=18.0" 2269 | }, 2270 | "peerDependencies": { 2271 | "postcss": "^8.2.15" 2272 | } 2273 | }, 2274 | "node_modules/postcss-normalize-display-values": { 2275 | "version": "6.0.0", 2276 | "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.0.tgz", 2277 | "integrity": "sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw==", 2278 | "dev": true, 2279 | "dependencies": { 2280 | "postcss-value-parser": "^4.2.0" 2281 | }, 2282 | "engines": { 2283 | "node": "^14 || ^16 || >=18.0" 2284 | }, 2285 | "peerDependencies": { 2286 | "postcss": "^8.2.15" 2287 | } 2288 | }, 2289 | "node_modules/postcss-normalize-positions": { 2290 | "version": "6.0.0", 2291 | "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.0.tgz", 2292 | "integrity": "sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg==", 2293 | "dev": true, 2294 | "dependencies": { 2295 | "postcss-value-parser": "^4.2.0" 2296 | }, 2297 | "engines": { 2298 | "node": "^14 || ^16 || >=18.0" 2299 | }, 2300 | "peerDependencies": { 2301 | "postcss": "^8.2.15" 2302 | } 2303 | }, 2304 | "node_modules/postcss-normalize-repeat-style": { 2305 | "version": "6.0.0", 2306 | "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.0.tgz", 2307 | "integrity": "sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A==", 2308 | "dev": true, 2309 | "dependencies": { 2310 | "postcss-value-parser": "^4.2.0" 2311 | }, 2312 | "engines": { 2313 | "node": "^14 || ^16 || >=18.0" 2314 | }, 2315 | "peerDependencies": { 2316 | "postcss": "^8.2.15" 2317 | } 2318 | }, 2319 | "node_modules/postcss-normalize-string": { 2320 | "version": "6.0.0", 2321 | "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.0.tgz", 2322 | "integrity": "sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w==", 2323 | "dev": true, 2324 | "dependencies": { 2325 | "postcss-value-parser": "^4.2.0" 2326 | }, 2327 | "engines": { 2328 | "node": "^14 || ^16 || >=18.0" 2329 | }, 2330 | "peerDependencies": { 2331 | "postcss": "^8.2.15" 2332 | } 2333 | }, 2334 | "node_modules/postcss-normalize-timing-functions": { 2335 | "version": "6.0.0", 2336 | "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.0.tgz", 2337 | "integrity": "sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg==", 2338 | "dev": true, 2339 | "dependencies": { 2340 | "postcss-value-parser": "^4.2.0" 2341 | }, 2342 | "engines": { 2343 | "node": "^14 || ^16 || >=18.0" 2344 | }, 2345 | "peerDependencies": { 2346 | "postcss": "^8.2.15" 2347 | } 2348 | }, 2349 | "node_modules/postcss-normalize-unicode": { 2350 | "version": "6.0.0", 2351 | "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.0.tgz", 2352 | "integrity": "sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg==", 2353 | "dev": true, 2354 | "dependencies": { 2355 | "browserslist": "^4.21.4", 2356 | "postcss-value-parser": "^4.2.0" 2357 | }, 2358 | "engines": { 2359 | "node": "^14 || ^16 || >=18.0" 2360 | }, 2361 | "peerDependencies": { 2362 | "postcss": "^8.2.15" 2363 | } 2364 | }, 2365 | "node_modules/postcss-normalize-url": { 2366 | "version": "6.0.0", 2367 | "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.0.tgz", 2368 | "integrity": "sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw==", 2369 | "dev": true, 2370 | "dependencies": { 2371 | "postcss-value-parser": "^4.2.0" 2372 | }, 2373 | "engines": { 2374 | "node": "^14 || ^16 || >=18.0" 2375 | }, 2376 | "peerDependencies": { 2377 | "postcss": "^8.2.15" 2378 | } 2379 | }, 2380 | "node_modules/postcss-normalize-whitespace": { 2381 | "version": "6.0.0", 2382 | "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.0.tgz", 2383 | "integrity": "sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw==", 2384 | "dev": true, 2385 | "dependencies": { 2386 | "postcss-value-parser": "^4.2.0" 2387 | }, 2388 | "engines": { 2389 | "node": "^14 || ^16 || >=18.0" 2390 | }, 2391 | "peerDependencies": { 2392 | "postcss": "^8.2.15" 2393 | } 2394 | }, 2395 | "node_modules/postcss-opacity-percentage": { 2396 | "version": "2.0.0", 2397 | "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-2.0.0.tgz", 2398 | "integrity": "sha512-lyDrCOtntq5Y1JZpBFzIWm2wG9kbEdujpNt4NLannF+J9c8CgFIzPa80YQfdza+Y+yFfzbYj/rfoOsYsooUWTQ==", 2399 | "dev": true, 2400 | "funding": [ 2401 | { 2402 | "type": "kofi", 2403 | "url": "https://ko-fi.com/mrcgrtz" 2404 | }, 2405 | { 2406 | "type": "liberapay", 2407 | "url": "https://liberapay.com/mrcgrtz" 2408 | } 2409 | ], 2410 | "engines": { 2411 | "node": "^14 || ^16 || >=18" 2412 | }, 2413 | "peerDependencies": { 2414 | "postcss": "^8.2" 2415 | } 2416 | }, 2417 | "node_modules/postcss-ordered-values": { 2418 | "version": "6.0.0", 2419 | "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.0.tgz", 2420 | "integrity": "sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg==", 2421 | "dev": true, 2422 | "dependencies": { 2423 | "cssnano-utils": "^4.0.0", 2424 | "postcss-value-parser": "^4.2.0" 2425 | }, 2426 | "engines": { 2427 | "node": "^14 || ^16 || >=18.0" 2428 | }, 2429 | "peerDependencies": { 2430 | "postcss": "^8.2.15" 2431 | } 2432 | }, 2433 | "node_modules/postcss-overflow-shorthand": { 2434 | "version": "4.0.1", 2435 | "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-4.0.1.tgz", 2436 | "integrity": "sha512-HQZ0qi/9iSYHW4w3ogNqVNr2J49DHJAl7r8O2p0Meip38jsdnRPgiDW7r/LlLrrMBMe3KHkvNtAV2UmRVxzLIg==", 2437 | "dev": true, 2438 | "dependencies": { 2439 | "postcss-value-parser": "^4.2.0" 2440 | }, 2441 | "engines": { 2442 | "node": "^14 || ^16 || >=18" 2443 | }, 2444 | "funding": { 2445 | "type": "opencollective", 2446 | "url": "https://opencollective.com/csstools" 2447 | }, 2448 | "peerDependencies": { 2449 | "postcss": "^8.4" 2450 | } 2451 | }, 2452 | "node_modules/postcss-page-break": { 2453 | "version": "3.0.4", 2454 | "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", 2455 | "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", 2456 | "dev": true, 2457 | "peerDependencies": { 2458 | "postcss": "^8" 2459 | } 2460 | }, 2461 | "node_modules/postcss-place": { 2462 | "version": "8.0.1", 2463 | "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-8.0.1.tgz", 2464 | "integrity": "sha512-Ow2LedN8sL4pq8ubukO77phSVt4QyCm35ZGCYXKvRFayAwcpgB0sjNJglDoTuRdUL32q/ZC1VkPBo0AOEr4Uiw==", 2465 | "dev": true, 2466 | "dependencies": { 2467 | "postcss-value-parser": "^4.2.0" 2468 | }, 2469 | "engines": { 2470 | "node": "^14 || ^16 || >=18" 2471 | }, 2472 | "funding": { 2473 | "type": "opencollective", 2474 | "url": "https://opencollective.com/csstools" 2475 | }, 2476 | "peerDependencies": { 2477 | "postcss": "^8.4" 2478 | } 2479 | }, 2480 | "node_modules/postcss-preset-env": { 2481 | "version": "8.4.2", 2482 | "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-8.4.2.tgz", 2483 | "integrity": "sha512-Bihxo+FsyVNjsRADiYYnj9Ez0WBSWSSHAe8WvxoMlqrw8H8m6gK9E0MkDd7P6ForoikRIF3I8grGg/pFM6ECRQ==", 2484 | "dev": true, 2485 | "funding": [ 2486 | { 2487 | "type": "github", 2488 | "url": "https://github.com/sponsors/csstools" 2489 | }, 2490 | { 2491 | "type": "opencollective", 2492 | "url": "https://opencollective.com/csstools" 2493 | } 2494 | ], 2495 | "dependencies": { 2496 | "@csstools/postcss-cascade-layers": "^3.0.1", 2497 | "@csstools/postcss-color-function": "^2.2.3", 2498 | "@csstools/postcss-color-mix-function": "^1.0.3", 2499 | "@csstools/postcss-font-format-keywords": "^2.0.2", 2500 | "@csstools/postcss-gradients-interpolation-method": "^3.0.6", 2501 | "@csstools/postcss-hwb-function": "^2.2.2", 2502 | "@csstools/postcss-ic-unit": "^2.0.4", 2503 | "@csstools/postcss-is-pseudo-class": "^3.2.1", 2504 | "@csstools/postcss-logical-float-and-clear": "^1.0.1", 2505 | "@csstools/postcss-logical-resize": "^1.0.1", 2506 | "@csstools/postcss-logical-viewport-units": "^1.0.3", 2507 | "@csstools/postcss-media-minmax": "^1.0.3", 2508 | "@csstools/postcss-media-queries-aspect-ratio-number-values": "^1.0.3", 2509 | "@csstools/postcss-nested-calc": "^2.0.2", 2510 | "@csstools/postcss-normalize-display-values": "^2.0.1", 2511 | "@csstools/postcss-oklab-function": "^2.2.3", 2512 | "@csstools/postcss-progressive-custom-properties": "^2.3.0", 2513 | "@csstools/postcss-relative-color-syntax": "^1.0.1", 2514 | "@csstools/postcss-scope-pseudo-class": "^2.0.2", 2515 | "@csstools/postcss-stepped-value-functions": "^2.1.1", 2516 | "@csstools/postcss-text-decoration-shorthand": "^2.2.4", 2517 | "@csstools/postcss-trigonometric-functions": "^2.1.1", 2518 | "@csstools/postcss-unset-value": "^2.0.1", 2519 | "autoprefixer": "^10.4.14", 2520 | "browserslist": "^4.21.5", 2521 | "css-blank-pseudo": "^5.0.2", 2522 | "css-has-pseudo": "^5.0.2", 2523 | "css-prefers-color-scheme": "^8.0.2", 2524 | "cssdb": "^7.6.0", 2525 | "postcss-attribute-case-insensitive": "^6.0.2", 2526 | "postcss-clamp": "^4.1.0", 2527 | "postcss-color-functional-notation": "^5.1.0", 2528 | "postcss-color-hex-alpha": "^9.0.2", 2529 | "postcss-color-rebeccapurple": "^8.0.2", 2530 | "postcss-custom-media": "^9.1.4", 2531 | "postcss-custom-properties": "^13.2.0", 2532 | "postcss-custom-selectors": "^7.1.3", 2533 | "postcss-dir-pseudo-class": "^7.0.2", 2534 | "postcss-double-position-gradients": "^4.0.4", 2535 | "postcss-focus-visible": "^8.0.2", 2536 | "postcss-focus-within": "^7.0.2", 2537 | "postcss-font-variant": "^5.0.0", 2538 | "postcss-gap-properties": "^4.0.1", 2539 | "postcss-image-set-function": "^5.0.2", 2540 | "postcss-initial": "^4.0.1", 2541 | "postcss-lab-function": "^5.2.3", 2542 | "postcss-logical": "^6.2.0", 2543 | "postcss-nesting": "^11.2.1", 2544 | "postcss-opacity-percentage": "^2.0.0", 2545 | "postcss-overflow-shorthand": "^4.0.1", 2546 | "postcss-page-break": "^3.0.4", 2547 | "postcss-place": "^8.0.1", 2548 | "postcss-pseudo-class-any-link": "^8.0.2", 2549 | "postcss-replace-overflow-wrap": "^4.0.0", 2550 | "postcss-selector-not": "^7.0.1", 2551 | "postcss-value-parser": "^4.2.0" 2552 | }, 2553 | "engines": { 2554 | "node": "^14 || ^16 || >=18" 2555 | }, 2556 | "peerDependencies": { 2557 | "postcss": "^8.4" 2558 | } 2559 | }, 2560 | "node_modules/postcss-pseudo-class-any-link": { 2561 | "version": "8.0.2", 2562 | "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-8.0.2.tgz", 2563 | "integrity": "sha512-FYTIuRE07jZ2CW8POvctRgArQJ43yxhr5vLmImdKUvjFCkR09kh8pIdlCwdx/jbFm7MiW4QP58L4oOUv3grQYA==", 2564 | "dev": true, 2565 | "dependencies": { 2566 | "postcss-selector-parser": "^6.0.10" 2567 | }, 2568 | "engines": { 2569 | "node": "^14 || ^16 || >=18" 2570 | }, 2571 | "funding": { 2572 | "type": "opencollective", 2573 | "url": "https://opencollective.com/csstools" 2574 | }, 2575 | "peerDependencies": { 2576 | "postcss": "^8.4" 2577 | } 2578 | }, 2579 | "node_modules/postcss-reduce-initial": { 2580 | "version": "6.0.0", 2581 | "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.0.0.tgz", 2582 | "integrity": "sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA==", 2583 | "dev": true, 2584 | "dependencies": { 2585 | "browserslist": "^4.21.4", 2586 | "caniuse-api": "^3.0.0" 2587 | }, 2588 | "engines": { 2589 | "node": "^14 || ^16 || >=18.0" 2590 | }, 2591 | "peerDependencies": { 2592 | "postcss": "^8.2.15" 2593 | } 2594 | }, 2595 | "node_modules/postcss-reduce-transforms": { 2596 | "version": "6.0.0", 2597 | "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.0.tgz", 2598 | "integrity": "sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w==", 2599 | "dev": true, 2600 | "dependencies": { 2601 | "postcss-value-parser": "^4.2.0" 2602 | }, 2603 | "engines": { 2604 | "node": "^14 || ^16 || >=18.0" 2605 | }, 2606 | "peerDependencies": { 2607 | "postcss": "^8.2.15" 2608 | } 2609 | }, 2610 | "node_modules/postcss-replace-overflow-wrap": { 2611 | "version": "4.0.0", 2612 | "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", 2613 | "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", 2614 | "dev": true, 2615 | "peerDependencies": { 2616 | "postcss": "^8.0.3" 2617 | } 2618 | }, 2619 | "node_modules/postcss-selector-not": { 2620 | "version": "7.0.1", 2621 | "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-7.0.1.tgz", 2622 | "integrity": "sha512-1zT5C27b/zeJhchN7fP0kBr16Cc61mu7Si9uWWLoA3Px/D9tIJPKchJCkUH3tPO5D0pCFmGeApAv8XpXBQJ8SQ==", 2623 | "dev": true, 2624 | "dependencies": { 2625 | "postcss-selector-parser": "^6.0.10" 2626 | }, 2627 | "engines": { 2628 | "node": "^14 || ^16 || >=18" 2629 | }, 2630 | "funding": { 2631 | "type": "opencollective", 2632 | "url": "https://opencollective.com/csstools" 2633 | }, 2634 | "peerDependencies": { 2635 | "postcss": "^8.4" 2636 | } 2637 | }, 2638 | "node_modules/postcss-selector-parser": { 2639 | "version": "6.0.13", 2640 | "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", 2641 | "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", 2642 | "dev": true, 2643 | "dependencies": { 2644 | "cssesc": "^3.0.0", 2645 | "util-deprecate": "^1.0.2" 2646 | }, 2647 | "engines": { 2648 | "node": ">=4" 2649 | } 2650 | }, 2651 | "node_modules/postcss-svgo": { 2652 | "version": "6.0.0", 2653 | "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.0.tgz", 2654 | "integrity": "sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw==", 2655 | "dev": true, 2656 | "dependencies": { 2657 | "postcss-value-parser": "^4.2.0", 2658 | "svgo": "^3.0.2" 2659 | }, 2660 | "engines": { 2661 | "node": "^14 || ^16 || >= 18" 2662 | }, 2663 | "peerDependencies": { 2664 | "postcss": "^8.2.15" 2665 | } 2666 | }, 2667 | "node_modules/postcss-unique-selectors": { 2668 | "version": "6.0.0", 2669 | "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.0.tgz", 2670 | "integrity": "sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw==", 2671 | "dev": true, 2672 | "dependencies": { 2673 | "postcss-selector-parser": "^6.0.5" 2674 | }, 2675 | "engines": { 2676 | "node": "^14 || ^16 || >=18.0" 2677 | }, 2678 | "peerDependencies": { 2679 | "postcss": "^8.2.15" 2680 | } 2681 | }, 2682 | "node_modules/postcss-value-parser": { 2683 | "version": "4.2.0", 2684 | "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", 2685 | "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", 2686 | "dev": true 2687 | }, 2688 | "node_modules/rollup": { 2689 | "version": "3.23.0", 2690 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.23.0.tgz", 2691 | "integrity": "sha512-h31UlwEi7FHihLe1zbk+3Q7z1k/84rb9BSwmBSr/XjOCEaBJ2YyedQDuM0t/kfOS0IxM+vk1/zI9XxYj9V+NJQ==", 2692 | "dev": true, 2693 | "bin": { 2694 | "rollup": "dist/bin/rollup" 2695 | }, 2696 | "engines": { 2697 | "node": ">=14.18.0", 2698 | "npm": ">=8.0.0" 2699 | }, 2700 | "optionalDependencies": { 2701 | "fsevents": "~2.3.2" 2702 | } 2703 | }, 2704 | "node_modules/source-map-js": { 2705 | "version": "1.0.2", 2706 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 2707 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 2708 | "dev": true, 2709 | "engines": { 2710 | "node": ">=0.10.0" 2711 | } 2712 | }, 2713 | "node_modules/stylehacks": { 2714 | "version": "6.0.0", 2715 | "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.0.0.tgz", 2716 | "integrity": "sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw==", 2717 | "dev": true, 2718 | "dependencies": { 2719 | "browserslist": "^4.21.4", 2720 | "postcss-selector-parser": "^6.0.4" 2721 | }, 2722 | "engines": { 2723 | "node": "^14 || ^16 || >=18.0" 2724 | }, 2725 | "peerDependencies": { 2726 | "postcss": "^8.2.15" 2727 | } 2728 | }, 2729 | "node_modules/svgo": { 2730 | "version": "3.0.2", 2731 | "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.0.2.tgz", 2732 | "integrity": "sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==", 2733 | "dev": true, 2734 | "dependencies": { 2735 | "@trysound/sax": "0.2.0", 2736 | "commander": "^7.2.0", 2737 | "css-select": "^5.1.0", 2738 | "css-tree": "^2.2.1", 2739 | "csso": "^5.0.5", 2740 | "picocolors": "^1.0.0" 2741 | }, 2742 | "bin": { 2743 | "svgo": "bin/svgo" 2744 | }, 2745 | "engines": { 2746 | "node": ">=14.0.0" 2747 | }, 2748 | "funding": { 2749 | "type": "opencollective", 2750 | "url": "https://opencollective.com/svgo" 2751 | } 2752 | }, 2753 | "node_modules/update-browserslist-db": { 2754 | "version": "1.0.11", 2755 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", 2756 | "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", 2757 | "dev": true, 2758 | "funding": [ 2759 | { 2760 | "type": "opencollective", 2761 | "url": "https://opencollective.com/browserslist" 2762 | }, 2763 | { 2764 | "type": "tidelift", 2765 | "url": "https://tidelift.com/funding/github/npm/browserslist" 2766 | }, 2767 | { 2768 | "type": "github", 2769 | "url": "https://github.com/sponsors/ai" 2770 | } 2771 | ], 2772 | "dependencies": { 2773 | "escalade": "^3.1.1", 2774 | "picocolors": "^1.0.0" 2775 | }, 2776 | "bin": { 2777 | "update-browserslist-db": "cli.js" 2778 | }, 2779 | "peerDependencies": { 2780 | "browserslist": ">= 4.21.0" 2781 | } 2782 | }, 2783 | "node_modules/util-deprecate": { 2784 | "version": "1.0.2", 2785 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 2786 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", 2787 | "dev": true 2788 | }, 2789 | "node_modules/vite": { 2790 | "version": "4.3.9", 2791 | "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.9.tgz", 2792 | "integrity": "sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==", 2793 | "dev": true, 2794 | "dependencies": { 2795 | "esbuild": "^0.17.5", 2796 | "postcss": "^8.4.23", 2797 | "rollup": "^3.21.0" 2798 | }, 2799 | "bin": { 2800 | "vite": "bin/vite.js" 2801 | }, 2802 | "engines": { 2803 | "node": "^14.18.0 || >=16.0.0" 2804 | }, 2805 | "optionalDependencies": { 2806 | "fsevents": "~2.3.2" 2807 | }, 2808 | "peerDependencies": { 2809 | "@types/node": ">= 14", 2810 | "less": "*", 2811 | "sass": "*", 2812 | "stylus": "*", 2813 | "sugarss": "*", 2814 | "terser": "^5.4.0" 2815 | }, 2816 | "peerDependenciesMeta": { 2817 | "@types/node": { 2818 | "optional": true 2819 | }, 2820 | "less": { 2821 | "optional": true 2822 | }, 2823 | "sass": { 2824 | "optional": true 2825 | }, 2826 | "stylus": { 2827 | "optional": true 2828 | }, 2829 | "sugarss": { 2830 | "optional": true 2831 | }, 2832 | "terser": { 2833 | "optional": true 2834 | } 2835 | } 2836 | } 2837 | } 2838 | } 2839 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "custom-site-theming", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "browserslist": [ 7 | "defaults" 8 | ], 9 | "scripts": { 10 | "dev": "vite", 11 | "build": "vite build", 12 | "preview": "vite preview" 13 | }, 14 | "devDependencies": { 15 | "autoprefixer": "^10.4.14", 16 | "cssnano": "^6.0.1", 17 | "postcss": "^8.4.23", 18 | "postcss-preset-env": "^8.4.1", 19 | "vite": "^4.3.2" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /postcss.config.cjs: -------------------------------------------------------------------------------- 1 | // postcss config with autoprefixer, preset-env, cssnano, and postcss-import 2 | 3 | module.exports = { 4 | plugins: [ 5 | require("autoprefixer"), 6 | require("postcss-preset-env", { 7 | stage: 1, 8 | }), 9 | require("cssnano")({ 10 | preset: "default", 11 | }), 12 | ], 13 | }; 14 | -------------------------------------------------------------------------------- /public/check.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coding-in-public/custom-site-theming/7b755624291d0fe41368385edfae52c8de7bf104/public/check.mp3 -------------------------------------------------------------------------------- /public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coding-in-public/custom-site-theming/7b755624291d0fe41368385edfae52c8de7bf104/public/favicon.png -------------------------------------------------------------------------------- /public/headshot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coding-in-public/custom-site-theming/7b755624291d0fe41368385edfae52c8de7bf104/public/headshot.jpg -------------------------------------------------------------------------------- /public/image-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coding-in-public/custom-site-theming/7b755624291d0fe41368385edfae52c8de7bf104/public/image-1.jpg -------------------------------------------------------------------------------- /public/image-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coding-in-public/custom-site-theming/7b755624291d0fe41368385edfae52c8de7bf104/public/image-2.jpg -------------------------------------------------------------------------------- /public/image-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coding-in-public/custom-site-theming/7b755624291d0fe41368385edfae52c8de7bf104/public/image-3.jpg -------------------------------------------------------------------------------- /public/toggle.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coding-in-public/custom-site-theming/7b755624291d0fe41368385edfae52c8de7bf104/public/toggle.mp3 -------------------------------------------------------------------------------- /public/wave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coding-in-public/custom-site-theming/7b755624291d0fe41368385edfae52c8de7bf104/public/wave.png -------------------------------------------------------------------------------- /style.css: -------------------------------------------------------------------------------- 1 | *, 2 | *::before, 3 | *::after { 4 | box-sizing: border-box; 5 | margin: 0; 6 | padding: 0; 7 | } 8 | 9 | img { 10 | display: block; 11 | max-width: 100%; 12 | } 13 | 14 | button, 15 | input, 16 | textarea, 17 | select { 18 | font-family: inherit; 19 | font-size: inherit; 20 | line-height: inherit; 21 | border: inherit; 22 | background-color: inherit; 23 | } 24 | 25 | button { 26 | cursor: pointer; 27 | } 28 | 29 | :root { 30 | /* font options */ 31 | font-family: "Albert Sans", system-ui, Avenir, Helvetica, Arial, sans-serif; 32 | line-height: 1.3; 33 | font-weight: 400; 34 | 35 | font-synthesis: none; 36 | text-rendering: optimizeLegibility; 37 | -webkit-font-smoothing: antialiased; 38 | -moz-osx-font-smoothing: grayscale; 39 | -webkit-text-size-adjust: 100%; 40 | 41 | --fs-sm: clamp(1.04rem, calc(1rem + 0.23vw), 1.17rem); 42 | --fs-md: clamp(1.25rem, calc(1.14rem + 0.54vw), 1.56rem); 43 | --fs-lg: clamp(1.5rem, calc(1.3rem + 1.01vw), 2.08rem); 44 | --fs-xl: clamp(2.16rem, calc(1.62rem + 2.68vw), 3.7rem); 45 | --fs-2xl: clamp(2.59rem, calc(1.78rem + 4.07vw), 4.93rem); 46 | 47 | /* Radius Options */ 48 | --round-full: 0; 49 | --round-md: 0; 50 | 51 | /* Easing */ 52 | --ease-elastic: cubic-bezier(1, -0.65, 0.21, 2.4); 53 | 54 | /* Space Options */ 55 | --space-2xs: clamp(0.31rem, calc(0.14rem + 0.87vw), 0.81rem); 56 | --space-xs: clamp(0.63rem, calc(0.43rem + 0.98vw), 1.19rem); 57 | --space-sm: clamp(0.94rem, calc(0.72rem + 1.09vw), 1.56rem); 58 | --space-md: clamp(1.25rem, calc(0.86rem + 1.96vw), 2.38rem); 59 | --space-lg: clamp(1.88rem, calc(1.44rem + 2.17vw), 3.13rem); 60 | --space-xl: clamp(2.5rem, calc(1.74rem + 3.8vw), 4.69rem); 61 | --space-2xl: clamp(3.75rem, calc(2.88rem + 4.35vw), 6.25rem); 62 | 63 | /* COLORS */ 64 | /* light */ 65 | --bkg-light: #fffafc; 66 | --text-light: #1a0513; 67 | --primary-light: #e03ba1; 68 | --accent1-light: #fd5050; 69 | --accent2-light: #ffb03a; 70 | 71 | /* dark */ 72 | --bkg-dark: #2f0d23; 73 | --text-dark: #e3dbde; 74 | --primary-dark: #f649b4; 75 | --accent1-dark: #fd5050; 76 | --accent2-dark: #ffb03a; 77 | 78 | /* default to light */ 79 | --bkg: var(--bkg-light); 80 | --text: var(--text-light); 81 | --primary: var(--primary-light); 82 | --accent1: var(--accent1-light); 83 | --accent2: var(--accent2-light); 84 | color-scheme: light; 85 | } 86 | 87 | body { 88 | background-color: var(--bkg); 89 | color: var(--text); 90 | display: grid; 91 | grid-template-rows: auto 1fr auto; 92 | min-height: 100dvh; 93 | font-size: var(--fs-md); 94 | } 95 | 96 | main { 97 | display: grid; 98 | gap: var(--space-lg); 99 | position: relative; 100 | overflow: hidden; 101 | display: grid; 102 | gap: var(--space-2xl); 103 | padding-block: var(--space-lg); 104 | } 105 | 106 | .container { 107 | margin-inline: max(calc((100vw - 70rem) / 2), 1.5rem); 108 | } 109 | 110 | h1, 111 | h2, 112 | h3 { 113 | line-height: 1.1; 114 | } 115 | 116 | h1, 117 | .h1 { 118 | font-size: var(--fs-2xl); 119 | } 120 | h2, 121 | .h2 { 122 | font-size: var(--fs-xl); 123 | } 124 | h3, 125 | .h3 { 126 | font-size: var(--fs-lg); 127 | } 128 | p { 129 | max-width: 60ch; 130 | } 131 | [data-color="primary"] { 132 | color: var(--primary); 133 | } 134 | [data-color="accent1"] { 135 | color: var(--accent1); 136 | } 137 | [data-color="accent2"] { 138 | color: var(--accent2); 139 | } 140 | [data-bkg="primary"] { 141 | background-color: var(--primary); 142 | } 143 | [data-bkg="accent2"] { 144 | background-color: var(--accent2); 145 | } 146 | [data-align="right"] { 147 | text-align: right; 148 | } 149 | [data-fs="2xl"] { 150 | font-size: var(--fs-2xl); 151 | } 152 | .sr-only { 153 | position: absolute; 154 | width: 1px; 155 | height: 1px; 156 | padding: 0; 157 | margin: -1px; 158 | overflow: hidden; 159 | clip: rect(0, 0, 0, 0); 160 | white-space: nowrap; 161 | border-width: 0; 162 | } 163 | 164 | .banner { 165 | height: 20px; 166 | width: 100%; 167 | } 168 | 169 | .headshot { 170 | border-radius: var(--round-full); 171 | border: 6px solid var(--accent2); 172 | } 173 | 174 | .wave { 175 | position: absolute; 176 | width: 150%; 177 | top: 0; 178 | z-index: -1; 179 | } 180 | 181 | .hero { 182 | display: flex; 183 | gap: var(--space-lg); 184 | font-size: var(--fs-lg); 185 | flex-wrap: wrap-reverse; 186 | justify-content: center; 187 | padding-block-start: var(--space-lg); 188 | } 189 | 190 | .card-wrapper { 191 | display: flex; 192 | flex-wrap: wrap; 193 | gap: var(--space-md); 194 | align-items: flex-start; 195 | justify-content: center; 196 | } 197 | 198 | .card { 199 | display: grid; 200 | gap: var(--space-sm); 201 | max-width: 350px; 202 | } 203 | 204 | .card :is(div, h3) { 205 | background-color: var(--bkg); 206 | border: 2px solid var(--primary); 207 | padding: var(--space-xs); 208 | border-radius: var(--round-md); 209 | } 210 | 211 | .card > div { 212 | display: grid; 213 | gap: var(--space-2xs); 214 | } 215 | 216 | .btn { 217 | --btn-bkg: var(--primary); 218 | --btn-color: var(--bkg); 219 | --btn-bkg: var(--accent1); 220 | display: grid; 221 | place-items: center; 222 | max-width: fit-content; 223 | background-color: var(--btn-bkg); 224 | color: var(--btn-color); 225 | padding: var(--space-xs) var(--space-md); 226 | line-height: 1; 227 | text-decoration: none; 228 | border-radius: var(--round-md); 229 | transition: box-shadow 0.2s var(--ease-elastic), 230 | opacity 0.2s var(--ease-elastic); 231 | } 232 | 233 | .btn:focus { 234 | outline: 2px solid transparent; 235 | } 236 | 237 | .btn:hover { 238 | background-color: var(--btn-bkg); 239 | opacity: 0.8; 240 | } 241 | .btn:focus-visible { 242 | background-color: var(--btn-bkg); 243 | box-shadow: 0 0 0 3px var(--btn-color), 0 0 0 6px var(--btn-bkg); 244 | } 245 | 246 | section { 247 | padding-inline: var(--space-md); 248 | } 249 | 250 | .cta-wrapper { 251 | background-color: var(--bkg); 252 | border-top: 6px solid var(--accent2); 253 | border-bottom: 6px solid var(--accent2); 254 | padding: var(--space-xl) 0; 255 | display: grid; 256 | place-items: center; 257 | } 258 | 259 | .cta { 260 | display: flex; 261 | flex-wrap: wrap; 262 | gap: var(--space-lg); 263 | justify-content: center; 264 | align-items: center; 265 | } 266 | 267 | .cta h2 { 268 | color: var(--accent2); 269 | } 270 | 271 | .cta > div { 272 | flex: 1 1 53%; 273 | } 274 | 275 | .cta .btn { 276 | --btn-bkg: var(--accent2); 277 | } 278 | 279 | .cta form { 280 | display: grid; 281 | flex: 1 1 300px; 282 | gap: var(--space-2xs); 283 | } 284 | 285 | .cta form div { 286 | max-width: 200px; 287 | } 288 | 289 | .cta input { 290 | appearance: none; 291 | border: 2px solid var(--accent2); 292 | border-radius: var(--round-md); 293 | padding: 3px var(--space-2xs); 294 | } 295 | 296 | .cta input::placeholder { 297 | color: var(--accent2); 298 | opacity: 0.5; 299 | } 300 | 301 | .cta input:focus { 302 | outline: 2px solid transparent; 303 | box-shadow: 0 0 0 3px var(--accent2); 304 | } 305 | 306 | .cta label { 307 | font-size: var(--fs-sm); 308 | text-transform: uppercase; 309 | color: var(--accent2); 310 | } 311 | 312 | /* SETTINGS SECTION */ 313 | --------------------------------------------------------------------------------