@gemboss/website-ui 0.13.0 → 0.14.0

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/AGENTS.md CHANGED
@@ -40,13 +40,14 @@ Files you will use, all inside `node_modules/@gemboss/website-ui/`:
40
40
  square and a chart line. **The accent is never body text, never words in a heading, never a section band, and
41
41
  never a fill you set yourself.**
42
42
  3. **Actions are rectangles, chips are pills.** Buttons: 40px tall, sentence case, 14px/600, the action radius of the
43
- site's profile (8px; 12px in `soft`). Chips, toggles, badges: fully rounded. Cards: the card radius (12px; 20px in
43
+ site's profile (8px; 12px in `soft`). Chips, toggles, badges: fully rounded; a status chip inside a drawn screen
44
+ (`.gw-status`, 0.14.0) takes the action radius, as the product draws it. Cards: the card radius (12px; 20px in
44
45
  `soft`), large panels the panel radius (16px; 24px). No other radii: the site picks its profile once
45
46
  (`data-gw-radius`), components follow.
46
47
  4. **A card sits.** A card (`.gw-card`, a plan) is a white box with a 1px `--gw-line` border and the resting shadow
47
48
  `--gw-shadow`, the same as the GemBoss dashboard. It never lifts on hover. To separate anything else, use space or a
48
49
  hairline before a shadow. The only shadows are `--gw-shadow` (rest), `--gw-shadow-sm` and `--gw-shadow-raised`
49
- (popovers: the mega menu, menus).
50
+ (popovers: the mega menu, menus; and a window, `.gw-window`, which floats over its section as on gemboss.ai).
50
51
  5. **Only the scales.** Spacing: 0 2 4 6 8 12 16 20 24 32 40 48 64 80 96 120 (px). Type: 11 12 13 14 16 18 20 22 24 30,
51
52
  plus the two display sizes for h1/h2. No half pixels, no "just 15px", no colour outside the tokens.
52
53
  6. **Sentence case everywhere.** Headings, buttons, labels, menu items. No uppercase with letter spacing.
@@ -91,7 +92,7 @@ a page. A page of such a site starts from `index.html`, not from `templates/page
91
92
  - **Colour roles** (CSS variables, light and dark): `--gw-bg`, `--gw-bg-soft` (the neutral raised fill),
92
93
  `--gw-surface`, `--gw-ink`, `--gw-ink-2`, `--gw-muted`, `--gw-line`, `--gw-line-strong`, `--gw-action`,
93
94
  `--gw-on-action`, `--gw-accent`, `--gw-accent-strong`, `--gw-accent-soft`, `--gw-success`, `--gw-warning` (and
94
- their tints `--gw-success-soft`, `--gw-warning-soft`), `--gw-danger` (an error, a destructive button; `--gw-danger-soft`,
95
+ their tints `--gw-success-soft`, `--gw-warning-soft`; success's text form `--gw-success-strong`, 0.14.0), `--gw-danger` (an error, a destructive button; `--gw-danger-soft`,
95
96
  `--gw-on-danger`), `--gw-line-control` (a form control's border, 3:1), `--gw-night` (the dark band). Wash hues `--gw-wash-pink|violet|sky|mint` exist for the hero wash and illustrations only.
96
97
  - **Dark mode** follows the visitor's system and the theme toggle (`data-theme` on `<html>`). Use the variables and
97
98
  it works; a hard-coded colour breaks it.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,34 @@ Every release lists what changed for a site that uses the kit. A release that ad
4
4
  says so with `Closes gap #N` (the GitHub issue number), so `npx gemboss-website upgrade` can tell that site which
5
5
  stopgap (`kitgap-*`) it can now delete.
6
6
 
