@echodial/deck 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Deck
2
2
 
3
+ [![npm version](https://img.shields.io/npm/v/@echodial/deck)](https://www.npmjs.com/package/@echodial/deck)
4
+ [![Packagist version](https://img.shields.io/packagist/v/echodial/deck)](https://packagist.org/packages/echodial/deck)
5
+ [![License: MIT](https://img.shields.io/npm/l/@echodial/deck)](LICENSE)
6
+
3
7
  **Deck is a CSS framework that ships as one 26.7 KB Brotli (32.7 KB gzip) stylesheet: buttons, forms,
4
8
  tables, a data grid, charts, overlays, an icon sprite, and a full color system. You add it
5
9
  with one `<link>` tag. There is no build step, no config file, and zero dependencies.**
@@ -19,11 +23,11 @@ That is the whole install. Nothing to compile, nothing to purge, nothing to conf
19
23
  whole page with no second stylesheet.
20
24
  - **Zero runtime dependencies.** The JavaScript is optional and dependency-free.
21
25
 
22
- Version 0.1.0 · MIT · Chrome 117+, Edge 117+, Safari 17.4+, Firefox 128+
26
+ Version 0.1.2 · MIT · Chrome 117+, Edge 117+, Safari 17.4+, Firefox 128+
23
27
 
24
28
  ## What Deck weighs
25
29
 
26
- A page that loads the stylesheet, the icon sprite, and the optional JavaScript transfers **62.7 KB** Brotli, or **76.3 KB** gzip. Every browser Deck supports sends `br` in
30
+ A page that loads the stylesheet, the icon sprite, and the optional JavaScript transfers **62.8 KB** Brotli, or **76.3 KB** gzip. Every browser Deck supports sends `br` in
27
31
  `Accept-Encoding`, and Cloudflare, Vercel, Netlify, and nginx with `ngx_brotli` negotiate
28
32
  it for text by default, so Brotli is what most users actually receive.
29
33
 
@@ -32,12 +36,12 @@ it for text by default, so Brotli is what most users actually receive.
32
36
  | `deck.min.css` | **26.7 KB** | 32.7 KB |
33
37
  | `deck-icons.svg` | **27.1 KB** | 33.6 KB |
34
38
  | `deck.min.js` | **8.9 KB** | 10.0 KB |
35
- | **All three** | **62.7 KB** | **76.3 KB** |
39
+ | **All three** | **62.8 KB** | **76.3 KB** |
36
40
 
37
41
  The sprite is the largest single file, slightly bigger than the stylesheet — worth stating
38
42
  plainly rather than leaving you to find it in devtools. Swapping `deck.min.js` for the full
39
43
  `deck.bundle.min.js` (adds the date picker, combobox, data grid, toasts, QR encoder)
40
- makes the JavaScript 17.3 KB and the total 71.1 KB Brotli (85.8 KB gzip).
44
+ makes the JavaScript 17.3 KB and the total 71.2 KB Brotli (85.8 KB gzip).
41
45
 
42
46
  ### The sprite is a manifest, not a fixed cost
43
47
 
@@ -150,18 +154,21 @@ npm start # php -S localhost:4321 -t public_html
150
154
 
151
155
  ## Install
152
156
 
153
- Deck ships three ways. Pick whichever matches how the project already works.
157
+ Deck is published to npm as `@echodial/deck` and to Packagist as `echodial/deck`, and the
158
+ CDNs mirror npm. That makes four ways to install it; pick whichever matches how the
159
+ project already works.
154
160
 
155
161
  ### 1. Just the files
156
162
 
157
- Download `deck.css` and `deck-icons.svg`, drop them next to your other assets, and add
158
- one line. No package manager, no build step, no Node on the server.
163
+ Put `deck.css` and `deck-icons.svg` next to your other assets and add one line. No
164
+ package manager in the project, no build step, no Node on the server.
159
165
 
160
166
  ```html
161
- <link rel="stylesheet" href="/assets/deck.css">
167
+ <link rel="stylesheet" href="/assets/deck/deck.css">
162
168
  ```
163
169
 
164
- Or let the CLI put them there for you this does not install anything permanently:
170
+ The CLI copies them for you. It runs straight from npm and adds nothing to your
171
+ dependencies:
165
172
 
166
173
  ```bash
167
174
  npx @echodial/deck init public/assets/deck
@@ -199,11 +206,24 @@ reasonable way to adopt it into an existing app one screen at a time.
199
206
 
200
207
  ### 3. CDN
201
208
 
202
- Publishing to npm makes the CDNs work with no extra step:
209
+ jsDelivr and unpkg mirror every version published to npm:
203
210
 
204
211
  ```html
205
212
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@echodial/deck@0.1/dist/deck.min.css">
206
- <script src="https://cdn.jsdelivr.net/npm/@echodial/deck@0.1/dist/deck.bundle.min.js" defer></script>
213
+ <script src="https://cdn.jsdelivr.net/npm/@echodial/deck@0.1/dist/deck.bundle.min.js" data-deck-icons="/assets/deck/deck-icons.svg" defer></script>
214
+ ```
215
+
216
+ Pin the version to `@0.1`, as above. It follows every 0.1.x release and never moves to 0.2.
217
+ Never use `@latest`, or leave the version off, which means the same thing: either one moves
218
+ your page onto the next breaking release the day it is published, with nothing in your code
219
+ to show why.
220
+
221
+ The icon sprite is the one file a CDN cannot serve. Browsers refuse an SVG `<use>` whose
222
+ `href` is on another origin, so serve `deck-icons.svg` from your own site and point
223
+ `data-deck-icons` at it:
224
+
225
+ ```bash
226
+ curl -sSL --create-dirs -o public/assets/deck/deck-icons.svg https://cdn.jsdelivr.net/npm/@echodial/deck@0.1/dist/deck-icons.svg
207
227
  ```
208
228
 
209
229
  ### 4. Composer
@@ -212,11 +232,21 @@ Publishing to npm makes the CDNs work with no extra step:
212
232
  composer require echodial/deck
213
233
  ```
214
234
 
215
- Assets cannot be served out of `vendor/`, so the package publishes them into your public
216
- directory on install. Configure the destination in your own `composer.json`:
235
+ On its own, that installs Deck into `vendor/` and nothing else. A browser cannot read
236
+ `vendor/`, and Composer never runs scripts from a package you install, only the ones in
237
+ your own `composer.json`, so no assets are copied and `composer deck-publish` is not a
238
+ command yet (`Command "deck-publish" is not defined.`). Get the files into your public
239
+ folder one of three ways.
240
+
241
+ **Opt-in scripts.** Add these to your own `composer.json`, then run `composer require`:
217
242
 
218
243
  ```json
219
244
  {
245
+ "scripts": {
246
+ "post-install-cmd": ["EchoDial\\Deck\\Installer::postInstall"],
247
+ "post-update-cmd": ["EchoDial\\Deck\\Installer::postInstall"],
248
+ "deck-publish": "EchoDial\\Deck\\Installer::publish"
249
+ },
220
250
  "extra": {
221
251
  "deck": {
222
252
  "publish-to": "public/assets/deck",
@@ -226,16 +256,40 @@ directory on install. Configure the destination in your own `composer.json`:
226
256
  }
227
257
  ```
228
258
 
229
- Or run it whenever you like:
259
+ `composer require`, and every `composer install` and `composer update` after it, copies the
260
+ eight asset files into `publish-to`, skipping any that have not changed. If Deck is already
261
+ installed when you add the scripts, run `composer deck-publish` once;
262
+ `composer deck-publish -- public/static/deck` publishes somewhere else for one run. With
263
+ `auto-publish` left out or `false`, the install and update hooks print a reminder instead
264
+ of copying. Take the scripts out if you remove Deck: without the class to call, every
265
+ install prints `Class EchoDial\Deck\Installer is not autoloadable, can not call
266
+ post-install-cmd script`.
267
+
268
+ > **Set `publish-to` to the folder your web server serves.** The default,
269
+ > `public/assets/deck`, is right for Laravel and Symfony, whose document root is `public/`.
270
+ > On cPanel hosting and Helm sites the document root is `public_html/`, so use
271
+ > `public_html/assets/deck`. Deck cannot tell which folder is served; if `publish-to` names
272
+ > the wrong one, the files land where no URL reaches.
273
+
274
+ **Copy by hand**, with no scripts at all:
230
275
 
231
276
  ```bash
232
- composer deck-publish
233
- composer deck-publish -- public/static/deck
234
- composer deck-publish -- --link # symlink during development
277
+ mkdir -p public/assets/deck
278
+ cp -r vendor/echodial/deck/dist/* public/assets/deck/
235
279
  ```
236
280
 
237
- Publishing skips files that have not changed, so a redeploy does not churn mtimes and
238
- invalidate every cache-busting URL for nothing.
281
+ That copies everything in `dist/`: 50 files and 3.2 MB, where a page needs four of them.
282
+ `api.json` alone is 1.4 MB of build data that no browser requests. Run it again after every
283
+ `composer update`.
284
+
285
+ **npx**, if Node is on the machine: `npx @echodial/deck init public/assets/deck`, as in
286
+ [option 1](#1-just-the-files), copies the five files a page uses. It takes them from npm,
287
+ not from `vendor/`, so make sure the two are the same version.
288
+
289
+ Deck's own `composer.json` defines no scripts. Scripts in a dependency never run for the
290
+ project that installs it; the ones Deck used to define could only fire inside Deck's own
291
+ repository, and did, publishing a copy of Deck into itself. The installer also refuses to
292
+ publish whenever the root package is `echodial/deck`.
239
293
 
240
294
  #### The PHP helper
241
295
 
@@ -1203,11 +1257,15 @@ that job over while keeping its own markup, classes, and styling.
1203
1257
  <script src="/assets/deck-extras.js" defer></script>
1204
1258
  <script src="/assets/deck-adapters.js" defer></script>
1205
1259
 
1206
- <!-- add only what you want -->
1207
- <script src="https://cdn.jsdelivr.net/npm/@floating-ui/dom" defer></script>
1208
- <script src="https://cdn.jsdelivr.net/npm/sortablejs" defer></script>
1260
+ <!-- add only what you want, each pinned to its major version -->
1261
+ <script src="https://cdn.jsdelivr.net/npm/@floating-ui/core@1" defer></script>
1262
+ <script src="https://cdn.jsdelivr.net/npm/@floating-ui/dom@1" defer></script>
1263
+ <script src="https://cdn.jsdelivr.net/npm/sortablejs@1" defer></script>
1209
1264
  ```
1210
1265
 
1266
+ Floating UI's DOM build expects its core to be loaded first. Without it, `FloatingUIDOM`
1267
+ exists but has no `computePosition`, and the script throws.
1268
+
1211
1269
  | Job | Deck alone | With a library | Verdict |
1212
1270
  |---|---|---|---|
1213
1271
  | Placement | CSS anchor positioning | Floating UI (~9 KB) | Library only where anchor positioning is missing |
package/build.mjs CHANGED
@@ -27,6 +27,17 @@ const DIST = path.join(root, 'dist');
27
27
 
28
28
  const pkg = JSON.parse(await readFile(path.join(root, 'package.json'), 'utf8'));
29
29
 
30
+ // php/Deck.php carries the version as a constant, for PHP that has no business
31
+ // parsing package.json, and `composer deck-publish` prints it. A release with
32
+ // the two out of step would announce the wrong version, so refuse to build.
33
+ // php/ is not shipped to npm, so an install without it skips the check.
34
+ const deckPhp = await readFile(path.join(root, 'php', 'Deck.php'), 'utf8').catch(() => null);
35
+ const phpVersion = deckPhp && /const VERSION = '([^']+)'/.exec(deckPhp)?.[1];
36
+ if (deckPhp && phpVersion !== pkg.version) {
37
+ console.error(` php/Deck.php has VERSION = '${phpVersion}' but package.json is ${pkg.version}. Make them match.`);
38
+ process.exit(1);
39
+ }
40
+
30
41
  const BANNER = `/*! ==========================================================================
31
42
  * Deck v${pkg.version} — the CSS framework for Keel
32
43
  * Mobile first. One file. No build step. No config. No dependencies.
@@ -332,6 +343,24 @@ async function build() {
332
343
  if (err.code !== 'ERR_MODULE_NOT_FOUND') throw err;
333
344
  }
334
345
 
346
+ // ---- Site files -------------------------------------------------------------
347
+ // sitemap.xml, robots.txt and llms.txt are served as they are, so they cannot
348
+ // ask PHP for the base URL the pages print. tools/site.mjs writes it into them
349
+ // from the same inputs, and generates the sitemap from the pages on disk.
350
+ try {
351
+ const { writeSiteFiles } = await import('./tools/site.mjs');
352
+ const site = await writeSiteFiles(pkg, root);
353
+ console.log(` ${'sitemap.xml'.padEnd(22)} ${String(site.pages).padStart(6)} pages ${site.base}/ (${site.source})`);
354
+ console.log(` ${'robots.txt'.padEnd(22)} ${String(site.groups).padStart(6)} groups, one rule set, Sitemap line written`);
355
+ console.log(` ${'llms.txt'.padEnd(22)} ${String(site.links).padStart(6)} site links written`);
356
+ if (site.source === 'DECK_SITE_BASE') {
357
+ console.log(` ${''.padEnd(22)} DECK_SITE_BASE is set: these three files now name ${site.base}, not package.json's homepage`);
358
+ }
359
+ } catch (err) {
360
+ // tools/ and public_html/ are not shipped to npm.
361
+ if (err.code !== 'ERR_MODULE_NOT_FOUND') throw err;
362
+ }
363
+
335
364
  console.log('\nDone.\n');
336
365
  }
337
366
 
@@ -1005,7 +1005,7 @@
1005
1005
  "layer": "deck.components",
1006
1006
  "file": "07-components.css",
1007
1007
  "line": 146,
1008
- "uses": 56
1008
+ "uses": 58
1009
1009
  },
1010
1010
  "alert-bad": {
1011
1011
  "bucket": "public",
@@ -1025,7 +1025,7 @@
1025
1025
  "layer": "deck.components",
1026
1026
  "file": "07-components.css",
1027
1027
  "line": 160,
1028
- "uses": 45
1028
+ "uses": 47
1029
1029
  },
1030
1030
  "alert-good": {
1031
1031
  "bucket": "public",
@@ -1055,7 +1055,7 @@
1055
1055
  "layer": "deck.components",
1056
1056
  "file": "07-components.css",
1057
1057
  "line": 157,
1058
- "uses": 45
1058
+ "uses": 47
1059
1059
  },
1060
1060
  "alert-warn": {
1061
1061
  "bucket": "public",
@@ -1065,7 +1065,7 @@
1065
1065
  "layer": "deck.components",
1066
1066
  "file": "07-components.css",
1067
1067
  "line": 167,
1068
- "uses": 16
1068
+ "uses": 18
1069
1069
  },
1070
1070
  "anchor": {
1071
1071
  "bucket": "public",
@@ -1185,7 +1185,7 @@
1185
1185
  "layer": "deck.components",
1186
1186
  "file": "07-components.css",
1187
1187
  "line": 81,
1188
- "uses": 204
1188
+ "uses": 194
1189
1189
  },
1190
1190
  "badge-bad": {
1191
1191
  "bucket": "public",
@@ -1225,7 +1225,7 @@
1225
1225
  "layer": "deck.components",
1226
1226
  "file": "07-components.css",
1227
1227
  "line": 98,
1228
- "uses": 48
1228
+ "uses": 44
1229
1229
  },
1230
1230
  "badge-solid": {
1231
1231
  "bucket": "public",
@@ -1245,7 +1245,7 @@
1245
1245
  "layer": "deck.components",
1246
1246
  "file": "07-components.css",
1247
1247
  "line": 100,
1248
- "uses": 28
1248
+ "uses": 22
1249
1249
  },
1250
1250
  "banner": {
1251
1251
  "bucket": "public",
@@ -4995,7 +4995,7 @@
4995
4995
  "layer": "deck.mobile",
4996
4996
  "file": "08-mobile.css",
4997
4997
  "line": 134,
4998
- "uses": 616
4998
+ "uses": 618
4999
4999
  },
5000
5000
  "icon-fill": {
5001
5001
  "bucket": "public",
@@ -7985,7 +7985,7 @@
7985
7985
  "layer": "deck.components",
7986
7986
  "file": "06-forms.css",
7987
7987
  "line": 288,
7988
- "uses": 50
7988
+ "uses": 56
7989
7989
  },
7990
7990
  "range-pair": {
7991
7991
  "bucket": "public",
@@ -8895,7 +8895,7 @@
8895
8895
  "layer": "deck.utilities",
8896
8896
  "file": "09-utilities.css",
8897
8897
  "line": 182,
8898
- "uses": 127
8898
+ "uses": 125
8899
8899
  },
8900
8900
  "stack": {
8901
8901
  "bucket": "public",
@@ -8955,7 +8955,7 @@
8955
8955
  "layer": "deck.layout",
8956
8956
  "file": "04-layout.css",
8957
8957
  "line": 67,
8958
- "uses": 312
8958
+ "uses": 314
8959
8959
  },
8960
8960
  "stack-6": {
8961
8961
  "bucket": "public",
@@ -9245,7 +9245,7 @@
9245
9245
  "layer": "deck.components",
9246
9246
  "file": "07-components.css",
9247
9247
  "line": 241,
9248
- "uses": 114
9248
+ "uses": 112
9249
9249
  },
9250
9250
  "table-compact": {
9251
9251
  "bucket": "public",
@@ -9265,7 +9265,7 @@
9265
9265
  "layer": "deck.components",
9266
9266
  "file": "07-components.css",
9267
9267
  "line": 274,
9268
- "uses": 102
9268
+ "uses": 100
9269
9269
  },
9270
9270
  "table-wrap": {
9271
9271
  "bucket": "public",
@@ -9275,7 +9275,7 @@
9275
9275
  "layer": "deck.components",
9276
9276
  "file": "07-components.css",
9277
9277
  "line": 231,
9278
- "uses": 111
9278
+ "uses": 109
9279
9279
  },
9280
9280
  "tabs": {
9281
9281
  "bucket": "public",
package/dist/deck.css CHANGED
@@ -1,5 +1,5 @@
1
1
  /*! ==========================================================================
2
- * Deck v0.1.0 — the CSS framework for Keel
2
+ * Deck v0.1.2 — the CSS framework for Keel
3
3
  * Mobile first. One file. No build step. No config. No dependencies.
4
4
  *
5
5
  * <link rel="stylesheet" href="/assets/deck.css">
@@ -12,7 +12,7 @@
12
12
  * deck.mobile, deck.motion, deck.effects, deck.utilities, deck.rtl,
13
13
  * deck.print, then app.base, app.components, app.pages, app.overrides
14
14
  *
15
- * MIT licence. https://get-keel.dev/deck
15
+ * MIT licence. https://get-deck.dev
16
16
  * ======================================================================== */
17
17
 
18
18
  /* ==========================================================================
package/dist/deck.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- /* Deck v0.1.0 — ES module entry.
1
+ /* Deck v0.1.2 — ES module entry.
2
2
  The scripts attach Deck to globalThis; this re-exports it so that
3
3
  `import Deck from '@echodial/deck'` behaves the way you expect. */
4
4
  /*! ==========================================================================
package/dist/deck.min.css CHANGED
@@ -1,5 +1,5 @@
1
1
  /*! ==========================================================================
2
- * Deck v0.1.0 — the CSS framework for Keel
2
+ * Deck v0.1.2 — the CSS framework for Keel
3
3
  * Mobile first. One file. No build step. No config. No dependencies.
4
4
  *
5
5
  * <link rel="stylesheet" href="/assets/deck.css">
@@ -12,10 +12,10 @@
12
12
  * deck.mobile, deck.motion, deck.effects, deck.utilities, deck.rtl,
13
13
  * deck.print, then app.base, app.components, app.pages, app.overrides
14
14
  *
15
- * MIT licence. https://get-keel.dev/deck
15
+ * MIT licence. https://get-deck.dev
16
16
  * ======================================================================== */
17
17
  /*! ==========================================================================
18
- * Deck v0.1.0 — the CSS framework for Keel
18
+ * Deck v0.1.2 — the CSS framework for Keel
19
19
  * Mobile first. One file. No build step. No config. No dependencies.
20
20
  *
21
21
  * <link rel="stylesheet" href="/assets/deck.css">
@@ -28,5 +28,5 @@
28
28
  * deck.mobile, deck.motion, deck.effects, deck.utilities, deck.rtl,
29
29
  * deck.print, then app.base, app.components, app.pages, app.overrides
30
30
  *
31
- * MIT licence. https://get-keel.dev/deck
31
+ * MIT licence. https://get-deck.dev
32
32
  * ======================================================================== */@layer deck.reset,deck.tokens,deck.type,deck.layout,deck.components,deck.mobile,deck.motion,deck.effects,deck.utilities,deck.rtl,deck.print,app.base,app.components,app.pages,app.overrides;@property --g-angle{syntax: "<angle>"; initial-value: 180deg; inherits: false;}@property --g-from{syntax: "<color>"; initial-value: transparent; inherits: false;}@property --g-to{syntax: "<color>"; initial-value: transparent; inherits: false;}@property --g-stop{syntax: "<percentage>"; initial-value: 50%; inherits: false;}@property --sheen{syntax: "<percentage>"; initial-value: -40%; inherits: false;}@property --tilt-x{syntax: "<angle>"; initial-value: 0deg; inherits: false;}@property --tilt-y{syntax: "<angle>"; initial-value: 0deg; inherits: false;}@property --depth{syntax: "<length>"; initial-value: 0px; inherits: false;}@layer deck.tokens{:root{color-scheme:light dark;--hue-brand: 196;--hue-accent: 42;--hue-good: 152;--hue-warn: 74;--hue-bad: 24;--hue-neutral: 232;--chroma-brand: .118;--chroma-accent: .142;--chroma-status: .132;--chroma-neutral: .012;--brand-50: oklch(97.4% calc(var(--chroma-brand) * .16) var(--hue-brand));--brand-100: oklch(94.2% calc(var(--chroma-brand) * .3) var(--hue-brand));--brand-200: oklch(88.6% calc(var(--chroma-brand) * .48) var(--hue-brand));--brand-300: oklch(80.4% calc(var(--chroma-brand) * .7) var(--hue-brand));--brand-400: oklch(70.2% calc(var(--chroma-brand) * .9) var(--hue-brand));--brand-500: oklch(60.8% var(--chroma-brand) var(--hue-brand));--brand-600: oklch(51.6% var(--chroma-brand) var(--hue-brand));--brand-700: oklch(43.4% calc(var(--chroma-brand) * .92) var(--hue-brand));--brand-800: oklch(35.6% calc(var(--chroma-brand) * .78) var(--hue-brand));--brand-900: oklch(28.2% calc(var(--chroma-brand) * .62) var(--hue-brand));--brand-950: oklch(20.4% calc(var(--chroma-brand) * .46) var(--hue-brand));--ink-0: oklch(100% 0 0);--ink-25: oklch(99.1% calc(var(--chroma-neutral) * .5) var(--hue-neutral));--ink-50: oklch(97.8% var(--chroma-neutral) var(--hue-neutral));--ink-100: oklch(95.4% calc(var(--chroma-neutral) * 1.4) var(--hue-neutral));--ink-200: oklch(91.2% calc(var(--chroma-neutral) * 1.8) var(--hue-neutral));--ink-300: oklch(84.6% calc(var(--chroma-neutral) * 2.2) var(--hue-neutral));--ink-400: oklch(70.8% calc(var(--chroma-neutral) * 2.6) var(--hue-neutral));--ink-500: oklch(58.4% calc(var(--chroma-neutral) * 2.8) var(--hue-neutral));--ink-600: oklch(47.6% calc(var(--chroma-neutral) * 2.8) var(--hue-neutral));--ink-700: oklch(38.2% calc(var(--chroma-neutral) * 2.6) var(--hue-neutral));--ink-800: oklch(29.4% calc(var(--chroma-neutral) * 2.4) var(--hue-neutral));--ink-900: oklch(22.6% calc(var(--chroma-neutral) * 2.2) var(--hue-neutral));--ink-950: oklch(16.2% calc(var(--chroma-neutral) * 2) var(--hue-neutral));--ink-1000: oklch(11.4% calc(var(--chroma-neutral) * 1.8) var(--hue-neutral));--good-100: oklch(94% calc(var(--chroma-status) * .3) var(--hue-good));--good-500: oklch(62% var(--chroma-status) var(--hue-good));--good-600: oklch(52% var(--chroma-status) var(--hue-good));--good-700: oklch(44% var(--chroma-status) var(--hue-good));--warn-100: oklch(95% calc(var(--chroma-status) * .32) var(--hue-warn));--warn-500: oklch(76% var(--chroma-status) var(--hue-warn));--warn-700: oklch(50% var(--chroma-status) var(--hue-warn));--bad-100: oklch(94.5% calc(var(--chroma-status) * .3) var(--hue-bad));--bad-500: oklch(58% calc(var(--chroma-status) * 1.25) var(--hue-bad));--bad-600: oklch(52% calc(var(--chroma-status) * 1.25) var(--hue-bad));--bad-700: oklch(44% calc(var(--chroma-status) * 1.1) var(--hue-bad));--accent-100: oklch(95% calc(var(--chroma-accent) * .3) var(--hue-accent));--accent-500: oklch(74% var(--chroma-accent) var(--hue-accent));--accent-700: oklch(52% calc(var(--chroma-accent) * .9) var(--hue-accent));--bg: light-dark(var(--ink-50), var(--ink-1000));--bg-sunken: light-dark(var(--ink-100), oklch(8.6% .012 var(--hue-neutral)));--surface: light-dark(var(--ink-0), var(--ink-950));--surface-2: light-dark(var(--ink-25), var(--ink-900));--surface-hover:light-dark(var(--ink-50), var(--ink-900));--line: light-dark(var(--ink-200), oklch(28% .016 var(--hue-neutral)));--line-strong: light-dark(var(--ink-300), oklch(36% .018 var(--hue-neutral)));--text: light-dark(var(--ink-900), var(--ink-100));--text-muted: light-dark(var(--ink-600), var(--ink-400));--text-faint: light-dark(var(--ink-500), var(--ink-500));--text-on-brand: oklch(99% .01 var(--hue-brand));--text-on-accent: oklch(24% .06 var(--hue-accent));--text-on-good: oklch(99% .01 var(--hue-good));--text-on-warn: oklch(24% .06 var(--hue-warn));--text-on-bad: oklch(99% .01 var(--hue-bad));--brand: light-dark(var(--brand-600), var(--brand-400));--brand-hover: light-dark(var(--brand-700), var(--brand-300));--brand-soft: light-dark(var(--brand-50), oklch(26% .05 var(--hue-brand)));--brand-soft-text: light-dark(var(--brand-800), var(--brand-200));--focus: light-dark(var(--brand-500), var(--brand-300));--space-0: 0;--space-px: 1px;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--space-section: clamp(2.5rem, 1.4rem + 5.5vw, 6rem);--space-gutter: clamp(1rem, .55rem + 2.2vw, 2rem);--r-xs: 4px;--r-sm: 7px;--r-md: 12px;--r-lg: 18px;--r-full: 999px;--shadow-color: var(--hue-neutral);--shadow-1: 0 1px 2px oklch(20% .03 var(--shadow-color) / .06), 0 1px 1px oklch(20% .03 var(--shadow-color) / .04);--shadow-2: 0 2px 4px oklch(20% .03 var(--shadow-color) / .05), 0 4px 12px oklch(20% .03 var(--shadow-color) / .07);--shadow-3: 0 4px 8px oklch(20% .03 var(--shadow-color) / .06), 0 12px 28px oklch(20% .03 var(--shadow-color) / .1);--shadow-4: 0 8px 16px oklch(20% .03 var(--shadow-color) / .08), 0 24px 56px oklch(20% .03 var(--shadow-color) / .14);--shadow-inset: inset 0 1px 0 oklch(100% 0 0 / .6);--scrim: linear-gradient(to top, oklch(12% .02 var(--hue-neutral) / .82) 0%, oklch(12% .02 var(--hue-neutral) / .62) 22%, oklch(12% .02 var(--hue-neutral) / .28) 48%, transparent 78%);--font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI Variable Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", "Cascadia Mono", "Roboto Mono", Menlo, Consolas, monospace;--font-display: var(--font-sans);--text-2xs: .6875rem;--text-xs: .75rem;--text-sm: .8125rem;--text-base: .9375rem;--text-md: 1.0625rem;--text-lg: clamp(1.125rem, 1.06rem + .32vw, 1.3125rem);--text-xl: clamp(1.3125rem, 1.19rem + .62vw, 1.625rem);--text-2xl: clamp(1.5625rem, 1.33rem + 1.16vw, 2.125rem);--text-3xl: clamp(1.875rem, 1.44rem + 2.16vw, 2.875rem);--text-4xl: clamp(2.25rem, 1.5rem + 3.75vw, 3.75rem);--leading-tight: 1.12;--leading-snug: 1.3;--leading-normal: 1.55;--leading-loose: 1.72;--measure: 68ch;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-spring: linear(0, .18 6%, .53 14%, .89 24%, 1.04 32%, 1.06 40%, 1);--dur-1: .11s;--dur-2: .19s;--dur-3: .3s;--tap: 44px;--control-h-sm: 34px;--control-h: 42px;--control-h-lg: 50px;--ring: 0 0 0 3px light-dark(oklch(from var(--focus) l c h / .32), oklch(from var(--focus) l c h / .42));--z-sticky: 100;--z-nav: 200;--z-sheet: 300;--z-modal: 400;--z-toast: 500}@supports (color: contrast-color(red)){:root{--text-on-brand: contrast-color(var(--brand-600));--text-on-accent: contrast-color(var(--accent-500));--text-on-good: contrast-color(var(--good-600));--text-on-warn: contrast-color(var(--warn-500));--text-on-bad: contrast-color(var(--bad-600))}}[data-theme=light]{color-scheme:light}[data-theme=dark]{color-scheme:dark}@media(prefers-color-scheme:dark){:root{--shadow-2: 0 2px 4px oklch(0% 0 0 / .3), 0 4px 12px oklch(0% 0 0 / .34);--shadow-3: 0 4px 10px oklch(0% 0 0 / .34), 0 14px 30px oklch(0% 0 0 / .4);--shadow-4: 0 10px 20px oklch(0% 0 0 / .4), 0 28px 60px oklch(0% 0 0 / .5);--shadow-inset: inset 0 1px 0 oklch(100% 0 0 / .06)}}}@layer deck.reset{*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;tab-size:2;scroll-behavior:smooth;scroll-padding-block-start:calc(var(--control-h-lg) + var(--space-4))}body{min-block-size:100dvh;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);font-synthesis-weight:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-wrap:break-word}img,svg,video,canvas,audio,iframe,embed,object{display:block;max-inline-size:100%}img,video{block-size:auto}input,button,textarea,select{font:inherit;color:inherit}button{background:none;border:0}p,li,figcaption{text-wrap:pretty}h1,h2,h3,h4,h5,h6{text-wrap:balance}ul[class],ol[class]{list-style:none;padding:0}table{border-collapse:collapse;border-spacing:0}hr{border:0;block-size:1px;background:var(--line)}:target{scroll-margin-block-start:var(--space-16)}::selection{background:var(--brand-200);color:var(--ink-950)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--r-xs)}:focus:not(:focus-visible){outline:none}*{scrollbar-color:var(--ink-300) transparent;scrollbar-width:thin}::-webkit-scrollbar{inline-size:10px;block-size:10px}::-webkit-scrollbar-thumb{background:var(--ink-300);border-radius:var(--r-full);border:3px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--ink-400);background-clip:content-box}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.spinner,.icon-spin,.skeleton,.marquee-track,.btn.is-loading:after,.dg-wrap.is-loading:after,.ping:after{animation-duration:2.4s!important;animation-iteration-count:infinite!important}}@supports (interpolate-size: allow-keywords){:root{interpolate-size:allow-keywords}}}@layer deck.type{h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5,h6,.h6{font-family:var(--font-display);font-weight:640;line-height:var(--leading-tight);letter-spacing:-.021em;color:var(--text)}h1,.h1{font-size:var(--text-3xl);letter-spacing:-.031em}h2,.h2{font-size:var(--text-2xl);letter-spacing:-.026em}h3,.h3{font-size:var(--text-xl)}h4,.h4{font-size:var(--text-lg);letter-spacing:-.014em}h5,.h5{font-size:var(--text-md);letter-spacing:-.008em;font-weight:620}h6,.h6{font-size:var(--text-base);letter-spacing:0;font-weight:640}.display{font-size:var(--text-4xl);font-weight:700;line-height:1.04;letter-spacing:-.036em}.lede{font-size:var(--text-md);line-height:var(--leading-loose);color:var(--text-muted);max-inline-size:var(--measure)}small{font-size:var(--text-sm)}strong,b{font-weight:640}a{color:var(--brand);text-decoration-thickness:1px;text-underline-offset:.18em;text-decoration-color:color-mix(in oklab,currentColor 40%,transparent);transition:color var(--dur-1) var(--ease-out),text-decoration-color var(--dur-1) var(--ease-out)}a:hover{color:var(--brand-hover);text-decoration-color:currentColor}.link-quiet{color:var(--text);text-decoration:none}.link-quiet:hover{color:var(--brand);text-decoration:underline}code,kbd,samp,pre{font-family:var(--font-mono);font-size:.92em}:not(pre)>code{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-xs);padding:.12em .38em;color:light-dark(var(--brand-800),var(--brand-200))}pre{background:var(--ink-950);color:var(--ink-100);padding:var(--space-4);border-radius:var(--r-md);overflow-x:auto;line-height:1.6;font-size:var(--text-sm);-webkit-overflow-scrolling:touch}pre code{background:none;border:0;padding:0;color:inherit}kbd{display:inline-block;background:var(--surface);border:1px solid var(--line-strong);border-block-end-width:2px;border-radius:var(--r-xs);padding:.1em .42em;font-size:var(--text-xs);line-height:1.5;color:var(--text-muted)}blockquote{border-inline-start:3px solid var(--brand-300);padding-inline-start:var(--space-4);color:var(--text-muted);font-size:var(--text-md);line-height:var(--leading-loose)}mark{background:var(--accent-100);color:light-dark(var(--ink-900),var(--ink-900));padding:.05em .2em;border-radius:var(--r-xs)}abbr[title]{text-decoration:underline dotted;cursor:help}.prose{max-inline-size:var(--measure)}.prose>*+*{margin-block-start:var(--space-4)}.prose>*+:is(h2,h3,h4){margin-block-start:var(--space-8)}.prose :is(ul,ol){padding-inline-start:var(--space-6);display:grid;gap:var(--space-2)}.prose ul{list-style:disc}.prose ol{list-style:decimal}.prose li::marker{color:var(--text-faint)}.prose img{border-radius:var(--r-md)}.prose hr{margin-block:var(--space-8)}}@layer deck.layout{.container{inline-size:100%;max-inline-size:var(--container, 76rem);margin-inline:auto;padding-inline:var(--space-gutter)}.container-sm{--container: 40rem}.container-md{--container: 56rem}.container-lg{--container: 76rem}.container-xl{--container: 90rem}.container-full{--container: none}.stack{display:flex;flex-direction:column;gap:var(--gap, var(--space-4))}.stack-0{--gap: 0}.stack-1{--gap: var(--space-1)}.stack-2{--gap: var(--space-2)}.stack-3{--gap: var(--space-3)}.stack-4{--gap: var(--space-4)}.stack-6{--gap: var(--space-6)}.stack-8{--gap: var(--space-8)}.cluster{display:flex;flex-wrap:wrap;align-items:center;gap:var(--gap, var(--space-3))}.cluster-tight{--gap: var(--space-2)}.cluster-end{justify-content:flex-end}.cluster-center{justify-content:center}.cluster-between{justify-content:space-between}.bar{display:flex;align-items:center;gap:var(--space-3)}.bar>.push{margin-inline-start:auto}.grid{display:grid;gap:var(--gap, var(--space-4));grid-template-columns:repeat(auto-fit,minmax(min(var(--min, 17rem),100%),1fr))}.grid-2{grid-template-columns:repeat(auto-fit,minmax(min(24rem,100%),1fr))}.grid-tight{--min: 12rem}.grid-wide{--min: 24rem}.grid-fixed-2{grid-template-columns:1fr 1fr}.grid-fixed-3{grid-template-columns:repeat(3,1fr)}.grid-fixed-4{grid-template-columns:repeat(4,1fr)}.split{display:grid;gap:var(--gap, var(--space-6));grid-template-columns:1fr}.split>*{min-inline-size:0}@media(min-width:64rem){.split{grid-template-columns:minmax(0,1fr) var(--rail, 20rem)}.split-rail-start{grid-template-columns:var(--rail, 20rem) minmax(0,1fr)}}.center{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--gap, var(--space-4))}.section{padding-block:var(--space-section)}.scroller{display:flex;gap:var(--gap, var(--space-3));overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;scrollbar-width:none;padding-block-end:var(--space-2);margin-inline:calc(var(--space-gutter) * -1);padding-inline:var(--space-gutter)}.scroller::-webkit-scrollbar{display:none}.scroller>*{scroll-snap-align:start;flex:0 0 auto}.sticky-top{position:sticky;inset-block-start:0;z-index:var(--z-sticky);background:color-mix(in oklab,var(--bg) 82%,transparent);backdrop-filter:saturate(1.6) blur(12px);-webkit-backdrop-filter:saturate(1.6) blur(12px)}@supports (container-type: scroll-state){.sticky-top{container-type:scroll-state;background:none;backdrop-filter:none;-webkit-backdrop-filter:none}.sticky-top:after{content:"";position:absolute;inset:0;z-index:-1;opacity:0;background:color-mix(in oklab,var(--bg) 82%,transparent);backdrop-filter:saturate(1.6) blur(12px);-webkit-backdrop-filter:saturate(1.6) blur(12px);transition:opacity var(--dur-2) var(--ease-out)}@container scroll-state(stuck: block-start){.sticky-top:after{opacity:1;box-shadow:var(--shadow-2)}}}.app-shell{display:grid;min-block-size:100dvh;grid-template-rows:auto 1fr auto}.ratio-16x9{aspect-ratio:16 / 9;object-fit:cover;inline-size:100%}.ratio-4x3{aspect-ratio:4 / 3;object-fit:cover;inline-size:100%}.ratio-1x1{aspect-ratio:1;object-fit:cover;inline-size:100%}.cq{container-type:inline-size}}@layer deck.components{.btn{--btn-bg: var(--surface);--btn-text: var(--text);--btn-border: var(--line-strong);--btn-shadow: var(--shadow-1);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);block-size:var(--control-h);min-inline-size:var(--control-h);padding-inline:var(--space-4);border:1px solid var(--btn-border);border-radius:var(--r-sm);background:var(--btn-bg);color:var(--btn-text);box-shadow:var(--btn-shadow);font-size:var(--text-base);font-weight:560;line-height:1;letter-spacing:-.008em;white-space:nowrap;text-decoration:none;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:background-color var(--dur-1) var(--ease-out),border-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out),box-shadow var(--dur-1) var(--ease-out),translate var(--dur-1) var(--ease-out)}.btn{position:relative}.btn:before{content:"";position:absolute;inset-block-start:50%;inset-inline-start:50%;translate:-50% -50%;inline-size:100%;block-size:100%;min-inline-size:var(--tap);min-block-size:var(--tap)}.btn:hover{background:var(--surface-hover);border-color:var(--ink-400)}.btn:active{translate:0 1px;box-shadow:none}.btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.btn[disabled],.btn[aria-disabled=true],.btn.is-disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-primary{--btn-bg: var(--brand-600);--btn-text: var(--text-on-brand);--btn-border: transparent;--btn-shadow: var(--shadow-2), var(--shadow-inset)}.btn-primary:hover{--btn-bg: var(--brand-700);border-color:transparent;background:var(--brand-700)}.btn-accent{--btn-bg: var(--accent-500);--btn-text: var(--text-on-accent);--btn-border: transparent;--btn-shadow: var(--shadow-2), var(--shadow-inset)}.btn-accent:hover{background:oklch(from var(--accent-500) calc(l - .05) c h);border-color:transparent}.btn-danger{--btn-bg: var(--bad-600);--btn-text: var(--text-on-bad);--btn-border: transparent;--btn-shadow: var(--shadow-2), var(--shadow-inset)}.btn-danger:hover{background:var(--bad-700);border-color:transparent}.btn-soft{--btn-bg: var(--brand-soft);--btn-text: var(--brand-soft-text);--btn-border: transparent;--btn-shadow: none}.btn-soft:hover{background:color-mix(in oklab,var(--brand-soft) 80%,var(--brand-300));border-color:transparent}.btn-ghost{--btn-bg: transparent;--btn-border: transparent;--btn-shadow: none}.btn-ghost:hover{background:var(--surface-hover);border-color:transparent}.btn-outline{--btn-bg: transparent;--btn-text: var(--brand);--btn-border: color-mix(in oklab, var(--brand) 45%, transparent);--btn-shadow: none}.btn-outline:hover{background:var(--brand-soft);border-color:var(--brand)}.btn-link{--btn-bg: transparent;--btn-border: transparent;--btn-shadow: none;--btn-text: var(--brand);padding-inline:var(--space-1);block-size:auto}.btn-link:hover{background:none;border-color:transparent;text-decoration:underline}.btn-sm{block-size:var(--control-h-sm);padding-inline:var(--space-3);font-size:var(--text-sm);border-radius:var(--r-xs);gap:var(--space-1)}.btn-lg{block-size:var(--control-h-lg);padding-inline:var(--space-6);font-size:var(--text-md);font-weight:600}.btn-block{inline-size:100%}.btn-icon{padding-inline:0;inline-size:var(--control-h)}.btn-icon.btn-sm{inline-size:var(--control-h-sm)}.btn-icon.btn-lg{inline-size:var(--control-h-lg)}.btn-round{border-radius:var(--r-full)}.btn-group{display:inline-flex}.btn-group>.btn{border-radius:0;box-shadow:none}.btn-group>.btn:first-child{border-start-start-radius:var(--r-sm);border-end-start-radius:var(--r-sm)}.btn-group>.btn:last-child{border-start-end-radius:var(--r-sm);border-end-end-radius:var(--r-sm)}.btn-group>.btn+.btn{margin-inline-start:-1px}.btn-group>.btn:hover,.btn-group>.btn:focus-visible{z-index:1}.btn.is-loading{color:transparent;pointer-events:none}.btn.is-loading:after{content:"";position:absolute;inline-size:1em;block-size:1em;border:2px solid color-mix(in oklab,var(--btn-text) 30%,transparent);border-block-start-color:var(--btn-text);border-radius:var(--r-full);animation:dk-spin .62s linear infinite}@keyframes dk-spin{to{rotate:360deg}}.fab{position:fixed;inset-block-end:calc(var(--space-5) + env(safe-area-inset-bottom));inset-inline-end:var(--space-5);z-index:var(--z-nav);inline-size:56px;block-size:56px;border-radius:var(--r-full);background:var(--brand-600);color:var(--text-on-brand);box-shadow:var(--shadow-4);display:grid;place-items:center;cursor:pointer;transition:scale var(--dur-2) var(--ease-spring),background-color var(--dur-1) var(--ease-out)}.fab:hover{background:var(--brand-700);scale:1.04}.fab:active{scale:.96}body:has(.tabbar) .fab{inset-block-end:calc(var(--space-4) + var(--tap) + var(--space-3) + env(safe-area-inset-bottom))}}@layer deck.components{.field{display:flex;flex-direction:column;gap:var(--space-2);min-inline-size:0}.label{font-size:var(--text-sm);font-weight:580;color:var(--text);display:flex;align-items:center;gap:var(--space-2)}.label .optional{color:var(--text-faint);font-weight:400}.label .required{color:var(--bad-500)}.help{font-size:var(--text-sm);color:var(--text-muted)}.error{font-size:var(--text-sm);color:light-dark(var(--bad-700),oklch(76% .13 var(--hue-bad)));display:flex;gap:var(--space-2);align-items:flex-start}.input,.textarea,.select{inline-size:100%;min-block-size:var(--control-h);padding:var(--space-2) var(--space-3);background:var(--surface);color:var(--text);border:1px solid var(--line-strong);border-radius:var(--r-sm);box-shadow:var(--shadow-1);font-size:var(--text-base);line-height:1.45;transition:border-color var(--dur-1) var(--ease-out),box-shadow var(--dur-1) var(--ease-out),background-color var(--dur-1) var(--ease-out)}@media(pointer:coarse){.input,.textarea,.select{font-size:16px}}.input::placeholder,.textarea::placeholder{color:var(--text-faint)}.input:hover,.textarea:hover,.select:hover{border-color:var(--ink-400)}.input:focus,.textarea:focus,.select:focus{outline:none;border-color:var(--focus);box-shadow:var(--ring)}.input[disabled],.textarea[disabled],.select[disabled]{background:var(--bg-sunken);color:var(--text-faint);cursor:not-allowed;box-shadow:none}.input[readonly]{background:var(--surface-2)}.textarea{min-block-size:calc(var(--control-h) * 2);resize:vertical;field-sizing:content;max-block-size:22rem}.select{appearance:none;padding-inline-end:var(--space-10);background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 19px) calc(50% + 1px),calc(100% - 14px) calc(50% + 1px);background-size:5px 5px,5px 5px;background-repeat:no-repeat;cursor:pointer}.input:user-invalid,.textarea:user-invalid,.select:user-invalid,.field.is-invalid :is(.input,.textarea,.select){border-color:var(--bad-500)}.input:user-invalid:focus,.field.is-invalid :is(.input,.textarea,.select):focus{box-shadow:0 0 0 3px color-mix(in oklab,var(--bad-500) 26%,transparent)}.input-group{display:flex;align-items:stretch;inline-size:100%;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--shadow-1);overflow:hidden}.input-group:focus-within{border-color:var(--focus);box-shadow:var(--ring)}.input-group>.input{border:0;border-radius:0;box-shadow:none;background:transparent}.input-group>.input:focus{box-shadow:none}.input-group>.addon{display:inline-flex;align-items:center;gap:var(--space-2);padding-inline:var(--space-3);background:var(--surface-2);color:var(--text-muted);font-size:var(--text-sm);white-space:nowrap;border-inline-end:1px solid var(--line)}.input-group>.addon:last-child{border-inline-start:1px solid var(--line);border-inline-end:0}.input-group>.btn{border-radius:0;border-block:0;border-inline-end:0;box-shadow:none}.search{position:relative;display:flex;align-items:center}.search>.icon{position:absolute;inset-inline-start:var(--space-3);color:var(--text-faint);pointer-events:none}.search>.input{padding-inline-start:var(--space-10);border-radius:var(--r-full)}.check{display:flex;align-items:flex-start;gap:var(--space-3);min-block-size:var(--tap);padding-block:var(--space-2);cursor:pointer;line-height:1.4}.check input[type=checkbox],.check input[type=radio]{appearance:none;flex:0 0 auto;inline-size:20px;block-size:20px;margin-block-start:1px;border:1.5px solid var(--line-strong);background:var(--surface);border-radius:var(--r-xs);display:grid;place-content:center;cursor:pointer;transition:background-color var(--dur-1) var(--ease-out),border-color var(--dur-1) var(--ease-out)}.check input[type=radio]{border-radius:var(--r-full)}.check input:hover{border-color:var(--brand-400)}.check input:checked{background:var(--brand-600);border-color:var(--brand-600)}.check input[type=checkbox]:before{content:"";inline-size:11px;block-size:11px;scale:0;transition:scale var(--dur-2) var(--ease-spring);box-shadow:inset 1em 1em var(--text-on-brand);clip-path:polygon(14% 44%,0 65%,41% 100%,100% 16%,84% 0,39% 68%)}.check input[type=radio]:before{content:"";inline-size:9px;block-size:9px;border-radius:var(--r-full);background:var(--text-on-brand);scale:0;transition:scale var(--dur-2) var(--ease-spring)}.check input:checked:before{scale:1}.check input:indeterminate{background:var(--brand-600);border-color:var(--brand-600)}.check input:indeterminate:before{scale:1;clip-path:polygon(10% 42%,90% 42%,90% 58%,10% 58%)}.check input:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.check .check-text{display:flex;flex-direction:column;gap:2px}.check .check-note{font-size:var(--text-sm);color:var(--text-muted)}.check-card{border:1px solid var(--line);border-radius:var(--r-md);padding:var(--space-4);background:var(--surface);transition:border-color var(--dur-1) var(--ease-out),background-color var(--dur-1) var(--ease-out)}.check-card:has(input:checked){border-color:var(--brand-500);background:var(--brand-soft)}.switch{display:flex;align-items:center;gap:var(--space-3);min-block-size:var(--tap);cursor:pointer}.switch input{appearance:none;flex:0 0 auto;inline-size:46px;block-size:28px;border-radius:var(--r-full);background:var(--ink-300);position:relative;cursor:pointer;transition:background-color var(--dur-2) var(--ease-out)}.switch input:after{content:"";position:absolute;inset-block-start:3px;inset-inline-start:3px;inline-size:22px;block-size:22px;border-radius:var(--r-full);background:var(--ink-0);box-shadow:var(--shadow-2);transition:translate var(--dur-2) var(--ease-spring)}.switch input:checked{background:var(--brand-600)}.switch input:checked:after{translate:18px 0}.switch input:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.range{inline-size:100%;appearance:none;background:transparent;block-size:var(--tap)}.range::-webkit-slider-runnable-track{block-size:6px;border-radius:var(--r-full);background:var(--ink-200)}.range::-moz-range-track{block-size:6px;border-radius:var(--r-full);background:var(--ink-200)}.range::-webkit-slider-thumb{appearance:none;margin-block-start:-8px;inline-size:22px;block-size:22px;border-radius:var(--r-full);background:var(--brand-600);border:3px solid var(--ink-0);box-shadow:var(--shadow-2);cursor:grab}.range::-moz-range-thumb{inline-size:22px;block-size:22px;border-radius:var(--r-full);background:var(--brand-600);border:3px solid var(--ink-0);box-shadow:var(--shadow-2);cursor:grab}.range:active::-webkit-slider-thumb{cursor:grabbing;scale:1.08}.file{display:grid;place-items:center;gap:var(--space-2);padding:var(--space-6);border:1.5px dashed var(--line-strong);border-radius:var(--r-md);background:var(--surface-2);text-align:center;color:var(--text-muted);cursor:pointer;transition:border-color var(--dur-1) var(--ease-out),background-color var(--dur-1) var(--ease-out)}.file:hover,.file:focus-within{border-color:var(--brand-500);background:var(--brand-soft)}.file input[type=file]{position:absolute;opacity:0;inline-size:1px;block-size:1px}.fieldset{border:1px solid var(--line);border-radius:var(--r-md);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4);min-inline-size:0}.fieldset>legend{padding-inline:var(--space-2);font-size:var(--text-sm);font-weight:600;color:var(--text-muted)}.field-row{display:grid;gap:var(--space-4);grid-template-columns:1fr}@media(min-width:40rem){.field-row{grid-template-columns:repeat(auto-fit,minmax(min(14rem,100%),1fr))}}.form-actions{display:flex;gap:var(--space-3);flex-wrap:wrap}.form-actions-sticky{position:sticky;inset-block-end:0;z-index:var(--z-sticky);background:color-mix(in oklab,var(--bg) 88%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-block-start:1px solid var(--line);padding-block:var(--space-3);padding-block-end:calc(var(--space-3) + env(safe-area-inset-bottom))}.form-actions-sticky>.btn{flex:1 1 auto}@media(min-width:48rem){.form-actions-sticky>.btn{flex:0 0 auto}}}@layer deck.components{.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-1);display:flex;flex-direction:column;min-inline-size:0;overflow:clip}.card-header,.card-footer{padding:var(--space-4) var(--space-5);display:flex;align-items:center;gap:var(--space-3)}.card-header{border-block-end:1px solid var(--line)}.card-footer{border-block-start:1px solid var(--line);background:var(--surface-2);margin-block-start:auto}.card-body{padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-3)}.card-title{font-size:var(--text-md);font-weight:620;letter-spacing:-.012em}.card-media{margin:0}.card-media img{inline-size:100%;object-fit:cover}.card-link{position:relative;transition:box-shadow var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out)}.card-link:hover{box-shadow:var(--shadow-3);border-color:var(--line-strong)}.card-link .stretch:after{content:"";position:absolute;inset:0}.card-flush{border:0;box-shadow:none;background:none}.card-raised{box-shadow:var(--shadow-3);border-color:transparent}.card-brand{border-color:var(--brand-200);background:var(--brand-soft)}.panel{background:var(--surface);border-block:1px solid var(--line);padding:var(--space-5) var(--space-gutter);margin-inline:calc(var(--space-gutter) * -1)}@media(min-width:40rem){.panel{border:1px solid var(--line);border-radius:var(--r-md);margin-inline:0;padding-inline:var(--space-5)}}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:.18em .55em;border-radius:var(--r-xs);background:var(--surface-2);color:var(--text-muted);border:1px solid var(--line);font-size:var(--text-xs);font-weight:580;line-height:1.45;white-space:nowrap}.badge-brand{background:var(--brand-soft);color:var(--brand-soft-text);border-color:transparent}.badge-good{background:var(--good-100);color:var(--good-700);border-color:transparent}.badge-warn{background:var(--warn-100);color:var(--warn-700);border-color:transparent}.badge-bad{background:var(--bad-100);color:var(--bad-700);border-color:transparent}.badge-solid{background:var(--brand-600);color:var(--text-on-brand);border-color:transparent}.badge-dot:before{content:"";inline-size:6px;block-size:6px;border-radius:var(--r-full);background:currentColor}.chip{display:inline-flex;align-items:center;gap:var(--space-2);min-block-size:34px;padding-inline:var(--space-3);border-radius:var(--r-full);border:1px solid var(--line-strong);background:var(--surface);font-size:var(--text-sm);font-weight:520;cursor:pointer;white-space:nowrap;transition:background-color var(--dur-1) var(--ease-out),border-color var(--dur-1) var(--ease-out)}.chip:hover{background:var(--surface-hover)}.chip[aria-pressed=true],.chip.is-active{background:var(--brand-600);border-color:var(--brand-600);color:var(--text-on-brand)}.chip-remove{display:grid;place-items:center;opacity:.6}.chip-remove:hover{opacity:1}.alert{display:flex;gap:var(--space-3);padding:var(--space-4);border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface-2);border-inline-start:3px solid var(--ink-400)}.alert-title{font-weight:620;margin-block-end:2px}.alert-body{font-size:var(--text-sm);color:var(--text-muted);min-inline-size:0}.alert>.icon{flex:0 0 auto;margin-block-start:1px}.alert-info{background:var(--brand-soft);border-color:transparent;border-inline-start-color:var(--brand-500);color:var(--brand-soft-text)}.alert-good{background:var(--good-100);border-color:transparent;border-inline-start-color:var(--good-500);color:var(--good-700)}.alert-warn{background:var(--warn-100);border-color:transparent;border-inline-start-color:var(--warn-500);color:var(--warn-700)}.alert-bad{background:var(--bad-100);border-color:transparent;border-inline-start-color:var(--bad-500);color:var(--bad-700)}.alert :is(.alert-body,p){color:inherit;opacity:.9}.avatar{--size: 40px;inline-size:var(--size);block-size:var(--size);border-radius:var(--r-full);background:var(--brand-soft);color:var(--brand-soft-text);display:grid;place-items:center;font-size:calc(var(--size) * .38);font-weight:620;overflow:hidden;flex:0 0 auto;-webkit-user-select:none;user-select:none}.avatar img{inline-size:100%;block-size:100%;object-fit:cover}.avatar-xs{--size: 24px}.avatar-sm{--size: 32px}.avatar-lg{--size: 56px}.avatar-xl{--size: 80px}.avatar-square{border-radius:var(--r-sm)}.avatar-stack{display:flex}.avatar-stack>.avatar+.avatar{margin-inline-start:calc(var(--size, 40px) * -.32)}.avatar-stack>.avatar{box-shadow:0 0 0 2px var(--surface)}.presence{position:relative}.presence:after{content:"";position:absolute;inset-block-end:0;inset-inline-end:0;inline-size:30%;block-size:30%;border-radius:var(--r-full);background:var(--good-500);box-shadow:0 0 0 2px var(--surface)}.presence-away:after{background:var(--warn-500)}.presence-off:after{background:var(--ink-400)}.table-wrap{inline-size:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}.table{inline-size:100%;font-size:var(--text-sm)}.table :is(th,td){padding:var(--space-3) var(--space-4);text-align:start;vertical-align:middle}.table thead th{background:var(--surface-2);font-weight:600;color:var(--text-muted);font-size:var(--text-xs);letter-spacing:.01em;white-space:nowrap;position:sticky;inset-block-start:0;z-index:1}.table tbody tr+tr{border-block-start:1px solid var(--line)}.table tbody tr:hover{background:var(--surface-hover)}.table .num{text-align:end;font-variant-numeric:tabular-nums}.table-compact :is(th,td){padding:var(--space-2) var(--space-3)}@media(max-width:39.999rem){.table-stack thead{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%)}.table-stack,.table-stack tbody,.table-stack tr,.table-stack td{display:block;inline-size:100%}.table-stack tr{border:1px solid var(--line);border-radius:var(--r-sm);padding:var(--space-2);margin-block-end:var(--space-3)}.table-stack tbody tr+tr{border-block-start:1px solid var(--line)}.table-stack td{display:flex;justify-content:space-between;gap:var(--space-4);padding:var(--space-2) var(--space-3);text-align:end}.table-stack td:before{content:attr(data-label);font-weight:580;color:var(--text-muted);text-align:start}}.list{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);overflow:clip}.list-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);min-block-size:var(--tap);color:inherit;text-decoration:none;transition:background-color var(--dur-1) var(--ease-out)}.list-row+.list-row{border-block-start:1px solid var(--line)}.list-row:hover{background:var(--surface-hover)}.list-row .list-main{flex:1 1 auto;min-inline-size:0;display:flex;flex-direction:column;gap:1px}.list-row .list-title{font-weight:560}.list-row .list-sub{font-size:var(--text-sm);color:var(--text-muted)}.list-row .list-trail{color:var(--text-faint);flex:0 0 auto;font-size:var(--text-sm)}.list-header{padding:var(--space-2) var(--space-4);background:var(--surface-2);font-size:var(--text-xs);font-weight:620;color:var(--text-muted);position:sticky;inset-block-start:0;z-index:1}.tabs{display:flex;gap:var(--space-1);border-block-end:1px solid var(--line);overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{padding:var(--space-3) var(--space-4);min-block-size:var(--tap);display:inline-flex;align-items:center;gap:var(--space-2);color:var(--text-muted);font-weight:560;font-size:var(--text-sm);white-space:nowrap;cursor:pointer;border-block-end:2px solid transparent;margin-block-end:-1px;text-decoration:none;transition:color var(--dur-1) var(--ease-out),border-color var(--dur-1) var(--ease-out)}.tab:hover{color:var(--text)}.tab[aria-selected=true],.tab.is-active{color:var(--brand);border-block-end-color:var(--brand)}.segmented{display:inline-flex;padding:3px;gap:2px;background:var(--bg-sunken);border-radius:var(--r-sm);border:1px solid var(--line);inline-size:100%}.segmented>*{flex:1 1 0;min-block-size:36px;padding-inline:var(--space-3);border-radius:calc(var(--r-sm) - 2px);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:560;color:var(--text-muted);cursor:pointer;white-space:nowrap;transition:background-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out)}.segmented>[aria-selected=true],.segmented>.is-active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-1)}.accordion{border:1px solid var(--line);border-radius:var(--r-md);overflow:clip;background:var(--surface)}.accordion>details+details{border-block-start:1px solid var(--line)}.accordion summary,.disclosure summary{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);min-block-size:var(--tap);font-weight:560;cursor:pointer;list-style:none;transition:background-color var(--dur-1) var(--ease-out)}.accordion summary::-webkit-details-marker,.disclosure summary::-webkit-details-marker{display:none}.accordion summary:hover,.disclosure summary:hover{background:var(--surface-hover)}.accordion summary:after,.disclosure summary:after{content:"";margin-inline-start:auto;inline-size:8px;block-size:8px;border-inline-end:2px solid var(--text-faint);border-block-end:2px solid var(--text-faint);rotate:45deg;translate:0 -2px;transition:rotate var(--dur-2) var(--ease-out)}.accordion details[open] summary:after,.disclosure[open] summary:after{rotate:225deg;translate:0 2px}.accordion .accordion-body,.disclosure .disclosure-body{padding:0 var(--space-4) var(--space-4);color:var(--text-muted);font-size:var(--text-sm)}.accordion details::details-content,.disclosure::details-content{block-size:0;overflow:hidden;transition:block-size var(--dur-3) var(--ease-out),content-visibility var(--dur-3) allow-discrete}.accordion details[open]::details-content,.disclosure[open]::details-content{block-size:auto}.breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);font-size:var(--text-sm)}.breadcrumb a{color:var(--text-muted);text-decoration:none}.breadcrumb a:hover{color:var(--brand)}.breadcrumb li+li:before{content:"/";color:var(--text-faint);margin-inline-end:var(--space-2)}.breadcrumb li{display:flex;align-items:center}.breadcrumb [aria-current]{color:var(--text);font-weight:560}.pagination{display:flex;gap:var(--space-1);align-items:center;flex-wrap:wrap}.pagination>*{min-inline-size:var(--control-h-sm);min-block-size:var(--control-h-sm);padding-inline:var(--space-2);display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-xs);color:var(--text-muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums;text-decoration:none}.pagination>a:hover{background:var(--surface-hover);color:var(--text)}.pagination>[aria-current=page]{background:var(--brand-600);color:var(--text-on-brand);font-weight:600}.progress{inline-size:100%;block-size:8px;border-radius:var(--r-full);background:var(--ink-200);overflow:hidden;appearance:none;border:0}.progress::-webkit-progress-bar{background:var(--ink-200)}.progress::-webkit-progress-value{background:var(--brand-600);border-radius:var(--r-full);transition:inline-size var(--dur-3) var(--ease-out)}.progress::-moz-progress-bar{background:var(--brand-600);border-radius:var(--r-full)}.ring{--value: 0;--thickness: 6px;--size: 56px;inline-size:var(--size);block-size:var(--size);display:grid;place-items:center;border-radius:var(--r-full);font-size:var(--text-xs);font-weight:620;font-variant-numeric:tabular-nums;background:conic-gradient(var(--brand-600) calc(var(--value) * 1%),var(--ink-200) 0);mask:radial-gradient(farthest-side,transparent calc(100% - var(--thickness)),#000 calc(100% - var(--thickness) + 1px));-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - var(--thickness)),#000 calc(100% - var(--thickness) + 1px))}.ring-wrap{position:relative;display:inline-grid;place-items:center}.ring-wrap>.ring-label{position:absolute;font-size:var(--text-xs);font-weight:620;font-variant-numeric:tabular-nums}.spinner{inline-size:20px;block-size:20px;border:2px solid var(--ink-200);border-block-start-color:var(--brand-600);border-radius:var(--r-full);animation:dk-spin .62s linear infinite}.spinner-lg{inline-size:34px;block-size:34px;border-width:3px}.skeleton{background:linear-gradient(100deg,var(--ink-100) 30%,var(--ink-200) 48%,var(--ink-100) 66%);background-size:300% 100%;animation:dk-shimmer 1.4s var(--ease-in-out) infinite;border-radius:var(--r-xs);block-size:1em;color:transparent;-webkit-user-select:none;user-select:none}.skeleton-text{block-size:.8em;margin-block:.35em}.skeleton-circle{border-radius:var(--r-full)}@keyframes dk-shimmer{to{background-position:-300% 0}}.tooltip{position:relative}.tooltip:after{content:attr(data-tip);position:absolute;inset-block-end:calc(100% + 8px);inset-inline-start:50%;translate:-50% 4px;background:var(--ink-900);color:var(--ink-50);font-size:var(--text-xs);font-weight:500;line-height:1.4;padding:var(--space-2) var(--space-3);border-radius:var(--r-xs);inline-size:max-content;max-inline-size:16rem;box-shadow:var(--shadow-3);opacity:0;pointer-events:none;transition:opacity var(--dur-2) var(--ease-out),translate var(--dur-2) var(--ease-out);z-index:var(--z-toast)}.tooltip:is(:hover,:focus-visible):after{opacity:1;translate:-50% 0}@media(pointer:coarse){.tooltip:after{display:none}}.menu{position:absolute;margin:0;padding:var(--space-1);inline-size:max-content;min-inline-size:12rem;max-inline-size:min(20rem,calc(100vw - var(--space-8)));background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-4);inset:auto;opacity:0;translate:0 -6px;transition:opacity var(--dur-2) var(--ease-out),translate var(--dur-2) var(--ease-out),overlay var(--dur-2) allow-discrete,display var(--dur-2) allow-discrete}.menu:popover-open{opacity:1;translate:0}@starting-style{.menu:popover-open{opacity:0;translate:0 -6px}}.menu::backdrop{background:transparent}.menu-item{display:flex;align-items:center;gap:var(--space-3);inline-size:100%;min-block-size:40px;padding:var(--space-2) var(--space-3);border-radius:var(--r-xs);color:var(--text);font-size:var(--text-sm);text-align:start;text-decoration:none;cursor:pointer;transition:background-color var(--dur-1) var(--ease-out)}.menu-item:hover,.menu-item:focus-visible{background:var(--surface-hover)}.menu-item-danger{color:var(--bad-700)}.menu-item-danger:hover{background:var(--bad-100)}.menu-item .push{margin-inline-start:auto;color:var(--text-faint)}.menu-sep{block-size:1px;background:var(--line);margin:var(--space-1) 0}.menu-label{padding:var(--space-2) var(--space-3) var(--space-1);font-size:var(--text-xs);font-weight:620;color:var(--text-faint)}.modal{inline-size:min(34rem,calc(100vw - var(--space-8)));max-block-size:min(85dvh,48rem);padding:0;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);color:var(--text);box-shadow:var(--shadow-4);overflow:clip;opacity:0;scale:.97;translate:0 8px;transition:opacity var(--dur-2) var(--ease-out),scale var(--dur-2) var(--ease-spring),translate var(--dur-2) var(--ease-spring),overlay var(--dur-2) allow-discrete,display var(--dur-2) allow-discrete}.modal[open]{opacity:1;scale:1;translate:0}@starting-style{.modal[open]{opacity:0;scale:.97;translate:0 8px}}.modal::backdrop{background:oklch(18% .02 var(--hue-neutral) / .48);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);opacity:0;transition:opacity var(--dur-2) var(--ease-out),display var(--dur-2) allow-discrete,overlay var(--dur-2) allow-discrete}.modal[open]::backdrop{opacity:1}@starting-style{.modal[open]::backdrop{opacity:0}}.modal-header{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-5);border-block-end:1px solid var(--line)}.modal-title{font-size:var(--text-lg);font-weight:640;letter-spacing:-.018em}.modal-body{padding:var(--space-5);overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-4)}.modal-footer{display:flex;gap:var(--space-3);justify-content:flex-end;padding:var(--space-4) var(--space-5);border-block-start:1px solid var(--line);background:var(--surface-2);flex-wrap:wrap}@media(max-width:32rem){.modal-footer{flex-direction:column-reverse}.modal-footer>.btn{inline-size:100%}}.empty{display:grid;place-items:center;gap:var(--space-3);padding:var(--space-12) var(--space-5);text-align:center;color:var(--text-muted)}.empty-art{inline-size:56px;block-size:56px;display:grid;place-items:center;border-radius:var(--r-full);background:var(--brand-soft);color:var(--brand);font-size:26px}.empty-title{font-size:var(--text-md);font-weight:620;color:var(--text)}.empty p{max-inline-size:34ch}.stat{display:flex;flex-direction:column;gap:var(--space-1)}.stat-value{font-size:var(--text-2xl);font-weight:660;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1.05}.stat-label{font-size:var(--text-sm);color:var(--text-muted)}.stat-delta{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-sm);font-weight:560}.stat-delta-up{color:var(--good-700)}.stat-delta-down{color:var(--bad-700)}.timeline{display:flex;flex-direction:column}.timeline-item{display:grid;grid-template-columns:22px 1fr;gap:var(--space-3);padding-block-end:var(--space-5);position:relative}.timeline-item:not(:last-child):before{content:"";position:absolute;inset-block:22px 0;inset-inline-start:10px;inline-size:2px;background:var(--line)}.timeline-dot{inline-size:22px;block-size:22px;border-radius:var(--r-full);background:var(--surface);border:2px solid var(--line-strong);display:grid;place-items:center;z-index:1}.timeline-item.is-done .timeline-dot{background:var(--brand-600);border-color:var(--brand-600);color:var(--text-on-brand)}.navbar{display:flex;align-items:center;gap:var(--space-4);min-block-size:var(--control-h-lg);padding-block:var(--space-2);border-block-end:1px solid var(--line)}.navbar-brand{display:inline-flex;align-items:center;gap:var(--space-2);font-weight:680;font-size:var(--text-md);letter-spacing:-.024em;color:var(--text);text-decoration:none}.navbar-links{display:none;gap:var(--space-1);align-items:center}@media(min-width:48rem){.navbar-links{display:flex}}.nav-link{padding:var(--space-2) var(--space-3);border-radius:var(--r-sm);color:var(--text-muted);font-size:var(--text-sm);font-weight:540;text-decoration:none;transition:background-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out)}.nav-link:hover{background:var(--surface-hover);color:var(--text)}.nav-link[aria-current]{color:var(--brand);background:var(--brand-soft)}.sidebar{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3)}.sidebar-group{font-size:var(--text-xs);font-weight:620;color:var(--text-faint);padding:var(--space-3) var(--space-3) var(--space-1)}.sidebar-link{display:flex;align-items:center;gap:var(--space-3);min-block-size:40px;padding:var(--space-2) var(--space-3);border-radius:var(--r-sm);color:var(--text-muted);font-size:var(--text-sm);font-weight:540;text-decoration:none;transition:background-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out)}.sidebar-link:hover{background:var(--surface-hover);color:var(--text)}.sidebar-link[aria-current]{background:var(--brand-soft);color:var(--brand-soft-text);font-weight:600}.sidebar-link .push{margin-inline-start:auto}}@layer deck.mobile{.sheet{inline-size:100%;max-inline-size:100%;max-block-size:88dvh;margin:0;margin-block-start:auto;padding:0;border:0;border-start-start-radius:var(--r-lg);border-start-end-radius:var(--r-lg);background:var(--surface);color:var(--text);box-shadow:var(--shadow-4);overflow:clip;translate:0 100%;transition:translate var(--dur-3) var(--ease-out),display var(--dur-3) allow-discrete,overlay var(--dur-3) allow-discrete}.sheet[open]{translate:0}@starting-style{.sheet[open]{translate:0 100%}}.sheet::backdrop{background:oklch(18% .02 var(--hue-neutral) / .5);opacity:0;transition:opacity var(--dur-3) var(--ease-out),display var(--dur-3) allow-discrete,overlay var(--dur-3) allow-discrete}.sheet[open]::backdrop{opacity:1}@starting-style{.sheet[open]::backdrop{opacity:0}}.sheet-grip{inline-size:38px;block-size:4px;border-radius:var(--r-full);background:var(--ink-300);margin:var(--space-3) auto var(--space-1)}.sheet-header{padding:var(--space-3) var(--space-5);display:flex;align-items:center;gap:var(--space-3)}.sheet-title{font-size:var(--text-md);font-weight:640}.sheet-body{padding:var(--space-2) var(--space-5) calc(var(--space-6) + env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:var(--space-4)}@media(min-width:40rem){.sheet{inline-size:min(30rem,calc(100vw - var(--space-8)));margin:auto;border-radius:var(--r-lg);translate:0;opacity:0;scale:.97;transition:opacity var(--dur-2) var(--ease-out),scale var(--dur-2) var(--ease-spring),display var(--dur-2) allow-discrete,overlay var(--dur-2) allow-discrete}.sheet[open]{opacity:1;scale:1}@starting-style{.sheet[open]{opacity:0;scale:.97}}}.tabbar{position:fixed;inset-inline:0;inset-block-end:0;z-index:var(--z-nav);display:flex;background:color-mix(in oklab,var(--surface) 88%,transparent);backdrop-filter:saturate(1.8) blur(16px);-webkit-backdrop-filter:saturate(1.8) blur(16px);border-block-start:1px solid var(--line);padding-block-end:env(safe-area-inset-bottom)}@media(min-width:48rem){.tabbar{display:none}}.tabbar-item{flex:1 1 0;min-block-size:var(--tap);padding-block:var(--space-2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--text-faint);font-size:var(--text-2xs);font-weight:560;text-decoration:none;-webkit-tap-highlight-color:transparent;transition:color var(--dur-1) var(--ease-out)}.tabbar-item[aria-current]{color:var(--brand)}.tabbar-item[aria-current] .icon{scale:1.06}.tabbar-item .icon{transition:scale var(--dur-2) var(--ease-spring)}body:has(.tabbar){padding-block-end:calc(var(--tap) + var(--space-4) + env(safe-area-inset-bottom))}@media(min-width:48rem){body:has(.tabbar){padding-block-end:0}}.safe-top{padding-block-start:env(safe-area-inset-top)}.safe-bottom{padding-block-end:env(safe-area-inset-bottom)}.safe-x{padding-inline:max(var(--space-gutter),env(safe-area-inset-left)) max(var(--space-gutter),env(safe-area-inset-right))}.icon{inline-size:1.25em;block-size:1.25em;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.22em}.icon-sm{inline-size:1em;block-size:1em}.icon-lg{inline-size:1.6em;block-size:1.6em;stroke-width:1.6}.icon-xl{inline-size:2.25em;block-size:2.25em;stroke-width:1.4}.icon-fill{fill:currentColor;stroke:none}.icon-muted{color:var(--text-faint)}.icon-spin{animation:dk-spin 1.1s linear infinite}.icon-tile{inline-size:40px;block-size:40px;border-radius:var(--r-sm);display:grid;place-items:center;background:var(--brand-soft);color:var(--brand);flex:0 0 auto}.icon-tile-good{background:var(--good-100);color:var(--good-700)}.icon-tile-warn{background:var(--warn-100);color:var(--warn-700)}.icon-tile-bad{background:var(--bad-100);color:var(--bad-700)}.icon-tile-lg{inline-size:52px;block-size:52px;border-radius:var(--r-md)}.emoji{font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",Twemoji Mozilla,"Android Emoji",sans-serif;font-size:1.05em;line-height:1;font-style:normal;font-weight:400;vertical-align:-.12em;display:inline-block;text-rendering:auto;-webkit-font-smoothing:auto}.emoji-lg{font-size:1.6em;vertical-align:-.2em}.emoji-xl{font-size:2.5em;vertical-align:-.24em}.emoji-hero{font-size:3.5rem;line-height:1}.emoji-tile{inline-size:40px;block-size:40px;border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--line);display:grid;place-items:center;font-size:20px;flex:0 0 auto}.emoji-tile-round{border-radius:var(--r-full)}.emoji-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:2px}.emoji-grid>button{aspect-ratio:1;border-radius:var(--r-xs);font-size:21px;line-height:1;cursor:pointer;transition:background-color var(--dur-1) var(--ease-out),scale var(--dur-1) var(--ease-spring)}.emoji-grid>button:hover{background:var(--surface-hover);scale:1.16}.reaction{display:inline-flex;align-items:center;gap:var(--space-1);min-block-size:28px;padding-inline:var(--space-2);border-radius:var(--r-full);border:1px solid var(--line);background:var(--surface);font-size:var(--text-xs);font-variant-numeric:tabular-nums;color:var(--text-muted);cursor:pointer}.reaction[aria-pressed=true]{background:var(--brand-soft);border-color:var(--brand-300);color:var(--brand-soft-text)}}@layer deck.utilities{.hidden{display:none}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.contents{display:contents}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.wrap{flex-wrap:wrap}.nowrap{flex-wrap:nowrap;white-space:nowrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-stretch{align-items:stretch}.items-baseline{align-items:baseline}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.place-center{place-items:center}.grow{flex:1 1 auto;min-inline-size:0}.shrink-0{flex:0 0 auto}.push{margin-inline-start:auto}.gap-0{gap:0}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.p-0{padding:0}.p-1{padding:var(--space-1)}.p-2{padding:var(--space-2)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.p-6{padding:var(--space-6)}.p-8{padding:var(--space-8)}.px-0{padding-inline:0}.px-1{padding-inline:var(--space-1)}.px-2{padding-inline:var(--space-2)}.px-3{padding-inline:var(--space-3)}.px-4{padding-inline:var(--space-4)}.px-6{padding-inline:var(--space-6)}.px-8{padding-inline:var(--space-8)}.py-0{padding-block:0}.py-1{padding-block:var(--space-1)}.py-2{padding-block:var(--space-2)}.py-3{padding-block:var(--space-3)}.py-4{padding-block:var(--space-4)}.py-6{padding-block:var(--space-6)}.py-8{padding-block:var(--space-8)}.m-0{margin:0}.mt-0{margin-block-start:0}.mt-1{margin-block-start:var(--space-1)}.mt-2{margin-block-start:var(--space-2)}.mt-3{margin-block-start:var(--space-3)}.mt-4{margin-block-start:var(--space-4)}.mt-6{margin-block-start:var(--space-6)}.mt-8{margin-block-start:var(--space-8)}.mb-0{margin-block-end:0}.mb-1{margin-block-end:var(--space-1)}.mb-2{margin-block-end:var(--space-2)}.mb-3{margin-block-end:var(--space-3)}.mb-4{margin-block-end:var(--space-4)}.mb-6{margin-block-end:var(--space-6)}.mb-8{margin-block-end:var(--space-8)}.mx-auto{margin-inline:auto}.w-full{inline-size:100%}.w-auto{inline-size:auto}.h-full{block-size:100%}.min-h-screen{min-block-size:100dvh}.max-w-prose{max-inline-size:var(--measure)}.max-w-sm{max-inline-size:24rem}.max-w-md{max-inline-size:34rem}.max-w-lg{max-inline-size:48rem}.square{aspect-ratio:1}.text-2xs{font-size:var(--text-2xs)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-md{font-size:var(--text-md)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.fw-normal{font-weight:400}.fw-medium{font-weight:540}.fw-semi{font-weight:620}.fw-bold{font-weight:700}.text-start{text-align:start}.text-center{text-align:center}.text-end{text-align:end}.text-muted{color:var(--text-muted)}.text-faint{color:var(--text-faint)}.text-brand{color:var(--brand)}.text-good{color:var(--good-700)}.text-warn{color:var(--warn-700)}.text-bad{color:var(--bad-700)}.text-inherit{color:inherit}.nums{font-variant-numeric:tabular-nums}.mono{font-family:var(--font-mono)}.uppercase{text-transform:uppercase;letter-spacing:.04em}.capitalize{text-transform:capitalize}.no-underline{text-decoration:none}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-inline-size:0}.clamp-2,.clamp-3{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.clamp-2{-webkit-line-clamp:2;line-clamp:2}.clamp-3{-webkit-line-clamp:3;line-clamp:3}.bg-surface{background:var(--surface)}.bg-sunken{background:var(--bg-sunken)}.bg-brand{background:var(--brand-600);color:var(--text-on-brand)}.bg-soft{background:var(--brand-soft);color:var(--brand-soft-text)}.bg-none{background:none}.border{border:1px solid var(--line)}.border-t{border-block-start:1px solid var(--line)}.border-b{border-block-end:1px solid var(--line)}.border-brand{border-color:var(--brand-400)}.border-0{border:0}.r-xs{border-radius:var(--r-xs)}.r-sm{border-radius:var(--r-sm)}.r-md{border-radius:var(--r-md)}.r-lg{border-radius:var(--r-lg)}.r-full{border-radius:var(--r-full)}.shadow-0{box-shadow:none}.shadow-1{box-shadow:var(--shadow-1)}.shadow-2{box-shadow:var(--shadow-2)}.shadow-3{box-shadow:var(--shadow-3)}.shadow-4{box-shadow:var(--shadow-4)}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.inset-0{inset:0}.z-1{z-index:1}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-clip{overflow:clip}.opacity-60{opacity:.6}.pointer-none{pointer-events:none}.no-select{-webkit-user-select:none;user-select:none}.cursor-pointer{cursor:pointer}.sr-only{position:absolute;inline-size:1px;block-size:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.skip-link{position:absolute;inset-block-start:-100%;inset-inline-start:var(--space-4);z-index:var(--z-toast);background:var(--brand-600);color:var(--text-on-brand);padding:var(--space-3) var(--space-4);border-radius:var(--r-sm)}.skip-link:focus{inset-block-start:var(--space-4)}@media(min-width:40rem){.sm\:hidden{display:none}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:row{flex-direction:row}.sm\:w-auto{inline-size:auto}.sm\:text-start{text-align:start}}@media(min-width:48rem){.md\:hidden{display:none}.md\:block{display:block}.md\:flex{display:flex}.md\:grid-d{display:grid}.md\:row{flex-direction:row}.md\:col{flex-direction:column}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}.md\:w-auto{inline-size:auto}.md\:text-center{text-align:center}.md\:p-8{padding:var(--space-8)}.md\:gap-6{gap:var(--space-6)}}@media(min-width:64rem){.lg\:hidden{display:none}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:grid-d{display:grid}.lg\:row{flex-direction:row}.lg\:gap-8{gap:var(--space-8)}}@media(pointer:fine){.touch-only{display:none}}@media(pointer:coarse){.mouse-only{display:none}}@media print{.no-print{display:none!important}}}@layer deck.components{.datefield{position:relative;display:flex;align-items:center}.datefield>.icon{position:absolute;inset-inline-start:var(--space-3);color:var(--text-faint);pointer-events:none}.datefield>.input{padding-inline-start:var(--space-10);cursor:pointer}.datefield>.datefield-clear{position:absolute;inset-inline-end:var(--space-2);inline-size:28px;block-size:28px;display:grid;place-items:center;border-radius:var(--r-full);color:var(--text-faint);cursor:pointer}.datefield>.datefield-clear:hover{background:var(--surface-hover);color:var(--text)}.datefield:not(.has-value) .datefield-clear{display:none}.datepicker{position:absolute;margin:0;inset:auto;padding:0;inline-size:max-content;max-inline-size:calc(100vw - var(--space-6));background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-4);color:var(--text);opacity:0;translate:0 -6px;transition:opacity var(--dur-2) var(--ease-out),translate var(--dur-2) var(--ease-out),overlay var(--dur-2) allow-discrete,display var(--dur-2) allow-discrete}.datepicker:popover-open{opacity:1;translate:0}@starting-style{.datepicker:popover-open{opacity:0;translate:0 -6px}}.datepicker::backdrop{background:transparent}.datepicker-layout{display:flex;flex-direction:column}@media(min-width:40rem){.datepicker-layout:has(.datepicker-presets){flex-direction:row}}.datepicker-presets{display:flex;gap:var(--space-1);padding:var(--space-2);overflow-x:auto;scrollbar-width:none;border-block-end:1px solid var(--line)}.datepicker-presets::-webkit-scrollbar{display:none}@media(min-width:40rem){.datepicker-presets{flex-direction:column;inline-size:10.5rem;overflow-x:visible;border-block-end:0;border-inline-end:1px solid var(--line);background:var(--surface-2)}}.datepicker-preset{padding:var(--space-2) var(--space-3);min-block-size:36px;border-radius:var(--r-xs);font-size:var(--text-sm);font-weight:520;color:var(--text-muted);text-align:start;white-space:nowrap;cursor:pointer;transition:background-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out)}.datepicker-preset:hover{background:var(--surface-hover);color:var(--text)}.datepicker-preset[aria-pressed=true]{background:var(--brand-soft);color:var(--brand-soft-text);font-weight:600}.datepicker-main{padding:var(--space-3)}.datepicker-head{display:flex;align-items:center;gap:var(--space-1);padding-block-end:var(--space-2)}.datepicker-title{flex:1 1 auto;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-block-size:36px;padding-inline:var(--space-3);border-radius:var(--r-sm);font-weight:620;font-size:var(--text-sm);cursor:pointer;letter-spacing:-.01em}.datepicker-title:hover{background:var(--surface-hover)}.datepicker-nav{inline-size:36px;block-size:36px;display:grid;place-items:center;border-radius:var(--r-sm);color:var(--text-muted);cursor:pointer}.datepicker-nav:hover{background:var(--surface-hover);color:var(--text)}.datepicker-nav[disabled]{opacity:.35;pointer-events:none}.datepicker-months{display:flex;gap:var(--space-5)}.datepicker-month{display:flex;flex-direction:column}.datepicker-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px}.datepicker-dow{text-align:center;font-size:var(--text-2xs);font-weight:620;color:var(--text-faint);padding-block:var(--space-2)}.datepicker-day{position:relative;inline-size:38px;block-size:38px;display:grid;place-items:center;border-radius:var(--r-sm);font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--text);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out)}@media(pointer:coarse){.datepicker-day{inline-size:42px;block-size:42px}}.datepicker-day:hover{background:var(--surface-hover)}.datepicker-day.is-outside{color:var(--text-faint);opacity:.55}.datepicker-day[disabled],.datepicker-day.is-blocked{color:var(--text-faint);opacity:.4;pointer-events:none;text-decoration:line-through}.datepicker-day.is-today:after{content:"";position:absolute;inset-block-end:5px;inline-size:4px;block-size:4px;border-radius:var(--r-full);background:var(--brand)}.datepicker-day.is-selected{background:var(--brand-600);color:var(--text-on-brand);font-weight:620}.datepicker-day.is-selected:after{background:var(--text-on-brand)}.datepicker-day.is-in-range{background:var(--brand-soft);color:var(--brand-soft-text);border-radius:0}.datepicker-day.is-range-start{border-start-end-radius:0;border-end-end-radius:0}.datepicker-day.is-range-end{border-start-start-radius:0;border-end-start-radius:0}.datepicker-day.is-range-start.is-range-end{border-radius:var(--r-sm)}.datepicker-grid:has(.is-in-range) .datepicker-day.is-in-range:first-child{border-start-start-radius:var(--r-sm);border-end-start-radius:var(--r-sm)}.datepicker-grid:has(.is-in-range) .datepicker-day.is-in-range:nth-child(7n){border-start-end-radius:var(--r-sm);border-end-end-radius:var(--r-sm)}.datepicker-day.is-preview{background:color-mix(in oklab,var(--brand-soft) 60%,transparent)}.datepicker-day:focus-visible{outline:2px solid var(--focus);outline-offset:-2px;z-index:1}.datepicker-jump{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-1);padding-block:var(--space-2)}.datepicker-jump>button{min-block-size:40px;padding-inline:var(--space-2);border-radius:var(--r-sm);font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--text-muted);cursor:pointer}.datepicker-jump>button:hover{background:var(--surface-hover);color:var(--text)}.datepicker-jump>button[aria-selected=true]{background:var(--brand-600);color:var(--text-on-brand);font-weight:620}.datepicker-time{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3);border-block-start:1px solid var(--line)}.datepicker-time .input{inline-size:auto;min-inline-size:7.5rem}.datepicker-foot{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3);border-block-start:1px solid var(--line);background:var(--surface-2)}.datepicker-readout{flex:1 1 auto;font-size:var(--text-sm);color:var(--text-muted);font-variant-numeric:tabular-nums;min-inline-size:0}@media(max-width:30rem){.datepicker{position:fixed;inset:auto 0 0;inline-size:100%;max-inline-size:100%;border-radius:var(--r-lg) var(--r-lg) 0 0;border-inline:0;border-block-end:0;translate:0 100%;padding-block-end:env(safe-area-inset-bottom);transition:translate var(--dur-3) var(--ease-out),overlay var(--dur-3) allow-discrete,display var(--dur-3) allow-discrete;opacity:1}.datepicker:popover-open{translate:0}@starting-style{.datepicker:popover-open{translate:0 100%}}.datepicker::backdrop{background:oklch(18% .02 var(--hue-neutral) / .45)}.datepicker-months{flex-direction:column}.datepicker-day{inline-size:100%}.datepicker-main{padding-inline:var(--space-4)}}}@layer deck.components{.combo{position:relative;display:flex;flex-direction:column}.combo-control{display:flex;align-items:center;gap:var(--space-2);inline-size:100%;min-block-size:var(--control-h);padding:var(--space-1) var(--space-2) var(--space-1) var(--space-3);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-sm);box-shadow:var(--shadow-1);cursor:text;transition:border-color var(--dur-1) var(--ease-out),box-shadow var(--dur-1) var(--ease-out)}.combo-control:hover{border-color:var(--ink-400)}.combo:has(.combo-input:focus) .combo-control,.combo-control:focus-within{border-color:var(--focus);box-shadow:var(--ring)}.combo.is-invalid .combo-control{border-color:var(--bad-500)}.combo.is-disabled .combo-control{background:var(--bg-sunken);color:var(--text-faint);pointer-events:none}.combo-input{flex:1 1 6rem;min-inline-size:4rem;border:0;outline:none;background:none;padding:var(--space-2) 0;font-size:var(--text-base);color:inherit}@media(pointer:coarse){.combo-input{font-size:16px}}.combo-input::placeholder{color:var(--text-faint)}.combo-toggle{inline-size:30px;block-size:30px;display:grid;place-items:center;border-radius:var(--r-xs);color:var(--text-faint);cursor:pointer;flex:0 0 auto}.combo-toggle:hover{background:var(--surface-hover);color:var(--text)}.combo-toggle .icon{transition:rotate var(--dur-2) var(--ease-out)}.combo.is-open .combo-toggle .icon{rotate:180deg}.combo-clear{color:var(--text-faint)}.combo-tokens{display:contents}.combo-token{display:inline-flex;align-items:center;gap:var(--space-1);min-block-size:26px;padding-inline:var(--space-1) var(--space-2);padding-inline-start:var(--space-2);border-radius:var(--r-xs);background:var(--brand-soft);color:var(--brand-soft-text);font-size:var(--text-sm);font-weight:540;max-inline-size:14rem;flex:0 0 auto}.combo-token>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.combo-token>button{display:grid;place-items:center;inline-size:18px;block-size:18px;border-radius:var(--r-full);opacity:.65;cursor:pointer;flex:0 0 auto}.combo-token>button:hover{opacity:1;background:color-mix(in oklab,currentColor 16%,transparent)}.combo-count{font-size:var(--text-xs);font-weight:620;color:var(--text-muted);flex:0 0 auto}.combo-list{position:absolute;inset-block-start:calc(100% + 4px);inset-inline:0;z-index:var(--z-modal);margin:0;padding:var(--space-1);max-block-size:min(20rem,50dvh);overflow-y:auto;overscroll-behavior:contain;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-4);display:none}.combo.is-open .combo-list{display:block;animation:dk-combo-in var(--dur-2) var(--ease-out)}@keyframes dk-combo-in{0%{opacity:0;translate:0 -4px}}.combo-list.is-above{inset-block:auto calc(100% + 4px)}.combo-option{display:flex;align-items:center;gap:var(--space-3);inline-size:100%;min-block-size:40px;padding:var(--space-2) var(--space-3);border-radius:var(--r-xs);font-size:var(--text-sm);color:var(--text);text-align:start;cursor:pointer;scroll-margin-block:var(--space-1)}.combo-option .combo-option-main{flex:1 1 auto;min-inline-size:0;display:flex;flex-direction:column;gap:1px}.combo-option .combo-option-sub{font-size:var(--text-xs);color:var(--text-muted)}.combo-option .combo-option-trail{color:var(--text-faint);font-size:var(--text-xs);flex:0 0 auto}.combo-option.is-active{background:var(--surface-hover)}.combo-option[aria-selected=true]{background:var(--brand-soft);color:var(--brand-soft-text);font-weight:560}.combo-option[aria-selected=true].is-active{background:color-mix(in oklab,var(--brand-soft) 78%,var(--brand-300))}.combo-option[aria-disabled=true]{opacity:.45;pointer-events:none}.combo-option .combo-check{margin-inline-start:auto;opacity:0;flex:0 0 auto}.combo-option[aria-selected=true] .combo-check{opacity:1}.combo-option mark{background:none;color:inherit;font-weight:700;padding:0;text-decoration:underline;text-decoration-color:color-mix(in oklab,var(--brand) 55%,transparent);text-underline-offset:.16em}.combo-group{padding:var(--space-3) var(--space-3) var(--space-1);font-size:var(--text-2xs);font-weight:700;color:var(--text-faint);position:sticky;inset-block-start:calc(var(--space-1) * -1);background:var(--surface)}.combo-sep{block-size:1px;background:var(--line);margin:var(--space-1) 0}.combo-empty,.combo-loading{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-6) var(--space-4);font-size:var(--text-sm);color:var(--text-muted);text-align:center}.combo-create{position:sticky;inset-block-end:calc(var(--space-1) * -1);background:var(--surface);border-block-start:1px solid var(--line);margin:var(--space-1) calc(var(--space-1) * -1) calc(var(--space-1) * -1);padding:var(--space-1)}.combo-create .combo-option{color:var(--brand);font-weight:560}.combo-hint{display:none;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-block-start:1px solid var(--line);font-size:var(--text-2xs);color:var(--text-faint)}@media(pointer:fine){.combo.is-open .combo-hint{display:flex}}@media(max-width:30rem){.combo.is-open .combo-list{position:fixed;inset:auto 0 0;max-block-size:70dvh;border-radius:var(--r-lg) var(--r-lg) 0 0;border-inline:0;border-block-end:0;padding-block-end:calc(var(--space-2) + env(safe-area-inset-bottom));animation:dk-combo-up var(--dur-3) var(--ease-out)}.combo-option{min-block-size:var(--tap)}@keyframes dk-combo-up{0%{translate:0 100%}}}}@layer deck.components{.dg-wrap{--dg-pin-start: 0px;--dg-pin-end: 0px;--dg-row-h: 44px;position:relative;inline-size:100%;max-block-size:var(--dg-height, 70dvh);overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md)}.dg{inline-size:100%;border-collapse:separate;border-spacing:0;font-size:var(--text-sm);font-variant-numeric:tabular-nums}.dg :is(th,td){padding:0 var(--space-4);block-size:var(--dg-row-h);text-align:start;white-space:nowrap;background:var(--surface);border-block-end:1px solid var(--line)}.dg thead th{position:sticky;inset-block-start:0;z-index:3;background:var(--surface-2);font-size:var(--text-xs);font-weight:620;color:var(--text-muted);border-block-end:1px solid var(--line-strong)}.dg :is(th,td).dg-pin-start{position:sticky;inset-inline-start:0;z-index:2}.dg thead th.dg-pin-start{z-index:4}.dg :is(th,td).dg-pin-start-2{position:sticky;inset-inline-start:var(--dg-pin-start);z-index:2}.dg thead th.dg-pin-start-2{z-index:4}.dg :is(th,td).dg-pin-end{position:sticky;inset-inline-end:0;z-index:2}.dg thead th.dg-pin-end{z-index:4}.dg-wrap{--dg-pin-shadow-start: 6px 0 8px -6px oklch(20% .03 var(--hue-neutral) / .28);--dg-pin-shadow-end: -6px 0 8px -6px oklch(20% .03 var(--hue-neutral) / .28);--dg-pin-clip-start: inset(0 -12px 0 0);--dg-pin-clip-end: inset(0 0 0 -12px)}@supports (container-type: scroll-state){.dg-wrap{container-type:scroll-state}@container scroll-state(scrollable: inline-start){.dg :is(th,td).dg-pin-start:last-of-type,.dg :is(th,td).dg-pin-start-2,.dg :is(th,td).dg-pin-start:not(:has(~.dg-pin-start-2)){box-shadow:var(--dg-pin-shadow-start);clip-path:var(--dg-pin-clip-start)}}@container scroll-state(scrollable: inline-end){.dg :is(th,td).dg-pin-end{box-shadow:var(--dg-pin-shadow-end);clip-path:var(--dg-pin-clip-end)}}}@supports not (container-type: scroll-state){.dg-wrap.is-scrolled-x .dg :is(th,td).dg-pin-start:last-of-type,.dg-wrap.is-scrolled-x .dg :is(th,td).dg-pin-start-2,.dg-wrap.is-scrolled-x .dg :is(th,td).dg-pin-start:not(:has(~.dg-pin-start-2)){box-shadow:var(--dg-pin-shadow-start);clip-path:var(--dg-pin-clip-start)}.dg-wrap.is-scrolled-end .dg :is(th,td).dg-pin-end{box-shadow:var(--dg-pin-shadow-end);clip-path:var(--dg-pin-clip-end)}}.dg tbody tr:hover :is(td){background:var(--surface-hover)}.dg tbody tr:last-child td{border-block-end:0}.dg tbody tr[aria-selected=true] td{background:var(--brand-soft);color:var(--brand-soft-text)}.dg tbody tr[aria-selected=true]:hover td{background:color-mix(in oklab,var(--brand-soft) 80%,var(--brand-200))}.dg-zebra tbody tr:nth-child(2n) td{background:var(--surface-2)}.dg-zebra tbody tr:nth-child(2n):hover td{background:var(--surface-hover)}.dg tbody tr.is-new td{animation:dg-flash 1.4s var(--ease-out)}@keyframes dg-flash{0%{background:var(--good-100)}}.dg .dg-num{text-align:end}.dg .dg-center{text-align:center}.dg .dg-wrap-text{white-space:normal;min-inline-size:16rem}.dg .dg-tight{padding-inline:var(--space-2)}.dg .dg-check{inline-size:44px;padding-inline:0;text-align:center}.dg .dg-check .check{justify-content:center;min-block-size:auto;padding:0}.dg .dg-actions{inline-size:1%;padding-inline:var(--space-2)}.dg-compact{--dg-row-h: 34px;font-size:var(--text-xs)}.dg-compact :is(th,td){padding-inline:var(--space-3)}.dg-comfy{--dg-row-h: 56px}.dg-sort{display:inline-flex;align-items:center;gap:var(--space-2);inline-size:100%;block-size:100%;color:inherit;font:inherit;cursor:pointer;-webkit-user-select:none;user-select:none}.dg-num .dg-sort{justify-content:flex-end}.dg-sort:hover{color:var(--text)}.dg-sort .dg-sort-icon{inline-size:14px;block-size:14px;opacity:0;flex:0 0 auto;transition:opacity var(--dur-1) var(--ease-out),rotate var(--dur-2) var(--ease-out)}.dg-sort:hover .dg-sort-icon{opacity:.4}th[aria-sort] .dg-sort{color:var(--brand)}th[aria-sort] .dg-sort-icon{opacity:1}th[aria-sort=descending] .dg-sort-icon{rotate:180deg}.dg-resize{position:absolute;inset-block:0;inset-inline-end:-3px;inline-size:7px;cursor:col-resize;z-index:1;touch-action:none}.dg-resize:after{content:"";position:absolute;inset-block:8px;inset-inline-start:3px;inline-size:1px;background:var(--line-strong);opacity:0;transition:opacity var(--dur-1) var(--ease-out)}.dg-resize:hover:after,.dg-wrap.is-resizing .dg-resize:after{opacity:1;background:var(--brand)}.dg thead th{position:sticky}.dg thead th:has(.dg-resize){position:sticky}.dg tfoot td{position:sticky;inset-block-end:0;z-index:3;background:var(--surface-2);border-block-start:1px solid var(--line-strong);border-block-end:0;font-weight:640;color:var(--text)}.dg tfoot td.dg-pin-start{z-index:4}.dg-toolbar{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;padding-block-end:var(--space-3)}.dg-toolbar .search{flex:1 1 14rem}.dg-statusbar{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;padding-block-start:var(--space-3);font-size:var(--text-sm);color:var(--text-muted)}.dg-selection{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--r-sm);background:var(--brand-soft);color:var(--brand-soft-text);font-size:var(--text-sm);font-weight:560;animation:dk-combo-in var(--dur-2) var(--ease-out)}.dg-wrap.is-loading{pointer-events:none}.dg-wrap.is-loading .dg tbody{opacity:.45}.dg-wrap.is-loading:after{content:"";position:absolute;inset-block-start:0;inset-inline:0;block-size:2px;background:linear-gradient(90deg,transparent,var(--brand-500),transparent);background-size:40% 100%;background-repeat:no-repeat;animation:dg-bar 1.1s var(--ease-in-out) infinite;z-index:5}@keyframes dg-bar{0%{background-position:-40% 0}to{background-position:140% 0}}.dg-empty td{block-size:auto;padding:0}@media(max-width:44rem){.dg-cards-wrap{max-block-size:none;overflow:visible;border:0;background:none}.dg-cards thead,.dg-cards tfoot{display:none}.dg-cards,.dg-cards tbody,.dg-cards tr,.dg-cards td{display:block;inline-size:100%}.dg-cards tr{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);margin-block-end:var(--space-3);overflow:hidden}.dg-cards td{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);block-size:auto;min-block-size:var(--tap);padding:var(--space-2) var(--space-4);white-space:normal;text-align:end;position:static!important;box-shadow:none!important;clip-path:none!important}.dg-cards td:before{content:attr(data-label);font-size:var(--text-xs);font-weight:620;color:var(--text-muted);text-align:start;flex:0 0 auto}.dg-cards td:empty{display:none}.dg-cards td.dg-num{text-align:end}}}@layer deck.components{.toast-region{position:fixed;z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-2);inline-size:min(23rem,calc(100vw - var(--space-6)));pointer-events:none;inset-block-end:calc(var(--space-4) + env(safe-area-inset-bottom));inset-inline-end:var(--space-4)}body:has(.tabbar) .toast-region{inset-block-end:calc(var(--space-4) + var(--tap) + env(safe-area-inset-bottom))}@media(min-width:48rem){body:has(.tabbar) .toast-region{inset-block-end:calc(var(--space-4) + env(safe-area-inset-bottom))}}.toast-region-start{inset-inline:var(--space-4) auto}.toast-region-center{inset-inline:0;margin-inline:auto}.toast-region-top{inset-block:calc(var(--space-4) + env(safe-area-inset-top)) auto;flex-direction:column-reverse}@media(max-width:30rem){.toast-region{inset-inline:var(--space-3);inline-size:auto}}.toast{--toast-accent: var(--ink-400);position:relative;display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-4);font-size:var(--text-sm);pointer-events:auto;overflow:hidden;touch-action:pan-y;transform-origin:bottom center;transition:translate var(--dur-3) var(--ease-out),scale var(--dur-3) var(--ease-out),opacity var(--dur-2) var(--ease-out),margin var(--dur-3) var(--ease-out)}.toast:before{content:"";position:absolute;inset-block:0;inset-inline-start:0;inline-size:3px;background:var(--toast-accent)}.toast-icon{color:var(--toast-accent);margin-block-start:1px;flex:0 0 auto}.toast-main{flex:1 1 auto;min-inline-size:0;display:flex;flex-direction:column;gap:2px}.toast-title{font-weight:620}.toast-text{color:var(--text-muted)}.toast-close{flex:0 0 auto;inline-size:26px;block-size:26px;display:grid;place-items:center;border-radius:var(--r-full);color:var(--text-faint);cursor:pointer;margin-block-start:-2px;margin-inline-end:-4px}.toast-close:hover{background:var(--surface-hover);color:var(--text)}.toast-actions{display:flex;gap:var(--space-2);margin-block-start:var(--space-2)}.toast-action{font-size:var(--text-sm);font-weight:620;color:var(--brand);cursor:pointer;padding:var(--space-1) 0}.toast-action:hover{text-decoration:underline}.toast-good{--toast-accent: var(--good-500)}.toast-warn{--toast-accent: var(--warn-500)}.toast-bad{--toast-accent: var(--bad-500)}.toast-info,.toast-loading{--toast-accent: var(--brand-500)}.toast-timer{position:absolute;inset-block-end:0;inset-inline-start:0;block-size:2px;inline-size:100%;background:var(--toast-accent);opacity:.5;transform-origin:left center;animation:dk-toast-timer linear forwards;animation-duration:var(--toast-duration, 5s)}@keyframes dk-toast-timer{to{scale:0 1}}.toast-region:is(:hover,:focus-within) .toast-timer{animation-play-state:paused}.toast{animation:dk-toast-in var(--dur-3) var(--ease-spring)}@keyframes dk-toast-in{0%{opacity:0;translate:0 16px;scale:.94}}.toast-region-top .toast{animation-name:dk-toast-in-top}@keyframes dk-toast-in-top{0%{opacity:0;translate:0 -16px;scale:.94}}.toast.is-leaving{opacity:0;scale:.94;translate:var(--toast-exit-x, 0) 8px;margin-block-end:calc((var(--toast-h, 60px) + var(--space-2)) * -1);pointer-events:none}@supports (animation-delay: calc(sibling-index()*1ms)){.toast-region-stacked .toast{--i: calc(sibling-index() - 1) }}@supports not (animation-delay: calc(sibling-index()*1ms)){.toast-region-stacked .toast:nth-child(1){--i: 0}.toast-region-stacked .toast:nth-child(2){--i: 1}.toast-region-stacked .toast:nth-child(3){--i: 2}.toast-region-stacked .toast:nth-child(4){--i: 3}.toast-region-stacked .toast:nth-child(5){--i: 4}.toast-region-stacked .toast:nth-child(6){--i: 5}.toast-region-stacked .toast:nth-child(7){--i: 6}.toast-region-stacked .toast:nth-child(8){--i: 7}}.toast-region-stacked .toast{position:absolute;inset-inline:0;inset-block-end:0;translate:0 calc(var(--i) * -8px);scale:calc(1 - var(--i) * .04);opacity:calc(1 - var(--i) * .18);z-index:calc(100 - var(--i))}.toast-region-stacked .toast:nth-child(n+4){opacity:0;pointer-events:none}.toast-region-stacked:is(:hover,:focus-within) .toast{translate:0 calc(var(--i) * (var(--toast-h, 68px) + var(--space-2)) * -1);scale:1;opacity:1}.toast.is-dragging{transition:none;cursor:grabbing;-webkit-user-select:none;user-select:none}.toast-undo{--toast-accent: var(--ink-500)}.toast-undo .toast-action{color:var(--text)}@media(prefers-reduced-motion:reduce){.toast,.toast-region-stacked .toast{animation:none;transition:opacity var(--dur-1) linear}.toast-timer{animation:none;display:none}}}@layer deck.components{.chart{--c1: var(--brand-500);--c2: oklch(64% .13 calc(var(--hue-brand) + 48));--c3: oklch(70% .14 calc(var(--hue-brand) + 96));--c4: oklch(62% .13 calc(var(--hue-brand) - 52));--c5: oklch(74% .12 calc(var(--hue-brand) + 148));--c6: oklch(56% .1 calc(var(--hue-brand) + 200));--chart-h: 240px;--chart-grid: color-mix(in oklab, var(--line) 90%, transparent);display:flex;flex-direction:column;gap:var(--space-3);min-inline-size:0}.chart-sm{--chart-h: 150px}.chart-lg{--chart-h: 340px}.chart-head{display:flex;align-items:baseline;gap:var(--space-3);flex-wrap:wrap}.chart-title{font-size:var(--text-sm);font-weight:620}.chart-note{font-size:var(--text-xs);color:var(--text-muted)}.chart-legend{display:flex;flex-wrap:wrap;gap:var(--space-3);font-size:var(--text-xs);color:var(--text-muted)}.chart-legend>*{display:inline-flex;align-items:center;gap:var(--space-2)}.chart-legend>*:before{content:"";inline-size:10px;block-size:10px;border-radius:3px;background:var(--series, var(--c1));flex:0 0 auto}.chart-legend [aria-pressed=false]{opacity:.4}.chart-legend button{cursor:pointer}.chart-columns{display:flex;align-items:flex-end;gap:var(--gap, 6px);block-size:var(--chart-h);padding-block-end:22px;position:relative;background:repeating-linear-gradient(to top,var(--chart-grid) 0 1px,transparent 1px calc((100% - 22px)/4));background-position:0 -22px;background-size:100% calc(100% - 22px);background-repeat:no-repeat}.chart-col{flex:1 1 0;min-inline-size:6px;block-size:calc(var(--value) * 1%);background:var(--series, var(--c1));border-radius:var(--r-xs) var(--r-xs) 2px 2px;position:relative;transform-origin:bottom;animation:chart-rise var(--dur-3) var(--ease-out);transition:filter var(--dur-1) var(--ease-out)}.chart-col:hover{filter:brightness(1.08) saturate(1.1)}@supports (color: contrast-color(red)){.chart-col,.chart-col-stack>span,.chart-bar-fill,.chart-meter>span{color:contrast-color(var(--series, var(--c1)))}}.chart-col[data-label]:after{content:attr(data-label);position:absolute;inset-block-start:100%;inset-inline:0;padding-block-start:6px;text-align:center;font-size:var(--text-2xs);color:var(--text-faint);white-space:nowrap}.chart-col[data-value]:before{content:attr(data-value);position:absolute;inset-block-end:calc(100% + 6px);inset-inline-start:50%;translate:-50% 0;padding:3px 7px;background:var(--ink-900);color:var(--ink-50);border-radius:var(--r-xs);font-size:var(--text-2xs);font-weight:620;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--dur-1) var(--ease-out);z-index:2}.chart-col:hover:before{opacity:1}@keyframes chart-rise{0%{scale:1 0}}.chart-col-stack{flex:1 1 0;display:flex;flex-direction:column-reverse;block-size:calc(var(--value) * 1%);border-radius:var(--r-xs) var(--r-xs) 2px 2px;overflow:hidden;position:relative;animation:chart-rise var(--dur-3) var(--ease-out)}.chart-col-stack>span{block-size:calc(var(--part) * 1%);background:var(--series, var(--c1))}.chart-group{flex:1 1 0;display:flex;align-items:flex-end;gap:2px;block-size:100%;position:relative}.chart-group>.chart-col{border-radius:2px 2px 1px 1px}.chart-bars{display:flex;flex-direction:column;gap:var(--space-3)}.chart-bar{display:grid;grid-template-columns:minmax(4.5rem,auto) 1fr auto;align-items:center;gap:var(--space-3);font-size:var(--text-sm)}.chart-bar-label{color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chart-bar-track{block-size:10px;border-radius:var(--r-full);background:var(--bg-sunken);overflow:hidden}.chart-bar-fill{display:block;block-size:100%;inline-size:calc(var(--value) * 1%);border-radius:var(--r-full);background:var(--series, var(--c1));transform-origin:left;animation:chart-grow var(--dur-3) var(--ease-out)}.chart-bar-value{font-variant-numeric:tabular-nums;font-weight:600;color:var(--text)}@keyframes chart-grow{0%{scale:0 1}}.chart-svg{inline-size:100%;block-size:var(--chart-h);overflow:visible}.chart-line{fill:none;stroke:var(--series, var(--c1));stroke-width:var(--stroke, 2);stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;stroke-dasharray:1200;stroke-dashoffset:1200;animation:chart-draw 1s var(--ease-out) forwards}@keyframes chart-draw{to{stroke-dashoffset:0}}.chart-line-dashed{stroke-dasharray:5 4;animation:none;stroke-dashoffset:0;opacity:.6}.chart-area{fill:var(--series, var(--c1));opacity:.14;stroke:none;animation:chart-fade var(--dur-3) var(--ease-out)}@keyframes chart-fade{0%{opacity:0}}.chart-dot{fill:var(--surface);stroke:var(--series, var(--c1));stroke-width:2;vector-effect:non-scaling-stroke}.chart-dot-active{fill:var(--series, var(--c1))}.chart-gridline{stroke:var(--chart-grid);stroke-width:1;vector-effect:non-scaling-stroke}.chart-baseline{stroke:var(--line-strong);stroke-width:1;vector-effect:non-scaling-stroke}.chart-x{display:flex;justify-content:space-between;font-size:var(--text-2xs);color:var(--text-faint);padding-block-start:var(--space-2)}.chart-y{display:flex;flex-direction:column-reverse;justify-content:space-between;font-size:var(--text-2xs);color:var(--text-faint);font-variant-numeric:tabular-nums;text-align:end;padding-inline-end:var(--space-2);min-inline-size:2.5rem}.chart-plot{display:grid;grid-template-columns:auto 1fr}.sparkline{inline-size:var(--spark-w, 88px);block-size:var(--spark-h, 28px);overflow:visible;vertical-align:middle}.sparkline .chart-line{stroke-width:1.75;animation:none;stroke-dashoffset:0}.sparkline-good .chart-line{stroke:var(--good-500)}.sparkline-bad .chart-line{stroke:var(--bad-500)}.donut{--size: 128px;--thickness: 18px;inline-size:var(--size);block-size:var(--size);border-radius:var(--r-full);background:conic-gradient(var(--stops, var(--c1) 0 100%));mask:radial-gradient(farthest-side,transparent calc(100% - var(--thickness)),#000 calc(100% - var(--thickness) + 1px));-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - var(--thickness)),#000 calc(100% - var(--thickness) + 1px));animation:dk-spin-in var(--dur-3) var(--ease-out)}@keyframes dk-spin-in{0%{rotate:-40deg;opacity:0}}.donut-wrap{position:relative;display:inline-grid;place-items:center}.donut-center{position:absolute;display:grid;place-items:center;text-align:center;line-height:1.15}.donut-center .donut-value{font-size:var(--text-xl);font-weight:660;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.donut-center .donut-label{font-size:var(--text-2xs);color:var(--text-muted)}.chart-meter{display:flex;block-size:12px;border-radius:var(--r-full);overflow:hidden;background:var(--bg-sunken)}.chart-meter>span{inline-size:calc(var(--value) * 1%);background:var(--series, var(--c1));transition:inline-size var(--dur-3) var(--ease-out)}.chart-meter>span+span{border-inline-start:1px solid var(--surface)}.chart-heat{display:grid;grid-template-columns:repeat(var(--cols, 7),1fr);gap:3px}.chart-heat>*{aspect-ratio:1;border-radius:3px;background:color-mix(in oklab,var(--c1) calc(var(--value) * 1%),var(--bg-sunken))}.chart-heat>*:hover{outline:2px solid var(--brand);outline-offset:1px}.s1{--series: var(--c1)}.s2{--series: var(--c2)}.s3{--series: var(--c3)}.s4{--series: var(--c4)}.s5{--series: var(--c5)}.s6{--series: var(--c6)}.s-good{--series: var(--good-500)}.s-warn{--series: var(--warn-500)}.s-bad{--series: var(--bad-500)}.s-muted{--series: var(--ink-300)}@media(prefers-reduced-motion:reduce){.chart-col,.chart-col-stack,.chart-bar-fill,.chart-line,.chart-area,.donut{animation:none}.chart-line{stroke-dashoffset:0}}}@layer deck.motion{:root{--ease-in: cubic-bezier(.55, 0, 1, .45);--ease-emphasized: cubic-bezier(.2, 0, 0, 1);--ease-decelerate: cubic-bezier(0, 0, .2, 1);--ease-accelerate: cubic-bezier(.4, 0, 1, 1);--ease-bounce: linear(0, .004 2%, .016 4%, .062 8%, .137 12%, .5 24%, .68 28%, .824 32%, .93 36%, .995 40%, 1.02 44%, 1.01 52%, 1 60%);--ease-overshoot: linear(0, .22 8%, .58 16%, .87 24%, 1.06 32%, 1.11 38%, 1.08 46%, 1.02 58%, 1);--ease-snap: linear(0, .48 12%, .82 22%, .97 32%, 1.02 42%, 1);--dur-0: 0ms;--dur-4: .42s;--dur-5: .62s;--dur-slow: .9s;--stagger-step: 45ms;--travel: 12px}.transition{transition:all var(--dur-2) var(--ease-out)}.transition-colors{transition:background-color var(--dur-1) var(--ease-out),border-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out),fill var(--dur-1) var(--ease-out),stroke var(--dur-1) var(--ease-out)}.transition-move{transition:translate var(--dur-2) var(--ease-out),scale var(--dur-2) var(--ease-out),rotate var(--dur-2) var(--ease-out)}.transition-size{transition:inline-size var(--dur-3) var(--ease-out),block-size var(--dur-3) var(--ease-out)}.transition-opacity{transition:opacity var(--dur-2) var(--ease-out)}.dur-1{transition-duration:var(--dur-1);animation-duration:var(--dur-1)}.dur-2{transition-duration:var(--dur-2);animation-duration:var(--dur-2)}.dur-3{transition-duration:var(--dur-3);animation-duration:var(--dur-3)}.dur-4{transition-duration:var(--dur-4);animation-duration:var(--dur-4)}.dur-5{transition-duration:var(--dur-5);animation-duration:var(--dur-5)}.ease-out{transition-timing-function:var(--ease-out);animation-timing-function:var(--ease-out)}.ease-in{transition-timing-function:var(--ease-in);animation-timing-function:var(--ease-in)}.ease-spring{transition-timing-function:var(--ease-spring);animation-timing-function:var(--ease-spring)}.ease-bounce{transition-timing-function:var(--ease-bounce);animation-timing-function:var(--ease-bounce)}.ease-overshoot{transition-timing-function:var(--ease-overshoot);animation-timing-function:var(--ease-overshoot)}.ease-linear{transition-timing-function:linear;animation-timing-function:linear}.delay-1{transition-delay:60ms;animation-delay:60ms}.delay-2{transition-delay:.14s;animation-delay:.14s}.delay-3{transition-delay:.26s;animation-delay:.26s}.no-motion{transition:none!important;animation:none!important}.will-move:is(:hover,:focus-within,.is-animating){will-change:translate,scale,opacity}@media(prefers-reduced-motion:no-preference){.enter{animation:dk-fade var(--dur-3) var(--ease-out) both}.enter-rise{animation:dk-rise var(--dur-3) var(--ease-out) both}.enter-drop{animation:dk-drop var(--dur-3) var(--ease-out) both}.enter-start{animation:dk-in-start var(--dur-3) var(--ease-out) both}.enter-end{animation:dk-in-end var(--dur-3) var(--ease-out) both}.enter-pop{animation:dk-pop var(--dur-3) var(--ease-spring) both}.enter-blur{animation:dk-blur var(--dur-4) var(--ease-out) both}@keyframes dk-fade{0%{opacity:0}}@keyframes dk-rise{0%{opacity:0;translate:0 var(--travel)}}@keyframes dk-drop{0%{opacity:0;translate:0 calc(var(--travel) * -1)}}@keyframes dk-in-start{0%{opacity:0;translate:calc(var(--travel) * -1.6) 0}}@keyframes dk-in-end{0%{opacity:0;translate:calc(var(--travel) * 1.6) 0}}@keyframes dk-pop{0%{opacity:0;scale:.92}}@keyframes dk-blur{0%{opacity:0;filter:blur(8px);scale:1.01}}@supports (animation-delay: calc(sibling-index()*1ms)){.stagger>*{animation-delay:calc((sibling-index() - 1) * var(--stagger-step))}}@supports not (animation-delay: calc(sibling-index()*1ms)){.stagger>*{animation-delay:calc(var(--n, 0) * var(--stagger-step))}.stagger>:nth-child(1){--n: 0}.stagger>:nth-child(2){--n: 1}.stagger>:nth-child(3){--n: 2}.stagger>:nth-child(4){--n: 3}.stagger>:nth-child(5){--n: 4}.stagger>:nth-child(6){--n: 5}.stagger>:nth-child(7){--n: 6}.stagger>:nth-child(8){--n: 7}.stagger>:nth-child(9){--n: 8}.stagger>:nth-child(10){--n: 9}.stagger>:nth-child(11){--n: 10}.stagger>:nth-child(12){--n: 11}.stagger>:nth-child(n+13){--n: 11}}.stagger-fast{--stagger-step: 28ms}.stagger-slow{--stagger-step: 80ms}@supports (animation-timeline: view()){.reveal{animation:dk-rise linear both;animation-timeline:view();animation-range:entry 8% cover 26%}.reveal-fade{animation-name:dk-fade}.reveal-pop{animation-name:dk-pop}.reveal-late{animation-range:entry 20% cover 42%}.scroll-progress{position:fixed;inset-block-start:0;inset-inline:0;block-size:3px;background:var(--brand-500);transform-origin:left center;z-index:var(--z-toast);animation:dk-scale-x linear both;animation-timeline:scroll(root block)}@keyframes dk-scale-x{0%{scale:0 1}to{scale:1 1}}.shrink-on-scroll{animation:dk-shrink linear both;animation-timeline:scroll(root block);animation-range:0 120px}@keyframes dk-shrink{to{--control-h-lg: 42px;box-shadow:var(--shadow-2)}}}@supports not (animation-timeline: view()){.reveal,.reveal-fade,.reveal-pop{opacity:0}.reveal.is-revealed{animation:dk-rise var(--dur-4) var(--ease-out) both}.reveal-fade.is-revealed{animation:dk-fade var(--dur-4) var(--ease-out) both}.reveal-pop.is-revealed{animation:dk-pop var(--dur-4) var(--ease-spring) both}}.shake{animation:dk-shake .42s var(--ease-in-out)}@keyframes dk-shake{10%,90%{translate:-2px 0}20%,80%{translate:4px 0}30%,50%,70%{translate:-6px 0}40%,60%{translate:6px 0}}.field.is-invalid:not(.was-shaken) :is(.input,.textarea,.select,.combo-control){animation:dk-shake .42s var(--ease-in-out)}.flash{animation:dk-flash 1.2s var(--ease-out)}@keyframes dk-flash{0%{background-color:var(--brand-soft)}to{background-color:transparent}}.flash-good{animation:dk-flash-good 1.4s var(--ease-out)}@keyframes dk-flash-good{0%{background-color:var(--good-100)}to{background-color:transparent}}.pulse{animation:dk-pulse 2s var(--ease-in-out) infinite}@keyframes dk-pulse{50%{opacity:.55}}.ping{position:relative}.ping:after{content:"";position:absolute;inset:0;border-radius:inherit;background:currentColor;animation:dk-ping 1.8s var(--ease-out) infinite;pointer-events:none}@keyframes dk-ping{0%{opacity:.6;scale:1}to{opacity:0;scale:2.2}}.nudge{animation:dk-nudge 1.6s var(--ease-in-out) infinite}@keyframes dk-nudge{50%{translate:4px 0}}.lift{transition:translate var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.lift:hover{translate:0 -2px;box-shadow:var(--shadow-3)}.lift:active{translate:0 0;box-shadow:var(--shadow-1)}.press{transition:scale var(--dur-1) var(--ease-out)}.press:active{scale:.97}.sweep{position:relative;text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-size:0 1.5px;background-position:0 100%;background-repeat:no-repeat;transition:background-size var(--dur-2) var(--ease-out);padding-block-end:1px}.sweep:hover,.sweep:focus-visible{background-size:100% 1.5px}.btn:hover .icon-follow,.list-row:hover .icon-follow,.card-link:hover .icon-follow{translate:3px 0}.icon-follow{transition:translate var(--dur-2) var(--ease-spring)}.ripple{position:relative;overflow:hidden}.ripple>.ripple-ink{position:absolute;inset-block-start:var(--ry, 50%);inset-inline-start:var(--rx, 50%);inline-size:8px;block-size:8px;margin:-4px 0 0 -4px;border-radius:var(--r-full);background:currentColor;opacity:.28;pointer-events:none;animation:dk-ripple .52s var(--ease-out) forwards}@keyframes dk-ripple{to{scale:26;opacity:0}}.expand{block-size:0;overflow:hidden;transition:block-size var(--dur-3) var(--ease-out),opacity var(--dur-2) var(--ease-out);opacity:0}.expand.is-open{block-size:auto;opacity:1}.fade-swap{transition:opacity var(--dur-2) var(--ease-out),display var(--dur-2) allow-discrete}.fade-swap[hidden]{opacity:0}@starting-style{.fade-swap:not([hidden]){opacity:0}}.marquee{display:flex;overflow:hidden;gap:var(--space-8);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}.marquee-track{display:flex;gap:var(--space-8);flex:0 0 auto;padding-inline-end:var(--space-8);animation:dk-marquee var(--marquee-dur, 26s) linear infinite;white-space:nowrap}.marquee:hover .marquee-track{animation-play-state:paused}@keyframes dk-marquee{to{translate:-100% 0}}.tick{transition:translate var(--dur-2) var(--ease-spring)}.tick.is-up{animation:dk-tick-up var(--dur-3) var(--ease-out)}.tick.is-down{animation:dk-tick-down var(--dur-3) var(--ease-out)}@keyframes dk-tick-up{0%{translate:0 6px;opacity:0;color:var(--good-500)}}@keyframes dk-tick-down{0%{translate:0 -6px;opacity:0;color:var(--bad-500)}}}::view-transition-group(root){animation-duration:var(--dur-3)}::view-transition-old(root){animation:dk-vt-out var(--dur-2) var(--ease-in) both}::view-transition-new(root){animation:dk-vt-in var(--dur-3) var(--ease-out) both}@keyframes dk-vt-out{to{opacity:0;translate:0 -6px}}@keyframes dk-vt-in{0%{opacity:0;translate:0 8px}}html[data-vt=back]::view-transition-old(root){animation-name:dk-vt-out-back}html[data-vt=back]::view-transition-new(root){animation-name:dk-vt-in-back}@keyframes dk-vt-out-back{to{opacity:0;translate:6% 0}}@keyframes dk-vt-in-back{0%{opacity:0;translate:-6% 0}}.vt-hold{view-transition-name:var(--vt)}.vt-header{view-transition-name:dk-header}.vt-main{view-transition-name:dk-main}.vt-tabbar{view-transition-name:dk-tabbar}::view-transition-group(dk-header),::view-transition-group(dk-tabbar){animation-duration:var(--dur-1)}::view-transition-old(dk-header),::view-transition-new(dk-header),::view-transition-old(dk-tabbar),::view-transition-new(dk-tabbar){animation:none;mix-blend-mode:normal}@media(prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation-duration:1ms!important}}}@layer deck.layout{.cq{container-type:inline-size}.cq-size{container-type:size}.cq-normal{container-type:normal}.cq-panel{container:panel / inline-size}.cq-pane{container:pane / inline-size}.cq-row{container:row / inline-size}.cq-shell{container:shell / inline-size}.card.cq,.panel.cq,.list.cq,.split>.cq,.grid>.cq{container-type:inline-size}.cq :is(.text-cq){font-size:clamp(var(--text-sm),3.4cqi,var(--text-lg))}.cq :is(.display-cq){font-size:clamp(1.5rem,8cqi,3.25rem);line-height:1.05;letter-spacing:-.03em}.cq :is(.pad-cq){padding:clamp(var(--space-3),4cqi,var(--space-8))}.cq :is(.gap-cq){gap:clamp(var(--space-2),2.5cqi,var(--space-6))}.card-flex{display:flex;flex-direction:column}.card-flex .card-media{flex:0 0 auto}.card-flex .card-media img{inline-size:100%;aspect-ratio:16 / 9;object-fit:cover}@container (min-width: 30rem){.card-flex{flex-direction:row}.card-flex .card-media{inline-size:40%;max-inline-size:15rem}.card-flex .card-media img{block-size:100%;aspect-ratio:auto}}.stat-cq{display:flex;flex-direction:column;gap:var(--space-1)}@container (min-width: 18rem){.stat-cq .stat-value{font-size:var(--text-2xl)}}@container (min-width: 28rem){.stat-cq{flex-direction:row;align-items:baseline;gap:var(--space-3);flex-wrap:wrap}.stat-cq .stat-label{order:-1;min-inline-size:100%}}.metarow{display:flex;align-items:center;gap:var(--space-3)}.metarow .row-meta{display:none}@container (min-width: 26rem){.metarow .row-meta{display:block;color:var(--text-muted);font-size:var(--text-sm)}}@container (min-width: 38rem){.metarow .row-meta-wide{display:block}}.metarow .row-meta-wide{display:none}.field-row-cq{display:grid;gap:var(--space-4);grid-template-columns:1fr}@container (min-width: 32rem){.field-row-cq{grid-template-columns:repeat(auto-fit,minmax(min(13rem,100%),1fr))}}.actions-cq{display:flex;flex-direction:column;gap:var(--space-2)}.actions-cq>.btn{inline-size:100%}@container (min-width: 24rem){.actions-cq{flex-direction:row}.actions-cq>.btn{inline-size:auto}}@container (max-width: 44rem){.dg-cq thead,.dg-cq tfoot{display:none}.dg-cq,.dg-cq tbody,.dg-cq tr,.dg-cq td{display:block;inline-size:100%}.dg-cq tr{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);margin-block-end:var(--space-3);overflow:hidden}.dg-cq td{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);block-size:auto;min-block-size:var(--tap);text-align:end;white-space:normal;position:static!important;box-shadow:none!important;clip-path:none!important}.dg-cq td:before{content:attr(data-label);font-size:var(--text-xs);font-weight:620;color:var(--text-muted);text-align:start}}@container shell (max-width: 15rem){.sidebar-link span{display:none}.sidebar-link{justify-content:center}.sidebar-group{text-align:center;font-size:0}}@container (min-width: 24rem){.cq-sm\:row{flex-direction:row}.cq-sm\:flex{display:flex}.cq-sm\:hidden{display:none}.cq-sm\:block{display:block}.cq-sm\:w-auto{inline-size:auto}}@container (min-width: 32rem){.cq-md\:row{flex-direction:row}.cq-md\:col{flex-direction:column}.cq-md\:flex{display:flex}.cq-md\:grid{display:grid}.cq-md\:hidden{display:none}.cq-md\:block{display:block}.cq-md\:items-center{align-items:center}.cq-md\:justify-between{justify-content:space-between}}@container (min-width: 44rem){.cq-lg\:row{flex-direction:row}.cq-lg\:flex{display:flex}.cq-lg\:hidden{display:none}.cq-lg\:block{display:block}.cq-lg\:grid-2{display:grid;grid-template-columns:1fr 1fr}}.cq-tone{container-type:inline-size}@container style(--tone: critical){.tone-surface{background:var(--bad-100);border-color:color-mix(in oklab,var(--bad-500) 35%,transparent)}.tone-text{color:var(--bad-700)}.tone-icon{color:var(--bad-500)}}@container style(--tone: caution){.tone-surface{background:var(--warn-100);border-color:color-mix(in oklab,var(--warn-500) 35%,transparent)}.tone-text{color:var(--warn-700)}.tone-icon{color:var(--warn-500)}}@container style(--tone: clear){.tone-surface{background:var(--good-100);border-color:color-mix(in oklab,var(--good-500) 35%,transparent)}.tone-text{color:var(--good-700)}.tone-icon{color:var(--good-500)}}}@layer deck.utilities{.mis-auto{margin-inline-start:auto}.mie-auto{margin-inline-end:auto}.mis-0{margin-inline-start:0}.mis-1{margin-inline-start:var(--space-1)}.mis-2{margin-inline-start:var(--space-2)}.mis-3{margin-inline-start:var(--space-3)}.mis-4{margin-inline-start:var(--space-4)}.mis-6{margin-inline-start:var(--space-6)}.mis-8{margin-inline-start:var(--space-8)}.mie-0{margin-inline-end:0}.mie-1{margin-inline-end:var(--space-1)}.mie-2{margin-inline-end:var(--space-2)}.mie-3{margin-inline-end:var(--space-3)}.mie-4{margin-inline-end:var(--space-4)}.mie-6{margin-inline-end:var(--space-6)}.mie-8{margin-inline-end:var(--space-8)}.pis-0{padding-inline-start:0}.pis-1{padding-inline-start:var(--space-1)}.pis-2{padding-inline-start:var(--space-2)}.pis-3{padding-inline-start:var(--space-3)}.pis-4{padding-inline-start:var(--space-4)}.pis-6{padding-inline-start:var(--space-6)}.pis-8{padding-inline-start:var(--space-8)}.pie-0{padding-inline-end:0}.pie-1{padding-inline-end:var(--space-1)}.pie-2{padding-inline-end:var(--space-2)}.pie-3{padding-inline-end:var(--space-3)}.pie-4{padding-inline-end:var(--space-4)}.pie-6{padding-inline-end:var(--space-6)}.pie-8{padding-inline-end:var(--space-8)}.pbs-0{padding-block-start:0}.pbs-1{padding-block-start:var(--space-1)}.pbs-2{padding-block-start:var(--space-2)}.pbs-3{padding-block-start:var(--space-3)}.pbs-4{padding-block-start:var(--space-4)}.pbs-6{padding-block-start:var(--space-6)}.pbs-8{padding-block-start:var(--space-8)}.pbe-0{padding-block-end:0}.pbe-1{padding-block-end:var(--space-1)}.pbe-2{padding-block-end:var(--space-2)}.pbe-3{padding-block-end:var(--space-3)}.pbe-4{padding-block-end:var(--space-4)}.pbe-6{padding-block-end:var(--space-6)}.pbe-8{padding-block-end:var(--space-8)}.bis{border-inline-start:1px solid var(--line)}.bie{border-inline-end:1px solid var(--line)}.min-is-0{min-inline-size:0}.inset-is-0{inset-inline-start:0}.inset-ie-0{inset-inline-end:0}.inset-bs-0{inset-block-start:0}.inset-be-0{inset-block-end:0}.r-start{border-start-start-radius:var(--r-md);border-end-start-radius:var(--r-md)}.r-end{border-start-end-radius:var(--r-md);border-end-end-radius:var(--r-md)}.writing-vertical{writing-mode:vertical-rl;text-orientation:mixed}.writing-vertical-lr{writing-mode:vertical-lr}.writing-upright{text-orientation:upright;letter-spacing:.1em}.writing-sideways{writing-mode:sideways-lr}.writing-normal{writing-mode:horizontal-tb}.th-vertical{writing-mode:vertical-rl;rotate:180deg;white-space:nowrap;block-size:8rem;padding-block:var(--space-3);text-align:start}.dir-ltr{direction:ltr;unicode-bidi:isolate}.dir-rtl{direction:rtl;unicode-bidi:isolate}.bidi-isolate{unicode-bidi:isolate}.bidi-plaintext{unicode-bidi:plaintext}.mono,code,kbd,samp,.nums{unicode-bidi:isolate}.code-ltr{direction:ltr;unicode-bidi:isolate;text-align:start}}@layer deck.rtl{[dir=rtl] .mirror-rtl{scale:-1 1}[dir=rtl] :is(.icon:has(use[href$="#chevron-left"]),.icon:has(use[href$="#chevron-right"]),.icon:has(use[href$="#arrow-left"]),.icon:has(use[href$="#arrow-right"]),.icon:has(use[href$="#arrow-up-right"]),.icon:has(use[href$="#external"]),.icon:has(use[href$="#log-out"]),.icon:has(use[href$="#send"]),.icon:has(use[href$="#trend-up"]),.icon:has(use[href$="#trend-down"])){scale:-1 1}[dir=rtl] .no-flip{scale:1 1}@media(prefers-reduced-motion:no-preference){[dir=rtl] .enter-start{animation-name:dk-in-start-rtl}[dir=rtl] .enter-end{animation-name:dk-in-end-rtl}@keyframes dk-in-start-rtl{0%{opacity:0;translate:calc(var(--travel) * 1.6) 0}}@keyframes dk-in-end-rtl{0%{opacity:0;translate:calc(var(--travel) * -1.6) 0}}[dir=rtl] .icon-follow{transition:translate var(--dur-2) var(--ease-spring)}[dir=rtl] .btn:hover .icon-follow,[dir=rtl] .list-row:hover .icon-follow,[dir=rtl] .card-link:hover .icon-follow{translate:-3px 0}[dir=rtl] .sweep{background-position:100% 100%}[dir=rtl] .marquee-track{animation-name:dk-marquee-rtl}@keyframes dk-marquee-rtl{to{translate:100% 0}}}[dir=rtl] .select{background-position:19px calc(50% + 1px),14px calc(50% + 1px);background-image:linear-gradient(135deg,transparent 50%,currentColor 50%),linear-gradient(45deg,currentColor 50%,transparent 50%);padding-inline:var(--space-10) var(--space-3)}[dir=rtl] .search>.icon{inset-inline-start:var(--space-3)}[dir=rtl] .dg-wrap{--dg-pin-shadow-start: -6px 0 8px -6px oklch(20% .03 var(--hue-neutral) / .28);--dg-pin-shadow-end: 6px 0 8px -6px oklch(20% .03 var(--hue-neutral) / .28);--dg-pin-clip-start: inset(0 0 0 -12px);--dg-pin-clip-end: inset(0 -12px 0 0)}[dir=rtl] .switch input:after{translate:0 0}[dir=rtl] .switch input:checked:after{translate:-18px 0}[dir=rtl] :is(.chart-bar-fill,.progress::-webkit-progress-value,.toast-timer){transform-origin:right center}[dir=rtl] .scroll-progress{transform-origin:right center}[dir=rtl] .breadcrumb li+li:before{content:"\\\\"}[dir=rtl] .timeline-item:not(:last-child):before{inset-inline-start:10px}[dir=ltr] [dir=rtl],[dir=rtl] [dir=ltr]{unicode-bidi:isolate}}@layer deck.effects{.g-surface{background-image:linear-gradient(in oklab 180deg,color-mix(in oklab,var(--brand-500) 7%,transparent),transparent 60%)}.g-sunken{background-image:linear-gradient(in oklab 180deg,transparent,color-mix(in oklab,var(--ink-900) 5%,transparent))}.g-brand{background-image:linear-gradient(in oklab 135deg,var(--brand-600),oklch(from var(--brand-600) l c calc(h + 34)));color:var(--text-on-brand)}.g-brand-soft{background-image:linear-gradient(in oklab 135deg,var(--brand-soft),color-mix(in oklab,var(--brand-soft) 40%,var(--surface)))}.g-dark{background-image:linear-gradient(in oklab 160deg,var(--ink-900),var(--ink-1000));color:var(--ink-100)}.g-mesh{background-color:var(--bg);background-image:radial-gradient(closest-side at 18% 22%,oklch(72% .14 var(--hue-brand) / .3),transparent),radial-gradient(closest-side at 82% 12%,oklch(76% .13 calc(var(--hue-brand) + 62) / .24),transparent),radial-gradient(closest-side at 62% 88%,oklch(70% .12 calc(var(--hue-brand) - 48) / .22),transparent);background-size:70% 70%,60% 60%,78% 78%;background-repeat:no-repeat}.g-mesh-warm{--hue-brand: 34}.g-mesh-subtle{background-image:radial-gradient(closest-side at 20% 0%,oklch(74% .1 var(--hue-brand) / .18),transparent),radial-gradient(closest-side at 90% 30%,oklch(78% .09 calc(var(--hue-brand) + 70) / .14),transparent);background-size:80% 80%,70% 70%;background-repeat:no-repeat}@media(prefers-reduced-motion:no-preference){.g-mesh-drift{animation:g-drift 22s var(--ease-in-out) infinite alternate}@keyframes g-drift{to{background-position:8% 6%,-6% 10%,4% -8%}}}.g-text{color:var(--brand-700);background-image:linear-gradient(in oklab 92deg,var(--brand-600),oklch(from var(--brand-500) l c calc(h + 52)));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;padding-block-end:.06em}.g-text-shine{color:var(--text);background-image:linear-gradient(in oklab 92deg,var(--text) 0 40%,var(--brand-400) 50%,var(--text) 60% 100%);background-size:260% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}@media(prefers-reduced-motion:no-preference){.g-text-shine{animation:g-shine 4.5s var(--ease-in-out) infinite}@keyframes g-shine{to{background-position:-160% 0}}}.g-border{--g-width: 1.5px;border:var(--g-width) solid transparent;background:linear-gradient(var(--surface),var(--surface)) padding-box,linear-gradient(in oklab var(--g-angle, 135deg),var(--brand-500),oklch(from var(--brand-400) l c calc(h + 70))) border-box}.g-border-soft{background:linear-gradient(var(--surface),var(--surface)) padding-box,linear-gradient(in oklab 160deg,color-mix(in oklab,var(--brand-400) 60%,transparent),transparent 70%) border-box}@media(prefers-reduced-motion:no-preference){.g-border-spin{animation:g-spin 6s linear infinite}@keyframes g-spin{to{--g-angle: 495deg}}}.g-hairline{position:relative}.g-hairline:before{content:"";position:absolute;inset-block-start:0;inset-inline:0;block-size:1px;background:linear-gradient(90deg,transparent,color-mix(in oklab,var(--brand-400) 70%,transparent) 30% 70%,transparent)}.g-scrim{position:relative;isolation:isolate}.g-scrim:after{content:"";position:absolute;inset:0;z-index:-1;background:var(--scrim);pointer-events:none}.g-scrim-top:after{background:linear-gradient(to bottom,oklch(12% .02 var(--hue-neutral) / .72),transparent 62%)}.g-scrim>*{position:relative}.g-fade-inline{mask-image:linear-gradient(90deg,transparent,#000 var(--fade, 4%),#000 calc(100% - var(--fade, 4%)),transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 var(--fade, 4%),#000 calc(100% - var(--fade, 4%)),transparent)}.g-fade-end{mask-image:linear-gradient(90deg,#000 70%,transparent);-webkit-mask-image:linear-gradient(90deg,#000 70%,transparent)}.g-fade-block{mask-image:linear-gradient(180deg,#000 60%,transparent);-webkit-mask-image:linear-gradient(180deg,#000 60%,transparent)}.g-fade-more{max-block-size:var(--collapsed, 9rem);overflow:hidden;mask-image:linear-gradient(180deg,#000 65%,transparent);-webkit-mask-image:linear-gradient(180deg,#000 65%,transparent)}.g-fade-more.is-open{max-block-size:none;mask-image:none;-webkit-mask-image:none}.scroller{mask-image:linear-gradient(90deg,#000 92%,transparent);-webkit-mask-image:linear-gradient(90deg,#000 92%,transparent)}.g-sheen{position:relative;overflow:hidden;isolation:isolate}.g-sheen:after{content:"";position:absolute;inset-block:0;inset-inline-start:var(--sheen);inline-size:40%;background:linear-gradient(105deg,transparent,oklch(100% 0 0 / .32) 45%,oklch(100% 0 0 / .32) 55%,transparent);pointer-events:none;transition:--sheen var(--dur-5) var(--ease-out)}@media(prefers-reduced-motion:no-preference){.g-sheen:hover:after{--sheen: 110%}}.g-good{background-image:linear-gradient(in oklab 135deg,var(--good-600),oklch(from var(--good-600) l c calc(h - 26)));color:var(--text-on-good)}.g-warn{background-image:linear-gradient(in oklab 135deg,var(--warn-500),oklch(from var(--warn-500) l c calc(h + 22)));color:var(--text-on-warn)}.g-bad{background-image:linear-gradient(in oklab 135deg,var(--bad-600),oklch(from var(--bad-600) l c calc(h - 18)));color:var(--text-on-bad)}.g-conic{background-image:conic-gradient(from var(--g-angle, 0deg) in oklch longer hue,oklch(70% .16 0),oklch(70% .16 360))}.g-ring{--thickness: 3px;border-radius:var(--r-full);background:conic-gradient(from var(--g-angle, 0deg),transparent,var(--brand-500),transparent 62%);mask:radial-gradient(farthest-side,transparent calc(100% - var(--thickness)),#000 calc(100% - var(--thickness) + 1px));-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - var(--thickness)),#000 calc(100% - var(--thickness) + 1px))}@media(prefers-reduced-motion:no-preference){.g-ring-spin{animation:g-spin-360 1.6s linear infinite}@keyframes g-spin-360{to{--g-angle: 360deg}}}.g-grid-lines{background-image:linear-gradient(to right,var(--line) 1px,transparent 1px),linear-gradient(to bottom,var(--line) 1px,transparent 1px);background-size:var(--cell, 24px) var(--cell, 24px)}.g-dots{background-image:radial-gradient(var(--line-strong) 1px,transparent 1px);background-size:var(--cell, 18px) var(--cell, 18px)}.g-stripes{background-image:repeating-linear-gradient(45deg,color-mix(in oklab,var(--ink-500) 8%,transparent) 0 6px,transparent 6px 12px)}.g-hatch{background-image:repeating-linear-gradient(-45deg,color-mix(in oklab,var(--warn-500) 22%,transparent) 0 5px,transparent 5px 10px)}.g-shimmer{background-image:linear-gradient(100deg,transparent 20%,color-mix(in oklab,var(--brand-200) 55%,transparent) 45%,transparent 70%);background-size:250% 100%;background-repeat:no-repeat}@media(prefers-reduced-motion:no-preference){.g-shimmer{animation:dk-shimmer 1.6s var(--ease-in-out) infinite}}.chart-area-g{fill:url(#deck-area-gradient);stroke:none}.g-bar-fill{background-image:linear-gradient(in oklab 180deg,var(--series, var(--c1)),color-mix(in oklab,var(--series, var(--c1)) 70%,var(--ink-900)))}@supports not (color: oklch(50% .1 200)){.g-brand,.g-good,.g-warn,.g-bad{background-image:none;background-color:var(--brand-600)}.g-text{-webkit-text-fill-color:currentColor;background-image:none}.g-mesh{background-image:none}}}@layer deck.effects{.scene{perspective:var(--perspective, 1000px);perspective-origin:var(--vanish, 50% 50%)}.scene-near{--perspective: 560px}.scene-far{--perspective: 2000px}.space{transform-style:preserve-3d}.flat{transform-style:flat}.backface-hidden{backface-visibility:hidden}.flip{display:grid;transform-style:preserve-3d;transition:rotate var(--dur-4) var(--ease-spring)}.flip>.flip-front,.flip>.flip-back{grid-area:1 / 1;backface-visibility:hidden;-webkit-backface-visibility:hidden}.flip>.flip-back{rotate:y 180deg}.flip.is-flipped{rotate:y 180deg}.flip-x{transition:rotate var(--dur-4) var(--ease-spring)}.flip-x>.flip-back{rotate:x 180deg}.flip-x.is-flipped{rotate:x 180deg}@media(hover:hover)and (prefers-reduced-motion:no-preference){.flip-hover:hover{rotate:y 180deg}}.tilt{transform-style:preserve-3d;rotate:var(--tilt-axis, 1 1 0) var(--tilt-amount, 0deg);transition:rotate var(--dur-3) var(--ease-out),scale var(--dur-2) var(--ease-out);will-change:auto}@media(hover:hover)and (prefers-reduced-motion:no-preference){.tilt.is-tilting{transition:rotate 80ms linear}.tilt:hover{scale:1.015}.tilt .tilt-lift{transform:translateZ(var(--depth, 28px))}.tilt .tilt-lift-sm{transform:translateZ(12px)}}@supports (animation-delay: calc(sibling-index()*1ms)){.pile>*{--i: calc(sibling-index() - 1) }}@supports not (animation-delay: calc(sibling-index()*1ms)){.pile>:nth-child(1){--i: 0}.pile>:nth-child(2){--i: 1}.pile>:nth-child(3){--i: 2}.pile>:nth-child(4){--i: 3}.pile>:nth-child(5){--i: 4}.pile>:nth-child(6){--i: 5}.pile>:nth-child(7){--i: 6}.pile>:nth-child(8){--i: 7}}.pile{display:grid;transform-style:preserve-3d;perspective:1200px}.pile>*{grid-area:1 / 1;translate:0 calc(var(--i, 0) * 10px);scale:calc(1 - var(--i, 0) * .045);z-index:calc(10 - var(--i, 0));filter:brightness(calc(1 - var(--i, 0) * .04));transition:translate var(--dur-3) var(--ease-out),scale var(--dur-3) var(--ease-out),rotate var(--dur-3) var(--ease-out),opacity var(--dur-2) var(--ease-out)}.pile>:nth-child(n+4){opacity:0;pointer-events:none}.pile.is-fanned>*{translate:calc(var(--i, 0) * 14px) calc(var(--i, 0) * 22px);rotate:calc(var(--i, 0) * 2.5deg);scale:1;filter:none}.pile.is-fanned>:nth-child(n+4):not(.is-dismissed){opacity:1;pointer-events:auto}.pile>.is-dismissed{translate:120% -20px;rotate:14deg;opacity:0}.coverflow{display:flex;gap:var(--space-4);overflow-x:auto;scroll-snap-type:x mandatory;perspective:1200px;padding-block:var(--space-6);padding-inline:max(var(--space-gutter),20%);scrollbar-width:none;overscroll-behavior-inline:contain}.coverflow::-webkit-scrollbar{display:none}.coverflow>*{flex:0 0 auto;scroll-snap-align:center;transform-style:preserve-3d;transition:rotate var(--dur-3) var(--ease-out),scale var(--dur-3) var(--ease-out)}.coverflow>.is-behind-start{rotate:y 32deg;scale:.88}.coverflow>.is-behind-end{rotate:y -32deg;scale:.88}.coverflow>.is-front{rotate:y 0deg;scale:1}.cube{--size: 120px;position:relative;inline-size:var(--size);block-size:var(--size);transform-style:preserve-3d;transition:rotate var(--dur-5) var(--ease-spring)}.cube>*{position:absolute;inset:0;display:grid;place-items:center;border:1px solid var(--line);background:color-mix(in oklab,var(--surface) 88%,transparent);backface-visibility:visible}.cube>.face-front{transform:translateZ(calc(var(--size) / 2))}.cube>.face-back{transform:rotateY(180deg) translateZ(calc(var(--size) / 2))}.cube>.face-end{transform:rotateY(90deg) translateZ(calc(var(--size) / 2))}.cube>.face-start{transform:rotateY(-90deg) translateZ(calc(var(--size) / 2))}.cube>.face-top{transform:rotateX(90deg) translateZ(calc(var(--size) / 2))}.cube>.face-bottom{transform:rotateX(-90deg) translateZ(calc(var(--size) / 2))}.cube[data-face=front]{rotate:0deg}.cube[data-face=end]{rotate:y -90deg}.cube[data-face=back]{rotate:y 180deg}.cube[data-face=start]{rotate:y 90deg}.cube[data-face=top]{rotate:x -90deg}.cube[data-face=bottom]{rotate:x 90deg}@media(prefers-reduced-motion:no-preference){.cube-spin{animation:dk-cube 14s linear infinite}@keyframes dk-cube{0%{transform:rotateX(-18deg) rotateY(0)}to{transform:rotateX(-18deg) rotateY(360deg)}}}.btn-3d{--lift: 3px;position:relative;border:0;box-shadow:0 var(--lift) 0 0 color-mix(in oklab,var(--brand-600) 62%,var(--ink-900)),0 calc(var(--lift) + 3px) 8px oklch(20% .03 var(--hue-neutral) / .22);translate:0 0;transition:translate 70ms var(--ease-out),box-shadow 70ms var(--ease-out)}.btn-3d:active{translate:0 var(--lift);box-shadow:0 0 color-mix(in oklab,var(--brand-600) 62%,var(--ink-900))}.parallax{block-size:100%;overflow-y:auto;overflow-x:hidden;perspective:8px;perspective-origin:0 0}.parallax-layer{position:absolute;inset:0;transform-origin:0 0}.parallax-back{transform:translateZ(-6px) scale(1.75)}.parallax-mid{transform:translateZ(-3px) scale(1.375)}.parallax-front{transform:translateZ(0)}@media(prefers-reduced-motion:reduce){.parallax{perspective:none}.parallax-layer{transform:none;position:relative}}@media(prefers-reduced-motion:no-preference){.turn-out{animation:dk-turn-out var(--dur-3) var(--ease-in) both;transform-origin:left center}.turn-in{animation:dk-turn-in var(--dur-4) var(--ease-out) both;transform-origin:left center}@keyframes dk-turn-out{to{transform:perspective(1400px) rotateY(-22deg);opacity:0}}@keyframes dk-turn-in{0%{transform:perspective(1400px) rotateY(24deg);opacity:0}}[dir=rtl] :is(.turn-out,.turn-in){transform-origin:right center}}.z-lift-1{transform:translateZ(8px)}.z-lift-2{transform:translateZ(20px)}.z-lift-3{transform:translateZ(40px)}.z-sink{transform:translateZ(-16px)}.tilt.is-tilting,.flip.is-flipped,.pile.is-fanned>*,.coverflow>*,.cube{will-change:transform,rotate,scale}.tilt:not(.is-tilting),.flip:not(.is-flipped){will-change:auto}@media(prefers-reduced-motion:reduce){.flip,.flip-x,.tilt,.cube,.pile>*,.coverflow>*{transition-duration:1ms;rotate:none}.flip.is-flipped,.flip-x.is-flipped{rotate:y 180deg}.coverflow>*{rotate:none;scale:1}}}@layer deck.components{.carousel{position:relative}.carousel-track{display:flex;gap:var(--gap, var(--space-4));overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-inline:contain;scroll-behavior:smooth;scrollbar-width:none;border-radius:var(--r-md)}.carousel-track::-webkit-scrollbar{display:none}.carousel-slide{flex:0 0 100%;scroll-snap-align:center;scroll-snap-stop:always;min-inline-size:0;position:relative}.carousel-peek .carousel-slide{flex-basis:86%}.carousel-multi .carousel-slide{flex-basis:calc((100% - var(--space-4) * 2) / 3)}@media(max-width:48rem){.carousel-multi .carousel-slide{flex-basis:78%}}.carousel-slide img{inline-size:100%;block-size:100%;object-fit:cover}.carousel-arrow{position:absolute;inset-block-start:50%;translate:0 -50%;z-index:2;inline-size:40px;block-size:40px;display:grid;place-items:center;border-radius:var(--r-full);background:color-mix(in oklab,var(--surface) 88%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--line);box-shadow:var(--shadow-2);color:var(--text);cursor:pointer;transition:opacity var(--dur-2) var(--ease-out),scale var(--dur-1) var(--ease-out)}.carousel-arrow:hover{scale:1.06}.carousel-arrow[disabled]{opacity:0;pointer-events:none}.carousel-prev{inset-inline-start:var(--space-3)}.carousel-next{inset-inline-end:var(--space-3)}@media(pointer:coarse){.carousel-arrow{display:none}}.carousel-dots{display:flex;justify-content:center;gap:var(--space-2);padding-block-start:var(--space-3)}.carousel-dot{inline-size:7px;block-size:7px;border-radius:var(--r-full);background:var(--ink-300);cursor:pointer;padding:0;transition:inline-size var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out)}.carousel-dot[aria-current=true]{inline-size:22px;background:var(--brand-600)}.carousel-dot:before{content:"";position:absolute;inline-size:32px;block-size:32px;translate:-50% -50%;inset:50% auto auto 50%}.carousel-dots>*{position:relative}@supports selector(::scroll-marker){.carousel-dots,.carousel-arrow{display:none}.carousel-track{scroll-marker-group:after}.carousel-track::scroll-marker-group{display:flex;justify-content:center;gap:var(--space-2);padding-block-start:var(--space-3)}.carousel-slide::scroll-marker{content:"";inline-size:7px;block-size:7px;border-radius:var(--r-full);background:var(--ink-300);cursor:pointer;transition:inline-size var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out)}.carousel-slide::scroll-marker:target-current{inline-size:22px;background:var(--brand-600)}.carousel-track::scroll-button(*){position:absolute;inset-block-start:50%;translate:0 -50%;z-index:2;inline-size:40px;block-size:40px;display:grid;place-items:center;border-radius:var(--r-full);background:color-mix(in oklab,var(--surface) 88%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--line);box-shadow:var(--shadow-2);color:var(--text);font-size:var(--text-xl);line-height:1;cursor:pointer;transition:opacity var(--dur-2) var(--ease-out),scale var(--dur-1) var(--ease-out)}.carousel-track::scroll-button(*):hover{scale:1.06}.carousel-track::scroll-button(*):disabled{opacity:0;pointer-events:none}.carousel-track::scroll-button(inline-start){content:"\2039" / "Previous slide";inset-inline-start:var(--space-3)}.carousel-track::scroll-button(inline-end){content:"\203a" / "Next slide";inset-inline-end:var(--space-3)}@media(pointer:coarse){.carousel-track::scroll-button(*){display:none}}}.carousel-caption{position:absolute;inset-inline:0;inset-block-end:0;padding:var(--space-8) var(--space-5) var(--space-5);color:#f8f8f8;background:var(--scrim);pointer-events:none}.carousel-caption :is(a,button){pointer-events:auto}.drawer{--drawer-size: min(22rem, 88vw);position:fixed;inset-block:0;inset-inline-start:0;inset-inline-end:auto;margin:0;max-block-size:none;block-size:100dvh;inline-size:var(--drawer-size);max-inline-size:var(--drawer-size);padding:0;border:0;border-inline-end:1px solid var(--line);background:var(--surface);color:var(--text);box-shadow:var(--shadow-4);display:flex;flex-direction:column;translate:-100% 0;transition:translate var(--dur-3) var(--ease-emphasized),display var(--dur-3) allow-discrete,overlay var(--dur-3) allow-discrete}.drawer[open]{translate:0}@starting-style{.drawer[open]{translate:-100% 0}}.drawer-end{inset-inline:auto 0;border-inline:1px solid var(--line) 0;border-inline-start:1px solid var(--line);border-inline-end:0;translate:100% 0}@starting-style{.drawer-end[open]{translate:100% 0}}.drawer::backdrop{background:oklch(18% .02 var(--hue-neutral) / .5);opacity:0;transition:opacity var(--dur-3) var(--ease-out),display var(--dur-3) allow-discrete,overlay var(--dur-3) allow-discrete}.drawer[open]::backdrop{opacity:1}@starting-style{.drawer[open]::backdrop{opacity:0}}.drawer-header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);padding-block-start:max(var(--space-4),env(safe-area-inset-top));border-block-end:1px solid var(--line);flex:0 0 auto}.drawer-title{font-size:var(--text-md);font-weight:640}.drawer-body{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;padding:var(--space-4) var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.drawer-footer{flex:0 0 auto;display:flex;gap:var(--space-3);padding:var(--space-4) var(--space-5);padding-block-end:max(var(--space-4),env(safe-area-inset-bottom));border-block-start:1px solid var(--line);background:var(--surface-2)}.drawer-footer>.btn{flex:1 1 auto}.mega{position:absolute;inset:auto;margin:0;inline-size:min(64rem,calc(100vw - var(--space-8)));padding:var(--space-5);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-4);opacity:0;translate:0 -8px;transition:opacity var(--dur-2) var(--ease-out),translate var(--dur-2) var(--ease-out),overlay var(--dur-2) allow-discrete,display var(--dur-2) allow-discrete}.mega:popover-open{opacity:1;translate:0}@starting-style{.mega:popover-open{opacity:0;translate:0 -8px}}.mega::backdrop{background:transparent}.mega-grid{display:grid;gap:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(min(14rem,100%),1fr))}.mega-col{display:flex;flex-direction:column;gap:var(--space-1)}.mega-heading{font-size:var(--text-xs);font-weight:700;color:var(--text-faint);padding:var(--space-2) var(--space-2) var(--space-1)}.mega-item{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-2);border-radius:var(--r-sm);color:var(--text);text-decoration:none;transition:background-color var(--dur-1) var(--ease-out)}.mega-item:hover{background:var(--surface-hover)}.mega-item-title{font-weight:560;font-size:var(--text-sm)}.mega-item-note{font-size:var(--text-xs);color:var(--text-muted)}.mega-feature{grid-column:span 1;padding:var(--space-4);border-radius:var(--r-sm);background:var(--brand-soft);color:var(--brand-soft-text)}.mega-footer{display:flex;gap:var(--space-4);flex-wrap:wrap;margin-block-start:var(--space-5);padding-block-start:var(--space-4);border-block-start:1px solid var(--line);font-size:var(--text-sm)}.speed-dial{position:fixed;inset-block-end:calc(var(--space-5) + env(safe-area-inset-bottom));inset-inline-end:var(--space-5);z-index:var(--z-nav);display:flex;flex-direction:column-reverse;align-items:flex-end;gap:var(--space-3)}body:has(.tabbar) .speed-dial{inset-block-end:calc(var(--space-4) + var(--tap) + var(--space-3) + env(safe-area-inset-bottom))}@media(min-width:48rem){body:has(.tabbar) .speed-dial{inset-block-end:calc(var(--space-5) + env(safe-area-inset-bottom))}}.speed-dial-actions{display:flex;flex-direction:column-reverse;align-items:flex-end;gap:var(--space-3)}@supports (animation-delay: calc(sibling-index()*1ms)){.speed-dial-action{--i: calc(sibling-index() - 1) }}@supports not (animation-delay: calc(sibling-index()*1ms)){.speed-dial-action:nth-child(1){--i: 0}.speed-dial-action:nth-child(2){--i: 1}.speed-dial-action:nth-child(3){--i: 2}.speed-dial-action:nth-child(4){--i: 3}.speed-dial-action:nth-child(5){--i: 4}.speed-dial-action:nth-child(6){--i: 5}.speed-dial-action:nth-child(7){--i: 6}.speed-dial-action:nth-child(8){--i: 7}}.speed-dial-action{display:flex;align-items:center;gap:var(--space-3);opacity:0;translate:0 12px;scale:.85;pointer-events:none;transition:opacity var(--dur-2) var(--ease-out),translate var(--dur-2) var(--ease-spring),scale var(--dur-2) var(--ease-spring);transition-delay:calc(var(--i, 0) * 35ms)}.speed-dial.is-open .speed-dial-action{opacity:1;translate:0;scale:1;pointer-events:auto}.speed-dial-label{padding:var(--space-1) var(--space-3);border-radius:var(--r-sm);background:var(--ink-900);color:var(--ink-50);font-size:var(--text-xs);font-weight:560;white-space:nowrap;box-shadow:var(--shadow-2)}.speed-dial-button{inline-size:42px;block-size:42px;border-radius:var(--r-full);display:grid;place-items:center;background:var(--surface);border:1px solid var(--line);color:var(--text);box-shadow:var(--shadow-3);cursor:pointer}.speed-dial-button:hover{background:var(--surface-hover)}.speed-dial>.fab{position:static}.speed-dial>.fab .icon{transition:rotate var(--dur-3) var(--ease-spring)}.speed-dial.is-open>.fab .icon{rotate:135deg}.back-to-top{position:fixed;inset-block-end:calc(var(--space-5) + env(safe-area-inset-bottom));inset-inline-end:var(--space-5);z-index:calc(var(--z-nav) + 1);inline-size:var(--tap);block-size:var(--tap);border-radius:var(--r-full);display:grid;place-items:center;background:var(--surface);color:var(--text);border:1px solid var(--line);box-shadow:var(--shadow-3);text-decoration:none;transition:opacity var(--dur-2) var(--ease-out),visibility var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),scale var(--dur-2) var(--ease-spring)}.back-to-top:hover{background:var(--brand-600);color:var(--text-on-brand);border-color:transparent;scale:1.06}.back-to-top:active{scale:.94}body:has(:is(.fab,.speed-dial)) .back-to-top{inset-block-end:calc(var(--space-5) + 56px + var(--space-3) + env(safe-area-inset-bottom))}body:has(.tabbar) .back-to-top{inset-block-end:calc(var(--space-4) + var(--tap) + var(--space-3) + env(safe-area-inset-bottom))}body:has(.tabbar):has(:is(.fab,.speed-dial)) .back-to-top{inset-block-end:calc(var(--space-4) + var(--tap) + var(--space-3) + 56px + var(--space-3) + env(safe-area-inset-bottom))}@media(min-width:48rem){body:has(.tabbar) .back-to-top{inset-block-end:calc(var(--space-5) + env(safe-area-inset-bottom))}body:has(.tabbar):has(:is(.fab,.speed-dial)) .back-to-top{inset-block-end:calc(var(--space-5) + 56px + var(--space-3) + env(safe-area-inset-bottom))}}body:has(.speed-dial.is-open) .back-to-top{display:none}@media(prefers-reduced-motion:no-preference){@supports (animation-timeline: scroll()){.back-to-top{animation:dk-btt-in linear both;animation-timeline:scroll(root block);animation-range:400px 520px}}@supports not (animation-timeline: scroll()){.back-to-top[data-deck-btt]{opacity:0;visibility:hidden}.back-to-top[data-deck-btt].is-visible{opacity:1;visibility:visible}}}@keyframes dk-btt-in{0%{opacity:0;visibility:hidden}to{opacity:1;visibility:visible}}.stepper{display:flex;gap:var(--space-2);overflow-x:auto;scrollbar-width:none;counter-reset:step}.stepper::-webkit-scrollbar{display:none}.step{flex:1 1 0;min-inline-size:7rem;display:flex;flex-direction:column;gap:var(--space-2);position:relative;counter-increment:step}.step-marker{display:flex;align-items:center;gap:var(--space-2)}.step-marker:before{content:counter(step);inline-size:26px;block-size:26px;flex:0 0 auto;display:grid;place-items:center;border-radius:var(--r-full);border:1.5px solid var(--line-strong);background:var(--surface);font-size:var(--text-xs);font-weight:640;color:var(--text-muted);transition:background-color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out)}.step-marker:after{content:"";flex:1 1 auto;block-size:2px;background:var(--line);border-radius:var(--r-full)}.step:last-child .step-marker:after{display:none}.step-label{font-size:var(--text-sm);font-weight:560;color:var(--text-muted)}.step-note{font-size:var(--text-xs);color:var(--text-faint)}.step.is-done .step-marker:before{content:"";background:var(--brand-600);border-color:var(--brand-600);background-image:linear-gradient(var(--text-on-brand),var(--text-on-brand));background-size:10px 10px;background-position:center;background-repeat:no-repeat;-webkit-mask:none;clip-path:none}.step.is-done .step-marker:after{background:var(--brand-500)}.step.is-done .step-label{color:var(--text)}.step.is-current .step-marker:before{border-color:var(--brand-600);color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.step.is-current .step-label{color:var(--text);font-weight:620}.stepper-vertical{flex-direction:column;gap:var(--space-5)}.stepper-vertical .step{flex-direction:row;gap:var(--space-3);min-inline-size:0}.stepper-vertical .step-marker{flex-direction:column;align-self:stretch}.stepper-vertical .step-marker:after{inline-size:2px;block-size:auto;flex:1 1 auto}@media(max-width:40rem){.stepper-auto{flex-direction:column;gap:var(--space-5)}.stepper-auto .step{flex-direction:row;gap:var(--space-3);min-inline-size:0}.stepper-auto .step-marker{flex-direction:column;align-self:stretch}.stepper-auto .step-marker:after{inline-size:2px;block-size:auto;flex:1 1 auto}}.banner{position:sticky;inset-block-start:0;z-index:calc(var(--z-nav) + 1);display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-gutter);padding-block-start:max(var(--space-3),env(safe-area-inset-top));background:var(--brand-soft);color:var(--brand-soft-text);border-block-end:1px solid color-mix(in oklab,var(--brand-400) 30%,transparent);font-size:var(--text-sm)}.banner-bottom{inset-block:auto 0;border-block:1px solid color-mix(in oklab,var(--brand-400) 30%,transparent) 0;border-block-start:1px solid color-mix(in oklab,var(--brand-400) 30%,transparent);border-block-end:0;padding-block-end:max(var(--space-3),env(safe-area-inset-bottom))}.banner-fixed{position:fixed;inset-inline:0}.banner-dark{background:var(--ink-900);color:var(--ink-100);border-color:transparent}.banner-warn{background:var(--warn-100);color:var(--warn-700);border-color:transparent}.banner-close{margin-inline-start:auto;opacity:.7;cursor:pointer;flex:0 0 auto}.banner-close:hover{opacity:1}.banner[hidden]{display:none}.jumbotron{display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-section) var(--space-gutter);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);text-align:start}.jumbotron-center{text-align:center;align-items:center}.jumbotron-center .lede{margin-inline:auto}.jumbotron-media{display:grid;gap:var(--space-8);align-items:center;grid-template-columns:1fr}@media(min-width:56rem){.jumbotron-media{grid-template-columns:1.1fr .9fr}}.jumbotron h1{max-inline-size:18ch}.jumbotron-center h1{margin-inline:auto}.jumbotron-actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}@media(max-width:30rem){.jumbotron-actions>.btn{inline-size:100%}}.footer{border-block-start:1px solid var(--line);padding-block:var(--space-10) var(--space-8);color:var(--text-muted);font-size:var(--text-sm)}.footer-grid{display:grid;gap:var(--space-8);grid-template-columns:repeat(auto-fit,minmax(min(11rem,100%),1fr));padding-block-end:var(--space-8)}.footer-brand{display:flex;flex-direction:column;gap:var(--space-3);max-inline-size:26ch}.footer-col{display:flex;flex-direction:column;gap:var(--space-2)}.footer-heading{font-size:var(--text-xs);font-weight:700;color:var(--text);margin-block-end:var(--space-1)}.footer a{color:var(--text-muted);text-decoration:none}.footer a:hover{color:var(--brand);text-decoration:underline}.footer-bottom{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);padding-block-start:var(--space-5);border-block-start:1px solid var(--line);font-size:var(--text-xs)}.footer-social{display:flex;gap:var(--space-1);margin-inline-start:auto}.footer-social a{inline-size:34px;block-size:34px;display:grid;place-items:center;border-radius:var(--r-sm)}.footer-social a:hover{background:var(--surface-hover)}.indicator{display:inline-block;inline-size:8px;block-size:8px;border-radius:var(--r-full);background:var(--ink-400);flex:0 0 auto}.indicator-good{background:var(--good-500)}.indicator-warn{background:var(--warn-500)}.indicator-bad{background:var(--bad-500)}.indicator-brand{background:var(--brand-500)}.indicator-lg{inline-size:11px;block-size:11px}.indicator-ring{box-shadow:0 0 0 2px var(--surface)}.with-indicator{position:relative;display:inline-flex}.with-indicator>.indicator-badge{position:absolute;inset-block-start:-4px;inset-inline-end:-6px;min-inline-size:18px;block-size:18px;padding-inline:5px;border-radius:var(--r-full);background:var(--bad-600);color:var(--text-on-bad);font-size:var(--text-2xs);font-weight:700;line-height:18px;text-align:center;box-shadow:0 0 0 2px var(--surface);font-variant-numeric:tabular-nums}.with-indicator>.indicator-badge-dot{min-inline-size:9px;inline-size:9px;block-size:9px;padding:0;inset-block-start:-1px;inset-inline-end:-1px}.with-indicator>.indicator-badge-brand{background:var(--brand-600);color:var(--text-on-brand)}.status-line{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm)}.status-line .indicator{position:relative}}@layer deck.components{.float{position:relative;display:flex;flex-direction:column}.float>:is(.input,.textarea,.select){padding-block:var(--space-5) var(--space-2);min-block-size:var(--control-h-lg)}.float>.textarea{padding-block-start:var(--space-6)}.float>label{position:absolute;inset-block-start:0;inset-inline-start:var(--space-3);padding-inline:2px;block-size:var(--control-h-lg);display:flex;align-items:center;color:var(--text-faint);font-size:var(--text-base);pointer-events:none;transform-origin:inline-start center;transition:translate var(--dur-2) var(--ease-out),scale var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out)}.float:focus-within>label,.float>.input:not(:placeholder-shown)~label,.float>.textarea:not(:placeholder-shown)~label,.float>.select~label{translate:0 calc(var(--control-h-lg) * -.28);scale:.78;color:var(--text-muted)}.float:focus-within>label{color:var(--brand)}.float.is-invalid>label,.float>:user-invalid~label{color:var(--bad-700)}.float-outline>label{background:var(--surface);block-size:auto;inset-block-start:50%;translate:0 -50%;padding-inline:var(--space-1)}.float-outline:focus-within>label,.float-outline>.input:not(:placeholder-shown)~label,.float-outline>.textarea:not(:placeholder-shown)~label,.float-outline>.select~label{translate:0 calc(var(--control-h-lg) * -.5 - 50%);scale:.8}.float-outline>:is(.input,.textarea,.select){padding-block:var(--space-3)}.number{display:flex;align-items:stretch;inline-size:100%;max-inline-size:var(--number-width, 11rem);border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--shadow-1);overflow:hidden}.number:focus-within{border-color:var(--focus);box-shadow:var(--ring)}.number>input{flex:1 1 auto;min-inline-size:0;border:0;outline:none;background:none;text-align:center;font-variant-numeric:tabular-nums;font-size:var(--text-base);color:inherit;padding-inline:var(--space-1)}@media(pointer:coarse){.number>input{font-size:16px}}.number>input::-webkit-outer-spin-button,.number>input::-webkit-inner-spin-button{appearance:none;margin:0}.number>input[type=number]{appearance:textfield;-moz-appearance:textfield}.number>button{inline-size:var(--control-h);min-block-size:var(--control-h);display:grid;place-items:center;background:var(--surface-2);color:var(--text-muted);cursor:pointer;flex:0 0 auto;-webkit-user-select:none;user-select:none;transition:background-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out)}.number>button:hover{background:var(--surface-hover);color:var(--text)}.number>button:active{background:var(--brand-soft);color:var(--brand-soft-text)}.number>button[disabled]{opacity:.4;pointer-events:none}.number>button:first-child{border-inline-end:1px solid var(--line)}.number>button:last-child{border-inline-start:1px solid var(--line)}.number-unit{display:grid;place-items:center;padding-inline:var(--space-3);background:var(--surface-2);border-inline-start:1px solid var(--line);font-size:var(--text-sm);color:var(--text-muted);white-space:nowrap}.number-sm{--number-width: 8.5rem}.number-sm>button{inline-size:var(--control-h-sm);min-block-size:var(--control-h-sm)}.phone{display:flex;align-items:stretch;inline-size:100%;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--shadow-1);overflow:hidden}.phone:focus-within{border-color:var(--focus);box-shadow:var(--ring)}.phone>.phone-country{display:flex;align-items:center;gap:var(--space-2);padding-inline:var(--space-3);background:var(--surface-2);border-inline-end:1px solid var(--line);cursor:pointer;font-size:var(--text-sm);color:var(--text-muted);white-space:nowrap;flex:0 0 auto}.phone>.phone-country:hover{background:var(--surface-hover)}.phone>.phone-country select{appearance:none;border:0;background:none;outline:none;font:inherit;color:inherit;cursor:pointer;max-inline-size:4.5rem}.phone-flag{font-size:1.1em;line-height:1}.phone-code{font-variant-numeric:tabular-nums;color:var(--text);font-weight:560}.phone>input{flex:1 1 auto;min-inline-size:0;border:0;outline:none;background:none;padding:var(--space-2) var(--space-3);font-size:var(--text-base);font-variant-numeric:tabular-nums;letter-spacing:.02em;color:inherit;direction:ltr;unicode-bidi:isolate;text-align:start}@media(pointer:coarse){.phone>input{font-size:16px}}.phone.is-valid{border-color:color-mix(in oklab,var(--good-500) 55%,transparent)}.phone-status{display:grid;place-items:center;padding-inline:var(--space-3);flex:0 0 auto}.rating{display:inline-flex;flex-direction:row-reverse;justify-content:flex-end;gap:2px}.rating>input{position:absolute;opacity:0;inline-size:1px;block-size:1px}.rating>label{inline-size:var(--star, 26px);block-size:var(--star, 26px);display:grid;place-items:center;color:var(--ink-300);cursor:pointer;transition:color var(--dur-1) var(--ease-out),scale var(--dur-1) var(--ease-spring)}.rating>label .icon{inline-size:100%;block-size:100%;fill:currentColor;stroke:none}.rating>label:hover{scale:1.14}.rating>input:checked~label,.rating>label:hover,.rating>label:hover~label{color:var(--accent-500)}.rating>input:focus-visible+label{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--r-xs)}.rating-sm{--star: 18px}.rating-lg{--star: 36px}.rating-static{display:inline-flex;gap:2px;color:var(--ink-300);position:relative}.rating-static>.rating-fill{position:absolute;inset-block:0;inset-inline-start:0;inline-size:calc(var(--value) * 1%);overflow:hidden;display:flex;gap:2px;color:var(--accent-500);white-space:nowrap}.rating-static .icon{fill:currentColor;stroke:none;inline-size:var(--star, 18px);block-size:var(--star, 18px);flex:0 0 auto}.range-pair{position:relative;display:grid;block-size:var(--tap);align-items:center}.range-pair:before{content:"";grid-area:1 / 1;block-size:6px;border-radius:var(--r-full);background:var(--ink-200)}.range-pair:after{content:"";grid-area:1 / 1;block-size:6px;border-radius:var(--r-full);background:var(--brand-500);margin-inline-start:calc(var(--lo, 0) * 1%);inline-size:calc((var(--hi, 100) - var(--lo, 0)) * 1%)}.range-pair>input[type=range]{grid-area:1 / 1;inline-size:100%;background:none;appearance:none;block-size:var(--tap);pointer-events:none;margin:0}.range-pair>input[type=range]::-webkit-slider-runnable-track{background:transparent;block-size:6px}.range-pair>input[type=range]::-moz-range-track{background:transparent;block-size:6px}.range-pair>input[type=range]::-webkit-slider-thumb{appearance:none;pointer-events:auto;margin-block-start:-8px;inline-size:22px;block-size:22px;border-radius:var(--r-full);background:var(--brand-600);border:3px solid var(--ink-0);box-shadow:var(--shadow-2);cursor:grab}.range-pair>input[type=range]::-moz-range-thumb{pointer-events:auto;inline-size:22px;block-size:22px;border-radius:var(--r-full);background:var(--brand-600);border:3px solid var(--ink-0);box-shadow:var(--shadow-2);cursor:grab}.range-pair>input[type=range]:focus-visible::-webkit-slider-thumb{outline:2px solid var(--focus);outline-offset:2px}.range-readout{display:flex;justify-content:space-between;font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--text-muted)}.range-ticks{display:flex;justify-content:space-between;font-size:var(--text-2xs);color:var(--text-faint);font-variant-numeric:tabular-nums;padding-inline:11px}.copy{display:flex;align-items:stretch;inline-size:100%;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);overflow:hidden}.copy>code,.copy>.copy-value{flex:1 1 auto;min-inline-size:0;padding:var(--space-2) var(--space-3);background:none;border:0;border-radius:0;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text);overflow-x:auto;white-space:nowrap;scrollbar-width:none;direction:ltr;unicode-bidi:isolate;display:flex;align-items:center}.copy>:is(code,.copy-value)::-webkit-scrollbar{display:none}.copy-btn{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--space-2);padding-inline:var(--space-3);min-inline-size:var(--tap);background:var(--surface);border-inline-start:1px solid var(--line);color:var(--text-muted);font-size:var(--text-sm);font-weight:560;cursor:pointer;transition:background-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out)}.copy-btn:hover{background:var(--surface-hover);color:var(--text)}.copy-btn.is-copied{color:var(--good-700);background:var(--good-100)}.copy-btn .copy-done{display:none}.copy-btn.is-copied .copy-done{display:inline-flex}.copy-btn.is-copied .copy-idle{display:none}.copy-inline{display:inline-flex;align-items:center;gap:var(--space-1);color:var(--text-faint);cursor:pointer;border-radius:var(--r-xs);padding:2px}.copy-inline:hover{color:var(--brand);background:var(--surface-hover)}.copy-inline.is-copied{color:var(--good-700)}.editor{display:flex;flex-direction:column;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--shadow-1);overflow:clip}.editor:focus-within{border-color:var(--focus);box-shadow:var(--ring)}.editor-toolbar{display:flex;align-items:center;gap:2px;flex-wrap:wrap;padding:var(--space-1);background:var(--surface-2);border-block-end:1px solid var(--line);position:sticky;inset-block-start:0;z-index:1}.editor-tool{inline-size:32px;block-size:32px;display:grid;place-items:center;border-radius:var(--r-xs);color:var(--text-muted);cursor:pointer;font-size:var(--text-sm);font-weight:620;transition:background-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out)}.editor-tool:hover{background:var(--surface-hover);color:var(--text)}.editor-tool[aria-pressed=true]{background:var(--brand-soft);color:var(--brand-soft-text)}.editor-tool-wide{inline-size:auto;padding-inline:var(--space-2)}.editor-sep{inline-size:1px;block-size:20px;background:var(--line);margin-inline:var(--space-1)}.editor-select{block-size:32px;padding-inline:var(--space-2);border:0;border-radius:var(--r-xs);background:none;font-size:var(--text-sm);color:var(--text-muted);cursor:pointer}.editor-select:hover{background:var(--surface-hover)}.editor-content{min-block-size:var(--editor-height, 12rem);max-block-size:var(--editor-max, 30rem);overflow-y:auto;padding:var(--space-4);outline:none;line-height:var(--leading-normal)}.editor-content:empty:before{content:attr(data-placeholder);color:var(--text-faint);pointer-events:none}.editor-content>*+*{margin-block-start:var(--space-3)}.editor-content :is(h1,h2,h3){margin-block-start:var(--space-5)}.editor-content :is(ul,ol){padding-inline-start:var(--space-6)}.editor-content ul{list-style:disc}.editor-content ol{list-style:decimal}.editor-content blockquote{border-inline-start:3px solid var(--brand-300);padding-inline-start:var(--space-4);color:var(--text-muted)}.editor-content a{color:var(--brand)}.editor-content img{max-inline-size:100%;border-radius:var(--r-sm)}.editor-footer{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-block-start:1px solid var(--line);background:var(--surface-2);font-size:var(--text-xs);color:var(--text-faint)}.editor-count{margin-inline-start:auto;font-variant-numeric:tabular-nums}.editor-count.is-over{color:var(--bad-700);font-weight:620}}@layer deck.components{.video{position:relative;inline-size:100%;aspect-ratio:var(--ratio, 16 / 9);background:var(--ink-950);border-radius:var(--r-md);overflow:clip;isolation:isolate}.video>:is(video,iframe,embed,object){position:absolute;inset:0;inline-size:100%;block-size:100%;border:0;object-fit:contain}.video-cover>video{object-fit:cover}.video-square{--ratio: 1}.video-portrait{--ratio: 9 / 16}.video-wide{--ratio: 21 / 9}.video video::-webkit-media-controls-panel{background-image:none}.video video{accent-color:var(--brand-500)}.video-poster{position:absolute;inset:0;z-index:1;display:grid;place-items:center;cursor:pointer;border:0;padding:0;background:none}.video-poster img{inline-size:100%;block-size:100%;object-fit:cover}.video-poster:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,oklch(12% .02 var(--hue-neutral) / .55),transparent 60%)}.video-play{position:relative;z-index:1;inline-size:64px;block-size:64px;border-radius:var(--r-full);display:grid;place-items:center;background:color-mix(in oklab,var(--surface) 90%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--text);box-shadow:var(--shadow-3);transition:scale var(--dur-2) var(--ease-spring),background-color var(--dur-1) var(--ease-out)}.video-poster:hover .video-play{scale:1.08;background:var(--surface)}.video-meta{position:absolute;inset-block-end:var(--space-3);inset-inline-start:var(--space-3);z-index:2;display:flex;gap:var(--space-2);color:#f8f8f8;font-size:var(--text-xs);text-shadow:0 1px 3px oklch(0% 0 0 / .6)}.video-duration{padding:2px 6px;border-radius:var(--r-xs);background:#060606b8;font-variant-numeric:tabular-nums}.masonry{columns:var(--cols, 1);column-gap:var(--gap, var(--space-3))}@media(min-width:30rem){.masonry{--cols: 2}}@media(min-width:48rem){.masonry{--cols: 3}}@media(min-width:72rem){.masonry{--cols: 4}}.masonry-2{--cols: 2}.masonry-3{--cols: 3}.masonry>*{break-inside:avoid;margin-block-end:var(--gap, var(--space-3));border-radius:var(--r-md);overflow:clip;display:block}.masonry img{inline-size:100%;block-size:auto;display:block}@supports (grid-template-rows: masonry){.masonry{columns:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(14rem,100%),1fr));grid-template-rows:masonry;gap:var(--gap, var(--space-3))}.masonry>*{margin-block-end:0}}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(9rem,100%),1fr));gap:var(--space-2)}.gallery>*{aspect-ratio:1;border-radius:var(--r-sm);overflow:clip;position:relative}.gallery img{inline-size:100%;block-size:100%;object-fit:cover;transition:scale var(--dur-3) var(--ease-out)}.gallery a:hover img{scale:1.05}.gallery .span-2{grid-column:span 2;grid-row:span 2;aspect-ratio:1}.gallery .span-wide{grid-column:span 2;aspect-ratio:2}.lazy{position:relative;display:block;background:var(--bg-sunken);overflow:clip;aspect-ratio:var(--ratio, 3 / 2)}.lazy>img{inline-size:100%;block-size:100%;object-fit:cover;opacity:0;transition:opacity var(--dur-3) var(--ease-out)}.lazy>img.is-loaded,.lazy>img[data-loaded]{opacity:1}.lazy:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 20%,color-mix(in oklab,var(--ink-300) 40%,transparent) 45%,transparent 70%);background-size:250% 100%;background-repeat:no-repeat;animation:dk-shimmer 1.6s var(--ease-in-out) infinite;pointer-events:none}.lazy:has(img.is-loaded):after,.lazy:has(img[data-loaded]):after{display:none}.lazy-blur{background-size:cover;background-position:center}.lazy-blur:before{content:"";position:absolute;inset:-8px;background:inherit;filter:blur(14px);transition:opacity var(--dur-3) var(--ease-out)}.lazy-blur:has(img.is-loaded):before{opacity:0}.lazy-block{display:grid;place-items:center;min-block-size:8rem;border:1px dashed var(--line);border-radius:var(--r-md);color:var(--text-faint);gap:var(--space-2)}.chat{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-4);overflow-y:auto;overscroll-behavior:contain}.chat-day{align-self:center;margin-block:var(--space-4) var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--r-full);background:var(--surface-2);color:var(--text-faint);font-size:var(--text-xs);font-weight:560}.msg{display:flex;gap:var(--space-2);align-items:flex-end;max-inline-size:min(80%,34rem);align-self:flex-start}.msg-out{align-self:flex-end;flex-direction:row-reverse}.bubble{position:relative;padding:var(--space-2) var(--space-3);border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--line);font-size:var(--text-sm);line-height:1.45;overflow-wrap:anywhere;border-end-start-radius:var(--r-xs)}.msg-out .bubble{background:var(--brand-600);color:var(--text-on-brand);border-color:transparent;border-end-start-radius:var(--r-md);border-end-end-radius:var(--r-xs)}.msg:not(:last-of-type)+.msg .bubble{border-start-start-radius:var(--r-xs)}.msg-out:not(:last-of-type)+.msg-out .bubble{border-start-end-radius:var(--r-xs)}.bubble-meta{display:flex;align-items:center;gap:var(--space-1);margin-block-start:2px;font-size:var(--text-2xs);opacity:.7;justify-content:flex-end;font-variant-numeric:tabular-nums}.msg:not(.msg-out) .bubble-meta{justify-content:flex-start}.bubble-name{font-weight:620;font-size:var(--text-xs);margin-block-end:2px;color:var(--brand)}.msg-out .bubble-name{color:inherit}.bubble-attachment{margin:calc(var(--space-2) * -1) calc(var(--space-3) * -1) var(--space-2);border-start-start-radius:var(--r-md);border-start-end-radius:var(--r-md);overflow:clip}.bubble-attachment img{inline-size:100%;display:block}.msg .avatar{--size: 28px;align-self:flex-end;margin-block-end:2px}.msg:not(:last-of-type)+.msg .avatar{visibility:hidden}.bubble-system{align-self:center;background:none;border:0;color:var(--text-faint);font-size:var(--text-xs);text-align:center;max-inline-size:42ch}.bubble-typing{display:inline-flex;gap:4px;padding-block:var(--space-3)}.bubble-typing>span{inline-size:6px;block-size:6px;border-radius:var(--r-full);background:var(--text-faint)}@media(prefers-reduced-motion:no-preference){.bubble-typing>span{animation:dk-typing 1.2s var(--ease-in-out) infinite}.bubble-typing>span:nth-child(2){animation-delay:.16s}.bubble-typing>span:nth-child(3){animation-delay:.32s}@keyframes dk-typing{0%,60%,to{translate:0 0;opacity:.45}30%{translate:0 -4px;opacity:1}}}.chat-composer{display:flex;align-items:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-4);padding-block-end:max(var(--space-3),env(safe-area-inset-bottom));border-block-start:1px solid var(--line);background:var(--surface)}.chat-composer .textarea{min-block-size:var(--control-h);max-block-size:8rem;field-sizing:content;border-radius:var(--r-lg);resize:none}.qr{display:inline-grid;place-items:center;padding:var(--qr-quiet, 12px);background:var(--qr-bg, #fff);border-radius:var(--r-sm);border:1px solid var(--line);inline-size:fit-content;-webkit-print-color-adjust:exact;print-color-adjust:exact}.qr svg{display:block;inline-size:var(--qr-size, 160px);block-size:var(--qr-size, 160px)}.qr svg rect{fill:var(--qr-fg, #000);shape-rendering:crispEdges}.qr-lg{--qr-size: 240px}.qr-sm{--qr-size: 104px}.qr-logo{position:relative}.qr-logo>.qr-logo-mark{position:absolute;inset:50%;translate:-50% -50%;inline-size:22%;block-size:22%;display:grid;place-items:center;background:var(--qr-bg, #fff);border-radius:var(--r-xs);padding:4px}.qr-caption{margin-block-start:var(--space-2);font-size:var(--text-xs);color:var(--text-muted);text-align:center;max-inline-size:var(--qr-size, 160px);overflow-wrap:anywhere}}@layer deck.print{@media print{.qr{border:0;break-inside:avoid}.video,.chat-composer,.carousel-arrow,.carousel-dots,.speed-dial,.drawer,.mega,.banner{display:none!important}.masonry{columns:2}.chat{overflow:visible;max-block-size:none}.msg{break-inside:avoid}.bubble{border:1px solid #bbb!important;background:#fff!important;color:#000!important}.msg-out .bubble{background:#f2f2f2!important}.lazy:after{display:none!important}.editor-toolbar,.editor-footer{display:none!important}.editor-content{max-block-size:none!important;overflow:visible!important}}}@layer deck.components{@supports (anchor-name: --a){.anchor{anchor-name:var(--anchor)}.menu,.mega,.datepicker{position-anchor:var(--anchor);position-area:block-end span-inline-end;position-try-fallbacks:block-end span-inline-start,block-start span-inline-end,block-start span-inline-start,flip-block,flip-inline;position-try-order:most-block-size;margin-block:var(--space-2);max-block-size:calc(100dvh - var(--space-8));max-inline-size:calc(100vw - var(--space-6));inset:auto}.menu{min-inline-size:max(12rem,anchor-size(inline))}.mega{position-area:block-end;justify-self:anchor-center}.menu-match{inline-size:anchor-size(inline);min-inline-size:0}.combo-control{anchor-name:var(--anchor, --combo)}.combo-list{position-anchor:var(--anchor, --combo);position-area:block-end;position-try-fallbacks:flip-block;inline-size:anchor-size(inline);inset:auto;margin-block:4px}.combo-list.is-above{inset:auto}.tip{position:fixed;position-anchor:var(--anchor);position-area:block-start;position-try-fallbacks:flip-block,flip-inline;justify-self:anchor-center;margin:var(--space-2);inline-size:max-content;max-inline-size:16rem;padding:var(--space-2) var(--space-3);border:0;border-radius:var(--r-xs);background:var(--ink-900);color:var(--ink-50);font-size:var(--text-xs);line-height:1.4;box-shadow:var(--shadow-3);opacity:0;transition:opacity var(--dur-2) var(--ease-out),overlay var(--dur-2) allow-discrete,display var(--dur-2) allow-discrete}.tip:popover-open{opacity:1}@starting-style{.tip:popover-open{opacity:0}}.tip::backdrop{background:transparent}.tip-arrow{position:absolute;inline-size:8px;block-size:8px;rotate:45deg;background:inherit;position-anchor:var(--anchor);justify-self:anchor-center}.pop{position:fixed;position-anchor:var(--anchor);position-area:block-end;position-try-fallbacks:flip-block,flip-inline,block-start span-inline-start;justify-self:anchor-center;margin:var(--space-2);inline-size:min(20rem,calc(100vw - var(--space-6)));padding:var(--space-4);background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-4);opacity:0;translate:0 -4px;transition:opacity var(--dur-2) var(--ease-out),translate var(--dur-2) var(--ease-out),overlay var(--dur-2) allow-discrete,display var(--dur-2) allow-discrete}.pop:popover-open{opacity:1;translate:0}@starting-style{.pop:popover-open{opacity:0;translate:0 -4px}}.pop::backdrop{background:transparent}.pop-title{font-weight:620;margin-block-end:var(--space-1)}.pop-body{font-size:var(--text-sm);color:var(--text-muted)}.pop-actions{display:flex;gap:var(--space-2);margin-block-start:var(--space-3)}.menu,.mega,.tip,.pop,.datepicker,.combo-list{position-visibility:anchors-visible}}@supports not (anchor-name: --a){.tip,.pop{position:fixed;inset:auto;margin:0;inline-size:max-content;max-inline-size:16rem;border:0;border-radius:var(--r-xs);background:var(--ink-900);color:var(--ink-50);font-size:var(--text-xs);padding:var(--space-2) var(--space-3);box-shadow:var(--shadow-3);opacity:0;transition:opacity var(--dur-2) var(--ease-out),overlay var(--dur-2) allow-discrete,display var(--dur-2) allow-discrete}.pop{inline-size:min(20rem,calc(100vw - var(--space-6)));max-inline-size:none;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-4);padding:var(--space-4)}.tip:popover-open,.pop:popover-open{opacity:1}@starting-style{.tip:popover-open,.pop:popover-open{opacity:0}}.tip::backdrop,.pop::backdrop{background:transparent}.tip-arrow{position:absolute;inline-size:8px;block-size:8px;rotate:45deg;background:inherit}}}@layer deck.components{.dg-virtual tbody tr{content-visibility:auto;contain-intrinsic-size:auto var(--dg-row-h, 44px)}.dg-virtual.dg-compact tbody tr{contain-intrinsic-size:auto 34px}.dg-virtual.dg-comfy tbody tr{contain-intrinsic-size:auto 56px}.list-virtual>.list-row{content-visibility:auto;contain-intrinsic-size:auto 56px}.virtual>*{content-visibility:auto;contain-intrinsic-size:auto var(--item-size, 120px)}.virtual-sm>*{--item-size: 64px}.virtual-lg>*{--item-size: 220px}.defer{content-visibility:auto;contain-intrinsic-size:auto 600px}@media print{.dg-virtual tbody tr,.list-virtual>.list-row,.virtual>*,.defer{content-visibility:visible!important;contain-intrinsic-size:none!important}}.contain{contain:layout style}.contain-paint{contain:layout style paint}.card,.panel,.list,.dg-wrap,.chart{contain:layout style}.sortable{position:relative}.sortable [draggable=true],.drag-handle{cursor:grab;touch-action:none}.sortable [draggable=true]:active,.drag-handle:active{cursor:grabbing}.drag-handle{display:grid;place-items:center;inline-size:28px;min-block-size:var(--tap);color:var(--text-faint);flex:0 0 auto;opacity:0;transition:opacity var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out)}:is(.list-row,.dg tbody tr,.kanban-card):is(:hover,:focus-within) .drag-handle{opacity:1}.drag-handle:hover{color:var(--text)}@media(pointer:coarse){.drag-handle{opacity:1}}.sortable-drag{opacity:1!important;box-shadow:var(--shadow-4);rotate:1.5deg;scale:1.02;cursor:grabbing}.sortable-ghost{opacity:.4;background:var(--brand-soft)!important;outline:2px dashed var(--brand-400);outline-offset:-2px}.sortable-ghost>*{visibility:hidden}.sortable-chosen{background:var(--surface-hover)}.sortable-fallback{opacity:.9}.drop-target{outline:2px dashed var(--brand-400);outline-offset:3px;border-radius:var(--r-md);background:color-mix(in oklab,var(--brand-soft) 55%,transparent)}.drop-reject{outline-color:var(--bad-500);background:color-mix(in oklab,var(--bad-100) 55%,transparent)}.kanban{display:flex;gap:var(--space-4);overflow-x:auto;overscroll-behavior-inline:contain;padding-block-end:var(--space-3);align-items:flex-start;scroll-snap-type:x proximity}.kanban-col{flex:0 0 min(19rem,82vw);scroll-snap-align:start;display:flex;flex-direction:column;max-block-size:var(--kanban-height, 70dvh);background:var(--bg-sunken);border:1px solid var(--line);border-radius:var(--r-md)}.kanban-head{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-block-end:1px solid var(--line);font-size:var(--text-sm);font-weight:620;position:sticky;inset-block-start:0;background:inherit;border-start-start-radius:var(--r-md);border-start-end-radius:var(--r-md);z-index:1}.kanban-count{margin-inline-start:auto;font-size:var(--text-xs);font-weight:600;color:var(--text-muted);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-full);padding:1px 7px;font-variant-numeric:tabular-nums}.kanban-body{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-3);min-block-size:5rem}.kanban-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:var(--space-3);box-shadow:var(--shadow-1);display:flex;flex-direction:column;gap:var(--space-2);content-visibility:auto;contain-intrinsic-size:auto 110px}.kanban-card:hover{box-shadow:var(--shadow-2)}.kanban-card-title{font-size:var(--text-sm);font-weight:580}.kanban-card-meta{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-muted)}.kanban-empty{border:1px dashed var(--line-strong);border-radius:var(--r-sm);padding:var(--space-5);text-align:center;color:var(--text-faint);font-size:var(--text-sm)}.kanban-col:has(.kanban-card) .kanban-empty{display:none}.reorder .list-row{-webkit-user-select:none;user-select:none}.reorder .list-row.is-lifted{box-shadow:var(--shadow-3);background:var(--surface);border-radius:var(--r-sm);z-index:2;position:relative}@media(prefers-reduced-motion:reduce){.sortable-drag{rotate:none;scale:1}}}@layer deck.print{@page{size:letter;margin:16mm 14mm}@page :first{margin-block-start:12mm}@media print{:root{color-scheme:light only;--bg: #fff;--bg-sunken: #fff;--surface: #fff;--surface-2: #fff;--surface-hover: #fff;--text: #000;--text-muted: #333;--text-faint: #555;--line: #bbb;--line-strong: #888;--shadow-1: none;--shadow-2: none;--shadow-3: none;--shadow-4: none;--shadow-inset: none}html,body{background:#fff!important;color:#000!important;font-size:10.5pt;line-height:1.4}body{padding-block-end:0!important}*{box-shadow:none!important;text-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;animation:none!important;transition:none!important}.badge,.chip,.chart-col,.chart-col-stack>span,.chart-bar-fill,.chart-meter>span,.donut,.icon-tile,.avatar,.chart-heat>*{-webkit-print-color-adjust:exact;print-color-adjust:exact}.tabbar,.fab,.speed-dial,.back-to-top,.toast-region,.skip-link,.theme-dock,.navbar-links,.sidebar,.datepicker,.combo-list,.menu,.dg-toolbar,.dg-resize,.sheet-grip,.no-print,.pagination,.segmented,.tabs,.scroller::-webkit-scrollbar{display:none!important}dialog:not([open]){display:none!important}dialog[open]{position:static!important;display:block!important;max-block-size:none!important;inline-size:auto!important;border:0!important}dialog::backdrop{display:none!important}.container,.container-sm,.container-md,.container-lg,.container-xl{max-inline-size:none!important;padding-inline:0!important}.section{padding-block:0 0 8mm!important}.split,.grid{display:block!important}.grid>*+*{margin-block-start:4mm}.sticky-top,.sticky,.form-actions-sticky{position:static!important}.card,.panel,.list,.table-wrap,.dg-wrap,.alert,.fieldset{border:1px solid #bbb!important;border-radius:0!important;background:#fff!important;break-inside:avoid;max-block-size:none!important;overflow:visible!important}.card-footer,.list-header,.dg thead th,.table thead th{background:#f2f2f2!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}h1,.h1{font-size:20pt}h2,.h2{font-size:15pt}h3,.h3{font-size:12.5pt}h4,.h4,h5,.h5,h6,.h6{font-size:11pt}.display{font-size:22pt}.lede{font-size:11pt;color:#333!important}h1,h2,h3,h4,h5,h6{break-after:avoid;page-break-after:avoid}p,blockquote,li,figure,.stat,.timeline-item{break-inside:avoid}.prose{max-inline-size:none}a{color:#000!important;text-decoration:underline}a[href^=http]:after{content:" (" attr(href) ")";font-size:8.5pt;color:#555;word-break:break-all}a[href^="#"]:after,a[href^="javascript:"]:after,.btn:after,.no-print-url:after{content:""}abbr[title]:after{content:" (" attr(title) ")";font-size:8.5pt}.table,.dg{inline-size:100%!important;font-size:9.5pt}.table thead,.dg thead{display:table-header-group}.dg tfoot,.table tfoot{display:table-footer-group}.table tr,.dg tr{break-inside:avoid;page-break-inside:avoid}.dg :is(th,td){position:static!important;block-size:auto!important;padding:4pt 6pt!important;white-space:normal!important;clip-path:none!important;border-block-end:1px solid #ddd!important}.dg-wrap{max-block-size:none!important;overflow:visible!important}.table-stack thead,.dg-cards thead{position:static!important;inline-size:auto!important;block-size:auto!important;clip-path:none!important;display:table-header-group!important;overflow:visible!important}.table-stack,.dg-cards{display:table!important}.table-stack tbody,.dg-cards tbody{display:table-row-group!important}.table-stack tr,.dg-cards tr{display:table-row!important;margin:0!important;border-radius:0!important}.table-stack td,.dg-cards td{display:table-cell!important;text-align:start!important}.table-stack td:before,.dg-cards td:before{content:none!important}.input,.textarea,.select,.combo-control{border:1px solid #999!important;background:#fff!important;min-block-size:auto!important}.textarea{max-block-size:none!important;block-size:auto!important}.select{background-image:none!important;padding-inline-end:var(--space-3)!important}.btn,.form-actions{display:none!important}.btn.print-keep{display:inline-flex!important;border:1px solid #999!important}.check input[type=checkbox],.check input[type=radio]{-webkit-print-color-adjust:exact;print-color-adjust:exact;border:1px solid #000!important;background:#fff!important}.check input:checked{background:#000!important;border-color:#000!important}.switch input{border:1px solid #000!important}.chart,.chart-columns,.chart-svg{break-inside:avoid}.chart-col[data-value]:before{display:none!important}.chart-columns{background-image:none!important;border-block-end:1px solid #999}.page-break{break-before:page;page-break-before:always}.page-break-after{break-after:page;page-break-after:always}.keep-together{break-inside:avoid;page-break-inside:avoid}.print-only{display:revert!important}.print-header{position:fixed;inset-block-start:0;inset-inline:0}.print-footer{position:fixed;inset-block-end:0;inset-inline:0;font-size:8.5pt;color:#555}}.print-only{display:none}}
package/dist/sizes.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
- "version": "0.1.0",
2
+ "version": "0.1.2",
3
3
  "note": "Generated by build.mjs. Do not edit. Brotli is quality 11 with a size hint.",
4
4
  "files": {
5
5
  "deck.min.css": {
6
- "raw": 172846,
7
- "gzip": 32710,
8
- "brotli": 26693
6
+ "raw": 172836,
7
+ "gzip": 32706,
8
+ "brotli": 26712
9
9
  },
10
10
  "deck-icons.svg": {
11
11
  "raw": 110032,
@@ -35,12 +35,12 @@
35
35
  },
36
36
  "totals": {
37
37
  "core": {
38
- "gzip": 76272,
39
- "brotli": 62738
38
+ "gzip": 76268,
39
+ "brotli": 62757
40
40
  },
41
41
  "bundle": {
42
- "gzip": 85784,
43
- "brotli": 71138
42
+ "gzip": 85780,
43
+ "brotli": 71157
44
44
  }
45
45
  },
46
46
  "sample": {
package/dist/usage.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "generated": "tools/docs/usage.mjs — do not edit",
3
- "filesScanned": 105,
3
+ "filesScanned": 106,
4
4
  "counts": {
5
5
  "classes": 931,
6
6
  "used": 914,
@@ -9,17 +9,17 @@
9
9
  "uses": {
10
10
  "stack-3": 2144,
11
11
  "text-muted": 858,
12
- "icon": 616,
12
+ "icon": 618,
13
13
  "btn": 564,
14
14
  "stack-2": 485,
15
15
  "cluster": 367,
16
- "stack-4": 312,
16
+ "stack-4": 314,
17
17
  "stack": 303,
18
18
  "card": 265,
19
19
  "cluster-tight": 246,
20
20
  "lede": 210,
21
- "badge": 204,
22
21
  "card-body": 201,
22
+ "badge": 194,
23
23
  "breadcrumb": 191,
24
24
  "label": 189,
25
25
  "btn-sm": 184,
@@ -29,12 +29,12 @@
29
29
  "stack-6": 140,
30
30
  "icon-sm": 139,
31
31
  "check": 128,
32
- "sr-only": 127,
32
+ "sr-only": 125,
33
33
  "btn-primary": 121,
34
- "table": 114,
35
- "table-wrap": 111,
34
+ "table": 112,
35
+ "table-wrap": 109,
36
36
  "btn-ghost": 109,
37
- "table-stack": 102,
37
+ "table-stack": 100,
38
38
  "container": 99,
39
39
  "grid": 96,
40
40
  "card-title": 95,
@@ -48,18 +48,18 @@
48
48
  "tab": 65,
49
49
  "emoji": 60,
50
50
  "skeleton": 60,
51
- "alert": 56,
51
+ "alert": 58,
52
+ "range": 56,
52
53
  "num": 55,
53
54
  "sidebar-link": 55,
54
55
  "icon-tile": 52,
55
56
  "grid-tight": 50,
56
- "range": 50,
57
- "badge-good": 48,
58
57
  "switch": 48,
59
58
  "split": 48,
59
+ "alert-title": 47,
60
+ "alert-body": 47,
60
61
  "list-row": 46,
61
- "alert-title": 45,
62
- "alert-body": 45,
62
+ "badge-good": 44,
63
63
  "select": 44,
64
64
  "check-text": 42,
65
65
  "menu-item": 42,
@@ -80,7 +80,6 @@
80
80
  "bubble": 31,
81
81
  "list-trail": 29,
82
82
  "tooltip": 29,
83
- "badge-warn": 28,
84
83
  "chart-col": 28,
85
84
  "float": 28,
86
85
  "search": 28,
@@ -108,6 +107,7 @@
108
107
  "list-sub": 23,
109
108
  "skeleton-text": 23,
110
109
  "is-done": 23,
110
+ "badge-warn": 22,
111
111
  "check-card": 22,
112
112
  "emoji-lg": 22,
113
113
  "scroller": 22,
@@ -137,6 +137,7 @@
137
137
  "sidebar-group": 19,
138
138
  "stack-8": 19,
139
139
  "mono": 19,
140
+ "alert-warn": 18,
140
141
  "icon-follow": 18,
141
142
  "carousel-slide": 18,
142
143
  "carousel": 18,
@@ -155,7 +156,6 @@
155
156
  "qr": 17,
156
157
  "toast-main": 17,
157
158
  "toast-title": 17,
158
- "alert-warn": 16,
159
159
  "alert-info": 16,
160
160
  "avatar-sm": 16,
161
161
  "btn-danger": 16,
@@ -2401,7 +2401,6 @@
2401
2401
  "public_html/docs/components/badge.php",
2402
2402
  "public_html/docs/components/gradients.php",
2403
2403
  "public_html/docs/guides/layout.php",
2404
- "public_html/docs/start/install.php",
2405
2404
  "public_html/index.php"
2406
2405
  ],
2407
2406
  "badge-bad": [
@@ -4967,6 +4966,7 @@
4967
4966
  "bin/deck.mjs",
4968
4967
  "public_html/docs/components/range.php",
4969
4968
  "public_html/docs/guides/theming.php",
4969
+ "public_html/docs/start/install.php",
4970
4970
  "public_html/index.php",
4971
4971
  "src/js/deck-extras.js",
4972
4972
  "src/js/deck.js"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@echodial/deck",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "A mobile-first CSS framework with no build step, no config file, and no dependencies. Retheme an entire app from one number.",
5
5
  "keywords": [
6
6
  "css",
@@ -17,7 +17,7 @@
17
17
  "php",
18
18
  "keel"
19
19
  ],
20
- "homepage": "https://get-keel.dev/deck",
20
+ "homepage": "https://get-deck.dev",
21
21
  "bugs": "https://github.com/srivera145/deck/issues",
22
22
  "repository": {
23
23
  "type": "git",