7
+ ## 0.14.0 (2026-10-27)
8
+
9
+ The blocks gemboss.ai shares between its pages, 1:1 in the kit: the FAQ, the check list, the window around a product
10
+ screen, and a new status chip (Chris 26/10/2026: step 2 of the pages' bodies onto the kit). gemboss.ai's pages now draw
11
+ these with the kit's classes and were measured against the pages before, pixel by pixel. Where gemboss.ai had a small
12
+ accessibility slip, the kit's version won (Chris 27/10/2026): those three spots are named below. A minor version: a site
13
+ on 0.13.0 sees these parts change look, none of the markup.
14
+
15
+ - **FAQ** (`.gw-faq`): an item 2px 24px inside; the question in the brand face alone (`--gw-font-action`) at the line
16
+ height around it; the + is the face's own glyph in the accent, 24px, turned 45 degrees into × when open (was drawn
17
+ lines); an answer's paragraph at most 33em (was 68ch) and rising 4px into place as the item opens (none under reduced
18
+ motion). On phones (up to 560px) the rows tighten to 4px above and below, never under 44px (gemboss.ai went to 37px:
19
+ the kit's 44px won).
20
+ - **Check list** (`.gw-list--check`): 14px at 1.5 lines, the words 28px in, the mark a 16px tile on the accent's tint with
21
+ the tick in the accent (was a bare tick). The tick follows the theme and the brand (gemboss.ai's was a fixed iris, and
22
+ ink on /partners, so it stayed light in dark mode: the kit's won). A plain link in an item keeps the link style
23
+ (/audit showed one as plain text: the kit's won).
24
+ - **Window** (`.gw-window`): it floats (`--gw-shadow-raised`, was the resting shadow), 13px at 20px lines. The bar is
25
+ 40px with 12px sides, three 8px dots 6px apart drawn as real circles, the words 16px after them, `<b>` in ink, one line
26
+ cut when too long; up to 560px the words wrap and the bar grows, its parts at the top.
27
+ - **Status chip** (`.gw-status`, new): gemboss.ai's "pills", a state inside a drawn screen as the GemBoss app draws it: a
28
+ rounded rectangle at the action radius, 28px, 12px/500; `--success` (live), `--accent` (a test), `--early` (neutral,
29
+ the dot in the accent), an optional `__dot`. A badge (`.gw-badge`) stays the pill that labels a thing on the page.
30
+ - **Token** `--gw-success-strong` (new, `system.json` `color.light/dark`): success's text form, `#0a6a4c` light (5.6:1 on
31
+ its tint) and `#34c38f` dark, the words of a live status chip.
32
+ - Docs: `AGENTS.md` lists the window among the raised shadows and the status chip among the shapes; `docs/components.md`
33
+ describes each part's measures.
34
+
7
35
  ## 0.13.0 (2026-10-26)
8
36
 
9
37
  What building a second site on the kit taught it. gemians.com was rebuilt on 0.12.0 from npm, kit sections only (Chris,
package/README.md CHANGED
@@ -41,9 +41,9 @@ nó đọc `AGENTS.md` của kit trước, dựng từ mẫu, và chạy `check`
41
41
  **Site HTML tĩnh hoặc không có bước build:** dùng CDN của npm, ghim đúng phiên bản.
42
42
 
43
43
  ```html
44
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@gemboss/website-ui@0.13.0/website.min.css">
44
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@gemboss/website-ui@0.14.0/website.min.css">
45
45
  <link rel="stylesheet" href="/site.css"> <!-- CSS riêng của site, luôn SAU kit -->
46
- <script src="https://cdn.jsdelivr.net/npm/@gemboss/website-ui@0.13.0/js/website.js" defer></script>
46
+ <script src="https://cdn.jsdelivr.net/npm/@gemboss/website-ui@0.14.0/js/website.js" defer></script>
47
47
  ```
48
48
 
49
49
  Chèn markup của kit sau khi trang đã tải (block của builder, bản xem trước CMS): gọi `gwWebsite.init(phầnMới)` ngay
@@ -188,6 +188,29 @@
188
188
  .gw-badge--danger { background: var(--gw-danger-soft); color: var(--gw-ink); }
189
189
  .gw-badge--danger::before { content: ""; flex: none; width: 6px; height: 6px; border-radius: var(--gw-radius-chip); background: var(--gw-danger); }
190
190
 
191
+ /* Status chip (0.14.0): gemboss.ai's "pills", a state inside a drawn screen of the product (Live, a test, Early access), as
192
+ the GemBoss app draws it: a rounded rectangle (the action radius), 28px, 12px/500 words, neutral by default. --success is
193
+ live (its words in success's text form), --accent a test, --early neutral with the dot in the accent. The dot is an
194
+ optional `.gw-status__dot` before the words. A label that names a thing (New, Recommended) is a .gw-badge. */
195
+ .gw-status {
196
+ display: inline-flex;
197
+ align-items: center;
198
+ gap: 6px;
199
+ min-height: 28px;
200
+ padding: 6px 8px;
201
+ border-radius: var(--gw-radius-action);
202
+ background: color-mix(in srgb, var(--gw-ink) 8%, transparent);
203
+ color: var(--gw-ink-2);
204
+ font-size: 12px;
205
+ font-weight: 500;
206
+ line-height: 16px;
207
+ white-space: nowrap;
208
+ }
209
+ .gw-status--success { background: var(--gw-success-soft); color: var(--gw-success-strong); }
210
+ .gw-status--accent { background: var(--gw-accent-soft); color: var(--gw-accent-strong); }
211
+ .gw-status__dot { width: 6px; height: 6px; border-radius: var(--gw-radius-chip); background: currentColor; }
212
+ .gw-status--early .gw-status__dot { background: var(--gw-accent); }
213
+
191
214
  /* cards sit: white, 1px hairline, the card radius of the site's profile (12, 20 in soft), the dashboard's resting
192
215
  shadow (Chris 24/10/2026: one language with the app); no hover lift. A soft card is a tint and carries no shadow. */
193
216
  .gw-card {
@@ -221,35 +244,48 @@
221
244
  :where(.gw-card, .gw-feature) p { font-size: 16px; color: var(--gw-muted); }
222
245
 
223
246
  /* a framed screen: a browser or app window around a screenshot or a drawn mock-up */
247
+ /* 0.14.0: gemboss.ai's frame, 1:1: it floats (the raised shadow), 13px at 20px lines; the bar 40px with 12px sides, three
248
+ 8px dots 6px apart, the words 16px after them and 8px between the bar's parts, one line, cut when too long; bold words in
249
+ the bar in ink. */
224
250
  .gw-window {
251
+ position: relative;
225
252
  overflow: hidden;
226
253
  border: 1px solid var(--gw-line);
227
254
  border-radius: var(--gw-radius-card);
228
255
  background: var(--gw-surface);
229
256
  color: var(--gw-ink);
230
- box-shadow: var(--gw-shadow);
257
+ box-shadow: var(--gw-shadow-raised);
231
258
  font-size: 13px;
232
- line-height: 1.5;
259
+ line-height: 20px;
233
260
  }
234
261
  .gw-window__bar {
235
262
  display: flex;
236
263
  align-items: center;
237
- gap: 12px;
264
+ gap: 8px;
238
265
  min-height: 40px;
239
- padding: 8px 16px;
266
+ padding: 0 12px;
240
267
  border-bottom: 1px solid var(--gw-line);
241
268
  color: var(--gw-muted);
242
269
  font-size: 12px;
270
+ white-space: nowrap;
271
+ overflow: hidden;
243
272
  }
244
273
  .gw-window__bar::before {
245
274
  content: "";
246
275
  flex: none;
247
- width: 36px;
276
+ width: 8px;
248
277
  height: 8px;
249
- background:
250
- radial-gradient(circle at 4px 4px, var(--gw-line-strong) 4px, transparent 4px),
251
- radial-gradient(circle at 18px 4px, var(--gw-line-strong) 4px, transparent 4px),
252
- radial-gradient(circle at 32px 4px, var(--gw-line-strong) 4px, transparent 4px);
278
+ margin-right: 36px;
279
+ border-radius: var(--gw-radius-chip);
280
+ background: var(--gw-line-strong);
281
+ box-shadow: 14px 0 0 var(--gw-line-strong), 28px 0 0 var(--gw-line-strong);
282
+ }
283
+ .gw-window__bar > :first-child { min-width: 0; overflow: hidden; }
284
+ .gw-window__bar b { color: var(--gw-ink); font-weight: 600; }
285
+ /* up to 560px the bar's words wrap rather than being cut: the bar grows, its parts at the top (gemboss.ai) */
286
+ @media (max-width: 560px) {
287
+ .gw-window__bar { align-items: flex-start; padding-block: 8px; white-space: normal; }
288
+ .gw-window__bar > :first-child { overflow: visible; }
253
289
  }
254
290
  .gw-window__body { padding: 16px; }
255
291
  .gw-window__body:has(> img:only-child) { padding: 0; }
@@ -278,19 +314,31 @@
278
314
  .gw-icon svg { width: 20px; height: 20px; }
279
315
 
280
316
  /* list with check marks */
281
- .gw-list--check { display: grid; gap: 12px; padding: 0; list-style: none; }
282
- .gw-list--check > li { position: relative; padding-left: 24px; }
317
+ /* 0.14.0: gemboss.ai's, 1:1: 14px at 1.5 lines, the words 28px in (a 20px column for the mark, 8px after it); the mark a
318
+ 16px tile on the accent's tint, 4px down, with the tick in the accent (the tick follows the theme and the brand). The mark
319
+ is out of the flow, so an item may hold words and links side by side. */
320
+ .gw-list--check { display: grid; gap: 12px; padding: 0; list-style: none; font-size: 14px; line-height: 1.5; }
321
+ .gw-list--check > li { position: relative; padding-left: 28px; }
283
322
  .gw-list--check > li::before {
284
323
  content: "";
285
324
  position: absolute;
286
325
  left: 0;
287
- top: 6px;
288
- top: calc((1lh - 16px) / 2);
326
+ top: 4px;
327
+ width: 16px;
328
+ height: 16px;
329
+ border-radius: var(--gw-radius-4);
330
+ background: var(--gw-accent-soft);
331
+ }
332
+ .gw-list--check > li::after {
333
+ content: "";
334
+ position: absolute;
335
+ left: 0;
336
+ top: 4px;
289
337
  width: 16px;
290
338
  height: 16px;
291
339
  background: var(--gw-accent);
292
- -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.4l2.9 2.8L12.5 5' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px no-repeat;
293
- mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.4l2.9 2.8L12.5 5' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px no-repeat;
340
+ -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.2l2.6 2.5L12 5.3' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px no-repeat;
341
+ mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.2l2.6 2.5L12 5.3' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px no-repeat;
294
342
  }
295
343
 
296
344
  /* table: the wrapper scrolls inside its own box on phones, the page never does */
@@ -313,10 +361,12 @@
313
361
  .gw-table--compare thead th:not(:first-child) { text-align: center; }
314
362
  .gw-table--compare tbody th { position: sticky; left: 0; z-index: 1; background: var(--gw-surface); min-width: 160px; }
315
363
 
316
- /* FAQ: native details/summary, no script */
364
+ /* FAQ: native details/summary, no script. 0.14.0: gemboss.ai's, 1:1 (the question in the brand face alone, at the line
365
+ height around it; the + is the face's own glyph in the accent, turned 45 degrees when open; the answer 33em wide,
366
+ rising in as the item opens) */
317
367
  .gw-faq { display: grid; gap: 12px; }
318
368
  .gw-faq__item {
319
- padding: 0 24px;
369
+ padding: 2px 24px;
320
370
  border: 1px solid var(--gw-line);
321
371
  border-radius: var(--gw-radius-card);
322
372
  background: var(--gw-surface);
@@ -329,25 +379,28 @@
329
379
  gap: 16px;
330
380
  min-height: 44px;
331
381
  padding: 20px 0;
382
+ font-family: var(--gw-font-action);
332
383
  font-size: 18px;
333
384
  font-weight: 600;
334
- line-height: 1.4;
335
385
  list-style: none;
336
386
  cursor: pointer;
337
387
  }
338
388
  .gw-faq__item > summary::-webkit-details-marker { display: none; }
339
389
  .gw-faq__item > summary::after {
340
- content: "";
341
- flex: none;
342
- width: 16px;
343
- height: 16px;
344
- background:
345
- linear-gradient(var(--gw-accent), var(--gw-accent)) center / 16px 2px no-repeat,
346
- linear-gradient(var(--gw-accent), var(--gw-accent)) center / 2px 16px no-repeat;
347
- transition: transform 0.2s var(--gw-ease);
390
+ content: "+";
391
+ color: var(--gw-accent);
392
+ font-size: 24px;
393
+ font-weight: 400;
394
+ transition: transform 0.2s ease;
348
395
  }
349
396
  .gw-faq__item[open] > summary::after { transform: rotate(45deg); }
350
- .gw-faq__item > :not(summary) { margin: 0 0 20px; max-width: 68ch; color: var(--gw-muted); font-size: 16px; }
397
+ .gw-faq__item > :not(summary) { margin: 0 0 20px; color: var(--gw-muted); font-size: 16px; }
398
+ .gw-faq__item > p { max-width: 33em; }
399
+ @keyframes gw-faq-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
400
+ .gw-faq__item[open] > :not(summary) { animation: gw-faq-in 0.28s ease; }
401
+ @media (prefers-reduced-motion: reduce) { .gw-faq__item[open] > :not(summary) { animation: none; } }
402
+ /* phones: the rows tighten (gemboss.ai), never under the 44px a finger needs */
403
+ @media (max-width: 560px) { .gw-faq__item > summary { padding-block: 4px; } }
351
404
 
352
405
  /* touch: every control is at least 44px tall. A button up to 768px (0.12.0, as gemboss.ai: by the width, not the
353
406
  pointer), its label wrapping (and tighter) from 480px down in the page's <main>, so a long one never pushes the page
package/css/tokens.css CHANGED
@@ -126,6 +126,7 @@
126
126
  --gw-on-accent: var(--gw-on-accent-light);
127
127
  --gw-success: #007f5f;
128
128
  --gw-success-soft: #e3f1df;
129
+ --gw-success-strong: #0a6a4c;
129
130
  --gw-warning: #9a6700;
130
131
  --gw-warning-soft: #fbf1dc;
131
132
  --gw-danger: #b42318;
@@ -158,6 +159,7 @@
158
159
  --gw-on-accent: var(--gw-on-accent-dark);
159
160
  --gw-success: #34c38f;
160
161
  --gw-success-soft: #132a22;
162
+ --gw-success-strong: #34c38f;
161
163
  --gw-warning: #e0b341;
162
164
  --gw-warning-soft: #2b2410;
163
165
  --gw-danger: #ff6b5a;
@@ -193,6 +195,7 @@
193
195
  --gw-on-accent: var(--gw-on-accent-dark);
194
196
  --gw-success: #34c38f;
195
197
  --gw-success-soft: #132a22;
198
+ --gw-success-strong: #34c38f;
196
199
  --gw-warning: #e0b341;
197
200
  --gw-warning-soft: #2b2410;
198
201
  --gw-danger: #ff6b5a;
@@ -227,6 +230,7 @@
227
230
  --gw-on-accent: var(--gw-on-accent-light);
228
231
  --gw-success: #007f5f;
229
232
  --gw-success-soft: #e3f1df;
233
+ --gw-success-strong: #0a6a4c;
230
234
  --gw-warning: #9a6700;
231
235
  --gw-warning-soft: #fbf1dc;
232
236
  --gw-danger: #b42318;
@@ -259,6 +263,7 @@
259
263
  --gw-on-accent: var(--gw-on-accent-dark);
260
264
  --gw-success: #34c38f;
261
265
  --gw-success-soft: #132a22;
266
+ --gw-success-strong: #34c38f;
262
267
  --gw-warning: #e0b341;
263
268
  --gw-warning-soft: #2b2410;
264
269
  --gw-danger: #ff6b5a;
@@ -214,6 +214,22 @@ small text on a tint).
214
214
 
215
215
  Don't: make a badge clickable; write a sentence in it; use success or warning for anything but state.
216
216
 
217
+ ### Status chip `.gw-status`
218
+
219
+ 0.14.0, gemboss.ai's "pills": a state inside a drawn screen of the product, as the GemBoss app draws it (Live, A/B test,
220
+ Early access). A rounded rectangle at the action radius (8px; 12px in `soft`), 28px tall, 12px/500 words, neutral by
221
+ default (ink at 8%). `--success` is live (its words in `--gw-success-strong`, 5.6:1 on the tint), `--accent` a test,
222
+ `--early` neutral with the dot in the accent. The dot is an optional `<span class="gw-status__dot">` before the words.
223
+
224
+ ```html
225
+ <span class="gw-status gw-status--success"><span class="gw-status__dot"></span>Live</span>
226
+ <span class="gw-status gw-status--accent">A/B test</span>
227
+ <span class="gw-status gw-status--early"><span class="gw-status__dot"></span>Early access</span>
228
+ ```
229
+
230
+ A badge (`.gw-badge`, a pill) labels a thing on the page itself (New, Recommended); a status chip shows the state of
231
+ something inside a screen. Don't: a status chip outside a window or a drawn screen; a sentence in it; a click handler.
232
+
217
233
  ### Cards `.gw-card`
218
234
 
219
235
  A white box with a 1px hairline, the card radius (12, 20 in `soft`), the resting shadow `--gw-shadow` (as the dashboard's cards), 24px padding
@@ -256,6 +272,11 @@ A framed screen: `__bar` (three dots and where the screen lives), `__body` (16px
256
272
  `<img>`) and `__caption`. Use it around real product screenshots, or around a drawn mock-up built in the site's CSS with
257
273
  the tokens.
258
274
 
275
+ 0.14.0, gemboss.ai's frame 1:1: it floats (`--gw-shadow-raised`), 13px words at 20px lines. The bar is 40px with 12px
276
+ sides: three 8px dots, then where the screen lives 16px after them (12px, muted, one line, cut when too long; `<b>` words
277
+ in ink), then anything else 8px apart (a status chip, an action of the mock-up, which keep the window's ink). Up to 560px
278
+ the bar's words wrap instead and the bar grows, its parts at the top.
279
+
259
280
  `__caption` says what the numbers in the window are: 12px, muted, at the end of the window, the last child after
260
281
  `__body` (a `<figcaption>` when the window is a `<figure>`). Under a drawn mock-up whose numbers are made up it says
261
282
  **"Illustrative data."**, in exactly these words: vi "Dữ liệu minh hoạ.", zh "示意数据。". Add a second sentence only when
@@ -305,7 +326,10 @@ Don't: emoji as icons; filled multi-colour icons; icon-only buttons without `ari
305
326
 
306
327
  ### Check list `.gw-list--check`
307
328
 
308
- A `<ul>` whose items are led by an accent check mark.
329
+ A `<ul>` whose items are led by a check mark: 0.14.0, gemboss.ai's, 1:1: 14px at 1.5 lines, the words 28px in, the mark a
330
+ 16px tile on the accent's tint (4px corners, 4px down) with the tick in the accent, so it follows the theme and the brand.
331
+ An item may hold words and links side by side (a plain link in an item gets the link style). An item with its own
332
+ vertical padding moves the mark with it: set `top` on its `::before` and `::after`.
309
333
 
310
334
  ```html
311
335
  <ul class="gw-list--check"><li>Checkout stays on Shopify</li><li>No overage fees</li></ul>
@@ -332,7 +356,10 @@ Don't: put the class on the `<table>` itself; tables for layout; colour cells to
332
356
 
333
357
  ### FAQ `.gw-faq`
334
358
 
335
- Native `<details class="gw-faq__item">` with a `<summary>`, no script. The + turns into × when open.
359
+ Native `<details class="gw-faq__item">` with a `<summary>`, no script. 0.14.0, gemboss.ai's 1:1: the question 18px/600 in
360
+ the brand face alone, the + the face's own glyph in the accent, turned 45 degrees into × when open; the answer muted,
361
+ 16px, a paragraph at most 33em, rising in as it opens (not under reduced motion). On phones (up to 560px) the rows
362
+ tighten, never under 44px.
336
363
 
337
364
  ```html
338
365
  <div class="gw-faq">
package/js/website.js CHANGED
@@ -1,9 +1,9 @@
1
- /*! @gemboss/website-ui 0.13.0 website.js | GENERATED by scripts/build.mjs from js/website.mjs (the source, with its comments): edit that file | spec: docs/markup-contract.md | load with defer */
1
+ /*! @gemboss/website-ui 0.14.0 website.js | GENERATED by scripts/build.mjs from js/website.mjs (the source, with its comments): edit that file | spec: docs/markup-contract.md | load with defer */
2
2
  (function () {
3
3
  'use strict';
4
4
  if (window.gwWebsite) return;
5
5
 
6
- var version = '0.13.0';
6
+ var version = '0.14.0';
7
7
  var api = { version: version, init: init, destroy: destroy };
8
8
  var doc, root, mine, fine, sys, wide, desk, mid, live = [], queued = false;
9
9
  var still, lights;
package/js/website.mjs CHANGED
@@ -6,7 +6,7 @@
6
6
  // the export line and the // comments, plus auto-init): edit this file, then run the build. Keep comments on lines of
7
7
  // their own, so the build can leave them out.
8
8
 
9
- var version = '0.13.0';
9
+ var version = '0.14.0';
10
10
  var api = { version: version, init: init, destroy: destroy };
11
11
  // Page state. Set up by the first init(), never at import: a server can import this file.
12
12
  var doc, root, mine, fine, sys, wide, desk, mid, live = [], queued = false;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gemboss/website-ui",
3
- "version": "0.13.0",
3
+ "version": "0.14.0",
4
4
  "description": "The GemBoss website kit: tokens, header, footer, sections and the rules (AGENTS.md) that GemCommerce public websites share, plus a CLI that checks a site, reports kit gaps and upgrades.",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",
package/system.json CHANGED
@@ -21,6 +21,7 @@
21
21
  "on-accent": "#ffffff",
22
22
  "success": "#007f5f",
23
23
  "success-soft": "#e3f1df",
24
+ "success-strong": "#0a6a4c",
24
25
  "warning": "#9a6700",
25
26
  "warning-soft": "#fbf1dc",
26
27
  "danger": "#b42318",
@@ -51,6 +52,7 @@
51
52
  "on-accent": "#0d0d12",
52
53
  "success": "#34c38f",
53
54
  "success-soft": "#132a22",
55
+ "success-strong": "#34c38f",
54
56
  "warning": "#e0b341",
55
57
  "warning-soft": "#2b2410",
56
58
  "danger": "#ff6b5a",
@@ -91,7 +93,7 @@
91
93
  "roles": {
92
94
  "action": "The thing you click: ink, or the brand's accent when the site chose the accent action profile (profiles.action).",
93
95
  "accent": "Links, focus rings, active state, a chart line, the 8px label square; the primary button only through the accent action profile. Never body text, never words in a heading, never a section band.",
94
- "success/warning/danger": "State only. Their -soft tints are grounds: a tip or a warning callout, a success or an error badge, a field marked invalid. danger (0.6.0, gap #28) is the dashboard's --gemboss-danger family: the words of a field's error and the fill of a destructive button (on-danger on it).",
96
+ "success/warning/danger": "State only. success-strong (0.14.0) is success's text form, the words of a status chip on its tint (gemboss.ai's emerald ink, 5.6:1). Their -soft tints are grounds: a tip or a warning callout, a success or an error badge, a field marked invalid. danger (0.6.0, gap #28) is the dashboard's --gemboss-danger family: the words of a field's error and the fill of a destructive button (on-danger on it).",
95
97
  "line-control": "The border of a form control (a field, a checkbox, a radio), 0.6.0: it must reach 3:1 on bg, bg-soft and surface, light and dark, where line and line-strong are hairlines that do not. Like the dashboard's --gemboss-field-line.",
96
98
  "wash": "The hero wash and illustrations only.",
97
99
  "scrim": "The veil over the page while a mega menu is open (0.11.0): a dim and a 4px blur, as gemboss.ai.",
package/website.css CHANGED
@@ -1,4 +1,4 @@
1
- /*! @gemboss/website-ui 0.13.0 | generated by scripts/build.mjs from the files in css/. Edit those and not this file */
1
+ /*! @gemboss/website-ui 0.14.0 | generated by scripts/build.mjs from the files in css/. Edit those and not this file */
2
2
  /* @gemboss/website-ui tokens. GENERATED from system.json by scripts/build.mjs: do not edit by hand. */
3
3
  :root {
4
4
  color-scheme: light;
@@ -127,6 +127,7 @@
127
127
  --gw-on-accent: var(--gw-on-accent-light);
128
128
  --gw-success: #007f5f;
129
129
  --gw-success-soft: #e3f1df;
130
+ --gw-success-strong: #0a6a4c;
130
131
  --gw-warning: #9a6700;
131
132
  --gw-warning-soft: #fbf1dc;
132
133
  --gw-danger: #b42318;
@@ -159,6 +160,7 @@
159
160
  --gw-on-accent: var(--gw-on-accent-dark);
160
161
  --gw-success: #34c38f;
161
162
  --gw-success-soft: #132a22;
163
+ --gw-success-strong: #34c38f;
162
164
  --gw-warning: #e0b341;
163
165
  --gw-warning-soft: #2b2410;
164
166
  --gw-danger: #ff6b5a;
@@ -194,6 +196,7 @@
194
196
  --gw-on-accent: var(--gw-on-accent-dark);
195
197
  --gw-success: #34c38f;
196
198
  --gw-success-soft: #132a22;
199
+ --gw-success-strong: #34c38f;
197
200
  --gw-warning: #e0b341;
198
201
  --gw-warning-soft: #2b2410;
199
202
  --gw-danger: #ff6b5a;
@@ -228,6 +231,7 @@
228
231
  --gw-on-accent: var(--gw-on-accent-light);
229
232
  --gw-success: #007f5f;
230
233
  --gw-success-soft: #e3f1df;
234
+ --gw-success-strong: #0a6a4c;
231
235
  --gw-warning: #9a6700;
232
236
  --gw-warning-soft: #fbf1dc;
233
237
  --gw-danger: #b42318;
@@ -260,6 +264,7 @@
260
264
  --gw-on-accent: var(--gw-on-accent-dark);
261
265
  --gw-success: #34c38f;
262
266
  --gw-success-soft: #132a22;
267
+ --gw-success-strong: #34c38f;
263
268
  --gw-warning: #e0b341;
264
269
  --gw-warning-soft: #2b2410;
265
270
  --gw-danger: #ff6b5a;
@@ -662,6 +667,29 @@ h5, h6 { font-size: 16px; font-weight: 600; letter-spacing: 0; }
662
667
  .gw-badge--danger { background: var(--gw-danger-soft); color: var(--gw-ink); }
663
668
  .gw-badge--danger::before { content: ""; flex: none; width: 6px; height: 6px; border-radius: var(--gw-radius-chip); background: var(--gw-danger); }
664
669
 
670
+ /* Status chip (0.14.0): gemboss.ai's "pills", a state inside a drawn screen of the product (Live, a test, Early access), as
671
+ the GemBoss app draws it: a rounded rectangle (the action radius), 28px, 12px/500 words, neutral by default. --success is
672
+ live (its words in success's text form), --accent a test, --early neutral with the dot in the accent. The dot is an
673
+ optional `.gw-status__dot` before the words. A label that names a thing (New, Recommended) is a .gw-badge. */
674
+ .gw-status {
675
+ display: inline-flex;
676
+ align-items: center;
677
+ gap: 6px;
678
+ min-height: 28px;
679
+ padding: 6px 8px;
680
+ border-radius: var(--gw-radius-action);
681
+ background: color-mix(in srgb, var(--gw-ink) 8%, transparent);
682
+ color: var(--gw-ink-2);
683
+ font-size: 12px;
684
+ font-weight: 500;
685
+ line-height: 16px;
686
+ white-space: nowrap;
687
+ }
688
+ .gw-status--success { background: var(--gw-success-soft); color: var(--gw-success-strong); }
689
+ .gw-status--accent { background: var(--gw-accent-soft); color: var(--gw-accent-strong); }
690
+ .gw-status__dot { width: 6px; height: 6px; border-radius: var(--gw-radius-chip); background: currentColor; }
691
+ .gw-status--early .gw-status__dot { background: var(--gw-accent); }
692
+
665
693
  /* cards sit: white, 1px hairline, the card radius of the site's profile (12, 20 in soft), the dashboard's resting
666
694
  shadow (Chris 24/10/2026: one language with the app); no hover lift. A soft card is a tint and carries no shadow. */
667
695
  .gw-card {
@@ -695,35 +723,48 @@ h5, h6 { font-size: 16px; font-weight: 600; letter-spacing: 0; }
695
723
  :where(.gw-card, .gw-feature) p { font-size: 16px; color: var(--gw-muted); }
696
724
 
697
725
  /* a framed screen: a browser or app window around a screenshot or a drawn mock-up */
726
+ /* 0.14.0: gemboss.ai's frame, 1:1: it floats (the raised shadow), 13px at 20px lines; the bar 40px with 12px sides, three
727
+ 8px dots 6px apart, the words 16px after them and 8px between the bar's parts, one line, cut when too long; bold words in
728
+ the bar in ink. */
698
729
  .gw-window {
730
+ position: relative;
699
731
  overflow: hidden;
700
732
  border: 1px solid var(--gw-line);
701
733
  border-radius: var(--gw-radius-card);
702
734
  background: var(--gw-surface);
703
735
  color: var(--gw-ink);
704
- box-shadow: var(--gw-shadow);
736
+ box-shadow: var(--gw-shadow-raised);
705
737
  font-size: 13px;
706
- line-height: 1.5;
738
+ line-height: 20px;
707
739
  }
708
740
  .gw-window__bar {
709
741
  display: flex;
710
742
  align-items: center;
711
- gap: 12px;
743
+ gap: 8px;
712
744
  min-height: 40px;
713
- padding: 8px 16px;
745
+ padding: 0 12px;
714
746
  border-bottom: 1px solid var(--gw-line);
715
747
  color: var(--gw-muted);
716
748
  font-size: 12px;
749
+ white-space: nowrap;
750
+ overflow: hidden;
717
751
  }
718
752
  .gw-window__bar::before {
719
753
  content: "";
720
754
  flex: none;
721
- width: 36px;
755
+ width: 8px;
722
756
  height: 8px;
723
- background:
724
- radial-gradient(circle at 4px 4px, var(--gw-line-strong) 4px, transparent 4px),
725
- radial-gradient(circle at 18px 4px, var(--gw-line-strong) 4px, transparent 4px),
726
- radial-gradient(circle at 32px 4px, var(--gw-line-strong) 4px, transparent 4px);
757
+ margin-right: 36px;
758
+ border-radius: var(--gw-radius-chip);
759
+ background: var(--gw-line-strong);
760
+ box-shadow: 14px 0 0 var(--gw-line-strong), 28px 0 0 var(--gw-line-strong);
761
+ }
762
+ .gw-window__bar > :first-child { min-width: 0; overflow: hidden; }
763
+ .gw-window__bar b { color: var(--gw-ink); font-weight: 600; }
764
+ /* up to 560px the bar's words wrap rather than being cut: the bar grows, its parts at the top (gemboss.ai) */
765
+ @media (max-width: 560px) {
766
+ .gw-window__bar { align-items: flex-start; padding-block: 8px; white-space: normal; }
767
+ .gw-window__bar > :first-child { overflow: visible; }
727
768
  }
728
769
  .gw-window__body { padding: 16px; }
729
770
  .gw-window__body:has(> img:only-child) { padding: 0; }
@@ -752,19 +793,31 @@ h5, h6 { font-size: 16px; font-weight: 600; letter-spacing: 0; }
752
793
  .gw-icon svg { width: 20px; height: 20px; }
753
794
 
754
795
  /* list with check marks */
755
- .gw-list--check { display: grid; gap: 12px; padding: 0; list-style: none; }
756
- .gw-list--check > li { position: relative; padding-left: 24px; }
796
+ /* 0.14.0: gemboss.ai's, 1:1: 14px at 1.5 lines, the words 28px in (a 20px column for the mark, 8px after it); the mark a
797
+ 16px tile on the accent's tint, 4px down, with the tick in the accent (the tick follows the theme and the brand). The mark
798
+ is out of the flow, so an item may hold words and links side by side. */
799
+ .gw-list--check { display: grid; gap: 12px; padding: 0; list-style: none; font-size: 14px; line-height: 1.5; }
800
+ .gw-list--check > li { position: relative; padding-left: 28px; }
757
801
  .gw-list--check > li::before {
758
802
  content: "";
759
803
  position: absolute;
760
804
  left: 0;
761
- top: 6px;
762
- top: calc((1lh - 16px) / 2);
805
+ top: 4px;
806
+ width: 16px;
807
+ height: 16px;
808
+ border-radius: var(--gw-radius-4);
809
+ background: var(--gw-accent-soft);
810
+ }
811
+ .gw-list--check > li::after {
812
+ content: "";
813
+ position: absolute;
814
+ left: 0;
815
+ top: 4px;
763
816
  width: 16px;
764
817
  height: 16px;
765
818
  background: var(--gw-accent);
766
- -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.4l2.9 2.8L12.5 5' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px no-repeat;
767
- mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.4l2.9 2.8L12.5 5' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px no-repeat;
819
+ -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.2l2.6 2.5L12 5.3' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px no-repeat;
820
+ mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.2l2.6 2.5L12 5.3' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px no-repeat;
768
821
  }
769
822
 
770
823
  /* table: the wrapper scrolls inside its own box on phones, the page never does */
@@ -787,10 +840,12 @@ h5, h6 { font-size: 16px; font-weight: 600; letter-spacing: 0; }
787
840
  .gw-table--compare thead th:not(:first-child) { text-align: center; }
788
841
  .gw-table--compare tbody th { position: sticky; left: 0; z-index: 1; background: var(--gw-surface); min-width: 160px; }
789
842
 
790
- /* FAQ: native details/summary, no script */
843
+ /* FAQ: native details/summary, no script. 0.14.0: gemboss.ai's, 1:1 (the question in the brand face alone, at the line
844
+ height around it; the + is the face's own glyph in the accent, turned 45 degrees when open; the answer 33em wide,
845
+ rising in as the item opens) */
791
846
  .gw-faq { display: grid; gap: 12px; }
792
847
  .gw-faq__item {
793
- padding: 0 24px;
848
+ padding: 2px 24px;
794
849
  border: 1px solid var(--gw-line);
795
850
  border-radius: var(--gw-radius-card);
796
851
  background: var(--gw-surface);
@@ -803,25 +858,28 @@ h5, h6 { font-size: 16px; font-weight: 600; letter-spacing: 0; }
803
858
  gap: 16px;
804
859
  min-height: 44px;
805
860
  padding: 20px 0;
861
+ font-family: var(--gw-font-action);
806
862
  font-size: 18px;
807
863
  font-weight: 600;
808
- line-height: 1.4;
809
864
  list-style: none;
810
865
  cursor: pointer;
811
866
  }
812
867
  .gw-faq__item > summary::-webkit-details-marker { display: none; }
813
868
  .gw-faq__item > summary::after {
814
- content: "";
815
- flex: none;
816
- width: 16px;
817
- height: 16px;
818
- background:
819
- linear-gradient(var(--gw-accent), var(--gw-accent)) center / 16px 2px no-repeat,
820
- linear-gradient(var(--gw-accent), var(--gw-accent)) center / 2px 16px no-repeat;
821
- transition: transform 0.2s var(--gw-ease);
869
+ content: "+";
870
+ color: var(--gw-accent);
871
+ font-size: 24px;
872
+ font-weight: 400;
873
+ transition: transform 0.2s ease;
822
874
  }
823
875
  .gw-faq__item[open] > summary::after { transform: rotate(45deg); }
824
- .gw-faq__item > :not(summary) { margin: 0 0 20px; max-width: 68ch; color: var(--gw-muted); font-size: 16px; }
876
+ .gw-faq__item > :not(summary) { margin: 0 0 20px; color: var(--gw-muted); font-size: 16px; }
877
+ .gw-faq__item > p { max-width: 33em; }
878
+ @keyframes gw-faq-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
879
+ .gw-faq__item[open] > :not(summary) { animation: gw-faq-in 0.28s ease; }
880
+ @media (prefers-reduced-motion: reduce) { .gw-faq__item[open] > :not(summary) { animation: none; } }
881
+ /* phones: the rows tighten (gemboss.ai), never under the 44px a finger needs */
882
+ @media (max-width: 560px) { .gw-faq__item > summary { padding-block: 4px; } }
825
883
 
826
884
  /* touch: every control is at least 44px tall. A button up to 768px (0.12.0, as gemboss.ai: by the width, not the
827
885
  pointer), its label wrapping (and tighter) from 480px down in the page's <main>, so a long one never pushes the page
package/website.min.css CHANGED
@@ -1 +1 @@
1
- /*! @gemboss/website-ui 0.13.0 | generated by scripts/build.mjs from the files in css/. Edit those and not this file */ :root{color-scheme: light;--gw-font: Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--gw-font-mono: ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--gw-font-action: Inter;--gw-text-11: 11px;--gw-text-12: 12px;--gw-text-13: 13px;--gw-text-14: 14px;--gw-text-16: 16px;--gw-text-18: 18px;--gw-text-20: 20px;--gw-text-22: 22px;--gw-text-24: 24px;--gw-text-30: 30px;--gw-display-h1: clamp(40px,4.6vw,68px);--gw-display-h2: clamp(32px,3.4vw,52px);--gw-display-wordmark: clamp(40px,9vw,128px);--gw-display-weight: 600;--gw-display-tracking: -0.03em;--gw-display-h1-leading: 1.1;--gw-display-h2-leading: 1.06;--gw-heading-weight: 650;--gw-heading-tracking: -0.022em;--gw-heading-leading: 1.08;--gw-body-size: 18px;--gw-body-leading: 1.6;--gw-space-0: 0;--gw-space-2: 2px;--gw-space-4: 4px;--gw-space-6: 6px;--gw-space-8: 8px;--gw-space-12: 12px;--gw-space-16: 16px;--gw-space-20: 20px;--gw-space-24: 24px;--gw-space-32: 32px;--gw-space-40: 40px;--gw-space-48: 48px;--gw-space-64: 64px;--gw-space-80: 80px;--gw-space-96: 96px;--gw-space-120: 120px;--gw-space-section: clamp(56px,38px + 5vw,110px);--gw-radius-0: 0;--gw-radius-2: 2px;--gw-radius-4: 4px;--gw-radius-6: 6px;--gw-radius-8: 8px;--gw-radius-12: 12px;--gw-radius-16: 16px;--gw-radius-20: 20px;--gw-radius-24: 24px;--gw-radius-999: 999px;--gw-radius-action: 8px;--gw-radius-chip: 999px;--gw-radius-card: 12px;--gw-radius-panel: 16px;--gw-radius-popover: 20px;--gw-shadow: 0 1px 2px rgba(31,30,29,.04),0 2px 6px rgba(31,30,29,.06);--gw-shadow-sm: 0 1px 2px rgba(31,30,29,.04);--gw-shadow-raised: 0 4px 16px rgba(31,30,29,.10);--gw-shadow-lift: 0 16px 32px -12px rgba(4,5,26,.72),0 4px 8px -2px rgba(4,5,26,.36);--gw-wrap: 1120px;--gw-wrap-narrow: 780px;--gw-gutter: 22px;--gw-header-height: 64px;--gw-header-gap: 16px;--gw-header-surface: 85%;--gw-header-blur: 10px;--gw-button-height: 40px;--gw-tap-min: 44px;--gw-ease: cubic-bezier(.22,1,.36,1);--gw-reveal-ms: 700ms;--gw-reveal-distance: 20px;--gw-spin-ms: 700ms;--gw-spot-radius: 260px;--gw-spot-radius-action: 120px;--gw-spot-strength: 22%;--gw-spot-strength-action: 38%;--gw-spot-strength-stage: 40%;--gw-spot-ms: 550ms;--gw-spot-ease: cubic-bezier(.16,1,.3,1);--gw-wash-pink: #ff6f5e;--gw-wash-violet: #7c8af7;--gw-wash-sky: #43b0ff;--gw-wash-mint: #1fcf9f;--gw-stage-glow: rgba(139,147,255,0.5);--gw-stage-glow-2: rgba(86,97,245,0.34);--gw-stage-top: #1d2058;--gw-stage-bottom: #0d0f2e;--gw-stage-dot: rgba(255,255,255,0.1);--gw-stage-ink: #ffffff;--gw-announce-bg: #171a38;--gw-announce-ink: #b9beda;--gw-announce-line: rgba(255,255,255,0.06);--gw-announce-tag: rgba(122,132,255,0.2);--gw-announce-tag-ink: #a7aeff;--gw-announce-link: #ffffff;--gw-announce-link-line: rgba(255,255,255,0.28);--gw-accent-light: #5661f5;--gw-accent-strong-light: #3a44de;--gw-accent-soft-light: #eef0fe;--gw-on-accent-light: #ffffff;--gw-accent-dark: #7c84ff;--gw-accent-strong-dark: #a3a9ff;--gw-accent-soft-dark: #1f2140;--gw-on-accent-dark: #0d0d12;--gw-bg: #ffffff;--gw-bg-soft: #f2f3f5;--gw-surface: #ffffff;--gw-ink: #1b1c1e;--gw-ink-2: #3b3d42;--gw-muted: #6a6d73;--gw-line: #e5e7ea;--gw-line-strong: #d5d8dd;--gw-line-control: #85888e;--gw-action: #1b1c1e;--gw-action-hover: #000000;--gw-on-action: #ffffff;--gw-accent: var(--gw-accent-light);--gw-accent-strong: var(--gw-accent-strong-light);--gw-accent-soft: var(--gw-accent-soft-light);--gw-on-accent: var(--gw-on-accent-light);--gw-success: #007f5f;--gw-success-soft: #e3f1df;--gw-warning: #9a6700;--gw-warning-soft: #fbf1dc;--gw-danger: #b42318;--gw-danger-soft: #fff0e9;--gw-on-danger: #ffffff;--gw-night: #0c0e14;--gw-night-2: #141722;--gw-on-night: #e3e4e8;--gw-on-night-muted: #9aa3ff;--gw-scrim: rgba(12,14,18,0.12)}@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){color-scheme: dark;--gw-bg: #0d0d12;--gw-bg-soft: #121318;--gw-surface: #16171d;--gw-ink: #e3e4e8;--gw-ink-2: #c4c6cc;--gw-muted: #9a9ca6;--gw-line: #2a2b33;--gw-line-strong: #383944;--gw-line-control: #6a6d78;--gw-action: #e3e4e8;--gw-action-hover: #ffffff;--gw-on-action: #0d0d12;--gw-accent: var(--gw-accent-dark);--gw-accent-strong: var(--gw-accent-strong-dark);--gw-accent-soft: var(--gw-accent-soft-dark);--gw-on-accent: var(--gw-on-accent-dark);--gw-success: #34c38f;--gw-success-soft: #132a22;--gw-warning: #e0b341;--gw-warning-soft: #2b2410;--gw-danger: #ff6b5a;--gw-danger-soft: #2e1714;--gw-on-danger: #0d0d12;--gw-night: #0a0b10;--gw-night-2: #12141c;--gw-on-night: #e3e4e8;--gw-on-night-muted: #9aa3ff;--gw-scrim: rgba(0,0,0,0.35);--gw-shadow: 0 1px 0 rgba(0,0,0,.3);--gw-shadow-sm: 0 1px 0 rgba(0,0,0,.25);--gw-shadow-raised: 0 4px 16px rgba(0,0,0,.5)}}:root[data-theme="dark"]{color-scheme: dark;--gw-bg: #0d0d12;--gw-bg-soft: #121318;--gw-surface: #16171d;--gw-ink: #e3e4e8;--gw-ink-2: #c4c6cc;--gw-muted: #9a9ca6;--gw-line: #2a2b33;--gw-line-strong: #383944;--gw-line-control: #6a6d78;--gw-action: #e3e4e8;--gw-action-hover: #ffffff;--gw-on-action: #0d0d12;--gw-accent: var(--gw-accent-dark);--gw-accent-strong: var(--gw-accent-strong-dark);--gw-accent-soft: var(--gw-accent-soft-dark);--gw-on-accent: var(--gw-on-accent-dark);--gw-success: #34c38f;--gw-success-soft: #132a22;--gw-warning: #e0b341;--gw-warning-soft: #2b2410;--gw-danger: #ff6b5a;--gw-danger-soft: #2e1714;--gw-on-danger: #0d0d12;--gw-night: #0a0b10;--gw-night-2: #12141c;--gw-on-night: #e3e4e8;--gw-on-night-muted: #9aa3ff;--gw-scrim: rgba(0,0,0,0.35);--gw-shadow: 0 1px 0 rgba(0,0,0,.3);--gw-shadow-sm: 0 1px 0 rgba(0,0,0,.25);--gw-shadow-raised: 0 4px 16px rgba(0,0,0,.5)}:root[data-theme="light"]{color-scheme: light;--gw-bg: #ffffff;--gw-bg-soft: #f2f3f5;--gw-surface: #ffffff;--gw-ink: #1b1c1e;--gw-ink-2: #3b3d42;--gw-muted: #6a6d73;--gw-line: #e5e7ea;--gw-line-strong: #d5d8dd;--gw-line-control: #85888e;--gw-action: #1b1c1e;--gw-action-hover: #000000;--gw-on-action: #ffffff;--gw-accent: var(--gw-accent-light);--gw-accent-strong: var(--gw-accent-strong-light);--gw-accent-soft: var(--gw-accent-soft-light);--gw-on-accent: var(--gw-on-accent-light);--gw-success: #007f5f;--gw-success-soft: #e3f1df;--gw-warning: #9a6700;--gw-warning-soft: #fbf1dc;--gw-danger: #b42318;--gw-danger-soft: #fff0e9;--gw-on-danger: #ffffff;--gw-night: #0c0e14;--gw-night-2: #141722;--gw-on-night: #e3e4e8;--gw-on-night-muted: #9aa3ff;--gw-scrim: rgba(12,14,18,0.12)}.gw-band--night,.gw-showcase{color-scheme: dark;--gw-bg: var(--gw-night);--gw-bg-soft: var(--gw-night-2);--gw-surface: var(--gw-night-2);--gw-ink: #e3e4e8;--gw-ink-2: #c4c6cc;--gw-muted: #9a9ca6;--gw-line: #2a2b33;--gw-line-strong: #383944;--gw-line-control: #6a6d78;--gw-action: #e3e4e8;--gw-action-hover: #ffffff;--gw-on-action: #0d0d12;--gw-accent: var(--gw-accent-dark);--gw-accent-strong: var(--gw-accent-strong-dark);--gw-accent-soft: var(--gw-accent-soft-dark);--gw-on-accent: var(--gw-on-accent-dark);--gw-success: #34c38f;--gw-success-soft: #132a22;--gw-warning: #e0b341;--gw-warning-soft: #2b2410;--gw-danger: #ff6b5a;--gw-danger-soft: #2e1714;--gw-on-danger: #0d0d12;--gw-scrim: rgba(0,0,0,0.35)}:root[data-gw-action="accent"],:root[data-gw-action="accent"] :is(.gw-band--night,.gw-showcase){--gw-action: var(--gw-accent);--gw-action-hover: var(--gw-accent-strong);--gw-on-action: var(--gw-on-accent)}:root[data-gw-radius="soft"]{--gw-radius-action: 12px;--gw-radius-card: 20px;--gw-radius-panel: 24px;--gw-radius-popover: 24px}*,*::before,*::after{box-sizing: border-box}[hidden]{display: none !important}html{-webkit-text-size-adjust: 100%;text-size-adjust: 100%}body{margin: 0;background: var(--gw-bg);color: var(--gw-ink);font-family: var(--gw-font);font-size: var(--gw-body-size);line-height: var(--gw-body-leading);-webkit-font-smoothing: antialiased;text-rendering: optimizeLegibility}:where(h1,h2,h3,h4,h5,h6,p,ul,ol,dl,dd,figure,blockquote){margin: 0}img,svg,video{display: block;max-width: 100%}img,video{height: auto}button,input,select,textarea{font: inherit;color: inherit}button{cursor: pointer}a{color: inherit;text-decoration: none}b,strong{font-weight: 600}.gw-page{display: flex;flex-direction: column;min-height: 100vh;min-height: 100dvh}.gw-page > main{flex: 1 0 auto}h1,h2,h3,h4,h5,h6,.gw-h1,.gw-h2,.gw-h3,.gw-h4{font-weight: var(--gw-heading-weight);letter-spacing: var(--gw-heading-tracking);line-height: var(--gw-heading-leading);text-wrap: balance}h1,.gw-h1,h2,.gw-h2{font-weight: var(--gw-display-weight);letter-spacing: var(--gw-display-tracking)}h1,.gw-h1{font-size: var(--gw-display-h1);line-height: var(--gw-display-h1-leading)}h2,.gw-h2{font-size: var(--gw-display-h2);line-height: var(--gw-display-h2-leading)}h3,.gw-h3{font-size: 20px;font-weight: 600;letter-spacing: -0.02em;line-height: 1.2}h4,.gw-h4{font-size: 20px;font-weight: 600;letter-spacing: -0.01em}h5,h6{font-size: 16px;font-weight: 600;letter-spacing: 0}.gw-lead{font-size: 18px;line-height: 1.55;color: var(--gw-muted);max-width: 58ch}.gw-note{font-size: 14px;color: var(--gw-muted)}.gw-dim{color: var(--gw-muted)}.gw-label{display: inline-flex;align-items: center;gap: 8px;font-size: 13px;font-weight: 500;color: var(--gw-muted)}.gw-label::before{content: "";width: 8px;height: 8px;border-radius: var(--gw-radius-2);background: var(--gw-label-mark,var(--gw-ink))}:where(p,dd,td,figcaption,.gw-list--check li,.gw-prose) a:not([class]),.gw-link{color: var(--gw-accent-strong);font-weight: 500;text-decoration: underline;text-decoration-thickness: 1px;text-underline-offset: 4px;text-decoration-color: color-mix(in srgb,currentColor 40%,transparent)}:where(p,dd,td,figcaption,.gw-list--check li,.gw-prose) a:not([class]):hover,.gw-link:hover{text-decoration-color: currentColor}:focus-visible{border-radius: var(--gw-radius-4);outline: 2px solid var(--gw-accent);outline-offset: 3px}[id]{scroll-margin-top: calc(var(--gw-header-height) + 16px)}.gw-skip{position: absolute;left: -9999px;top: 0;z-index: 200;padding: 12px 20px;border-radius: 0 0 var(--gw-radius-card) 0;background: var(--gw-accent);color: var(--gw-on-accent);box-shadow: var(--gw-shadow);font-size: 14px;font-weight: 600}.gw-skip:focus{left: 0;border-radius: 0 0 var(--gw-radius-card) 0}.gw-visually-hidden{position: absolute;width: 1px;height: 1px;padding: 0;overflow: hidden;clip-path: inset(50%);white-space: nowrap;border: 0}.gw-reveal{opacity: 0;transform: translateY(var(--gw-reveal-distance));transition: opacity var(--gw-reveal-ms) var(--gw-ease),transform var(--gw-reveal-ms) var(--gw-ease);animation: gw-reveal-failsafe 1ms linear 2.5s forwards}.gw-reveal.is-in{opacity: 1;transform: none}@keyframes gw-reveal-failsafe{to{opacity: 1;transform: none}}@media (prefers-reduced-motion: reduce){*,*::before,*::after{scroll-behavior: auto !important}.gw-reveal{opacity: 1;transform: none;transition: none;animation: none}}.gw-wrap,.gw-wrap--narrow{width: min(100% - 2 * var(--gw-gutter),var(--gw-wrap));margin-inline: auto}.gw-wrap--narrow{max-width: var(--gw-wrap-narrow)}.gw-section{padding-block: var(--gw-space-section)}.gw-section--soft{background: var(--gw-bg-soft)}.gw-section--tight{padding-block: 40px}@media (min-width: 768px){.gw-section--tight{padding-block: 64px}}.gw-section__head{max-width: 760px}.gw-section__head--center{margin-inline: auto;text-align: center}.gw-section__head--center .gw-lead{margin-inline: auto}:where(.gw-section__head) + *{margin-top: 40px}@media (min-width: 768px){:where(.gw-section__head) + *{margin-top: 48px}}:where(.gw-section__head,.gw-hero > .gw-wrap,.gw-split > :not(.gw-window),.gw-cta,.gw-card,.gw-feature,.gw-plan) > * + *{margin-top: 16px}:where(.gw-section__head,.gw-hero > .gw-wrap,.gw-split > :not(.gw-window),.gw-cta,.gw-card,.gw-plan) > :is(.gw-actions,.gw-segmented){margin-top: 32px}:where(.gw-section__head,.gw-hero > .gw-wrap,.gw-split > :not(.gw-window),.gw-cta,.gw-card,.gw-plan) > .gw-list--check{margin-top: 24px}:where(.gw-section__head,.gw-split > :not(.gw-window),.gw-cta) > :where(* + .gw-lead){margin-top: 20px}.gw-actions{display: flex;flex-wrap: wrap;align-items: center;gap: 12px}.gw-grid,.gw-grid--2,.gw-grid--3,.gw-grid--4{display: grid;grid-template-columns: minmax(0,1fr);gap: 16px}@media (min-width: 480px){.gw-grid--4{grid-template-columns: repeat(2,minmax(0,1fr))}}@media (min-width: 768px){.gw-grid,.gw-grid--2,.gw-grid--3,.gw-grid--4{gap: 24px}.gw-grid--2{grid-template-columns: repeat(2,minmax(0,1fr))}.gw-grid--3{grid-template-columns: repeat(3,minmax(0,1fr))}}@media (min-width: 1080px){.gw-grid--4{grid-template-columns: repeat(4,minmax(0,1fr))}}.gw-band--night,.gw-showcase{position: relative;isolation: isolate;color: var(--gw-ink);background: radial-gradient(800px 360px at 50% 0%,color-mix(in srgb,var(--gw-accent) 22%,transparent),transparent 72%),var(--gw-night)}.gw-btn{position: relative;display: inline-flex;align-items: center;gap: 8px;max-width: 100%;height: var(--gw-button-height);padding: 0 20px;border: 1px solid transparent;border-radius: var(--gw-radius-action);background: var(--gw-action);color: var(--gw-on-action);font-family: var(--gw-font-action);font-size: 14px;font-weight: 600;letter-spacing: 0;text-align: center;white-space: nowrap;cursor: pointer;transition: background 0.15s ease,border-color 0.15s ease}.gw-btn:hover{transform: translateY(-1px);box-shadow: var(--gw-shadow)}.gw-btn svg{flex: none;width: 16px;height: 16px}.gw-btn--secondary{background: transparent;border-color: var(--gw-line-strong);color: var(--gw-ink)}.gw-btn--secondary:hover{background: transparent;border-color: var(--gw-ink)}.gw-btn--ghost{background: transparent;color: var(--gw-ink)}.gw-btn--ghost:hover{background: var(--gw-bg-soft)}.gw-btn:is(.gw-btn--secondary,.gw-btn--ghost):hover{transform: none;box-shadow: none}.gw-btn__arrow{letter-spacing: 0;transition: transform 0.18s ease}.gw-btn:hover .gw-btn__arrow{transform: translateX(3px)}.gw-btn--on-night{background: var(--gw-on-night);color: var(--gw-night)}.gw-btn--on-night:hover{background: var(--gw-on-night);opacity: 0.88}.gw-btn--sm{height: 36px;padding: 0 16px}.gw-btn--sm::after{content: "";position: absolute;top: -6px;right: 0;bottom: -6px;left: 0}.gw-btn--lg{height: 48px;padding: 0 24px;font-size: 16px}.gw-btn--block{display: flex;width: 100%;justify-content: center}.gw-btn:disabled,.gw-btn[aria-disabled="true"]{opacity: 0.48;cursor: not-allowed;pointer-events: none}.gw-btn:active{background: var(--gw-action-hover)}.gw-btn--secondary:active{background: var(--gw-bg-soft);border-color: var(--gw-ink)}.gw-btn--ghost:active{background: var(--gw-line)}.gw-btn--on-night:active{background: var(--gw-on-night);opacity: 0.76}.gw-btn--danger{background: var(--gw-danger);color: var(--gw-on-danger)}.gw-btn--danger:hover,.gw-btn--danger:active{background: color-mix(in srgb,var(--gw-danger) 84%,var(--gw-ink))}.gw-btn[aria-busy="true"]{cursor: progress;-webkit-text-fill-color: transparent}.gw-btn[aria-busy="true"] svg{opacity: 0}.gw-btn[aria-busy="true"]::before{content: "";position: absolute;top: 50%;left: 50%;width: 16px;height: 16px;margin: -8px 0 0 -8px;border: 2px solid color-mix(in srgb,currentColor 18%,transparent);border-top-color: currentColor;border-radius: var(--gw-radius-chip);animation: gw-spin var(--gw-spin-ms) linear infinite}@keyframes gw-spin{to{transform: rotate(360deg)}}@media (prefers-reduced-motion: reduce){.gw-btn[aria-busy="true"]::before{border: 0;border-radius: var(--gw-radius-0);background: radial-gradient(circle at 3px 50%,currentColor 1.5px,transparent 2px),radial-gradient(circle at 8px 50%,currentColor 1.5px,transparent 2px),radial-gradient(circle at 13px 50%,currentColor 1.5px,transparent 2px);animation: none}}.gw-link--arrow{display: inline-flex;align-items: center;gap: 6px;min-height: 24px;font-weight: 600;text-decoration: none}.gw-link--arrow::after{content: "\2192";transition: transform 0.18s var(--gw-ease)}.gw-link--arrow:hover::after{transform: translateX(2px)}.gw-chip{display: inline-flex;align-items: center;gap: 6px;min-height: 32px;padding: 4px 12px;border: 1px solid var(--gw-line-strong);border-radius: var(--gw-radius-chip);background: var(--gw-surface);color: var(--gw-ink-2);font-size: 13px;font-weight: 500;line-height: 1.4;white-space: nowrap}:is(a,button,label).gw-chip{cursor: pointer}:is(a,button,label).gw-chip:hover{border-color: var(--gw-ink);color: var(--gw-ink)}.gw-chip.is-active,.gw-chip[aria-pressed="true"],.gw-chip[aria-selected="true"]{border-color: var(--gw-accent);background: var(--gw-accent-soft);color: var(--gw-accent-strong)}.gw-segmented{display: inline-flex;max-width: 100%;border: 1px solid var(--gw-line-strong);border-radius: var(--gw-radius-action);background: var(--gw-surface);overflow: hidden;overflow: clip;vertical-align: middle}.gw-segmented--block{display: flex;width: 100%}.gw-segmented > button{display: inline-flex;flex: 0 1 auto;align-items: center;justify-content: center;min-width: 0;height: calc(var(--gw-button-height) - 2px);padding: 0 16px;border: 0;background: transparent;color: var(--gw-muted);font-size: 14px;font-weight: 500;line-height: 1.4;white-space: nowrap;cursor: pointer}.gw-segmented--block > button{flex: 1 1 0}.gw-segmented > button + button{border-left: 1px solid var(--gw-line-strong)}.gw-segmented > button:hover{background: var(--gw-bg-soft);color: var(--gw-ink)}.gw-segmented > button:active{background: var(--gw-line)}.gw-segmented > button:focus-visible{outline-offset: -2px}.gw-segmented > button[aria-checked="true"]{background: var(--gw-accent-soft);color: var(--gw-accent-strong)}.gw-badge{display: inline-flex;align-items: center;gap: 6px;min-height: 24px;padding: 2px 8px;border-radius: var(--gw-radius-chip);background: color-mix(in srgb,var(--gw-ink) 8%,transparent);color: var(--gw-ink-2);font-size: 12px;font-weight: 500;line-height: 1.4;white-space: nowrap;vertical-align: middle}.gw-badge--accent{background: var(--gw-accent-soft);color: var(--gw-accent-strong)}.gw-badge--success{background: var(--gw-success-soft);color: var(--gw-ink)}.gw-badge--success::before,.gw-badge--warning::before{content: "";flex: none;width: 6px;height: 6px;border-radius: var(--gw-radius-chip);background: var(--gw-success)}.gw-badge--warning::before{background: var(--gw-warning)}.gw-badge--danger{background: var(--gw-danger-soft);color: var(--gw-ink)}.gw-badge--danger::before{content: "";flex: none;width: 6px;height: 6px;border-radius: var(--gw-radius-chip);background: var(--gw-danger)}.gw-card{padding: 24px;border: 1px solid var(--gw-line);border-radius: var(--gw-radius-card);background: var(--gw-surface);box-shadow: var(--gw-shadow)}@media (min-width: 768px){.gw-card{padding: 32px}}.gw-card--soft{background: var(--gw-bg-soft);box-shadow: none}.gw-card--link{display: block;color: inherit}.gw-card--link:hover{border-color: var(--gw-line-strong)}.gw-card__media{overflow: hidden;aspect-ratio: 16 / 9;margin: -24px -24px 0;border-top-left-radius: calc(var(--gw-radius-card) - 1px);border-top-right-radius: calc(var(--gw-radius-card) - 1px);background: var(--gw-bg-soft)}.gw-card__media--wide{aspect-ratio: 1200 / 630}.gw-card__media--square{aspect-ratio: 1 / 1}.gw-card__media :is(img,video){width: 100%;height: 100%;object-fit: cover}@media (min-width: 768px){.gw-card__media{margin: -32px -32px 0}}:where(.gw-card,.gw-feature,.gw-plan) > :is(h3,h4) + p{margin-top: 8px}:where(.gw-card,.gw-feature) h3{font-size: 20px}:where(.gw-card,.gw-feature) p{font-size: 16px;color: var(--gw-muted)}.gw-window{overflow: hidden;border: 1px solid var(--gw-line);border-radius: var(--gw-radius-card);background: var(--gw-surface);color: var(--gw-ink);box-shadow: var(--gw-shadow);font-size: 13px;line-height: 1.5}.gw-window__bar{display: flex;align-items: center;gap: 12px;min-height: 40px;padding: 8px 16px;border-bottom: 1px solid var(--gw-line);color: var(--gw-muted);font-size: 12px}.gw-window__bar::before{content: "";flex: none;width: 36px;height: 8px;background: radial-gradient(circle at 4px 4px,var(--gw-line-strong) 4px,transparent 4px),radial-gradient(circle at 18px 4px,var(--gw-line-strong) 4px,transparent 4px),radial-gradient(circle at 32px 4px,var(--gw-line-strong) 4px,transparent 4px)}.gw-window__body{padding: 16px}.gw-window__body:has(> img:only-child){padding: 0}.gw-window__body > img{width: 100%}.gw-window__caption{margin: 0;padding: 0 16px 12px;color: var(--gw-muted);font-size: 12px;line-height: 1.5;text-align: end}.gw-window__body:has(> img:only-child) + .gw-window__caption{padding-top: 12px}.gw-figure > :is(img,video,picture){display: block;width: 100%;height: auto;border-radius: var(--gw-radius-card)}.gw-figure > picture > img{display: block;width: 100%;height: auto;border-radius: inherit}.gw-figure > figcaption{margin-top: 12px;color: var(--gw-muted);font-size: 14px;line-height: 1.5}.gw-icon{display: inline-flex;align-items: center;justify-content: center;flex: none;width: 20px;height: 20px}.gw-icon svg{width: 20px;height: 20px}.gw-list--check{display: grid;gap: 12px;padding: 0;list-style: none}.gw-list--check > li{position: relative;padding-left: 24px}.gw-list--check > li::before{content: "";position: absolute;left: 0;top: 6px;top: calc((1lh - 16px) / 2);width: 16px;height: 16px;background: var(--gw-accent);-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.4l2.9 2.8L12.5 5' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px no-repeat;mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.4l2.9 2.8L12.5 5' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px no-repeat}.gw-table{overflow-x: auto;border: 1px solid var(--gw-line);border-radius: var(--gw-radius-card);background: var(--gw-surface);-webkit-overflow-scrolling: touch}.gw-table table{width: 100%;border-collapse: collapse;font-size: 14px;line-height: 1.5}.gw-table caption{padding: 16px;text-align: left;font-size: 13px;color: var(--gw-muted)}.gw-table th,.gw-table td{padding: 12px 16px;border-bottom: 1px solid var(--gw-line);text-align: left;vertical-align: top}.gw-table thead th{background: var(--gw-bg-soft);color: var(--gw-ink);font-size: 13px;font-weight: 600;white-space: nowrap}.gw-table tbody th{font-weight: 500}.gw-table tbody tr:last-child > *{border-bottom: 0}.gw-table td{color: var(--gw-ink-2);font-variant-numeric: tabular-nums}.gw-table--compare table{min-width: 640px}.gw-table--compare td{text-align: center}.gw-table--compare thead th:not(:first-child){text-align: center}.gw-table--compare tbody th{position: sticky;left: 0;z-index: 1;background: var(--gw-surface);min-width: 160px}.gw-faq{display: grid;gap: 12px}.gw-faq__item{padding: 0 24px;border: 1px solid var(--gw-line);border-radius: var(--gw-radius-card);background: var(--gw-surface)}.gw-faq__item[open]{border-color: var(--gw-line-strong)}.gw-faq__item > summary{display: flex;align-items: center;justify-content: space-between;gap: 16px;min-height: 44px;padding: 20px 0;font-size: 18px;font-weight: 600;line-height: 1.4;list-style: none;cursor: pointer}.gw-faq__item > summary::-webkit-details-marker{display: none}.gw-faq__item > summary::after{content: "";flex: none;width: 16px;height: 16px;background: linear-gradient(var(--gw-accent),var(--gw-accent)) center / 16px 2px no-repeat,linear-gradient(var(--gw-accent),var(--gw-accent)) center / 2px 16px no-repeat;transition: transform 0.2s var(--gw-ease)}.gw-faq__item[open] > summary::after{transform: rotate(45deg)}.gw-faq__item > :not(summary){margin: 0 0 20px;max-width: 68ch;color: var(--gw-muted);font-size: 16px}@media (max-width: 768px){.gw-btn,.gw-btn--sm,.gw-btn--lg{height: auto;min-height: var(--gw-tap-min);padding-block: 8px}.gw-btn--lg{min-height: 48px}}@media (max-width: 480px){:where(main) .gw-btn{white-space: normal;line-height: 1.35}}@media (max-width: 768px),(pointer: coarse){:is(a,button,label).gw-chip{min-height: var(--gw-tap-min)}.gw-segmented > button{height: auto;min-height: var(--gw-tap-min);padding-block: 8px;white-space: normal;text-wrap: balance}}.gw-announce{position: relative;z-index: 60;padding: 12px 16px;border-bottom: 1px solid var(--gw-announce-line);background: var(--gw-announce-bg);color: var(--gw-announce-ink);font-size: 13px;font-weight: 500;line-height: 1.5;letter-spacing: 0.005em;text-align: center}.gw-announce__tag{display: inline-block;margin-right: 12px;padding: 2.5px 8px;border-radius: var(--gw-radius-chip);background: var(--gw-announce-tag);color: var(--gw-announce-tag-ink);font-size: 11px;font-weight: 700;letter-spacing: 0.09em;vertical-align: 1px}.gw-announce a{margin-left: 8px;padding-bottom: 2px;border-bottom: 1px solid var(--gw-announce-link-line);color: var(--gw-announce-link);font-weight: 600;text-decoration: none;white-space: nowrap;transition: border-color 0.18s}.gw-announce a:hover{border-bottom-color: var(--gw-announce-link)}@media (max-width: 520px){.gw-announce{padding: 8px 12px;font-size: 12px}.gw-announce__tag{margin-right: 6px}}.gw-header{position: sticky;top: 0;z-index: 50;border-bottom: 1px solid var(--gw-line);background: var(--gw-surface)}.gw-header.is-scrolled{border-bottom-color: var(--gw-line-strong)}.gw-header__bar{display: flex;align-items: center;gap: 32px;height: var(--gw-header-height)}.gw-header > .gw-header__bar{width: min(100% - 32px,var(--gw-wrap) + 12px);margin-inline: auto;padding-inline: 24px}@media (max-width: 640px){.gw-header > .gw-header__bar{padding-inline: 6px}}.gw-brand{display: inline-flex;align-items: center;gap: 8px;flex: none;color: var(--gw-ink);font-size: 18px;font-weight: 700;letter-spacing: -0.01em;line-height: 1.6;white-space: nowrap}.gw-brand__mark{flex: none;width: 34px;height: 34px;border-radius: var(--gw-radius-8)}@media (max-width: 768px){.gw-brand{min-height: 44px}}.gw-brand__name{line-height: inherit}.gw-nav{display: none;margin-left: 6px}.gw-nav__list{display: flex;align-items: center;gap: 4px;margin: 0;padding: 0;list-style: none}.gw-nav__trigger,.gw-nav__link{display: inline-flex;align-items: center;gap: 6px;padding: 8px 12px;border: 0;border-radius: var(--gw-radius-action);background: transparent;color: var(--gw-ink-2);font-size: 14px;font-weight: 500;line-height: 1.6;white-space: nowrap;cursor: pointer}.gw-nav__trigger:hover,.gw-nav__link:hover,.gw-nav__item.is-open > .gw-nav__trigger{background: var(--gw-bg-soft);color: var(--gw-ink)}.gw-nav__trigger::after,.gw-mobile-menu__group > summary::after{content: "";flex: none;width: 12px;height: 12px;background: currentColor;opacity: 0.55;-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%23000' stroke-width='2.6'/%3E%3C/svg%3E") center / 12px no-repeat;mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%23000' stroke-width='2.6'/%3E%3C/svg%3E") center / 12px no-repeat;transition: transform 0.18s var(--gw-ease)}.gw-nav__trigger[aria-expanded="true"]::after,.gw-mobile-menu__group[open] > summary::after{transform: rotate(180deg)}.gw-nav .gw-nav__trigger,.gw-nav .gw-nav__link{letter-spacing: -0.005em}.gw-nav__link[aria-current="page"],.gw-nav__trigger[aria-current]{color: var(--gw-accent-strong);font-weight: 600}.gw-header{--gw-mega-ease: cubic-bezier(0.25,1,0.5,1);--gw-mega-t: 0.36s;--gw-mega-glide: 0.26s}.gw-nav__item{display: flex}.gw-nav__chev{flex: none;opacity: 0.55;transition: transform 0.18s}.gw-nav__trigger:has(> .gw-nav__chev)::after{content: none}.gw-nav__trigger[aria-expanded="true"] > .gw-nav__chev{transform: rotate(180deg)}.gw-mega-surface,.gw-mega-caret,.gw-nav__pill,.gw-mega__hl{display: none}.gw-scrim{position: fixed;inset: 0;z-index: 40;pointer-events: none;opacity: 0;background: var(--gw-scrim);-webkit-backdrop-filter: blur(4px);backdrop-filter: blur(4px);transition: opacity 0.24s}.gw-scrim.is-on{opacity: 1}.gw-mega a{font-size: 16px;font-weight: 500;letter-spacing: -0.005em}.gw-mega__link b{display: block}.gw-mega__link i{display: block;font-style: normal}@media (min-width: 1081px){.gw-header.has-mega .gw-nav__trigger,.gw-header.has-mega .gw-nav__link{position: relative;z-index: 1;background: none}.gw-header.has-mega .gw-nav__trigger:hover,.gw-header.has-mega .gw-nav__link:hover,.gw-header.has-mega .gw-nav__item:hover > .gw-nav__trigger,.gw-header.has-mega .gw-nav__item:focus-within > .gw-nav__trigger{background: none;color: var(--gw-ink)}.gw-header.has-mega .gw-nav__chev{transform: none;transition: transform 0.2s var(--gw-mega-ease)}.gw-header.has-mega .gw-nav__trigger[aria-expanded="true"] > .gw-nav__chev{transform: rotate(180deg)}.gw-nav__pill{display: block;position: absolute;left: 0;top: 0;z-index: 0;width: 0;height: 0;border-radius: var(--gw-radius-action);pointer-events: none;opacity: 0;background: color-mix(in srgb,var(--gw-ink) 6%,transparent);transition: translate var(--gw-mega-glide) var(--gw-mega-ease),width var(--gw-mega-glide) var(--gw-mega-ease),opacity 0.2s ease}.gw-nav__pill.is-on{opacity: 1}.gw-mega-surface{display: block;position: absolute;left: 0;top: var(--gw-mega-top,73px);z-index: 88;width: 0;height: 0;pointer-events: none;border: 1px solid var(--gw-line);border-radius: var(--gw-radius-popover);background: var(--gw-surface);box-shadow: var(--gw-shadow-raised);opacity: 0;translate: 0 -6px;transition: opacity 0.22s ease,translate var(--gw-mega-t) var(--gw-mega-ease),left var(--gw-mega-t) var(--gw-mega-ease),width var(--gw-mega-t) var(--gw-mega-ease),height var(--gw-mega-t) var(--gw-mega-ease)}.gw-mega-caret{display: block;position: absolute;left: 0;top: calc(var(--gw-mega-top,73px) - 5px);z-index: 89;width: 12px;height: 12px;pointer-events: none;border-top: 1px solid var(--gw-line);border-left: 1px solid var(--gw-line);border-radius: var(--gw-radius-2) 0 0 0;background: var(--gw-surface);rotate: 45deg;opacity: 0;transition: opacity 0.22s ease,translate var(--gw-mega-t) var(--gw-mega-ease)}.gw-header.is-mega-open .gw-mega-surface,.gw-header.is-mega-open .gw-mega-caret{opacity: 1}.gw-header.has-mega .gw-mega{position: absolute;top: var(--gw-mega-top,73px);left: 0;z-index: 90;width: var(--gw-mega-w,1000px);max-width: calc(100vw - 48px);border-radius: var(--gw-radius-popover);opacity: 0;visibility: hidden;pointer-events: none;translate: 0 -6px;transition: opacity 0.14s ease,translate var(--gw-mega-t) var(--gw-mega-ease),clip-path var(--gw-mega-t) var(--gw-mega-ease),visibility 0s linear var(--gw-mega-t)}.gw-header.has-mega.is-mega-open .gw-mega{translate: 0 0}.gw-header.has-mega.is-mega-open .gw-nav__item.is-open > .gw-mega{opacity: 1;visibility: visible;pointer-events: auto;transition: opacity 0.24s var(--gw-mega-ease) 0.05s,translate var(--gw-mega-t) var(--gw-mega-ease),clip-path var(--gw-mega-t) var(--gw-mega-ease),visibility 0s}.gw-mega__body,.gw-mega__foot{translate: var(--gw-mega-dx,0px) 0;transition: translate var(--gw-mega-t) var(--gw-mega-ease)}.gw-mega__body{display: grid;grid-template-columns: minmax(0,1fr) var(--gw-mega-pv,320px);gap: 16px;padding: 12px}.gw-mega__body:not(:has(> .gw-mega__aside)){grid-template-columns: minmax(0,1fr)}.gw-mega__grid{position: relative;display: grid;grid-template-columns: repeat(var(--gw-mega-cols,3),minmax(0,1fr));gap: 0 12px;padding: 12px 0 0;align-content: start}.gw-mega__col{display: flex;flex-direction: column;gap: 2px}.gw-mega__heading{position: relative;z-index: 1;margin: 0;padding: 0 12px 8px;color: var(--gw-muted);font-size: 12px;font-weight: 500;line-height: 16px}.gw-mega__link{position: relative;z-index: 1;display: block;padding: 12px;border-radius: var(--gw-radius-action);color: var(--gw-ink)}.gw-mega__link:focus-visible{outline: 2px solid var(--gw-accent);outline-offset: -2px}.gw-mega__link b{color: var(--gw-ink);font-size: 14px;font-weight: 500;letter-spacing: 0;line-height: 20px}.gw-mega__link i{margin-top: 2px;color: var(--gw-muted);font-size: 13px;line-height: 18px}.gw-mega__link > .gw-mega__icon,.gw-mega__link > img{display: none}.gw-mega__hl{display: block;position: absolute;left: 0;top: 0;z-index: 0;width: 0;height: 0;border-radius: var(--gw-radius-action);pointer-events: none;opacity: 0;background: color-mix(in srgb,var(--gw-ink) 5%,transparent);transition: translate var(--gw-mega-glide) var(--gw-mega-ease),width var(--gw-mega-glide) var(--gw-mega-ease),height var(--gw-mega-glide) var(--gw-mega-ease),opacity 0.2s ease}.gw-mega__hl.is-on{opacity: 1}.gw-mega__aside{position: relative;display: block;min-height: 296px;border-radius: var(--gw-radius-card);overflow: hidden}.gw-mega__card{position: absolute;inset: 0;display: flex;flex-direction: column;gap: 12px;padding: 0 0 4px;color: var(--gw-ink);opacity: 0;pointer-events: none;transition: opacity 0.24s ease}.gw-mega__card[aria-hidden="true"]{visibility: hidden;transition: opacity 0.24s ease,visibility 0s linear 0.24s}.gw-mega__card.is-on{opacity: 1;visibility: visible;pointer-events: auto;transition: opacity 0.28s ease,visibility 0s}.gw-mega__card:focus-visible{border-radius: var(--gw-radius-card);outline: 2px solid var(--gw-accent);outline-offset: -2px}.gw-mega__foot{display: flex;align-items: center;justify-content: space-between;gap: 16px;padding: 16px 24px;border-top: 1px solid var(--gw-line);font-size: 13px}.gw-mega__foot-start,.gw-mega__foot-end{display: flex;align-items: center;gap: 24px}.gw-mega__foot a{color: var(--gw-muted);font-size: 13px;font-weight: 500;transition: color 0.15s}.gw-mega__foot a:hover{color: var(--gw-ink)}.gw-mega__foot a.gw-mega__cta{color: var(--gw-ink);font-weight: 600}}.gw-mega__art{--gw-lift: var(--gw-shadow-lift);position: relative;display: block;overflow: hidden;border-radius: var(--gw-radius-card);background: radial-gradient(130% 90% at 100% 0%,var(--gw-stage-glow),transparent 55%),radial-gradient(90% 80% at 0% 100%,var(--gw-stage-glow-2),transparent 60%),linear-gradient(160deg,var(--gw-stage-top),var(--gw-stage-bottom));color: var(--gw-stage-ink)}.gw-mega__aside .gw-mega__art::before{content: "";position: absolute;inset: 0;pointer-events: none;background-image: radial-gradient(var(--gw-stage-dot) 1px,transparent 1.5px);background-size: 16px 16px;-webkit-mask-image: linear-gradient(170deg,#000,transparent 70%);mask-image: linear-gradient(170deg,#000,transparent 70%)}:where(.gw-mega__art > *){position: relative}:where(.gw-mega__art) > img{position: absolute;inset: 0;display: block;width: 100%;height: 100%;object-fit: cover}.gw-mega__aside .gw-mega__art{flex: 1 1 auto;min-height: 0;container-type: size}.gw-mega__card-text{display: block;padding: 0 4px}.gw-mega__card-text b{display: flex;align-items: center;gap: 8px;color: var(--gw-ink);font-size: 14px;font-weight: 600;line-height: 20px}.gw-mega__card-text i{display: block;margin-top: 2px;color: var(--gw-muted);font-size: 13px;font-style: normal;line-height: 18px}.gw-mobile-menu .gw-mega__card{display: flex;flex-direction: column;gap: 12px;margin: 24px 0 8px;color: var(--gw-ink)}.gw-mobile-menu .gw-mega__art{display: flex;padding: 16px}.gw-mobile-menu .gw-mega__card-text b{display: block;line-height: 1.6}.gw-mobile-menu .gw-mega__card-text i{margin-top: 4px}.gw-mobile-menu__link > img{display: block;flex: none;width: 48px;height: 32px;border: 1px solid var(--gw-line);border-radius: var(--gw-radius-6);object-fit: cover}.gw-mega__go{color: var(--gw-accent-strong);font-weight: 500}.gw-mega__card-text > .gw-mega__go{display: block;margin-top: 8px;font-size: 13px}.gw-mega__card-text b > .gw-mega__go{margin-left: auto;transition: translate 0.2s var(--gw-mega-ease)}.gw-mega__card:hover b > .gw-mega__go{translate: 4px 0}.gw-mega__new{display: inline-flex;align-items: center;height: 20px;margin-right: 6px;padding: 0 6px;border-radius: var(--gw-radius-6);background: var(--gw-accent-soft);color: var(--gw-accent-strong);font-size: 11px;font-weight: 600}@media (prefers-reduced-motion: reduce){.gw-scrim,.gw-nav__pill,.gw-mega-surface,.gw-mega-caret,.gw-mega__hl,.gw-mega__go,.gw-header.has-mega .gw-mega,.gw-header.has-mega.is-mega-open .gw-nav__item.is-open > .gw-mega,.gw-mega__body,.gw-mega__foot,.gw-mega__card,.gw-mega__card.is-on{transition: none}.gw-mega-surface,.gw-header.has-mega .gw-mega{translate: 0 0}}.gw-header__actions{display: flex;align-items: center;gap: 4px;margin-left: auto}.gw-header__signin,.gw-header__link{display: none}.gw-header__actions > .gw-btn{display: none;margin-left: 8px;line-height: 1.6}.gw-theme-toggle{display: inline-flex;align-items: center;justify-content: center;flex: none;width: 40px;height: 40px;padding: 0;border: 0;border-radius: var(--gw-radius-action);background: transparent;color: var(--gw-ink)}.gw-theme-toggle:hover{background: var(--gw-bg-soft)}.gw-theme-toggle svg,.gw-menu-toggle svg{width: 20px;height: 20px}.gw-menu-toggle{display: inline-flex;align-items: center;justify-content: center;flex: none;width: 42px;height: 42px;padding: 0;border: 1px solid var(--gw-line-strong);border-radius: var(--gw-radius-card);background: var(--gw-surface);color: var(--gw-ink)}.gw-menu-toggle[aria-expanded="true"]{border-color: var(--gw-ink)}.gw-menu-toggle[aria-expanded="true"] .gw-menu-toggle__open,.gw-menu-toggle:not([aria-expanded="true"]) .gw-menu-toggle__close{display: none}.gw-mobile-menu{position: fixed;top: calc(var(--gw-header-height) + 1px);left: 0;right: 0;bottom: 0;overflow-y: auto;overscroll-behavior: contain;padding-block: 8px 32px;background: var(--gw-bg)}html.is-menu-open{overflow: hidden}html.is-menu-open .gw-header{position: fixed;top: 0;left: 0;right: 0}.gw-mobile-menu__group > summary,.gw-mobile-menu__top{display: flex;align-items: center;justify-content: space-between;min-height: 48px;padding-block: 8px;border-bottom: 1px solid var(--gw-line);color: var(--gw-ink);font-size: 18px;font-weight: 500;list-style: none;cursor: pointer}.gw-mobile-menu__group > summary::-webkit-details-marker{display: none}.gw-mobile-menu__list{margin: 0;padding: 8px 0 16px;list-style: none}.gw-mobile-menu__link{display: flex;align-items: center;min-height: 44px;color: var(--gw-ink-2);font-size: 16px}.gw-mobile-menu__actions{display: grid;gap: 8px;margin-top: 24px}@media (min-width: 561px){.gw-header__actions > .gw-btn:not(.gw-btn--secondary){display: inline-flex}}@media (min-width: 1181px){.gw-header__link,.gw-header__actions > .gw-btn--secondary{display: inline-flex}}@media (min-width: 1081px){.gw-nav{display: block}.gw-header__signin{display: inline-flex}.gw-menu-toggle,.gw-mobile-menu{display: none !important}html.is-menu-open{overflow: visible}html.is-menu-open .gw-header{position: sticky}}@media (max-width: 768px),(pointer: coarse){.gw-theme-toggle,.gw-menu-toggle{width: var(--gw-tap-min);height: var(--gw-tap-min)}}@media (min-width: 1081px){.gw-header--float{top: var(--gw-header-gap);width: min(100% - 32px,var(--gw-wrap) + 50px);margin: var(--gw-header-gap) auto 0;border: 1px solid var(--gw-line);border-radius: var(--gw-radius-panel);background: color-mix(in srgb,var(--gw-surface) var(--gw-header-surface),transparent);-webkit-backdrop-filter: blur(var(--gw-header-blur));backdrop-filter: blur(var(--gw-header-blur));box-shadow: var(--gw-shadow-raised)}.gw-header--float.is-scrolled{border-color: var(--gw-line-strong)}.gw-header--float > .gw-header__bar{width: auto;padding-inline: 24px}.gw-header--float .gw-mega{max-height: calc(100vh - var(--gw-header-height) - var(--gw-header-gap) - 24px)}:root:has(.gw-header--float) [id]{scroll-margin-top: calc(var(--gw-header-height) + var(--gw-header-gap) + 18px)}}@media (min-width: 1081px) and (prefers-reduced-transparency: reduce){.gw-header--float{background: var(--gw-surface);-webkit-backdrop-filter: none;backdrop-filter: none}}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.gw-header--float{background: var(--gw-surface)}}.gw-mobile-menu[data-gw-menu="drill"]{display: flex;flex-direction: column;overflow-x: hidden;padding-bottom: 0;line-height: 1.6}.gw-mobile-menu[data-gw-menu="drill"] > nav{display: flex;flex: 1 0 auto;flex-direction: column;width: auto;margin-inline: 0;padding-inline: 24px}.gw-mobile-menu[data-gw-menu="drill"] a{font-size: 18px;font-weight: 500;letter-spacing: -0.005em}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__group > summary,.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__top{min-height: 64px;font-size: 24px;letter-spacing: -0.01em}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__group > summary::after{width: 20px;height: 20px;-webkit-mask-size: 20px;mask-size: 20px}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__list{padding: 0}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__list .gw-mobile-menu__link{gap: 12px;min-height: 56px;padding-block: 12px;border-bottom: 1px solid var(--gw-line);color: var(--gw-ink);font-weight: 500}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__link b{display: block;font-size: 16px;font-weight: 500;letter-spacing: -0.005em;line-height: 20px}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__link i{display: block;margin-top: 2px;color: var(--gw-muted);font-size: 13px;font-style: normal;line-height: 18px}.gw-mobile-menu__heading{padding: 16px 0 8px;color: var(--gw-muted);font-size: 12px;font-weight: 500;line-height: 1.6}.gw-mobile-menu__icon{display: grid;place-items: center;flex: none;width: 32px;height: 32px;border: 1px solid var(--gw-line);border-radius: var(--gw-radius-action);color: var(--gw-muted)}.gw-mobile-menu__icon svg{width: 16px;height: 16px}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__list .gw-mobile-menu__link{border-radius: var(--gw-radius-action);transition: background 0.15s}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__list .gw-mobile-menu__link:hover{background: var(--gw-bg-soft);transform: translateX(2px)}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__list .gw-mobile-menu__link:focus-visible{background: var(--gw-bg-soft)}.gw-mobile-menu__icon{background: var(--gw-surface);transition: color 0.15s,border-color 0.15s,background 0.15s,transform 0.15s}.gw-mobile-menu__link:is(:hover,:focus-visible) .gw-mobile-menu__icon{border-color: color-mix(in srgb,var(--gw-accent) 32%,var(--gw-line));background: var(--gw-accent-soft);color: var(--gw-accent-strong)}.gw-mobile-menu__link:hover .gw-mobile-menu__icon{transform: translateY(-1px)}.gw-mobile-menu__all{display: flex;align-items: center;min-height: 56px;color: var(--gw-accent-strong);font-size: 16px;font-weight: 500}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__all{font-size: 16px}.gw-mobile-menu__all::after{content: "\00a0\2192"}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__actions{position: sticky;bottom: 0;z-index: 1;grid-template-columns: minmax(0,1fr) minmax(0,1fr);align-items: center;gap: 8px;margin-top: auto;padding-block: 12px calc(12px + env(safe-area-inset-bottom));border-top: 1px solid var(--gw-line);background: var(--gw-bg)}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__actions > .gw-btn{grid-row: 2}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__actions > :not(.gw-btn){grid-row: 1}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__actions > :not(.gw-btn):last-child{grid-column: 2;justify-self: end}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__actions > .gw-mobile-menu__link{color: var(--gw-ink);font-size: 16px;font-weight: 500}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__actions > .gw-mobile-menu__link--muted{color: var(--gw-muted)}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__actions > .gw-btn{padding: 0 16px;font-size: 16px;line-height: 1.6}.gw-mobile-menu.is-drill{top: var(--gw-menu-top,calc(var(--gw-header-height) + 1px))}html.is-menu-open .gw-header:has(> .gw-mobile-menu.is-drill){position: sticky}.gw-mobile-menu.is-drill .gw-mobile-menu__group > summary::after{transform: rotate(-90deg);transition: none}.gw-mobile-menu.is-drilled > nav > :not([open],.gw-mobile-menu__actions),.gw-mobile-menu.is-drilled .gw-mobile-menu__group[open] > summary{display: none}.gw-mobile-menu__head{display: none}.gw-mobile-menu.is-drilled .gw-mobile-menu__group[open] > .gw-mobile-menu__head{display: grid;grid-template-columns: minmax(0,1fr) auto minmax(0,1fr);align-items: center;gap: 8px;min-height: 56px;margin-bottom: 8px;border-bottom: 1px solid var(--gw-line)}.gw-mobile-menu__back{display: inline-flex;align-items: center;justify-self: start;gap: 4px;min-height: var(--gw-tap-min);padding: 0 8px 0 0;border: 0;background: transparent;color: var(--gw-muted);font-size: 16px;line-height: 1.6}.gw-mobile-menu__back:hover{color: var(--gw-ink)}.gw-mobile-menu__back::before{content: "";flex: none;width: 16px;height: 16px;background: currentColor;-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M15 18l-6-6 6-6' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px no-repeat;mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M15 18l-6-6 6-6' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px no-repeat}.gw-mobile-menu__title{color: var(--gw-ink);font-size: 16px;font-weight: 600;letter-spacing: 0;line-height: 1.6;text-align: center}@media (prefers-reduced-motion: no-preference){.gw-mobile-menu.is-drilled .gw-mobile-menu__group[open]{animation: gw-drill-in 0.24s var(--gw-ease)}.gw-mobile-menu.is-back > nav > :not(.gw-mobile-menu__actions){animation: gw-drill-back 0.24s var(--gw-ease)}}@keyframes gw-drill-in{from{opacity: 0;transform: translateX(32px)}}@keyframes gw-drill-back{from{opacity: 0;transform: translateX(-32px)}}.gw-lang{position: relative;flex: none}.gw-header__actions > .gw-lang{display: none}.gw-lang__btn{display: inline-flex;align-items: center;gap: 6px;height: 40px;padding: 0 12px;border: 0;border-radius: var(--gw-radius-action);background: transparent;color: var(--gw-ink-2);font-size: 14px;font-weight: 500;line-height: 1.4;white-space: nowrap}.gw-lang__btn:hover,.gw-lang__btn[aria-expanded="true"]{background: var(--gw-bg-soft);color: var(--gw-ink)}.gw-lang__btn svg{flex: none;width: 18px;height: 18px}.gw-lang__menu{position: absolute;top: calc(100% + 8px);right: 0;z-index: 1;display: grid;gap: 2px;min-width: 200px;margin: 0;padding: 8px;list-style: none;border: 1px solid var(--gw-line);border-radius: var(--gw-radius-card);background: var(--gw-surface);box-shadow: var(--gw-shadow-raised)}.gw-lang__link{display: flex;align-items: center;min-height: 40px;padding: 0 12px;border-radius: var(--gw-radius-action);color: var(--gw-ink);font-size: 14px;font-weight: 500;white-space: nowrap}.gw-lang__link:hover{background: var(--gw-bg-soft)}.gw-mobile-menu .gw-lang__btn{padding: 0 8px 0 0;color: var(--gw-muted);font-size: 16px}.gw-mobile-menu .gw-lang__btn:hover,.gw-mobile-menu .gw-lang__btn[aria-expanded="true"]{background: transparent;color: var(--gw-ink)}.gw-mobile-menu .gw-lang__menu{top: auto;right: auto;bottom: calc(100% + 8px);left: 0}@media (max-width: 768px),(pointer: coarse){.gw-lang__btn,.gw-lang__link{min-height: var(--gw-tap-min)}}@media (min-width: 1081px){.gw-header__actions > .gw-lang{display: block}}.gw-theme-toggle__sun{display: none}:root[data-theme="dark"] .gw-theme-toggle__sun{display: block}:root[data-theme="dark"] .gw-theme-toggle__moon{display: none}@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .gw-theme-toggle__sun{display: block}:root:not([data-theme="light"]) .gw-theme-toggle__moon{display: none}}.gw-brand__logo{display: block;flex: none;width: auto;height: 26px}.gw-brand__logo--dark{display: none}:root[data-theme="dark"] .gw-brand__logo--dark{display: block}:root[data-theme="dark"] .gw-brand__logo:has(+ .gw-brand__logo--dark){display: none}@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .gw-brand__logo--dark{display: block}:root:not([data-theme="light"]) .gw-brand__logo:has(+ .gw-brand__logo--dark){display: none}}.gw-footer{padding-block: 64px 32px;border-top: 1px solid var(--gw-line);background: transparent;color: var(--gw-ink);font-size: 14px}.gw-footer__grid{display: grid;grid-template-columns: repeat(2,minmax(0,1fr));gap: 32px}.gw-footer__brand p{max-width: 30ch;margin-top: 16px;color: var(--gw-muted);line-height: 22px}.gw-footer__brand .gw-brand{display: flex;min-height: 34px;font-family: var(--gw-font);line-height: 1.6}.gw-footer__brand .gw-brand__mark{width: 34px;height: 34px;border-radius: var(--gw-radius-8)}.gw-footer__heading{margin: 0 0 12px;color: var(--gw-ink);font-family: var(--gw-font);font-size: 13px;font-weight: 600;letter-spacing: 0;line-height: 1.6;text-wrap: balance}.gw-footer__newsletter{margin-top: 24px}.gw-footer__col ul{margin: 0;padding: 0;list-style: none}.gw-footer__col a{display: block;padding-block: 6px;color: var(--gw-muted)}.gw-footer__col a:hover{color: var(--gw-ink)}.gw-footer__col a[aria-current="page"]{color: var(--gw-accent-strong)}.gw-footer__bottom{display: flex;flex-wrap: wrap;align-items: center;justify-content: space-between;gap: 12px 24px;margin-top: 32px;padding-top: 24px;border-top: 1px solid var(--gw-line);color: var(--gw-muted);font-size: 13px}.gw-footer__bottom:first-child{margin-top: 0;padding-top: 0;border-top: 0}.gw-footer__bottom ul{display: flex;flex-wrap: wrap;gap: 16px;margin: 0;padding: 0;list-style: none}.gw-footer__bottom a{display: inline-flex;align-items: center;justify-content: center;color: var(--gw-muted)}.gw-footer__bottom a:hover{color: var(--gw-ink)}@media (max-width: 620px){.gw-footer__grid{gap: 24px 20px}.gw-footer__brand{grid-column: 1 / -1}}@media (min-width: 1081px){.gw-footer__grid{grid-auto-flow: column;grid-template-columns: minmax(0,1.6fr);grid-auto-columns: minmax(0,1fr);gap: 32px 24px}}@media (max-width: 768px),(pointer: coarse){.gw-footer__brand .gw-brand{min-height: var(--gw-tap-min)}.gw-footer__col a{display: flex;align-items: center;min-height: var(--gw-tap-min);padding-block: 0}.gw-footer__bottom a{min-height: var(--gw-tap-min)}.gw-footer__bottom ul:last-child a{min-width: var(--gw-tap-min)}.gw-footer__bottom ul:not(:last-child){gap: 8px 16px}}.gw-footer__ask{margin-top: 24px}.gw-footer__ask > .gw-footer__ask-label{margin: 0;color: var(--gw-muted);font-size: 13px;line-height: 22px}.gw-footer__ask > ul{display: flex;flex-wrap: wrap;gap: 0 16px;margin: 4px 0 0;padding: 0;list-style: none}.gw-footer__ask a{display: block;padding-block: 4px;color: var(--gw-ink);line-height: 20px}.gw-footer__ask a:hover{text-decoration: underline}.gw-footer__ext:empty{display: inline-block;width: 12px;height: 12px;margin-left: 4px;vertical-align: -1px;background: var(--gw-muted);-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3.5 8.5l5-5M4.5 3.5h4v4' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat;mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3.5 8.5l5-5M4.5 3.5h4v4' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat}.gw-footer__ext:not(:empty){color: var(--gw-muted);font-weight: 400}.gw-footer__fold > summary{list-style: none}.gw-footer__fold > summary::-webkit-details-marker{display: none}.gw-footer__fold .gw-footer__heading{margin: 0}.gw-footer__fold > ul{margin: 0;padding: 0;list-style: none}.gw-footer__col > .gw-footer__fold a{line-height: 20px}@media (min-width: 621px){.gw-footer__fold > summary{display: contents}.gw-footer__col > .gw-footer__fold .gw-footer__heading{margin-bottom: 12px}}@media (min-width: 621px){.gw-footer__fold::details-content{content-visibility: visible}}@media (max-width: 620px){.gw-footer__grid:has(> .gw-footer__col > .gw-footer__fold){grid-template-columns: minmax(0,1fr);row-gap: 0}.gw-footer__grid:has(> .gw-footer__col > .gw-footer__fold) > .gw-footer__brand{padding-bottom: 24px}.gw-footer__col:has(> .gw-footer__fold){border-top: 1px solid var(--gw-line)}.gw-footer__col:has(> .gw-footer__fold):last-child,.gw-footer__family{border-bottom: 1px solid var(--gw-line)}.gw-footer__fold > summary{display: flex;align-items: center;justify-content: space-between;gap: 16px;min-height: 52px;padding: 0;cursor: pointer}.gw-footer__fold > summary::after{content: "";flex: none;width: 8px;height: 8px;margin-right: 4px;border-right: 2px solid var(--gw-muted);border-bottom: 2px solid var(--gw-muted);rotate: 45deg;translate: 0 -2px}.gw-footer__fold[open] > summary::after{rotate: 225deg;translate: 0 2px}.gw-footer__fold > summary:focus-visible{outline: 2px solid var(--gw-accent);outline-offset: 2px;border-radius: var(--gw-radius-6)}.gw-footer__fold > ul{padding-bottom: 12px}.gw-footer__col > .gw-footer__fold a{display: flex;align-items: center;min-height: var(--gw-tap-min)}}@media (min-width: 1081px){.gw-footer__grid:has(> .gw-footer__col > .gw-footer__fold){grid-template-columns: minmax(0,calc((100% - 120px) * 6 / 31))}}.gw-footer__family .gw-footer__heading{color: var(--gw-muted);font-weight: 500}.gw-footer__family .gw-footer__fold > ul{display: grid;grid-template-columns: repeat(2,minmax(0,1fr));gap: 8px}.gw-footer__family .gw-footer__fold > ul > li{display: flex}.gw-footer__family .gw-footer__fold > ul > li > a{flex: 1 1 auto}.gw-footer__family a{display: flex;flex-direction: column;justify-content: center;gap: 2px;min-height: var(--gw-tap-min);padding: 8px 12px 8px 0;border-radius: var(--gw-radius-action);color: var(--gw-ink)}.gw-footer__family a:hover{background: var(--gw-bg-soft)}.gw-footer__family b{font-size: 14px;font-weight: 600;line-height: 20px}.gw-footer__family i{color: var(--gw-muted);font-size: 13px;font-style: normal;line-height: 18px}@media (min-width: 621px){.gw-footer__family{margin-top: 48px;padding-top: 32px;border-top: 1px solid var(--gw-line)}.gw-footer__family .gw-footer__heading{margin-bottom: 12px}.gw-footer__family .gw-footer__fold > ul{grid-template-columns: repeat(4,minmax(0,1fr));gap: 4px 16px}.gw-footer__family a{min-height: 0;padding: 8px 12px}.gw-footer__family + .gw-footer__bottom{margin-top: 32px}}@media (min-width: 621px) and (max-width: 768px){.gw-footer__family a{min-height: var(--gw-tap-min)}}@media (min-width: 1081px){.gw-footer__family .gw-footer__fold > ul{margin-left: -12px}.gw-footer__family{display: flow-root}.gw-footer__family .gw-footer__heading{float: left;width: calc((100% - 120px) * 6 / 31);margin: 8px 0 0}.gw-footer__family .gw-footer__fold > ul{margin-left: calc((100% - 120px) * 6 / 31 + 12px)}}.gw-footer__toggle{position: relative;width: 32px;height: 32px;margin-inline: auto 16px;border: 1px solid var(--gw-line-strong);background: var(--gw-surface)}.gw-footer__toggle::after{content: "";position: absolute;inset: -5px}.gw-footer__toggle svg{width: 18px;height: 18px}.gw-footer__toggle{transition: border-color 0.15s,color 0.15s}.gw-footer__toggle:hover{border-color: var(--gw-ink);background: var(--gw-surface);color: var(--gw-accent)}@media (max-width: 768px),(pointer: coarse){.gw-footer__toggle{width: var(--gw-tap-min);height: var(--gw-tap-min)}}@media (max-width: 620px){.gw-footer__bottom:has(> .gw-footer__toggle){gap: 8px 16px}.gw-footer__bottom:has(> .gw-footer__toggle) > :first-child{flex: 1 1 calc(100% - 64px)}.gw-footer__bottom > .gw-footer__toggle{order: 1;margin: 0}.gw-footer__bottom:has(> .gw-footer__toggle) > ul{order: 2}.gw-footer__family + .gw-footer__bottom,.gw-footer__grid:has(> .gw-footer__col > .gw-footer__fold) + .gw-footer__bottom{margin-top: 24px}}.gw-footer__wordmark{display: flex;align-items: center;justify-content: center;gap: 24px;padding-block: 48px 0;color: color-mix(in srgb,var(--gw-ink) 10%,transparent);font-family: var(--gw-font);font-size: var(--gw-display-wordmark);font-weight: 800;letter-spacing: var(--gw-display-tracking);line-height: 1;white-space: nowrap;user-select: none}.gw-footer__wordmark > svg,.gw-footer__wordmark > img{flex: none;width: clamp(40px,7vw,96px);height: auto}.gw-footer__wordmark > span{min-width: 0;overflow-x: clip}@media (max-width: 640px){.gw-footer__wordmark{gap: 16px}}@media (max-width: 620px){.gw-footer__wordmark{display: none}}@media (max-width: 768px),(pointer: coarse){.gw-footer__ask a{display: flex;align-items: center;min-height: var(--gw-tap-min);padding-block: 0}}@media (forced-colors: active){.gw-footer__ext:empty{forced-color-adjust: none;background: CanvasText}.gw-footer__fold > summary::after{border-color: CanvasText}}.gw-hero{position: relative;isolation: isolate;padding-block: 48px 64px}.gw-hero__wash{position: absolute;inset: 0;z-index: -1;pointer-events: none;background: radial-gradient(640px 460px at 88% -10%,color-mix(in srgb,var(--gw-accent) 16%,transparent),transparent 62%),radial-gradient(560px 480px at 6% 108%,color-mix(in srgb,var(--gw-wash-violet) 12%,transparent),transparent 62%),radial-gradient(420px 320px at 52% 118%,color-mix(in srgb,var(--gw-wash-mint) 10%,transparent),transparent 62%)}.gw-hero h1 .gw-dim{display: block}.gw-hero > .gw-wrap > :is(.gw-window,.gw-figure){margin-top: 48px}.gw-hero--center{text-align: center}.gw-hero--center > .gw-wrap > *{margin-inline: auto}.gw-hero--center .gw-actions{justify-content: center}.gw-hero--compact{padding-block: 40px 48px}.gw-hero--compact h1{font-size: var(--gw-display-h2)}@media (min-width: 768px){.gw-hero{padding-block: 80px 96px}.gw-hero--compact{padding-block: 64px}.gw-hero .gw-lead{font-size: 20px}.gw-hero > .gw-wrap > .gw-window{margin-top: 64px}}@media (max-width: 479px){:is(.gw-hero,.gw-cta) .gw-actions > .gw-btn{flex: 1 1 100%;justify-content: center}}.gw-logos{padding-block: 40px;border-block: 1px solid var(--gw-line)}.gw-logos p{color: var(--gw-muted);font-size: 13px;text-align: center}.gw-logos ul{display: flex;flex-wrap: wrap;align-items: center;justify-content: center;gap: 16px 40px;margin-top: 20px;padding: 0;list-style: none}.gw-logos li{color: var(--gw-muted);font-size: 22px;font-weight: 600;letter-spacing: -0.02em;line-height: 1.2}.gw-logos img{width: auto;height: 28px}.gw-stats{display: grid;grid-template-columns: minmax(0,1fr);gap: 24px;padding: 0;list-style: none}.gw-stats__value{font-size: var(--gw-display-h2);font-weight: 600;letter-spacing: -0.03em;line-height: 1.1;font-variant-numeric: tabular-nums}.gw-stats__label{margin-top: 8px;max-width: 28ch;color: var(--gw-muted);font-size: 14px}.gw-stats__source{margin-top: 8px;color: var(--gw-muted);font-size: 12px}@media (min-width: 480px){.gw-stats{grid-template-columns: repeat(2,minmax(0,1fr))}}@media (min-width: 1080px){.gw-stats{grid-template-columns: none;grid-auto-flow: column;grid-auto-columns: minmax(0,1fr);gap: 0}.gw-stats__item{padding: 4px 24px;border-left: 1px solid var(--gw-line)}.gw-stats__item:first-child{padding-left: 0;border-left: 0}}.gw-features{row-gap: 40px}.gw-feature .gw-icon{width: 40px;height: 40px;border: 1px solid var(--gw-line);border-radius: var(--gw-radius-action);background: var(--gw-surface);color: var(--gw-accent)}.gw-split{display: grid;grid-template-columns: minmax(0,1fr);align-items: center;gap: 40px}@media (min-width: 768px){.gw-split{grid-template-columns: repeat(2,minmax(0,1fr))}.gw-split--reverse > :first-child{order: 2}}.gw-split h2{font-size: 30px}@media (min-width: 1080px){.gw-split{gap: 64px}}.gw-showcase .gw-window{max-width: 960px;margin-inline: auto}.gw-showcase .gw-window + *{margin-top: 48px}.gw-steps{display: grid;grid-template-columns: minmax(0,1fr);gap: 32px 24px;padding: 0;list-style: none;counter-reset: gw-step}.gw-steps > li{counter-increment: gw-step}.gw-steps > li::before{content: counter(gw-step,decimal-leading-zero);display: block;margin-bottom: 16px;padding-bottom: 12px;border-bottom: 1px solid var(--gw-line);color: var(--gw-accent-strong);font-size: 13px;font-weight: 600;font-variant-numeric: tabular-nums}.gw-steps h3{font-size: 20px}.gw-steps p{margin-top: 8px;color: var(--gw-muted);font-size: 16px}@media (min-width: 768px){.gw-steps{grid-template-columns: repeat(2,minmax(0,1fr))}}@media (min-width: 1080px){.gw-steps{grid-template-columns: none;grid-auto-flow: column;grid-auto-columns: minmax(0,1fr)}}.gw-quote{max-width: 880px;margin-inline: auto;padding: 40px 24px;border: 1px solid var(--gw-line);border-radius: var(--gw-radius-panel);background: var(--gw-surface);text-align: center}.gw-quote::before{content: "";display: block;width: 32px;height: 24px;margin: 0 auto 24px;background: var(--gw-accent);-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 24'%3E%3Cpath d='M0 24V14C0 6 4 1 12 0l1 4c-4 1-6 4-6 8h5v12zm19 0V14c0-8 4-13 12-14l1 4c-4 1-6 4-6 8h5v12z'/%3E%3C/svg%3E") center / contain no-repeat;mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 24'%3E%3Cpath d='M0 24V14C0 6 4 1 12 0l1 4c-4 1-6 4-6 8h5v12zm19 0V14c0-8 4-13 12-14l1 4c-4 1-6 4-6 8h5v12z'/%3E%3C/svg%3E") center / contain no-repeat}.gw-quote blockquote{font-size: 24px;font-weight: 500;line-height: 1.4;letter-spacing: -0.01em;text-wrap: balance}.gw-quote figcaption{margin-top: 24px;color: var(--gw-muted);font-size: 14px}.gw-quote figcaption b{color: var(--gw-ink)}.gw-quote figcaption img{width: 40px;height: 40px;margin: 0 auto 12px;border-radius: var(--gw-radius-chip)}@media (min-width: 768px){.gw-quote{padding: 64px}.gw-quote blockquote{font-size: 30px}}.gw-pricing{display: grid;grid-template-columns: repeat(auto-fit,minmax(min(100%,260px),1fr));align-items: start;gap: 16px}.gw-plan{display: flex;flex-direction: column;padding: 24px;border: 1px solid var(--gw-line);border-radius: var(--gw-radius-panel);background: var(--gw-surface);box-shadow: var(--gw-shadow)}.gw-plan--featured{border-color: var(--gw-accent)}.gw-plan{position: relative}.gw-plan > .gw-badge{align-self: flex-start}.gw-plan > .gw-badge:first-child{position: absolute;top: -12px;left: 24px}.gw-plan > .gw-badge:first-child + *{margin-top: 0}.gw-plan h3{font-size: 20px}:where(.gw-plan) p{color: var(--gw-muted);font-size: 14px}.gw-plan__price{display: flex;flex-wrap: wrap;align-items: baseline;gap: 6px;color: var(--gw-ink);font-size: var(--gw-display-h2);font-weight: 600;letter-spacing: -0.03em;line-height: 1.1;font-variant-numeric: tabular-nums}.gw-plan__price small{color: var(--gw-muted);font-size: 14px;font-weight: 500;letter-spacing: 0}.gw-plan .gw-list--check{font-size: 14px}@media (min-width: 768px){.gw-plan{padding: 32px}.gw-plan > .gw-badge:first-child{left: 32px}}.gw-cta{max-width: 780px;margin-inline: auto;text-align: center}.gw-cta .gw-lead{margin-inline: auto}.gw-cta .gw-actions{justify-content: center}.gw-prose{max-width: 68ch;min-width: 0;color: var(--gw-ink);font-size: var(--gw-body-size);line-height: var(--gw-body-leading);overflow-wrap: break-word}.gw-prose--sm{font-size: 16px}:where(.gw-prose) > * + *{margin-top: 20px}:where(.gw-prose--sm) > * + *{margin-top: 16px}:where(.gw-prose) > * + :where(figure,img,video,pre,table,hr,.gw-table,.gw-window,.gw-prose__table,.gw-callout),:where(.gw-prose) > :where(figure,img,video,pre,table,hr,.gw-table,.gw-window,.gw-prose__table,.gw-callout) + *{margin-top: 32px}:where(.gw-prose) > * + h2{margin-top: 48px}:where(.gw-prose) > * + h3{margin-top: 40px}:where(.gw-prose) > * + h4{margin-top: 32px}:where(.gw-prose--sm) > * + h2{margin-top: 40px}:where(.gw-prose--sm) > * + h3{margin-top: 32px}:where(.gw-prose--sm) > * + h4{margin-top: 24px}:where(.gw-prose) > h1 + *{margin-top: 24px}:where(.gw-prose) > :is(h2,h3,h4) + *{margin-top: 12px}:where(.gw-prose) > :is(h1,h2,h3,h4){color: var(--gw-ink);font-weight: var(--gw-heading-weight);letter-spacing: var(--gw-heading-tracking);line-height: 1.25}:where(.gw-prose) > h1{font-size: var(--gw-display-h2);font-weight: var(--gw-display-weight);letter-spacing: var(--gw-display-tracking);line-height: var(--gw-heading-leading)}:where(.gw-prose) > h2{font-size: 30px;line-height: 1.2}:where(.gw-prose) > h3{font-size: 24px}:where(.gw-prose) > h4{font-size: 20px}:where(.gw-prose--sm) > h2{font-size: 24px}:where(.gw-prose--sm) > h3{font-size: 20px}:where(.gw-prose--sm) > h4{font-size: 18px}:where(.gw-prose :is(ul,ol):not([class])){padding-left: 24px}:where(.gw-prose ul:not([class])){list-style: disc}:where(.gw-prose ol:not([class])){list-style: decimal}:where(.gw-prose :is(ul,ol):not([class]) > li + li),:where(.gw-prose :is(ul,ol):not([class]) > li > * + *),:where(.gw-prose :is(ul,ol):not([class]) > li > :is(ul,ol)){margin-top: 8px}:where(.gw-prose :is(ul,ol):not([class]) > li)::marker{color: var(--gw-muted);font-variant-numeric: tabular-nums}:where(.gw-prose) > blockquote{padding-left: 20px;border-left: 3px solid var(--gw-line-strong);color: var(--gw-muted)}:where(.gw-prose) > blockquote > * + *{margin-top: 12px}:where(.gw-prose) > hr{height: 0;border: 0;border-top: 1px solid var(--gw-line)}:where(.gw-prose) :is(sup,sub){line-height: 0}:where(.gw-prose) :is(pre,code,kbd,samp){font-family: var(--gw-font-mono)}:where(.gw-prose) code{padding: 2px 6px;border-radius: var(--gw-radius-6);background: color-mix(in srgb,var(--gw-ink) 8%,transparent);color: var(--gw-ink);font-size: 16px;overflow-wrap: anywhere;-webkit-box-decoration-break: clone;box-decoration-break: clone}:where(.gw-prose--sm) code{font-size: 14px}:where(.gw-prose) :is(h1,h2,h3,h4) code{font-size: inherit}:where(.gw-prose) figcaption code{font-size: 13px}:where(.gw-prose) :is(th,td) code{font-size: 13px;overflow-wrap: normal;white-space: nowrap}:where(.gw-prose) pre{overflow-x: auto;padding: 16px 20px;border: 1px solid var(--gw-line);border-radius: var(--gw-radius-card);background: var(--gw-bg-soft);color: var(--gw-ink);font-size: 14px;line-height: 1.6;tab-size: 2}:where(.gw-prose) pre code{padding: 0;border-radius: var(--gw-radius-0);background: none;font-size: inherit;overflow-wrap: normal}:where(.gw-prose) > :is(img,video),:where(.gw-prose) > :is(p,figure) > :is(img,video){border-radius: var(--gw-radius-card)}:where(.gw-prose) figcaption{margin-top: 12px;color: var(--gw-muted);font-size: 14px;line-height: 1.5}:where(.gw-prose) > table:where(:not(.is-wrapped)),:where(.gw-prose) > :where(.gw-prose__table){width: max-content;max-width: 100%;overflow-x: auto;border: 1px solid var(--gw-line);border-radius: var(--gw-radius-card);background: var(--gw-surface);-webkit-overflow-scrolling: touch}:where(.gw-prose) > table:where(:not(.is-wrapped)){display: block}:where(.gw-prose) > table,:where(.gw-prose) > :where(.gw-prose__table) > table{border-collapse: collapse;font-size: 14px;line-height: 1.5}:where(.gw-prose) > table :is(th,td),:where(.gw-prose) > :where(.gw-prose__table) > table :is(th,td){padding: 12px 16px;border-bottom: 1px solid var(--gw-line);text-align: left;vertical-align: top}:where(.gw-prose) > table thead th,:where(.gw-prose) > :where(.gw-prose__table) > table thead th{background: var(--gw-bg-soft);color: var(--gw-ink);font-size: 13px;font-weight: 600;white-space: nowrap}:where(.gw-prose) > table tbody th,:where(.gw-prose) > :where(.gw-prose__table) > table tbody th{font-weight: 500}:where(.gw-prose) > table td,:where(.gw-prose) > :where(.gw-prose__table) > table td{color: var(--gw-ink-2);font-variant-numeric: tabular-nums}:where(.gw-prose) > table tbody tr:last-child > *,:where(.gw-prose) > :where(.gw-prose__table) > table tbody tr:last-child > *{border-bottom: 0}:where(.gw-prose) > table caption,:where(.gw-prose) > :where(.gw-prose__table) > table caption{padding: 12px 16px;color: var(--gw-muted);font-size: 13px;text-align: left}@media (max-width: 767px){:where(.gw-prose) > table td,:where(.gw-prose) > :where(.gw-prose__table) > table td{min-width: 160px}}.gw-breadcrumbs{color: var(--gw-muted);font-size: 13px;line-height: 1.5}.gw-breadcrumbs > ol{display: flex;flex-wrap: wrap;align-items: center;gap: 0 8px;margin: 0;padding: 0;list-style: none}.gw-breadcrumbs li{display: flex;align-items: center;gap: 8px;min-width: 0;max-width: 100%}.gw-breadcrumbs li + li::before{content: "";flex: none;width: 12px;height: 12px;background: currentColor;opacity: 0.6;-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 6l6 6-6 6' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat;mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 6l6 6-6 6' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat}.gw-breadcrumbs a{display: inline-flex;align-items: center;min-height: 24px;color: var(--gw-muted)}.gw-breadcrumbs a:hover{color: var(--gw-ink);text-decoration: underline;text-underline-offset: 4px}.gw-breadcrumbs [aria-current="page"]{display: block;min-width: 0;overflow: hidden;color: var(--gw-ink);font-weight: 500;line-height: 24px;text-overflow: ellipsis;white-space: nowrap}.gw-article-meta{display: flex;flex-wrap: wrap;align-items: center;row-gap: 4px;margin-inline-start: -16px;clip-path: inset(-8px -8px -8px 12px);color: var(--gw-muted);font-size: 14px;line-height: 24px}.gw-article-meta > *::before{content: "";display: inline-block;width: 4px;height: 4px;margin-inline: 6px;border-radius: var(--gw-radius-chip);background: var(--gw-line-strong);vertical-align: middle}.gw-article-meta a{display: inline-block;color: var(--gw-accent-strong);font-weight: 500;text-decoration: underline;text-decoration-thickness: 1px;text-underline-offset: 4px;text-decoration-color: color-mix(in srgb,currentColor 40%,transparent)}.gw-article-meta a:hover{text-decoration-color: currentColor}.gw-article-meta__avatar{display: inline-block;width: 24px;height: 24px;margin-inline-end: 8px;border-radius: var(--gw-radius-chip);object-fit: cover;vertical-align: top}.gw-article{padding-block: 32px 64px}.gw-article__head > * + *{margin-top: 16px}.gw-article__head h1{font-size: var(--gw-display-h2)}.gw-article__hero{margin-top: 32px}.gw-article__hero img{width: 100%;border-radius: var(--gw-radius-card);background: var(--gw-bg-soft)}.gw-article__hero figcaption{margin-top: 12px;color: var(--gw-muted);font-size: 14px;line-height: 1.5}.gw-article > .gw-toc{margin-top: 32px}.gw-article > .gw-prose{margin-top: 40px}@media (min-width: 768px){.gw-article{padding-block: 48px 96px}.gw-article__hero{margin-top: 40px}}@media (min-width: 1080px){.gw-article{display: grid;grid-template-columns: minmax(0,68ch) minmax(200px,240px);grid-template-rows: auto auto 1fr;justify-content: space-between;column-gap: 64px}.gw-article > *{grid-column: 1}.gw-article > .gw-article__head{grid-row: 1}.gw-article > .gw-article__hero{grid-row: 2}.gw-article > .gw-prose{grid-row: 3}.gw-article > .gw-toc{grid-column: 2;grid-row: 2 / 4;margin-top: 40px}}.gw-toc{font-size: 14px;line-height: 1.45}.gw-toc > details{border: 1px solid var(--gw-line);border-radius: var(--gw-radius-card);background: var(--gw-surface)}.gw-toc summary{display: flex;align-items: center;justify-content: space-between;gap: 12px;min-height: var(--gw-tap-min);padding: 8px 16px;color: var(--gw-ink);font-weight: 600;list-style: none;cursor: pointer}.gw-toc summary::-webkit-details-marker{display: none}.gw-toc summary::after{content: "";flex: none;width: 12px;height: 12px;background: currentColor;opacity: 0.6;-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat;mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat;transition: transform 0.18s var(--gw-ease)}.gw-toc details[open] > summary::after{transform: rotate(180deg)}.gw-toc ol{margin: 0;padding: 0;list-style: none}.gw-toc details > ol{margin: 0 16px 16px;background: linear-gradient(var(--gw-line),var(--gw-line)) 0 0 / 1px 100% no-repeat}.gw-toc a{display: block;padding: 6px 8px 6px 16px;border-left: 2px solid transparent;color: var(--gw-muted)}.gw-toc ol ol a{padding-left: 32px}.gw-toc a:hover{color: var(--gw-ink)}.gw-toc a:focus-visible{outline-offset: -2px}.gw-toc a[aria-current="true"]{border-left-color: var(--gw-accent);color: var(--gw-ink)}@media (min-width: 1080px){.gw-toc{position: sticky;top: calc(var(--gw-header-height) + 32px);align-self: start}.gw-toc > details{border: 0;border-radius: var(--gw-radius-0);background: transparent}.gw-toc summary{min-height: 32px;padding: 0;color: var(--gw-muted);font-size: 13px}.gw-toc details > ol{max-height: calc(100vh - var(--gw-header-height) - 120px);margin: 8px 0 0;overflow-y: auto;overscroll-behavior: contain}:root:has(.gw-header--float) .gw-toc{top: calc(var(--gw-header-height) + var(--gw-header-gap) + 32px)}:root:has(.gw-header--float) .gw-toc details > ol{max-height: calc(100vh - var(--gw-header-height) - var(--gw-header-gap) - 120px)}}@media (prefers-reduced-motion: no-preference){:root:has(.gw-toc){scroll-behavior: smooth}}.gw-callout{padding: 16px 20px;border-radius: var(--gw-radius-card);background: var(--gw-accent-soft);color: var(--gw-ink);font-size: 16px;line-height: 1.6}.gw-callout > * + *{margin-top: 8px}.gw-callout--tip{background: var(--gw-success-soft)}.gw-callout--warning{background: var(--gw-warning-soft)}.gw-callout__label{display: flex;align-items: center;gap: 8px;font-size: 14px;font-weight: 600;line-height: 1.5}.gw-callout__label::before{content: "";flex: none;width: 16px;height: 16px;background: var(--gw-accent);-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5M12 7.5v.5'/%3E%3C/svg%3E") center / 16px no-repeat;mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5M12 7.5v.5'/%3E%3C/svg%3E") center / 16px no-repeat}.gw-callout--tip > .gw-callout__label::before{background: var(--gw-success);-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18h6M10 21h4M12 3a6 6 0 0 0-3.6 10.8c.7.5 1.1 1.3 1.1 2.2h5c0-.9.4-1.7 1.1-2.2A6 6 0 0 0 12 3z'/%3E%3C/svg%3E");mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18h6M10 21h4M12 3a6 6 0 0 0-3.6 10.8c.7.5 1.1 1.3 1.1 2.2h5c0-.9.4-1.7 1.1-2.2A6 6 0 0 0 12 3z'/%3E%3C/svg%3E")}.gw-callout--warning > .gw-callout__label::before{background: var(--gw-warning);-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.5 2.8 19.5h18.4z'/%3E%3Cpath d='M12 10v4M12 16.8v.2'/%3E%3C/svg%3E");mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.5 2.8 19.5h18.4z'/%3E%3Cpath d='M12 10v4M12 16.8v.2'/%3E%3C/svg%3E")}.gw-post-list{display: grid;grid-template-columns: minmax(0,1fr);gap: 16px;padding: 0;list-style: none}.gw-post-list > li{display: flex;min-width: 0}.gw-post{position: relative;display: flex;flex: 1 1 auto;flex-direction: column;min-width: 0}.gw-post:hover{border-color: var(--gw-line-strong)}.gw-post > .gw-card__media + *{margin-top: 20px}.gw-post > .gw-label + .gw-post__title{margin-top: 8px}.gw-post__title{font-size: 20px;line-height: 1.3}.gw-post__title a{color: var(--gw-ink)}.gw-post__title a::after{content: "";position: absolute;inset: 0;z-index: 1;border-radius: var(--gw-radius-card)}.gw-post:hover .gw-post__title a{text-decoration: underline;text-decoration-thickness: 1px;text-underline-offset: 4px}.gw-post__title a:focus-visible{outline: 0}.gw-post__title a:focus-visible::after{outline: 2px solid var(--gw-accent);outline-offset: 2px}.gw-post__title + p{margin-top: 8px}.gw-post > .gw-article-meta{margin-top: auto;padding-top: 16px}@media (min-width: 768px){.gw-post-list{gap: 24px}.gw-post-list:not(.gw-post-list--compact){grid-template-columns: repeat(2,minmax(0,1fr))}}@media (min-width: 1080px){.gw-post-list:not(.gw-post-list--compact){grid-template-columns: repeat(3,minmax(0,1fr))}}.gw-post-list--compact{gap: 0;border-top: 1px solid var(--gw-line)}.gw-post-list--compact .gw-post{padding: 20px 0;border: 0;border-bottom: 1px solid var(--gw-line);border-radius: var(--gw-radius-0);background: transparent;box-shadow: none}.gw-post-list--compact .gw-post__title a::after{border-radius: var(--gw-radius-0)}.gw-post-list--compact .gw-card__media{display: none}.gw-post-list--compact .gw-post > .gw-article-meta{padding-top: 8px}.gw-pagination{display: flex;flex-wrap: wrap;align-items: center;justify-content: space-between;gap: 12px 16px}* + .gw-pagination{margin-top: 40px}.gw-pagination__status{color: var(--gw-muted);font-size: 14px}.gw-pagination > [rel="next"]{margin-inline-start: auto}.gw-field{display: grid;gap: 8px;min-width: 0}.gw-field__label{display: block;color: var(--gw-ink);font-size: 14px;font-weight: 600;line-height: 1.5}:is(.gw-field,.gw-choices) > :is(.gw-field__hint,.gw-field__error){margin: 0;font-size: 14px;font-weight: 400;line-height: 1.5}:is(.gw-field,.gw-choices) > .gw-field__hint{color: var(--gw-muted)}:is(.gw-field,.gw-choices) > .gw-field__error{display: flex;gap: 6px;color: var(--gw-danger);font-weight: 500}:is(.gw-field,.gw-choices) > .gw-field__error:empty{display: none}.gw-field__error::before{content: "";flex: none;width: 16px;height: 16px;margin-top: 2px;margin-top: calc((1lh - 16px) / 2);background: currentColor;-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M10 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16Zm-.75 4h1.5v5.5h-1.5V6Zm.75 9a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z'/%3E%3C/svg%3E") center / 16px no-repeat;mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M10 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16Zm-.75 4h1.5v5.5h-1.5V6Zm.75 9a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z'/%3E%3C/svg%3E") center / 16px no-repeat}.gw-input,.gw-select,.gw-textarea{display: block;width: 100%;min-width: 0;height: var(--gw-button-height);margin: 0;padding: 0 12px;border: 1px solid var(--gw-line-control);border-radius: var(--gw-radius-action);background-color: var(--gw-surface);color: var(--gw-ink);font-size: 16px;line-height: 1.5;-webkit-appearance: none;appearance: none}:is(.gw-input,.gw-textarea)::placeholder{color: var(--gw-muted);opacity: 1}.gw-select{padding-right: 40px;background-image: linear-gradient(45deg,transparent 50%,var(--gw-muted) 50%),linear-gradient(135deg,var(--gw-muted) 50%,transparent 50%);background-position: calc(100% - 20px) 50%,calc(100% - 15px) 50%;background-size: 5px 5px;background-repeat: no-repeat;cursor: pointer}.gw-textarea{height: auto;min-height: 96px;padding-block: 8px;resize: vertical}:is(.gw-input,.gw-select,.gw-textarea):hover{border-color: var(--gw-muted)}:is(.gw-input,.gw-select,.gw-textarea):focus-visible{border-color: var(--gw-ink);outline: 2px solid var(--gw-accent);outline-offset: 1px}:is(.gw-input,.gw-textarea)[readonly]{border-color: var(--gw-line-strong);background-color: var(--gw-bg-soft);cursor: default}:is(.gw-input,.gw-select,.gw-textarea)[aria-invalid="true"]{border-color: var(--gw-danger);background-color: var(--gw-danger-soft)}:is(.gw-input,.gw-select,.gw-textarea):disabled{opacity: 0.48;cursor: not-allowed}.gw-choices{min-width: 0;margin: 0;padding: 0;border: 0}.gw-choices > legend{margin-bottom: 4px;padding: 0}.gw-choices > :is(.gw-check,.gw-radio){display: flex}.gw-choices > :is(.gw-field__hint,.gw-field__error){margin-top: 4px}.gw-check,.gw-radio{display: inline-flex;align-items: flex-start;gap: 8px;max-width: 100%;padding-block: 4px;color: var(--gw-ink);font-size: 16px;line-height: 1.5;overflow-wrap: break-word;cursor: pointer}:is(.gw-check,.gw-radio) > :not(input){min-width: 0}:is(.gw-check,.gw-radio) > input{display: inline-grid;flex: none;place-content: center;width: 18px;height: 18px;margin: 3px 0 0;border: 1px solid var(--gw-line-control);border-radius: var(--gw-radius-4);background: var(--gw-surface);-webkit-appearance: none;appearance: none;cursor: inherit}.gw-radio > input{border-radius: var(--gw-radius-chip)}:is(.gw-check,.gw-radio):hover > input{border-color: var(--gw-muted)}.gw-check > input:checked{border-color: var(--gw-accent);background: var(--gw-accent)}.gw-check > input:checked::before{content: "";width: 14px;height: 14px;background: var(--gw-on-accent);-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.4l2.9 2.8L12.5 5' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 14px no-repeat;mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.4l2.9 2.8L12.5 5' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 14px no-repeat}.gw-radio > input:checked{border: 5px solid var(--gw-accent)}:is(.gw-check,.gw-radio) > input[aria-invalid="true"]:not(:checked){border-color: var(--gw-danger)}:is(.gw-check,.gw-radio):has(> input:disabled){opacity: 0.48;cursor: not-allowed}.gw-check__count{flex: none;min-width: 24px;margin: 1px 0 0 auto;padding: 2px 8px;border-radius: var(--gw-radius-chip);background: color-mix(in srgb,var(--gw-ink) 8%,transparent);color: var(--gw-ink-2);font-size: 12px;font-weight: 500;text-align: center;font-variant-numeric: tabular-nums}.gw-form-inline{display: flex;flex-wrap: wrap;gap: 8px}.gw-form-inline > :not(.gw-btn){flex: 999 1 160px;min-width: 0}.gw-form-inline > .gw-btn{flex: 1 0 auto;justify-content: center}@media (max-width: 479px){.gw-form-inline > :not(.gw-btn){flex-basis: 100%}}.gw-form{display: grid;gap: 24px;max-width: 560px}.gw-form > *{margin: 0}.gw-form > :is(.gw-actions,.gw-btn){margin-top: 8px}.gw-form > .gw-btn{justify-self: start}@media (max-width: 768px),(pointer: coarse){.gw-input,.gw-select{height: var(--gw-tap-min)}.gw-check,.gw-radio{padding-block: 10px}}.gw-stars{display: inline-block;flex: none;width: 80px;height: 16px;vertical-align: middle;background: linear-gradient(90deg,var(--gw-ink) calc(clamp(0,var(--gw-stars,0),5) * 20%),var(--gw-line-strong) 0);-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1.6L9.8 6.4L14.8 6.6L10.9 9.7L12.2 14.6L8 11.8L3.8 14.6L5.1 9.7L1.2 6.6L6.2 6.4Z' stroke='%23000' stroke-width='1' stroke-linejoin='round'/%3E%3C/svg%3E") 0 0 / 16px 16px repeat-x;mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1.6L9.8 6.4L14.8 6.6L10.9 9.7L12.2 14.6L8 11.8L3.8 14.6L5.1 9.7L1.2 6.6L6.2 6.4Z' stroke='%23000' stroke-width='1' stroke-linejoin='round'/%3E%3C/svg%3E") 0 0 / 16px 16px repeat-x}@media (forced-colors: active){.gw-stars{forced-color-adjust: none;background: linear-gradient(90deg,CanvasText calc(clamp(0,var(--gw-stars,0),5) * 20%),GrayText 0)}}.gw-testimonials{display: grid;grid-template-columns: minmax(0,1fr);gap: 16px;padding: 0;list-style: none}.gw-testimonials > li{display: flex;min-width: 0}@media (min-width: 768px){.gw-testimonials{grid-template-columns: repeat(2,minmax(0,1fr));gap: 24px}}@media (min-width: 1080px){.gw-testimonials{grid-template-columns: repeat(3,minmax(0,1fr))}}.gw-testimonial{display: flex;flex-direction: column;gap: 16px;width: 100%;margin: 0}.gw-testimonial > *{margin: 0}.gw-testimonial__quote,.gw-testimonial__quote p{color: var(--gw-ink);font-size: 16px;line-height: 1.6}.gw-testimonial__quote > * + *{margin-top: 8px}.gw-testimonial > .gw-testimonial__by{display: flex;align-items: center;gap: 12px;margin-top: auto;color: var(--gw-muted);font-size: 14px;line-height: 1.5}.gw-testimonial__by b{display: block;color: var(--gw-ink);font-weight: 600}.gw-testimonial__by > :not(img){min-width: 0}.gw-testimonial__avatar{flex: none;width: 40px;height: 40px;border-radius: var(--gw-radius-chip);background: var(--gw-bg-soft);object-fit: cover}.gw-rating-badge{display: inline-flex;align-items: center;gap: 12px;max-width: 100%;padding: 8px 16px 8px 8px;border: 1px solid var(--gw-line);border-radius: var(--gw-radius-card);background: var(--gw-surface);color: var(--gw-ink);font-size: 13px;line-height: 1.4;vertical-align: middle}a.gw-rating-badge:hover{border-color: var(--gw-line-strong)}.gw-rating-badge__icon{display: inline-flex;flex: none;align-items: center;justify-content: center;width: 40px;height: 40px;border-radius: var(--gw-radius-action);background: var(--gw-bg-soft);color: var(--gw-ink)}.gw-rating-badge__icon :is(svg,img){width: 24px;height: 24px}.gw-rating-badge__body{display: grid;gap: 2px;min-width: 0}.gw-rating-badge__score{display: flex;align-items: center;gap: 8px;color: var(--gw-ink);font-size: 16px;font-weight: 600;font-variant-numeric: tabular-nums}.gw-rating-badge__count{color: var(--gw-muted)}@property --gw-spot-r{syntax: "<length>";inherits: true;initial-value: 0px}@media (hover: hover) and (pointer: fine){[data-gw-ready~="spot"]{--gw-spot-r: 0px}[data-gw-ready~="spot"]:is(:hover,:focus-visible){--gw-spot-r: var(--gw-spot-radius);--gw-muted: var(--gw-ink-2)}[data-gw-ready~="spot"]:has(:focus-visible){--gw-spot-r: var(--gw-spot-radius);--gw-muted: var(--gw-ink-2)}.gw-btn[data-gw-ready~="spot"]:is(:hover,:focus-visible){--gw-spot-r: var(--gw-spot-radius-action)}:where(.gw-spot){position: relative;isolation: isolate}.gw-spot:not([aria-busy="true"])::before{--gw-spot-mix: var(--gw-spot-strength);content: "";position: absolute;inset: 0;z-index: -1;border-radius: inherit;background: radial-gradient(circle var(--gw-spot-r) at var(--gw-spot-x,50%) var(--gw-spot-y,50%),color-mix(in srgb,var(--gw-accent) var(--gw-spot-mix),transparent),transparent 70%);pointer-events: none;transition: --gw-spot-r var(--gw-spot-ms) var(--gw-spot-ease)}.gw-btn.gw-spot:not([aria-busy="true"])::before{--gw-spot-mix: var(--gw-spot-strength-action)}.gw-mega__art.gw-spot:not([aria-busy="true"])::before{--gw-spot-mix: var(--gw-spot-strength-stage)}:where([data-gw-ready~="spot"] *){transition: color 0s linear var(--gw-spot-ms)}:where([data-gw-ready~="spot"]:is(:hover,:focus-visible) *){transition-delay: 0s}:where([data-gw-ready~="spot"]:has(:focus-visible) *){transition-delay: 0s}:is([data-gw-ready~="spot"]:focus-visible,[data-gw-ready~="spot"]:focus-visible *).gw-spot::before{--gw-spot-x: 50%;--gw-spot-y: 50%}:is([data-gw-ready~="spot"]:has(:focus-visible),[data-gw-ready~="spot"]:has(:focus-visible) *).gw-spot::before{--gw-spot-x: 50%;--gw-spot-y: 50%}}@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: reduce){.gw-spot:not([aria-busy="true"])::before{--gw-spot-x: 50%;--gw-spot-y: 50%;transition: none}:where([data-gw-ready~="spot"] *){transition: none}}
1
+ /*! @gemboss/website-ui 0.14.0 | generated by scripts/build.mjs from the files in css/. Edit those and not this file */ :root{color-scheme: light;--gw-font: Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--gw-font-mono: ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--gw-font-action: Inter;--gw-text-11: 11px;--gw-text-12: 12px;--gw-text-13: 13px;--gw-text-14: 14px;--gw-text-16: 16px;--gw-text-18: 18px;--gw-text-20: 20px;--gw-text-22: 22px;--gw-text-24: 24px;--gw-text-30: 30px;--gw-display-h1: clamp(40px,4.6vw,68px);--gw-display-h2: clamp(32px,3.4vw,52px);--gw-display-wordmark: clamp(40px,9vw,128px);--gw-display-weight: 600;--gw-display-tracking: -0.03em;--gw-display-h1-leading: 1.1;--gw-display-h2-leading: 1.06;--gw-heading-weight: 650;--gw-heading-tracking: -0.022em;--gw-heading-leading: 1.08;--gw-body-size: 18px;--gw-body-leading: 1.6;--gw-space-0: 0;--gw-space-2: 2px;--gw-space-4: 4px;--gw-space-6: 6px;--gw-space-8: 8px;--gw-space-12: 12px;--gw-space-16: 16px;--gw-space-20: 20px;--gw-space-24: 24px;--gw-space-32: 32px;--gw-space-40: 40px;--gw-space-48: 48px;--gw-space-64: 64px;--gw-space-80: 80px;--gw-space-96: 96px;--gw-space-120: 120px;--gw-space-section: clamp(56px,38px + 5vw,110px);--gw-radius-0: 0;--gw-radius-2: 2px;--gw-radius-4: 4px;--gw-radius-6: 6px;--gw-radius-8: 8px;--gw-radius-12: 12px;--gw-radius-16: 16px;--gw-radius-20: 20px;--gw-radius-24: 24px;--gw-radius-999: 999px;--gw-radius-action: 8px;--gw-radius-chip: 999px;--gw-radius-card: 12px;--gw-radius-panel: 16px;--gw-radius-popover: 20px;--gw-shadow: 0 1px 2px rgba(31,30,29,.04),0 2px 6px rgba(31,30,29,.06);--gw-shadow-sm: 0 1px 2px rgba(31,30,29,.04);--gw-shadow-raised: 0 4px 16px rgba(31,30,29,.10);--gw-shadow-lift: 0 16px 32px -12px rgba(4,5,26,.72),0 4px 8px -2px rgba(4,5,26,.36);--gw-wrap: 1120px;--gw-wrap-narrow: 780px;--gw-gutter: 22px;--gw-header-height: 64px;--gw-header-gap: 16px;--gw-header-surface: 85%;--gw-header-blur: 10px;--gw-button-height: 40px;--gw-tap-min: 44px;--gw-ease: cubic-bezier(.22,1,.36,1);--gw-reveal-ms: 700ms;--gw-reveal-distance: 20px;--gw-spin-ms: 700ms;--gw-spot-radius: 260px;--gw-spot-radius-action: 120px;--gw-spot-strength: 22%;--gw-spot-strength-action: 38%;--gw-spot-strength-stage: 40%;--gw-spot-ms: 550ms;--gw-spot-ease: cubic-bezier(.16,1,.3,1);--gw-wash-pink: #ff6f5e;--gw-wash-violet: #7c8af7;--gw-wash-sky: #43b0ff;--gw-wash-mint: #1fcf9f;--gw-stage-glow: rgba(139,147,255,0.5);--gw-stage-glow-2: rgba(86,97,245,0.34);--gw-stage-top: #1d2058;--gw-stage-bottom: #0d0f2e;--gw-stage-dot: rgba(255,255,255,0.1);--gw-stage-ink: #ffffff;--gw-announce-bg: #171a38;--gw-announce-ink: #b9beda;--gw-announce-line: rgba(255,255,255,0.06);--gw-announce-tag: rgba(122,132,255,0.2);--gw-announce-tag-ink: #a7aeff;--gw-announce-link: #ffffff;--gw-announce-link-line: rgba(255,255,255,0.28);--gw-accent-light: #5661f5;--gw-accent-strong-light: #3a44de;--gw-accent-soft-light: #eef0fe;--gw-on-accent-light: #ffffff;--gw-accent-dark: #7c84ff;--gw-accent-strong-dark: #a3a9ff;--gw-accent-soft-dark: #1f2140;--gw-on-accent-dark: #0d0d12;--gw-bg: #ffffff;--gw-bg-soft: #f2f3f5;--gw-surface: #ffffff;--gw-ink: #1b1c1e;--gw-ink-2: #3b3d42;--gw-muted: #6a6d73;--gw-line: #e5e7ea;--gw-line-strong: #d5d8dd;--gw-line-control: #85888e;--gw-action: #1b1c1e;--gw-action-hover: #000000;--gw-on-action: #ffffff;--gw-accent: var(--gw-accent-light);--gw-accent-strong: var(--gw-accent-strong-light);--gw-accent-soft: var(--gw-accent-soft-light);--gw-on-accent: var(--gw-on-accent-light);--gw-success: #007f5f;--gw-success-soft: #e3f1df;--gw-success-strong: #0a6a4c;--gw-warning: #9a6700;--gw-warning-soft: #fbf1dc;--gw-danger: #b42318;--gw-danger-soft: #fff0e9;--gw-on-danger: #ffffff;--gw-night: #0c0e14;--gw-night-2: #141722;--gw-on-night: #e3e4e8;--gw-on-night-muted: #9aa3ff;--gw-scrim: rgba(12,14,18,0.12)}@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){color-scheme: dark;--gw-bg: #0d0d12;--gw-bg-soft: #121318;--gw-surface: #16171d;--gw-ink: #e3e4e8;--gw-ink-2: #c4c6cc;--gw-muted: #9a9ca6;--gw-line: #2a2b33;--gw-line-strong: #383944;--gw-line-control: #6a6d78;--gw-action: #e3e4e8;--gw-action-hover: #ffffff;--gw-on-action: #0d0d12;--gw-accent: var(--gw-accent-dark);--gw-accent-strong: var(--gw-accent-strong-dark);--gw-accent-soft: var(--gw-accent-soft-dark);--gw-on-accent: var(--gw-on-accent-dark);--gw-success: #34c38f;--gw-success-soft: #132a22;--gw-success-strong: #34c38f;--gw-warning: #e0b341;--gw-warning-soft: #2b2410;--gw-danger: #ff6b5a;--gw-danger-soft: #2e1714;--gw-on-danger: #0d0d12;--gw-night: #0a0b10;--gw-night-2: #12141c;--gw-on-night: #e3e4e8;--gw-on-night-muted: #9aa3ff;--gw-scrim: rgba(0,0,0,0.35);--gw-shadow: 0 1px 0 rgba(0,0,0,.3);--gw-shadow-sm: 0 1px 0 rgba(0,0,0,.25);--gw-shadow-raised: 0 4px 16px rgba(0,0,0,.5)}}:root[data-theme="dark"]{color-scheme: dark;--gw-bg: #0d0d12;--gw-bg-soft: #121318;--gw-surface: #16171d;--gw-ink: #e3e4e8;--gw-ink-2: #c4c6cc;--gw-muted: #9a9ca6;--gw-line: #2a2b33;--gw-line-strong: #383944;--gw-line-control: #6a6d78;--gw-action: #e3e4e8;--gw-action-hover: #ffffff;--gw-on-action: #0d0d12;--gw-accent: var(--gw-accent-dark);--gw-accent-strong: var(--gw-accent-strong-dark);--gw-accent-soft: var(--gw-accent-soft-dark);--gw-on-accent: var(--gw-on-accent-dark);--gw-success: #34c38f;--gw-success-soft: #132a22;--gw-success-strong: #34c38f;--gw-warning: #e0b341;--gw-warning-soft: #2b2410;--gw-danger: #ff6b5a;--gw-danger-soft: #2e1714;--gw-on-danger: #0d0d12;--gw-night: #0a0b10;--gw-night-2: #12141c;--gw-on-night: #e3e4e8;--gw-on-night-muted: #9aa3ff;--gw-scrim: rgba(0,0,0,0.35);--gw-shadow: 0 1px 0 rgba(0,0,0,.3);--gw-shadow-sm: 0 1px 0 rgba(0,0,0,.25);--gw-shadow-raised: 0 4px 16px rgba(0,0,0,.5)}:root[data-theme="light"]{color-scheme: light;--gw-bg: #ffffff;--gw-bg-soft: #f2f3f5;--gw-surface: #ffffff;--gw-ink: #1b1c1e;--gw-ink-2: #3b3d42;--gw-muted: #6a6d73;--gw-line: #e5e7ea;--gw-line-strong: #d5d8dd;--gw-line-control: #85888e;--gw-action: #1b1c1e;--gw-action-hover: #000000;--gw-on-action: #ffffff;--gw-accent: var(--gw-accent-light);--gw-accent-strong: var(--gw-accent-strong-light);--gw-accent-soft: var(--gw-accent-soft-light);--gw-on-accent: var(--gw-on-accent-light);--gw-success: #007f5f;--gw-success-soft: #e3f1df;--gw-success-strong: #0a6a4c;--gw-warning: #9a6700;--gw-warning-soft: #fbf1dc;--gw-danger: #b42318;--gw-danger-soft: #fff0e9;--gw-on-danger: #ffffff;--gw-night: #0c0e14;--gw-night-2: #141722;--gw-on-night: #e3e4e8;--gw-on-night-muted: #9aa3ff;--gw-scrim: rgba(12,14,18,0.12)}.gw-band--night,.gw-showcase{color-scheme: dark;--gw-bg: var(--gw-night);--gw-bg-soft: var(--gw-night-2);--gw-surface: var(--gw-night-2);--gw-ink: #e3e4e8;--gw-ink-2: #c4c6cc;--gw-muted: #9a9ca6;--gw-line: #2a2b33;--gw-line-strong: #383944;--gw-line-control: #6a6d78;--gw-action: #e3e4e8;--gw-action-hover: #ffffff;--gw-on-action: #0d0d12;--gw-accent: var(--gw-accent-dark);--gw-accent-strong: var(--gw-accent-strong-dark);--gw-accent-soft: var(--gw-accent-soft-dark);--gw-on-accent: var(--gw-on-accent-dark);--gw-success: #34c38f;--gw-success-soft: #132a22;--gw-success-strong: #34c38f;--gw-warning: #e0b341;--gw-warning-soft: #2b2410;--gw-danger: #ff6b5a;--gw-danger-soft: #2e1714;--gw-on-danger: #0d0d12;--gw-scrim: rgba(0,0,0,0.35)}:root[data-gw-action="accent"],:root[data-gw-action="accent"] :is(.gw-band--night,.gw-showcase){--gw-action: var(--gw-accent);--gw-action-hover: var(--gw-accent-strong);--gw-on-action: var(--gw-on-accent)}:root[data-gw-radius="soft"]{--gw-radius-action: 12px;--gw-radius-card: 20px;--gw-radius-panel: 24px;--gw-radius-popover: 24px}*,*::before,*::after{box-sizing: border-box}[hidden]{display: none !important}html{-webkit-text-size-adjust: 100%;text-size-adjust: 100%}body{margin: 0;background: var(--gw-bg);color: var(--gw-ink);font-family: var(--gw-font);font-size: var(--gw-body-size);line-height: var(--gw-body-leading);-webkit-font-smoothing: antialiased;text-rendering: optimizeLegibility}:where(h1,h2,h3,h4,h5,h6,p,ul,ol,dl,dd,figure,blockquote){margin: 0}img,svg,video{display: block;max-width: 100%}img,video{height: auto}button,input,select,textarea{font: inherit;color: inherit}button{cursor: pointer}a{color: inherit;text-decoration: none}b,strong{font-weight: 600}.gw-page{display: flex;flex-direction: column;min-height: 100vh;min-height: 100dvh}.gw-page > main{flex: 1 0 auto}h1,h2,h3,h4,h5,h6,.gw-h1,.gw-h2,.gw-h3,.gw-h4{font-weight: var(--gw-heading-weight);letter-spacing: var(--gw-heading-tracking);line-height: var(--gw-heading-leading);text-wrap: balance}h1,.gw-h1,h2,.gw-h2{font-weight: var(--gw-display-weight);letter-spacing: var(--gw-display-tracking)}h1,.gw-h1{font-size: var(--gw-display-h1);line-height: var(--gw-display-h1-leading)}h2,.gw-h2{font-size: var(--gw-display-h2);line-height: var(--gw-display-h2-leading)}h3,.gw-h3{font-size: 20px;font-weight: 600;letter-spacing: -0.02em;line-height: 1.2}h4,.gw-h4{font-size: 20px;font-weight: 600;letter-spacing: -0.01em}h5,h6{font-size: 16px;font-weight: 600;letter-spacing: 0}.gw-lead{font-size: 18px;line-height: 1.55;color: var(--gw-muted);max-width: 58ch}.gw-note{font-size: 14px;color: var(--gw-muted)}.gw-dim{color: var(--gw-muted)}.gw-label{display: inline-flex;align-items: center;gap: 8px;font-size: 13px;font-weight: 500;color: var(--gw-muted)}.gw-label::before{content: "";width: 8px;height: 8px;border-radius: var(--gw-radius-2);background: var(--gw-label-mark,var(--gw-ink))}:where(p,dd,td,figcaption,.gw-list--check li,.gw-prose) a:not([class]),.gw-link{color: var(--gw-accent-strong);font-weight: 500;text-decoration: underline;text-decoration-thickness: 1px;text-underline-offset: 4px;text-decoration-color: color-mix(in srgb,currentColor 40%,transparent)}:where(p,dd,td,figcaption,.gw-list--check li,.gw-prose) a:not([class]):hover,.gw-link:hover{text-decoration-color: currentColor}:focus-visible{border-radius: var(--gw-radius-4);outline: 2px solid var(--gw-accent);outline-offset: 3px}[id]{scroll-margin-top: calc(var(--gw-header-height) + 16px)}.gw-skip{position: absolute;left: -9999px;top: 0;z-index: 200;padding: 12px 20px;border-radius: 0 0 var(--gw-radius-card) 0;background: var(--gw-accent);color: var(--gw-on-accent);box-shadow: var(--gw-shadow);font-size: 14px;font-weight: 600}.gw-skip:focus{left: 0;border-radius: 0 0 var(--gw-radius-card) 0}.gw-visually-hidden{position: absolute;width: 1px;height: 1px;padding: 0;overflow: hidden;clip-path: inset(50%);white-space: nowrap;border: 0}.gw-reveal{opacity: 0;transform: translateY(var(--gw-reveal-distance));transition: opacity var(--gw-reveal-ms) var(--gw-ease),transform var(--gw-reveal-ms) var(--gw-ease);animation: gw-reveal-failsafe 1ms linear 2.5s forwards}.gw-reveal.is-in{opacity: 1;transform: none}@keyframes gw-reveal-failsafe{to{opacity: 1;transform: none}}@media (prefers-reduced-motion: reduce){*,*::before,*::after{scroll-behavior: auto !important}.gw-reveal{opacity: 1;transform: none;transition: none;animation: none}}.gw-wrap,.gw-wrap--narrow{width: min(100% - 2 * var(--gw-gutter),var(--gw-wrap));margin-inline: auto}.gw-wrap--narrow{max-width: var(--gw-wrap-narrow)}.gw-section{padding-block: var(--gw-space-section)}.gw-section--soft{background: var(--gw-bg-soft)}.gw-section--tight{padding-block: 40px}@media (min-width: 768px){.gw-section--tight{padding-block: 64px}}.gw-section__head{max-width: 760px}.gw-section__head--center{margin-inline: auto;text-align: center}.gw-section__head--center .gw-lead{margin-inline: auto}:where(.gw-section__head) + *{margin-top: 40px}@media (min-width: 768px){:where(.gw-section__head) + *{margin-top: 48px}}:where(.gw-section__head,.gw-hero > .gw-wrap,.gw-split > :not(.gw-window),.gw-cta,.gw-card,.gw-feature,.gw-plan) > * + *{margin-top: 16px}:where(.gw-section__head,.gw-hero > .gw-wrap,.gw-split > :not(.gw-window),.gw-cta,.gw-card,.gw-plan) > :is(.gw-actions,.gw-segmented){margin-top: 32px}:where(.gw-section__head,.gw-hero > .gw-wrap,.gw-split > :not(.gw-window),.gw-cta,.gw-card,.gw-plan) > .gw-list--check{margin-top: 24px}:where(.gw-section__head,.gw-split > :not(.gw-window),.gw-cta) > :where(* + .gw-lead){margin-top: 20px}.gw-actions{display: flex;flex-wrap: wrap;align-items: center;gap: 12px}.gw-grid,.gw-grid--2,.gw-grid--3,.gw-grid--4{display: grid;grid-template-columns: minmax(0,1fr);gap: 16px}@media (min-width: 480px){.gw-grid--4{grid-template-columns: repeat(2,minmax(0,1fr))}}@media (min-width: 768px){.gw-grid,.gw-grid--2,.gw-grid--3,.gw-grid--4{gap: 24px}.gw-grid--2{grid-template-columns: repeat(2,minmax(0,1fr))}.gw-grid--3{grid-template-columns: repeat(3,minmax(0,1fr))}}@media (min-width: 1080px){.gw-grid--4{grid-template-columns: repeat(4,minmax(0,1fr))}}.gw-band--night,.gw-showcase{position: relative;isolation: isolate;color: var(--gw-ink);background: radial-gradient(800px 360px at 50% 0%,color-mix(in srgb,var(--gw-accent) 22%,transparent),transparent 72%),var(--gw-night)}.gw-btn{position: relative;display: inline-flex;align-items: center;gap: 8px;max-width: 100%;height: var(--gw-button-height);padding: 0 20px;border: 1px solid transparent;border-radius: var(--gw-radius-action);background: var(--gw-action);color: var(--gw-on-action);font-family: var(--gw-font-action);font-size: 14px;font-weight: 600;letter-spacing: 0;text-align: center;white-space: nowrap;cursor: pointer;transition: background 0.15s ease,border-color 0.15s ease}.gw-btn:hover{transform: translateY(-1px);box-shadow: var(--gw-shadow)}.gw-btn svg{flex: none;width: 16px;height: 16px}.gw-btn--secondary{background: transparent;border-color: var(--gw-line-strong);color: var(--gw-ink)}.gw-btn--secondary:hover{background: transparent;border-color: var(--gw-ink)}.gw-btn--ghost{background: transparent;color: var(--gw-ink)}.gw-btn--ghost:hover{background: var(--gw-bg-soft)}.gw-btn:is(.gw-btn--secondary,.gw-btn--ghost):hover{transform: none;box-shadow: none}.gw-btn__arrow{letter-spacing: 0;transition: transform 0.18s ease}.gw-btn:hover .gw-btn__arrow{transform: translateX(3px)}.gw-btn--on-night{background: var(--gw-on-night);color: var(--gw-night)}.gw-btn--on-night:hover{background: var(--gw-on-night);opacity: 0.88}.gw-btn--sm{height: 36px;padding: 0 16px}.gw-btn--sm::after{content: "";position: absolute;top: -6px;right: 0;bottom: -6px;left: 0}.gw-btn--lg{height: 48px;padding: 0 24px;font-size: 16px}.gw-btn--block{display: flex;width: 100%;justify-content: center}.gw-btn:disabled,.gw-btn[aria-disabled="true"]{opacity: 0.48;cursor: not-allowed;pointer-events: none}.gw-btn:active{background: var(--gw-action-hover)}.gw-btn--secondary:active{background: var(--gw-bg-soft);border-color: var(--gw-ink)}.gw-btn--ghost:active{background: var(--gw-line)}.gw-btn--on-night:active{background: var(--gw-on-night);opacity: 0.76}.gw-btn--danger{background: var(--gw-danger);color: var(--gw-on-danger)}.gw-btn--danger:hover,.gw-btn--danger:active{background: color-mix(in srgb,var(--gw-danger) 84%,var(--gw-ink))}.gw-btn[aria-busy="true"]{cursor: progress;-webkit-text-fill-color: transparent}.gw-btn[aria-busy="true"] svg{opacity: 0}.gw-btn[aria-busy="true"]::before{content: "";position: absolute;top: 50%;left: 50%;width: 16px;height: 16px;margin: -8px 0 0 -8px;border: 2px solid color-mix(in srgb,currentColor 18%,transparent);border-top-color: currentColor;border-radius: var(--gw-radius-chip);animation: gw-spin var(--gw-spin-ms) linear infinite}@keyframes gw-spin{to{transform: rotate(360deg)}}@media (prefers-reduced-motion: reduce){.gw-btn[aria-busy="true"]::before{border: 0;border-radius: var(--gw-radius-0);background: radial-gradient(circle at 3px 50%,currentColor 1.5px,transparent 2px),radial-gradient(circle at 8px 50%,currentColor 1.5px,transparent 2px),radial-gradient(circle at 13px 50%,currentColor 1.5px,transparent 2px);animation: none}}.gw-link--arrow{display: inline-flex;align-items: center;gap: 6px;min-height: 24px;font-weight: 600;text-decoration: none}.gw-link--arrow::after{content: "\2192";transition: transform 0.18s var(--gw-ease)}.gw-link--arrow:hover::after{transform: translateX(2px)}.gw-chip{display: inline-flex;align-items: center;gap: 6px;min-height: 32px;padding: 4px 12px;border: 1px solid var(--gw-line-strong);border-radius: var(--gw-radius-chip);background: var(--gw-surface);color: var(--gw-ink-2);font-size: 13px;font-weight: 500;line-height: 1.4;white-space: nowrap}:is(a,button,label).gw-chip{cursor: pointer}:is(a,button,label).gw-chip:hover{border-color: var(--gw-ink);color: var(--gw-ink)}.gw-chip.is-active,.gw-chip[aria-pressed="true"],.gw-chip[aria-selected="true"]{border-color: var(--gw-accent);background: var(--gw-accent-soft);color: var(--gw-accent-strong)}.gw-segmented{display: inline-flex;max-width: 100%;border: 1px solid var(--gw-line-strong);border-radius: var(--gw-radius-action);background: var(--gw-surface);overflow: hidden;overflow: clip;vertical-align: middle}.gw-segmented--block{display: flex;width: 100%}.gw-segmented > button{display: inline-flex;flex: 0 1 auto;align-items: center;justify-content: center;min-width: 0;height: calc(var(--gw-button-height) - 2px);padding: 0 16px;border: 0;background: transparent;color: var(--gw-muted);font-size: 14px;font-weight: 500;line-height: 1.4;white-space: nowrap;cursor: pointer}.gw-segmented--block > button{flex: 1 1 0}.gw-segmented > button + button{border-left: 1px solid var(--gw-line-strong)}.gw-segmented > button:hover{background: var(--gw-bg-soft);color: var(--gw-ink)}.gw-segmented > button:active{background: var(--gw-line)}.gw-segmented > button:focus-visible{outline-offset: -2px}.gw-segmented > button[aria-checked="true"]{background: var(--gw-accent-soft);color: var(--gw-accent-strong)}.gw-badge{display: inline-flex;align-items: center;gap: 6px;min-height: 24px;padding: 2px 8px;border-radius: var(--gw-radius-chip);background: color-mix(in srgb,var(--gw-ink) 8%,transparent);color: var(--gw-ink-2);font-size: 12px;font-weight: 500;line-height: 1.4;white-space: nowrap;vertical-align: middle}.gw-badge--accent{background: var(--gw-accent-soft);color: var(--gw-accent-strong)}.gw-badge--success{background: var(--gw-success-soft);color: var(--gw-ink)}.gw-badge--success::before,.gw-badge--warning::before{content: "";flex: none;width: 6px;height: 6px;border-radius: var(--gw-radius-chip);background: var(--gw-success)}.gw-badge--warning::before{background: var(--gw-warning)}.gw-badge--danger{background: var(--gw-danger-soft);color: var(--gw-ink)}.gw-badge--danger::before{content: "";flex: none;width: 6px;height: 6px;border-radius: var(--gw-radius-chip);background: var(--gw-danger)}.gw-status{display: inline-flex;align-items: center;gap: 6px;min-height: 28px;padding: 6px 8px;border-radius: var(--gw-radius-action);background: color-mix(in srgb,var(--gw-ink) 8%,transparent);color: var(--gw-ink-2);font-size: 12px;font-weight: 500;line-height: 16px;white-space: nowrap}.gw-status--success{background: var(--gw-success-soft);color: var(--gw-success-strong)}.gw-status--accent{background: var(--gw-accent-soft);color: var(--gw-accent-strong)}.gw-status__dot{width: 6px;height: 6px;border-radius: var(--gw-radius-chip);background: currentColor}.gw-status--early .gw-status__dot{background: var(--gw-accent)}.gw-card{padding: 24px;border: 1px solid var(--gw-line);border-radius: var(--gw-radius-card);background: var(--gw-surface);box-shadow: var(--gw-shadow)}@media (min-width: 768px){.gw-card{padding: 32px}}.gw-card--soft{background: var(--gw-bg-soft);box-shadow: none}.gw-card--link{display: block;color: inherit}.gw-card--link:hover{border-color: var(--gw-line-strong)}.gw-card__media{overflow: hidden;aspect-ratio: 16 / 9;margin: -24px -24px 0;border-top-left-radius: calc(var(--gw-radius-card) - 1px);border-top-right-radius: calc(var(--gw-radius-card) - 1px);background: var(--gw-bg-soft)}.gw-card__media--wide{aspect-ratio: 1200 / 630}.gw-card__media--square{aspect-ratio: 1 / 1}.gw-card__media :is(img,video){width: 100%;height: 100%;object-fit: cover}@media (min-width: 768px){.gw-card__media{margin: -32px -32px 0}}:where(.gw-card,.gw-feature,.gw-plan) > :is(h3,h4) + p{margin-top: 8px}:where(.gw-card,.gw-feature) h3{font-size: 20px}:where(.gw-card,.gw-feature) p{font-size: 16px;color: var(--gw-muted)}.gw-window{position: relative;overflow: hidden;border: 1px solid var(--gw-line);border-radius: var(--gw-radius-card);background: var(--gw-surface);color: var(--gw-ink);box-shadow: var(--gw-shadow-raised);font-size: 13px;line-height: 20px}.gw-window__bar{display: flex;align-items: center;gap: 8px;min-height: 40px;padding: 0 12px;border-bottom: 1px solid var(--gw-line);color: var(--gw-muted);font-size: 12px;white-space: nowrap;overflow: hidden}.gw-window__bar::before{content: "";flex: none;width: 8px;height: 8px;margin-right: 36px;border-radius: var(--gw-radius-chip);background: var(--gw-line-strong);box-shadow: 14px 0 0 var(--gw-line-strong),28px 0 0 var(--gw-line-strong)}.gw-window__bar > :first-child{min-width: 0;overflow: hidden}.gw-window__bar b{color: var(--gw-ink);font-weight: 600}@media (max-width: 560px){.gw-window__bar{align-items: flex-start;padding-block: 8px;white-space: normal}.gw-window__bar > :first-child{overflow: visible}}.gw-window__body{padding: 16px}.gw-window__body:has(> img:only-child){padding: 0}.gw-window__body > img{width: 100%}.gw-window__caption{margin: 0;padding: 0 16px 12px;color: var(--gw-muted);font-size: 12px;line-height: 1.5;text-align: end}.gw-window__body:has(> img:only-child) + .gw-window__caption{padding-top: 12px}.gw-figure > :is(img,video,picture){display: block;width: 100%;height: auto;border-radius: var(--gw-radius-card)}.gw-figure > picture > img{display: block;width: 100%;height: auto;border-radius: inherit}.gw-figure > figcaption{margin-top: 12px;color: var(--gw-muted);font-size: 14px;line-height: 1.5}.gw-icon{display: inline-flex;align-items: center;justify-content: center;flex: none;width: 20px;height: 20px}.gw-icon svg{width: 20px;height: 20px}.gw-list--check{display: grid;gap: 12px;padding: 0;list-style: none;font-size: 14px;line-height: 1.5}.gw-list--check > li{position: relative;padding-left: 28px}.gw-list--check > li::before{content: "";position: absolute;left: 0;top: 4px;width: 16px;height: 16px;border-radius: var(--gw-radius-4);background: var(--gw-accent-soft)}.gw-list--check > li::after{content: "";position: absolute;left: 0;top: 4px;width: 16px;height: 16px;background: var(--gw-accent);-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.2l2.6 2.5L12 5.3' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px no-repeat;mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.2l2.6 2.5L12 5.3' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px no-repeat}.gw-table{overflow-x: auto;border: 1px solid var(--gw-line);border-radius: var(--gw-radius-card);background: var(--gw-surface);-webkit-overflow-scrolling: touch}.gw-table table{width: 100%;border-collapse: collapse;font-size: 14px;line-height: 1.5}.gw-table caption{padding: 16px;text-align: left;font-size: 13px;color: var(--gw-muted)}.gw-table th,.gw-table td{padding: 12px 16px;border-bottom: 1px solid var(--gw-line);text-align: left;vertical-align: top}.gw-table thead th{background: var(--gw-bg-soft);color: var(--gw-ink);font-size: 13px;font-weight: 600;white-space: nowrap}.gw-table tbody th{font-weight: 500}.gw-table tbody tr:last-child > *{border-bottom: 0}.gw-table td{color: var(--gw-ink-2);font-variant-numeric: tabular-nums}.gw-table--compare table{min-width: 640px}.gw-table--compare td{text-align: center}.gw-table--compare thead th:not(:first-child){text-align: center}.gw-table--compare tbody th{position: sticky;left: 0;z-index: 1;background: var(--gw-surface);min-width: 160px}.gw-faq{display: grid;gap: 12px}.gw-faq__item{padding: 2px 24px;border: 1px solid var(--gw-line);border-radius: var(--gw-radius-card);background: var(--gw-surface)}.gw-faq__item[open]{border-color: var(--gw-line-strong)}.gw-faq__item > summary{display: flex;align-items: center;justify-content: space-between;gap: 16px;min-height: 44px;padding: 20px 0;font-family: var(--gw-font-action);font-size: 18px;font-weight: 600;list-style: none;cursor: pointer}.gw-faq__item > summary::-webkit-details-marker{display: none}.gw-faq__item > summary::after{content: "+";color: var(--gw-accent);font-size: 24px;font-weight: 400;transition: transform 0.2s ease}.gw-faq__item[open] > summary::after{transform: rotate(45deg)}.gw-faq__item > :not(summary){margin: 0 0 20px;color: var(--gw-muted);font-size: 16px}.gw-faq__item > p{max-width: 33em}@keyframes gw-faq-in{from{opacity: 0;transform: translateY(-4px)}to{opacity: 1;transform: none}}.gw-faq__item[open] > :not(summary){animation: gw-faq-in 0.28s ease}@media (prefers-reduced-motion: reduce){.gw-faq__item[open] > :not(summary){animation: none}}@media (max-width: 560px){.gw-faq__item > summary{padding-block: 4px}}@media (max-width: 768px){.gw-btn,.gw-btn--sm,.gw-btn--lg{height: auto;min-height: var(--gw-tap-min);padding-block: 8px}.gw-btn--lg{min-height: 48px}}@media (max-width: 480px){:where(main) .gw-btn{white-space: normal;line-height: 1.35}}@media (max-width: 768px),(pointer: coarse){:is(a,button,label).gw-chip{min-height: var(--gw-tap-min)}.gw-segmented > button{height: auto;min-height: var(--gw-tap-min);padding-block: 8px;white-space: normal;text-wrap: balance}}.gw-announce{position: relative;z-index: 60;padding: 12px 16px;border-bottom: 1px solid var(--gw-announce-line);background: var(--gw-announce-bg);color: var(--gw-announce-ink);font-size: 13px;font-weight: 500;line-height: 1.5;letter-spacing: 0.005em;text-align: center}.gw-announce__tag{display: inline-block;margin-right: 12px;padding: 2.5px 8px;border-radius: var(--gw-radius-chip);background: var(--gw-announce-tag);color: var(--gw-announce-tag-ink);font-size: 11px;font-weight: 700;letter-spacing: 0.09em;vertical-align: 1px}.gw-announce a{margin-left: 8px;padding-bottom: 2px;border-bottom: 1px solid var(--gw-announce-link-line);color: var(--gw-announce-link);font-weight: 600;text-decoration: none;white-space: nowrap;transition: border-color 0.18s}.gw-announce a:hover{border-bottom-color: var(--gw-announce-link)}@media (max-width: 520px){.gw-announce{padding: 8px 12px;font-size: 12px}.gw-announce__tag{margin-right: 6px}}.gw-header{position: sticky;top: 0;z-index: 50;border-bottom: 1px solid var(--gw-line);background: var(--gw-surface)}.gw-header.is-scrolled{border-bottom-color: var(--gw-line-strong)}.gw-header__bar{display: flex;align-items: center;gap: 32px;height: var(--gw-header-height)}.gw-header > .gw-header__bar{width: min(100% - 32px,var(--gw-wrap) + 12px);margin-inline: auto;padding-inline: 24px}@media (max-width: 640px){.gw-header > .gw-header__bar{padding-inline: 6px}}.gw-brand{display: inline-flex;align-items: center;gap: 8px;flex: none;color: var(--gw-ink);font-size: 18px;font-weight: 700;letter-spacing: -0.01em;line-height: 1.6;white-space: nowrap}.gw-brand__mark{flex: none;width: 34px;height: 34px;border-radius: var(--gw-radius-8)}@media (max-width: 768px){.gw-brand{min-height: 44px}}.gw-brand__name{line-height: inherit}.gw-nav{display: none;margin-left: 6px}.gw-nav__list{display: flex;align-items: center;gap: 4px;margin: 0;padding: 0;list-style: none}.gw-nav__trigger,.gw-nav__link{display: inline-flex;align-items: center;gap: 6px;padding: 8px 12px;border: 0;border-radius: var(--gw-radius-action);background: transparent;color: var(--gw-ink-2);font-size: 14px;font-weight: 500;line-height: 1.6;white-space: nowrap;cursor: pointer}.gw-nav__trigger:hover,.gw-nav__link:hover,.gw-nav__item.is-open > .gw-nav__trigger{background: var(--gw-bg-soft);color: var(--gw-ink)}.gw-nav__trigger::after,.gw-mobile-menu__group > summary::after{content: "";flex: none;width: 12px;height: 12px;background: currentColor;opacity: 0.55;-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%23000' stroke-width='2.6'/%3E%3C/svg%3E") center / 12px no-repeat;mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%23000' stroke-width='2.6'/%3E%3C/svg%3E") center / 12px no-repeat;transition: transform 0.18s var(--gw-ease)}.gw-nav__trigger[aria-expanded="true"]::after,.gw-mobile-menu__group[open] > summary::after{transform: rotate(180deg)}.gw-nav .gw-nav__trigger,.gw-nav .gw-nav__link{letter-spacing: -0.005em}.gw-nav__link[aria-current="page"],.gw-nav__trigger[aria-current]{color: var(--gw-accent-strong);font-weight: 600}.gw-header{--gw-mega-ease: cubic-bezier(0.25,1,0.5,1);--gw-mega-t: 0.36s;--gw-mega-glide: 0.26s}.gw-nav__item{display: flex}.gw-nav__chev{flex: none;opacity: 0.55;transition: transform 0.18s}.gw-nav__trigger:has(> .gw-nav__chev)::after{content: none}.gw-nav__trigger[aria-expanded="true"] > .gw-nav__chev{transform: rotate(180deg)}.gw-mega-surface,.gw-mega-caret,.gw-nav__pill,.gw-mega__hl{display: none}.gw-scrim{position: fixed;inset: 0;z-index: 40;pointer-events: none;opacity: 0;background: var(--gw-scrim);-webkit-backdrop-filter: blur(4px);backdrop-filter: blur(4px);transition: opacity 0.24s}.gw-scrim.is-on{opacity: 1}.gw-mega a{font-size: 16px;font-weight: 500;letter-spacing: -0.005em}.gw-mega__link b{display: block}.gw-mega__link i{display: block;font-style: normal}@media (min-width: 1081px){.gw-header.has-mega .gw-nav__trigger,.gw-header.has-mega .gw-nav__link{position: relative;z-index: 1;background: none}.gw-header.has-mega .gw-nav__trigger:hover,.gw-header.has-mega .gw-nav__link:hover,.gw-header.has-mega .gw-nav__item:hover > .gw-nav__trigger,.gw-header.has-mega .gw-nav__item:focus-within > .gw-nav__trigger{background: none;color: var(--gw-ink)}.gw-header.has-mega .gw-nav__chev{transform: none;transition: transform 0.2s var(--gw-mega-ease)}.gw-header.has-mega .gw-nav__trigger[aria-expanded="true"] > .gw-nav__chev{transform: rotate(180deg)}.gw-nav__pill{display: block;position: absolute;left: 0;top: 0;z-index: 0;width: 0;height: 0;border-radius: var(--gw-radius-action);pointer-events: none;opacity: 0;background: color-mix(in srgb,var(--gw-ink) 6%,transparent);transition: translate var(--gw-mega-glide) var(--gw-mega-ease),width var(--gw-mega-glide) var(--gw-mega-ease),opacity 0.2s ease}.gw-nav__pill.is-on{opacity: 1}.gw-mega-surface{display: block;position: absolute;left: 0;top: var(--gw-mega-top,73px);z-index: 88;width: 0;height: 0;pointer-events: none;border: 1px solid var(--gw-line);border-radius: var(--gw-radius-popover);background: var(--gw-surface);box-shadow: var(--gw-shadow-raised);opacity: 0;translate: 0 -6px;transition: opacity 0.22s ease,translate var(--gw-mega-t) var(--gw-mega-ease),left var(--gw-mega-t) var(--gw-mega-ease),width var(--gw-mega-t) var(--gw-mega-ease),height var(--gw-mega-t) var(--gw-mega-ease)}.gw-mega-caret{display: block;position: absolute;left: 0;top: calc(var(--gw-mega-top,73px) - 5px);z-index: 89;width: 12px;height: 12px;pointer-events: none;border-top: 1px solid var(--gw-line);border-left: 1px solid var(--gw-line);border-radius: var(--gw-radius-2) 0 0 0;background: var(--gw-surface);rotate: 45deg;opacity: 0;transition: opacity 0.22s ease,translate var(--gw-mega-t) var(--gw-mega-ease)}.gw-header.is-mega-open .gw-mega-surface,.gw-header.is-mega-open .gw-mega-caret{opacity: 1}.gw-header.has-mega .gw-mega{position: absolute;top: var(--gw-mega-top,73px);left: 0;z-index: 90;width: var(--gw-mega-w,1000px);max-width: calc(100vw - 48px);border-radius: var(--gw-radius-popover);opacity: 0;visibility: hidden;pointer-events: none;translate: 0 -6px;transition: opacity 0.14s ease,translate var(--gw-mega-t) var(--gw-mega-ease),clip-path var(--gw-mega-t) var(--gw-mega-ease),visibility 0s linear var(--gw-mega-t)}.gw-header.has-mega.is-mega-open .gw-mega{translate: 0 0}.gw-header.has-mega.is-mega-open .gw-nav__item.is-open > .gw-mega{opacity: 1;visibility: visible;pointer-events: auto;transition: opacity 0.24s var(--gw-mega-ease) 0.05s,translate var(--gw-mega-t) var(--gw-mega-ease),clip-path var(--gw-mega-t) var(--gw-mega-ease),visibility 0s}.gw-mega__body,.gw-mega__foot{translate: var(--gw-mega-dx,0px) 0;transition: translate var(--gw-mega-t) var(--gw-mega-ease)}.gw-mega__body{display: grid;grid-template-columns: minmax(0,1fr) var(--gw-mega-pv,320px);gap: 16px;padding: 12px}.gw-mega__body:not(:has(> .gw-mega__aside)){grid-template-columns: minmax(0,1fr)}.gw-mega__grid{position: relative;display: grid;grid-template-columns: repeat(var(--gw-mega-cols,3),minmax(0,1fr));gap: 0 12px;padding: 12px 0 0;align-content: start}.gw-mega__col{display: flex;flex-direction: column;gap: 2px}.gw-mega__heading{position: relative;z-index: 1;margin: 0;padding: 0 12px 8px;color: var(--gw-muted);font-size: 12px;font-weight: 500;line-height: 16px}.gw-mega__link{position: relative;z-index: 1;display: block;padding: 12px;border-radius: var(--gw-radius-action);color: var(--gw-ink)}.gw-mega__link:focus-visible{outline: 2px solid var(--gw-accent);outline-offset: -2px}.gw-mega__link b{color: var(--gw-ink);font-size: 14px;font-weight: 500;letter-spacing: 0;line-height: 20px}.gw-mega__link i{margin-top: 2px;color: var(--gw-muted);font-size: 13px;line-height: 18px}.gw-mega__link > .gw-mega__icon,.gw-mega__link > img{display: none}.gw-mega__hl{display: block;position: absolute;left: 0;top: 0;z-index: 0;width: 0;height: 0;border-radius: var(--gw-radius-action);pointer-events: none;opacity: 0;background: color-mix(in srgb,var(--gw-ink) 5%,transparent);transition: translate var(--gw-mega-glide) var(--gw-mega-ease),width var(--gw-mega-glide) var(--gw-mega-ease),height var(--gw-mega-glide) var(--gw-mega-ease),opacity 0.2s ease}.gw-mega__hl.is-on{opacity: 1}.gw-mega__aside{position: relative;display: block;min-height: 296px;border-radius: var(--gw-radius-card);overflow: hidden}.gw-mega__card{position: absolute;inset: 0;display: flex;flex-direction: column;gap: 12px;padding: 0 0 4px;color: var(--gw-ink);opacity: 0;pointer-events: none;transition: opacity 0.24s ease}.gw-mega__card[aria-hidden="true"]{visibility: hidden;transition: opacity 0.24s ease,visibility 0s linear 0.24s}.gw-mega__card.is-on{opacity: 1;visibility: visible;pointer-events: auto;transition: opacity 0.28s ease,visibility 0s}.gw-mega__card:focus-visible{border-radius: var(--gw-radius-card);outline: 2px solid var(--gw-accent);outline-offset: -2px}.gw-mega__foot{display: flex;align-items: center;justify-content: space-between;gap: 16px;padding: 16px 24px;border-top: 1px solid var(--gw-line);font-size: 13px}.gw-mega__foot-start,.gw-mega__foot-end{display: flex;align-items: center;gap: 24px}.gw-mega__foot a{color: var(--gw-muted);font-size: 13px;font-weight: 500;transition: color 0.15s}.gw-mega__foot a:hover{color: var(--gw-ink)}.gw-mega__foot a.gw-mega__cta{color: var(--gw-ink);font-weight: 600}}.gw-mega__art{--gw-lift: var(--gw-shadow-lift);position: relative;display: block;overflow: hidden;border-radius: var(--gw-radius-card);background: radial-gradient(130% 90% at 100% 0%,var(--gw-stage-glow),transparent 55%),radial-gradient(90% 80% at 0% 100%,var(--gw-stage-glow-2),transparent 60%),linear-gradient(160deg,var(--gw-stage-top),var(--gw-stage-bottom));color: var(--gw-stage-ink)}.gw-mega__aside .gw-mega__art::before{content: "";position: absolute;inset: 0;pointer-events: none;background-image: radial-gradient(var(--gw-stage-dot) 1px,transparent 1.5px);background-size: 16px 16px;-webkit-mask-image: linear-gradient(170deg,#000,transparent 70%);mask-image: linear-gradient(170deg,#000,transparent 70%)}:where(.gw-mega__art > *){position: relative}:where(.gw-mega__art) > img{position: absolute;inset: 0;display: block;width: 100%;height: 100%;object-fit: cover}.gw-mega__aside .gw-mega__art{flex: 1 1 auto;min-height: 0;container-type: size}.gw-mega__card-text{display: block;padding: 0 4px}.gw-mega__card-text b{display: flex;align-items: center;gap: 8px;color: var(--gw-ink);font-size: 14px;font-weight: 600;line-height: 20px}.gw-mega__card-text i{display: block;margin-top: 2px;color: var(--gw-muted);font-size: 13px;font-style: normal;line-height: 18px}.gw-mobile-menu .gw-mega__card{display: flex;flex-direction: column;gap: 12px;margin: 24px 0 8px;color: var(--gw-ink)}.gw-mobile-menu .gw-mega__art{display: flex;padding: 16px}.gw-mobile-menu .gw-mega__card-text b{display: block;line-height: 1.6}.gw-mobile-menu .gw-mega__card-text i{margin-top: 4px}.gw-mobile-menu__link > img{display: block;flex: none;width: 48px;height: 32px;border: 1px solid var(--gw-line);border-radius: var(--gw-radius-6);object-fit: cover}.gw-mega__go{color: var(--gw-accent-strong);font-weight: 500}.gw-mega__card-text > .gw-mega__go{display: block;margin-top: 8px;font-size: 13px}.gw-mega__card-text b > .gw-mega__go{margin-left: auto;transition: translate 0.2s var(--gw-mega-ease)}.gw-mega__card:hover b > .gw-mega__go{translate: 4px 0}.gw-mega__new{display: inline-flex;align-items: center;height: 20px;margin-right: 6px;padding: 0 6px;border-radius: var(--gw-radius-6);background: var(--gw-accent-soft);color: var(--gw-accent-strong);font-size: 11px;font-weight: 600}@media (prefers-reduced-motion: reduce){.gw-scrim,.gw-nav__pill,.gw-mega-surface,.gw-mega-caret,.gw-mega__hl,.gw-mega__go,.gw-header.has-mega .gw-mega,.gw-header.has-mega.is-mega-open .gw-nav__item.is-open > .gw-mega,.gw-mega__body,.gw-mega__foot,.gw-mega__card,.gw-mega__card.is-on{transition: none}.gw-mega-surface,.gw-header.has-mega .gw-mega{translate: 0 0}}.gw-header__actions{display: flex;align-items: center;gap: 4px;margin-left: auto}.gw-header__signin,.gw-header__link{display: none}.gw-header__actions > .gw-btn{display: none;margin-left: 8px;line-height: 1.6}.gw-theme-toggle{display: inline-flex;align-items: center;justify-content: center;flex: none;width: 40px;height: 40px;padding: 0;border: 0;border-radius: var(--gw-radius-action);background: transparent;color: var(--gw-ink)}.gw-theme-toggle:hover{background: var(--gw-bg-soft)}.gw-theme-toggle svg,.gw-menu-toggle svg{width: 20px;height: 20px}.gw-menu-toggle{display: inline-flex;align-items: center;justify-content: center;flex: none;width: 42px;height: 42px;padding: 0;border: 1px solid var(--gw-line-strong);border-radius: var(--gw-radius-card);background: var(--gw-surface);color: var(--gw-ink)}.gw-menu-toggle[aria-expanded="true"]{border-color: var(--gw-ink)}.gw-menu-toggle[aria-expanded="true"] .gw-menu-toggle__open,.gw-menu-toggle:not([aria-expanded="true"]) .gw-menu-toggle__close{display: none}.gw-mobile-menu{position: fixed;top: calc(var(--gw-header-height) + 1px);left: 0;right: 0;bottom: 0;overflow-y: auto;overscroll-behavior: contain;padding-block: 8px 32px;background: var(--gw-bg)}html.is-menu-open{overflow: hidden}html.is-menu-open .gw-header{position: fixed;top: 0;left: 0;right: 0}.gw-mobile-menu__group > summary,.gw-mobile-menu__top{display: flex;align-items: center;justify-content: space-between;min-height: 48px;padding-block: 8px;border-bottom: 1px solid var(--gw-line);color: var(--gw-ink);font-size: 18px;font-weight: 500;list-style: none;cursor: pointer}.gw-mobile-menu__group > summary::-webkit-details-marker{display: none}.gw-mobile-menu__list{margin: 0;padding: 8px 0 16px;list-style: none}.gw-mobile-menu__link{display: flex;align-items: center;min-height: 44px;color: var(--gw-ink-2);font-size: 16px}.gw-mobile-menu__actions{display: grid;gap: 8px;margin-top: 24px}@media (min-width: 561px){.gw-header__actions > .gw-btn:not(.gw-btn--secondary){display: inline-flex}}@media (min-width: 1181px){.gw-header__link,.gw-header__actions > .gw-btn--secondary{display: inline-flex}}@media (min-width: 1081px){.gw-nav{display: block}.gw-header__signin{display: inline-flex}.gw-menu-toggle,.gw-mobile-menu{display: none !important}html.is-menu-open{overflow: visible}html.is-menu-open .gw-header{position: sticky}}@media (max-width: 768px),(pointer: coarse){.gw-theme-toggle,.gw-menu-toggle{width: var(--gw-tap-min);height: var(--gw-tap-min)}}@media (min-width: 1081px){.gw-header--float{top: var(--gw-header-gap);width: min(100% - 32px,var(--gw-wrap) + 50px);margin: var(--gw-header-gap) auto 0;border: 1px solid var(--gw-line);border-radius: var(--gw-radius-panel);background: color-mix(in srgb,var(--gw-surface) var(--gw-header-surface),transparent);-webkit-backdrop-filter: blur(var(--gw-header-blur));backdrop-filter: blur(var(--gw-header-blur));box-shadow: var(--gw-shadow-raised)}.gw-header--float.is-scrolled{border-color: var(--gw-line-strong)}.gw-header--float > .gw-header__bar{width: auto;padding-inline: 24px}.gw-header--float .gw-mega{max-height: calc(100vh - var(--gw-header-height) - var(--gw-header-gap) - 24px)}:root:has(.gw-header--float) [id]{scroll-margin-top: calc(var(--gw-header-height) + var(--gw-header-gap) + 18px)}}@media (min-width: 1081px) and (prefers-reduced-transparency: reduce){.gw-header--float{background: var(--gw-surface);-webkit-backdrop-filter: none;backdrop-filter: none}}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.gw-header--float{background: var(--gw-surface)}}.gw-mobile-menu[data-gw-menu="drill"]{display: flex;flex-direction: column;overflow-x: hidden;padding-bottom: 0;line-height: 1.6}.gw-mobile-menu[data-gw-menu="drill"] > nav{display: flex;flex: 1 0 auto;flex-direction: column;width: auto;margin-inline: 0;padding-inline: 24px}.gw-mobile-menu[data-gw-menu="drill"] a{font-size: 18px;font-weight: 500;letter-spacing: -0.005em}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__group > summary,.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__top{min-height: 64px;font-size: 24px;letter-spacing: -0.01em}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__group > summary::after{width: 20px;height: 20px;-webkit-mask-size: 20px;mask-size: 20px}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__list{padding: 0}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__list .gw-mobile-menu__link{gap: 12px;min-height: 56px;padding-block: 12px;border-bottom: 1px solid var(--gw-line);color: var(--gw-ink);font-weight: 500}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__link b{display: block;font-size: 16px;font-weight: 500;letter-spacing: -0.005em;line-height: 20px}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__link i{display: block;margin-top: 2px;color: var(--gw-muted);font-size: 13px;font-style: normal;line-height: 18px}.gw-mobile-menu__heading{padding: 16px 0 8px;color: var(--gw-muted);font-size: 12px;font-weight: 500;line-height: 1.6}.gw-mobile-menu__icon{display: grid;place-items: center;flex: none;width: 32px;height: 32px;border: 1px solid var(--gw-line);border-radius: var(--gw-radius-action);color: var(--gw-muted)}.gw-mobile-menu__icon svg{width: 16px;height: 16px}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__list .gw-mobile-menu__link{border-radius: var(--gw-radius-action);transition: background 0.15s}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__list .gw-mobile-menu__link:hover{background: var(--gw-bg-soft);transform: translateX(2px)}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__list .gw-mobile-menu__link:focus-visible{background: var(--gw-bg-soft)}.gw-mobile-menu__icon{background: var(--gw-surface);transition: color 0.15s,border-color 0.15s,background 0.15s,transform 0.15s}.gw-mobile-menu__link:is(:hover,:focus-visible) .gw-mobile-menu__icon{border-color: color-mix(in srgb,var(--gw-accent) 32%,var(--gw-line));background: var(--gw-accent-soft);color: var(--gw-accent-strong)}.gw-mobile-menu__link:hover .gw-mobile-menu__icon{transform: translateY(-1px)}.gw-mobile-menu__all{display: flex;align-items: center;min-height: 56px;color: var(--gw-accent-strong);font-size: 16px;font-weight: 500}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__all{font-size: 16px}.gw-mobile-menu__all::after{content: "\00a0\2192"}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__actions{position: sticky;bottom: 0;z-index: 1;grid-template-columns: minmax(0,1fr) minmax(0,1fr);align-items: center;gap: 8px;margin-top: auto;padding-block: 12px calc(12px + env(safe-area-inset-bottom));border-top: 1px solid var(--gw-line);background: var(--gw-bg)}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__actions > .gw-btn{grid-row: 2}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__actions > :not(.gw-btn){grid-row: 1}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__actions > :not(.gw-btn):last-child{grid-column: 2;justify-self: end}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__actions > .gw-mobile-menu__link{color: var(--gw-ink);font-size: 16px;font-weight: 500}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__actions > .gw-mobile-menu__link--muted{color: var(--gw-muted)}.gw-mobile-menu[data-gw-menu="drill"] .gw-mobile-menu__actions > .gw-btn{padding: 0 16px;font-size: 16px;line-height: 1.6}.gw-mobile-menu.is-drill{top: var(--gw-menu-top,calc(var(--gw-header-height) + 1px))}html.is-menu-open .gw-header:has(> .gw-mobile-menu.is-drill){position: sticky}.gw-mobile-menu.is-drill .gw-mobile-menu__group > summary::after{transform: rotate(-90deg);transition: none}.gw-mobile-menu.is-drilled > nav > :not([open],.gw-mobile-menu__actions),.gw-mobile-menu.is-drilled .gw-mobile-menu__group[open] > summary{display: none}.gw-mobile-menu__head{display: none}.gw-mobile-menu.is-drilled .gw-mobile-menu__group[open] > .gw-mobile-menu__head{display: grid;grid-template-columns: minmax(0,1fr) auto minmax(0,1fr);align-items: center;gap: 8px;min-height: 56px;margin-bottom: 8px;border-bottom: 1px solid var(--gw-line)}.gw-mobile-menu__back{display: inline-flex;align-items: center;justify-self: start;gap: 4px;min-height: var(--gw-tap-min);padding: 0 8px 0 0;border: 0;background: transparent;color: var(--gw-muted);font-size: 16px;line-height: 1.6}.gw-mobile-menu__back:hover{color: var(--gw-ink)}.gw-mobile-menu__back::before{content: "";flex: none;width: 16px;height: 16px;background: currentColor;-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M15 18l-6-6 6-6' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px no-repeat;mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M15 18l-6-6 6-6' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px no-repeat}.gw-mobile-menu__title{color: var(--gw-ink);font-size: 16px;font-weight: 600;letter-spacing: 0;line-height: 1.6;text-align: center}@media (prefers-reduced-motion: no-preference){.gw-mobile-menu.is-drilled .gw-mobile-menu__group[open]{animation: gw-drill-in 0.24s var(--gw-ease)}.gw-mobile-menu.is-back > nav > :not(.gw-mobile-menu__actions){animation: gw-drill-back 0.24s var(--gw-ease)}}@keyframes gw-drill-in{from{opacity: 0;transform: translateX(32px)}}@keyframes gw-drill-back{from{opacity: 0;transform: translateX(-32px)}}.gw-lang{position: relative;flex: none}.gw-header__actions > .gw-lang{display: none}.gw-lang__btn{display: inline-flex;align-items: center;gap: 6px;height: 40px;padding: 0 12px;border: 0;border-radius: var(--gw-radius-action);background: transparent;color: var(--gw-ink-2);font-size: 14px;font-weight: 500;line-height: 1.4;white-space: nowrap}.gw-lang__btn:hover,.gw-lang__btn[aria-expanded="true"]{background: var(--gw-bg-soft);color: var(--gw-ink)}.gw-lang__btn svg{flex: none;width: 18px;height: 18px}.gw-lang__menu{position: absolute;top: calc(100% + 8px);right: 0;z-index: 1;display: grid;gap: 2px;min-width: 200px;margin: 0;padding: 8px;list-style: none;border: 1px solid var(--gw-line);border-radius: var(--gw-radius-card);background: var(--gw-surface);box-shadow: var(--gw-shadow-raised)}.gw-lang__link{display: flex;align-items: center;min-height: 40px;padding: 0 12px;border-radius: var(--gw-radius-action);color: var(--gw-ink);font-size: 14px;font-weight: 500;white-space: nowrap}.gw-lang__link:hover{background: var(--gw-bg-soft)}.gw-mobile-menu .gw-lang__btn{padding: 0 8px 0 0;color: var(--gw-muted);font-size: 16px}.gw-mobile-menu .gw-lang__btn:hover,.gw-mobile-menu .gw-lang__btn[aria-expanded="true"]{background: transparent;color: var(--gw-ink)}.gw-mobile-menu .gw-lang__menu{top: auto;right: auto;bottom: calc(100% + 8px);left: 0}@media (max-width: 768px),(pointer: coarse){.gw-lang__btn,.gw-lang__link{min-height: var(--gw-tap-min)}}@media (min-width: 1081px){.gw-header__actions > .gw-lang{display: block}}.gw-theme-toggle__sun{display: none}:root[data-theme="dark"] .gw-theme-toggle__sun{display: block}:root[data-theme="dark"] .gw-theme-toggle__moon{display: none}@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .gw-theme-toggle__sun{display: block}:root:not([data-theme="light"]) .gw-theme-toggle__moon{display: none}}.gw-brand__logo{display: block;flex: none;width: auto;height: 26px}.gw-brand__logo--dark{display: none}:root[data-theme="dark"] .gw-brand__logo--dark{display: block}:root[data-theme="dark"] .gw-brand__logo:has(+ .gw-brand__logo--dark){display: none}@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .gw-brand__logo--dark{display: block}:root:not([data-theme="light"]) .gw-brand__logo:has(+ .gw-brand__logo--dark){display: none}}.gw-footer{padding-block: 64px 32px;border-top: 1px solid var(--gw-line);background: transparent;color: var(--gw-ink);font-size: 14px}.gw-footer__grid{display: grid;grid-template-columns: repeat(2,minmax(0,1fr));gap: 32px}.gw-footer__brand p{max-width: 30ch;margin-top: 16px;color: var(--gw-muted);line-height: 22px}.gw-footer__brand .gw-brand{display: flex;min-height: 34px;font-family: var(--gw-font);line-height: 1.6}.gw-footer__brand .gw-brand__mark{width: 34px;height: 34px;border-radius: var(--gw-radius-8)}.gw-footer__heading{margin: 0 0 12px;color: var(--gw-ink);font-family: var(--gw-font);font-size: 13px;font-weight: 600;letter-spacing: 0;line-height: 1.6;text-wrap: balance}.gw-footer__newsletter{margin-top: 24px}.gw-footer__col ul{margin: 0;padding: 0;list-style: none}.gw-footer__col a{display: block;padding-block: 6px;color: var(--gw-muted)}.gw-footer__col a:hover{color: var(--gw-ink)}.gw-footer__col a[aria-current="page"]{color: var(--gw-accent-strong)}.gw-footer__bottom{display: flex;flex-wrap: wrap;align-items: center;justify-content: space-between;gap: 12px 24px;margin-top: 32px;padding-top: 24px;border-top: 1px solid var(--gw-line);color: var(--gw-muted);font-size: 13px}.gw-footer__bottom:first-child{margin-top: 0;padding-top: 0;border-top: 0}.gw-footer__bottom ul{display: flex;flex-wrap: wrap;gap: 16px;margin: 0;padding: 0;list-style: none}.gw-footer__bottom a{display: inline-flex;align-items: center;justify-content: center;color: var(--gw-muted)}.gw-footer__bottom a:hover{color: var(--gw-ink)}@media (max-width: 620px){.gw-footer__grid{gap: 24px 20px}.gw-footer__brand{grid-column: 1 / -1}}@media (min-width: 1081px){.gw-footer__grid{grid-auto-flow: column;grid-template-columns: minmax(0,1.6fr);grid-auto-columns: minmax(0,1fr);gap: 32px 24px}}@media (max-width: 768px),(pointer: coarse){.gw-footer__brand .gw-brand{min-height: var(--gw-tap-min)}.gw-footer__col a{display: flex;align-items: center;min-height: var(--gw-tap-min);padding-block: 0}.gw-footer__bottom a{min-height: var(--gw-tap-min)}.gw-footer__bottom ul:last-child a{min-width: var(--gw-tap-min)}.gw-footer__bottom ul:not(:last-child){gap: 8px 16px}}.gw-footer__ask{margin-top: 24px}.gw-footer__ask > .gw-footer__ask-label{margin: 0;color: var(--gw-muted);font-size: 13px;line-height: 22px}.gw-footer__ask > ul{display: flex;flex-wrap: wrap;gap: 0 16px;margin: 4px 0 0;padding: 0;list-style: none}.gw-footer__ask a{display: block;padding-block: 4px;color: var(--gw-ink);line-height: 20px}.gw-footer__ask a:hover{text-decoration: underline}.gw-footer__ext:empty{display: inline-block;width: 12px;height: 12px;margin-left: 4px;vertical-align: -1px;background: var(--gw-muted);-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3.5 8.5l5-5M4.5 3.5h4v4' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat;mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3.5 8.5l5-5M4.5 3.5h4v4' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat}.gw-footer__ext:not(:empty){color: var(--gw-muted);font-weight: 400}.gw-footer__fold > summary{list-style: none}.gw-footer__fold > summary::-webkit-details-marker{display: none}.gw-footer__fold .gw-footer__heading{margin: 0}.gw-footer__fold > ul{margin: 0;padding: 0;list-style: none}.gw-footer__col > .gw-footer__fold a{line-height: 20px}@media (min-width: 621px){.gw-footer__fold > summary{display: contents}.gw-footer__col > .gw-footer__fold .gw-footer__heading{margin-bottom: 12px}}@media (min-width: 621px){.gw-footer__fold::details-content{content-visibility: visible}}@media (max-width: 620px){.gw-footer__grid:has(> .gw-footer__col > .gw-footer__fold){grid-template-columns: minmax(0,1fr);row-gap: 0}.gw-footer__grid:has(> .gw-footer__col > .gw-footer__fold) > .gw-footer__brand{padding-bottom: 24px}.gw-footer__col:has(> .gw-footer__fold){border-top: 1px solid var(--gw-line)}.gw-footer__col:has(> .gw-footer__fold):last-child,.gw-footer__family{border-bottom: 1px solid var(--gw-line)}.gw-footer__fold > summary{display: flex;align-items: center;justify-content: space-between;gap: 16px;min-height: 52px;padding: 0;cursor: pointer}.gw-footer__fold > summary::after{content: "";flex: none;width: 8px;height: 8px;margin-right: 4px;border-right: 2px solid var(--gw-muted);border-bottom: 2px solid var(--gw-muted);rotate: 45deg;translate: 0 -2px}.gw-footer__fold[open] > summary::after{rotate: 225deg;translate: 0 2px}.gw-footer__fold > summary:focus-visible{outline: 2px solid var(--gw-accent);outline-offset: 2px;border-radius: var(--gw-radius-6)}.gw-footer__fold > ul{padding-bottom: 12px}.gw-footer__col > .gw-footer__fold a{display: flex;align-items: center;min-height: var(--gw-tap-min)}}@media (min-width: 1081px){.gw-footer__grid:has(> .gw-footer__col > .gw-footer__fold){grid-template-columns: minmax(0,calc((100% - 120px) * 6 / 31))}}.gw-footer__family .gw-footer__heading{color: var(--gw-muted);font-weight: 500}.gw-footer__family .gw-footer__fold > ul{display: grid;grid-template-columns: repeat(2,minmax(0,1fr));gap: 8px}.gw-footer__family .gw-footer__fold > ul > li{display: flex}.gw-footer__family .gw-footer__fold > ul > li > a{flex: 1 1 auto}.gw-footer__family a{display: flex;flex-direction: column;justify-content: center;gap: 2px;min-height: var(--gw-tap-min);padding: 8px 12px 8px 0;border-radius: var(--gw-radius-action);color: var(--gw-ink)}.gw-footer__family a:hover{background: var(--gw-bg-soft)}.gw-footer__family b{font-size: 14px;font-weight: 600;line-height: 20px}.gw-footer__family i{color: var(--gw-muted);font-size: 13px;font-style: normal;line-height: 18px}@media (min-width: 621px){.gw-footer__family{margin-top: 48px;padding-top: 32px;border-top: 1px solid var(--gw-line)}.gw-footer__family .gw-footer__heading{margin-bottom: 12px}.gw-footer__family .gw-footer__fold > ul{grid-template-columns: repeat(4,minmax(0,1fr));gap: 4px 16px}.gw-footer__family a{min-height: 0;padding: 8px 12px}.gw-footer__family + .gw-footer__bottom{margin-top: 32px}}@media (min-width: 621px) and (max-width: 768px){.gw-footer__family a{min-height: var(--gw-tap-min)}}@media (min-width: 1081px){.gw-footer__family .gw-footer__fold > ul{margin-left: -12px}.gw-footer__family{display: flow-root}.gw-footer__family .gw-footer__heading{float: left;width: calc((100% - 120px) * 6 / 31);margin: 8px 0 0}.gw-footer__family .gw-footer__fold > ul{margin-left: calc((100% - 120px) * 6 / 31 + 12px)}}.gw-footer__toggle{position: relative;width: 32px;height: 32px;margin-inline: auto 16px;border: 1px solid var(--gw-line-strong);background: var(--gw-surface)}.gw-footer__toggle::after{content: "";position: absolute;inset: -5px}.gw-footer__toggle svg{width: 18px;height: 18px}.gw-footer__toggle{transition: border-color 0.15s,color 0.15s}.gw-footer__toggle:hover{border-color: var(--gw-ink);background: var(--gw-surface);color: var(--gw-accent)}@media (max-width: 768px),(pointer: coarse){.gw-footer__toggle{width: var(--gw-tap-min);height: var(--gw-tap-min)}}@media (max-width: 620px){.gw-footer__bottom:has(> .gw-footer__toggle){gap: 8px 16px}.gw-footer__bottom:has(> .gw-footer__toggle) > :first-child{flex: 1 1 calc(100% - 64px)}.gw-footer__bottom > .gw-footer__toggle{order: 1;margin: 0}.gw-footer__bottom:has(> .gw-footer__toggle) > ul{order: 2}.gw-footer__family + .gw-footer__bottom,.gw-footer__grid:has(> .gw-footer__col > .gw-footer__fold) + .gw-footer__bottom{margin-top: 24px}}.gw-footer__wordmark{display: flex;align-items: center;justify-content: center;gap: 24px;padding-block: 48px 0;color: color-mix(in srgb,var(--gw-ink) 10%,transparent);font-family: var(--gw-font);font-size: var(--gw-display-wordmark);font-weight: 800;letter-spacing: var(--gw-display-tracking);line-height: 1;white-space: nowrap;user-select: none}.gw-footer__wordmark > svg,.gw-footer__wordmark > img{flex: none;width: clamp(40px,7vw,96px);height: auto}.gw-footer__wordmark > span{min-width: 0;overflow-x: clip}@media (max-width: 640px){.gw-footer__wordmark{gap: 16px}}@media (max-width: 620px){.gw-footer__wordmark{display: none}}@media (max-width: 768px),(pointer: coarse){.gw-footer__ask a{display: flex;align-items: center;min-height: var(--gw-tap-min);padding-block: 0}}@media (forced-colors: active){.gw-footer__ext:empty{forced-color-adjust: none;background: CanvasText}.gw-footer__fold > summary::after{border-color: CanvasText}}.gw-hero{position: relative;isolation: isolate;padding-block: 48px 64px}.gw-hero__wash{position: absolute;inset: 0;z-index: -1;pointer-events: none;background: radial-gradient(640px 460px at 88% -10%,color-mix(in srgb,var(--gw-accent) 16%,transparent),transparent 62%),radial-gradient(560px 480px at 6% 108%,color-mix(in srgb,var(--gw-wash-violet) 12%,transparent),transparent 62%),radial-gradient(420px 320px at 52% 118%,color-mix(in srgb,var(--gw-wash-mint) 10%,transparent),transparent 62%)}.gw-hero h1 .gw-dim{display: block}.gw-hero > .gw-wrap > :is(.gw-window,.gw-figure){margin-top: 48px}.gw-hero--center{text-align: center}.gw-hero--center > .gw-wrap > *{margin-inline: auto}.gw-hero--center .gw-actions{justify-content: center}.gw-hero--compact{padding-block: 40px 48px}.gw-hero--compact h1{font-size: var(--gw-display-h2)}@media (min-width: 768px){.gw-hero{padding-block: 80px 96px}.gw-hero--compact{padding-block: 64px}.gw-hero .gw-lead{font-size: 20px}.gw-hero > .gw-wrap > .gw-window{margin-top: 64px}}@media (max-width: 479px){:is(.gw-hero,.gw-cta) .gw-actions > .gw-btn{flex: 1 1 100%;justify-content: center}}.gw-logos{padding-block: 40px;border-block: 1px solid var(--gw-line)}.gw-logos p{color: var(--gw-muted);font-size: 13px;text-align: center}.gw-logos ul{display: flex;flex-wrap: wrap;align-items: center;justify-content: center;gap: 16px 40px;margin-top: 20px;padding: 0;list-style: none}.gw-logos li{color: var(--gw-muted);font-size: 22px;font-weight: 600;letter-spacing: -0.02em;line-height: 1.2}.gw-logos img{width: auto;height: 28px}.gw-stats{display: grid;grid-template-columns: minmax(0,1fr);gap: 24px;padding: 0;list-style: none}.gw-stats__value{font-size: var(--gw-display-h2);font-weight: 600;letter-spacing: -0.03em;line-height: 1.1;font-variant-numeric: tabular-nums}.gw-stats__label{margin-top: 8px;max-width: 28ch;color: var(--gw-muted);font-size: 14px}.gw-stats__source{margin-top: 8px;color: var(--gw-muted);font-size: 12px}@media (min-width: 480px){.gw-stats{grid-template-columns: repeat(2,minmax(0,1fr))}}@media (min-width: 1080px){.gw-stats{grid-template-columns: none;grid-auto-flow: column;grid-auto-columns: minmax(0,1fr);gap: 0}.gw-stats__item{padding: 4px 24px;border-left: 1px solid var(--gw-line)}.gw-stats__item:first-child{padding-left: 0;border-left: 0}}.gw-features{row-gap: 40px}.gw-feature .gw-icon{width: 40px;height: 40px;border: 1px solid var(--gw-line);border-radius: var(--gw-radius-action);background: var(--gw-surface);color: var(--gw-accent)}.gw-split{display: grid;grid-template-columns: minmax(0,1fr);align-items: center;gap: 40px}@media (min-width: 768px){.gw-split{grid-template-columns: repeat(2,minmax(0,1fr))}.gw-split--reverse > :first-child{order: 2}}.gw-split h2{font-size: 30px}@media (min-width: 1080px){.gw-split{gap: 64px}}.gw-showcase .gw-window{max-width: 960px;margin-inline: auto}.gw-showcase .gw-window + *{margin-top: 48px}.gw-steps{display: grid;grid-template-columns: minmax(0,1fr);gap: 32px 24px;padding: 0;list-style: none;counter-reset: gw-step}.gw-steps > li{counter-increment: gw-step}.gw-steps > li::before{content: counter(gw-step,decimal-leading-zero);display: block;margin-bottom: 16px;padding-bottom: 12px;border-bottom: 1px solid var(--gw-line);color: var(--gw-accent-strong);font-size: 13px;font-weight: 600;font-variant-numeric: tabular-nums}.gw-steps h3{font-size: 20px}.gw-steps p{margin-top: 8px;color: var(--gw-muted);font-size: 16px}@media (min-width: 768px){.gw-steps{grid-template-columns: repeat(2,minmax(0,1fr))}}@media (min-width: 1080px){.gw-steps{grid-template-columns: none;grid-auto-flow: column;grid-auto-columns: minmax(0,1fr)}}.gw-quote{max-width: 880px;margin-inline: auto;padding: 40px 24px;border: 1px solid var(--gw-line);border-radius: var(--gw-radius-panel);background: var(--gw-surface);text-align: center}.gw-quote::before{content: "";display: block;width: 32px;height: 24px;margin: 0 auto 24px;background: var(--gw-accent);-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 24'%3E%3Cpath d='M0 24V14C0 6 4 1 12 0l1 4c-4 1-6 4-6 8h5v12zm19 0V14c0-8 4-13 12-14l1 4c-4 1-6 4-6 8h5v12z'/%3E%3C/svg%3E") center / contain no-repeat;mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 24'%3E%3Cpath d='M0 24V14C0 6 4 1 12 0l1 4c-4 1-6 4-6 8h5v12zm19 0V14c0-8 4-13 12-14l1 4c-4 1-6 4-6 8h5v12z'/%3E%3C/svg%3E") center / contain no-repeat}.gw-quote blockquote{font-size: 24px;font-weight: 500;line-height: 1.4;letter-spacing: -0.01em;text-wrap: balance}.gw-quote figcaption{margin-top: 24px;color: var(--gw-muted);font-size: 14px}.gw-quote figcaption b{color: var(--gw-ink)}.gw-quote figcaption img{width: 40px;height: 40px;margin: 0 auto 12px;border-radius: var(--gw-radius-chip)}@media (min-width: 768px){.gw-quote{padding: 64px}.gw-quote blockquote{font-size: 30px}}.gw-pricing{display: grid;grid-template-columns: repeat(auto-fit,minmax(min(100%,260px),1fr));align-items: start;gap: 16px}.gw-plan{display: flex;flex-direction: column;padding: 24px;border: 1px solid var(--gw-line);border-radius: var(--gw-radius-panel);background: var(--gw-surface);box-shadow: var(--gw-shadow)}.gw-plan--featured{border-color: var(--gw-accent)}.gw-plan{position: relative}.gw-plan > .gw-badge{align-self: flex-start}.gw-plan > .gw-badge:first-child{position: absolute;top: -12px;left: 24px}.gw-plan > .gw-badge:first-child + *{margin-top: 0}.gw-plan h3{font-size: 20px}:where(.gw-plan) p{color: var(--gw-muted);font-size: 14px}.gw-plan__price{display: flex;flex-wrap: wrap;align-items: baseline;gap: 6px;color: var(--gw-ink);font-size: var(--gw-display-h2);font-weight: 600;letter-spacing: -0.03em;line-height: 1.1;font-variant-numeric: tabular-nums}.gw-plan__price small{color: var(--gw-muted);font-size: 14px;font-weight: 500;letter-spacing: 0}.gw-plan .gw-list--check{font-size: 14px}@media (min-width: 768px){.gw-plan{padding: 32px}.gw-plan > .gw-badge:first-child{left: 32px}}.gw-cta{max-width: 780px;margin-inline: auto;text-align: center}.gw-cta .gw-lead{margin-inline: auto}.gw-cta .gw-actions{justify-content: center}.gw-prose{max-width: 68ch;min-width: 0;color: var(--gw-ink);font-size: var(--gw-body-size);line-height: var(--gw-body-leading);overflow-wrap: break-word}.gw-prose--sm{font-size: 16px}:where(.gw-prose) > * + *{margin-top: 20px}:where(.gw-prose--sm) > * + *{margin-top: 16px}:where(.gw-prose) > * + :where(figure,img,video,pre,table,hr,.gw-table,.gw-window,.gw-prose__table,.gw-callout),:where(.gw-prose) > :where(figure,img,video,pre,table,hr,.gw-table,.gw-window,.gw-prose__table,.gw-callout) + *{margin-top: 32px}:where(.gw-prose) > * + h2{margin-top: 48px}:where(.gw-prose) > * + h3{margin-top: 40px}:where(.gw-prose) > * + h4{margin-top: 32px}:where(.gw-prose--sm) > * + h2{margin-top: 40px}:where(.gw-prose--sm) > * + h3{margin-top: 32px}:where(.gw-prose--sm) > * + h4{margin-top: 24px}:where(.gw-prose) > h1 + *{margin-top: 24px}:where(.gw-prose) > :is(h2,h3,h4) + *{margin-top: 12px}:where(.gw-prose) > :is(h1,h2,h3,h4){color: var(--gw-ink);font-weight: var(--gw-heading-weight);letter-spacing: var(--gw-heading-tracking);line-height: 1.25}:where(.gw-prose) > h1{font-size: var(--gw-display-h2);font-weight: var(--gw-display-weight);letter-spacing: var(--gw-display-tracking);line-height: var(--gw-heading-leading)}:where(.gw-prose) > h2{font-size: 30px;line-height: 1.2}:where(.gw-prose) > h3{font-size: 24px}:where(.gw-prose) > h4{font-size: 20px}:where(.gw-prose--sm) > h2{font-size: 24px}:where(.gw-prose--sm) > h3{font-size: 20px}:where(.gw-prose--sm) > h4{font-size: 18px}:where(.gw-prose :is(ul,ol):not([class])){padding-left: 24px}:where(.gw-prose ul:not([class])){list-style: disc}:where(.gw-prose ol:not([class])){list-style: decimal}:where(.gw-prose :is(ul,ol):not([class]) > li + li),:where(.gw-prose :is(ul,ol):not([class]) > li > * + *),:where(.gw-prose :is(ul,ol):not([class]) > li > :is(ul,ol)){margin-top: 8px}:where(.gw-prose :is(ul,ol):not([class]) > li)::marker{color: var(--gw-muted);font-variant-numeric: tabular-nums}:where(.gw-prose) > blockquote{padding-left: 20px;border-left: 3px solid var(--gw-line-strong);color: var(--gw-muted)}:where(.gw-prose) > blockquote > * + *{margin-top: 12px}:where(.gw-prose) > hr{height: 0;border: 0;border-top: 1px solid var(--gw-line)}:where(.gw-prose) :is(sup,sub){line-height: 0}:where(.gw-prose) :is(pre,code,kbd,samp){font-family: var(--gw-font-mono)}:where(.gw-prose) code{padding: 2px 6px;border-radius: var(--gw-radius-6);background: color-mix(in srgb,var(--gw-ink) 8%,transparent);color: var(--gw-ink);font-size: 16px;overflow-wrap: anywhere;-webkit-box-decoration-break: clone;box-decoration-break: clone}:where(.gw-prose--sm) code{font-size: 14px}:where(.gw-prose) :is(h1,h2,h3,h4) code{font-size: inherit}:where(.gw-prose) figcaption code{font-size: 13px}:where(.gw-prose) :is(th,td) code{font-size: 13px;overflow-wrap: normal;white-space: nowrap}:where(.gw-prose) pre{overflow-x: auto;padding: 16px 20px;border: 1px solid var(--gw-line);border-radius: var(--gw-radius-card);background: var(--gw-bg-soft);color: var(--gw-ink);font-size: 14px;line-height: 1.6;tab-size: 2}:where(.gw-prose) pre code{padding: 0;border-radius: var(--gw-radius-0);background: none;font-size: inherit;overflow-wrap: normal}:where(.gw-prose) > :is(img,video),:where(.gw-prose) > :is(p,figure) > :is(img,video){border-radius: var(--gw-radius-card)}:where(.gw-prose) figcaption{margin-top: 12px;color: var(--gw-muted);font-size: 14px;line-height: 1.5}:where(.gw-prose) > table:where(:not(.is-wrapped)),:where(.gw-prose) > :where(.gw-prose__table){width: max-content;max-width: 100%;overflow-x: auto;border: 1px solid var(--gw-line);border-radius: var(--gw-radius-card);background: var(--gw-surface);-webkit-overflow-scrolling: touch}:where(.gw-prose) > table:where(:not(.is-wrapped)){display: block}:where(.gw-prose) > table,:where(.gw-prose) > :where(.gw-prose__table) > table{border-collapse: collapse;font-size: 14px;line-height: 1.5}:where(.gw-prose) > table :is(th,td),:where(.gw-prose) > :where(.gw-prose__table) > table :is(th,td){padding: 12px 16px;border-bottom: 1px solid var(--gw-line);text-align: left;vertical-align: top}:where(.gw-prose) > table thead th,:where(.gw-prose) > :where(.gw-prose__table) > table thead th{background: var(--gw-bg-soft);color: var(--gw-ink);font-size: 13px;font-weight: 600;white-space: nowrap}:where(.gw-prose) > table tbody th,:where(.gw-prose) > :where(.gw-prose__table) > table tbody th{font-weight: 500}:where(.gw-prose) > table td,:where(.gw-prose) > :where(.gw-prose__table) > table td{color: var(--gw-ink-2);font-variant-numeric: tabular-nums}:where(.gw-prose) > table tbody tr:last-child > *,:where(.gw-prose) > :where(.gw-prose__table) > table tbody tr:last-child > *{border-bottom: 0}:where(.gw-prose) > table caption,:where(.gw-prose) > :where(.gw-prose__table) > table caption{padding: 12px 16px;color: var(--gw-muted);font-size: 13px;text-align: left}@media (max-width: 767px){:where(.gw-prose) > table td,:where(.gw-prose) > :where(.gw-prose__table) > table td{min-width: 160px}}.gw-breadcrumbs{color: var(--gw-muted);font-size: 13px;line-height: 1.5}.gw-breadcrumbs > ol{display: flex;flex-wrap: wrap;align-items: center;gap: 0 8px;margin: 0;padding: 0;list-style: none}.gw-breadcrumbs li{display: flex;align-items: center;gap: 8px;min-width: 0;max-width: 100%}.gw-breadcrumbs li + li::before{content: "";flex: none;width: 12px;height: 12px;background: currentColor;opacity: 0.6;-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 6l6 6-6 6' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat;mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 6l6 6-6 6' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat}.gw-breadcrumbs a{display: inline-flex;align-items: center;min-height: 24px;color: var(--gw-muted)}.gw-breadcrumbs a:hover{color: var(--gw-ink);text-decoration: underline;text-underline-offset: 4px}.gw-breadcrumbs [aria-current="page"]{display: block;min-width: 0;overflow: hidden;color: var(--gw-ink);font-weight: 500;line-height: 24px;text-overflow: ellipsis;white-space: nowrap}.gw-article-meta{display: flex;flex-wrap: wrap;align-items: center;row-gap: 4px;margin-inline-start: -16px;clip-path: inset(-8px -8px -8px 12px);color: var(--gw-muted);font-size: 14px;line-height: 24px}.gw-article-meta > *::before{content: "";display: inline-block;width: 4px;height: 4px;margin-inline: 6px;border-radius: var(--gw-radius-chip);background: var(--gw-line-strong);vertical-align: middle}.gw-article-meta a{display: inline-block;color: var(--gw-accent-strong);font-weight: 500;text-decoration: underline;text-decoration-thickness: 1px;text-underline-offset: 4px;text-decoration-color: color-mix(in srgb,currentColor 40%,transparent)}.gw-article-meta a:hover{text-decoration-color: currentColor}.gw-article-meta__avatar{display: inline-block;width: 24px;height: 24px;margin-inline-end: 8px;border-radius: var(--gw-radius-chip);object-fit: cover;vertical-align: top}.gw-article{padding-block: 32px 64px}.gw-article__head > * + *{margin-top: 16px}.gw-article__head h1{font-size: var(--gw-display-h2)}.gw-article__hero{margin-top: 32px}.gw-article__hero img{width: 100%;border-radius: var(--gw-radius-card);background: var(--gw-bg-soft)}.gw-article__hero figcaption{margin-top: 12px;color: var(--gw-muted);font-size: 14px;line-height: 1.5}.gw-article > .gw-toc{margin-top: 32px}.gw-article > .gw-prose{margin-top: 40px}@media (min-width: 768px){.gw-article{padding-block: 48px 96px}.gw-article__hero{margin-top: 40px}}@media (min-width: 1080px){.gw-article{display: grid;grid-template-columns: minmax(0,68ch) minmax(200px,240px);grid-template-rows: auto auto 1fr;justify-content: space-between;column-gap: 64px}.gw-article > *{grid-column: 1}.gw-article > .gw-article__head{grid-row: 1}.gw-article > .gw-article__hero{grid-row: 2}.gw-article > .gw-prose{grid-row: 3}.gw-article > .gw-toc{grid-column: 2;grid-row: 2 / 4;margin-top: 40px}}.gw-toc{font-size: 14px;line-height: 1.45}.gw-toc > details{border: 1px solid var(--gw-line);border-radius: var(--gw-radius-card);background: var(--gw-surface)}.gw-toc summary{display: flex;align-items: center;justify-content: space-between;gap: 12px;min-height: var(--gw-tap-min);padding: 8px 16px;color: var(--gw-ink);font-weight: 600;list-style: none;cursor: pointer}.gw-toc summary::-webkit-details-marker{display: none}.gw-toc summary::after{content: "";flex: none;width: 12px;height: 12px;background: currentColor;opacity: 0.6;-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat;mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat;transition: transform 0.18s var(--gw-ease)}.gw-toc details[open] > summary::after{transform: rotate(180deg)}.gw-toc ol{margin: 0;padding: 0;list-style: none}.gw-toc details > ol{margin: 0 16px 16px;background: linear-gradient(var(--gw-line),var(--gw-line)) 0 0 / 1px 100% no-repeat}.gw-toc a{display: block;padding: 6px 8px 6px 16px;border-left: 2px solid transparent;color: var(--gw-muted)}.gw-toc ol ol a{padding-left: 32px}.gw-toc a:hover{color: var(--gw-ink)}.gw-toc a:focus-visible{outline-offset: -2px}.gw-toc a[aria-current="true"]{border-left-color: var(--gw-accent);color: var(--gw-ink)}@media (min-width: 1080px){.gw-toc{position: sticky;top: calc(var(--gw-header-height) + 32px);align-self: start}.gw-toc > details{border: 0;border-radius: var(--gw-radius-0);background: transparent}.gw-toc summary{min-height: 32px;padding: 0;color: var(--gw-muted);font-size: 13px}.gw-toc details > ol{max-height: calc(100vh - var(--gw-header-height) - 120px);margin: 8px 0 0;overflow-y: auto;overscroll-behavior: contain}:root:has(.gw-header--float) .gw-toc{top: calc(var(--gw-header-height) + var(--gw-header-gap) + 32px)}:root:has(.gw-header--float) .gw-toc details > ol{max-height: calc(100vh - var(--gw-header-height) - var(--gw-header-gap) - 120px)}}@media (prefers-reduced-motion: no-preference){:root:has(.gw-toc){scroll-behavior: smooth}}.gw-callout{padding: 16px 20px;border-radius: var(--gw-radius-card);background: var(--gw-accent-soft);color: var(--gw-ink);font-size: 16px;line-height: 1.6}.gw-callout > * + *{margin-top: 8px}.gw-callout--tip{background: var(--gw-success-soft)}.gw-callout--warning{background: var(--gw-warning-soft)}.gw-callout__label{display: flex;align-items: center;gap: 8px;font-size: 14px;font-weight: 600;line-height: 1.5}.gw-callout__label::before{content: "";flex: none;width: 16px;height: 16px;background: var(--gw-accent);-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5M12 7.5v.5'/%3E%3C/svg%3E") center / 16px no-repeat;mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5M12 7.5v.5'/%3E%3C/svg%3E") center / 16px no-repeat}.gw-callout--tip > .gw-callout__label::before{background: var(--gw-success);-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18h6M10 21h4M12 3a6 6 0 0 0-3.6 10.8c.7.5 1.1 1.3 1.1 2.2h5c0-.9.4-1.7 1.1-2.2A6 6 0 0 0 12 3z'/%3E%3C/svg%3E");mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18h6M10 21h4M12 3a6 6 0 0 0-3.6 10.8c.7.5 1.1 1.3 1.1 2.2h5c0-.9.4-1.7 1.1-2.2A6 6 0 0 0 12 3z'/%3E%3C/svg%3E")}.gw-callout--warning > .gw-callout__label::before{background: var(--gw-warning);-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.5 2.8 19.5h18.4z'/%3E%3Cpath d='M12 10v4M12 16.8v.2'/%3E%3C/svg%3E");mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.5 2.8 19.5h18.4z'/%3E%3Cpath d='M12 10v4M12 16.8v.2'/%3E%3C/svg%3E")}.gw-post-list{display: grid;grid-template-columns: minmax(0,1fr);gap: 16px;padding: 0;list-style: none}.gw-post-list > li{display: flex;min-width: 0}.gw-post{position: relative;display: flex;flex: 1 1 auto;flex-direction: column;min-width: 0}.gw-post:hover{border-color: var(--gw-line-strong)}.gw-post > .gw-card__media + *{margin-top: 20px}.gw-post > .gw-label + .gw-post__title{margin-top: 8px}.gw-post__title{font-size: 20px;line-height: 1.3}.gw-post__title a{color: var(--gw-ink)}.gw-post__title a::after{content: "";position: absolute;inset: 0;z-index: 1;border-radius: var(--gw-radius-card)}.gw-post:hover .gw-post__title a{text-decoration: underline;text-decoration-thickness: 1px;text-underline-offset: 4px}.gw-post__title a:focus-visible{outline: 0}.gw-post__title a:focus-visible::after{outline: 2px solid var(--gw-accent);outline-offset: 2px}.gw-post__title + p{margin-top: 8px}.gw-post > .gw-article-meta{margin-top: auto;padding-top: 16px}@media (min-width: 768px){.gw-post-list{gap: 24px}.gw-post-list:not(.gw-post-list--compact){grid-template-columns: repeat(2,minmax(0,1fr))}}@media (min-width: 1080px){.gw-post-list:not(.gw-post-list--compact){grid-template-columns: repeat(3,minmax(0,1fr))}}.gw-post-list--compact{gap: 0;border-top: 1px solid var(--gw-line)}.gw-post-list--compact .gw-post{padding: 20px 0;border: 0;border-bottom: 1px solid var(--gw-line);border-radius: var(--gw-radius-0);background: transparent;box-shadow: none}.gw-post-list--compact .gw-post__title a::after{border-radius: var(--gw-radius-0)}.gw-post-list--compact .gw-card__media{display: none}.gw-post-list--compact .gw-post > .gw-article-meta{padding-top: 8px}.gw-pagination{display: flex;flex-wrap: wrap;align-items: center;justify-content: space-between;gap: 12px 16px}* + .gw-pagination{margin-top: 40px}.gw-pagination__status{color: var(--gw-muted);font-size: 14px}.gw-pagination > [rel="next"]{margin-inline-start: auto}.gw-field{display: grid;gap: 8px;min-width: 0}.gw-field__label{display: block;color: var(--gw-ink);font-size: 14px;font-weight: 600;line-height: 1.5}:is(.gw-field,.gw-choices) > :is(.gw-field__hint,.gw-field__error){margin: 0;font-size: 14px;font-weight: 400;line-height: 1.5}:is(.gw-field,.gw-choices) > .gw-field__hint{color: var(--gw-muted)}:is(.gw-field,.gw-choices) > .gw-field__error{display: flex;gap: 6px;color: var(--gw-danger);font-weight: 500}:is(.gw-field,.gw-choices) > .gw-field__error:empty{display: none}.gw-field__error::before{content: "";flex: none;width: 16px;height: 16px;margin-top: 2px;margin-top: calc((1lh - 16px) / 2);background: currentColor;-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M10 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16Zm-.75 4h1.5v5.5h-1.5V6Zm.75 9a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z'/%3E%3C/svg%3E") center / 16px no-repeat;mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M10 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16Zm-.75 4h1.5v5.5h-1.5V6Zm.75 9a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z'/%3E%3C/svg%3E") center / 16px no-repeat}.gw-input,.gw-select,.gw-textarea{display: block;width: 100%;min-width: 0;height: var(--gw-button-height);margin: 0;padding: 0 12px;border: 1px solid var(--gw-line-control);border-radius: var(--gw-radius-action);background-color: var(--gw-surface);color: var(--gw-ink);font-size: 16px;line-height: 1.5;-webkit-appearance: none;appearance: none}:is(.gw-input,.gw-textarea)::placeholder{color: var(--gw-muted);opacity: 1}.gw-select{padding-right: 40px;background-image: linear-gradient(45deg,transparent 50%,var(--gw-muted) 50%),linear-gradient(135deg,var(--gw-muted) 50%,transparent 50%);background-position: calc(100% - 20px) 50%,calc(100% - 15px) 50%;background-size: 5px 5px;background-repeat: no-repeat;cursor: pointer}.gw-textarea{height: auto;min-height: 96px;padding-block: 8px;resize: vertical}:is(.gw-input,.gw-select,.gw-textarea):hover{border-color: var(--gw-muted)}:is(.gw-input,.gw-select,.gw-textarea):focus-visible{border-color: var(--gw-ink);outline: 2px solid var(--gw-accent);outline-offset: 1px}:is(.gw-input,.gw-textarea)[readonly]{border-color: var(--gw-line-strong);background-color: var(--gw-bg-soft);cursor: default}:is(.gw-input,.gw-select,.gw-textarea)[aria-invalid="true"]{border-color: var(--gw-danger);background-color: var(--gw-danger-soft)}:is(.gw-input,.gw-select,.gw-textarea):disabled{opacity: 0.48;cursor: not-allowed}.gw-choices{min-width: 0;margin: 0;padding: 0;border: 0}.gw-choices > legend{margin-bottom: 4px;padding: 0}.gw-choices > :is(.gw-check,.gw-radio){display: flex}.gw-choices > :is(.gw-field__hint,.gw-field__error){margin-top: 4px}.gw-check,.gw-radio{display: inline-flex;align-items: flex-start;gap: 8px;max-width: 100%;padding-block: 4px;color: var(--gw-ink);font-size: 16px;line-height: 1.5;overflow-wrap: break-word;cursor: pointer}:is(.gw-check,.gw-radio) > :not(input){min-width: 0}:is(.gw-check,.gw-radio) > input{display: inline-grid;flex: none;place-content: center;width: 18px;height: 18px;margin: 3px 0 0;border: 1px solid var(--gw-line-control);border-radius: var(--gw-radius-4);background: var(--gw-surface);-webkit-appearance: none;appearance: none;cursor: inherit}.gw-radio > input{border-radius: var(--gw-radius-chip)}:is(.gw-check,.gw-radio):hover > input{border-color: var(--gw-muted)}.gw-check > input:checked{border-color: var(--gw-accent);background: var(--gw-accent)}.gw-check > input:checked::before{content: "";width: 14px;height: 14px;background: var(--gw-on-accent);-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.4l2.9 2.8L12.5 5' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 14px no-repeat;mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.4l2.9 2.8L12.5 5' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 14px no-repeat}.gw-radio > input:checked{border: 5px solid var(--gw-accent)}:is(.gw-check,.gw-radio) > input[aria-invalid="true"]:not(:checked){border-color: var(--gw-danger)}:is(.gw-check,.gw-radio):has(> input:disabled){opacity: 0.48;cursor: not-allowed}.gw-check__count{flex: none;min-width: 24px;margin: 1px 0 0 auto;padding: 2px 8px;border-radius: var(--gw-radius-chip);background: color-mix(in srgb,var(--gw-ink) 8%,transparent);color: var(--gw-ink-2);font-size: 12px;font-weight: 500;text-align: center;font-variant-numeric: tabular-nums}.gw-form-inline{display: flex;flex-wrap: wrap;gap: 8px}.gw-form-inline > :not(.gw-btn){flex: 999 1 160px;min-width: 0}.gw-form-inline > .gw-btn{flex: 1 0 auto;justify-content: center}@media (max-width: 479px){.gw-form-inline > :not(.gw-btn){flex-basis: 100%}}.gw-form{display: grid;gap: 24px;max-width: 560px}.gw-form > *{margin: 0}.gw-form > :is(.gw-actions,.gw-btn){margin-top: 8px}.gw-form > .gw-btn{justify-self: start}@media (max-width: 768px),(pointer: coarse){.gw-input,.gw-select{height: var(--gw-tap-min)}.gw-check,.gw-radio{padding-block: 10px}}.gw-stars{display: inline-block;flex: none;width: 80px;height: 16px;vertical-align: middle;background: linear-gradient(90deg,var(--gw-ink) calc(clamp(0,var(--gw-stars,0),5) * 20%),var(--gw-line-strong) 0);-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1.6L9.8 6.4L14.8 6.6L10.9 9.7L12.2 14.6L8 11.8L3.8 14.6L5.1 9.7L1.2 6.6L6.2 6.4Z' stroke='%23000' stroke-width='1' stroke-linejoin='round'/%3E%3C/svg%3E") 0 0 / 16px 16px repeat-x;mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1.6L9.8 6.4L14.8 6.6L10.9 9.7L12.2 14.6L8 11.8L3.8 14.6L5.1 9.7L1.2 6.6L6.2 6.4Z' stroke='%23000' stroke-width='1' stroke-linejoin='round'/%3E%3C/svg%3E") 0 0 / 16px 16px repeat-x}@media (forced-colors: active){.gw-stars{forced-color-adjust: none;background: linear-gradient(90deg,CanvasText calc(clamp(0,var(--gw-stars,0),5) * 20%),GrayText 0)}}.gw-testimonials{display: grid;grid-template-columns: minmax(0,1fr);gap: 16px;padding: 0;list-style: none}.gw-testimonials > li{display: flex;min-width: 0}@media (min-width: 768px){.gw-testimonials{grid-template-columns: repeat(2,minmax(0,1fr));gap: 24px}}@media (min-width: 1080px){.gw-testimonials{grid-template-columns: repeat(3,minmax(0,1fr))}}.gw-testimonial{display: flex;flex-direction: column;gap: 16px;width: 100%;margin: 0}.gw-testimonial > *{margin: 0}.gw-testimonial__quote,.gw-testimonial__quote p{color: var(--gw-ink);font-size: 16px;line-height: 1.6}.gw-testimonial__quote > * + *{margin-top: 8px}.gw-testimonial > .gw-testimonial__by{display: flex;align-items: center;gap: 12px;margin-top: auto;color: var(--gw-muted);font-size: 14px;line-height: 1.5}.gw-testimonial__by b{display: block;color: var(--gw-ink);font-weight: 600}.gw-testimonial__by > :not(img){min-width: 0}.gw-testimonial__avatar{flex: none;width: 40px;height: 40px;border-radius: var(--gw-radius-chip);background: var(--gw-bg-soft);object-fit: cover}.gw-rating-badge{display: inline-flex;align-items: center;gap: 12px;max-width: 100%;padding: 8px 16px 8px 8px;border: 1px solid var(--gw-line);border-radius: var(--gw-radius-card);background: var(--gw-surface);color: var(--gw-ink);font-size: 13px;line-height: 1.4;vertical-align: middle}a.gw-rating-badge:hover{border-color: var(--gw-line-strong)}.gw-rating-badge__icon{display: inline-flex;flex: none;align-items: center;justify-content: center;width: 40px;height: 40px;border-radius: var(--gw-radius-action);background: var(--gw-bg-soft);color: var(--gw-ink)}.gw-rating-badge__icon :is(svg,img){width: 24px;height: 24px}.gw-rating-badge__body{display: grid;gap: 2px;min-width: 0}.gw-rating-badge__score{display: flex;align-items: center;gap: 8px;color: var(--gw-ink);font-size: 16px;font-weight: 600;font-variant-numeric: tabular-nums}.gw-rating-badge__count{color: var(--gw-muted)}@property --gw-spot-r{syntax: "<length>";inherits: true;initial-value: 0px}@media (hover: hover) and (pointer: fine){[data-gw-ready~="spot"]{--gw-spot-r: 0px}[data-gw-ready~="spot"]:is(:hover,:focus-visible){--gw-spot-r: var(--gw-spot-radius);--gw-muted: var(--gw-ink-2)}[data-gw-ready~="spot"]:has(:focus-visible){--gw-spot-r: var(--gw-spot-radius);--gw-muted: var(--gw-ink-2)}.gw-btn[data-gw-ready~="spot"]:is(:hover,:focus-visible){--gw-spot-r: var(--gw-spot-radius-action)}:where(.gw-spot){position: relative;isolation: isolate}.gw-spot:not([aria-busy="true"])::before{--gw-spot-mix: var(--gw-spot-strength);content: "";position: absolute;inset: 0;z-index: -1;border-radius: inherit;background: radial-gradient(circle var(--gw-spot-r) at var(--gw-spot-x,50%) var(--gw-spot-y,50%),color-mix(in srgb,var(--gw-accent) var(--gw-spot-mix),transparent),transparent 70%);pointer-events: none;transition: --gw-spot-r var(--gw-spot-ms) var(--gw-spot-ease)}.gw-btn.gw-spot:not([aria-busy="true"])::before{--gw-spot-mix: var(--gw-spot-strength-action)}.gw-mega__art.gw-spot:not([aria-busy="true"])::before{--gw-spot-mix: var(--gw-spot-strength-stage)}:where([data-gw-ready~="spot"] *){transition: color 0s linear var(--gw-spot-ms)}:where([data-gw-ready~="spot"]:is(:hover,:focus-visible) *){transition-delay: 0s}:where([data-gw-ready~="spot"]:has(:focus-visible) *){transition-delay: 0s}:is([data-gw-ready~="spot"]:focus-visible,[data-gw-ready~="spot"]:focus-visible *).gw-spot::before{--gw-spot-x: 50%;--gw-spot-y: 50%}:is([data-gw-ready~="spot"]:has(:focus-visible),[data-gw-ready~="spot"]:has(:focus-visible) *).gw-spot::before{--gw-spot-x: 50%;--gw-spot-y: 50%}}@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: reduce){.gw-spot:not([aria-busy="true"])::before{--gw-spot-x: 50%;--gw-spot-y: 50%;transition: none}:where([data-gw-ready~="spot"] *){transition: none}}