diff --git a/.claude/launch.json b/.claude/launch.json index 6836a612..29f05070 100644 --- a/.claude/launch.json +++ b/.claude/launch.json @@ -1,35 +1,26 @@ { "version": "0.0.1", "configurations": [ - { - "name": "preview", - "runtimeExecutable": "npm", - "runtimeArgs": ["run", "preview"], - "port": 4321 - }, - { - "name": "preview-4331", - "runtimeExecutable": "npm", - "runtimeArgs": ["run", "preview", "--", "--port", "4331"], - "port": 4331 - }, { "name": "dev", "runtimeExecutable": "npm", - "runtimeArgs": ["run", "dev"], + "runtimeArgs": [ + "run", + "dev" + ], "port": 4321 }, { - "name": "dev-4330", - "runtimeExecutable": "npm", - "runtimeArgs": ["run", "dev", "--", "--port", "4330"], - "port": 4330 - }, - { - "name": "dev-4340", + "name": "preview", "runtimeExecutable": "npm", - "runtimeArgs": ["run", "dev", "--", "--port", "4340"], - "port": 4340 + "runtimeArgs": [ + "run", + "preview", + "--", + "--port", + "4400" + ], + "port": 4400 } ] } diff --git a/.githooks/pre-commit b/.githooks/pre-commit index e6ba46a4..3d73fa96 100755 --- a/.githooks/pre-commit +++ b/.githooks/pre-commit @@ -10,3 +10,7 @@ if git diff --cached --name-only | grep -qE '^(src/styles/framework/|src/tools/b npm run --silent build:css || exit 1 git add dist fi + +# Every copy of the cascade-layer statement (theme file pins, docs code +# blocks, dist) must agree with the canonical one in framework/mcss.css. +npm run --silent check:layers || exit 1 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3e8497c6..a77b9708 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -36,23 +36,30 @@ jobs: git diff --exit-code dist/ || { echo '::error::dist/ is stale — run `npm run build:css` and commit the result'; exit 1; } test -z "$(git status --porcelain dist/)" || { echo '::error::dist/ has uncommitted files — run `npm run build:css` and commit the result'; exit 1; } + - name: Layer statements agree everywhere + run: npm run check:layers + - name: Verify dist invariants run: | set -e - # layers survived the build (the preset-env polyfill must stay off) - grep -q '@layer settings, base, elements, global, components, theme, helpers;' dist/mcss.css + # no cascade-layers or light-dark polyfill artifacts (the layer + # statement itself is covered by check:layers above) ! grep -q ':not(#' dist/mcss.css - # the bundle ships zero-opinion: no theme or component content in - # mcss.css ('@layer theme'/'@layer components' appear in comments; - # check real block syntax) - ! grep -q '@layer theme {' dist/mcss.css - ! grep -q '@layer components {' dist/mcss.css - # the component library lives in its own bundle - grep -q '@layer components {' dist/mcss.components.css - ! grep -q '@layer theme {' dist/mcss.components.css - # per-file themes self-layer so any import method lands them right - grep -q '@layer theme {' dist/css/theme.wireframe.css - grep -q '@layer theme {' dist/css/theme.default.css + ! grep -q 'csstools' dist/mcss.css + ! grep -q 'csstools' dist/mcss.components.css + # the core bundle bakes in the default theme (it must paint alone) + # but ships no components and no user theme + grep -qE '@layer theme\.default ?\{' dist/mcss.css + ! grep -qE '@layer theme\.user ?\{' dist/mcss.css + ! grep -qE '@layer components ?\{' dist/mcss.css + # the component library lives in its own bundle, with no theme + grep -qE '@layer components ?\{' dist/mcss.components.css + ! grep -qE '@layer theme\.(default|user) ?\{' dist/mcss.components.css + # standalone themes self-layer into theme.user, and the default + # theme's entry layers its parts, so any import method lands right + grep -qE '@layer theme\.user ?\{' dist/css/theme.wireframe.css + grep -qE '@layer theme\.user ?\{' dist/css/theme.starter.css + grep -qF 'layer(theme.default)' dist/css/theme.default.css # no unresolved custom media or mixins shipped # (plain '@custom-media' appears in a comment; check real syntax) ! grep -qE '@custom-media --|media \(--' dist/mcss.css diff --git a/CLAUDE.md b/CLAUDE.md index 8e1d9fac..a3890473 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -8,11 +8,11 @@ mCSS is a CSS framework (ITCSS-based) paired with an Astro documentation site, c ## Commands -| Command | Purpose | -| ------------------- | -------------------------------- | -| `npm run dev` | Start Astro dev server | -| `npm run build` | Production static build | -| `npm run preview` | Preview the production build | +| Command | Purpose | +| ----------------- | ---------------------------- | +| `npm run dev` | Start Astro dev server | +| `npm run build` | Production static build | +| `npm run preview` | Preview the production build | ## Architecture overview @@ -25,7 +25,7 @@ mCSS is a CSS framework (ITCSS-based) paired with an Astro documentation site, c ## CSS cascade layers are load-bearing -The framework uses native `@layer`; the layer name (declared in `src/styles/framework/mcss.css`) decides priority, and unlayered site CSS beats every layer. Import new framework files with `layer()`, except `theme.*.css` files: those wrap themselves in `@layer theme` and are activated from the consumer entry (`_global.css`), never imported by `mcss.css`. Never re-enable preset-env's `cascade-layers` polyfill in `postcss.config.cjs`. Always consult [agents/css.md](agents/css.md) before adding or moving CSS files. +The framework uses native `@layer`; the layer name (declared in `src/styles/framework/mcss.css`) decides priority, and unlayered site CSS beats every layer. Import new framework files with `layer()`, except standalone `theme.*.css` files (starter, skins): those self-layer via `@layer theme.user` and are activated from the consumer entry (`_global.css`), never imported by `mcss.css`. The default theme's parts are plain CSS layered by their entry (`theme.default.css`, with `layer(theme.default)`). Every design value lives in the default theme (`theme.default.css`); the framework does not paint without it. Never re-enable preset-env's `cascade-layers` polyfill in `postcss.config.cjs`. Always consult [agents/css.md](agents/css.md) before adding or moving CSS files. ## Detailed reference docs diff --git a/agents/components.md b/agents/components.md index bec7ea3d..7c22a01e 100644 --- a/agents/components.md +++ b/agents/components.md @@ -8,7 +8,7 @@ 4. **Rest spread**: `{...rest}` on the root element so consumers can set any native attribute. 5. **`data-testid`**: accepted as a prop with a sensible per-component default. 6. **States vs modifiers**: runtime states are `.is-*` classes (`.is-active`, `.is-online`); build-time variants are block modifiers (`.card-filled`). Prefer styling ARIA attributes when one exists (`[aria-current]`, `[aria-disabled]`). -7. **Interface tokens**: every themable knob has a declared default in `settings.ui.css`; local-only custom properties use descriptive names (`--avatar-size`, not `--w`). +7. **UI tokens**: every themable knob has a declared default in `theme.default.ui.css`; local-only custom properties use descriptive names (`--avatar-size`, not `--w`). 8. **Slots**: default slot for main content; named slots documented on the component's docs page. 9. **A11y**: keyboard operable, labelled, JS motion gated on `prefers-reduced-motion`, no live-region roles on static content. diff --git a/agents/css.md b/agents/css.md index 69fa6e46..548525f0 100644 --- a/agents/css.md +++ b/agents/css.md @@ -9,25 +9,27 @@ mCSS uses **native CSS cascade layers** (`@layer`) on top of an ITCSS-inspired f ## Cascade rules (load-bearing) 1. Framework layers, in priority order (later wins): - `settings, base, elements, global, components, theme, helpers` - The order runs **from default to deliberate**: `settings` through `components` are the framework's defaults, `theme` is a deliberate override of those defaults, helpers are the last word. (Not "generic to specific": a theme is broad in reach but late in intent, and intent decides cascade order.) + `base, elements, global, components, theme.default, theme.user, helpers` + The order runs **from default to deliberate**: `base` through `components` are the framework's structure, `theme.default` holds the default theme's design values, `theme.user` holds the consumer's deliberate deviations, helpers are the last word. (Not "generic to specific": a theme is broad in reach but late in intent, and intent decides cascade order.) 2. **Unlayered CSS beats every layer for normal declarations.** That's the consumer guarantee ("your CSS wins") and why site CSS is unlayered. -3. **The `theme` layer holds at most one active theme** (`theme.*.css`): token overrides plus optional style rules. Theme files are self-layered (each wraps its own content in `@layer theme`) and are **never imported by `mcss.css`**; the consumer entry activates one (see `_global.css`). No theme = the default look. Unlayered consumer CSS still beats themes. +3. **Every design value lives in the default theme** (`theme.default.css` entry importing `theme.default.tokens.css` + `theme.default.ui.css` with `layer(theme.default)`; the parts are plain CSS, the entry assigns their layer, and the dist build pre-wraps the dist copies for lone `` use). It is **never imported by `mcss.css`**; the consumer entry activates it right after `mcss.css` (see `_global.css`), and the framework does not paint without it. A consumer theme (self-layered into `theme.user`, see `theme.starter.css`) beats the default regardless of import order; a full skin like `theme.wireframe.css` is an entry that composes `theme.default.css` and overrides on top. Activate exactly one theme entry. Unlayered consumer CSS still beats all themes. 4. **Helpers are the exception: every helper declaration carries `!important`.** Important layered declarations beat unlayered CSS (the cascade inverts for important), so helpers win over site and consumer CSS too. They're element-level overrides, like inline styling. For important declarations layer order also inverts (earlier layer wins), which is why the reduced-motion block in `base.reset.css` still beats helpers. 5. `!important` is REQUIRED in every helper declaration and banned everywhere else in the framework, except the reduced-motion block in `base.reset.css` and third-party override files (see `site/external.astro.css`). `help.colors.css` and `help.spacing.css` get it from their generators. 6. `postcss.config.cjs` disables preset-env's `cascade-layers` polyfill. **Never remove that option** — the polyfill strips every `@layer` rule and silently replaces the cascade with specificity hacks. The browser floor is set in `.browserslistrc` (`defaults and supports css-cascade-layers`). ## Layer table -| Layer | Prefix | Purpose | -| ---------- | ------------- | ----------------------------------------------------------- | -| settings | `settings.*` | Primitive tokens (`settings.tokens.css`) and interface tokens (`settings.ui.css`); media queries + mixins import unlayered: build-time only | -| base | `base.*` | Reset only (`base.reset.css`) | -| elements | `elements.*` | Bare HTML element styles (text, form, media) | -| global | `global.*` | Structural patterns (a11y, grid, layout, prose, wrap) | -| components | `component.*` | Library components (card, hero, notice, …), including CSS-only single-class ones (badge, button, toggle); imported by `mcss.components.css`, never by `mcss.css` | -| theme | `theme.*` | Swappable themes: token overrides + style rules, self-layered via `@layer theme`, activated by the consumer entry (never by `mcss.css`) | -| helpers | `help.*` | Utility overrides (colors, spacing, typography), all `!important`: beats everything, including unlayered CSS | +| Layer | Prefix | Purpose | +| ------------- | ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| base | `base.*` | Reset only (`base.reset.css`) | +| elements | `elements.*` | Bare HTML element styles (text, form, media) | +| global | `global.*` | Structural patterns (a11y, grid, layout, prose, wrap) | +| components | `component.*` | Library components (card, hero, notice, …), including CSS-only single-class ones (badge, button, toggle); imported by `mcss.components.css`, never by `mcss.css` | +| theme.default | `theme.default.*` | The default theme: scale tokens (`theme.default.tokens.css`) and ui tokens (`theme.default.ui.css`), imported by the `theme.default.css` entry, activated by the consumer entry (never by `mcss.css`); the framework does not paint without it | +| theme.user | `theme.*` | Your theme and swappable skins: token overrides + style rules, self-layered via `@layer theme.user`; a full skin (`theme.wireframe.css`) is an entry composing `theme.default.css` and overriding on top | +| helpers | `help.*` | Utility overrides (colors, spacing, typography), all `!important`: beats everything, including unlayered CSS | + +`settings.media-queries.css` and `settings.mixins.css` are the only remaining `settings.*` files: build-time material (`@custom-media` + mixins), imported unlayered, no runtime output. `page.*` is a file-naming convention only (page-specific styles, e.g. site `page.docs.css`); those files are plain unlayered consumer CSS, there is no `pages` layer. @@ -46,7 +48,7 @@ Site-only files keep the same prefixes but live in `src/styles/site/` and import - Block modifiers (`.card-filled`, `.bt-primary`) for **build-time variants** chosen by props/markup. - Prefer styling an ARIA attribute when one exists: `[aria-current="true"]`, `[aria-expanded="true"]`, `[aria-disabled="true"]` beat inventing a parallel class. - Nested states compile to two-class selectors (`.avatar.is-online`) that out-specify single-class modifiers (`.avatar-xl`). So declare custom-property **defaults on the block**, let modifiers override them, and only **consume** the properties inside state blocks — never declare defaults there (that's how the avatar status-dot regression happened). -- Element chains may go as deep as the block's own structure needs (`.home_morph_static_arrow` = arrow inside the morph's static state). The underscore marks hierarchy **within one block**; multi-word single names stay camelCase (`.home_themer_formRow`). A nested *component* always starts its own block (`.themeToggle_text`, never `.header_navMobile_themeToggle_text`). +- Element chains may go as deep as the block's own structure needs (`.home_morph_static_arrow` = arrow inside the morph's static state). The underscore marks hierarchy **within one block**; multi-word single names stay camelCase (`.home_themer_formRow`). A nested _component_ always starts its own block (`.themeToggle_text`, never `.header_navMobile_themeToggle_text`). ### Never couple classes from different components (CRITICAL) @@ -55,18 +57,18 @@ A selector must only contain classes from its own block. Never write a descendan To style a component from outside: - **Its root**: mix your own class onto the element in markup (`
`) and style that class. -- **Its internals**: use the component's `Class` props (`headerClass`, `titleClass`, …) to mix a class onto the part, or set the component's interface tokens on your own hook class. If neither exists yet, add the prop or token to the component. Do not reach in with a selector. +- **Its internals**: use the component's `Class` props (`headerClass`, `titleClass`, …) to mix a class onto the part, or set the component's ui tokens on your own hook class. If neither exists yet, add the prop or token to the component. Do not reach in with a selector. - **Bare HTML tags** (`.home_themer_formRow > button`), `.is-*` states, and ARIA attribute selectors are fine inside your own block. - **Context blocks are not components**: a component may reference the environment it sits in (`@scope (.prose) to (.not-prose)` in `component.notice.css`, `:root.theme-dark`), but the context's own file must never name specific components (that's why `global.prose.css` lists only bare tags). - **Theme files are the one sanctioned exception**: a `theme.*.css` file may select component classes from outside (`.card::after`, `.bt`) because a theme is by definition a style over the whole system, versioned with the framework. Even there, prefer token overrides; reach for selectors only for what tokens can't express (pseudo-elements, `nth-child` rhythm, `text-decoration`). ### Token naming grammar -Interface tokens (`settings.ui.css`) are the public API of every component; they follow `--component-part-property`, longhand, kebab-case: +UI tokens (`theme.default.ui.css`) are the public API of every component; they follow `--component-part-property`, longhand, kebab-case: - `--bt-background-color-hover`, `--notice-border-width`, `--avatar-status-dot-color-online` - No abbreviations (`--card-bg-color` is legacy; new tokens spell out `background-color`), no camelCase, no underscores. -- Feedback colors: prefer the semantic aliases `--success-*` / `--danger-*` / `--warning-*` over the raw `--yes/no/maybe-*` scales. +- Feedback colors come straight from the `--yes-*` / `--no-*` / `--maybe-*` palettes; there is no separate success/danger/warning alias tier. ### Logical vs physical direction @@ -85,7 +87,7 @@ Never `transition: all` — it also transitions layout properties, so any late-a - **One block per file.** Every block gets its own file named after it (`.featureItem` lives in `component.featureItem.css`, never inside `component.featureGrid.css`), even for small companion blocks (`component.fieldRow.css`, site `component.webring.css`). - Framework file: create `src/styles/framework/..css` and add `@import url(./) layer();` in the matching block of `framework/mcss.css`, EXCEPT `component.*` files: those import in `framework/mcss.components.css` (the component library's own entry; `mcss.css` only declares the `components` slot). -- Theme file: create `src/styles/framework/theme..css` wrapping its own content in `@layer theme { … }`; do NOT import it in `mcss.css` (the consumer entry activates it; the dist index lists it commented out). +- Theme file: copy `src/styles/framework/theme.starter.css` to `theme..css` (its content self-layers via `@layer theme.user { … }`); do NOT import it in `mcss.css` (the consumer entry activates it after `theme.default.css`). For a full swappable skin, write an entry that imports `theme.default.css` and overrides on top, like `theme.wireframe.css`. The dist index lists non-default themes commented out. - Site file: create `src/styles/site/..css` and add a plain `@import` in `_global.css` (unlayered). - Framework CSS must never reference site-only selectors (e.g. `.expressive-code`); the site file mirrors any shared pattern itself. diff --git a/astro.config.mjs b/astro.config.mjs index 8223deb3..7c457e8e 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -8,7 +8,8 @@ import tunnel from "astro-tunnel"; import expressiveCode from "astro-expressive-code"; // astro-tunnel is a dev-only tool; keep it out of production builds -const isDev = process.env.NODE_ENV !== "production" && process.argv.includes("dev"); +const isDev = + process.env.NODE_ENV !== "production" && process.argv.includes("dev"); // https://astro.build/config export default defineConfig({ @@ -16,20 +17,14 @@ export default defineConfig({ // dist/ is reserved for the framework CSS artifact (npm run build:css); // the hosting platform's publish directory must point at _site/ outDir: "./_site", - redirects: { - // slug lowercased for consistency with the other component docs - "/components/ReadProgressBar": "/components/readprogressbar", - // the template docs page moved from the components collection to docs - "/components/template": "/docs/template", - // tags pages moved under /blog so the Blog nav item highlights on them - "/tags": "/blog/tags", - "/tags/[tag]": "/blog/tags/[tag]", - }, + // Redirects live in public/_redirects (Netlify edge, real 301s), not + // here: Astro config redirects emit meta-refresh HTML stubs that shadow + // the Netlify rules and that non-browser clients don't follow. integrations: [ preact(), sitemap({ - // keep the meta-refresh stubs at /tags/* and the bare demo pages out - filter: (page) => !page.startsWith("https://mcss.dev/tags/") && !page.startsWith("https://mcss.dev/demos/"), + // keep the bare demo pages out + filter: (page) => !page.startsWith("https://mcss.dev/demos/"), }), expressiveCode({ themes: ["github-dark"], // Theme also needs to be imported in shikiHighlighter.js diff --git a/dist/css/base.reset.css b/dist/css/base.reset.css index d66c21c3..bedf4f90 100644 --- a/dist/css/base.reset.css +++ b/dist/css/base.reset.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/component.avatar.css b/dist/css/component.avatar.css index 2ee84f63..989bfb23 100644 --- a/dist/css/component.avatar.css +++ b/dist/css/component.avatar.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/component.badge.css b/dist/css/component.badge.css index dc0d0d71..3fbfa212 100644 --- a/dist/css/component.badge.css +++ b/dist/css/component.badge.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/component.banner.css b/dist/css/component.banner.css index ea56c1cc..1598b27f 100644 --- a/dist/css/component.banner.css +++ b/dist/css/component.banner.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/component.breadcrumbs.css b/dist/css/component.breadcrumbs.css index 999522df..65804e4e 100644 --- a/dist/css/component.breadcrumbs.css +++ b/dist/css/component.breadcrumbs.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/component.button.css b/dist/css/component.button.css index 00cac71d..bdcd19d1 100644 --- a/dist/css/component.button.css +++ b/dist/css/component.button.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/component.card.css b/dist/css/component.card.css index b605766e..0ff65f7a 100644 --- a/dist/css/component.card.css +++ b/dist/css/component.card.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/component.faq.css b/dist/css/component.faq.css index 1429620f..97900d7d 100644 --- a/dist/css/component.faq.css +++ b/dist/css/component.faq.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/component.featureItem.css b/dist/css/component.featureItem.css index afc09e15..1ac79fd7 100644 --- a/dist/css/component.featureItem.css +++ b/dist/css/component.featureItem.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/component.field.css b/dist/css/component.field.css index ca3dd5ce..ff23f974 100644 --- a/dist/css/component.field.css +++ b/dist/css/component.field.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/component.fieldRow.css b/dist/css/component.fieldRow.css index e7bf64ac..5d934852 100644 --- a/dist/css/component.fieldRow.css +++ b/dist/css/component.fieldRow.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px @@ -30,7 +30,7 @@ xxl: 1920px /* Inline composition: fields and buttons on one wrapping row (newsletter signup, search bar…). Mix .fieldRow_field onto each field: fieldRow never reaches into the field block itself, it only sets the - --field-message-position interface token so hints and errors overlay + --field-message-position ui token so hints and errors overlay below the row instead of pushing bottom-aligned buttons out of line. Leave a little vertical room under the row for them. */ .fieldRow { diff --git a/dist/css/component.footer.css b/dist/css/component.footer.css index f104aa7e..359291a5 100644 --- a/dist/css/component.footer.css +++ b/dist/css/component.footer.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/component.header.css b/dist/css/component.header.css index 94aac3c7..546d8854 100644 --- a/dist/css/component.header.css +++ b/dist/css/component.header.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/component.hero.css b/dist/css/component.hero.css index bf5dc18e..8a486f5b 100644 --- a/dist/css/component.hero.css +++ b/dist/css/component.hero.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/component.notice.css b/dist/css/component.notice.css index e196ecce..56a4ed74 100644 --- a/dist/css/component.notice.css +++ b/dist/css/component.notice.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/component.pagination.css b/dist/css/component.pagination.css index 19797b1b..59debcc5 100644 --- a/dist/css/component.pagination.css +++ b/dist/css/component.pagination.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/component.prevNext.css b/dist/css/component.prevNext.css index 48bbc8b8..aa397f24 100644 --- a/dist/css/component.prevNext.css +++ b/dist/css/component.prevNext.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/component.pricing.css b/dist/css/component.pricing.css index 63217db8..222972e0 100644 --- a/dist/css/component.pricing.css +++ b/dist/css/component.pricing.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/component.readProgressBar.css b/dist/css/component.readProgressBar.css index 38fcc327..9fd8193b 100644 --- a/dist/css/component.readProgressBar.css +++ b/dist/css/component.readProgressBar.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/component.section.css b/dist/css/component.section.css index f780c4b4..257763c5 100644 --- a/dist/css/component.section.css +++ b/dist/css/component.section.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/component.socialMedia.css b/dist/css/component.socialMedia.css index 3f516f1d..de714b22 100644 --- a/dist/css/component.socialMedia.css +++ b/dist/css/component.socialMedia.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/component.tags.css b/dist/css/component.tags.css index 698140b5..2393f3c6 100644 --- a/dist/css/component.tags.css +++ b/dist/css/component.tags.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/component.testimonial.css b/dist/css/component.testimonial.css index f6d75e78..e1a9c346 100644 --- a/dist/css/component.testimonial.css +++ b/dist/css/component.testimonial.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/component.tiles.css b/dist/css/component.tiles.css index 64a510f9..e5e02573 100644 --- a/dist/css/component.tiles.css +++ b/dist/css/component.tiles.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/component.toc.css b/dist/css/component.toc.css index 4b1adad3..fa9e9505 100644 --- a/dist/css/component.toc.css +++ b/dist/css/component.toc.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/component.toggle.css b/dist/css/component.toggle.css index cf52fb67..3884544a 100644 --- a/dist/css/component.toggle.css +++ b/dist/css/component.toggle.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px @@ -26,7 +26,7 @@ xxl: 1920px @layer components { .toggle { - /* Themable via the --toggle-* tokens in settings.ui.css */ + /* Themable via the --toggle-* tokens in theme.default.ui.css */ --toggle-w: var(--toggle-width); --toggle-h: var(--toggle-height); --toggle-bd: var(--toggle-border-width); diff --git a/dist/css/elements.form.css b/dist/css/elements.form.css index bc91b889..5be6baa4 100644 --- a/dist/css/elements.form.css +++ b/dist/css/elements.form.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/elements.interactive.css b/dist/css/elements.interactive.css index 556b63c0..4d743f3d 100644 --- a/dist/css/elements.interactive.css +++ b/dist/css/elements.interactive.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/elements.media.css b/dist/css/elements.media.css index f9538b04..8304cc13 100644 --- a/dist/css/elements.media.css +++ b/dist/css/elements.media.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/elements.sectioning.css b/dist/css/elements.sectioning.css index c79973f6..29e37ed0 100644 --- a/dist/css/elements.sectioning.css +++ b/dist/css/elements.sectioning.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/elements.table.css b/dist/css/elements.table.css index 9374349a..0c6474f1 100644 --- a/dist/css/elements.table.css +++ b/dist/css/elements.table.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/elements.text.css b/dist/css/elements.text.css index 1e9e09ff..49632efa 100644 --- a/dist/css/elements.text.css +++ b/dist/css/elements.text.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px @@ -173,7 +173,7 @@ dd + dt { } del { - text-decoration-color: var(--danger-500); + text-decoration-color: var(--no-500); text-decoration-style: wavy; } diff --git a/dist/css/elements.text.quotes.css b/dist/css/elements.text.quotes.css index 23dab16a..793d28a0 100644 --- a/dist/css/elements.text.quotes.css +++ b/dist/css/elements.text.quotes.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/global.a11y.css b/dist/css/global.a11y.css index 3b00d3dd..e41f9bdc 100644 --- a/dist/css/global.a11y.css +++ b/dist/css/global.a11y.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/global.animation.css b/dist/css/global.animation.css index 236444ac..b0ef0142 100644 --- a/dist/css/global.animation.css +++ b/dist/css/global.animation.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/global.grid.css b/dist/css/global.grid.css index ff78485d..654523bc 100644 --- a/dist/css/global.grid.css +++ b/dist/css/global.grid.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px @@ -43,7 +43,7 @@ xxl: 1920px } /* DEFAULT */ -.grid > .grid_item { display: block; appearance: none; -webkit-appearance: none } +.grid > .grid_item { display: block; appearance: none; } .grid[col="1"] { --grid-tc: repeat(1, 1fr) } .grid[col="2"] { --grid-tc: repeat(2, 1fr) } .grid[col="3"] { --grid-tc: repeat(3, 1fr) } diff --git a/dist/css/global.layout.css b/dist/css/global.layout.css index 1d0da077..a3a11cc3 100644 --- a/dist/css/global.layout.css +++ b/dist/css/global.layout.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px @@ -37,7 +37,7 @@ xxl: 1920px
- Widths come from the layout tokens in settings.ui.css: + Widths come from the layout tokens in theme.default.ui.css: --layout-content-width, --layout-aside-width, --layout-toc-width. */ diff --git a/dist/css/global.prose.css b/dist/css/global.prose.css index d97b490e..d7344ea9 100644 --- a/dist/css/global.prose.css +++ b/dist/css/global.prose.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/global.wrap.css b/dist/css/global.wrap.css index 77379abe..279caf8a 100644 --- a/dist/css/global.wrap.css +++ b/dist/css/global.wrap.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/help.colors.css b/dist/css/help.colors.css index 2d16e199..0c747fd2 100644 --- a/dist/css/help.colors.css +++ b/dist/css/help.colors.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/help.devtools.css b/dist/css/help.devtools.css index fb0a305f..75df3daa 100644 --- a/dist/css/help.devtools.css +++ b/dist/css/help.devtools.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px @@ -49,9 +49,9 @@ body.dev { z-index: var(--z-top) !important; padding: var(--sm1) !important; font-size: 1rem !important; - color: var(--danger-500) !important; - background: var(--danger-100) !important; - border: 1px solid var(--danger-500) !important; + color: var(--no-500) !important; + background: var(--no-100) !important; + border: 1px solid var(--no-500) !important; border-radius: var(--radius-md) !important; } diff --git a/dist/css/help.layout.css b/dist/css/help.layout.css index 20fe9c76..a5aeccaf 100644 --- a/dist/css/help.layout.css +++ b/dist/css/help.layout.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/help.opacity.css b/dist/css/help.opacity.css index 282b84e1..19409d29 100644 --- a/dist/css/help.opacity.css +++ b/dist/css/help.opacity.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/help.ratios.css b/dist/css/help.ratios.css index b9484143..baf3dad4 100644 --- a/dist/css/help.ratios.css +++ b/dist/css/help.ratios.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/help.spacing.css b/dist/css/help.spacing.css index ed50f1c7..dd0daeac 100644 --- a/dist/css/help.spacing.css +++ b/dist/css/help.spacing.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/help.typography.css b/dist/css/help.typography.css index 8e4e9624..4abbcb39 100644 --- a/dist/css/help.typography.css +++ b/dist/css/help.typography.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px diff --git a/dist/css/mcss.css b/dist/css/mcss.css index 32a61f18..55bc0f55 100644 --- a/dist/css/mcss.css +++ b/dist/css/mcss.css @@ -1,6 +1,19 @@ /*! mCSS v1.3.0 | MIT | https://mcss.dev */ -@layer settings, base, elements, global, components, theme, helpers; +@layer base, elements, global, components, theme.default, theme.user, external, helpers; @import url(./base.reset.css) layer(base); +@import url(./elements.form.css) layer(elements); +@import url(./elements.interactive.css) layer(elements); +@import url(./elements.media.css) layer(elements); +@import url(./elements.sectioning.css) layer(elements); +@import url(./elements.table.css) layer(elements); +@import url(./elements.text.css) layer(elements); +@import url(./elements.text.quotes.css) layer(elements); +@import url(./global.a11y.css) layer(global); +@import url(./global.animation.css) layer(global); +@import url(./global.grid.css) layer(global); +@import url(./global.layout.css) layer(global); +@import url(./global.prose.css) layer(global); +@import url(./global.wrap.css) layer(global); @import url(./component.avatar.css) layer(components); @import url(./component.badge.css) layer(components); @import url(./component.banner.css) layer(components); @@ -26,19 +39,11 @@ @import url(./component.tiles.css) layer(components); @import url(./component.toc.css) layer(components); @import url(./component.toggle.css) layer(components); -@import url(./elements.form.css) layer(elements); -@import url(./elements.interactive.css) layer(elements); -@import url(./elements.media.css) layer(elements); -@import url(./elements.sectioning.css) layer(elements); -@import url(./elements.table.css) layer(elements); -@import url(./elements.text.css) layer(elements); -@import url(./elements.text.quotes.css) layer(elements); -@import url(./global.a11y.css) layer(global); -@import url(./global.animation.css) layer(global); -@import url(./global.grid.css) layer(global); -@import url(./global.layout.css) layer(global); -@import url(./global.prose.css) layer(global); -@import url(./global.wrap.css) layer(global); +@import url(./theme.default.css); /* the default theme */ +/* @import url(./theme.default.tokens.css); */ /* imported by theme.default.css */ +/* @import url(./theme.default.ui.css); */ /* imported by theme.default.css */ +/* @import url(./theme.starter.css); */ /* your theme's starting point: keep the default active */ +/* @import url(./theme.wireframe.css); */ /* full theme: use instead of the default (it imports it itself) */ @import url(./help.colors.css) layer(helpers); @import url(./help.devtools.css) layer(helpers); @import url(./help.layout.css) layer(helpers); @@ -46,7 +51,3 @@ @import url(./help.ratios.css) layer(helpers); @import url(./help.spacing.css) layer(helpers); @import url(./help.typography.css) layer(helpers); -@import url(./settings.tokens.css) layer(settings); -@import url(./settings.ui.css) layer(settings); -/* @import url(./theme.default.css); */ /* theme: activate at most one */ -/* @import url(./theme.wireframe.css); */ /* theme: activate at most one */ diff --git a/dist/css/theme.default.css b/dist/css/theme.default.css index e9c5d554..3b0aa9aa 100644 --- a/dist/css/theme.default.css +++ b/dist/css/theme.default.css @@ -1,70 +1,26 @@ /*! mCSS v1.3.0 | MIT | https://mcss.dev */ -/* -SETTINGS MEDIA QUERIES - -https://github.com/argyleink/open-props/blob/main/src/props.media.css -https://open-props.style/#media-queries - -Can't use var() inside media queries 🤦‍♂️ -https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css - -xxs: 240px -xs: 360px -sm: 480px -md: 768px -lg: 1024px -xl: 1440px -xxl: 1920px -*/ - -/* https://github.com/postcss/postcss-mixins */ - -/* Example */ - -/* truncate single line of text and adds … */ - -/* DEFAULT THEME (template) */ +/* DEFAULT THEME */ /* - A theme is a file of token overrides, plus optional rules for what - tokens can't express. Swap which theme file your entry point imports and - the whole site restyles; everything a theme doesn't mention falls back to - the framework defaults (settings.tokens.css + settings.ui.css). - - Themes are self-layered: the @layer theme block below slots this file - into the layer order declared in mcss.css no matter how it's loaded - (plain @import, link tag, bundler). Import exactly one theme from your - own entry point, after mcss.css: + Basic design tokens and UI abstractions + Import it next to mcss.css @import url(./framework/mcss.css); - @import url(./framework/theme.wireframe.css); + @import url(./framework/theme.default.css); + + mcss.css imports no theme itself; without this file every token is unset + and the page will look broken.. - mCSS imports no theme by default: an empty theme layer IS the default - look. Copy this file to start your own theme. + Don't edit the default theme. - Guidelines: - - Prefer token overrides. Override raw tokens (--base-*, --text) to shift - the whole palette or type, interface tokens (--ui-border-color, - --heading-font) for cross-cutting changes, or component tokens - (--bt-border-radius) for surgical ones. - - Rules are for what tokens can't express (pseudo-elements, - nth-child rhythm, text-decoration). Theme files are the one place - allowed to style component classes from outside; they still lose - to your unlayered CSS and to helpers, by design. - - No !important: that privilege is reserved for the helpers layer. + To make your own theme, either duplicate/rename the 2 files below and + import theme instead of the default, or just override the bits you want + to change and imported that AFTER the defaults. There is `theme.starter.css` + to get you started if you want to go that road (recommended)). */ -@layer theme { - :root { - /* A new palette usually gets you 80% of the way: */ - /* --base-0: #fff; */ - /* --primary-500: rebeccapurple; */ - /* Then reach for interface and component tokens as needed: */ - /* --heading-font: Georgia, serif; */ - /* --card-border-radius: 0; */ - /* A theme may also add scales the framework doesn't ship, */ - /* e.g. a second accent, and use them in its own style rules: */ - /* --secondary-500: teal; */ - } -} +/* Defensive redundancy - Same layers as in mcss.css */ +@layer base, elements, global, components, theme.default, theme.user, external, helpers; + +@import url(./theme.default.tokens.css) layer(theme.default); +@import url(./theme.default.ui.css) layer(theme.default); diff --git a/dist/css/settings.tokens.css b/dist/css/theme.default.tokens.css similarity index 81% rename from dist/css/settings.tokens.css rename to dist/css/theme.default.tokens.css index efb95a49..eb9c5c1e 100644 --- a/dist/css/settings.tokens.css +++ b/dist/css/theme.default.tokens.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px @@ -24,14 +24,17 @@ xxl: 1920px /* truncate single line of text and adds … */ -@layer settings { -/* SETTINGS TOKENS */ +@layer theme.default { +/* DEFAULT THEME: TOKENS */ /* -Can't use var() inside media queries, so breakpoints are hard coded in -settings.media-queries.css + Raw design tokens. Part of the default theme (see theme.default.css); + Don't edit this file directly. Thee best way is to Override it with your + own theme (see theme.starter.css). -xxs: 240px xs: 360px sm: 480px md: 768px lg: 1024px xl: 1440px xxl: 1920px + Can't use var() inside media queries, so breakpoints are hard coded in + settings.media-queries.css instead of custom properties + xxs: 240px xs: 360px sm: 480px md: 768px lg: 1024px xl: 1440px xxl: 1920px */ /* @@ -48,19 +51,23 @@ xxs: 240px xs: 360px sm: 480px md: 768px lg: 1024px xl: 1440px xxl: 1920px • Colors -• Box shadows -• Border radius • Border width +• Border radius + +• Box shadows + • Opacity + +• Z-index + +• Transitions + */ :root { - /* GLOBALS */ /* DIMENSIONS */ - /* Sizes */ - --xs1: 4px; --xs2: 8px; --xs3: 12px; @@ -97,18 +104,20 @@ xxs: 240px xs: 360px sm: 480px md: 768px lg: 1024px xl: 1440px xxl: 1920px --tera2: 480px; --tera3: 520px; - /* Aspect Ratios */ + /* ASPECT RATIOS */ + --ar-square: 1; --ar-landscape: 4/3; --ar-portrait: 3/4; --ar-widescreen: 16/9; --ar-golden: 1.618/1; - /* TYPOGRAPHY */ - /* See also elements.text & help.text */ + /* */ + + /* (More typography in elements.text & help.text) */ + + /* FONT FAMILIES (https://modernfontstacks.com) */ - /* Font Families */ - /* Local font stacks - More options @ https://modernfontstacks.com */ --display: Avenir, Montserrat, Corbel, URW Gothic, source-sans-pro, ui-sans-serif, sans-serif; @@ -118,8 +127,8 @@ xxs: 240px xs: 360px sm: 480px md: 768px lg: 1024px xl: 1440px xxl: 1920px Source Code Pro, Cascadia Code, Menlo, Consolas, DejaVu Sans Mono, ui-monospace, monospace; - /* Font Sizes */ - /* Create your own sizes @ https://typescale.com */ + /* FONT SIZES (https://typescale.com) */ + --text-xs: 0.694rem; --text-sm: 0.833rem; --text-md: 1rem; @@ -132,11 +141,8 @@ xxs: 240px xs: 360px sm: 480px md: 768px lg: 1024px xl: 1440px xxl: 1920px --display-mega: 3.583rem; --display-giga: 4.299rem; - /* Heading font sizes are decisions, not scale steps: they map each - heading level onto this scale. See --heading-font-size-* in - settings.ui.css. */ + /* FONT WEIGHTS */ - /* Font Weights */ --extra-light: 200; --light: 300; --book: 400; @@ -144,14 +150,16 @@ xxs: 240px xs: 360px sm: 480px md: 768px lg: 1024px xl: 1440px xxl: 1920px --bold: 700; --black: 900; - /* Letter Spacing */ + /* LETTER SPACING */ + --tracking-sm: -0.05em; --tracking-md: 0.025em; --tracking-lg: 0.05em; --tracking-xl: 0.075em; --tracking-xxl: 0.15em; - /* Line Height */ + /* LINE HEIGHT */ + --leading-xs: 1; --leading-sm: 1.15; --leading-md: 1.375; @@ -159,8 +167,7 @@ xxs: 240px xs: 360px sm: 480px md: 768px lg: 1024px xl: 1440px xxl: 1920px --leading-xl: 1.75; --leading-xxl: 2; - /* COLORS */ - /* Make your own palettes programmatically: https://www.tints.dev */ + /* COLORS (https://www.tints.dev) */ /* Base */ @@ -191,8 +198,6 @@ xxs: 240px xs: 360px sm: 480px md: 768px lg: 1024px xl: 1440px xxl: 1920px --primary-900: #0c4a6e; --primary-950: #082f49; - /* Secondary and/or Highlight goes here */ - /* Feedback */ --yes-100: #d5f6e8; @@ -217,14 +222,6 @@ xxs: 240px xs: 360px sm: 480px md: 768px lg: 1024px xl: 1440px xxl: 1920px --highlight-500: #ffee00; - /* GRADIENTS */ - - --gradient-primary: linear-gradient( - 90deg, - var(--primary-950) 0%, - var(--primary-400) 100% - ); - /* BORDERS */ --border-sm: 1px; diff --git a/dist/css/settings.ui.css b/dist/css/theme.default.ui.css similarity index 82% rename from dist/css/settings.ui.css rename to dist/css/theme.default.ui.css index 08a2191b..41ca16ae 100644 --- a/dist/css/settings.ui.css +++ b/dist/css/theme.default.ui.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px @@ -24,69 +24,40 @@ xxl: 1920px /* truncate single line of text and adds … */ -@layer settings { -/* INTERFACE TOKENS */ +@layer theme.default { +/* DEFAULT THEME: UI */ /* - The decisions layer. Every token here is named for what it's FOR (an - element, a component, or a shared meaning) and answers "what does this - thing use by default". Tokens named for what they ARE (--sm1, --base-500, - --bold) are scale tokens and live in settings.tokens.css. That's the - whole split: a name that mentions a UI thing belongs here; a name that - labels a step on a scale belongs there. + Tokens here are one abstraction level above raw tokens + They define styling for elements, components, or a shared style. Values, in order of preference: - 1. Another interface token, when the meaning is shared - (--input-border-color: var(--ui-border-color)). - 2. A scale token, when the value should follow the system scales - (--fieldset-padding: var(--sm3)). - 3. A raw value, only where following the scales would be wrong: - content (separator strings, icon URLs), geometry tuned to one - control (--toggle-width), or element-relative measures that track - the element's own type instead of the page (em heading spacing). - The test: "if a theme retuned the scales, should this follow?" - - Deliberate deviations from these defaults live in a theme file - (see theme.default.css). + 1. Another ui token, when the meaning is shared + `--input-border-color: var(--ui-border-color)` + 2. A raw token: `--fieldset-padding: var(--sm3)` + 3. A raw value, only when it's not supposed to match a raw token + or when it's relative to the the element's own value (em heading spacing). + + Part of the default theme (see theme.default.css); don't edit it, + override from your own theme (see theme.starter.css). */ :root { /* Color scheme (light/dark), toggled by the .theme-light / .theme-dark - classes below. Unrelated to theme files, which are full themes. */ + classes below. */ color-scheme: light dark; --ui-border-color: light-dark(var(--base-200), var(--base-500)); - /* Also consumed by the --shadow-* scale in settings.tokens.css: the one - reference between the files that runs upward, so shadows can switch - with the color scheme. Raw alpha colors: the palettes have no alpha - steps. */ + /* Also used by the --shadow-* in theme.default.tokens.css, The one reference + between the files that runs upward, so shadows can switch with the color + scheme. Raw alpha colors: the palettes have no alpha steps. */ --ui-shadow-color: light-dark(rgb(0 0 0 / 0.1), rgb(0 0 0 / 0.6)); - /* Keyboard focus ring (consumed by :focus-visible in global.a11y.css). - Raw 2px on purpose: an accessibility affordance that shouldn't move - when a theme retunes the decorative border scale. */ + /* Keyboard focus ring (used by :focus-visible in global.a11y.css). + Raw 2px on purpose: an accessibility shouldn't change with the theme. */ --focus-ring-color: light-dark(var(--primary-500), var(--primary-400)); --focus-ring-width: 2px; --focus-ring-offset: 2px; - - /* Semantic feedback aliases over the raw feedback palettes. - Prefer these in components and themes; a theme can restyle feedback by - overriding the aliases without touching the raw scales. */ - --success-100: var(--yes-100); - --success-200: var(--yes-200); - --success-300: var(--yes-300); - --success-400: var(--yes-400); - --success-500: var(--yes-500); - --danger-100: var(--no-100); - --danger-200: var(--no-200); - --danger-300: var(--no-300); - --danger-400: var(--no-400); - --danger-500: var(--no-500); - --warning-100: var(--maybe-100); - --warning-200: var(--maybe-200); - --warning-300: var(--maybe-300); - --warning-400: var(--maybe-400); - --warning-500: var(--maybe-500); } :root.theme-light { @@ -110,10 +81,7 @@ xxl: 1920px --input-border-width: var(--border-sm); --input-border-color: var(--ui-border-color); --input-border-radius: var(--radius-md); - --input-border-color-invalid: light-dark( - var(--danger-500), - var(--danger-400) - ); + --input-border-color-invalid: light-dark(var(--no-500), var(--no-400)); /* Gap under a label that precedes its control */ --label-spacing: var(--xs1); @@ -128,16 +96,16 @@ xxl: 1920px --meter-height: var(--sm1); --meter-border-radius: var(--radius-md); --meter-track-color: var(--primary-100); - --meter-low-color: var(--danger-400); - --meter-medium-color: var(--warning-400); - --meter-high-color: var(--success-400); + --meter-low-color: var(--no-400); + --meter-medium-color: var(--maybe-400); + --meter-high-color: var(--yes-400); --progress-height: var(--sm1); --progress-color: var(--primary-500); --progress-track-color: var(--primary-100); --progress-border-radius: var(--radius-md); - /* select's chevron, applied as a mask painted with the text color; + /* select's chevron, applied as a mask using text color; any url() works here, data URL or file */ --select-icon-size: var(--sm3); --select-icon: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%20id='chevron-down'%3E%3Cpath%20d='m6%209%206%206%206-6'/%3E%3C/svg%3E"); @@ -152,9 +120,8 @@ xxl: 1920px --dialog-backdrop-color: var(--base-950); --dialog-backdrop-opacity: var(--o-4); - /* details: same surface as dialog by default, on purpose but - independently overridable. Spacing is the gap between an open - summary and its content. */ + /* details: same as dialog by default, on purpose, to be independently + overridable. Spacing is the gap between an open summary and its content. */ --details-padding: var(--sm1); --details-spacing: var(--xs3); --details-border-width: var(--border-sm); @@ -268,7 +235,7 @@ xxl: 1920px /* ins: background stays light in both light/dark modes */ --ins-color: var(--base-950); - --ins-background-color: var(--success-200); + --ins-background-color: var(--yes-200); --marker-color: var(--highlight-500); @@ -321,20 +288,14 @@ xxl: 1920px var(--primary-600), var(--primary-500) ); - --badge-success-color: light-dark(var(--success-500), var(--base-0)); - --badge-success-background-color: light-dark( - var(--success-100), - var(--success-500) - ); - --badge-danger-color: light-dark(var(--danger-500), var(--base-0)); - --badge-danger-background-color: light-dark( - var(--danger-100), - var(--danger-500) - ); - --badge-warning-color: light-dark(var(--warning-500), var(--base-950)); + --badge-success-color: light-dark(var(--yes-500), var(--base-0)); + --badge-success-background-color: light-dark(var(--yes-100), var(--yes-500)); + --badge-danger-color: light-dark(var(--no-500), var(--base-0)); + --badge-danger-background-color: light-dark(var(--no-100), var(--no-500)); + --badge-warning-color: light-dark(var(--maybe-500), var(--base-950)); --badge-warning-background-color: light-dark( - var(--warning-100), - var(--warning-500) + var(--maybe-100), + var(--maybe-500) ); } @@ -447,7 +408,7 @@ xxl: 1920px :root { --field-spacing: var(--xs1); --field-hint-color: light-dark(var(--base-400), var(--base-500)); - --field-error-color: light-dark(var(--danger-500), var(--danger-300)); + --field-error-color: light-dark(var(--no-500), var(--no-300)); /*Field's hint/error position. Use `static` to reflow under, use `absolute` (and leave enough space below) if you don't want any shift on errors */ --field-message-position: static; @@ -552,7 +513,7 @@ xxl: 1920px var(--primary-600), var(--primary-400) ); - --pricingCard-check-color: light-dark(var(--success-500), var(--success-400)); + --pricingCard-check-color: light-dark(var(--yes-500), var(--yes-400)); } /* Read Progress Bar */ diff --git a/dist/css/theme.starter.css b/dist/css/theme.starter.css new file mode 100644 index 00000000..2a75fd9b --- /dev/null +++ b/dist/css/theme.starter.css @@ -0,0 +1,71 @@ +/*! mCSS v1.3.0 | MIT | https://mcss.dev */ +/* +SETTINGS MEDIA QUERIES + +https://github.com/argyleink/open-props/blob/main/src/props.media.css +https://open-props.style/#media-queries + +Can't use var() inside media queries 🤦‍♂️ +https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 +so breakpoints are not in theme.default.tokens.css + +xxs: 240px +xs: 360px +sm: 480px +md: 768px +lg: 1024px +xl: 1440px +xxl: 1920px +*/ + +/* https://github.com/postcss/postcss-mixins */ + +/* Example */ + +/* truncate single line of text and adds … */ + +/* STARTER USER THEME */ + +/* + A theme is a file of token overrides, plus optional style rules for what + tokens can't express. This file is where your theme starts: import it + from your own entry point after the default theme: + + @import url(./framework/mcss.css); + @import url(./framework/theme.default.css); + @import url(./theme.starter.css); + + MAKE SURE you put all your overrides inside `@layer theme.user` + + Guidelines: + + - Override values in `theme.default.tokens.css` for low level stuff + like colors, sizes, fonts, etc. + - For UI related stuff like button radius or component specific styles, + override values in `theme.default.ui.css` + - Add your own rules if a token can't do what you need (pseudo-elements, + nth-child,, text-decoration, etc.) + - Don't use !important. If you need to, you're doing something wrong. + Email me and I'll help you out. + - For a full swappable theme, look at `theme.wireframe.css` to see + how it's done. +*/ + +/* Pin the layer order before declaring into it: priority is set by + first declaration, so this file slots correctly even if it loads + before mcss.css. */ +@layer base, elements, global, components, theme.default, theme.user, external, helpers; + +@layer theme.user { + :root { + /* A new palette usually gets you 80% of the way: */ + /* --base-0: #fff; */ + /* --primary-500: rebeccapurple; */ + /* Then reach for ui and component tokens as needed: */ + /* --heading-font: Georgia, serif; */ + /* --card-border-radius: 0; */ + /* A theme may also add tokens the framework doesn't ship, */ + /* e.g. a second accent, and use them in its own style rules: */ + /* --secondary-500: teal; */ + } +} diff --git a/dist/css/theme.wireframe.css b/dist/css/theme.wireframe.css index c8195b5c..102a4660 100644 --- a/dist/css/theme.wireframe.css +++ b/dist/css/theme.wireframe.css @@ -7,7 +7,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px @@ -30,10 +30,24 @@ xxl: 1920px A hand-drawn wireframe theme: grayscale palette, rounded type, wobbly borders, paper-cutout shadows, and a traced-twice pencil stroke on cards and buttons. Mostly token overrides; the style rules at the - bottom cover what tokens can't express. See theme.default.css for how - themes work and how to activate one. + bottom cover what tokens can't express. + + A full theme is an entry that composes the default theme and overrides + on top. This file contains ONLY this theme's deviations; everything it + doesn't mention comes from theme.default.css, which the @import below + makes the browser load alongside this file. The rules here land in + `theme.user`, which wins over the default theme's `theme.default` + layer. Activate exactly one theme entry from your own entry point + (see theme.default.css). */ +/* Pin the layer order before anything else in this file: priority is + set by first declaration, so this theme slots correctly even if it + loads before mcss.css. */ +@layer base, elements, global, components, theme.default, theme.user, external, helpers; + +@import url(./theme.default.css); + /* Registered so it computes on the element that declares it and then inherits as a plain integer: a card and its media resolve the SAME seed and can derive matching corners. Property registrations are @@ -44,7 +58,7 @@ xxl: 1920px initial-value: 1; } -@layer theme { +@layer theme.user { :root { /* COLORS: everything goes grayscale, including the primary scale */ @@ -98,7 +112,9 @@ xxl: 1920px Comic Sans ships on macOS and Windows, Chalkboard SE on iOS, casual is the Android generic. */ - --text: 'Comic Sans MS', 'Chalkboard SE', Chalkboard, 'Comic Neue', 'Segoe Print', 'Bradley Hand', casual, cursive; + --text: + "Comic Sans MS", "Chalkboard SE", Chalkboard, "Comic Neue", "Segoe Print", + "Bradley Hand", casual, cursive; --display: var(--text); --heading-font: var(--text); --heading-weight: var(--bold); @@ -157,7 +173,10 @@ xxl: 1920px against paper, not one gray against another. */ --toggle-track-color-checked: light-dark(var(--base-800), var(--base-200)); - --avatar-status-dot-color-online: light-dark(var(--base-800), var(--base-200)); + --avatar-status-dot-color-online: light-dark( + var(--base-800), + var(--base-200) + ); /* WAYFINDING STAYS CRISP: the focus ring is not part of the sketch, and --marker-color is already highlighter yellow. */ @@ -273,8 +292,7 @@ xxl: 1920px Corner pattern mirrors --wobble-2 (short/long alternation). */ .card, .card_media { - border-radius: - calc(9px + sin(var(--sketch-seed) * 9.1) * 2px) + border-radius: calc(9px + sin(var(--sketch-seed) * 9.1) * 2px) calc(105px + sin(var(--sketch-seed) * 4.7) * 18px) calc(7px + sin(var(--sketch-seed) * 3.1) * 2px) calc(120px + sin(var(--sketch-seed) * 5.5) * 18px) / @@ -286,13 +304,10 @@ xxl: 1920px /* Flush media bleeds to the card's top edge only */ .card_media-flush { - border-radius: - calc(9px + sin(var(--sketch-seed) * 9.1) * 2px) - calc(105px + sin(var(--sketch-seed) * 4.7) * 18px) - 0 0 / + border-radius: calc(9px + sin(var(--sketch-seed) * 9.1) * 2px) + calc(105px + sin(var(--sketch-seed) * 4.7) * 18px) 0 0 / calc(115px + sin(var(--sketch-seed) * 5.9) * 18px) - calc(8px + sin(var(--sketch-seed) * 7.7) * 2px) - 0 0; + calc(8px + sin(var(--sketch-seed) * 7.7) * 2px) 0 0; } .card::after, @@ -300,8 +315,7 @@ xxl: 1920px rotate: calc(sin(var(--sketch-seed) * 7.3) * 0.6deg); translate: calc(sin(var(--sketch-seed) * 3.7) * 1.5px) calc(cos(var(--sketch-seed) * 5.3) * 1.5px); - border-radius: - calc(100px + sin(var(--sketch-seed) * 5.1) * 20px) + border-radius: calc(100px + sin(var(--sketch-seed) * 5.1) * 20px) calc(8px + sin(var(--sketch-seed) * 2.3) * 3px) calc(110px + sin(var(--sketch-seed) * 4.9) * 20px) calc(9px + sin(var(--sketch-seed) * 4.3) * 3px) / diff --git a/dist/mcss.components.css b/dist/mcss.components.css index fb1ee6c4..e26d7f63 100644 --- a/dist/mcss.components.css +++ b/dist/mcss.components.css @@ -20,7 +20,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px @@ -772,7 +772,7 @@ li + li::before { /* Inline composition: fields and buttons on one wrapping row (newsletter signup, search bar…). Mix .fieldRow_field onto each field: fieldRow never reaches into the field block itself, it only sets the - --field-message-position interface token so hints and errors overlay + --field-message-position ui token so hints and errors overlay below the row instead of pushing bottom-aligned buttons out of line. Leave a little vertical room under the row for them. */ .fieldRow { @@ -1900,7 +1900,7 @@ li + li::before { @layer components { .toggle { - /* Themable via the --toggle-* tokens in settings.ui.css */ + /* Themable via the --toggle-* tokens in theme.default.ui.css */ --toggle-w: var(--toggle-width); --toggle-h: var(--toggle-height); --toggle-bd: var(--toggle-border-width); diff --git a/dist/mcss.css b/dist/mcss.css index 40ca879c..57823470 100644 --- a/dist/mcss.css +++ b/dist/mcss.css @@ -1,18 +1,15 @@ /*! mCSS v1.3.0 | MIT | https://mcss.dev */ -@layer settings, base, elements, global, components, theme, helpers; +@layer base, elements, global, components, theme.default, theme.user, external, helpers; +@layer base, elements, global, components, theme.default, theme.user, external, helpers; /* mCSS framework entry point. - The framework lives in named cascade layers, declared here in priority - order (later wins). The layer name, not import order, decides priority. - Anything a consumer writes OUTSIDE these layers beats the framework by - default, with one exception: helpers use !important, and important layered - declarations beat unlayered CSS. Helpers are element-level overrides that - win everywhere, like inline styling. + mCSS recreates the ITCSS specificity strategy using modern CSS layers. + Anything outside these layers has higher specificity, except helpers which use + `!important` to override everything, by design. */ -/* Build-time only (@custom-media + mixin definitions, no runtime output) */ /* SETTINGS MEDIA QUERIES @@ -21,7 +18,7 @@ https://open-props.style/#media-queries Can't use var() inside media queries 🤦‍♂️ https://stackoverflow.com/questions/40722882/css-native-variables-not-working-in-media-queries/47212942#47212942 -so breakpoints are not in settings.tokens.css +so breakpoints are not in theme.default.tokens.css xxs: 240px xs: 360px @@ -37,5392 +34,5379 @@ xxl: 1920px /* truncate single line of text and adds … */ -/* Settings */ - -@layer settings{ - -/* SETTINGS TOKENS */ - /* -Can't use var() inside media queries, so breakpoints are hard coded in -settings.media-queries.css + Your theme is not imported here, but at the same level as mCSS: -xxs: 240px xs: 360px sm: 480px md: 768px lg: 1024px xl: 1440px xxl: 1920px -*/ + @import url(./framework/mcss.css); + @import url(./framework/theme.default.css); -/* + See the default theme for how to create your own. +*/ -• Dimensions (Margin, Padding, Width, Height) -• Aspect Ratios +/* Reset & Normalize */ -• Font Families -• Font Size -• Font Weight +@layer base{ -• Letter Spacing -• Line Height +/* RESET */ -• Colors +*, +*::before, +*::after { + box-sizing: border-box; +} -• Box shadows -• Border radius -• Border width -• Opacity +/* +Immediately jump any animation to the end point +Remove transitions & fixed background attachment */ +@media (prefers-reduced-motion: reduce) { + *, + ::before, + ::after { + animation-delay: -1ms !important; + animation-duration: 1ms !important; + animation-iteration-count: 1 !important; + background-attachment: initial !important; + scroll-behavior: auto !important; + transition-delay: 0s !important; + transition-duration: 0s !important; + } +} -:root { - /* GLOBALS */ +:where(:not(dialog)) { + margin: 0; +} - /* DIMENSIONS */ +/* Allow percentage-based heights */ +/* See elements.sectioning.css for default body styling */ +html, +body { + min-height: 100%; +} +} - /* Sizes */ +/* Global styles for HTML elements and their abstractions */ +/* https://developer.mozilla.org/en-US/docs/Web/HTML/Element */ +@layer elements{ - --xs1: 4px; - --xs2: 8px; - --xs3: 12px; +/* SECTIONING ROOT */ - --sm1: 16px; - --sm2: 20px; - --sm3: 24px; +body { + /* line-sizing is a CSSWG draft with no browser support yet; kept as intent + for consistent line-spacing once it ships. */ + line-sizing: normal; + /* https://kilianvalkhof.com/2022/css-html/your-css-reset-needs-text-size-adjust-probably/ */ + -webkit-text-size-adjust: none; + -moz-text-size-adjust: none; + text-size-adjust: none; + background-color: var(--body-background-color); + color: var(--text-color); + font-family: var(--text); + line-height: var(--body-line-height); - --md1: 28px; - --md2: 32px; - --md3: 36px; + /* for elements like dialog etc. that require scrolling turned off */ + &:has(.body-is-locked) { + overflow: hidden; + } +} - --lg1: 40px; - --lg2: 44px; - --lg3: 48px; +/* CONTENT SECTIONING ELEMENTS */ - --xl1: 56px; - --xl2: 64px; - --xl3: 80px; +address { + /* moved to elements.text.css where most people would assume it is */ +} - --xxl1: 96px; - --xxl2: 112px; - --xxl3: 128px; +article { +} - --mega1: 160px; - --mega2: 192px; - --mega3: 224px; +aside { +} - --giga1: 256px; - --giga2: 288px; - --giga3: 320px; +footer { +} - --tera1: 384px; - --tera2: 480px; - --tera3: 520px; +header { +} - /* Aspect Ratios */ - --ar-square: 1; - --ar-landscape: 4/3; - --ar-portrait: 3/4; - --ar-widescreen: 16/9; - --ar-golden: 1.618/1; +/* Technically headings (h1, h2, h3, etc.) should be here, but I think it makes more sense to keep them in the elements.text file */ - /* TYPOGRAPHY */ - /* See also elements.text & help.text */ +hgroup { +} - /* Font Families */ - /* Local font stacks - More options @ https://modernfontstacks.com */ - --display: - Avenir, Montserrat, Corbel, URW Gothic, source-sans-pro, ui-sans-serif, - sans-serif; - --text: ui-sans-serif, system-ui, sans-serif; - --mono: - Dank Mono, Inconsolata, Fira Mono, SF Mono, Monaco, Droid Sans Mono, - Source Code Pro, Cascadia Code, Menlo, Consolas, DejaVu Sans Mono, - ui-monospace, monospace; +main { +} - /* Font Sizes */ - /* Create your own sizes @ https://typescale.com */ - --text-xs: 0.694rem; - --text-sm: 0.833rem; - --text-md: 1rem; - --text-lg: 1.2rem; - --text-xl: 1.44rem; - --display-sm: 1.728rem; - --display-md: 2.074rem; - --display-lg: 2.488rem; - --display-xl: 2.986rem; /* h1 */ - --display-mega: 3.583rem; - --display-giga: 4.299rem; +nav { +} - /* Heading font sizes are decisions, not scale steps: they map each - heading level onto this scale. See --heading-font-size-* in - settings.ui.css. */ +section { +} - /* Font Weights */ - --extra-light: 200; - --light: 300; - --book: 400; - --semi-bold: 600; - --bold: 700; - --black: 900; +search { +} +} +@layer elements{ - /* Letter Spacing */ - --tracking-sm: -0.05em; - --tracking-md: 0.025em; - --tracking-lg: 0.05em; - --tracking-xl: 0.075em; - --tracking-xxl: 0.15em; +/* ELEMENTS TEXT */ - /* Line Height */ - --leading-xs: 1; - --leading-sm: 1.15; - --leading-md: 1.375; - --leading-lg: 1.5; - --leading-xl: 1.75; - --leading-xxl: 2; +::selection { + color: var(--selection-color); + background-color: var(--selection-background-color); +} - /* COLORS */ - /* Make your own palettes programmatically: https://www.tints.dev */ +:where(a, u, ins, abbr) { + text-underline-offset: 2px; +} - /* Base */ +a { + font-weight: var(--link-font-weight); + color: var(--link-color); + &:where(:hover) { + color: var(--link-color-hover); + -webkit-text-decoration: none; + text-decoration: none; + } +} - --base-0: #fff; - --base-50: #f6f7f9; - --base-100: #edeef1; - --base-200: #d6dbe1; - --base-300: #b2bbc7; - --base-400: #8897a8; - --base-500: #697a8e; - --base-600: #546375; - --base-700: #4a5666; - --base-800: #3c4550; - --base-900: #353c45; - --base-950: #23282e; +address { + width: max-content; + max-width: 100%; + padding: var(--sm1) var(--sm3); + font-style: normal; + background-color: light-dark(var(--base-50), var(--base-900)); + border: var(--xs2) solid transparent; + border-image: 8 + repeating-linear-gradient( + -45deg, + var(--no-500) 0, + var(--no-500) var(--xs2), + transparent 0, + transparent calc(var(--xs2) * 2), + var(--primary-500) 0, + var(--primary-500) calc(var(--xs2) * 3), + transparent 0, + transparent calc(var(--xs2) * 4) + ); +} - /* Primary */ +abbr { + position: relative; + cursor: help; + &:after { + position: relative; + top: calc(var(--xs1) * -1); + width: var(--sm1); + height: var(--sm1); + display: inline-block; + content: ""; + background: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%20id='circle-help'%3E%3Ccircle%20cx='12'%20cy='12'%20r='10'/%3E%3Cpath%20d='M9.09%209a3%203%200%200%201%205.83%201c0%202-3%203-3%203'/%3E%3Cpath%20d='M12%2017h.01'/%3E%3C/svg%3E"); + background-size: contain; + } + &:hover:before { + width: max-content; + max-width: 400px; + position: absolute; + left: 50%; /* deliberately physical: symmetric centering, paired with translate(-50%) */ + padding: var(--xs1) var(--xs3); + content: attr(title); + color: var(--base-0); + background-color: var(--base-900); + opacity: var(--o-4); + border-radius: var(--radius-sm); + transform: translate(-50%, -2em); + } +} - --primary-50: #f0f9ff; - --primary-100: #e0f2fe; - --primary-200: #bae6fd; - --primary-300: #7dd3fc; - --primary-400: #38bdf8; - --primary-500: #0ea5e9; - --primary-600: #0284c7; - --primary-700: #0369a1; - --primary-800: #075985; - --primary-900: #0c4a6e; - --primary-950: #082f49; - - /* Secondary and/or Highlight goes here */ - - /* Feedback */ - - --yes-100: #d5f6e8; - --yes-200: #afebd4; - --yes-300: #7adbbd; - --yes-400: #46c4a0; - --yes-500: #13886d; - - --no-100: #ffe4e6; - --no-200: #fecdd3; - --no-300: #fda4af; - --no-400: #fb7185; - --no-500: #e11d48; - - --maybe-100: #fff7d6; - --maybe-200: #fff0b3; - --maybe-300: #ffd64a; - --maybe-400: #ffc220; - --maybe-500: #f9a007; - - /* Highlight (text marker) */ - - --highlight-500: #ffee00; +b { +} - /* GRADIENTS */ +blockquote { + position: relative; + margin-bottom: var(--prose-spacing); + padding-block: var(--blockquote-padding-block); + /* extra inline-start room for the accent bar */ + padding-inline: var(--blockquote-padding-inline); + font-style: italic; + background-color: var(--blockquote-background-color); + border-radius: var(--blockquote-border-radius); + &::before { + content: ""; + position: absolute; + top: 0; + inset-inline-start: 0; + width: var(--blockquote-accent-width); + height: 100%; + border-start-start-radius: var(--blockquote-border-radius); + border-end-start-radius: var(--blockquote-border-radius); + background: var(--blockquote-accent-color); + } - --gradient-primary: linear-gradient( - 90deg, - var(--primary-950) 0%, - var(--primary-400) 100% - ); + p { + &:first-child::before { + content: open-quote; + } + &:last-child { + margin-bottom: 0; + &::after { + content: close-quote; + } + } + } +} - /* BORDERS */ +br { +} - --border-sm: 1px; - --border-md: 2px; - --border-lg: 4px; - --border-xl: 8px; - --border-xxl: 12px; +cite { + font-style: italic; +} - --radius-sm: 3px; - --radius-md: 5px; - --radius-lg: 8px; - --radius-xl: 12px; - --radius-xxl: 16px; - --radius-round: 1e5px; +code, +var, +kbd { + font-family: var(--mono); + font-size: 0.9em; + font-style: normal; + color: var(--text-code-muted-color); +} - /* DROP SHADOWS */ +:is(code, var, kbd):not(h1 *, h2 *, h3 *, h4 *, h5 *, h6 *, pre *) { + padding: 0.15em 0.3em; + color: var(--text-code-color); + background-color: var(--text-code-background-color); + border-radius: var(--radius-sm); +} - --shadow-sm: - 0 1px 3px 0 var(--ui-shadow-color), 0 1px 2px -1px var(--ui-shadow-color); - --shadow-md: - 0 4px 6px -1px var(--ui-shadow-color), 0 2px 4px -2px var(--ui-shadow-color); - --shadow-lg: - 0 8px 13px -3px var(--ui-shadow-color), - 0 4px 6px -4px var(--ui-shadow-color); - --shadow-xl: - 0 20px 20px -5px var(--ui-shadow-color), - 0 8px 10px -6px var(--ui-shadow-color); - --shadow-xxl: - 0px 11px 8px -6px var(--ui-shadow-color), - 0 10px 15px 2px var(--ui-shadow-color); +data { +} - /* OPACITY */ +dl { +} - --o-0: 0; /* overkill for consistency */ - --o-1: 0.2; - --o-2: 0.4; - --o-3: 0.6; - --o-4: 0.8; - --o-5: 1; +dt { + font-weight: var(--bold); +} - /* Z-INDEX */ +dd { +} - --z-bottom: -1000000000; - --z-0: 0; /* overkill for consistency */ - --z-1: 10; - --z-2: 20; - --z-3: 30; - --z-4: 40; - --z-5: 50; - --z-top: 1000000000; +dd + dt { + margin-top: 0.5em; +} - /* TRANSITIONS */ +del { + text-decoration-color: var(--no-500); + text-decoration-style: wavy; +} - --transition: 220ms ease-in-out; - --transition-fast: 100ms ease-in-out; +dfn { } + +em { } -@layer settings{ +/* figcaption and figure are in elements.media.css */ -/* INTERFACE TOKENS */ +/* Technically, headings should be in elements.sectioning but I'm guessing that's where most people would expect this to be */ +h1, +.h1, +h2, +.h2, +h3, +.h3, +h4, +.h4, +h5, +.h5, +h6, +.h6 { + overflow-wrap: break-word; /* Avoid text overflows */ + text-wrap: balance; +} -/* - The decisions layer. Every token here is named for what it's FOR (an - element, a component, or a shared meaning) and answers "what does this - thing use by default". Tokens named for what they ARE (--sm1, --base-500, - --bold) are scale tokens and live in settings.tokens.css. That's the - whole split: a name that mentions a UI thing belongs here; a name that - labels a step on a scale belongs there. +h1, +.h1, +h2, +.h2, +h3, +.h3, +h4, +.h4 { + font-family: var(--heading-font); + font-weight: var(--heading-weight); + letter-spacing: var(--heading-letter-spacing); +} - Values, in order of preference: - 1. Another interface token, when the meaning is shared - (--input-border-color: var(--ui-border-color)). - 2. A scale token, when the value should follow the system scales - (--fieldset-padding: var(--sm3)). - 3. A raw value, only where following the scales would be wrong: - content (separator strings, icon URLs), geometry tuned to one - control (--toggle-width), or element-relative measures that track - the element's own type instead of the page (em heading spacing). - The test: "if a theme retuned the scales, should this follow?" - - Deliberate deviations from these defaults live in a theme file - (see theme.default.css). -*/ +h1, +.h1 { + margin-bottom: var(--heading-spacing-h1); + font-size: var(--heading-font-size-h1); + line-height: var(--heading-line-height-h1); +} -:root { - /* Color scheme (light/dark), toggled by the .theme-light / .theme-dark - classes below. Unrelated to theme files, which are full themes. */ - color-scheme: light dark; +h2, +.h2 { + margin-bottom: var(--heading-spacing-h2); + font-size: var(--heading-font-size-h2); + line-height: var(--heading-line-height-h2); +} - --ui-border-color: light-dark(var(--base-200), var(--base-500)); - /* Also consumed by the --shadow-* scale in settings.tokens.css: the one - reference between the files that runs upward, so shadows can switch - with the color scheme. Raw alpha colors: the palettes have no alpha - steps. */ - --ui-shadow-color: light-dark(rgb(0 0 0 / 0.1), rgb(0 0 0 / 0.6)); +h3, +.h3 { + margin-bottom: var(--heading-spacing-h3); + font-size: var(--heading-font-size-h3); + line-height: var(--heading-line-height-h3); +} - /* Keyboard focus ring (consumed by :focus-visible in global.a11y.css). - Raw 2px on purpose: an accessibility affordance that shouldn't move - when a theme retunes the decorative border scale. */ - --focus-ring-color: light-dark(var(--primary-500), var(--primary-400)); - --focus-ring-width: 2px; - --focus-ring-offset: 2px; +h4, +.h4 { + margin-bottom: var(--heading-spacing-h4); + font-size: var(--heading-font-size-h4); + line-height: var(--heading-line-height-h4); +} - /* Semantic feedback aliases over the raw feedback palettes. - Prefer these in components and themes; a theme can restyle feedback by - overriding the aliases without touching the raw scales. */ - --success-100: var(--yes-100); - --success-200: var(--yes-200); - --success-300: var(--yes-300); - --success-400: var(--yes-400); - --success-500: var(--yes-500); - --danger-100: var(--no-100); - --danger-200: var(--no-200); - --danger-300: var(--no-300); - --danger-400: var(--no-400); - --danger-500: var(--no-500); - --warning-100: var(--maybe-100); - --warning-200: var(--maybe-200); - --warning-300: var(--maybe-300); - --warning-400: var(--maybe-400); - --warning-500: var(--maybe-500); +h5, +.h5 { + margin-bottom: var(--heading-spacing-h5); + font-size: var(--heading-font-size-h5); + line-height: var(--heading-line-height-h5); } -:root.theme-light { - color-scheme: light; +h6, +.h6 { + margin-bottom: var(--heading-spacing-h6); + font-size: var(--heading-font-size-h6); + line-height: var(--heading-line-height-h6); } -:root.theme-dark { - color-scheme: dark; +/* h1—h3 with a h2—h4 subheading right after gets the consecutive margin + (must come after the per-level rules: it ties them on specificity, so + source order decides) */ +:where(h1, h2, h3):has(+ :is(h2, h3, h4)) { + margin-bottom: var(--heading-spacing-consecutive); } -/* HTML ELEMENTS */ +hr { + display: flex; + justify-content: center; + align-items: center; + height: 0; + border-style: solid; + border-width: var(--border-sm) 0 0; + color: var(--ui-border-color); + overflow: visible; + &::after { + content: var(--hr-content); + padding: 0 var(--xs1); + line-height: 1; + letter-spacing: var(--tracking-sm); + background-color: var(--body-background-color); + } +} -:root { - accent-color: var(--primary-500); +:where(hr):has(+ :is(p)) { + margin-bottom: var(--prose-spacing); +} - --body-background-color: light-dark(var(--base-0), var(--base-950)); - --body-line-height: var(--leading-lg); +i { +} - --input-height: var(--md3); - --input-padding: var(--xs3); - --input-border-width: var(--border-sm); - --input-border-color: var(--ui-border-color); - --input-border-radius: var(--radius-md); - --input-border-color-invalid: light-dark( - var(--danger-500), - var(--danger-400) - ); - - /* Gap under a label that precedes its control */ - --label-spacing: var(--xs1); - - --fieldset-padding: var(--sm3); - --fieldset-border-width: var(--border-sm); - --fieldset-border-color: var(--ui-border-color); - --fieldset-border-radius: var(--radius-lg); - - /* meter: low/medium/high map to the even-less-good, suboptimum, and - optimum pseudo-elements */ - --meter-height: var(--sm1); - --meter-border-radius: var(--radius-md); - --meter-track-color: var(--primary-100); - --meter-low-color: var(--danger-400); - --meter-medium-color: var(--warning-400); - --meter-high-color: var(--success-400); - - --progress-height: var(--sm1); - --progress-color: var(--primary-500); - --progress-track-color: var(--primary-100); - --progress-border-radius: var(--radius-md); - - /* select's chevron, applied as a mask painted with the text color; - any url() works here, data URL or file */ - --select-icon-size: var(--sm3); - --select-icon: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%20id='chevron-down'%3E%3Cpath%20d='m6%209%206%206%206-6'/%3E%3C/svg%3E"); - - --dialog-min-width: var(--tera1); - --dialog-max-width: var(--tera3); - --dialog-padding: var(--lg1) var(--md1); - --dialog-border-width: var(--border-sm); - --dialog-border-color: light-dark(var(--base-200), var(--base-800)); - --dialog-background-color: light-dark(var(--base-50), var(--base-900)); - --dialog-border-radius: var(--radius-lg); - --dialog-backdrop-color: var(--base-950); - --dialog-backdrop-opacity: var(--o-4); - - /* details: same surface as dialog by default, on purpose but - independently overridable. Spacing is the gap between an open - summary and its content. */ - --details-padding: var(--sm1); - --details-spacing: var(--xs3); - --details-border-width: var(--border-sm); - --details-border-color: light-dark(var(--base-200), var(--base-800)); - --details-background-color: light-dark(var(--base-50), var(--base-900)); - --details-border-radius: var(--radius-lg); - --details-icon-size: var(--sm3); - /* Marker icon, applied as a mask painted with the text color; any - url() works here, data URL or file */ - --details-icon: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%20id='chevron-down'%3E%3Cpath%20d='m6%209%206%206%206-6'/%3E%3C/svg%3E"); - - --table-padding: var(--xs2) var(--sm1); - --table-border-width: var(--border-sm); - --table-border-color: light-dark(var(--base-100), var(--base-700)); - --table-border-radius: var(--radius-md); - --table-background-color: none; - /* Gap between the table and its caption */ - --table-caption-spacing: var(--xs3); - /* Gap between a figure's content and caption on either side */ - --figcaption-spacing: var(--xs2); - - /* Text */ - - --heading-font: var(--display); - --heading-weight: var(--black); - --heading-letter-spacing: normal; /* (e.g. -0.02em or var(--tracking-sm)) */ - - --heading-font-size-h1: clamp( - var(--display-md), - 1.269rem + 2.682vw, - var(--display-xl) - ); /* 2.074rem → 2.986rem */ - --heading-font-size-h2: clamp( - var(--display-sm), - 1.057rem + 2.235vw, - var(--display-lg) - ); /* 1.728rem → 2.488rem */ - --heading-font-size-h3: clamp( - var(--text-xl), - 0.881rem + 1.865vw, - var(--display-md) - ); /* 1.44rem → 2.074rem */ - --heading-font-size-h4: clamp( - var(--text-lg), - 0.734rem + 1.553vw, - var(--display-sm) - ); /* 1.2rem → 1.728rem */ - --heading-font-size-h5: clamp( - var(--text-lg), - 0.988rem + 0.706vw, - var(--text-xl) - ); /* 1.2rem → 1.44rem */ - --heading-font-size-h6: clamp( - var(--text-md), - 0.824rem + 0.588vw, - var(--text-lg) - ); /* 1rem → 1.2rem */ - - --heading-line-height: var(--leading-sm); - --heading-line-height-h1: var(--heading-line-height); - --heading-line-height-h2: var(--heading-line-height); - --heading-line-height-h3: var(--heading-line-height); - --heading-line-height-h4: var(--leading-md); - --heading-line-height-h5: var(--leading-md); - --heading-line-height-h6: var(--leading-md); - - /* Headings bottom margin */ - --heading-spacing-h1: 0.4em; - --heading-spacing-h2: 0.4em; - --heading-spacing-h3: 0.4em; - --heading-spacing-h4: 0.4em; - --heading-spacing-h5: 0.4em; - --heading-spacing-h6: 0.4em; - /* Any h1 before h2, h2 before h3, h3 before h4. */ - --heading-spacing-consecutive: 0.3em; - - --text-color: light-dark(var(--base-950), var(--base-200)); - --link-font-weight: var(--semi-bold); - --link-color: light-dark(var(--primary-600), var(--primary-400)); - --link-color-hover: var(--primary-500); - - --text-code-color: light-dark(var(--primary-600), var(--primary-400)); - --text-code-background-color: light-dark( - var(--primary-100), - var(--primary-900) - ); - /* when code inline styling doesn't apply (inside headings and pre) */ - --text-code-muted-color: light-dark(var(--base-500), var(--base-300)); - - --pre-border-radius: var(--radius-md); - /* matching the 0.9em of inline code */ - --pre-font-size: 0.9rem; - - --blockquote-padding-block: var(--sm1); - --blockquote-padding-inline: var(--md1) var(--sm3); - --blockquote-background-color: light-dark( - var(--primary-50), - var(--primary-900) - ); - --blockquote-border-radius: var(--radius-md); - --blockquote-accent-width: var(--xs2); - --blockquote-accent-color: linear-gradient( - var(--primary-800), - var(--primary-500) - ); - - /* .prose related stuff in GLOBAL */ +ins { + padding: 0.15em 0.3em; + color: var(--ins-color); + background-color: var(--ins-background-color); + border-radius: var(--radius-sm); + -webkit-text-decoration: none; + text-decoration: none; + &::before { + content: "+ "; + } +} - /* Optional centered label on
, e.g. "***" or a dingbat */ - --hr-content: ""; +mark { + padding: 0.15em 0.5em; + background: var(--marker-color); + border-radius: 1em 0; +} - /* ins: background stays light in both light/dark modes */ - --ins-color: var(--base-950); - --ins-background-color: var(--success-200); +menu { +} - --marker-color: var(--highlight-500); +:where(ol, ul) { + list-style-type: none; + padding: 0; +} - --selection-color: light-dark(var(--base-950), var(--base-0)); - --selection-background-color: light-dark( - var(--primary-200), - var(--primary-700) - ); +li { } -/* GLOBAL */ +p { +} -:root { - /* Mobile-first: tighter gutters on small screens, 24px from --md up */ - --grid-column-gap: var(--sm1); - --grid-row-gap: var(--sm1); - @media (width >= 768px) { - --grid-column-gap: var(--sm3); - --grid-row-gap: var(--sm3); - } +pre { + font-family: var(--mono); + font-size: var(--pre-font-size); + white-space: pre-wrap; /* override overflow default */ + border-radius: var(--pre-border-radius); +} - --wrap-spacing: var(--sm1); - --wrap-md-spacing: var(--sm3); - --wrap-lg-spacing: 0; - /* Widths are measures: ch tracks the text size, so raw on purpose. */ - --wrap-width-sm: minmax(0, 55ch); - --wrap-width-md: minmax(0, 70ch); - --wrap-width-lg: minmax(0, 900px); - --wrap-width: var(--wrap-width-md); +q { + /* see: elements.text.quotes.css */ + font-style: italic; +} - --layout-content-width: 70ch; - --layout-aside-width: 245px; - --layout-toc-width: 1fr; +s { + text-decoration-color: light-dark(var(--base-950), var(--base-50)); + text-decoration-style: wavy; +} - --prose-spacing: var(--sm1); +samp { } -/* COMPONENTS */ +small { +} -/* Badge */ +strong { +} -:root { - --badge-font-size: var(--text-sm); - --badge-border-radius: var(--radius-md); - --badge-color: var(--base-0); - --badge-background-color: light-dark(var(--base-700), var(--base-600)); +sub { + line-height: 1; +} - --badge-primary-color: var(--base-0); - --badge-primary-background-color: light-dark( - var(--primary-600), - var(--primary-500) - ); - --badge-success-color: light-dark(var(--success-500), var(--base-0)); - --badge-success-background-color: light-dark( - var(--success-100), - var(--success-500) - ); - --badge-danger-color: light-dark(var(--danger-500), var(--base-0)); - --badge-danger-background-color: light-dark( - var(--danger-100), - var(--danger-500) - ); - --badge-warning-color: light-dark(var(--warning-500), var(--base-950)); - --badge-warning-background-color: light-dark( - var(--warning-100), - var(--warning-500) - ); +sup { + line-height: 1; } -/* Button */ -/* (Button defaults and primary button colors) */ +time { +} +} +@layer elements{ -:root { - /* Optical minimums, deliberately off the spacing scale */ - --bt-min-width: 101px; - --bt-min-width-md: 123px; - --bt-min-width-lg: 133px; +/* + This is what user agents are supposed to be doing for quotes, + according to https://html.spec.whatwg.org/multipage/rendering.html#quotes - --bt-font-size: var(--text-sm); - --bt-font-size-lg: var(--text-md); - --bt-font-weight: var(--semi-bold); + https://github.com/jensimmons/cssremedy/blob/master/css/quotes.css +*/ - --bt-color: var(--text-color); - --bt-color-hover: light-dark(var(--text-color), var(--base-0)); +:root { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(af), :not(:lang(af)) > :lang(af) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(ak), :not(:lang(ak)) > :lang(ak) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(asa), :not(:lang(asa)) > :lang(asa) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(az), :not(:lang(az)) > :lang(az) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(bem), :not(:lang(bem)) > :lang(bem) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(bez), :not(:lang(bez)) > :lang(bez) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(bn), :not(:lang(bn)) > :lang(bn) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(brx), :not(:lang(brx)) > :lang(brx) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(cgg), :not(:lang(cgg)) > :lang(cgg) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(chr), :not(:lang(chr)) > :lang(chr) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(cy), :not(:lang(cy)) > :lang(cy) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(da), :not(:lang(da)) > :lang(da) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(dav), :not(:lang(dav)) > :lang(dav) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(dje), :not(:lang(dje)) > :lang(dje) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(dz), :not(:lang(dz)) > :lang(dz) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(ebu), :not(:lang(ebu)) > :lang(ebu) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(ee), :not(:lang(ee)) > :lang(ee) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(en), :not(:lang(en)) > :lang(en) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(fil), :not(:lang(fil)) > :lang(fil) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(fo), :not(:lang(fo)) > :lang(fo) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(ga), :not(:lang(ga)) > :lang(ga) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(gd), :not(:lang(gd)) > :lang(gd) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(gl), :not(:lang(gl)) > :lang(gl) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(gu), :not(:lang(gu)) > :lang(gu) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(guz), :not(:lang(guz)) > :lang(guz) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(ha), :not(:lang(ha)) > :lang(ha) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(hi), :not(:lang(hi)) > :lang(hi) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(id), :not(:lang(id)) > :lang(id) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(ig), :not(:lang(ig)) > :lang(ig) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(jmc), :not(:lang(jmc)) > :lang(jmc) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(kam), :not(:lang(kam)) > :lang(kam) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(kde), :not(:lang(kde)) > :lang(kde) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(kea), :not(:lang(kea)) > :lang(kea) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(khq), :not(:lang(khq)) > :lang(khq) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(ki), :not(:lang(ki)) > :lang(ki) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(kln), :not(:lang(kln)) > :lang(kln) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(km), :not(:lang(km)) > :lang(km) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(kn), :not(:lang(kn)) > :lang(kn) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(ko), :not(:lang(ko)) > :lang(ko) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(ksb), :not(:lang(ksb)) > :lang(ksb) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(lg), :not(:lang(lg)) > :lang(lg) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(ln), :not(:lang(ln)) > :lang(ln) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(lo), :not(:lang(lo)) > :lang(lo) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(lrc), :not(:lang(lrc)) > :lang(lrc) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(lu), :not(:lang(lu)) > :lang(lu) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(luo), :not(:lang(luo)) > :lang(luo) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(lv), :not(:lang(lv)) > :lang(lv) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(mas), :not(:lang(mas)) > :lang(mas) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(mer), :not(:lang(mer)) > :lang(mer) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(mfe), :not(:lang(mfe)) > :lang(mfe) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(mgo), :not(:lang(mgo)) > :lang(mgo) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(ml), :not(:lang(ml)) > :lang(ml) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(mn), :not(:lang(mn)) > :lang(mn) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(mr), :not(:lang(mr)) > :lang(mr) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(ms), :not(:lang(ms)) > :lang(ms) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(mt), :not(:lang(mt)) > :lang(mt) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(my), :not(:lang(my)) > :lang(my) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(naq), :not(:lang(naq)) > :lang(naq) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(nd), :not(:lang(nd)) > :lang(nd) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(ne), :not(:lang(ne)) > :lang(ne) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(nus), :not(:lang(nus)) > :lang(nus) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(nyn), :not(:lang(nyn)) > :lang(nyn) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(pa), :not(:lang(pa)) > :lang(pa) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(pt), :not(:lang(pt)) > :lang(pt) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(rof), :not(:lang(rof)) > :lang(rof) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(rwk), :not(:lang(rwk)) > :lang(rwk) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(saq), :not(:lang(saq)) > :lang(saq) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(sbp), :not(:lang(sbp)) > :lang(sbp) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(seh), :not(:lang(seh)) > :lang(seh) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(ses), :not(:lang(ses)) > :lang(ses) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(si), :not(:lang(si)) > :lang(si) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(so), :not(:lang(so)) > :lang(so) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(sw), :not(:lang(sw)) > :lang(sw) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(ta), :not(:lang(ta)) > :lang(ta) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(te), :not(:lang(te)) > :lang(te) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(teo), :not(:lang(teo)) > :lang(teo) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(th), :not(:lang(th)) > :lang(th) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(to), :not(:lang(to)) > :lang(to) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(tr), :not(:lang(tr)) > :lang(tr) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(twq), :not(:lang(twq)) > :lang(twq) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(tzm), :not(:lang(tzm)) > :lang(tzm) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(uz-Cyrl), :not(:lang(uz-Cyrl)) > :lang(uz-Cyrl) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(vai), :not(:lang(vai)) > :lang(vai) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(vai-Latn), :not(:lang(vai-Latn)) > :lang(vai-Latn) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(vi), :not(:lang(vi)) > :lang(vi) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(vun), :not(:lang(vun)) > :lang(vun) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(xog), :not(:lang(xog)) > :lang(xog) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(yo), :not(:lang(yo)) > :lang(yo) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(yue-Hans), :not(:lang(yue-Hans)) > :lang(yue-Hans) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(zh), :not(:lang(zh)) > :lang(zh) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +:root:lang(zu), :not(:lang(zu)) > :lang(zu) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ - --bt-background-color: light-dark(var(--base-0), var(--base-800)); - --bt-background-color-hover: light-dark(var(--base-50), var(--base-900)); - --bt-border-color: var(--ui-border-color); - --bt-border-width: var(--border-sm); - --bt-border-radius: var(--radius-lg); - --bt-border-radius-lg: var(--radius-xl); +:root:lang(uz), :not(:lang(uz)) > :lang(uz) { quotes: '\201c' '\201d' '\2019' '\2018' } /* “ ” ’ ‘ */ - --bt-outline-color-hover: light-dark(var(--base-950), var(--base-0)); - --bt-outline-background-color-hover: light-dark( - rgb(0 0 0 / 0.1), - rgb(255 255 255 / 0.1) - ); - --bt-outline-border-color: light-dark(var(--base-950), var(--base-0)); - --bt-outline-border-color-hover: light-dark(var(--base-950), var(--base-0)); - --bt-primary-color: var(--base-0); - --bt-primary-color-hover: var(--base-0); - --bt-primary-background-color: var(--primary-600); - --bt-primary-background-color-hover: var(--primary-500); - --bt-primary-border-color: var(--primary-600); - --bt-primary-border-color-hover: var(--primary-600); -} +:root:lang(eu), :not(:lang(eu)) > :lang(eu) { quotes: '\201c' '\201d' '\201c' '\201d' } /* “ ” “ ” */ +:root:lang(tk), :not(:lang(tk)) > :lang(tk) { quotes: '\201c' '\201d' '\201c' '\201d' } /* “ ” “ ” */ -/* Avatar */ -:root { - --avatar-color: var(--base-0); - --avatar-background-color: var(--base-400); - --avatar-border-color: light-dark(var(--base-0), var(--base-500)); - --avatar-border-width: var(--border-sm); - --avatar-radius: var(--radius-round); - --avatar-status-dot-color-offline: var(--base-300); - --avatar-status-dot-color-online: var(--yes-400); -} +:root:lang(ar), :not(:lang(ar)) > :lang(ar) { quotes: '\201d' '\201c' '\2019' '\2018' } /* ” “ ’ ‘ */ +:root:lang(ur), :not(:lang(ur)) > :lang(ur) { quotes: '\201d' '\201c' '\2019' '\2018' } /* ” “ ’ ‘ */ -/* Banner */ -:root { - --banner-color: var(--base-0); - --banner-background-color: light-dark(var(--primary-600), var(--primary-800)); -} +:root:lang(fi), :not(:lang(fi)) > :lang(fi) { quotes: '\201d' '\201d' '\2019' '\2019' } /* ” ” ’ ’ */ +:root:lang(he), :not(:lang(he)) > :lang(he) { quotes: '\201d' '\201d' '\2019' '\2019' } /* ” ” ’ ’ */ +:root:lang(lag), :not(:lang(lag)) > :lang(lag) { quotes: '\201d' '\201d' '\2019' '\2019' } /* ” ” ’ ’ */ +:root:lang(rn), :not(:lang(rn)) > :lang(rn) { quotes: '\201d' '\201d' '\2019' '\2019' } /* ” ” ’ ’ */ +:root:lang(sn), :not(:lang(sn)) > :lang(sn) { quotes: '\201d' '\201d' '\2019' '\2019' } /* ” ” ’ ’ */ +:root:lang(sv), :not(:lang(sv)) > :lang(sv) { quotes: '\201d' '\201d' '\2019' '\2019' } /* ” ” ’ ’ */ -/* Breadcrumbs */ -:root { - --breadcrumbs-separator: "/"; - --breadcrumbs-separator-color: light-dark(var(--base-300), var(--base-600)); - --breadcrumbs-color: light-dark(var(--base-500), var(--base-400)); - --breadcrumbs-color-current: var(--text-color); -} +:root:lang(sr), :not(:lang(sr)) > :lang(sr) { quotes: '\201e' '\201c' '\2018' '\2018' } /* „ “ ‘ ‘ */ +:root:lang(sr-Latn), :not(:lang(sr-Latn)) > :lang(sr-Latn) { quotes: '\201e' '\201c' '\2018' '\2018' } /* „ “ ‘ ‘ */ -/* Card */ -:root { - --card-spacing: var(--sm3); - --card-color: var(--text-color); - --card-secondary-text-color: light-dark(var(--base-400), var(--base-500)); - --card-bg-color: light-dark(var(--base-100), var(--base-900)); - --card-border-radius: var(--radius-lg); - --card-border-color: var(--ui-border-color); - --card-border-width: var(--border-sm); - --card-shadow: var(--shadow-md); - --card-shadow-hover: var(--shadow-xl); - --card-loading-bg: light-dark(var(--base-200), var(--base-900)); - /* Default media aspect ratio; the Card component pins it inline only - when its aspectRatio prop is passed */ - --card-aspect-ratio: var(--ar-golden); -} +:root:lang(bg), :not(:lang(bg)) > :lang(bg) { quotes: '\201e' '\201c' '\201e' '\201c' } /* „ “ „ “ */ +:root:lang(lt), :not(:lang(lt)) > :lang(lt) { quotes: '\201e' '\201c' '\201e' '\201c' } /* „ “ „ “ */ -/* Toggle */ -:root { - /* Drawn-control geometry, deliberately off the scales */ - --toggle-width: 50px; - --toggle-height: 28px; - --toggle-border-width: 2px; - --toggle-track-color: light-dark(var(--base-300), var(--base-700)); - --toggle-track-color-checked: var(--yes-400); - --toggle-thumb-color: var(--body-background-color); -} +:root:lang(bs-Cyrl), :not(:lang(bs-Cyrl)) > :lang(bs-Cyrl) { quotes: '\201e' '\201c' '\201a' '\2018' } /* „ “ ‚ ‘ */ +:root:lang(cs), :not(:lang(cs)) > :lang(cs) { quotes: '\201e' '\201c' '\201a' '\2018' } /* „ “ ‚ ‘ */ +:root:lang(cs), :not(:lang(cs)) > :lang(cs) { quotes: '\201e' '\201c' '\201a' '\2018' } /* „ “ ‚ ‘ */ +:root:lang(de), :not(:lang(de)) > :lang(de) { quotes: '\201e' '\201c' '\201a' '\2018' } /* „ “ ‚ ‘ */ +:root:lang(dsb), :not(:lang(dsb)) > :lang(dsb) { quotes: '\201e' '\201c' '\201a' '\2018' } /* „ “ ‚ ‘ */ +:root:lang(et), :not(:lang(et)) > :lang(et) { quotes: '\201e' '\201c' '\201a' '\2018' } /* „ “ ‚ ‘ */ +:root:lang(hr), :not(:lang(hr)) > :lang(hr) { quotes: '\201e' '\201c' '\201a' '\2018' } /* „ “ ‚ ‘ */ +:root:lang(hsb), :not(:lang(hsb)) > :lang(hsb) { quotes: '\201e' '\201c' '\201a' '\2018' } /* „ “ ‚ ‘ */ +:root:lang(is), :not(:lang(is)) > :lang(is) { quotes: '\201e' '\201c' '\201a' '\2018' } /* „ “ ‚ ‘ */ +:root:lang(lb), :not(:lang(lb)) > :lang(lb) { quotes: '\201e' '\201c' '\201a' '\2018' } /* „ “ ‚ ‘ */ +:root:lang(luy), :not(:lang(luy)) > :lang(luy) { quotes: '\201e' '\201c' '\201a' '\2018' } /* „ “ ‚ ‘ */ +:root:lang(mk), :not(:lang(mk)) > :lang(mk) { quotes: '\201e' '\201c' '\201a' '\2018' } /* „ “ ‚ ‘ */ +:root:lang(sk), :not(:lang(sk)) > :lang(sk) { quotes: '\201e' '\201c' '\201a' '\2018' } /* „ “ ‚ ‘ */ +:root:lang(sl), :not(:lang(sl)) > :lang(sl) { quotes: '\201e' '\201c' '\201a' '\2018' } /* „ “ ‚ ‘ */ -/* FAQ */ -:root { - --faq-spacing: var(--xs3); -} +:root:lang(ka), :not(:lang(ka)) > :lang(ka) { quotes: '\201e' '\201c' '\00ab' '\00bb' } /* „ “ « » */ -/* Field */ -:root { - --field-spacing: var(--xs1); - --field-hint-color: light-dark(var(--base-400), var(--base-500)); - --field-error-color: light-dark(var(--danger-500), var(--danger-300)); - /*Field's hint/error position. Use `static` to reflow under, use `absolute` - (and leave enough space below) if you don't want any shift on errors */ - --field-message-position: static; -} +:root:lang(bs), :not(:lang(bs)) > :lang(bs) { quotes: '\201e' '\201d' '\2018' '\2019' } /* „ ” ‘ ’ */ -/* FeatureItem */ -:root { - --featureItem-icon-box-size: var(--lg3); - --featureItem-icon-size: var(--sm3); - --featureItem-icon-color: light-dark(var(--primary-600), var(--primary-300)); - --featureItem-icon-background-color: light-dark( - var(--primary-100), - var(--primary-900) - ); - --featureItem-icon-border-radius: var(--radius-lg); -} +:root:lang(agq), :not(:lang(agq)) > :lang(agq) { quotes: '\201e' '\201d' '\201a' '\2019' } /* „ ” ‚ ’ */ +:root:lang(ff), :not(:lang(ff)) > :lang(ff) { quotes: '\201e' '\201d' '\201a' '\2019' } /* „ ” ‚ ’ */ -/* Footer */ -:root { - --footer-background-color: light-dark(var(--primary-950), var(--base-950)); - --footer-text-color: light-dark(var(--base-0), var(--base-200)); - --footer-border-width: var(--border-md); - --footer-border-color: light-dark(transparent, var(--base-700)); - --footer-link-color: light-dark(var(--base-0), var(--base-200)); - --footer-link-color-hover: light-dark(var(--primary-200), var(--base-0)); -} +:root:lang(nmg), :not(:lang(nmg)) > :lang(nmg) { quotes: '\201e' '\201d' '\00ab' '\00bb' } /* „ ” « » */ +:root:lang(ro), :not(:lang(ro)) > :lang(ro) { quotes: '\201e' '\201d' '\00ab' '\00bb' } /* „ ” « » */ +:root:lang(pl), :not(:lang(pl)) > :lang(pl) { quotes: '\201e' '\201d' '\00ab' '\00bb' } /* „ ” « » */ -/* Header */ -:root { - --header-height: var(--xl1); - --header-padding: var(--sm1); - @media (width >= 768px) { - --header-height: var(--xl2); - --header-padding: var(--sm3); - } - --header-background-color: light-dark(var(--base-0), var(--base-950)); +:root:lang(hu), :not(:lang(hu)) > :lang(hu) { quotes: '\201e' '\201d' '\00bb' '\00ab' } /* „ ” » « */ - /* The mobile menu is an always-dark by design */ - --header-menu-background-color: var(--base-950); - --header-menu-color: var(--base-0); - --header-menu-color-current: var(--primary-400); - --header-menu-secondary-color: var(--base-300); - --header-menu-border-color: var(--base-500); -} -/* Hero */ +:root:lang(nl), :not(:lang(nl)) > :lang(nl) { quotes: '\2018' '\2019' '\201c' '\201d' } /* ‘ ’ “ ” */ +:root:lang(ti-ER), :not(:lang(ti-ER)) > :lang(ti-ER) { quotes: '\2018' '\2019' '\201c' '\201d' } /* ‘ ’ “ ” */ -:root { - --hero-radius: var(--radius-xl); - --hero-content-padding: var(--md3); - --hero-actions-spacing: var(--lg3); - --hero-pagination-dot: var(--sm1); - --hero-pagination-dot-color: var(--base-0); - --hero-pagination-dot-active-color: var(--primary-600); - --hero-pagination-opacity: var(--o-4); -} -/* Pagination */ - -:root { - --pagination-size: var(--md3); - --pagination-border-radius: var(--radius-md); - --pagination-color: var(--text-color); - --pagination-color-current: var(--base-0); - --pagination-background-color-current: light-dark( - var(--primary-600), - var(--primary-500) - ); - --pagination-background-color-hover: light-dark( - var(--base-100), - var(--base-800) - ); -} +:root:lang(dua), :not(:lang(dua)) > :lang(dua) { quotes: '\00ab' '\00bb' '\2018' '\2019' } /* « » ‘ ’ */ +:root:lang(ksf), :not(:lang(ksf)) > :lang(ksf) { quotes: '\00ab' '\00bb' '\2018' '\2019' } /* « » ‘ ’ */ +:root:lang(rw), :not(:lang(rw)) > :lang(rw) { quotes: '\00ab' '\00bb' '\2018' '\2019' } /* « » ‘ ’ */ +:root:lang(nn), :not(:lang(nn)) > :lang(nn) { quotes: '\00ab' '\00bb' '\2018' '\2019' } /* « » ‘ ’ */ +:root:lang(nb), :not(:lang(nb)) > :lang(nb) { quotes: '\00ab' '\00bb' '\2018' '\2019' } /* « » ‘ ’ */ -/* PrevNext */ -:root { - --prevNext-border-color: var(--ui-border-color); - --prevNext-border-radius: var(--radius-lg); - --prevNext-border-color-hover: var(--link-color); - --prevNext-label-color: light-dark(var(--base-400), var(--base-500)); -} +:root:lang(ast), :not(:lang(ast)) > :lang(ast) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ +:root:lang(bm), :not(:lang(bm)) > :lang(bm) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ +:root:lang(br), :not(:lang(br)) > :lang(br) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ +:root:lang(ca), :not(:lang(ca)) > :lang(ca) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ +:root:lang(dyo), :not(:lang(dyo)) > :lang(dyo) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ +:root:lang(el), :not(:lang(el)) > :lang(el) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ +:root:lang(es), :not(:lang(es)) > :lang(es) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ +:root:lang(ewo), :not(:lang(ewo)) > :lang(ewo) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ +:root:lang(mg), :not(:lang(mg)) > :lang(mg) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ +:root:lang(mua), :not(:lang(mua)) > :lang(mua) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ +:root:lang(sg), :not(:lang(sg)) > :lang(sg) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ +:root:lang(it), :not(:lang(it)) > :lang(it) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ +:root:lang(kab), :not(:lang(kab)) > :lang(kab) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ +:root:lang(kk), :not(:lang(kk)) > :lang(kk) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ +:root:lang(pt-PT), :not(:lang(pt-PT)) > :lang(pt-PT) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ +:root:lang(nnh), :not(:lang(nnh)) > :lang(nnh) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ +:root:lang(sq), :not(:lang(sq)) > :lang(sq) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ -/* Notice */ -:root { - --notice-spacing: var(--sm1); - --notice-text-color: light-dark(var(--base-950), var(--base-0)); - --notice-background-color: light-dark(var(--base-50), var(--base-800)); - --notice-border-color: light-dark(var(--base-200), var(--base-500)); - --notice-border-width: var(--border-sm); - --notice-border-radius: var(--radius-lg); -} +:root:lang(bas), :not(:lang(bas)) > :lang(bas) { quotes: '\00ab' '\00bb' '\201e' '\201c' } /* « » „ “ */ +:root:lang(be), :not(:lang(be)) > :lang(be) { quotes: '\00ab' '\00bb' '\201e' '\201c' } /* « » „ “ */ +:root:lang(ky), :not(:lang(ky)) > :lang(ky) { quotes: '\00ab' '\00bb' '\201e' '\201c' } /* « » „ “ */ +:root:lang(sah), :not(:lang(sah)) > :lang(sah) { quotes: '\00ab' '\00bb' '\201e' '\201c' } /* « » „ “ */ +:root:lang(ru), :not(:lang(ru)) > :lang(ru) { quotes: '\00ab' '\00bb' '\201e' '\201c' } /* « » „ “ */ +:root:lang(uk), :not(:lang(uk)) > :lang(uk) { quotes: '\00ab' '\00bb' '\201e' '\201c' } /* « » „ “ */ -/* Pricing */ -:root { - --pricingCard-highlight-border-color: light-dark( - var(--primary-600), - var(--primary-400) - ); - --pricingCard-check-color: light-dark(var(--success-500), var(--success-400)); -} +:root:lang(zgh), :not(:lang(zgh)) > :lang(zgh) { quotes: '\00ab' '\00bb' '\201e' '\201d' } /* « » „ ” */ +:root:lang(shi), :not(:lang(shi)) > :lang(shi) { quotes: '\00ab' '\00bb' '\201e' '\201d' } /* « » „ ” */ +:root:lang(shi-Latn), :not(:lang(shi-Latn)) > :lang(shi-Latn) { quotes: '\00ab' '\00bb' '\201e' '\201d' } /* « » „ ” */ -/* Read Progress Bar */ -:root { - --readProgressBar-height: var(--xs1); - --readProgressBar-color: linear-gradient( - 90deg, - var(--primary-600) 0%, - var(--primary-400) 100% - ); -} +:root:lang(am), :not(:lang(am)) > :lang(am) { quotes: '\00ab' '\00bb' '\2039' '\203a' } /* « » ‹ › */ +:root:lang(az-Cyrl), :not(:lang(az-Cyrl)) > :lang(az-Cyrl) { quotes: '\00ab' '\00bb' '\2039' '\203a' } /* « » ‹ › */ +:root:lang(fa), :not(:lang(fa)) > :lang(fa) { quotes: '\00ab' '\00bb' '\2039' '\203a' } /* « » ‹ › */ +:root:lang(fr-CH), :not(:lang(fr-CH)) > :lang(fr-CH) { quotes: '\00ab' '\00bb' '\2039' '\203a' } /* « » ‹ › */ +:root:lang(gsw), :not(:lang(gsw)) > :lang(gsw) { quotes: '\00ab' '\00bb' '\2039' '\203a' } /* « » ‹ › */ +:root:lang(jgo), :not(:lang(jgo)) > :lang(jgo) { quotes: '\00ab' '\00bb' '\2039' '\203a' } /* « » ‹ › */ +:root:lang(kkj), :not(:lang(kkj)) > :lang(kkj) { quotes: '\00ab' '\00bb' '\2039' '\203a' } /* « » ‹ › */ +:root:lang(mzn), :not(:lang(mzn)) > :lang(mzn) { quotes: '\00ab' '\00bb' '\2039' '\203a' } /* « » ‹ › */ -/* Section */ -:root { - --section-spacing: var(--xl3); - --section-header-spacing: var(--lg3); - --section-eyebrow-color: light-dark(var(--primary-600), var(--primary-400)); - --section-lede-color: light-dark(var(--base-500), var(--base-400)); - --section-filled-background-color: light-dark( - var(--base-50), - var(--base-900) - ); - --section-primary-background-color: light-dark( - var(--primary-600), - var(--primary-900) - ); - --section-primary-text-color: var(--base-0); - --section-primary-link-color: var(--primary-100); - --section-primary-link-color-hover: var(--base-0); - --section-primary-eyebrow-color: var(--primary-200); - --section-primary-lede-color: var(--primary-100); -} +:root:lang(fr), :not(:lang(fr)) > :lang(fr) { quotes: '\00ab' '\00bb' '\00ab' '\00bb' } /* « » « » */ +:root:lang(hy), :not(:lang(hy)) > :lang(hy) { quotes: '\00ab' '\00bb' '\00ab' '\00bb' } /* « » « » */ +:root:lang(yav), :not(:lang(yav)) > :lang(yav) { quotes: '\00ab' '\00bb' '\00ab' '\00bb' } /* « » « » */ -/* Testimonial */ -:root { - --testimonial-role-color: light-dark(var(--base-400), var(--base-500)); +:root:lang(ja), :not(:lang(ja)) > :lang(ja) { quotes: '\300c' '\300d' '\300e' '\300f' } /* 「 」 『 』 */ +:root:lang(yue), :not(:lang(yue)) > :lang(yue) { quotes: '\300c' '\300d' '\300e' '\300f' } /* 「 」 『 』 */ +:root:lang(zh-Hant), :not(:lang(zh-Hant)) > :lang(zh-Hant) { quotes: '\300c' '\300d' '\300e' '\300f' } /* 「 」 『 』 */ } +@layer elements{ -/* Tags */ +/* ELEMENTS MEDIA/EMBEDDED */ -:root { - --tags-padding: var(--xs2); - --tags-font-size: var(--text-sm); - --tags-color: light-dark(var(--base-500), var(--base-400)); - --tags-background-color: light-dark(var(--base-100), var(--base-800)); - --tags-background-color-hover: light-dark(var(--base-200), var(--base-950)); - --tags-radius: var(--radius-md); +/* better media defaults */ +audio, +canvas, +embed, +iframe, +img, +object, +picture, +svg, +video { + display: block; + vertical-align: middle; /* removes strange space-below if display changes */ + max-width: 100%; } -/* Tiles has no tokens here: its column count is set by container queries in - component.tiles.css since custom properties don't work inside @container. -*/ - -/* TOC */ +img, +svg, +video, +canvas { + height: auto; /* maintain intrinsic aspect ratios when `max-width` is applied. */ +} -:root { - --toc-color: var(--link-color); - --toc-color-hover: var(--link-color-hover); - --toc-spacing: var(--xs1); - --toc-indentation: var(--xs3); - --toc-icon-size: var(--sm1); +audio { + width: 100%; /* remove default 300px */ + max-width: var(--tera1); } + +audio:not([controls]) { + display: none; } -/* - No theme is imported here, ever: the framework only declares the empty - `theme` slot above. A theme (theme.*.css) is part of YOUR css: a swappable - theme of token overrides plus optional style rules that you activate, at - most one, from your own entry point (see _global.css for this site's). - Theme files self-layer (@layer theme inside the file), so wherever that - import sits it lands in this slot. - None imported = the default look (settings.* holds every default). -*/ +canvas { +} -/* Reset & Normalize */ +figcaption { + font-style: italic; + font-size: var(--text-sm); +} -@layer base{ +figure { + /* caption at bottom or top */ + &:has(* + figcaption) { + figcaption { + margin-top: var(--figcaption-spacing); + } + } + &:has(figcaption + *) { + figcaption { + margin-bottom: var(--figcaption-spacing); + } + } +} -/* RESET */ +iframe { + border: var(--border-sm) solid var(--ui-border-color); +} -*, -*::before, -*::after { - box-sizing: border-box; +img { } -/* -Immediately jump any animation to the end point -Remove transitions & fixed background attachment -*/ -@media (prefers-reduced-motion: reduce) { - *, - ::before, - ::after { - animation-delay: -1ms !important; - animation-duration: 1ms !important; - animation-iteration-count: 1 !important; - background-attachment: initial !important; - scroll-behavior: auto !important; - transition-delay: 0s !important; - transition-duration: 0s !important; - } +picture { } -:where(:not(dialog)) { - margin: 0; +svg { } -/* Allow percentage-based heights */ -/* See elements.sectioning.css for default body styling */ -html, -body { - min-height: 100%; +video { } } - -/* Global styles for HTML elements and their abstractions */ -/* https://developer.mozilla.org/en-US/docs/Web/HTML/Element */ @layer elements{ -/* SECTIONING ROOT */ +/* ELEMENTS TABLE */ -body { - /* line-sizing is a CSSWG draft with no browser support yet; kept as intent - for consistent line-spacing once it ships. */ - line-sizing: normal; - /* https://kilianvalkhof.com/2022/css-html/your-css-reset-needs-text-size-adjust-probably/ */ - -webkit-text-size-adjust: none; - -moz-text-size-adjust: none; - text-size-adjust: none; - background-color: var(--body-background-color); - color: var(--text-color); - font-family: var(--text); - line-height: var(--body-line-height); +caption { + caption-side: bottom; + margin-top: var(--table-caption-spacing); + font-size: var(--text-sm); +} - /* for elements like dialog etc. that require scrolling turned off */ - &:has(.body-is-locked) { - overflow: hidden; - } +colgroup { } -/* CONTENT SECTIONING ELEMENTS */ +table { + border-spacing: 0; + border: var(--table-border-width) solid var(--table-border-color); + border-radius: var(--table-border-radius); + background-color: var(--table-background-color); +} -address { - /* moved to elements.text.css where most people would assume it is */ +th, +td { + text-align: start; + padding: var(--table-padding); + border-bottom: var(--table-border-width) solid var(--table-border-color); + border-inline-start: var(--table-border-width) solid var(--table-border-color); } -article { +tr { + th:first-child, + td:first-child { + border-inline-start-width: 0; + } } -aside { +thead { } -footer { +tbody { + tr:last-child { + th, + td { + border-bottom-width: 0; + } + } } -header { +tfoot { + th, + td { + border-top: var(--table-border-width) solid var(--table-border-color); + border-bottom-width: 0; + } +} } +@layer elements{ -/* Technically headings (h1, h2, h3, etc.) should be here, but I think it makes more sense to keep them in the elements.text file */ +/* ELEMENTS FORM */ -hgroup { +::placeholder { + opacity: var(--o-4); } -main { +/* Remove built-in form typography styles */ +input, +button, +textarea, +select { + font: inherit; + color: var(--text-color); } -nav { +button { + color: var(--text-color); } -section { +datalist { } -search { -} -} -@layer elements{ +fieldset { + border: var(--fieldset-border-width) solid var(--fieldset-border-color); + border-radius: var(--fieldset-border-radius); + padding: var(--fieldset-padding); -/* ELEMENTS TEXT */ + ul:has([type="checkbox"], [type="radio"]) { + padding-inline-start: 0; + } -::selection { - color: var(--selection-color); - background-color: var(--selection-background-color); + > [aria-hidden] { + /* legend replacement */ + margin-bottom: var(--sm3); + font-size: var(--text-lg); + grid-column: 1 / -1; + } } -:where(a, u, ins, abbr) { - text-underline-offset: 2px; +/* Only flag fields the user has actually interacted with */ +:is(input, select, textarea):user-invalid { + border-color: var(--input-border-color-invalid); } -a { - font-weight: var(--link-font-weight); - color: var(--link-color); - &:where(:hover) { - color: var(--link-color-hover); - -webkit-text-decoration: none; - text-decoration: none; +input { + &:where(:not([type="checkbox"], [type="radio"])) { + height: var(--input-height); + } + &:where( + :not([type="color"], [type="file"], [type="reset"], [type="submit"]) + ) { + padding: var(--input-padding); + } + &:where(:not([type="color"])) { + border-radius: var(--input-border-radius); + } + &:where(:not([type="file"])) { + border: var(--input-border-width) solid var(--input-border-color); + } + &[type="file"] { + width: 100%; + accent-color: var(--text-color); + } + &[type="number"] { + padding-inline-end: var(--xs1); } } -address { - width: max-content; - max-width: 100%; - padding: var(--sm1) var(--sm3); - font-style: normal; - background-color: light-dark(var(--base-50), var(--base-900)); - border: var(--xs2) solid transparent; - border-image: 8 - repeating-linear-gradient( - -45deg, - var(--no-500) 0, - var(--no-500) var(--xs2), - transparent 0, - transparent calc(var(--xs2) * 2), - var(--primary-500) 0, - var(--primary-500) calc(var(--xs2) * 3), - transparent 0, - transparent calc(var(--xs2) * 4) - ); -} - -abbr { - position: relative; - cursor: help; - &:after { - position: relative; - top: calc(var(--xs1) * -1); - width: var(--sm1); - height: var(--sm1); - display: inline-block; - content: ""; - background: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%20id='circle-help'%3E%3Ccircle%20cx='12'%20cy='12'%20r='10'/%3E%3Cpath%20d='M9.09%209a3%203%200%200%201%205.83%201c0%202-3%203-3%203'/%3E%3Cpath%20d='M12%2017h.01'/%3E%3C/svg%3E"); - background-size: contain; - } - &:hover:before { - width: max-content; - max-width: 400px; - position: absolute; - left: 50%; /* deliberately physical: symmetric centering, paired with translate(-50%) */ - padding: var(--xs1) var(--xs3); - content: attr(title); - color: var(--base-0); - background-color: var(--base-900); - opacity: var(--o-4); - border-radius: var(--radius-sm); - transform: translate(-50%, -2em); +label { + display: block; + &:has(+ :is(input, select, textarea)) { + margin-bottom: var(--label-spacing); } } -b { +legend { + /* Visually hidden */ + /* replaced by fieldset > [aria-hidden] above */ + position: absolute; + overflow: hidden; + clip: rect(0 0 0 0); + clip-path: inset(50%); + width: 1px; + height: 1px; + white-space: nowrap; } -blockquote { - position: relative; - margin-bottom: var(--prose-spacing); - padding-block: var(--blockquote-padding-block); - /* extra inline-start room for the accent bar */ - padding-inline: var(--blockquote-padding-inline); - font-style: italic; - background-color: var(--blockquote-background-color); - border-radius: var(--blockquote-border-radius); - &::before { - content: ""; - position: absolute; - top: 0; - inset-inline-start: 0; - width: var(--blockquote-accent-width); - height: 100%; - border-start-start-radius: var(--blockquote-border-radius); - border-end-start-radius: var(--blockquote-border-radius); - background: var(--blockquote-accent-color); +meter { + width: 100%; + background: var(--meter-track-color); + border-radius: var(--meter-border-radius); + height: var(--meter-height); + /* webkit */ + &::-webkit-meter-bar { + background: var(--meter-track-color); } - - p { - &:first-child::before { - content: open-quote; - } - &:last-child { - margin-bottom: 0; - &::after { - content: close-quote; - } - } + &::-webkit-meter-bar, + &::-webkit-meter-optimum-value, + &::-webkit-meter-suboptimum-value, + &::-webkit-meter-even-less-good-value { + height: var(--meter-height); + border: none; + border-radius: var(--meter-border-radius); + } + &::-webkit-meter-even-less-good-value { + background: var(--meter-low-color); + } + &::-webkit-meter-suboptimum-value { + background: var(--meter-medium-color); + } + &::-webkit-meter-optimum-value { + background: var(--meter-high-color); + } + /* mozilla */ + &:-moz-meter-sub-sub-optimum::-moz-meter-bar { + background: var(--meter-low-color); + } + &:-moz-meter-sub-optimum::-moz-meter-bar { + background: var(--meter-medium-color); + } + &:-moz-meter-optimum::-moz-meter-bar { + background: var(--meter-high-color); } } -br { -} - -cite { - font-style: italic; +optgroup { } -code, -var, -kbd { - font-family: var(--mono); - font-size: 0.9em; - font-style: normal; - color: var(--text-code-muted-color); +option { } -:is(code, var, kbd):not(h1 *, h2 *, h3 *, h4 *, h5 *, h6 *, pre *) { - padding: 0.15em 0.3em; - color: var(--text-code-color); - background-color: var(--text-code-background-color); - border-radius: var(--radius-sm); +output { } -data { +progress { + appearance: none; + width: 100%; + /* mozilla */ + height: var(--progress-height); + background: var(--progress-track-color); + border-radius: var(--progress-border-radius); + border: none; + &::-moz-progress-bar { + background: var(--progress-color); + border-radius: var(--progress-border-radius); + } + /* webkit */ + &::-webkit-progress-bar { + width: 100%; + background: var(--progress-track-color); + border-radius: var(--progress-border-radius); + height: var(--progress-height); + } + &::-webkit-progress-value { + background: var(--progress-color); + border-radius: var(--progress-border-radius); + } } -dl { -} +select { + /* derived, stays local */ + --split: calc(100% - var(--select-icon-size)); + display: flex; + appearance: none; + height: var(--input-height); + padding: var(--xs1) calc(var(--input-padding) + var(--md1)) var(--xs1) + var(--input-padding); + border: var(--input-border-width) solid var(--input-border-color); + border-radius: var(--input-border-radius); + background: linear-gradient( + to right, + var(--body-background-color) 0 var(--split), + var(--text-color) var(--split) 100% + ); + mask-image: + var(--select-icon), + linear-gradient(to right, transparent calc(var(--split) - 1px), red 0), + linear-gradient(red 0 0); + mask-size: var(--select-icon-size), auto, auto; + mask-position: + calc(100% - var(--xs1)) center, + 0 0, + 0 0; + mask-repeat: no-repeat; + mask-clip: padding-box, padding-box, border-box; + mask-origin: padding-box, padding-box, border-box; + mask-composite: add, exclude; -dt { - font-weight: var(--bold); -} + /* focus ring comes from the global :focus-visible rule (global.a11y.css) */ -dd { -} + &:disabled { + --disabled-color: light-dark( + hsl(from var(--text-color) h s 70%), + hsl(from var(--text-color) h s 40%) + ); + cursor: not-allowed; + color: var(--disabled-color); + background: linear-gradient( + to right, + var(--body-background-color) 0 var(--split), + var(--disabled-color) var(--split) 100% + ); + } -dd + dt { - margin-top: 0.5em; + &[multiple] { + height: auto; + padding: var(--input-padding); + background: var(--body-background-color); + mask-image: none; + } } -del { - text-decoration-color: var(--danger-500); - text-decoration-style: wavy; +textarea { + width: 100%; + padding: var(--input-padding); + border-radius: var(--input-border-radius); + border: var(--input-border-width) solid var(--input-border-color); + resize: vertical; + &:not([rows]) { + min-height: 6em; + } } - -dfn { } +@layer elements{ -em { -} +/* ELEMENTS INTERACTIVE */ -/* figcaption and figure are in elements.media.css */ +dialog { + /* body scrolling is stopped by adding .body-is-locked on */ + /* But it can be added to any element. See elements.sectioning.css > body { … } */ + min-width: var(--dialog-min-width); + max-width: var(--dialog-max-width); + padding: var(--dialog-padding); + border: var(--dialog-border-width) solid var(--dialog-border-color); + background-color: var(--dialog-background-color); + border-radius: var(--dialog-border-radius); -/* Technically, headings should be in elements.sectioning but I'm guessing that's where most people would expect this to be */ -h1, -.h1, -h2, -.h2, -h3, -.h3, -h4, -.h4, -h5, -.h5, -h6, -.h6 { - overflow-wrap: break-word; /* Avoid text overflows */ - text-wrap: balance; -} + &::backdrop { + background: var(--dialog-backdrop-color); + opacity: var(--dialog-backdrop-opacity); + } -h1, -.h1, -h2, -.h2, -h3, -.h3, -h4, -.h4 { - font-family: var(--heading-font); - font-weight: var(--heading-weight); - letter-spacing: var(--heading-letter-spacing); -} + [aria-label="close pop-up"] { + position: absolute; + top: var(--xs3); + right: var( + --xs3 + ); /* deliberately physical: close button pinned to a visual corner */ + background: transparent; + border: none; + outline: none; + cursor: pointer; + } -h1, -.h1 { - margin-bottom: var(--heading-spacing-h1); - font-size: var(--heading-font-size-h1); - line-height: var(--heading-line-height-h1); + p:last-of-type { + /* in case it's inside a .prose context */ + margin-bottom: 0; + } } -h2, -.h2 { - margin-bottom: var(--heading-spacing-h2); - font-size: var(--heading-font-size-h2); - line-height: var(--heading-line-height-h2); -} +details { + padding: var(--details-padding); + border: var(--details-border-width) solid var(--details-border-color); + background-color: var(--details-background-color); + border-radius: var(--details-border-radius); + cursor: pointer; -h3, -.h3 { - margin-bottom: var(--heading-spacing-h3); - font-size: var(--heading-font-size-h3); - line-height: var(--heading-line-height-h3); -} + summary { + display: flex; + justify-content: space-between; + font-weight: var(--bold); + &::-webkit-details-marker { + display: none; + } + &::after { + content: ""; + width: var(--details-icon-size); + height: var(--details-icon-size); + /* icon as a mask painted with the text color, so it follows the + color scheme (an SVG in background-image can't see currentColor + and always renders black) */ + background-color: currentColor; + mask-image: var(--details-icon); + mask-size: contain; + mask-repeat: no-repeat; + transition: transform var(--transition); + } + } -h4, -.h4 { - margin-bottom: var(--heading-spacing-h4); - font-size: var(--heading-font-size-h4); - line-height: var(--heading-line-height-h4); + &[open] > summary { + margin-bottom: var(--details-spacing); + &::after { + transform: rotate(180deg); + } + } + + p:last-of-type { + /* in case it's inside a .prose context */ + margin-bottom: 0; + } +} } -h5, -.h5 { - margin-bottom: var(--heading-spacing-h5); - font-size: var(--heading-font-size-h5); - line-height: var(--heading-line-height-h5); +/* Global styles */ + +@layer global{ +/* Unified keyboard focus ring (themable via the --focus-ring-* tokens). + Applies everywhere so keyboard users get one consistent treatment. */ +:focus-visible { + outline: var(--focus-ring-width) solid var(--focus-ring-color); + outline-offset: var(--focus-ring-offset); } -h6, -.h6 { - margin-bottom: var(--heading-spacing-h6); - font-size: var(--heading-font-size-h6); - line-height: var(--heading-line-height-h6); +/* Skip-to-content link. Place it as the first element in , pointing + at the id of your main content; it stays off-screen until focused. */ +.a11y-skipLink { + position: fixed; + z-index: var(--z-top); + inset-block-start: -100vb; + inset-inline-start: 0; + padding: 0.75em 1.25em; + background-color: var(--body-background-color); + color: var(--text-color); } -/* h1—h3 with a h2—h4 subheading right after gets the consecutive margin - (must come after the per-level rules: it ties them on specificity, so - source order decides) */ -:where(h1, h2, h3):has(+ :is(h2, h3, h4)) { - margin-bottom: var(--heading-spacing-consecutive); +.a11y-skipLink:focus { + inset-block-start: 0; } -hr { - display: flex; - justify-content: center; - align-items: center; - height: 0; - border-style: solid; - border-width: var(--border-sm) 0 0; - color: var(--ui-border-color); - overflow: visible; - &::after { - content: var(--hr-content); - padding: 0 var(--xs1); - line-height: 1; - letter-spacing: var(--tracking-sm); - background-color: var(--body-background-color); - } +/* hide in browser but accessible in screen readers */ +.a11y-srOnly { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border: 0; } - -:where(hr):has(+ :is(p)) { - margin-bottom: var(--prose-spacing); } -i { -} +@layer global{ -ins { - padding: 0.15em 0.3em; - color: var(--ins-color); - background-color: var(--ins-background-color); - border-radius: var(--radius-sm); - -webkit-text-decoration: none; - text-decoration: none; - &::before { - content: "+ "; +@keyframes fadeFromOpaque { + from { + opacity: 1; } } -mark { - padding: 0.15em 0.5em; - background: var(--marker-color); - border-radius: 1em 0; -} - -menu { +@keyframes fadeToOpaque { + to { + opacity: 1; + } } -:where(ol, ul) { - list-style-type: none; - padding: 0; +@keyframes fadeFromTransparent { + from { + opacity: 0; + } } -li { +@keyframes fadeToTransparent { + to { + opacity: 0; + } } - -p { } -pre { - font-family: var(--mono); - font-size: var(--pre-font-size); - white-space: pre-wrap; /* override overflow default */ - border-radius: var(--pre-border-radius); +@layer global{ +/* GRID */ +/* Generated by src/tools/generate.global.grid.cjs */ +.grid { + display: grid; + --grid-tc: repeat(4, 1fr); + --grid-cs: 1; /* column start */ + --grid-ce: -1; /* column end */ + grid-template-columns: var(--grid-tc); + grid-column-gap: var(--grid-column-gap); + grid-row-gap: var(--grid-row-gap); } -q { - /* see: elements.text.quotes.css */ - font-style: italic; +.grid-flush { + grid-column-gap: 0; + grid-row-gap: 0; } -s { - text-decoration-color: light-dark(var(--base-950), var(--base-50)); - text-decoration-style: wavy; -} +/* DEFAULT */ +.grid > .grid_item { display: block; appearance: none; } +.grid[col="1"] { --grid-tc: repeat(1, 1fr) } +.grid[col="2"] { --grid-tc: repeat(2, 1fr) } +.grid[col="3"] { --grid-tc: repeat(3, 1fr) } +.grid[col="4"] { --grid-tc: repeat(4, 1fr) } +.grid[col="5"] { --grid-tc: repeat(5, 1fr) } +.grid[col="6"] { --grid-tc: repeat(6, 1fr) } +.grid[col="7"] { --grid-tc: repeat(7, 1fr) } +.grid[col="8"] { --grid-tc: repeat(8, 1fr) } +.grid[col="9"] { --grid-tc: repeat(9, 1fr) } +.grid[col="10"] { --grid-tc: repeat(10, 1fr) } +.grid[col="11"] { --grid-tc: repeat(11, 1fr) } +.grid[col="12"] { --grid-tc: repeat(12, 1fr) } +.grid[col="13"] { --grid-tc: repeat(13, 1fr) } +.grid[col="14"] { --grid-tc: repeat(14, 1fr) } +.grid[col="15"] { --grid-tc: repeat(15, 1fr) } +.grid[col="16"] { --grid-tc: repeat(16, 1fr) } +.grid[col="17"] { --grid-tc: repeat(17, 1fr) } +.grid[col="18"] { --grid-tc: repeat(18, 1fr) } +.grid[col="19"] { --grid-tc: repeat(19, 1fr) } +.grid[col="20"] { --grid-tc: repeat(20, 1fr) } +.grid[col="21"] { --grid-tc: repeat(21, 1fr) } +.grid[col="22"] { --grid-tc: repeat(22, 1fr) } +.grid[col="23"] { --grid-tc: repeat(23, 1fr) } +.grid[col="24"] { --grid-tc: repeat(24, 1fr) } +/* span=start... */ +.grid > .grid_item[span^="1"] { --grid-cs: 1 } +.grid > .grid_item[span^="2"] { --grid-cs: 2 } +.grid > .grid_item[span^="3"] { --grid-cs: 3 } +.grid > .grid_item[span^="4"] { --grid-cs: 4 } +.grid > .grid_item[span^="5"] { --grid-cs: 5 } +.grid > .grid_item[span^="6"] { --grid-cs: 6 } +.grid > .grid_item[span^="7"] { --grid-cs: 7 } +.grid > .grid_item[span^="8"] { --grid-cs: 8 } +.grid > .grid_item[span^="9"] { --grid-cs: 9 } +.grid > .grid_item[span^="10"] { --grid-cs: 10 } +.grid > .grid_item[span^="11"] { --grid-cs: 11 } +.grid > .grid_item[span^="12"] { --grid-cs: 12 } +.grid > .grid_item[span^="13"] { --grid-cs: 13 } +.grid > .grid_item[span^="14"] { --grid-cs: 14 } +.grid > .grid_item[span^="15"] { --grid-cs: 15 } +.grid > .grid_item[span^="16"] { --grid-cs: 16 } +.grid > .grid_item[span^="17"] { --grid-cs: 17 } +.grid > .grid_item[span^="18"] { --grid-cs: 18 } +.grid > .grid_item[span^="19"] { --grid-cs: 19 } +.grid > .grid_item[span^="20"] { --grid-cs: 20 } +.grid > .grid_item[span^="21"] { --grid-cs: 21 } +.grid > .grid_item[span^="22"] { --grid-cs: 22 } +.grid > .grid_item[span^="23"] { --grid-cs: 23 } +.grid > .grid_item[span^="24"] { --grid-cs: 24 } +/* span=...+width, span=...-end */ +.grid > .grid_item[span$="+1"], .grid > .grid_item[span="1"] { --grid-ce: 1 } +.grid > .grid_item[span$="+2"], .grid > .grid_item[span$="-1"], .grid > .grid_item[span="2"] { --grid-ce: 2 } +.grid > .grid_item[span$="+3"], .grid > .grid_item[span$="-2"], .grid > .grid_item[span="3"] { --grid-ce: 3 } +.grid > .grid_item[span$="+4"], .grid > .grid_item[span$="-3"], .grid > .grid_item[span="4"] { --grid-ce: 4 } +.grid > .grid_item[span$="+5"], .grid > .grid_item[span$="-4"], .grid > .grid_item[span="5"] { --grid-ce: 5 } +.grid > .grid_item[span$="+6"], .grid > .grid_item[span$="-5"], .grid > .grid_item[span="6"] { --grid-ce: 6 } +.grid > .grid_item[span$="+7"], .grid > .grid_item[span$="-6"], .grid > .grid_item[span="7"] { --grid-ce: 7 } +.grid > .grid_item[span$="+8"], .grid > .grid_item[span$="-7"], .grid > .grid_item[span="8"] { --grid-ce: 8 } +.grid > .grid_item[span$="+9"], .grid > .grid_item[span$="-8"], .grid > .grid_item[span="9"] { --grid-ce: 9 } +.grid > .grid_item[span$="+10"], .grid > .grid_item[span$="-9"], .grid > .grid_item[span="10"] { --grid-ce: 10 } +.grid > .grid_item[span$="+11"], .grid > .grid_item[span$="-10"], .grid > .grid_item[span="11"] { --grid-ce: 11 } +.grid > .grid_item[span$="+12"], .grid > .grid_item[span$="-11"], .grid > .grid_item[span="12"] { --grid-ce: 12 } +.grid > .grid_item[span$="+13"], .grid > .grid_item[span$="-12"], .grid > .grid_item[span="13"] { --grid-ce: 13 } +.grid > .grid_item[span$="+14"], .grid > .grid_item[span$="-13"], .grid > .grid_item[span="14"] { --grid-ce: 14 } +.grid > .grid_item[span$="+15"], .grid > .grid_item[span$="-14"], .grid > .grid_item[span="15"] { --grid-ce: 15 } +.grid > .grid_item[span$="+16"], .grid > .grid_item[span$="-15"], .grid > .grid_item[span="16"] { --grid-ce: 16 } +.grid > .grid_item[span$="+17"], .grid > .grid_item[span$="-16"], .grid > .grid_item[span="17"] { --grid-ce: 17 } +.grid > .grid_item[span$="+18"], .grid > .grid_item[span$="-17"], .grid > .grid_item[span="18"] { --grid-ce: 18 } +.grid > .grid_item[span$="+19"], .grid > .grid_item[span$="-18"], .grid > .grid_item[span="19"] { --grid-ce: 19 } +.grid > .grid_item[span$="+20"], .grid > .grid_item[span$="-19"], .grid > .grid_item[span="20"] { --grid-ce: 20 } +.grid > .grid_item[span$="+21"], .grid > .grid_item[span$="-20"], .grid > .grid_item[span="21"] { --grid-ce: 21 } +.grid > .grid_item[span$="+22"], .grid > .grid_item[span$="-21"], .grid > .grid_item[span="22"] { --grid-ce: 22 } +.grid > .grid_item[span$="+23"], .grid > .grid_item[span$="-22"], .grid > .grid_item[span="23"] { --grid-ce: 23 } +.grid > .grid_item[span$="+24"], .grid > .grid_item[span$="-23"], .grid > .grid_item[span="24"] { --grid-ce: 24 } +.grid > .grid_item[span$="-24"] { --grid-ce: 25 } +/* connect vars */ +.grid > .grid_item[span] { grid-column-end: span var(--grid-ce) } +.grid > .grid_item[span*="+"], .grid > .grid_item[span*="-"], .grid > .grid_item[span*=".."] { + grid-column-start: var(--grid-cs) } +.grid > .grid_item[span*="-"], .grid > .grid_item[span*=".."] { + grid-column-end: var(--grid-ce) } +.grid > .grid_item[span="row"] { grid-column: 1 / -1 } +/* MD — window >= 768px */ +@media only screen and (width >= 768px) { + .grid[col-md="1"] { --grid-tc: repeat(1, 1fr) } + .grid[col-md="2"] { --grid-tc: repeat(2, 1fr) } + .grid[col-md="3"] { --grid-tc: repeat(3, 1fr) } + .grid[col-md="4"] { --grid-tc: repeat(4, 1fr) } + .grid[col-md="5"] { --grid-tc: repeat(5, 1fr) } + .grid[col-md="6"] { --grid-tc: repeat(6, 1fr) } + .grid[col-md="7"] { --grid-tc: repeat(7, 1fr) } + .grid[col-md="8"] { --grid-tc: repeat(8, 1fr) } + .grid[col-md="9"] { --grid-tc: repeat(9, 1fr) } + .grid[col-md="10"] { --grid-tc: repeat(10, 1fr) } + .grid[col-md="11"] { --grid-tc: repeat(11, 1fr) } + .grid[col-md="12"] { --grid-tc: repeat(12, 1fr) } + .grid[col-md="13"] { --grid-tc: repeat(13, 1fr) } + .grid[col-md="14"] { --grid-tc: repeat(14, 1fr) } + .grid[col-md="15"] { --grid-tc: repeat(15, 1fr) } + .grid[col-md="16"] { --grid-tc: repeat(16, 1fr) } + .grid[col-md="17"] { --grid-tc: repeat(17, 1fr) } + .grid[col-md="18"] { --grid-tc: repeat(18, 1fr) } + .grid[col-md="19"] { --grid-tc: repeat(19, 1fr) } + .grid[col-md="20"] { --grid-tc: repeat(20, 1fr) } + .grid[col-md="21"] { --grid-tc: repeat(21, 1fr) } + .grid[col-md="22"] { --grid-tc: repeat(22, 1fr) } + .grid[col-md="23"] { --grid-tc: repeat(23, 1fr) } + .grid[col-md="24"] { --grid-tc: repeat(24, 1fr) } -samp { -} + /* span-md=start... */ + .grid > .grid_item[span-md^="1"] { --grid-cs: 1 } + .grid > .grid_item[span-md^="2"] { --grid-cs: 2 } + .grid > .grid_item[span-md^="3"] { --grid-cs: 3 } + .grid > .grid_item[span-md^="4"] { --grid-cs: 4 } + .grid > .grid_item[span-md^="5"] { --grid-cs: 5 } + .grid > .grid_item[span-md^="6"] { --grid-cs: 6 } + .grid > .grid_item[span-md^="7"] { --grid-cs: 7 } + .grid > .grid_item[span-md^="8"] { --grid-cs: 8 } + .grid > .grid_item[span-md^="9"] { --grid-cs: 9 } + .grid > .grid_item[span-md^="10"] { --grid-cs: 10 } + .grid > .grid_item[span-md^="11"] { --grid-cs: 11 } + .grid > .grid_item[span-md^="12"] { --grid-cs: 12 } + .grid > .grid_item[span-md^="13"] { --grid-cs: 13 } + .grid > .grid_item[span-md^="14"] { --grid-cs: 14 } + .grid > .grid_item[span-md^="15"] { --grid-cs: 15 } + .grid > .grid_item[span-md^="16"] { --grid-cs: 16 } + .grid > .grid_item[span-md^="17"] { --grid-cs: 17 } + .grid > .grid_item[span-md^="18"] { --grid-cs: 18 } + .grid > .grid_item[span-md^="19"] { --grid-cs: 19 } + .grid > .grid_item[span-md^="20"] { --grid-cs: 20 } + .grid > .grid_item[span-md^="21"] { --grid-cs: 21 } + .grid > .grid_item[span-md^="22"] { --grid-cs: 22 } + .grid > .grid_item[span-md^="23"] { --grid-cs: 23 } + .grid > .grid_item[span-md^="24"] { --grid-cs: 24 } -small { -} + /* span-md=...+width, span-md=...-end */ + .grid > .grid_item[span-md$="+1"], .grid > .grid_item[span-md="1"] { --grid-ce: 1 } + .grid > .grid_item[span-md$="+2"], .grid > .grid_item[span-md$="-1"], .grid > .grid_item[span-md="2"] { --grid-ce: 2 } + .grid > .grid_item[span-md$="+3"], .grid > .grid_item[span-md$="-2"], .grid > .grid_item[span-md="3"] { --grid-ce: 3 } + .grid > .grid_item[span-md$="+4"], .grid > .grid_item[span-md$="-3"], .grid > .grid_item[span-md="4"] { --grid-ce: 4 } + .grid > .grid_item[span-md$="+5"], .grid > .grid_item[span-md$="-4"], .grid > .grid_item[span-md="5"] { --grid-ce: 5 } + .grid > .grid_item[span-md$="+6"], .grid > .grid_item[span-md$="-5"], .grid > .grid_item[span-md="6"] { --grid-ce: 6 } + .grid > .grid_item[span-md$="+7"], .grid > .grid_item[span-md$="-6"], .grid > .grid_item[span-md="7"] { --grid-ce: 7 } + .grid > .grid_item[span-md$="+8"], .grid > .grid_item[span-md$="-7"], .grid > .grid_item[span-md="8"] { --grid-ce: 8 } + .grid > .grid_item[span-md$="+9"], .grid > .grid_item[span-md$="-8"], .grid > .grid_item[span-md="9"] { --grid-ce: 9 } + .grid > .grid_item[span-md$="+10"], .grid > .grid_item[span-md$="-9"], .grid > .grid_item[span-md="10"] { --grid-ce: 10 } + .grid > .grid_item[span-md$="+11"], .grid > .grid_item[span-md$="-10"], .grid > .grid_item[span-md="11"] { --grid-ce: 11 } + .grid > .grid_item[span-md$="+12"], .grid > .grid_item[span-md$="-11"], .grid > .grid_item[span-md="12"] { --grid-ce: 12 } + .grid > .grid_item[span-md$="+13"], .grid > .grid_item[span-md$="-12"], .grid > .grid_item[span-md="13"] { --grid-ce: 13 } + .grid > .grid_item[span-md$="+14"], .grid > .grid_item[span-md$="-13"], .grid > .grid_item[span-md="14"] { --grid-ce: 14 } + .grid > .grid_item[span-md$="+15"], .grid > .grid_item[span-md$="-14"], .grid > .grid_item[span-md="15"] { --grid-ce: 15 } + .grid > .grid_item[span-md$="+16"], .grid > .grid_item[span-md$="-15"], .grid > .grid_item[span-md="16"] { --grid-ce: 16 } + .grid > .grid_item[span-md$="+17"], .grid > .grid_item[span-md$="-16"], .grid > .grid_item[span-md="17"] { --grid-ce: 17 } + .grid > .grid_item[span-md$="+18"], .grid > .grid_item[span-md$="-17"], .grid > .grid_item[span-md="18"] { --grid-ce: 18 } + .grid > .grid_item[span-md$="+19"], .grid > .grid_item[span-md$="-18"], .grid > .grid_item[span-md="19"] { --grid-ce: 19 } + .grid > .grid_item[span-md$="+20"], .grid > .grid_item[span-md$="-19"], .grid > .grid_item[span-md="20"] { --grid-ce: 20 } + .grid > .grid_item[span-md$="+21"], .grid > .grid_item[span-md$="-20"], .grid > .grid_item[span-md="21"] { --grid-ce: 21 } + .grid > .grid_item[span-md$="+22"], .grid > .grid_item[span-md$="-21"], .grid > .grid_item[span-md="22"] { --grid-ce: 22 } + .grid > .grid_item[span-md$="+23"], .grid > .grid_item[span-md$="-22"], .grid > .grid_item[span-md="23"] { --grid-ce: 23 } + .grid > .grid_item[span-md$="+24"], .grid > .grid_item[span-md$="-23"], .grid > .grid_item[span-md="24"] { --grid-ce: 24 } + .grid > .grid_item[span-md$="-24"] { --grid-ce: 25 } -strong { + /* connect vars */ + .grid > .grid_item[span-md] { grid-column-end: span var(--grid-ce) } + .grid > .grid_item[span-md*="+"], .grid > .grid_item[span-md*="-"], .grid > .grid_item[span-md*=".."] { + grid-column-start: var(--grid-cs) } + .grid > .grid_item[span-md*="-"], .grid > .grid_item[span-md*=".."] { + grid-column-end: var(--grid-ce) } + .grid > .grid_item[span-md="row"] { grid-column: 1 / -1 } } +/* LARGE - width >= 1024 */ +@media only screen and (width >= 1024px) { + .grid[col-lg="1"] { --grid-tc: repeat(1, 1fr) } + .grid[col-lg="2"] { --grid-tc: repeat(2, 1fr) } + .grid[col-lg="3"] { --grid-tc: repeat(3, 1fr) } + .grid[col-lg="4"] { --grid-tc: repeat(4, 1fr) } + .grid[col-lg="5"] { --grid-tc: repeat(5, 1fr) } + .grid[col-lg="6"] { --grid-tc: repeat(6, 1fr) } + .grid[col-lg="7"] { --grid-tc: repeat(7, 1fr) } + .grid[col-lg="8"] { --grid-tc: repeat(8, 1fr) } + .grid[col-lg="9"] { --grid-tc: repeat(9, 1fr) } + .grid[col-lg="10"] { --grid-tc: repeat(10, 1fr) } + .grid[col-lg="11"] { --grid-tc: repeat(11, 1fr) } + .grid[col-lg="12"] { --grid-tc: repeat(12, 1fr) } + .grid[col-lg="13"] { --grid-tc: repeat(13, 1fr) } + .grid[col-lg="14"] { --grid-tc: repeat(14, 1fr) } + .grid[col-lg="15"] { --grid-tc: repeat(15, 1fr) } + .grid[col-lg="16"] { --grid-tc: repeat(16, 1fr) } + .grid[col-lg="17"] { --grid-tc: repeat(17, 1fr) } + .grid[col-lg="18"] { --grid-tc: repeat(18, 1fr) } + .grid[col-lg="19"] { --grid-tc: repeat(19, 1fr) } + .grid[col-lg="20"] { --grid-tc: repeat(20, 1fr) } + .grid[col-lg="21"] { --grid-tc: repeat(21, 1fr) } + .grid[col-lg="22"] { --grid-tc: repeat(22, 1fr) } + .grid[col-lg="23"] { --grid-tc: repeat(23, 1fr) } + .grid[col-lg="24"] { --grid-tc: repeat(24, 1fr) } -sub { - line-height: 1; -} + /* span-lg=start... */ + .grid > .grid_item[span-lg^="1"] { --grid-cs: 1 } + .grid > .grid_item[span-lg^="2"] { --grid-cs: 2 } + .grid > .grid_item[span-lg^="3"] { --grid-cs: 3 } + .grid > .grid_item[span-lg^="4"] { --grid-cs: 4 } + .grid > .grid_item[span-lg^="5"] { --grid-cs: 5 } + .grid > .grid_item[span-lg^="6"] { --grid-cs: 6 } + .grid > .grid_item[span-lg^="7"] { --grid-cs: 7 } + .grid > .grid_item[span-lg^="8"] { --grid-cs: 8 } + .grid > .grid_item[span-lg^="9"] { --grid-cs: 9 } + .grid > .grid_item[span-lg^="10"] { --grid-cs: 10 } + .grid > .grid_item[span-lg^="11"] { --grid-cs: 11 } + .grid > .grid_item[span-lg^="12"] { --grid-cs: 12 } + .grid > .grid_item[span-lg^="13"] { --grid-cs: 13 } + .grid > .grid_item[span-lg^="14"] { --grid-cs: 14 } + .grid > .grid_item[span-lg^="15"] { --grid-cs: 15 } + .grid > .grid_item[span-lg^="16"] { --grid-cs: 16 } + .grid > .grid_item[span-lg^="17"] { --grid-cs: 17 } + .grid > .grid_item[span-lg^="18"] { --grid-cs: 18 } + .grid > .grid_item[span-lg^="19"] { --grid-cs: 19 } + .grid > .grid_item[span-lg^="20"] { --grid-cs: 20 } + .grid > .grid_item[span-lg^="21"] { --grid-cs: 21 } + .grid > .grid_item[span-lg^="22"] { --grid-cs: 22 } + .grid > .grid_item[span-lg^="23"] { --grid-cs: 23 } + .grid > .grid_item[span-lg^="24"] { --grid-cs: 24 } -sup { - line-height: 1; + /* span-lg=...+width, span-lg=...-end */ + .grid > .grid_item[span-lg$="+1"], .grid > .grid_item[span-lg="1"] { --grid-ce: 1 } + .grid > .grid_item[span-lg$="+2"], .grid > .grid_item[span-lg$="-1"], .grid > .grid_item[span-lg="2"] { --grid-ce: 2 } + .grid > .grid_item[span-lg$="+3"], .grid > .grid_item[span-lg$="-2"], .grid > .grid_item[span-lg="3"] { --grid-ce: 3 } + .grid > .grid_item[span-lg$="+4"], .grid > .grid_item[span-lg$="-3"], .grid > .grid_item[span-lg="4"] { --grid-ce: 4 } + .grid > .grid_item[span-lg$="+5"], .grid > .grid_item[span-lg$="-4"], .grid > .grid_item[span-lg="5"] { --grid-ce: 5 } + .grid > .grid_item[span-lg$="+6"], .grid > .grid_item[span-lg$="-5"], .grid > .grid_item[span-lg="6"] { --grid-ce: 6 } + .grid > .grid_item[span-lg$="+7"], .grid > .grid_item[span-lg$="-6"], .grid > .grid_item[span-lg="7"] { --grid-ce: 7 } + .grid > .grid_item[span-lg$="+8"], .grid > .grid_item[span-lg$="-7"], .grid > .grid_item[span-lg="8"] { --grid-ce: 8 } + .grid > .grid_item[span-lg$="+9"], .grid > .grid_item[span-lg$="-8"], .grid > .grid_item[span-lg="9"] { --grid-ce: 9 } + .grid > .grid_item[span-lg$="+10"], .grid > .grid_item[span-lg$="-9"], .grid > .grid_item[span-lg="10"] { --grid-ce: 10 } + .grid > .grid_item[span-lg$="+11"], .grid > .grid_item[span-lg$="-10"], .grid > .grid_item[span-lg="11"] { --grid-ce: 11 } + .grid > .grid_item[span-lg$="+12"], .grid > .grid_item[span-lg$="-11"], .grid > .grid_item[span-lg="12"] { --grid-ce: 12 } + .grid > .grid_item[span-lg$="+13"], .grid > .grid_item[span-lg$="-12"], .grid > .grid_item[span-lg="13"] { --grid-ce: 13 } + .grid > .grid_item[span-lg$="+14"], .grid > .grid_item[span-lg$="-13"], .grid > .grid_item[span-lg="14"] { --grid-ce: 14 } + .grid > .grid_item[span-lg$="+15"], .grid > .grid_item[span-lg$="-14"], .grid > .grid_item[span-lg="15"] { --grid-ce: 15 } + .grid > .grid_item[span-lg$="+16"], .grid > .grid_item[span-lg$="-15"], .grid > .grid_item[span-lg="16"] { --grid-ce: 16 } + .grid > .grid_item[span-lg$="+17"], .grid > .grid_item[span-lg$="-16"], .grid > .grid_item[span-lg="17"] { --grid-ce: 17 } + .grid > .grid_item[span-lg$="+18"], .grid > .grid_item[span-lg$="-17"], .grid > .grid_item[span-lg="18"] { --grid-ce: 18 } + .grid > .grid_item[span-lg$="+19"], .grid > .grid_item[span-lg$="-18"], .grid > .grid_item[span-lg="19"] { --grid-ce: 19 } + .grid > .grid_item[span-lg$="+20"], .grid > .grid_item[span-lg$="-19"], .grid > .grid_item[span-lg="20"] { --grid-ce: 20 } + .grid > .grid_item[span-lg$="+21"], .grid > .grid_item[span-lg$="-20"], .grid > .grid_item[span-lg="21"] { --grid-ce: 21 } + .grid > .grid_item[span-lg$="+22"], .grid > .grid_item[span-lg$="-21"], .grid > .grid_item[span-lg="22"] { --grid-ce: 22 } + .grid > .grid_item[span-lg$="+23"], .grid > .grid_item[span-lg$="-22"], .grid > .grid_item[span-lg="23"] { --grid-ce: 23 } + .grid > .grid_item[span-lg$="+24"], .grid > .grid_item[span-lg$="-23"], .grid > .grid_item[span-lg="24"] { --grid-ce: 24 } + .grid > .grid_item[span-lg$="-24"] { --grid-ce: 25 } + + /* connect vars */ + .grid > .grid_item[span-lg] { grid-column-end: span var(--grid-ce) } + .grid > .grid_item[span-lg*="+"], .grid > .grid_item[span-lg*="-"], .grid > .grid_item[span-lg*=".."] { + grid-column-start: var(--grid-cs) } + .grid > .grid_item[span-lg*="-"], .grid > .grid_item[span-lg*=".."] { + grid-column-end: var(--grid-ce) } + .grid > .grid_item[span-lg="row"] { grid-column: 1 / -1 } } +/* EXTRA LARGE - width >= 1440 */ +@media only screen and (width >= 1440px) { + .grid[col-xl="1"] { --grid-tc: repeat(1, 1fr) } + .grid[col-xl="2"] { --grid-tc: repeat(2, 1fr) } + .grid[col-xl="3"] { --grid-tc: repeat(3, 1fr) } + .grid[col-xl="4"] { --grid-tc: repeat(4, 1fr) } + .grid[col-xl="5"] { --grid-tc: repeat(5, 1fr) } + .grid[col-xl="6"] { --grid-tc: repeat(6, 1fr) } + .grid[col-xl="7"] { --grid-tc: repeat(7, 1fr) } + .grid[col-xl="8"] { --grid-tc: repeat(8, 1fr) } + .grid[col-xl="9"] { --grid-tc: repeat(9, 1fr) } + .grid[col-xl="10"] { --grid-tc: repeat(10, 1fr) } + .grid[col-xl="11"] { --grid-tc: repeat(11, 1fr) } + .grid[col-xl="12"] { --grid-tc: repeat(12, 1fr) } + .grid[col-xl="13"] { --grid-tc: repeat(13, 1fr) } + .grid[col-xl="14"] { --grid-tc: repeat(14, 1fr) } + .grid[col-xl="15"] { --grid-tc: repeat(15, 1fr) } + .grid[col-xl="16"] { --grid-tc: repeat(16, 1fr) } + .grid[col-xl="17"] { --grid-tc: repeat(17, 1fr) } + .grid[col-xl="18"] { --grid-tc: repeat(18, 1fr) } + .grid[col-xl="19"] { --grid-tc: repeat(19, 1fr) } + .grid[col-xl="20"] { --grid-tc: repeat(20, 1fr) } + .grid[col-xl="21"] { --grid-tc: repeat(21, 1fr) } + .grid[col-xl="22"] { --grid-tc: repeat(22, 1fr) } + .grid[col-xl="23"] { --grid-tc: repeat(23, 1fr) } + .grid[col-xl="24"] { --grid-tc: repeat(24, 1fr) } -time { + /* span-xl=start... */ + .grid > .grid_item[span-xl^="1"] { --grid-cs: 1 } + .grid > .grid_item[span-xl^="2"] { --grid-cs: 2 } + .grid > .grid_item[span-xl^="3"] { --grid-cs: 3 } + .grid > .grid_item[span-xl^="4"] { --grid-cs: 4 } + .grid > .grid_item[span-xl^="5"] { --grid-cs: 5 } + .grid > .grid_item[span-xl^="6"] { --grid-cs: 6 } + .grid > .grid_item[span-xl^="7"] { --grid-cs: 7 } + .grid > .grid_item[span-xl^="8"] { --grid-cs: 8 } + .grid > .grid_item[span-xl^="9"] { --grid-cs: 9 } + .grid > .grid_item[span-xl^="10"] { --grid-cs: 10 } + .grid > .grid_item[span-xl^="11"] { --grid-cs: 11 } + .grid > .grid_item[span-xl^="12"] { --grid-cs: 12 } + .grid > .grid_item[span-xl^="13"] { --grid-cs: 13 } + .grid > .grid_item[span-xl^="14"] { --grid-cs: 14 } + .grid > .grid_item[span-xl^="15"] { --grid-cs: 15 } + .grid > .grid_item[span-xl^="16"] { --grid-cs: 16 } + .grid > .grid_item[span-xl^="17"] { --grid-cs: 17 } + .grid > .grid_item[span-xl^="18"] { --grid-cs: 18 } + .grid > .grid_item[span-xl^="19"] { --grid-cs: 19 } + .grid > .grid_item[span-xl^="20"] { --grid-cs: 20 } + .grid > .grid_item[span-xl^="21"] { --grid-cs: 21 } + .grid > .grid_item[span-xl^="22"] { --grid-cs: 22 } + .grid > .grid_item[span-xl^="23"] { --grid-cs: 23 } + .grid > .grid_item[span-xl^="24"] { --grid-cs: 24 } + + /* span-xl=...+width, span-xl=...-end */ + .grid > .grid_item[span-xl$="+1"], .grid > .grid_item[span-xl="1"] { --grid-ce: 1 } + .grid > .grid_item[span-xl$="+2"], .grid > .grid_item[span-xl$="-1"], .grid > .grid_item[span-xl="2"] { --grid-ce: 2 } + .grid > .grid_item[span-xl$="+3"], .grid > .grid_item[span-xl$="-2"], .grid > .grid_item[span-xl="3"] { --grid-ce: 3 } + .grid > .grid_item[span-xl$="+4"], .grid > .grid_item[span-xl$="-3"], .grid > .grid_item[span-xl="4"] { --grid-ce: 4 } + .grid > .grid_item[span-xl$="+5"], .grid > .grid_item[span-xl$="-4"], .grid > .grid_item[span-xl="5"] { --grid-ce: 5 } + .grid > .grid_item[span-xl$="+6"], .grid > .grid_item[span-xl$="-5"], .grid > .grid_item[span-xl="6"] { --grid-ce: 6 } + .grid > .grid_item[span-xl$="+7"], .grid > .grid_item[span-xl$="-6"], .grid > .grid_item[span-xl="7"] { --grid-ce: 7 } + .grid > .grid_item[span-xl$="+8"], .grid > .grid_item[span-xl$="-7"], .grid > .grid_item[span-xl="8"] { --grid-ce: 8 } + .grid > .grid_item[span-xl$="+9"], .grid > .grid_item[span-xl$="-8"], .grid > .grid_item[span-xl="9"] { --grid-ce: 9 } + .grid > .grid_item[span-xl$="+10"], .grid > .grid_item[span-xl$="-9"], .grid > .grid_item[span-xl="10"] { --grid-ce: 10 } + .grid > .grid_item[span-xl$="+11"], .grid > .grid_item[span-xl$="-10"], .grid > .grid_item[span-xl="11"] { --grid-ce: 11 } + .grid > .grid_item[span-xl$="+12"], .grid > .grid_item[span-xl$="-11"], .grid > .grid_item[span-xl="12"] { --grid-ce: 12 } + .grid > .grid_item[span-xl$="+13"], .grid > .grid_item[span-xl$="-12"], .grid > .grid_item[span-xl="13"] { --grid-ce: 13 } + .grid > .grid_item[span-xl$="+14"], .grid > .grid_item[span-xl$="-13"], .grid > .grid_item[span-xl="14"] { --grid-ce: 14 } + .grid > .grid_item[span-xl$="+15"], .grid > .grid_item[span-xl$="-14"], .grid > .grid_item[span-xl="15"] { --grid-ce: 15 } + .grid > .grid_item[span-xl$="+16"], .grid > .grid_item[span-xl$="-15"], .grid > .grid_item[span-xl="16"] { --grid-ce: 16 } + .grid > .grid_item[span-xl$="+17"], .grid > .grid_item[span-xl$="-16"], .grid > .grid_item[span-xl="17"] { --grid-ce: 17 } + .grid > .grid_item[span-xl$="+18"], .grid > .grid_item[span-xl$="-17"], .grid > .grid_item[span-xl="18"] { --grid-ce: 18 } + .grid > .grid_item[span-xl$="+19"], .grid > .grid_item[span-xl$="-18"], .grid > .grid_item[span-xl="19"] { --grid-ce: 19 } + .grid > .grid_item[span-xl$="+20"], .grid > .grid_item[span-xl$="-19"], .grid > .grid_item[span-xl="20"] { --grid-ce: 20 } + .grid > .grid_item[span-xl$="+21"], .grid > .grid_item[span-xl$="-20"], .grid > .grid_item[span-xl="21"] { --grid-ce: 21 } + .grid > .grid_item[span-xl$="+22"], .grid > .grid_item[span-xl$="-21"], .grid > .grid_item[span-xl="22"] { --grid-ce: 22 } + .grid > .grid_item[span-xl$="+23"], .grid > .grid_item[span-xl$="-22"], .grid > .grid_item[span-xl="23"] { --grid-ce: 23 } + .grid > .grid_item[span-xl$="+24"], .grid > .grid_item[span-xl$="-23"], .grid > .grid_item[span-xl="24"] { --grid-ce: 24 } + .grid > .grid_item[span-xl$="-24"] { --grid-ce: 25 } + + /* connect vars */ + .grid > .grid_item[span-xl] { grid-column-end: span var(--grid-ce) } + .grid > .grid_item[span-xl*="+"], .grid > .grid_item[span-xl*="-"], .grid > .grid_item[span-xl*=".."] { + grid-column-start: var(--grid-cs) } + .grid > .grid_item[span-xl*="-"], .grid > .grid_item[span-xl*=".."] { + grid-column-end: var(--grid-ce) } + .grid > .grid_item[span-xl="row"] { grid-column: 1 / -1 } } } -@layer elements{ + +@layer global{ /* - This is what user agents are supposed to be doing for quotes, - according to https://html.spec.whatwg.org/multipage/rendering.html#quotes + Page-level layout scaffolds. Every variant extends the .layout base: - https://github.com/jensimmons/cssremedy/blob/master/css/quotes.css + +
+
+ +
+
+
+ + + Widths come from the layout tokens in theme.default.ui.css: + --layout-content-width, --layout-aside-width, --layout-toc-width. */ -:root { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(af), :not(:lang(af)) > :lang(af) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(ak), :not(:lang(ak)) > :lang(ak) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(asa), :not(:lang(asa)) > :lang(asa) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(az), :not(:lang(az)) > :lang(az) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(bem), :not(:lang(bem)) > :lang(bem) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(bez), :not(:lang(bez)) > :lang(bez) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(bn), :not(:lang(bn)) > :lang(bn) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(brx), :not(:lang(brx)) > :lang(brx) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(cgg), :not(:lang(cgg)) > :lang(cgg) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(chr), :not(:lang(chr)) > :lang(chr) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(cy), :not(:lang(cy)) > :lang(cy) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(da), :not(:lang(da)) > :lang(da) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(dav), :not(:lang(dav)) > :lang(dav) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(dje), :not(:lang(dje)) > :lang(dje) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(dz), :not(:lang(dz)) > :lang(dz) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(ebu), :not(:lang(ebu)) > :lang(ebu) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(ee), :not(:lang(ee)) > :lang(ee) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(en), :not(:lang(en)) > :lang(en) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(fil), :not(:lang(fil)) > :lang(fil) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(fo), :not(:lang(fo)) > :lang(fo) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(ga), :not(:lang(ga)) > :lang(ga) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(gd), :not(:lang(gd)) > :lang(gd) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(gl), :not(:lang(gl)) > :lang(gl) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(gu), :not(:lang(gu)) > :lang(gu) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(guz), :not(:lang(guz)) > :lang(guz) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(ha), :not(:lang(ha)) > :lang(ha) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(hi), :not(:lang(hi)) > :lang(hi) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(id), :not(:lang(id)) > :lang(id) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(ig), :not(:lang(ig)) > :lang(ig) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(jmc), :not(:lang(jmc)) > :lang(jmc) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(kam), :not(:lang(kam)) > :lang(kam) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(kde), :not(:lang(kde)) > :lang(kde) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(kea), :not(:lang(kea)) > :lang(kea) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(khq), :not(:lang(khq)) > :lang(khq) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(ki), :not(:lang(ki)) > :lang(ki) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(kln), :not(:lang(kln)) > :lang(kln) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(km), :not(:lang(km)) > :lang(km) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(kn), :not(:lang(kn)) > :lang(kn) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(ko), :not(:lang(ko)) > :lang(ko) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(ksb), :not(:lang(ksb)) > :lang(ksb) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(lg), :not(:lang(lg)) > :lang(lg) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(ln), :not(:lang(ln)) > :lang(ln) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(lo), :not(:lang(lo)) > :lang(lo) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(lrc), :not(:lang(lrc)) > :lang(lrc) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(lu), :not(:lang(lu)) > :lang(lu) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(luo), :not(:lang(luo)) > :lang(luo) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(lv), :not(:lang(lv)) > :lang(lv) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(mas), :not(:lang(mas)) > :lang(mas) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(mer), :not(:lang(mer)) > :lang(mer) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(mfe), :not(:lang(mfe)) > :lang(mfe) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(mgo), :not(:lang(mgo)) > :lang(mgo) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(ml), :not(:lang(ml)) > :lang(ml) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(mn), :not(:lang(mn)) > :lang(mn) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(mr), :not(:lang(mr)) > :lang(mr) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(ms), :not(:lang(ms)) > :lang(ms) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(mt), :not(:lang(mt)) > :lang(mt) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(my), :not(:lang(my)) > :lang(my) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(naq), :not(:lang(naq)) > :lang(naq) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(nd), :not(:lang(nd)) > :lang(nd) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(ne), :not(:lang(ne)) > :lang(ne) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(nus), :not(:lang(nus)) > :lang(nus) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(nyn), :not(:lang(nyn)) > :lang(nyn) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(pa), :not(:lang(pa)) > :lang(pa) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(pt), :not(:lang(pt)) > :lang(pt) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(rof), :not(:lang(rof)) > :lang(rof) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(rwk), :not(:lang(rwk)) > :lang(rwk) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(saq), :not(:lang(saq)) > :lang(saq) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(sbp), :not(:lang(sbp)) > :lang(sbp) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(seh), :not(:lang(seh)) > :lang(seh) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(ses), :not(:lang(ses)) > :lang(ses) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(si), :not(:lang(si)) > :lang(si) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(so), :not(:lang(so)) > :lang(so) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(sw), :not(:lang(sw)) > :lang(sw) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(ta), :not(:lang(ta)) > :lang(ta) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(te), :not(:lang(te)) > :lang(te) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(teo), :not(:lang(teo)) > :lang(teo) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(th), :not(:lang(th)) > :lang(th) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(to), :not(:lang(to)) > :lang(to) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(tr), :not(:lang(tr)) > :lang(tr) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(twq), :not(:lang(twq)) > :lang(twq) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(tzm), :not(:lang(tzm)) > :lang(tzm) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(uz-Cyrl), :not(:lang(uz-Cyrl)) > :lang(uz-Cyrl) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(vai), :not(:lang(vai)) > :lang(vai) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(vai-Latn), :not(:lang(vai-Latn)) > :lang(vai-Latn) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(vi), :not(:lang(vi)) > :lang(vi) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(vun), :not(:lang(vun)) > :lang(vun) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(xog), :not(:lang(xog)) > :lang(xog) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(yo), :not(:lang(yo)) > :lang(yo) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(yue-Hans), :not(:lang(yue-Hans)) > :lang(yue-Hans) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(zh), :not(:lang(zh)) > :lang(zh) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ -:root:lang(zu), :not(:lang(zu)) > :lang(zu) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */ +/* App shell: header / content / footer, with a sticky footer. Base for + every variant below, also usable on its own. */ +.layout { + display: flex; + flex-direction: column; + width: 100vw; + min-height: 100vh; + .layout_content { + flex: 1; + } +} -:root:lang(uz), :not(:lang(uz)) > :lang(uz) { quotes: '\201c' '\201d' '\2019' '\2018' } /* “ ” ’ ‘ */ +/* The main column is a size container: container-responsive components + (Tiles) pick their column count from it instead of the viewport. + Named, so custom rules can target it with @container main. */ +.layout_content_main { + container: main / inline-size; +} +/* Single centered reading column: articles, blog posts, legal pages. */ +.layout-centered { + .layout_content { + display: grid; + gap: var(--sm3); + grid-template-columns: 1fr minmax(0, var(--layout-content-width)) 1fr; + margin-top: var(--lg1); + margin-bottom: var(--sm1); + @media (width >= 768px) { + margin-top: var(--xl3); + margin-bottom: var(--md3); + gap: var(--md3); + } + } -:root:lang(eu), :not(:lang(eu)) > :lang(eu) { quotes: '\201c' '\201d' '\201c' '\201d' } /* “ ” “ ” */ -:root:lang(tk), :not(:lang(tk)) > :lang(tk) { quotes: '\201c' '\201d' '\201c' '\201d' } /* “ ” “ ” */ + .layout_content_main { + grid-column: 2; + } +} +/* Aside + main: settings pages, simple docs, blogs with a nav column. + Single column below --md, aside following source order. */ +.layout-sidebar { + .layout_content { + @media (width >= 768px) { + display: grid; + grid-template-columns: var(--layout-aside-width) minmax(0, 1fr); + } + } -:root:lang(ar), :not(:lang(ar)) > :lang(ar) { quotes: '\201d' '\201c' '\2019' '\2018' } /* ” “ ’ ‘ */ -:root:lang(ur), :not(:lang(ur)) > :lang(ur) { quotes: '\201d' '\201c' '\2019' '\2018' } /* ” “ ’ ‘ */ + .layout_content_main { + padding: var(--sm2); + @media (width >= 768px) { + grid-row: 1; + grid-column: 2; + padding: var(--lg1) var(--md2); + } + } + .layout_content_aside { + @media (width >= 768px) { + grid-row: 1; + grid-column: 1; + padding: var(--lg1) var(--md3); + } + } +} -:root:lang(fi), :not(:lang(fi)) > :lang(fi) { quotes: '\201d' '\201d' '\2019' '\2019' } /* ” ” ’ ’ */ -:root:lang(he), :not(:lang(he)) > :lang(he) { quotes: '\201d' '\201d' '\2019' '\2019' } /* ” ” ’ ’ */ -:root:lang(lag), :not(:lang(lag)) > :lang(lag) { quotes: '\201d' '\201d' '\2019' '\2019' } /* ” ” ’ ’ */ -:root:lang(rn), :not(:lang(rn)) > :lang(rn) { quotes: '\201d' '\201d' '\2019' '\2019' } /* ” ” ’ ’ */ -:root:lang(sn), :not(:lang(sn)) > :lang(sn) { quotes: '\201d' '\201d' '\2019' '\2019' } /* ” ” ’ ’ */ -:root:lang(sv), :not(:lang(sv)) > :lang(sv) { quotes: '\201d' '\201d' '\2019' '\2019' } /* ” ” ’ ’ */ +/* Moves the aside to the reading end ("end", not "right": columns follow + the writing direction). Compose with .layout-sidebar. */ +.layout-sidebar-end { + .layout_content { + @media (width >= 768px) { + grid-template-columns: minmax(0, 1fr) var(--layout-aside-width); + } + } + .layout_content_main { + @media (width >= 768px) { + grid-column: 1; + } + } -:root:lang(sr), :not(:lang(sr)) > :lang(sr) { quotes: '\201e' '\201c' '\2018' '\2018' } /* „ “ ‘ ‘ */ -:root:lang(sr-Latn), :not(:lang(sr-Latn)) > :lang(sr-Latn) { quotes: '\201e' '\201c' '\2018' '\2018' } /* „ “ ‘ ‘ */ + .layout_content_aside { + @media (width >= 768px) { + grid-column: 2; + } + } +} +/* Documentation shell: nav aside + main + table of contents. One column + below --md with both asides hidden (put that navigation in your header + menu), nav + main from --md, TOC joins from --lg. */ +.layout-docs { + .layout_content { + @media (width >= 768px) { + display: grid; + grid-template-columns: var(--layout-aside-width) minmax(0, 1fr); + } + @media (width >= 1024px) { + grid-template-columns: + var(--layout-aside-width) + minmax(0, var(--layout-content-width)) + var(--layout-toc-width); + } + } -:root:lang(bg), :not(:lang(bg)) > :lang(bg) { quotes: '\201e' '\201c' '\201e' '\201c' } /* „ “ „ “ */ -:root:lang(lt), :not(:lang(lt)) > :lang(lt) { quotes: '\201e' '\201c' '\201e' '\201c' } /* „ “ „ “ */ + .layout_content_main { + padding: var(--sm2); + @media (width >= 768px) { + grid-row: 1; + grid-column: 2; + padding: var(--lg1) var(--md2); + } + } + .layout_content_aside { + display: none; + @media (width >= 768px) { + display: block; + grid-row: 1; + grid-column: 1; + padding: var(--lg1) var(--md3); + } + } -:root:lang(bs-Cyrl), :not(:lang(bs-Cyrl)) > :lang(bs-Cyrl) { quotes: '\201e' '\201c' '\201a' '\2018' } /* „ “ ‚ ‘ */ -:root:lang(cs), :not(:lang(cs)) > :lang(cs) { quotes: '\201e' '\201c' '\201a' '\2018' } /* „ “ ‚ ‘ */ -:root:lang(cs), :not(:lang(cs)) > :lang(cs) { quotes: '\201e' '\201c' '\201a' '\2018' } /* „ “ ‚ ‘ */ -:root:lang(de), :not(:lang(de)) > :lang(de) { quotes: '\201e' '\201c' '\201a' '\2018' } /* „ “ ‚ ‘ */ -:root:lang(dsb), :not(:lang(dsb)) > :lang(dsb) { quotes: '\201e' '\201c' '\201a' '\2018' } /* „ “ ‚ ‘ */ -:root:lang(et), :not(:lang(et)) > :lang(et) { quotes: '\201e' '\201c' '\201a' '\2018' } /* „ “ ‚ ‘ */ -:root:lang(hr), :not(:lang(hr)) > :lang(hr) { quotes: '\201e' '\201c' '\201a' '\2018' } /* „ “ ‚ ‘ */ -:root:lang(hsb), :not(:lang(hsb)) > :lang(hsb) { quotes: '\201e' '\201c' '\201a' '\2018' } /* „ “ ‚ ‘ */ -:root:lang(is), :not(:lang(is)) > :lang(is) { quotes: '\201e' '\201c' '\201a' '\2018' } /* „ “ ‚ ‘ */ -:root:lang(lb), :not(:lang(lb)) > :lang(lb) { quotes: '\201e' '\201c' '\201a' '\2018' } /* „ “ ‚ ‘ */ -:root:lang(luy), :not(:lang(luy)) > :lang(luy) { quotes: '\201e' '\201c' '\201a' '\2018' } /* „ “ ‚ ‘ */ -:root:lang(mk), :not(:lang(mk)) > :lang(mk) { quotes: '\201e' '\201c' '\201a' '\2018' } /* „ “ ‚ ‘ */ -:root:lang(sk), :not(:lang(sk)) > :lang(sk) { quotes: '\201e' '\201c' '\201a' '\2018' } /* „ “ ‚ ‘ */ -:root:lang(sl), :not(:lang(sl)) > :lang(sl) { quotes: '\201e' '\201c' '\201a' '\2018' } /* „ “ ‚ ‘ */ + /* Compose on the second aside: class="layout_content_aside + layout_content_aside-toc". Same specificity as the base element rule, + so these declarations must stay after it. */ + .layout_content_aside-toc { + @media (width >= 768px) { + display: none; + } + @media (width >= 1024px) { + display: block; + grid-row: 1; + grid-column: 3; + padding: var(--lg1) var(--md3); + } + } +} +/* Two equal panes, stacked below --md: auth screens, "image + content" + landings. Panes are the direct children of .layout_content. */ +.layout-split { + .layout_content { + display: grid; + @media (width >= 768px) { + grid-template-columns: 1fr 1fr; + } + } +} -:root:lang(ka), :not(:lang(ka)) > :lang(ka) { quotes: '\201e' '\201c' '\00ab' '\00bb' } /* „ “ « » */ +/* Full-viewport cover with centered content: landing, 404, coming soon. + dvh so mobile browser chrome never hides the content. */ +.layout-cover { + min-height: 100dvh; + .layout_content { + display: grid; + place-items: center; + } +} +} -:root:lang(bs), :not(:lang(bs)) > :lang(bs) { quotes: '\201e' '\201d' '\2018' '\2019' } /* „ ” ‘ ’ */ +@layer global{ +/* PROSE - Default style for text content */ -:root:lang(agq), :not(:lang(agq)) > :lang(agq) { quotes: '\201e' '\201d' '\201a' '\2019' } /* „ ” ‚ ’ */ -:root:lang(ff), :not(:lang(ff)) > :lang(ff) { quotes: '\201e' '\201d' '\201a' '\2019' } /* „ ” ‚ ’ */ +@scope (.prose) to (.not-prose) { + /* Component blocks mirror this heading-adjacent margin themselves in their + own files (.notice in component.notice.css; site-only .expressive-code, + .canIUse in their unlayered site CSS files): prose never reaches into + another component's classes. */ + :is(p, ul, ol, blockquote, table):has(+ :is(h1, h2, h3, h4)) { + margin-bottom: calc(var(--prose-spacing) * 2); + } + p, + ul, + ol, + dl { + margin-bottom: var(--prose-spacing); + p, + ul, + ol, + dl { + margin-bottom: 0; + } + } -:root:lang(nmg), :not(:lang(nmg)) > :lang(nmg) { quotes: '\201e' '\201d' '\00ab' '\00bb' } /* „ ” « » */ -:root:lang(ro), :not(:lang(ro)) > :lang(ro) { quotes: '\201e' '\201d' '\00ab' '\00bb' } /* „ ” « » */ -:root:lang(pl), :not(:lang(pl)) > :lang(pl) { quotes: '\201e' '\201d' '\00ab' '\00bb' } /* „ ” « » */ + ul, + ol { + ul, + ol { + margin-inline-start: 0; + padding-inline-start: var(--sm2); + } + li { + margin-bottom: 0.5em; + &::marker { + color: light-dark(var(--base-300), var(--base-600)); + } + } + } + ul { + margin-inline-start: var(--sm2); + list-style-type: "→ "; + } -:root:lang(hu), :not(:lang(hu)) > :lang(hu) { quotes: '\201e' '\201d' '\00bb' '\00ab' } /* „ ” » « */ + ol { + margin-inline-start: var(--md2); + list-style-type: decimal-leading-zero; + li::marker { + font-size: var(--text-sm); + } + } + table { + margin-top: var(--md1); + margin-bottom: var(--md1); + } +} +} -:root:lang(nl), :not(:lang(nl)) > :lang(nl) { quotes: '\2018' '\2019' '\201c' '\201d' } /* ‘ ’ “ ” */ -:root:lang(ti-ER), :not(:lang(ti-ER)) > :lang(ti-ER) { quotes: '\2018' '\2019' '\201c' '\201d' } /* ‘ ’ “ ” */ +@layer global{ +/* LAYOUT WRAP */ -:root:lang(dua), :not(:lang(dua)) > :lang(dua) { quotes: '\00ab' '\00bb' '\2018' '\2019' } /* « » ‘ ’ */ -:root:lang(ksf), :not(:lang(ksf)) > :lang(ksf) { quotes: '\00ab' '\00bb' '\2018' '\2019' } /* « » ‘ ’ */ -:root:lang(rw), :not(:lang(rw)) > :lang(rw) { quotes: '\00ab' '\00bb' '\2018' '\2019' } /* « » ‘ ’ */ -:root:lang(nn), :not(:lang(nn)) > :lang(nn) { quotes: '\00ab' '\00bb' '\2018' '\2019' } /* « » ‘ ’ */ -:root:lang(nb), :not(:lang(nb)) > :lang(nb) { quotes: '\00ab' '\00bb' '\2018' '\2019' } /* « » ‘ ’ */ +.wrap { + display: grid; + grid-template-columns: 1fr var(--wrap-width) 1fr; + > *, + > astro-island > *, + > astro-slot > *, + > astro-static-slot > * { + grid-column: 2; + padding-inline: var(--wrap-spacing); + @media (width >= 768px) { + padding-inline: var(--wrap-md-spacing); + } + @media (width >= 1024px) { + padding-inline: var(--wrap-lg-spacing); + } + } +} -:root:lang(ast), :not(:lang(ast)) > :lang(ast) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ -:root:lang(bm), :not(:lang(bm)) > :lang(bm) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ -:root:lang(br), :not(:lang(br)) > :lang(br) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ -:root:lang(ca), :not(:lang(ca)) > :lang(ca) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ -:root:lang(dyo), :not(:lang(dyo)) > :lang(dyo) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ -:root:lang(el), :not(:lang(el)) > :lang(el) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ -:root:lang(es), :not(:lang(es)) > :lang(es) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ -:root:lang(ewo), :not(:lang(ewo)) > :lang(ewo) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ -:root:lang(mg), :not(:lang(mg)) > :lang(mg) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ -:root:lang(mua), :not(:lang(mua)) > :lang(mua) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ -:root:lang(sg), :not(:lang(sg)) > :lang(sg) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ -:root:lang(it), :not(:lang(it)) > :lang(it) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ -:root:lang(kab), :not(:lang(kab)) > :lang(kab) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ -:root:lang(kk), :not(:lang(kk)) > :lang(kk) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ -:root:lang(pt-PT), :not(:lang(pt-PT)) > :lang(pt-PT) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ -:root:lang(nnh), :not(:lang(nnh)) > :lang(nnh) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ -:root:lang(sq), :not(:lang(sq)) > :lang(sq) { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* « » “ ” */ +/* Width presets: a bare .wrap uses --wrap-width, which defaults to the md + size; the modifiers pin a specific size regardless of inherited values. */ +.wrap-sm { + --wrap-width: var(--wrap-width-sm); +} +.wrap-md { + --wrap-width: var(--wrap-width-md); +} -:root:lang(bas), :not(:lang(bas)) > :lang(bas) { quotes: '\00ab' '\00bb' '\201e' '\201c' } /* « » „ “ */ -:root:lang(be), :not(:lang(be)) > :lang(be) { quotes: '\00ab' '\00bb' '\201e' '\201c' } /* « » „ “ */ -:root:lang(ky), :not(:lang(ky)) > :lang(ky) { quotes: '\00ab' '\00bb' '\201e' '\201c' } /* « » „ “ */ -:root:lang(sah), :not(:lang(sah)) > :lang(sah) { quotes: '\00ab' '\00bb' '\201e' '\201c' } /* « » „ “ */ -:root:lang(ru), :not(:lang(ru)) > :lang(ru) { quotes: '\00ab' '\00bb' '\201e' '\201c' } /* « » „ “ */ -:root:lang(uk), :not(:lang(uk)) > :lang(uk) { quotes: '\00ab' '\00bb' '\201e' '\201c' } /* « » „ “ */ +.wrap-lg { + --wrap-width: var(--wrap-width-lg); +} +.wrap_content { + /* default doesn't need styling */ +} -:root:lang(zgh), :not(:lang(zgh)) > :lang(zgh) { quotes: '\00ab' '\00bb' '\201e' '\201d' } /* « » „ ” */ -:root:lang(shi), :not(:lang(shi)) > :lang(shi) { quotes: '\00ab' '\00bb' '\201e' '\201d' } /* « » „ ” */ -:root:lang(shi-Latn), :not(:lang(shi-Latn)) > :lang(shi-Latn) { quotes: '\00ab' '\00bb' '\201e' '\201d' } /* « » „ ” */ +.wrap_content-fullBleed { + grid-column: 1 / -1; + width: 100%; + object-fit: cover; +} +} +/* + Components are optional and not imported here + You import them at the same level as mCSS: -:root:lang(am), :not(:lang(am)) > :lang(am) { quotes: '\00ab' '\00bb' '\2039' '\203a' } /* « » ‹ › */ -:root:lang(az-Cyrl), :not(:lang(az-Cyrl)) > :lang(az-Cyrl) { quotes: '\00ab' '\00bb' '\2039' '\203a' } /* « » ‹ › */ -:root:lang(fa), :not(:lang(fa)) > :lang(fa) { quotes: '\00ab' '\00bb' '\2039' '\203a' } /* « » ‹ › */ -:root:lang(fr-CH), :not(:lang(fr-CH)) > :lang(fr-CH) { quotes: '\00ab' '\00bb' '\2039' '\203a' } /* « » ‹ › */ -:root:lang(gsw), :not(:lang(gsw)) > :lang(gsw) { quotes: '\00ab' '\00bb' '\2039' '\203a' } /* « » ‹ › */ -:root:lang(jgo), :not(:lang(jgo)) > :lang(jgo) { quotes: '\00ab' '\00bb' '\2039' '\203a' } /* « » ‹ › */ -:root:lang(kkj), :not(:lang(kkj)) > :lang(kkj) { quotes: '\00ab' '\00bb' '\2039' '\203a' } /* « » ‹ › */ -:root:lang(mzn), :not(:lang(mzn)) > :lang(mzn) { quotes: '\00ab' '\00bb' '\2039' '\203a' } /* « » ‹ › */ + @import url(./framework/mcss.css); + @import url(./framework/mcss.components.css); + See the default theme for how to create your own. +*/ -:root:lang(fr), :not(:lang(fr)) > :lang(fr) { quotes: '\00ab' '\00bb' '\00ab' '\00bb' } /* « » « » */ -:root:lang(hy), :not(:lang(hy)) > :lang(hy) { quotes: '\00ab' '\00bb' '\00ab' '\00bb' } /* « » « » */ -:root:lang(yav), :not(:lang(yav)) > :lang(yav) { quotes: '\00ab' '\00bb' '\00ab' '\00bb' } /* « » « » */ +/* + `external` is an empty slot for third-party CSS (npm packages, plugins). + Import vendor stylesheets into it from your own global import: + @import url(../node_modules/some-package/widget.css) layer(external); -:root:lang(ja), :not(:lang(ja)) > :lang(ja) { quotes: '\300c' '\300d' '\300e' '\300f' } /* 「 」 『 』 */ -:root:lang(yue), :not(:lang(yue)) > :lang(yue) { quotes: '\300c' '\300d' '\300e' '\300f' } /* 「 」 『 』 */ -:root:lang(zh-Hant), :not(:lang(zh-Hant)) > :lang(zh-Hant) { quotes: '\300c' '\300d' '\300e' '\300f' } /* 「 」 『 』 */ -} -@layer elements{ + Vendor CSS in the layer loses to all your unlayered CSS, so it stays + easy to override. Write those overrides in a patch.* file (e.g. + patch.datepicker.css) in your own CSS folder. +*/ -/* ELEMENTS MEDIA/EMBEDDED */ +/* Helpers for local overrides. Every declaration is !important */ +/* (Use VERY sparingly, or you might as well use Tailwind…) */ +@layer helpers{ +/* HELPER COLORS */ +/* !important is intentional: important layered declarations beat unlayered CSS, so helpers win everywhere */ +/* Generated by src/tools/generate.help.color.cjs */ -/* better media defaults */ -audio, -canvas, -embed, -iframe, -img, -object, -picture, -svg, -video { - display: block; - vertical-align: middle; /* removes strange space-below if display changes */ - max-width: 100%; +.c-base-0 { + color: var(--base-0) !important; } -img, -svg, -video, -canvas { - height: auto; /* maintain intrinsic aspect ratios when `max-width` is applied. */ +.bdc-base-0 { + border-color: var(--base-0) !important; } -audio { - width: 100%; /* remove default 300px */ - max-width: var(--tera1); +.bgc-base-0 { + background-color: var(--base-0) !important; } -audio:not([controls]) { - display: none; +.c-base-50 { + color: var(--base-50) !important; } -canvas { +.bdc-base-50 { + border-color: var(--base-50) !important; } -figcaption { - font-style: italic; - font-size: var(--text-sm); +.bgc-base-50 { + background-color: var(--base-50) !important; } -figure { - /* caption at bottom or top */ - &:has(* + figcaption) { - figcaption { - margin-top: var(--figcaption-spacing); - } - } - &:has(figcaption + *) { - figcaption { - margin-bottom: var(--figcaption-spacing); - } - } +.c-base-100 { + color: var(--base-100) !important; } -iframe { - border: var(--border-sm) solid var(--ui-border-color); +.bdc-base-100 { + border-color: var(--base-100) !important; } -img { +.bgc-base-100 { + background-color: var(--base-100) !important; } -picture { +.c-base-200 { + color: var(--base-200) !important; } -svg { +.bdc-base-200 { + border-color: var(--base-200) !important; } -video { +.bgc-base-200 { + background-color: var(--base-200) !important; } + +.c-base-300 { + color: var(--base-300) !important; } -@layer elements{ -/* ELEMENTS TABLE */ +.bdc-base-300 { + border-color: var(--base-300) !important; +} -caption { - caption-side: bottom; - margin-top: var(--table-caption-spacing); - font-size: var(--text-sm); +.bgc-base-300 { + background-color: var(--base-300) !important; } -colgroup { +.c-base-400 { + color: var(--base-400) !important; } -table { - border-spacing: 0; - border: var(--table-border-width) solid var(--table-border-color); - border-radius: var(--table-border-radius); - background-color: var(--table-background-color); +.bdc-base-400 { + border-color: var(--base-400) !important; } -th, -td { - text-align: start; - padding: var(--table-padding); - border-bottom: var(--table-border-width) solid var(--table-border-color); - border-inline-start: var(--table-border-width) solid var(--table-border-color); +.bgc-base-400 { + background-color: var(--base-400) !important; } -tr { - th:first-child, - td:first-child { - border-inline-start-width: 0; - } +.c-base-500 { + color: var(--base-500) !important; } -thead { +.bdc-base-500 { + border-color: var(--base-500) !important; } -tbody { - tr:last-child { - th, - td { - border-bottom-width: 0; - } - } +.bgc-base-500 { + background-color: var(--base-500) !important; } -tfoot { - th, - td { - border-top: var(--table-border-width) solid var(--table-border-color); - border-bottom-width: 0; - } +.c-base-600 { + color: var(--base-600) !important; } + +.bdc-base-600 { + border-color: var(--base-600) !important; } -@layer elements{ -/* ELEMENTS FORM */ +.bgc-base-600 { + background-color: var(--base-600) !important; +} -::placeholder { - opacity: var(--o-4); +.c-base-700 { + color: var(--base-700) !important; } -/* Remove built-in form typography styles */ -input, -button, -textarea, -select { - font: inherit; - color: var(--text-color); +.bdc-base-700 { + border-color: var(--base-700) !important; } -button { - color: var(--text-color); +.bgc-base-700 { + background-color: var(--base-700) !important; } -datalist { +.c-base-800 { + color: var(--base-800) !important; } -fieldset { - border: var(--fieldset-border-width) solid var(--fieldset-border-color); - border-radius: var(--fieldset-border-radius); - padding: var(--fieldset-padding); +.bdc-base-800 { + border-color: var(--base-800) !important; +} - ul:has([type="checkbox"], [type="radio"]) { - padding-inline-start: 0; - } +.bgc-base-800 { + background-color: var(--base-800) !important; +} - > [aria-hidden] { - /* legend replacement */ - margin-bottom: var(--sm3); - font-size: var(--text-lg); - grid-column: 1 / -1; - } +.c-base-900 { + color: var(--base-900) !important; } -/* Only flag fields the user has actually interacted with */ -:is(input, select, textarea):user-invalid { - border-color: var(--input-border-color-invalid); +.bdc-base-900 { + border-color: var(--base-900) !important; } -input { - &:where(:not([type="checkbox"], [type="radio"])) { - height: var(--input-height); - } - &:where( - :not([type="color"], [type="file"], [type="reset"], [type="submit"]) - ) { - padding: var(--input-padding); - } - &:where(:not([type="color"])) { - border-radius: var(--input-border-radius); - } - &:where(:not([type="file"])) { - border: var(--input-border-width) solid var(--input-border-color); - } - &[type="file"] { - width: 100%; - accent-color: var(--text-color); - } - &[type="number"] { - padding-inline-end: var(--xs1); - } +.bgc-base-900 { + background-color: var(--base-900) !important; } -label { - display: block; - &:has(+ :is(input, select, textarea)) { - margin-bottom: var(--label-spacing); - } +.c-base-950 { + color: var(--base-950) !important; } -legend { - /* Visually hidden */ - /* replaced by fieldset > [aria-hidden] above */ - position: absolute; - overflow: hidden; - clip: rect(0 0 0 0); - clip-path: inset(50%); - width: 1px; - height: 1px; - white-space: nowrap; +.bdc-base-950 { + border-color: var(--base-950) !important; } -meter { - width: 100%; - background: var(--meter-track-color); - border-radius: var(--meter-border-radius); - height: var(--meter-height); - /* webkit */ - &::-webkit-meter-bar { - background: var(--meter-track-color); - } - &::-webkit-meter-bar, - &::-webkit-meter-optimum-value, - &::-webkit-meter-suboptimum-value, - &::-webkit-meter-even-less-good-value { - height: var(--meter-height); - border: none; - border-radius: var(--meter-border-radius); - } - &::-webkit-meter-even-less-good-value { - background: var(--meter-low-color); - } - &::-webkit-meter-suboptimum-value { - background: var(--meter-medium-color); - } - &::-webkit-meter-optimum-value { - background: var(--meter-high-color); - } - /* mozilla */ - &:-moz-meter-sub-sub-optimum::-moz-meter-bar { - background: var(--meter-low-color); - } - &:-moz-meter-sub-optimum::-moz-meter-bar { - background: var(--meter-medium-color); - } - &:-moz-meter-optimum::-moz-meter-bar { - background: var(--meter-high-color); - } +.bgc-base-950 { + background-color: var(--base-950) !important; } -optgroup { +.c-primary-50 { + color: var(--primary-50) !important; } -option { +.bdc-primary-50 { + border-color: var(--primary-50) !important; } -output { +.bgc-primary-50 { + background-color: var(--primary-50) !important; } -progress { - appearance: none; - width: 100%; - /* mozilla */ - height: var(--progress-height); - background: var(--progress-track-color); - border-radius: var(--progress-border-radius); - border: none; - &::-moz-progress-bar { - background: var(--progress-color); - border-radius: var(--progress-border-radius); - } - /* webkit */ - &::-webkit-progress-bar { - width: 100%; - background: var(--progress-track-color); - border-radius: var(--progress-border-radius); - height: var(--progress-height); - } - &::-webkit-progress-value { - background: var(--progress-color); - border-radius: var(--progress-border-radius); - } +.c-primary-100 { + color: var(--primary-100) !important; } -select { - /* derived, stays local */ - --split: calc(100% - var(--select-icon-size)); - display: flex; - appearance: none; - height: var(--input-height); - padding: var(--xs1) calc(var(--input-padding) + var(--md1)) var(--xs1) - var(--input-padding); - border: var(--input-border-width) solid var(--input-border-color); - border-radius: var(--input-border-radius); - background: linear-gradient( - to right, - var(--body-background-color) 0 var(--split), - var(--text-color) var(--split) 100% - ); - mask-image: - var(--select-icon), - linear-gradient(to right, transparent calc(var(--split) - 1px), red 0), - linear-gradient(red 0 0); - mask-size: var(--select-icon-size), auto, auto; - mask-position: - calc(100% - var(--xs1)) center, - 0 0, - 0 0; - mask-repeat: no-repeat; - mask-clip: padding-box, padding-box, border-box; - mask-origin: padding-box, padding-box, border-box; - mask-composite: add, exclude; +.bdc-primary-100 { + border-color: var(--primary-100) !important; +} - /* focus ring comes from the global :focus-visible rule (global.a11y.css) */ +.bgc-primary-100 { + background-color: var(--primary-100) !important; +} - &:disabled { - --disabled-color: light-dark( - hsl(from var(--text-color) h s 70%), - hsl(from var(--text-color) h s 40%) - ); - cursor: not-allowed; - color: var(--disabled-color); - background: linear-gradient( - to right, - var(--body-background-color) 0 var(--split), - var(--disabled-color) var(--split) 100% - ); - } +.c-primary-200 { + color: var(--primary-200) !important; +} - &[multiple] { - height: auto; - padding: var(--input-padding); - background: var(--body-background-color); - mask-image: none; - } +.bdc-primary-200 { + border-color: var(--primary-200) !important; } -textarea { - width: 100%; - padding: var(--input-padding); - border-radius: var(--input-border-radius); - border: var(--input-border-width) solid var(--input-border-color); - resize: vertical; - &:not([rows]) { - min-height: 6em; - } +.bgc-primary-200 { + background-color: var(--primary-200) !important; } + +.c-primary-300 { + color: var(--primary-300) !important; } -@layer elements{ -/* ELEMENTS INTERACTIVE */ +.bdc-primary-300 { + border-color: var(--primary-300) !important; +} -dialog { - /* body scrolling is stopped by adding .body-is-locked on */ - /* But it can be added to any element. See elements.sectioning.css > body { … } */ - min-width: var(--dialog-min-width); - max-width: var(--dialog-max-width); - padding: var(--dialog-padding); - border: var(--dialog-border-width) solid var(--dialog-border-color); - background-color: var(--dialog-background-color); - border-radius: var(--dialog-border-radius); +.bgc-primary-300 { + background-color: var(--primary-300) !important; +} - &::backdrop { - background: var(--dialog-backdrop-color); - opacity: var(--dialog-backdrop-opacity); - } +.c-primary-400 { + color: var(--primary-400) !important; +} - [aria-label="close pop-up"] { - position: absolute; - top: var(--xs3); - right: var( - --xs3 - ); /* deliberately physical: close button pinned to a visual corner */ - background: transparent; - border: none; - outline: none; - cursor: pointer; - } +.bdc-primary-400 { + border-color: var(--primary-400) !important; +} - p:last-of-type { - /* in case it's inside a .prose context */ - margin-bottom: 0; - } +.bgc-primary-400 { + background-color: var(--primary-400) !important; } -details { - padding: var(--details-padding); - border: var(--details-border-width) solid var(--details-border-color); - background-color: var(--details-background-color); - border-radius: var(--details-border-radius); - cursor: pointer; +.c-primary-500 { + color: var(--primary-500) !important; +} - summary { - display: flex; - justify-content: space-between; - font-weight: var(--bold); - &::-webkit-details-marker { - display: none; - } - &::after { - content: ""; - width: var(--details-icon-size); - height: var(--details-icon-size); - /* icon as a mask painted with the text color, so it follows the - color scheme (an SVG in background-image can't see currentColor - and always renders black) */ - background-color: currentColor; - mask-image: var(--details-icon); - mask-size: contain; - mask-repeat: no-repeat; - transition: transform var(--transition); - } - } +.bdc-primary-500 { + border-color: var(--primary-500) !important; +} - &[open] > summary { - margin-bottom: var(--details-spacing); - &::after { - transform: rotate(180deg); - } - } +.bgc-primary-500 { + background-color: var(--primary-500) !important; +} - p:last-of-type { - /* in case it's inside a .prose context */ - margin-bottom: 0; - } +.c-primary-600 { + color: var(--primary-600) !important; } + +.bdc-primary-600 { + border-color: var(--primary-600) !important; } -/* Global styles */ +.bgc-primary-600 { + background-color: var(--primary-600) !important; +} -@layer global{ -/* Unified keyboard focus ring (themable via the --focus-ring-* tokens). - Applies everywhere so keyboard users get one consistent treatment. */ -:focus-visible { - outline: var(--focus-ring-width) solid var(--focus-ring-color); - outline-offset: var(--focus-ring-offset); +.c-primary-700 { + color: var(--primary-700) !important; } -/* Skip-to-content link. Place it as the first element in , pointing - at the id of your main content; it stays off-screen until focused. */ -.a11y-skipLink { - position: fixed; - z-index: var(--z-top); - inset-block-start: -100vb; - inset-inline-start: 0; - padding: 0.75em 1.25em; - background-color: var(--body-background-color); - color: var(--text-color); +.bdc-primary-700 { + border-color: var(--primary-700) !important; } -.a11y-skipLink:focus { - inset-block-start: 0; +.bgc-primary-700 { + background-color: var(--primary-700) !important; } -/* hide in browser but accessible in screen readers */ -.a11y-srOnly { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - white-space: nowrap; - border: 0; +.c-primary-800 { + color: var(--primary-800) !important; } + +.bdc-primary-800 { + border-color: var(--primary-800) !important; } -@layer global{ +.bgc-primary-800 { + background-color: var(--primary-800) !important; +} -@keyframes fadeFromOpaque { - from { - opacity: 1; - } +.c-primary-900 { + color: var(--primary-900) !important; } -@keyframes fadeToOpaque { - to { - opacity: 1; - } +.bdc-primary-900 { + border-color: var(--primary-900) !important; } -@keyframes fadeFromTransparent { - from { - opacity: 0; - } +.bgc-primary-900 { + background-color: var(--primary-900) !important; } -@keyframes fadeToTransparent { - to { - opacity: 0; - } +.c-primary-950 { + color: var(--primary-950) !important; } + +.bdc-primary-950 { + border-color: var(--primary-950) !important; } -@layer global{ -/* GRID */ -/* Generated by src/tools/generate.global.grid.cjs */ -.grid { - display: grid; - --grid-tc: repeat(4, 1fr); - --grid-cs: 1; /* column start */ - --grid-ce: -1; /* column end */ - grid-template-columns: var(--grid-tc); - grid-column-gap: var(--grid-column-gap); - grid-row-gap: var(--grid-row-gap); +.bgc-primary-950 { + background-color: var(--primary-950) !important; } -.grid-flush { - grid-column-gap: 0; - grid-row-gap: 0; +.c-yes-100 { + color: var(--yes-100) !important; } -/* DEFAULT */ -.grid > .grid_item { display: block; appearance: none; -webkit-appearance: none } -.grid[col="1"] { --grid-tc: repeat(1, 1fr) } -.grid[col="2"] { --grid-tc: repeat(2, 1fr) } -.grid[col="3"] { --grid-tc: repeat(3, 1fr) } -.grid[col="4"] { --grid-tc: repeat(4, 1fr) } -.grid[col="5"] { --grid-tc: repeat(5, 1fr) } -.grid[col="6"] { --grid-tc: repeat(6, 1fr) } -.grid[col="7"] { --grid-tc: repeat(7, 1fr) } -.grid[col="8"] { --grid-tc: repeat(8, 1fr) } -.grid[col="9"] { --grid-tc: repeat(9, 1fr) } -.grid[col="10"] { --grid-tc: repeat(10, 1fr) } -.grid[col="11"] { --grid-tc: repeat(11, 1fr) } -.grid[col="12"] { --grid-tc: repeat(12, 1fr) } -.grid[col="13"] { --grid-tc: repeat(13, 1fr) } -.grid[col="14"] { --grid-tc: repeat(14, 1fr) } -.grid[col="15"] { --grid-tc: repeat(15, 1fr) } -.grid[col="16"] { --grid-tc: repeat(16, 1fr) } -.grid[col="17"] { --grid-tc: repeat(17, 1fr) } -.grid[col="18"] { --grid-tc: repeat(18, 1fr) } -.grid[col="19"] { --grid-tc: repeat(19, 1fr) } -.grid[col="20"] { --grid-tc: repeat(20, 1fr) } -.grid[col="21"] { --grid-tc: repeat(21, 1fr) } -.grid[col="22"] { --grid-tc: repeat(22, 1fr) } -.grid[col="23"] { --grid-tc: repeat(23, 1fr) } -.grid[col="24"] { --grid-tc: repeat(24, 1fr) } -/* span=start... */ -.grid > .grid_item[span^="1"] { --grid-cs: 1 } -.grid > .grid_item[span^="2"] { --grid-cs: 2 } -.grid > .grid_item[span^="3"] { --grid-cs: 3 } -.grid > .grid_item[span^="4"] { --grid-cs: 4 } -.grid > .grid_item[span^="5"] { --grid-cs: 5 } -.grid > .grid_item[span^="6"] { --grid-cs: 6 } -.grid > .grid_item[span^="7"] { --grid-cs: 7 } -.grid > .grid_item[span^="8"] { --grid-cs: 8 } -.grid > .grid_item[span^="9"] { --grid-cs: 9 } -.grid > .grid_item[span^="10"] { --grid-cs: 10 } -.grid > .grid_item[span^="11"] { --grid-cs: 11 } -.grid > .grid_item[span^="12"] { --grid-cs: 12 } -.grid > .grid_item[span^="13"] { --grid-cs: 13 } -.grid > .grid_item[span^="14"] { --grid-cs: 14 } -.grid > .grid_item[span^="15"] { --grid-cs: 15 } -.grid > .grid_item[span^="16"] { --grid-cs: 16 } -.grid > .grid_item[span^="17"] { --grid-cs: 17 } -.grid > .grid_item[span^="18"] { --grid-cs: 18 } -.grid > .grid_item[span^="19"] { --grid-cs: 19 } -.grid > .grid_item[span^="20"] { --grid-cs: 20 } -.grid > .grid_item[span^="21"] { --grid-cs: 21 } -.grid > .grid_item[span^="22"] { --grid-cs: 22 } -.grid > .grid_item[span^="23"] { --grid-cs: 23 } -.grid > .grid_item[span^="24"] { --grid-cs: 24 } -/* span=...+width, span=...-end */ -.grid > .grid_item[span$="+1"], .grid > .grid_item[span="1"] { --grid-ce: 1 } -.grid > .grid_item[span$="+2"], .grid > .grid_item[span$="-1"], .grid > .grid_item[span="2"] { --grid-ce: 2 } -.grid > .grid_item[span$="+3"], .grid > .grid_item[span$="-2"], .grid > .grid_item[span="3"] { --grid-ce: 3 } -.grid > .grid_item[span$="+4"], .grid > .grid_item[span$="-3"], .grid > .grid_item[span="4"] { --grid-ce: 4 } -.grid > .grid_item[span$="+5"], .grid > .grid_item[span$="-4"], .grid > .grid_item[span="5"] { --grid-ce: 5 } -.grid > .grid_item[span$="+6"], .grid > .grid_item[span$="-5"], .grid > .grid_item[span="6"] { --grid-ce: 6 } -.grid > .grid_item[span$="+7"], .grid > .grid_item[span$="-6"], .grid > .grid_item[span="7"] { --grid-ce: 7 } -.grid > .grid_item[span$="+8"], .grid > .grid_item[span$="-7"], .grid > .grid_item[span="8"] { --grid-ce: 8 } -.grid > .grid_item[span$="+9"], .grid > .grid_item[span$="-8"], .grid > .grid_item[span="9"] { --grid-ce: 9 } -.grid > .grid_item[span$="+10"], .grid > .grid_item[span$="-9"], .grid > .grid_item[span="10"] { --grid-ce: 10 } -.grid > .grid_item[span$="+11"], .grid > .grid_item[span$="-10"], .grid > .grid_item[span="11"] { --grid-ce: 11 } -.grid > .grid_item[span$="+12"], .grid > .grid_item[span$="-11"], .grid > .grid_item[span="12"] { --grid-ce: 12 } -.grid > .grid_item[span$="+13"], .grid > .grid_item[span$="-12"], .grid > .grid_item[span="13"] { --grid-ce: 13 } -.grid > .grid_item[span$="+14"], .grid > .grid_item[span$="-13"], .grid > .grid_item[span="14"] { --grid-ce: 14 } -.grid > .grid_item[span$="+15"], .grid > .grid_item[span$="-14"], .grid > .grid_item[span="15"] { --grid-ce: 15 } -.grid > .grid_item[span$="+16"], .grid > .grid_item[span$="-15"], .grid > .grid_item[span="16"] { --grid-ce: 16 } -.grid > .grid_item[span$="+17"], .grid > .grid_item[span$="-16"], .grid > .grid_item[span="17"] { --grid-ce: 17 } -.grid > .grid_item[span$="+18"], .grid > .grid_item[span$="-17"], .grid > .grid_item[span="18"] { --grid-ce: 18 } -.grid > .grid_item[span$="+19"], .grid > .grid_item[span$="-18"], .grid > .grid_item[span="19"] { --grid-ce: 19 } -.grid > .grid_item[span$="+20"], .grid > .grid_item[span$="-19"], .grid > .grid_item[span="20"] { --grid-ce: 20 } -.grid > .grid_item[span$="+21"], .grid > .grid_item[span$="-20"], .grid > .grid_item[span="21"] { --grid-ce: 21 } -.grid > .grid_item[span$="+22"], .grid > .grid_item[span$="-21"], .grid > .grid_item[span="22"] { --grid-ce: 22 } -.grid > .grid_item[span$="+23"], .grid > .grid_item[span$="-22"], .grid > .grid_item[span="23"] { --grid-ce: 23 } -.grid > .grid_item[span$="+24"], .grid > .grid_item[span$="-23"], .grid > .grid_item[span="24"] { --grid-ce: 24 } -.grid > .grid_item[span$="-24"] { --grid-ce: 25 } -/* connect vars */ -.grid > .grid_item[span] { grid-column-end: span var(--grid-ce) } -.grid > .grid_item[span*="+"], .grid > .grid_item[span*="-"], .grid > .grid_item[span*=".."] { - grid-column-start: var(--grid-cs) } -.grid > .grid_item[span*="-"], .grid > .grid_item[span*=".."] { - grid-column-end: var(--grid-ce) } -.grid > .grid_item[span="row"] { grid-column: 1 / -1 } -/* MD — window >= 768px */ -@media only screen and (width >= 768px) { - .grid[col-md="1"] { --grid-tc: repeat(1, 1fr) } - .grid[col-md="2"] { --grid-tc: repeat(2, 1fr) } - .grid[col-md="3"] { --grid-tc: repeat(3, 1fr) } - .grid[col-md="4"] { --grid-tc: repeat(4, 1fr) } - .grid[col-md="5"] { --grid-tc: repeat(5, 1fr) } - .grid[col-md="6"] { --grid-tc: repeat(6, 1fr) } - .grid[col-md="7"] { --grid-tc: repeat(7, 1fr) } - .grid[col-md="8"] { --grid-tc: repeat(8, 1fr) } - .grid[col-md="9"] { --grid-tc: repeat(9, 1fr) } - .grid[col-md="10"] { --grid-tc: repeat(10, 1fr) } - .grid[col-md="11"] { --grid-tc: repeat(11, 1fr) } - .grid[col-md="12"] { --grid-tc: repeat(12, 1fr) } - .grid[col-md="13"] { --grid-tc: repeat(13, 1fr) } - .grid[col-md="14"] { --grid-tc: repeat(14, 1fr) } - .grid[col-md="15"] { --grid-tc: repeat(15, 1fr) } - .grid[col-md="16"] { --grid-tc: repeat(16, 1fr) } - .grid[col-md="17"] { --grid-tc: repeat(17, 1fr) } - .grid[col-md="18"] { --grid-tc: repeat(18, 1fr) } - .grid[col-md="19"] { --grid-tc: repeat(19, 1fr) } - .grid[col-md="20"] { --grid-tc: repeat(20, 1fr) } - .grid[col-md="21"] { --grid-tc: repeat(21, 1fr) } - .grid[col-md="22"] { --grid-tc: repeat(22, 1fr) } - .grid[col-md="23"] { --grid-tc: repeat(23, 1fr) } - .grid[col-md="24"] { --grid-tc: repeat(24, 1fr) } +.bdc-yes-100 { + border-color: var(--yes-100) !important; +} - /* span-md=start... */ - .grid > .grid_item[span-md^="1"] { --grid-cs: 1 } - .grid > .grid_item[span-md^="2"] { --grid-cs: 2 } - .grid > .grid_item[span-md^="3"] { --grid-cs: 3 } - .grid > .grid_item[span-md^="4"] { --grid-cs: 4 } - .grid > .grid_item[span-md^="5"] { --grid-cs: 5 } - .grid > .grid_item[span-md^="6"] { --grid-cs: 6 } - .grid > .grid_item[span-md^="7"] { --grid-cs: 7 } - .grid > .grid_item[span-md^="8"] { --grid-cs: 8 } - .grid > .grid_item[span-md^="9"] { --grid-cs: 9 } - .grid > .grid_item[span-md^="10"] { --grid-cs: 10 } - .grid > .grid_item[span-md^="11"] { --grid-cs: 11 } - .grid > .grid_item[span-md^="12"] { --grid-cs: 12 } - .grid > .grid_item[span-md^="13"] { --grid-cs: 13 } - .grid > .grid_item[span-md^="14"] { --grid-cs: 14 } - .grid > .grid_item[span-md^="15"] { --grid-cs: 15 } - .grid > .grid_item[span-md^="16"] { --grid-cs: 16 } - .grid > .grid_item[span-md^="17"] { --grid-cs: 17 } - .grid > .grid_item[span-md^="18"] { --grid-cs: 18 } - .grid > .grid_item[span-md^="19"] { --grid-cs: 19 } - .grid > .grid_item[span-md^="20"] { --grid-cs: 20 } - .grid > .grid_item[span-md^="21"] { --grid-cs: 21 } - .grid > .grid_item[span-md^="22"] { --grid-cs: 22 } - .grid > .grid_item[span-md^="23"] { --grid-cs: 23 } - .grid > .grid_item[span-md^="24"] { --grid-cs: 24 } +.bgc-yes-100 { + background-color: var(--yes-100) !important; +} - /* span-md=...+width, span-md=...-end */ - .grid > .grid_item[span-md$="+1"], .grid > .grid_item[span-md="1"] { --grid-ce: 1 } - .grid > .grid_item[span-md$="+2"], .grid > .grid_item[span-md$="-1"], .grid > .grid_item[span-md="2"] { --grid-ce: 2 } - .grid > .grid_item[span-md$="+3"], .grid > .grid_item[span-md$="-2"], .grid > .grid_item[span-md="3"] { --grid-ce: 3 } - .grid > .grid_item[span-md$="+4"], .grid > .grid_item[span-md$="-3"], .grid > .grid_item[span-md="4"] { --grid-ce: 4 } - .grid > .grid_item[span-md$="+5"], .grid > .grid_item[span-md$="-4"], .grid > .grid_item[span-md="5"] { --grid-ce: 5 } - .grid > .grid_item[span-md$="+6"], .grid > .grid_item[span-md$="-5"], .grid > .grid_item[span-md="6"] { --grid-ce: 6 } - .grid > .grid_item[span-md$="+7"], .grid > .grid_item[span-md$="-6"], .grid > .grid_item[span-md="7"] { --grid-ce: 7 } - .grid > .grid_item[span-md$="+8"], .grid > .grid_item[span-md$="-7"], .grid > .grid_item[span-md="8"] { --grid-ce: 8 } - .grid > .grid_item[span-md$="+9"], .grid > .grid_item[span-md$="-8"], .grid > .grid_item[span-md="9"] { --grid-ce: 9 } - .grid > .grid_item[span-md$="+10"], .grid > .grid_item[span-md$="-9"], .grid > .grid_item[span-md="10"] { --grid-ce: 10 } - .grid > .grid_item[span-md$="+11"], .grid > .grid_item[span-md$="-10"], .grid > .grid_item[span-md="11"] { --grid-ce: 11 } - .grid > .grid_item[span-md$="+12"], .grid > .grid_item[span-md$="-11"], .grid > .grid_item[span-md="12"] { --grid-ce: 12 } - .grid > .grid_item[span-md$="+13"], .grid > .grid_item[span-md$="-12"], .grid > .grid_item[span-md="13"] { --grid-ce: 13 } - .grid > .grid_item[span-md$="+14"], .grid > .grid_item[span-md$="-13"], .grid > .grid_item[span-md="14"] { --grid-ce: 14 } - .grid > .grid_item[span-md$="+15"], .grid > .grid_item[span-md$="-14"], .grid > .grid_item[span-md="15"] { --grid-ce: 15 } - .grid > .grid_item[span-md$="+16"], .grid > .grid_item[span-md$="-15"], .grid > .grid_item[span-md="16"] { --grid-ce: 16 } - .grid > .grid_item[span-md$="+17"], .grid > .grid_item[span-md$="-16"], .grid > .grid_item[span-md="17"] { --grid-ce: 17 } - .grid > .grid_item[span-md$="+18"], .grid > .grid_item[span-md$="-17"], .grid > .grid_item[span-md="18"] { --grid-ce: 18 } - .grid > .grid_item[span-md$="+19"], .grid > .grid_item[span-md$="-18"], .grid > .grid_item[span-md="19"] { --grid-ce: 19 } - .grid > .grid_item[span-md$="+20"], .grid > .grid_item[span-md$="-19"], .grid > .grid_item[span-md="20"] { --grid-ce: 20 } - .grid > .grid_item[span-md$="+21"], .grid > .grid_item[span-md$="-20"], .grid > .grid_item[span-md="21"] { --grid-ce: 21 } - .grid > .grid_item[span-md$="+22"], .grid > .grid_item[span-md$="-21"], .grid > .grid_item[span-md="22"] { --grid-ce: 22 } - .grid > .grid_item[span-md$="+23"], .grid > .grid_item[span-md$="-22"], .grid > .grid_item[span-md="23"] { --grid-ce: 23 } - .grid > .grid_item[span-md$="+24"], .grid > .grid_item[span-md$="-23"], .grid > .grid_item[span-md="24"] { --grid-ce: 24 } - .grid > .grid_item[span-md$="-24"] { --grid-ce: 25 } +.c-yes-200 { + color: var(--yes-200) !important; +} - /* connect vars */ - .grid > .grid_item[span-md] { grid-column-end: span var(--grid-ce) } - .grid > .grid_item[span-md*="+"], .grid > .grid_item[span-md*="-"], .grid > .grid_item[span-md*=".."] { - grid-column-start: var(--grid-cs) } - .grid > .grid_item[span-md*="-"], .grid > .grid_item[span-md*=".."] { - grid-column-end: var(--grid-ce) } - .grid > .grid_item[span-md="row"] { grid-column: 1 / -1 } +.bdc-yes-200 { + border-color: var(--yes-200) !important; } -/* LARGE - width >= 1024 */ -@media only screen and (width >= 1024px) { - .grid[col-lg="1"] { --grid-tc: repeat(1, 1fr) } - .grid[col-lg="2"] { --grid-tc: repeat(2, 1fr) } - .grid[col-lg="3"] { --grid-tc: repeat(3, 1fr) } - .grid[col-lg="4"] { --grid-tc: repeat(4, 1fr) } - .grid[col-lg="5"] { --grid-tc: repeat(5, 1fr) } - .grid[col-lg="6"] { --grid-tc: repeat(6, 1fr) } - .grid[col-lg="7"] { --grid-tc: repeat(7, 1fr) } - .grid[col-lg="8"] { --grid-tc: repeat(8, 1fr) } - .grid[col-lg="9"] { --grid-tc: repeat(9, 1fr) } - .grid[col-lg="10"] { --grid-tc: repeat(10, 1fr) } - .grid[col-lg="11"] { --grid-tc: repeat(11, 1fr) } - .grid[col-lg="12"] { --grid-tc: repeat(12, 1fr) } - .grid[col-lg="13"] { --grid-tc: repeat(13, 1fr) } - .grid[col-lg="14"] { --grid-tc: repeat(14, 1fr) } - .grid[col-lg="15"] { --grid-tc: repeat(15, 1fr) } - .grid[col-lg="16"] { --grid-tc: repeat(16, 1fr) } - .grid[col-lg="17"] { --grid-tc: repeat(17, 1fr) } - .grid[col-lg="18"] { --grid-tc: repeat(18, 1fr) } - .grid[col-lg="19"] { --grid-tc: repeat(19, 1fr) } - .grid[col-lg="20"] { --grid-tc: repeat(20, 1fr) } - .grid[col-lg="21"] { --grid-tc: repeat(21, 1fr) } - .grid[col-lg="22"] { --grid-tc: repeat(22, 1fr) } - .grid[col-lg="23"] { --grid-tc: repeat(23, 1fr) } - .grid[col-lg="24"] { --grid-tc: repeat(24, 1fr) } - /* span-lg=start... */ - .grid > .grid_item[span-lg^="1"] { --grid-cs: 1 } - .grid > .grid_item[span-lg^="2"] { --grid-cs: 2 } - .grid > .grid_item[span-lg^="3"] { --grid-cs: 3 } - .grid > .grid_item[span-lg^="4"] { --grid-cs: 4 } - .grid > .grid_item[span-lg^="5"] { --grid-cs: 5 } - .grid > .grid_item[span-lg^="6"] { --grid-cs: 6 } - .grid > .grid_item[span-lg^="7"] { --grid-cs: 7 } - .grid > .grid_item[span-lg^="8"] { --grid-cs: 8 } - .grid > .grid_item[span-lg^="9"] { --grid-cs: 9 } - .grid > .grid_item[span-lg^="10"] { --grid-cs: 10 } - .grid > .grid_item[span-lg^="11"] { --grid-cs: 11 } - .grid > .grid_item[span-lg^="12"] { --grid-cs: 12 } - .grid > .grid_item[span-lg^="13"] { --grid-cs: 13 } - .grid > .grid_item[span-lg^="14"] { --grid-cs: 14 } - .grid > .grid_item[span-lg^="15"] { --grid-cs: 15 } - .grid > .grid_item[span-lg^="16"] { --grid-cs: 16 } - .grid > .grid_item[span-lg^="17"] { --grid-cs: 17 } - .grid > .grid_item[span-lg^="18"] { --grid-cs: 18 } - .grid > .grid_item[span-lg^="19"] { --grid-cs: 19 } - .grid > .grid_item[span-lg^="20"] { --grid-cs: 20 } - .grid > .grid_item[span-lg^="21"] { --grid-cs: 21 } - .grid > .grid_item[span-lg^="22"] { --grid-cs: 22 } - .grid > .grid_item[span-lg^="23"] { --grid-cs: 23 } - .grid > .grid_item[span-lg^="24"] { --grid-cs: 24 } +.bgc-yes-200 { + background-color: var(--yes-200) !important; +} - /* span-lg=...+width, span-lg=...-end */ - .grid > .grid_item[span-lg$="+1"], .grid > .grid_item[span-lg="1"] { --grid-ce: 1 } - .grid > .grid_item[span-lg$="+2"], .grid > .grid_item[span-lg$="-1"], .grid > .grid_item[span-lg="2"] { --grid-ce: 2 } - .grid > .grid_item[span-lg$="+3"], .grid > .grid_item[span-lg$="-2"], .grid > .grid_item[span-lg="3"] { --grid-ce: 3 } - .grid > .grid_item[span-lg$="+4"], .grid > .grid_item[span-lg$="-3"], .grid > .grid_item[span-lg="4"] { --grid-ce: 4 } - .grid > .grid_item[span-lg$="+5"], .grid > .grid_item[span-lg$="-4"], .grid > .grid_item[span-lg="5"] { --grid-ce: 5 } - .grid > .grid_item[span-lg$="+6"], .grid > .grid_item[span-lg$="-5"], .grid > .grid_item[span-lg="6"] { --grid-ce: 6 } - .grid > .grid_item[span-lg$="+7"], .grid > .grid_item[span-lg$="-6"], .grid > .grid_item[span-lg="7"] { --grid-ce: 7 } - .grid > .grid_item[span-lg$="+8"], .grid > .grid_item[span-lg$="-7"], .grid > .grid_item[span-lg="8"] { --grid-ce: 8 } - .grid > .grid_item[span-lg$="+9"], .grid > .grid_item[span-lg$="-8"], .grid > .grid_item[span-lg="9"] { --grid-ce: 9 } - .grid > .grid_item[span-lg$="+10"], .grid > .grid_item[span-lg$="-9"], .grid > .grid_item[span-lg="10"] { --grid-ce: 10 } - .grid > .grid_item[span-lg$="+11"], .grid > .grid_item[span-lg$="-10"], .grid > .grid_item[span-lg="11"] { --grid-ce: 11 } - .grid > .grid_item[span-lg$="+12"], .grid > .grid_item[span-lg$="-11"], .grid > .grid_item[span-lg="12"] { --grid-ce: 12 } - .grid > .grid_item[span-lg$="+13"], .grid > .grid_item[span-lg$="-12"], .grid > .grid_item[span-lg="13"] { --grid-ce: 13 } - .grid > .grid_item[span-lg$="+14"], .grid > .grid_item[span-lg$="-13"], .grid > .grid_item[span-lg="14"] { --grid-ce: 14 } - .grid > .grid_item[span-lg$="+15"], .grid > .grid_item[span-lg$="-14"], .grid > .grid_item[span-lg="15"] { --grid-ce: 15 } - .grid > .grid_item[span-lg$="+16"], .grid > .grid_item[span-lg$="-15"], .grid > .grid_item[span-lg="16"] { --grid-ce: 16 } - .grid > .grid_item[span-lg$="+17"], .grid > .grid_item[span-lg$="-16"], .grid > .grid_item[span-lg="17"] { --grid-ce: 17 } - .grid > .grid_item[span-lg$="+18"], .grid > .grid_item[span-lg$="-17"], .grid > .grid_item[span-lg="18"] { --grid-ce: 18 } - .grid > .grid_item[span-lg$="+19"], .grid > .grid_item[span-lg$="-18"], .grid > .grid_item[span-lg="19"] { --grid-ce: 19 } - .grid > .grid_item[span-lg$="+20"], .grid > .grid_item[span-lg$="-19"], .grid > .grid_item[span-lg="20"] { --grid-ce: 20 } - .grid > .grid_item[span-lg$="+21"], .grid > .grid_item[span-lg$="-20"], .grid > .grid_item[span-lg="21"] { --grid-ce: 21 } - .grid > .grid_item[span-lg$="+22"], .grid > .grid_item[span-lg$="-21"], .grid > .grid_item[span-lg="22"] { --grid-ce: 22 } - .grid > .grid_item[span-lg$="+23"], .grid > .grid_item[span-lg$="-22"], .grid > .grid_item[span-lg="23"] { --grid-ce: 23 } - .grid > .grid_item[span-lg$="+24"], .grid > .grid_item[span-lg$="-23"], .grid > .grid_item[span-lg="24"] { --grid-ce: 24 } - .grid > .grid_item[span-lg$="-24"] { --grid-ce: 25 } +.c-yes-300 { + color: var(--yes-300) !important; +} - /* connect vars */ - .grid > .grid_item[span-lg] { grid-column-end: span var(--grid-ce) } - .grid > .grid_item[span-lg*="+"], .grid > .grid_item[span-lg*="-"], .grid > .grid_item[span-lg*=".."] { - grid-column-start: var(--grid-cs) } - .grid > .grid_item[span-lg*="-"], .grid > .grid_item[span-lg*=".."] { - grid-column-end: var(--grid-ce) } - .grid > .grid_item[span-lg="row"] { grid-column: 1 / -1 } +.bdc-yes-300 { + border-color: var(--yes-300) !important; } -/* EXTRA LARGE - width >= 1440 */ -@media only screen and (width >= 1440px) { - .grid[col-xl="1"] { --grid-tc: repeat(1, 1fr) } - .grid[col-xl="2"] { --grid-tc: repeat(2, 1fr) } - .grid[col-xl="3"] { --grid-tc: repeat(3, 1fr) } - .grid[col-xl="4"] { --grid-tc: repeat(4, 1fr) } - .grid[col-xl="5"] { --grid-tc: repeat(5, 1fr) } - .grid[col-xl="6"] { --grid-tc: repeat(6, 1fr) } - .grid[col-xl="7"] { --grid-tc: repeat(7, 1fr) } - .grid[col-xl="8"] { --grid-tc: repeat(8, 1fr) } - .grid[col-xl="9"] { --grid-tc: repeat(9, 1fr) } - .grid[col-xl="10"] { --grid-tc: repeat(10, 1fr) } - .grid[col-xl="11"] { --grid-tc: repeat(11, 1fr) } - .grid[col-xl="12"] { --grid-tc: repeat(12, 1fr) } - .grid[col-xl="13"] { --grid-tc: repeat(13, 1fr) } - .grid[col-xl="14"] { --grid-tc: repeat(14, 1fr) } - .grid[col-xl="15"] { --grid-tc: repeat(15, 1fr) } - .grid[col-xl="16"] { --grid-tc: repeat(16, 1fr) } - .grid[col-xl="17"] { --grid-tc: repeat(17, 1fr) } - .grid[col-xl="18"] { --grid-tc: repeat(18, 1fr) } - .grid[col-xl="19"] { --grid-tc: repeat(19, 1fr) } - .grid[col-xl="20"] { --grid-tc: repeat(20, 1fr) } - .grid[col-xl="21"] { --grid-tc: repeat(21, 1fr) } - .grid[col-xl="22"] { --grid-tc: repeat(22, 1fr) } - .grid[col-xl="23"] { --grid-tc: repeat(23, 1fr) } - .grid[col-xl="24"] { --grid-tc: repeat(24, 1fr) } - /* span-xl=start... */ - .grid > .grid_item[span-xl^="1"] { --grid-cs: 1 } - .grid > .grid_item[span-xl^="2"] { --grid-cs: 2 } - .grid > .grid_item[span-xl^="3"] { --grid-cs: 3 } - .grid > .grid_item[span-xl^="4"] { --grid-cs: 4 } - .grid > .grid_item[span-xl^="5"] { --grid-cs: 5 } - .grid > .grid_item[span-xl^="6"] { --grid-cs: 6 } - .grid > .grid_item[span-xl^="7"] { --grid-cs: 7 } - .grid > .grid_item[span-xl^="8"] { --grid-cs: 8 } - .grid > .grid_item[span-xl^="9"] { --grid-cs: 9 } - .grid > .grid_item[span-xl^="10"] { --grid-cs: 10 } - .grid > .grid_item[span-xl^="11"] { --grid-cs: 11 } - .grid > .grid_item[span-xl^="12"] { --grid-cs: 12 } - .grid > .grid_item[span-xl^="13"] { --grid-cs: 13 } - .grid > .grid_item[span-xl^="14"] { --grid-cs: 14 } - .grid > .grid_item[span-xl^="15"] { --grid-cs: 15 } - .grid > .grid_item[span-xl^="16"] { --grid-cs: 16 } - .grid > .grid_item[span-xl^="17"] { --grid-cs: 17 } - .grid > .grid_item[span-xl^="18"] { --grid-cs: 18 } - .grid > .grid_item[span-xl^="19"] { --grid-cs: 19 } - .grid > .grid_item[span-xl^="20"] { --grid-cs: 20 } - .grid > .grid_item[span-xl^="21"] { --grid-cs: 21 } - .grid > .grid_item[span-xl^="22"] { --grid-cs: 22 } - .grid > .grid_item[span-xl^="23"] { --grid-cs: 23 } - .grid > .grid_item[span-xl^="24"] { --grid-cs: 24 } +.bgc-yes-300 { + background-color: var(--yes-300) !important; +} + +.c-yes-400 { + color: var(--yes-400) !important; +} + +.bdc-yes-400 { + border-color: var(--yes-400) !important; +} + +.bgc-yes-400 { + background-color: var(--yes-400) !important; +} + +.c-yes-500 { + color: var(--yes-500) !important; +} + +.bdc-yes-500 { + border-color: var(--yes-500) !important; +} + +.bgc-yes-500 { + background-color: var(--yes-500) !important; +} + +.c-no-100 { + color: var(--no-100) !important; +} + +.bdc-no-100 { + border-color: var(--no-100) !important; +} + +.bgc-no-100 { + background-color: var(--no-100) !important; +} + +.c-no-200 { + color: var(--no-200) !important; +} + +.bdc-no-200 { + border-color: var(--no-200) !important; +} + +.bgc-no-200 { + background-color: var(--no-200) !important; +} + +.c-no-300 { + color: var(--no-300) !important; +} - /* span-xl=...+width, span-xl=...-end */ - .grid > .grid_item[span-xl$="+1"], .grid > .grid_item[span-xl="1"] { --grid-ce: 1 } - .grid > .grid_item[span-xl$="+2"], .grid > .grid_item[span-xl$="-1"], .grid > .grid_item[span-xl="2"] { --grid-ce: 2 } - .grid > .grid_item[span-xl$="+3"], .grid > .grid_item[span-xl$="-2"], .grid > .grid_item[span-xl="3"] { --grid-ce: 3 } - .grid > .grid_item[span-xl$="+4"], .grid > .grid_item[span-xl$="-3"], .grid > .grid_item[span-xl="4"] { --grid-ce: 4 } - .grid > .grid_item[span-xl$="+5"], .grid > .grid_item[span-xl$="-4"], .grid > .grid_item[span-xl="5"] { --grid-ce: 5 } - .grid > .grid_item[span-xl$="+6"], .grid > .grid_item[span-xl$="-5"], .grid > .grid_item[span-xl="6"] { --grid-ce: 6 } - .grid > .grid_item[span-xl$="+7"], .grid > .grid_item[span-xl$="-6"], .grid > .grid_item[span-xl="7"] { --grid-ce: 7 } - .grid > .grid_item[span-xl$="+8"], .grid > .grid_item[span-xl$="-7"], .grid > .grid_item[span-xl="8"] { --grid-ce: 8 } - .grid > .grid_item[span-xl$="+9"], .grid > .grid_item[span-xl$="-8"], .grid > .grid_item[span-xl="9"] { --grid-ce: 9 } - .grid > .grid_item[span-xl$="+10"], .grid > .grid_item[span-xl$="-9"], .grid > .grid_item[span-xl="10"] { --grid-ce: 10 } - .grid > .grid_item[span-xl$="+11"], .grid > .grid_item[span-xl$="-10"], .grid > .grid_item[span-xl="11"] { --grid-ce: 11 } - .grid > .grid_item[span-xl$="+12"], .grid > .grid_item[span-xl$="-11"], .grid > .grid_item[span-xl="12"] { --grid-ce: 12 } - .grid > .grid_item[span-xl$="+13"], .grid > .grid_item[span-xl$="-12"], .grid > .grid_item[span-xl="13"] { --grid-ce: 13 } - .grid > .grid_item[span-xl$="+14"], .grid > .grid_item[span-xl$="-13"], .grid > .grid_item[span-xl="14"] { --grid-ce: 14 } - .grid > .grid_item[span-xl$="+15"], .grid > .grid_item[span-xl$="-14"], .grid > .grid_item[span-xl="15"] { --grid-ce: 15 } - .grid > .grid_item[span-xl$="+16"], .grid > .grid_item[span-xl$="-15"], .grid > .grid_item[span-xl="16"] { --grid-ce: 16 } - .grid > .grid_item[span-xl$="+17"], .grid > .grid_item[span-xl$="-16"], .grid > .grid_item[span-xl="17"] { --grid-ce: 17 } - .grid > .grid_item[span-xl$="+18"], .grid > .grid_item[span-xl$="-17"], .grid > .grid_item[span-xl="18"] { --grid-ce: 18 } - .grid > .grid_item[span-xl$="+19"], .grid > .grid_item[span-xl$="-18"], .grid > .grid_item[span-xl="19"] { --grid-ce: 19 } - .grid > .grid_item[span-xl$="+20"], .grid > .grid_item[span-xl$="-19"], .grid > .grid_item[span-xl="20"] { --grid-ce: 20 } - .grid > .grid_item[span-xl$="+21"], .grid > .grid_item[span-xl$="-20"], .grid > .grid_item[span-xl="21"] { --grid-ce: 21 } - .grid > .grid_item[span-xl$="+22"], .grid > .grid_item[span-xl$="-21"], .grid > .grid_item[span-xl="22"] { --grid-ce: 22 } - .grid > .grid_item[span-xl$="+23"], .grid > .grid_item[span-xl$="-22"], .grid > .grid_item[span-xl="23"] { --grid-ce: 23 } - .grid > .grid_item[span-xl$="+24"], .grid > .grid_item[span-xl$="-23"], .grid > .grid_item[span-xl="24"] { --grid-ce: 24 } - .grid > .grid_item[span-xl$="-24"] { --grid-ce: 25 } +.bdc-no-300 { + border-color: var(--no-300) !important; +} - /* connect vars */ - .grid > .grid_item[span-xl] { grid-column-end: span var(--grid-ce) } - .grid > .grid_item[span-xl*="+"], .grid > .grid_item[span-xl*="-"], .grid > .grid_item[span-xl*=".."] { - grid-column-start: var(--grid-cs) } - .grid > .grid_item[span-xl*="-"], .grid > .grid_item[span-xl*=".."] { - grid-column-end: var(--grid-ce) } - .grid > .grid_item[span-xl="row"] { grid-column: 1 / -1 } +.bgc-no-300 { + background-color: var(--no-300) !important; } + +.c-no-400 { + color: var(--no-400) !important; } -@layer global{ +.bdc-no-400 { + border-color: var(--no-400) !important; +} -/* - Page-level layout scaffolds. Every variant extends the .layout base: +.bgc-no-400 { + background-color: var(--no-400) !important; +} - -
-
- -
-
-
- +.c-no-500 { + color: var(--no-500) !important; +} - Widths come from the layout tokens in settings.ui.css: - --layout-content-width, --layout-aside-width, --layout-toc-width. -*/ +.bdc-no-500 { + border-color: var(--no-500) !important; +} -/* App shell: header / content / footer, with a sticky footer. Base for - every variant below, also usable on its own. */ -.layout { - display: flex; - flex-direction: column; - width: 100vw; - min-height: 100vh; +.bgc-no-500 { + background-color: var(--no-500) !important; +} - .layout_content { - flex: 1; - } +.c-maybe-100 { + color: var(--maybe-100) !important; } -/* The main column is a size container: container-responsive components - (Tiles) pick their column count from it instead of the viewport. - Named, so custom rules can target it with @container main. */ -.layout_content_main { - container: main / inline-size; +.bdc-maybe-100 { + border-color: var(--maybe-100) !important; } -/* Single centered reading column: articles, blog posts, legal pages. */ -.layout-centered { - .layout_content { - display: grid; - gap: var(--sm3); - grid-template-columns: 1fr minmax(0, var(--layout-content-width)) 1fr; - margin-top: var(--lg1); - margin-bottom: var(--sm1); - @media (width >= 768px) { - margin-top: var(--xl3); - margin-bottom: var(--md3); - gap: var(--md3); - } - } +.bgc-maybe-100 { + background-color: var(--maybe-100) !important; +} - .layout_content_main { - grid-column: 2; - } +.c-maybe-200 { + color: var(--maybe-200) !important; } -/* Aside + main: settings pages, simple docs, blogs with a nav column. - Single column below --md, aside following source order. */ -.layout-sidebar { - .layout_content { - @media (width >= 768px) { - display: grid; - grid-template-columns: var(--layout-aside-width) minmax(0, 1fr); - } - } +.bdc-maybe-200 { + border-color: var(--maybe-200) !important; +} - .layout_content_main { - padding: var(--sm2); - @media (width >= 768px) { - grid-row: 1; - grid-column: 2; - padding: var(--lg1) var(--md2); - } - } +.bgc-maybe-200 { + background-color: var(--maybe-200) !important; +} - .layout_content_aside { - @media (width >= 768px) { - grid-row: 1; - grid-column: 1; - padding: var(--lg1) var(--md3); - } - } +.c-maybe-300 { + color: var(--maybe-300) !important; } -/* Moves the aside to the reading end ("end", not "right": columns follow - the writing direction). Compose with .layout-sidebar. */ -.layout-sidebar-end { - .layout_content { - @media (width >= 768px) { - grid-template-columns: minmax(0, 1fr) var(--layout-aside-width); - } - } +.bdc-maybe-300 { + border-color: var(--maybe-300) !important; +} - .layout_content_main { - @media (width >= 768px) { - grid-column: 1; - } - } +.bgc-maybe-300 { + background-color: var(--maybe-300) !important; +} - .layout_content_aside { - @media (width >= 768px) { - grid-column: 2; - } - } +.c-maybe-400 { + color: var(--maybe-400) !important; } -/* Documentation shell: nav aside + main + table of contents. One column - below --md with both asides hidden (put that navigation in your header - menu), nav + main from --md, TOC joins from --lg. */ -.layout-docs { - .layout_content { - @media (width >= 768px) { - display: grid; - grid-template-columns: var(--layout-aside-width) minmax(0, 1fr); - } - @media (width >= 1024px) { - grid-template-columns: - var(--layout-aside-width) - minmax(0, var(--layout-content-width)) - var(--layout-toc-width); - } - } +.bdc-maybe-400 { + border-color: var(--maybe-400) !important; +} - .layout_content_main { - padding: var(--sm2); - @media (width >= 768px) { - grid-row: 1; - grid-column: 2; - padding: var(--lg1) var(--md2); - } - } +.bgc-maybe-400 { + background-color: var(--maybe-400) !important; +} - .layout_content_aside { - display: none; - @media (width >= 768px) { - display: block; - grid-row: 1; - grid-column: 1; - padding: var(--lg1) var(--md3); - } - } +.c-maybe-500 { + color: var(--maybe-500) !important; +} - /* Compose on the second aside: class="layout_content_aside - layout_content_aside-toc". Same specificity as the base element rule, - so these declarations must stay after it. */ - .layout_content_aside-toc { - @media (width >= 768px) { - display: none; - } - @media (width >= 1024px) { - display: block; - grid-row: 1; - grid-column: 3; - padding: var(--lg1) var(--md3); - } - } +.bdc-maybe-500 { + border-color: var(--maybe-500) !important; +} + +.bgc-maybe-500 { + background-color: var(--maybe-500) !important; +} +} +@layer helpers{ + +/* DEV TOOLS */ + +/* Debug-only helpers. You have to add the classes yourself. */ + +/* Baseline grid overlay: add .dev to while checking vertical rhythm. */ +body.dev { + --baseline: 8; + background-size: 100% calc(var(--baseline) * 1px) !important; + background-image: linear-gradient( + to bottom, + rgba(0, 0, 0, 0) calc((var(--baseline) - 1) * 1px), + hotpink calc(var(--baseline) * 1px) + ) !important; +} + +/* Fixed error toast, used by components to surface dev-time mistakes + (see Hero.astro's slide count check). */ +.dev-error { + position: fixed !important; + top: var(--md1) !important; + left: var(--md1) !important; + z-index: var(--z-top) !important; + padding: var(--sm1) !important; + font-size: 1rem !important; + color: var(--no-500) !important; + background: var(--no-100) !important; + border: 1px solid var(--no-500) !important; + border-radius: var(--radius-md) !important; } - -/* Two equal panes, stacked below --md: auth screens, "image + content" - landings. Panes are the direct children of .layout_content. */ -.layout-split { - .layout_content { - display: grid; - @media (width >= 768px) { - grid-template-columns: 1fr 1fr; - } - } } +@layer helpers{ -/* Full-viewport cover with centered content: landing, 404, coming soon. - dvh so mobile browser chrome never hides the content. */ -.layout-cover { - min-height: 100dvh; +/* HELPER OVERFLOW */ - .layout_content { - display: grid; - place-items: center; - } -} +.of-auto, +.overflow-auto { + overflow: auto !important; } -@layer global{ +.of-hidden, +.overflow-hidden { + overflow: hidden !important; +} -/* PROSE - Default style for text content */ +.of-clip, +.overflow-clip { + overflow: clip !important; +} -@scope (.prose) to (.not-prose) { - /* Component blocks mirror this heading-adjacent margin themselves in their - own files (.notice in component.notice.css; site-only .expressive-code, - .canIUse in their unlayered site CSS files): prose never reaches into - another component's classes. */ - :is(p, ul, ol, blockquote, table):has(+ :is(h1, h2, h3, h4)) { - margin-bottom: calc(var(--prose-spacing) * 2); - } +.of-visible, +.overflow-visible { + overflow: visible !important; +} - p, - ul, - ol, - dl { - margin-bottom: var(--prose-spacing); - p, - ul, - ol, - dl { - margin-bottom: 0; - } - } +.of-scroll, +.overflow-scroll { + overflow: scroll !important; +} - ul, - ol { - ul, - ol { - margin-inline-start: 0; - padding-inline-start: var(--sm2); - } - li { - margin-bottom: 0.5em; - &::marker { - color: light-dark(var(--base-300), var(--base-600)); - } - } - } +.of-x-auto, +.overflow-x-auto { + overflow-x: auto !important; +} - ul { - margin-inline-start: var(--sm2); - list-style-type: "→ "; - } +.of-y-auto, +.overflow-y-auto { + overflow-y: auto !important; +} - ol { - margin-inline-start: var(--md2); - list-style-type: decimal-leading-zero; - li::marker { - font-size: var(--text-sm); - } - } +.of-x-hidden, +.overflow-x-hidden { + overflow-x: hidden !important; +} - table { - margin-top: var(--md1); - margin-bottom: var(--md1); - } +.of-y-hidden, +.overflow-y-hidden { + overflow-y: hidden !important; } + +.of-x-clip, +.overflow-x-clip { + overflow-x: clip !important; } -@layer global{ +.of-y-clip, +.overflow-y-clip { + overflow-y: clip !important; +} -/* LAYOUT WRAP */ +.of-x-visible, +.overflow-x-visible { + overflow-x: visible !important; +} -.wrap { - display: grid; - grid-template-columns: 1fr var(--wrap-width) 1fr; +.of-y-visible, +.overflow-y-visible { + overflow-y: visible !important; +} - > *, - > astro-island > *, - > astro-slot > *, - > astro-static-slot > * { - grid-column: 2; - padding-inline: var(--wrap-spacing); - @media (width >= 768px) { - padding-inline: var(--wrap-md-spacing); - } - @media (width >= 1024px) { - padding-inline: var(--wrap-lg-spacing); - } - } +.of-x-scroll, +.overflow-x-scroll { + overflow-x: scroll !important; } -/* Width presets: a bare .wrap uses --wrap-width, which defaults to the md - size; the modifiers pin a specific size regardless of inherited values. */ -.wrap-sm { - --wrap-width: var(--wrap-width-sm); +.of-y-scroll, +.overflow-y-scroll { + overflow-y: scroll !important; } -.wrap-md { - --wrap-width: var(--wrap-width-md); +/* HELPER POSITION */ + +.position-static { + position: static !important; } -.wrap-lg { - --wrap-width: var(--wrap-width-lg); +.position-fixed { + position: fixed !important; } -.wrap_content { - /* default doesn't need styling */ +.position-absolute { + position: absolute !important; } -.wrap_content-fullBleed { - grid-column: 1 / -1; - width: 100%; - object-fit: cover; +.position-relative { + position: relative !important; } + +.position-sticky { + position: sticky !important; } -/* - No component is imported here either: this entry only declares the empty - `components` slot above. The component library lives in its own entry, - mcss.components.css, so consumers who build their own components can skip - it entirely. Import it alongside this file (any order: the slot declared - here decides priority) to get the full library. -*/ +/* HELPER VISIBILITY */ -/* Helpers for local overrides. Every declaration is !important on purpose: */ -/* important layered declarations beat unlayered CSS, so helpers win over */ -/* everything, including consumer CSS. */ -/* (Use VERY sparingly, or you might as well use Tailwind…) */ -@layer helpers{ -/* HELPER COLORS */ -/* !important is intentional: important layered declarations beat unlayered CSS, so helpers win everywhere */ -/* Generated by src/tools/generate.help.color.cjs */ +.visibility-visible { + visibility: visible !important; +} -.c-base-0 { - color: var(--base-0) !important; +.visibility-hidden { + visibility: hidden !important; } -.bdc-base-0 { - border-color: var(--base-0) !important; +.visibility-collapse { + visibility: collapse !important; } -.bgc-base-0 { - background-color: var(--base-0) !important; +/* HELPER Z-INDEX */ + +.z-auto { + z-index: auto !important; } -.c-base-50 { - color: var(--base-50) !important; +.z-bottom { + z-index: var(--z-bottom) !important; } -.bdc-base-50 { - border-color: var(--base-50) !important; +.z-0 { + z-index: var(--z-0) !important; } -.bgc-base-50 { - background-color: var(--base-50) !important; +.z-1 { + z-index: var(--z-1) !important; } -.c-base-100 { - color: var(--base-100) !important; +.z-2 { + z-index: var(--z-2) !important; } -.bdc-base-100 { - border-color: var(--base-100) !important; +.z-3 { + z-index: var(--z-3) !important; } -.bgc-base-100 { - background-color: var(--base-100) !important; +.z-4 { + z-index: var(--z-4) !important; } -.c-base-200 { - color: var(--base-200) !important; +.z-5 { + z-index: var(--z-5) !important; } -.bdc-base-200 { - border-color: var(--base-200) !important; +.z-top { + z-index: var(--z-top) !important; +} } +@layer helpers{ -.bgc-base-200 { - background-color: var(--base-200) !important; +/* HELPER OPACITY */ + +.o-0 { + opacity: var(--o-0) !important; } -.c-base-300 { - color: var(--base-300) !important; +.o-1 { + opacity: var(--o-1) !important; } -.bdc-base-300 { - border-color: var(--base-300) !important; +.o-2 { + opacity: var(--o-2) !important; } -.bgc-base-300 { - background-color: var(--base-300) !important; +.o-3 { + opacity: var(--o-3) !important; } -.c-base-400 { - color: var(--base-400) !important; +.o-4 { + opacity: var(--o-4) !important; } -.bdc-base-400 { - border-color: var(--base-400) !important; +.o-5 { + opacity: var(--o-5) !important; } - -.bgc-base-400 { - background-color: var(--base-400) !important; } +@layer helpers{ -.c-base-500 { - color: var(--base-500) !important; +/* HELPER RATIOS */ + +.ar-square { + aspect-ratio: var(--ar-square) !important; } -.bdc-base-500 { - border-color: var(--base-500) !important; +.ar-landscape { + aspect-ratio: var(--ar-landscape) !important; } -.bgc-base-500 { - background-color: var(--base-500) !important; +.ar-portrait { + aspect-ratio: var(--ar-portrait) !important; } -.c-base-600 { - color: var(--base-600) !important; +.ar-widescreen { + aspect-ratio: var(--ar-widescreen) !important; } -.bdc-base-600 { - border-color: var(--base-600) !important; +.ar-golden { + aspect-ratio: var(--ar-golden) !important; +} } +@layer helpers{ +/* HELPER SPACING */ +/* !important is intentional: important layered declarations beat unlayered CSS, so helpers win everywhere */ +/* Generated by src/tools/generate.help.spacing.cjs */ -.bgc-base-600 { - background-color: var(--base-600) !important; +.w-0 { + width: 0 !important; } -.c-base-700 { - color: var(--base-700) !important; +.h-0 { + height: 0 !important; } -.bdc-base-700 { - border-color: var(--base-700) !important; +.m-0 { + margin: 0 !important; } -.bgc-base-700 { - background-color: var(--base-700) !important; +.mt-0 { + margin-top: 0 !important; } -.c-base-800 { - color: var(--base-800) !important; +.mb-0 { + margin-bottom: 0 !important; } -.bdc-base-800 { - border-color: var(--base-800) !important; +.ml-0 { + margin-left: 0 !important; } -.bgc-base-800 { - background-color: var(--base-800) !important; +.mr-0 { + margin-right: 0 !important; } -.c-base-900 { - color: var(--base-900) !important; +.mis-0 { + margin-inline-start: 0 !important; } -.bdc-base-900 { - border-color: var(--base-900) !important; +.mie-0 { + margin-inline-end: 0 !important; } -.bgc-base-900 { - background-color: var(--base-900) !important; +.p-0 { + padding: 0 !important; } -.c-base-950 { - color: var(--base-950) !important; +.pt-0 { + padding-top: 0 !important; } -.bdc-base-950 { - border-color: var(--base-950) !important; +.pb-0 { + padding-bottom: 0 !important; } -.bgc-base-950 { - background-color: var(--base-950) !important; +.pl-0 { + padding-left: 0 !important; } -.c-primary-50 { - color: var(--primary-50) !important; +.pr-0 { + padding-right: 0 !important; } -.bdc-primary-50 { - border-color: var(--primary-50) !important; +.pis-0 { + padding-inline-start: 0 !important; } -.bgc-primary-50 { - background-color: var(--primary-50) !important; +.pie-0 { + padding-inline-end: 0 !important; } -.c-primary-100 { - color: var(--primary-100) !important; +.w-xs1 { + width: var(--xs1) !important; } -.bdc-primary-100 { - border-color: var(--primary-100) !important; +.h-xs1 { + height: var(--xs1) !important; } -.bgc-primary-100 { - background-color: var(--primary-100) !important; +.m-xs1 { + margin: var(--xs1) !important; } -.c-primary-200 { - color: var(--primary-200) !important; +.mt-xs1 { + margin-top: var(--xs1) !important; } -.bdc-primary-200 { - border-color: var(--primary-200) !important; +.mb-xs1 { + margin-bottom: var(--xs1) !important; } -.bgc-primary-200 { - background-color: var(--primary-200) !important; +.ml-xs1 { + margin-left: var(--xs1) !important; } -.c-primary-300 { - color: var(--primary-300) !important; +.mr-xs1 { + margin-right: var(--xs1) !important; } -.bdc-primary-300 { - border-color: var(--primary-300) !important; +.mis-xs1 { + margin-inline-start: var(--xs1) !important; } -.bgc-primary-300 { - background-color: var(--primary-300) !important; +.mie-xs1 { + margin-inline-end: var(--xs1) !important; } -.c-primary-400 { - color: var(--primary-400) !important; +.p-xs1 { + padding: var(--xs1) !important; } -.bdc-primary-400 { - border-color: var(--primary-400) !important; +.pt-xs1 { + padding-top: var(--xs1) !important; } -.bgc-primary-400 { - background-color: var(--primary-400) !important; +.pb-xs1 { + padding-bottom: var(--xs1) !important; } -.c-primary-500 { - color: var(--primary-500) !important; +.pl-xs1 { + padding-left: var(--xs1) !important; } -.bdc-primary-500 { - border-color: var(--primary-500) !important; +.pr-xs1 { + padding-right: var(--xs1) !important; } -.bgc-primary-500 { - background-color: var(--primary-500) !important; +.pis-xs1 { + padding-inline-start: var(--xs1) !important; } -.c-primary-600 { - color: var(--primary-600) !important; +.pie-xs1 { + padding-inline-end: var(--xs1) !important; } -.bdc-primary-600 { - border-color: var(--primary-600) !important; +.w-xs2 { + width: var(--xs2) !important; } -.bgc-primary-600 { - background-color: var(--primary-600) !important; +.h-xs2 { + height: var(--xs2) !important; } -.c-primary-700 { - color: var(--primary-700) !important; +.m-xs2 { + margin: var(--xs2) !important; } -.bdc-primary-700 { - border-color: var(--primary-700) !important; +.mt-xs2 { + margin-top: var(--xs2) !important; } -.bgc-primary-700 { - background-color: var(--primary-700) !important; +.mb-xs2 { + margin-bottom: var(--xs2) !important; } -.c-primary-800 { - color: var(--primary-800) !important; +.ml-xs2 { + margin-left: var(--xs2) !important; } -.bdc-primary-800 { - border-color: var(--primary-800) !important; +.mr-xs2 { + margin-right: var(--xs2) !important; } -.bgc-primary-800 { - background-color: var(--primary-800) !important; +.mis-xs2 { + margin-inline-start: var(--xs2) !important; } -.c-primary-900 { - color: var(--primary-900) !important; +.mie-xs2 { + margin-inline-end: var(--xs2) !important; } -.bdc-primary-900 { - border-color: var(--primary-900) !important; +.p-xs2 { + padding: var(--xs2) !important; } -.bgc-primary-900 { - background-color: var(--primary-900) !important; +.pt-xs2 { + padding-top: var(--xs2) !important; } -.c-primary-950 { - color: var(--primary-950) !important; +.pb-xs2 { + padding-bottom: var(--xs2) !important; } -.bdc-primary-950 { - border-color: var(--primary-950) !important; +.pl-xs2 { + padding-left: var(--xs2) !important; } -.bgc-primary-950 { - background-color: var(--primary-950) !important; +.pr-xs2 { + padding-right: var(--xs2) !important; } -.c-yes-100 { - color: var(--yes-100) !important; +.pis-xs2 { + padding-inline-start: var(--xs2) !important; } -.bdc-yes-100 { - border-color: var(--yes-100) !important; +.pie-xs2 { + padding-inline-end: var(--xs2) !important; } -.bgc-yes-100 { - background-color: var(--yes-100) !important; +.w-xs3 { + width: var(--xs3) !important; } -.c-yes-200 { - color: var(--yes-200) !important; +.h-xs3 { + height: var(--xs3) !important; } -.bdc-yes-200 { - border-color: var(--yes-200) !important; +.m-xs3 { + margin: var(--xs3) !important; } -.bgc-yes-200 { - background-color: var(--yes-200) !important; +.mt-xs3 { + margin-top: var(--xs3) !important; } -.c-yes-300 { - color: var(--yes-300) !important; +.mb-xs3 { + margin-bottom: var(--xs3) !important; } -.bdc-yes-300 { - border-color: var(--yes-300) !important; +.ml-xs3 { + margin-left: var(--xs3) !important; } -.bgc-yes-300 { - background-color: var(--yes-300) !important; +.mr-xs3 { + margin-right: var(--xs3) !important; } -.c-yes-400 { - color: var(--yes-400) !important; +.mis-xs3 { + margin-inline-start: var(--xs3) !important; } -.bdc-yes-400 { - border-color: var(--yes-400) !important; +.mie-xs3 { + margin-inline-end: var(--xs3) !important; } -.bgc-yes-400 { - background-color: var(--yes-400) !important; +.p-xs3 { + padding: var(--xs3) !important; } -.c-yes-500 { - color: var(--yes-500) !important; +.pt-xs3 { + padding-top: var(--xs3) !important; } -.bdc-yes-500 { - border-color: var(--yes-500) !important; +.pb-xs3 { + padding-bottom: var(--xs3) !important; } -.bgc-yes-500 { - background-color: var(--yes-500) !important; +.pl-xs3 { + padding-left: var(--xs3) !important; } -.c-no-100 { - color: var(--no-100) !important; +.pr-xs3 { + padding-right: var(--xs3) !important; } -.bdc-no-100 { - border-color: var(--no-100) !important; +.pis-xs3 { + padding-inline-start: var(--xs3) !important; } -.bgc-no-100 { - background-color: var(--no-100) !important; +.pie-xs3 { + padding-inline-end: var(--xs3) !important; } -.c-no-200 { - color: var(--no-200) !important; +.w-sm1 { + width: var(--sm1) !important; } -.bdc-no-200 { - border-color: var(--no-200) !important; +.h-sm1 { + height: var(--sm1) !important; } -.bgc-no-200 { - background-color: var(--no-200) !important; +.m-sm1 { + margin: var(--sm1) !important; } -.c-no-300 { - color: var(--no-300) !important; +.mt-sm1 { + margin-top: var(--sm1) !important; } -.bdc-no-300 { - border-color: var(--no-300) !important; +.mb-sm1 { + margin-bottom: var(--sm1) !important; } -.bgc-no-300 { - background-color: var(--no-300) !important; +.ml-sm1 { + margin-left: var(--sm1) !important; } -.c-no-400 { - color: var(--no-400) !important; +.mr-sm1 { + margin-right: var(--sm1) !important; } -.bdc-no-400 { - border-color: var(--no-400) !important; +.mis-sm1 { + margin-inline-start: var(--sm1) !important; } -.bgc-no-400 { - background-color: var(--no-400) !important; +.mie-sm1 { + margin-inline-end: var(--sm1) !important; } -.c-no-500 { - color: var(--no-500) !important; +.p-sm1 { + padding: var(--sm1) !important; } -.bdc-no-500 { - border-color: var(--no-500) !important; +.pt-sm1 { + padding-top: var(--sm1) !important; } -.bgc-no-500 { - background-color: var(--no-500) !important; +.pb-sm1 { + padding-bottom: var(--sm1) !important; } -.c-maybe-100 { - color: var(--maybe-100) !important; +.pl-sm1 { + padding-left: var(--sm1) !important; } -.bdc-maybe-100 { - border-color: var(--maybe-100) !important; +.pr-sm1 { + padding-right: var(--sm1) !important; } -.bgc-maybe-100 { - background-color: var(--maybe-100) !important; +.pis-sm1 { + padding-inline-start: var(--sm1) !important; } -.c-maybe-200 { - color: var(--maybe-200) !important; +.pie-sm1 { + padding-inline-end: var(--sm1) !important; } -.bdc-maybe-200 { - border-color: var(--maybe-200) !important; +.w-sm2 { + width: var(--sm2) !important; } -.bgc-maybe-200 { - background-color: var(--maybe-200) !important; +.h-sm2 { + height: var(--sm2) !important; } -.c-maybe-300 { - color: var(--maybe-300) !important; +.m-sm2 { + margin: var(--sm2) !important; } -.bdc-maybe-300 { - border-color: var(--maybe-300) !important; +.mt-sm2 { + margin-top: var(--sm2) !important; } -.bgc-maybe-300 { - background-color: var(--maybe-300) !important; +.mb-sm2 { + margin-bottom: var(--sm2) !important; } -.c-maybe-400 { - color: var(--maybe-400) !important; +.ml-sm2 { + margin-left: var(--sm2) !important; } -.bdc-maybe-400 { - border-color: var(--maybe-400) !important; +.mr-sm2 { + margin-right: var(--sm2) !important; } -.bgc-maybe-400 { - background-color: var(--maybe-400) !important; +.mis-sm2 { + margin-inline-start: var(--sm2) !important; } -.c-maybe-500 { - color: var(--maybe-500) !important; +.mie-sm2 { + margin-inline-end: var(--sm2) !important; } -.bdc-maybe-500 { - border-color: var(--maybe-500) !important; +.p-sm2 { + padding: var(--sm2) !important; } -.bgc-maybe-500 { - background-color: var(--maybe-500) !important; +.pt-sm2 { + padding-top: var(--sm2) !important; } + +.pb-sm2 { + padding-bottom: var(--sm2) !important; } -@layer helpers{ -/* DEV TOOLS */ +.pl-sm2 { + padding-left: var(--sm2) !important; +} -/* Debug-only helpers. You have to add the classes yourself. */ +.pr-sm2 { + padding-right: var(--sm2) !important; +} -/* Baseline grid overlay: add .dev to while checking vertical rhythm. */ -body.dev { - --baseline: 8; - background-size: 100% calc(var(--baseline) * 1px) !important; - background-image: linear-gradient( - to bottom, - rgba(0, 0, 0, 0) calc((var(--baseline) - 1) * 1px), - hotpink calc(var(--baseline) * 1px) - ) !important; +.pis-sm2 { + padding-inline-start: var(--sm2) !important; } -/* Fixed error toast, used by components to surface dev-time mistakes - (see Hero.astro's slide count check). */ -.dev-error { - position: fixed !important; - top: var(--md1) !important; - left: var(--md1) !important; - z-index: var(--z-top) !important; - padding: var(--sm1) !important; - font-size: 1rem !important; - color: var(--danger-500) !important; - background: var(--danger-100) !important; - border: 1px solid var(--danger-500) !important; - border-radius: var(--radius-md) !important; +.pie-sm2 { + padding-inline-end: var(--sm2) !important; } + +.w-sm3 { + width: var(--sm3) !important; } -@layer helpers{ -/* HELPER OVERFLOW */ +.h-sm3 { + height: var(--sm3) !important; +} -.of-auto, -.overflow-auto { - overflow: auto !important; +.m-sm3 { + margin: var(--sm3) !important; } -.of-hidden, -.overflow-hidden { - overflow: hidden !important; +.mt-sm3 { + margin-top: var(--sm3) !important; } -.of-clip, -.overflow-clip { - overflow: clip !important; +.mb-sm3 { + margin-bottom: var(--sm3) !important; } -.of-visible, -.overflow-visible { - overflow: visible !important; +.ml-sm3 { + margin-left: var(--sm3) !important; } -.of-scroll, -.overflow-scroll { - overflow: scroll !important; +.mr-sm3 { + margin-right: var(--sm3) !important; } -.of-x-auto, -.overflow-x-auto { - overflow-x: auto !important; +.mis-sm3 { + margin-inline-start: var(--sm3) !important; } -.of-y-auto, -.overflow-y-auto { - overflow-y: auto !important; +.mie-sm3 { + margin-inline-end: var(--sm3) !important; } -.of-x-hidden, -.overflow-x-hidden { - overflow-x: hidden !important; +.p-sm3 { + padding: var(--sm3) !important; } -.of-y-hidden, -.overflow-y-hidden { - overflow-y: hidden !important; +.pt-sm3 { + padding-top: var(--sm3) !important; } -.of-x-clip, -.overflow-x-clip { - overflow-x: clip !important; +.pb-sm3 { + padding-bottom: var(--sm3) !important; } -.of-y-clip, -.overflow-y-clip { - overflow-y: clip !important; +.pl-sm3 { + padding-left: var(--sm3) !important; } -.of-x-visible, -.overflow-x-visible { - overflow-x: visible !important; +.pr-sm3 { + padding-right: var(--sm3) !important; } -.of-y-visible, -.overflow-y-visible { - overflow-y: visible !important; +.pis-sm3 { + padding-inline-start: var(--sm3) !important; } -.of-x-scroll, -.overflow-x-scroll { - overflow-x: scroll !important; +.pie-sm3 { + padding-inline-end: var(--sm3) !important; } -.of-y-scroll, -.overflow-y-scroll { - overflow-y: scroll !important; +.w-md1 { + width: var(--md1) !important; } -/* HELPER POSITION */ +.h-md1 { + height: var(--md1) !important; +} -.position-static { - position: static !important; +.m-md1 { + margin: var(--md1) !important; } -.position-fixed { - position: fixed !important; +.mt-md1 { + margin-top: var(--md1) !important; } -.position-absolute { - position: absolute !important; +.mb-md1 { + margin-bottom: var(--md1) !important; } -.position-relative { - position: relative !important; +.ml-md1 { + margin-left: var(--md1) !important; } -.position-sticky { - position: sticky !important; +.mr-md1 { + margin-right: var(--md1) !important; } -/* HELPER VISIBILITY */ +.mis-md1 { + margin-inline-start: var(--md1) !important; +} -.visibility-visible { - visibility: visible !important; +.mie-md1 { + margin-inline-end: var(--md1) !important; } -.visibility-hidden { - visibility: hidden !important; +.p-md1 { + padding: var(--md1) !important; } -.visibility-collapse { - visibility: collapse !important; +.pt-md1 { + padding-top: var(--md1) !important; } -/* HELPER Z-INDEX */ +.pb-md1 { + padding-bottom: var(--md1) !important; +} -.z-auto { - z-index: auto !important; +.pl-md1 { + padding-left: var(--md1) !important; } -.z-bottom { - z-index: var(--z-bottom) !important; +.pr-md1 { + padding-right: var(--md1) !important; } -.z-0 { - z-index: var(--z-0) !important; +.pis-md1 { + padding-inline-start: var(--md1) !important; } -.z-1 { - z-index: var(--z-1) !important; +.pie-md1 { + padding-inline-end: var(--md1) !important; } -.z-2 { - z-index: var(--z-2) !important; +.w-md2 { + width: var(--md2) !important; } -.z-3 { - z-index: var(--z-3) !important; +.h-md2 { + height: var(--md2) !important; } -.z-4 { - z-index: var(--z-4) !important; +.m-md2 { + margin: var(--md2) !important; } -.z-5 { - z-index: var(--z-5) !important; +.mt-md2 { + margin-top: var(--md2) !important; } -.z-top { - z-index: var(--z-top) !important; +.mb-md2 { + margin-bottom: var(--md2) !important; } + +.ml-md2 { + margin-left: var(--md2) !important; } -@layer helpers{ -/* HELPER OPACITY */ +.mr-md2 { + margin-right: var(--md2) !important; +} -.o-0 { - opacity: var(--o-0) !important; +.mis-md2 { + margin-inline-start: var(--md2) !important; } -.o-1 { - opacity: var(--o-1) !important; +.mie-md2 { + margin-inline-end: var(--md2) !important; } -.o-2 { - opacity: var(--o-2) !important; +.p-md2 { + padding: var(--md2) !important; } -.o-3 { - opacity: var(--o-3) !important; +.pt-md2 { + padding-top: var(--md2) !important; } -.o-4 { - opacity: var(--o-4) !important; +.pb-md2 { + padding-bottom: var(--md2) !important; } -.o-5 { - opacity: var(--o-5) !important; +.pl-md2 { + padding-left: var(--md2) !important; } + +.pr-md2 { + padding-right: var(--md2) !important; } -@layer helpers{ -/* HELPER RATIOS */ +.pis-md2 { + padding-inline-start: var(--md2) !important; +} -.ar-square { - aspect-ratio: var(--ar-square) !important; +.pie-md2 { + padding-inline-end: var(--md2) !important; } -.ar-landscape { - aspect-ratio: var(--ar-landscape) !important; +.w-md3 { + width: var(--md3) !important; } -.ar-portrait { - aspect-ratio: var(--ar-portrait) !important; +.h-md3 { + height: var(--md3) !important; } -.ar-widescreen { - aspect-ratio: var(--ar-widescreen) !important; +.m-md3 { + margin: var(--md3) !important; } -.ar-golden { - aspect-ratio: var(--ar-golden) !important; +.mt-md3 { + margin-top: var(--md3) !important; } + +.mb-md3 { + margin-bottom: var(--md3) !important; } -@layer helpers{ -/* HELPER SPACING */ -/* !important is intentional: important layered declarations beat unlayered CSS, so helpers win everywhere */ -/* Generated by src/tools/generate.help.spacing.cjs */ -.w-0 { - width: 0 !important; +.ml-md3 { + margin-left: var(--md3) !important; } -.h-0 { - height: 0 !important; +.mr-md3 { + margin-right: var(--md3) !important; } -.m-0 { - margin: 0 !important; +.mis-md3 { + margin-inline-start: var(--md3) !important; } -.mt-0 { - margin-top: 0 !important; +.mie-md3 { + margin-inline-end: var(--md3) !important; } -.mb-0 { - margin-bottom: 0 !important; +.p-md3 { + padding: var(--md3) !important; } -.ml-0 { - margin-left: 0 !important; +.pt-md3 { + padding-top: var(--md3) !important; } -.mr-0 { - margin-right: 0 !important; +.pb-md3 { + padding-bottom: var(--md3) !important; } -.mis-0 { - margin-inline-start: 0 !important; +.pl-md3 { + padding-left: var(--md3) !important; } -.mie-0 { - margin-inline-end: 0 !important; +.pr-md3 { + padding-right: var(--md3) !important; } -.p-0 { - padding: 0 !important; +.pis-md3 { + padding-inline-start: var(--md3) !important; } -.pt-0 { - padding-top: 0 !important; +.pie-md3 { + padding-inline-end: var(--md3) !important; } -.pb-0 { - padding-bottom: 0 !important; +.w-lg1 { + width: var(--lg1) !important; } -.pl-0 { - padding-left: 0 !important; +.h-lg1 { + height: var(--lg1) !important; } -.pr-0 { - padding-right: 0 !important; +.m-lg1 { + margin: var(--lg1) !important; } -.pis-0 { - padding-inline-start: 0 !important; +.mt-lg1 { + margin-top: var(--lg1) !important; } -.pie-0 { - padding-inline-end: 0 !important; +.mb-lg1 { + margin-bottom: var(--lg1) !important; } -.w-xs1 { - width: var(--xs1) !important; +.ml-lg1 { + margin-left: var(--lg1) !important; } -.h-xs1 { - height: var(--xs1) !important; +.mr-lg1 { + margin-right: var(--lg1) !important; } -.m-xs1 { - margin: var(--xs1) !important; +.mis-lg1 { + margin-inline-start: var(--lg1) !important; } -.mt-xs1 { - margin-top: var(--xs1) !important; +.mie-lg1 { + margin-inline-end: var(--lg1) !important; } -.mb-xs1 { - margin-bottom: var(--xs1) !important; +.p-lg1 { + padding: var(--lg1) !important; } -.ml-xs1 { - margin-left: var(--xs1) !important; +.pt-lg1 { + padding-top: var(--lg1) !important; } -.mr-xs1 { - margin-right: var(--xs1) !important; +.pb-lg1 { + padding-bottom: var(--lg1) !important; } -.mis-xs1 { - margin-inline-start: var(--xs1) !important; +.pl-lg1 { + padding-left: var(--lg1) !important; } -.mie-xs1 { - margin-inline-end: var(--xs1) !important; +.pr-lg1 { + padding-right: var(--lg1) !important; } -.p-xs1 { - padding: var(--xs1) !important; +.pis-lg1 { + padding-inline-start: var(--lg1) !important; } -.pt-xs1 { - padding-top: var(--xs1) !important; +.pie-lg1 { + padding-inline-end: var(--lg1) !important; } -.pb-xs1 { - padding-bottom: var(--xs1) !important; +.w-lg2 { + width: var(--lg2) !important; } -.pl-xs1 { - padding-left: var(--xs1) !important; +.h-lg2 { + height: var(--lg2) !important; } -.pr-xs1 { - padding-right: var(--xs1) !important; +.m-lg2 { + margin: var(--lg2) !important; } -.pis-xs1 { - padding-inline-start: var(--xs1) !important; +.mt-lg2 { + margin-top: var(--lg2) !important; } -.pie-xs1 { - padding-inline-end: var(--xs1) !important; +.mb-lg2 { + margin-bottom: var(--lg2) !important; } -.w-xs2 { - width: var(--xs2) !important; +.ml-lg2 { + margin-left: var(--lg2) !important; } -.h-xs2 { - height: var(--xs2) !important; +.mr-lg2 { + margin-right: var(--lg2) !important; } -.m-xs2 { - margin: var(--xs2) !important; +.mis-lg2 { + margin-inline-start: var(--lg2) !important; } -.mt-xs2 { - margin-top: var(--xs2) !important; +.mie-lg2 { + margin-inline-end: var(--lg2) !important; } -.mb-xs2 { - margin-bottom: var(--xs2) !important; +.p-lg2 { + padding: var(--lg2) !important; } -.ml-xs2 { - margin-left: var(--xs2) !important; +.pt-lg2 { + padding-top: var(--lg2) !important; } -.mr-xs2 { - margin-right: var(--xs2) !important; +.pb-lg2 { + padding-bottom: var(--lg2) !important; } -.mis-xs2 { - margin-inline-start: var(--xs2) !important; +.pl-lg2 { + padding-left: var(--lg2) !important; } -.mie-xs2 { - margin-inline-end: var(--xs2) !important; +.pr-lg2 { + padding-right: var(--lg2) !important; } -.p-xs2 { - padding: var(--xs2) !important; +.pis-lg2 { + padding-inline-start: var(--lg2) !important; } -.pt-xs2 { - padding-top: var(--xs2) !important; +.pie-lg2 { + padding-inline-end: var(--lg2) !important; } -.pb-xs2 { - padding-bottom: var(--xs2) !important; +.w-lg3 { + width: var(--lg3) !important; } -.pl-xs2 { - padding-left: var(--xs2) !important; +.h-lg3 { + height: var(--lg3) !important; } -.pr-xs2 { - padding-right: var(--xs2) !important; +.m-lg3 { + margin: var(--lg3) !important; } -.pis-xs2 { - padding-inline-start: var(--xs2) !important; +.mt-lg3 { + margin-top: var(--lg3) !important; } -.pie-xs2 { - padding-inline-end: var(--xs2) !important; +.mb-lg3 { + margin-bottom: var(--lg3) !important; } -.w-xs3 { - width: var(--xs3) !important; +.ml-lg3 { + margin-left: var(--lg3) !important; } -.h-xs3 { - height: var(--xs3) !important; +.mr-lg3 { + margin-right: var(--lg3) !important; } -.m-xs3 { - margin: var(--xs3) !important; +.mis-lg3 { + margin-inline-start: var(--lg3) !important; } -.mt-xs3 { - margin-top: var(--xs3) !important; +.mie-lg3 { + margin-inline-end: var(--lg3) !important; } -.mb-xs3 { - margin-bottom: var(--xs3) !important; +.p-lg3 { + padding: var(--lg3) !important; } -.ml-xs3 { - margin-left: var(--xs3) !important; +.pt-lg3 { + padding-top: var(--lg3) !important; } -.mr-xs3 { - margin-right: var(--xs3) !important; +.pb-lg3 { + padding-bottom: var(--lg3) !important; } -.mis-xs3 { - margin-inline-start: var(--xs3) !important; +.pl-lg3 { + padding-left: var(--lg3) !important; } -.mie-xs3 { - margin-inline-end: var(--xs3) !important; +.pr-lg3 { + padding-right: var(--lg3) !important; } -.p-xs3 { - padding: var(--xs3) !important; +.pis-lg3 { + padding-inline-start: var(--lg3) !important; } -.pt-xs3 { - padding-top: var(--xs3) !important; +.pie-lg3 { + padding-inline-end: var(--lg3) !important; } -.pb-xs3 { - padding-bottom: var(--xs3) !important; +.w-xl1 { + width: var(--xl1) !important; } -.pl-xs3 { - padding-left: var(--xs3) !important; +.h-xl1 { + height: var(--xl1) !important; } -.pr-xs3 { - padding-right: var(--xs3) !important; +.m-xl1 { + margin: var(--xl1) !important; } -.pis-xs3 { - padding-inline-start: var(--xs3) !important; +.mt-xl1 { + margin-top: var(--xl1) !important; } -.pie-xs3 { - padding-inline-end: var(--xs3) !important; +.mb-xl1 { + margin-bottom: var(--xl1) !important; } -.w-sm1 { - width: var(--sm1) !important; +.ml-xl1 { + margin-left: var(--xl1) !important; } -.h-sm1 { - height: var(--sm1) !important; +.mr-xl1 { + margin-right: var(--xl1) !important; } -.m-sm1 { - margin: var(--sm1) !important; +.mis-xl1 { + margin-inline-start: var(--xl1) !important; } -.mt-sm1 { - margin-top: var(--sm1) !important; +.mie-xl1 { + margin-inline-end: var(--xl1) !important; } -.mb-sm1 { - margin-bottom: var(--sm1) !important; +.p-xl1 { + padding: var(--xl1) !important; } -.ml-sm1 { - margin-left: var(--sm1) !important; +.pt-xl1 { + padding-top: var(--xl1) !important; } -.mr-sm1 { - margin-right: var(--sm1) !important; +.pb-xl1 { + padding-bottom: var(--xl1) !important; } -.mis-sm1 { - margin-inline-start: var(--sm1) !important; +.pl-xl1 { + padding-left: var(--xl1) !important; } -.mie-sm1 { - margin-inline-end: var(--sm1) !important; +.pr-xl1 { + padding-right: var(--xl1) !important; } -.p-sm1 { - padding: var(--sm1) !important; +.pis-xl1 { + padding-inline-start: var(--xl1) !important; } -.pt-sm1 { - padding-top: var(--sm1) !important; +.pie-xl1 { + padding-inline-end: var(--xl1) !important; } -.pb-sm1 { - padding-bottom: var(--sm1) !important; +.w-xl2 { + width: var(--xl2) !important; } -.pl-sm1 { - padding-left: var(--sm1) !important; +.h-xl2 { + height: var(--xl2) !important; } -.pr-sm1 { - padding-right: var(--sm1) !important; +.m-xl2 { + margin: var(--xl2) !important; } -.pis-sm1 { - padding-inline-start: var(--sm1) !important; +.mt-xl2 { + margin-top: var(--xl2) !important; } -.pie-sm1 { - padding-inline-end: var(--sm1) !important; +.mb-xl2 { + margin-bottom: var(--xl2) !important; } -.w-sm2 { - width: var(--sm2) !important; +.ml-xl2 { + margin-left: var(--xl2) !important; } -.h-sm2 { - height: var(--sm2) !important; +.mr-xl2 { + margin-right: var(--xl2) !important; } -.m-sm2 { - margin: var(--sm2) !important; +.mis-xl2 { + margin-inline-start: var(--xl2) !important; } -.mt-sm2 { - margin-top: var(--sm2) !important; +.mie-xl2 { + margin-inline-end: var(--xl2) !important; } -.mb-sm2 { - margin-bottom: var(--sm2) !important; +.p-xl2 { + padding: var(--xl2) !important; } -.ml-sm2 { - margin-left: var(--sm2) !important; +.pt-xl2 { + padding-top: var(--xl2) !important; } -.mr-sm2 { - margin-right: var(--sm2) !important; +.pb-xl2 { + padding-bottom: var(--xl2) !important; } -.mis-sm2 { - margin-inline-start: var(--sm2) !important; +.pl-xl2 { + padding-left: var(--xl2) !important; } -.mie-sm2 { - margin-inline-end: var(--sm2) !important; +.pr-xl2 { + padding-right: var(--xl2) !important; } -.p-sm2 { - padding: var(--sm2) !important; +.pis-xl2 { + padding-inline-start: var(--xl2) !important; } -.pt-sm2 { - padding-top: var(--sm2) !important; +.pie-xl2 { + padding-inline-end: var(--xl2) !important; } -.pb-sm2 { - padding-bottom: var(--sm2) !important; +.w-xl3 { + width: var(--xl3) !important; } -.pl-sm2 { - padding-left: var(--sm2) !important; +.h-xl3 { + height: var(--xl3) !important; } -.pr-sm2 { - padding-right: var(--sm2) !important; +.m-xl3 { + margin: var(--xl3) !important; } -.pis-sm2 { - padding-inline-start: var(--sm2) !important; +.mt-xl3 { + margin-top: var(--xl3) !important; } -.pie-sm2 { - padding-inline-end: var(--sm2) !important; +.mb-xl3 { + margin-bottom: var(--xl3) !important; } -.w-sm3 { - width: var(--sm3) !important; +.ml-xl3 { + margin-left: var(--xl3) !important; } -.h-sm3 { - height: var(--sm3) !important; +.mr-xl3 { + margin-right: var(--xl3) !important; } -.m-sm3 { - margin: var(--sm3) !important; +.mis-xl3 { + margin-inline-start: var(--xl3) !important; } -.mt-sm3 { - margin-top: var(--sm3) !important; +.mie-xl3 { + margin-inline-end: var(--xl3) !important; } -.mb-sm3 { - margin-bottom: var(--sm3) !important; +.p-xl3 { + padding: var(--xl3) !important; } -.ml-sm3 { - margin-left: var(--sm3) !important; +.pt-xl3 { + padding-top: var(--xl3) !important; } -.mr-sm3 { - margin-right: var(--sm3) !important; +.pb-xl3 { + padding-bottom: var(--xl3) !important; } -.mis-sm3 { - margin-inline-start: var(--sm3) !important; +.pl-xl3 { + padding-left: var(--xl3) !important; } -.mie-sm3 { - margin-inline-end: var(--sm3) !important; +.pr-xl3 { + padding-right: var(--xl3) !important; } -.p-sm3 { - padding: var(--sm3) !important; +.pis-xl3 { + padding-inline-start: var(--xl3) !important; } -.pt-sm3 { - padding-top: var(--sm3) !important; +.pie-xl3 { + padding-inline-end: var(--xl3) !important; } -.pb-sm3 { - padding-bottom: var(--sm3) !important; +.w-xxl1 { + width: var(--xxl1) !important; } -.pl-sm3 { - padding-left: var(--sm3) !important; +.h-xxl1 { + height: var(--xxl1) !important; } -.pr-sm3 { - padding-right: var(--sm3) !important; +.m-xxl1 { + margin: var(--xxl1) !important; } -.pis-sm3 { - padding-inline-start: var(--sm3) !important; +.mt-xxl1 { + margin-top: var(--xxl1) !important; } -.pie-sm3 { - padding-inline-end: var(--sm3) !important; +.mb-xxl1 { + margin-bottom: var(--xxl1) !important; } -.w-md1 { - width: var(--md1) !important; +.ml-xxl1 { + margin-left: var(--xxl1) !important; } -.h-md1 { - height: var(--md1) !important; +.mr-xxl1 { + margin-right: var(--xxl1) !important; } -.m-md1 { - margin: var(--md1) !important; +.mis-xxl1 { + margin-inline-start: var(--xxl1) !important; } -.mt-md1 { - margin-top: var(--md1) !important; +.mie-xxl1 { + margin-inline-end: var(--xxl1) !important; } -.mb-md1 { - margin-bottom: var(--md1) !important; +.p-xxl1 { + padding: var(--xxl1) !important; } -.ml-md1 { - margin-left: var(--md1) !important; +.pt-xxl1 { + padding-top: var(--xxl1) !important; } -.mr-md1 { - margin-right: var(--md1) !important; +.pb-xxl1 { + padding-bottom: var(--xxl1) !important; } -.mis-md1 { - margin-inline-start: var(--md1) !important; +.pl-xxl1 { + padding-left: var(--xxl1) !important; } -.mie-md1 { - margin-inline-end: var(--md1) !important; +.pr-xxl1 { + padding-right: var(--xxl1) !important; } -.p-md1 { - padding: var(--md1) !important; +.pis-xxl1 { + padding-inline-start: var(--xxl1) !important; } -.pt-md1 { - padding-top: var(--md1) !important; +.pie-xxl1 { + padding-inline-end: var(--xxl1) !important; } -.pb-md1 { - padding-bottom: var(--md1) !important; +.w-xxl2 { + width: var(--xxl2) !important; } -.pl-md1 { - padding-left: var(--md1) !important; +.h-xxl2 { + height: var(--xxl2) !important; } -.pr-md1 { - padding-right: var(--md1) !important; +.m-xxl2 { + margin: var(--xxl2) !important; } -.pis-md1 { - padding-inline-start: var(--md1) !important; +.mt-xxl2 { + margin-top: var(--xxl2) !important; } -.pie-md1 { - padding-inline-end: var(--md1) !important; +.mb-xxl2 { + margin-bottom: var(--xxl2) !important; } -.w-md2 { - width: var(--md2) !important; +.ml-xxl2 { + margin-left: var(--xxl2) !important; } -.h-md2 { - height: var(--md2) !important; +.mr-xxl2 { + margin-right: var(--xxl2) !important; } -.m-md2 { - margin: var(--md2) !important; +.mis-xxl2 { + margin-inline-start: var(--xxl2) !important; } -.mt-md2 { - margin-top: var(--md2) !important; +.mie-xxl2 { + margin-inline-end: var(--xxl2) !important; } -.mb-md2 { - margin-bottom: var(--md2) !important; +.p-xxl2 { + padding: var(--xxl2) !important; } -.ml-md2 { - margin-left: var(--md2) !important; +.pt-xxl2 { + padding-top: var(--xxl2) !important; } -.mr-md2 { - margin-right: var(--md2) !important; +.pb-xxl2 { + padding-bottom: var(--xxl2) !important; } -.mis-md2 { - margin-inline-start: var(--md2) !important; +.pl-xxl2 { + padding-left: var(--xxl2) !important; } -.mie-md2 { - margin-inline-end: var(--md2) !important; +.pr-xxl2 { + padding-right: var(--xxl2) !important; } -.p-md2 { - padding: var(--md2) !important; +.pis-xxl2 { + padding-inline-start: var(--xxl2) !important; } -.pt-md2 { - padding-top: var(--md2) !important; +.pie-xxl2 { + padding-inline-end: var(--xxl2) !important; } -.pb-md2 { - padding-bottom: var(--md2) !important; +.w-xxl3 { + width: var(--xxl3) !important; } -.pl-md2 { - padding-left: var(--md2) !important; +.h-xxl3 { + height: var(--xxl3) !important; } -.pr-md2 { - padding-right: var(--md2) !important; +.m-xxl3 { + margin: var(--xxl3) !important; } -.pis-md2 { - padding-inline-start: var(--md2) !important; +.mt-xxl3 { + margin-top: var(--xxl3) !important; } -.pie-md2 { - padding-inline-end: var(--md2) !important; +.mb-xxl3 { + margin-bottom: var(--xxl3) !important; } -.w-md3 { - width: var(--md3) !important; +.ml-xxl3 { + margin-left: var(--xxl3) !important; } -.h-md3 { - height: var(--md3) !important; +.mr-xxl3 { + margin-right: var(--xxl3) !important; } -.m-md3 { - margin: var(--md3) !important; +.mis-xxl3 { + margin-inline-start: var(--xxl3) !important; } -.mt-md3 { - margin-top: var(--md3) !important; +.mie-xxl3 { + margin-inline-end: var(--xxl3) !important; } -.mb-md3 { - margin-bottom: var(--md3) !important; +.p-xxl3 { + padding: var(--xxl3) !important; } -.ml-md3 { - margin-left: var(--md3) !important; +.pt-xxl3 { + padding-top: var(--xxl3) !important; } -.mr-md3 { - margin-right: var(--md3) !important; +.pb-xxl3 { + padding-bottom: var(--xxl3) !important; } -.mis-md3 { - margin-inline-start: var(--md3) !important; +.pl-xxl3 { + padding-left: var(--xxl3) !important; } -.mie-md3 { - margin-inline-end: var(--md3) !important; +.pr-xxl3 { + padding-right: var(--xxl3) !important; } -.p-md3 { - padding: var(--md3) !important; +.pis-xxl3 { + padding-inline-start: var(--xxl3) !important; } -.pt-md3 { - padding-top: var(--md3) !important; +.pie-xxl3 { + padding-inline-end: var(--xxl3) !important; } -.pb-md3 { - padding-bottom: var(--md3) !important; +.w-mega1 { + width: var(--mega1) !important; } -.pl-md3 { - padding-left: var(--md3) !important; +.h-mega1 { + height: var(--mega1) !important; } -.pr-md3 { - padding-right: var(--md3) !important; +.m-mega1 { + margin: var(--mega1) !important; } -.pis-md3 { - padding-inline-start: var(--md3) !important; +.mt-mega1 { + margin-top: var(--mega1) !important; } -.pie-md3 { - padding-inline-end: var(--md3) !important; +.mb-mega1 { + margin-bottom: var(--mega1) !important; } -.w-lg1 { - width: var(--lg1) !important; +.ml-mega1 { + margin-left: var(--mega1) !important; } -.h-lg1 { - height: var(--lg1) !important; +.mr-mega1 { + margin-right: var(--mega1) !important; } -.m-lg1 { - margin: var(--lg1) !important; +.mis-mega1 { + margin-inline-start: var(--mega1) !important; } -.mt-lg1 { - margin-top: var(--lg1) !important; +.mie-mega1 { + margin-inline-end: var(--mega1) !important; } -.mb-lg1 { - margin-bottom: var(--lg1) !important; +.p-mega1 { + padding: var(--mega1) !important; } -.ml-lg1 { - margin-left: var(--lg1) !important; +.pt-mega1 { + padding-top: var(--mega1) !important; } -.mr-lg1 { - margin-right: var(--lg1) !important; +.pb-mega1 { + padding-bottom: var(--mega1) !important; } -.mis-lg1 { - margin-inline-start: var(--lg1) !important; +.pl-mega1 { + padding-left: var(--mega1) !important; } -.mie-lg1 { - margin-inline-end: var(--lg1) !important; +.pr-mega1 { + padding-right: var(--mega1) !important; } -.p-lg1 { - padding: var(--lg1) !important; +.pis-mega1 { + padding-inline-start: var(--mega1) !important; } -.pt-lg1 { - padding-top: var(--lg1) !important; +.pie-mega1 { + padding-inline-end: var(--mega1) !important; } -.pb-lg1 { - padding-bottom: var(--lg1) !important; +.w-mega2 { + width: var(--mega2) !important; } -.pl-lg1 { - padding-left: var(--lg1) !important; +.h-mega2 { + height: var(--mega2) !important; } -.pr-lg1 { - padding-right: var(--lg1) !important; +.m-mega2 { + margin: var(--mega2) !important; } -.pis-lg1 { - padding-inline-start: var(--lg1) !important; +.mt-mega2 { + margin-top: var(--mega2) !important; } -.pie-lg1 { - padding-inline-end: var(--lg1) !important; +.mb-mega2 { + margin-bottom: var(--mega2) !important; } -.w-lg2 { - width: var(--lg2) !important; +.ml-mega2 { + margin-left: var(--mega2) !important; } -.h-lg2 { - height: var(--lg2) !important; +.mr-mega2 { + margin-right: var(--mega2) !important; } -.m-lg2 { - margin: var(--lg2) !important; +.mis-mega2 { + margin-inline-start: var(--mega2) !important; } -.mt-lg2 { - margin-top: var(--lg2) !important; +.mie-mega2 { + margin-inline-end: var(--mega2) !important; } -.mb-lg2 { - margin-bottom: var(--lg2) !important; +.p-mega2 { + padding: var(--mega2) !important; } -.ml-lg2 { - margin-left: var(--lg2) !important; +.pt-mega2 { + padding-top: var(--mega2) !important; } -.mr-lg2 { - margin-right: var(--lg2) !important; +.pb-mega2 { + padding-bottom: var(--mega2) !important; } -.mis-lg2 { - margin-inline-start: var(--lg2) !important; +.pl-mega2 { + padding-left: var(--mega2) !important; } -.mie-lg2 { - margin-inline-end: var(--lg2) !important; +.pr-mega2 { + padding-right: var(--mega2) !important; } -.p-lg2 { - padding: var(--lg2) !important; +.pis-mega2 { + padding-inline-start: var(--mega2) !important; } -.pt-lg2 { - padding-top: var(--lg2) !important; +.pie-mega2 { + padding-inline-end: var(--mega2) !important; } -.pb-lg2 { - padding-bottom: var(--lg2) !important; +.w-mega3 { + width: var(--mega3) !important; } -.pl-lg2 { - padding-left: var(--lg2) !important; +.h-mega3 { + height: var(--mega3) !important; } -.pr-lg2 { - padding-right: var(--lg2) !important; +.m-mega3 { + margin: var(--mega3) !important; } -.pis-lg2 { - padding-inline-start: var(--lg2) !important; +.mt-mega3 { + margin-top: var(--mega3) !important; } -.pie-lg2 { - padding-inline-end: var(--lg2) !important; +.mb-mega3 { + margin-bottom: var(--mega3) !important; } -.w-lg3 { - width: var(--lg3) !important; +.ml-mega3 { + margin-left: var(--mega3) !important; } -.h-lg3 { - height: var(--lg3) !important; +.mr-mega3 { + margin-right: var(--mega3) !important; } -.m-lg3 { - margin: var(--lg3) !important; +.mis-mega3 { + margin-inline-start: var(--mega3) !important; } -.mt-lg3 { - margin-top: var(--lg3) !important; +.mie-mega3 { + margin-inline-end: var(--mega3) !important; } -.mb-lg3 { - margin-bottom: var(--lg3) !important; +.p-mega3 { + padding: var(--mega3) !important; } -.ml-lg3 { - margin-left: var(--lg3) !important; +.pt-mega3 { + padding-top: var(--mega3) !important; } -.mr-lg3 { - margin-right: var(--lg3) !important; +.pb-mega3 { + padding-bottom: var(--mega3) !important; } -.mis-lg3 { - margin-inline-start: var(--lg3) !important; +.pl-mega3 { + padding-left: var(--mega3) !important; } -.mie-lg3 { - margin-inline-end: var(--lg3) !important; +.pr-mega3 { + padding-right: var(--mega3) !important; } -.p-lg3 { - padding: var(--lg3) !important; +.pis-mega3 { + padding-inline-start: var(--mega3) !important; } -.pt-lg3 { - padding-top: var(--lg3) !important; +.pie-mega3 { + padding-inline-end: var(--mega3) !important; } -.pb-lg3 { - padding-bottom: var(--lg3) !important; +.w-giga1 { + width: var(--giga1) !important; } -.pl-lg3 { - padding-left: var(--lg3) !important; +.h-giga1 { + height: var(--giga1) !important; } -.pr-lg3 { - padding-right: var(--lg3) !important; +.m-giga1 { + margin: var(--giga1) !important; } -.pis-lg3 { - padding-inline-start: var(--lg3) !important; +.mt-giga1 { + margin-top: var(--giga1) !important; } -.pie-lg3 { - padding-inline-end: var(--lg3) !important; +.mb-giga1 { + margin-bottom: var(--giga1) !important; } -.w-xl1 { - width: var(--xl1) !important; +.ml-giga1 { + margin-left: var(--giga1) !important; } -.h-xl1 { - height: var(--xl1) !important; +.mr-giga1 { + margin-right: var(--giga1) !important; } -.m-xl1 { - margin: var(--xl1) !important; +.mis-giga1 { + margin-inline-start: var(--giga1) !important; } -.mt-xl1 { - margin-top: var(--xl1) !important; +.mie-giga1 { + margin-inline-end: var(--giga1) !important; } -.mb-xl1 { - margin-bottom: var(--xl1) !important; +.p-giga1 { + padding: var(--giga1) !important; } -.ml-xl1 { - margin-left: var(--xl1) !important; +.pt-giga1 { + padding-top: var(--giga1) !important; } -.mr-xl1 { - margin-right: var(--xl1) !important; +.pb-giga1 { + padding-bottom: var(--giga1) !important; } -.mis-xl1 { - margin-inline-start: var(--xl1) !important; +.pl-giga1 { + padding-left: var(--giga1) !important; } -.mie-xl1 { - margin-inline-end: var(--xl1) !important; +.pr-giga1 { + padding-right: var(--giga1) !important; } -.p-xl1 { - padding: var(--xl1) !important; +.pis-giga1 { + padding-inline-start: var(--giga1) !important; } -.pt-xl1 { - padding-top: var(--xl1) !important; +.pie-giga1 { + padding-inline-end: var(--giga1) !important; } -.pb-xl1 { - padding-bottom: var(--xl1) !important; +.w-giga2 { + width: var(--giga2) !important; } -.pl-xl1 { - padding-left: var(--xl1) !important; +.h-giga2 { + height: var(--giga2) !important; } -.pr-xl1 { - padding-right: var(--xl1) !important; +.m-giga2 { + margin: var(--giga2) !important; } -.pis-xl1 { - padding-inline-start: var(--xl1) !important; +.mt-giga2 { + margin-top: var(--giga2) !important; } -.pie-xl1 { - padding-inline-end: var(--xl1) !important; +.mb-giga2 { + margin-bottom: var(--giga2) !important; } -.w-xl2 { - width: var(--xl2) !important; +.ml-giga2 { + margin-left: var(--giga2) !important; } -.h-xl2 { - height: var(--xl2) !important; +.mr-giga2 { + margin-right: var(--giga2) !important; } -.m-xl2 { - margin: var(--xl2) !important; +.mis-giga2 { + margin-inline-start: var(--giga2) !important; } -.mt-xl2 { - margin-top: var(--xl2) !important; +.mie-giga2 { + margin-inline-end: var(--giga2) !important; } -.mb-xl2 { - margin-bottom: var(--xl2) !important; +.p-giga2 { + padding: var(--giga2) !important; } -.ml-xl2 { - margin-left: var(--xl2) !important; +.pt-giga2 { + padding-top: var(--giga2) !important; } -.mr-xl2 { - margin-right: var(--xl2) !important; +.pb-giga2 { + padding-bottom: var(--giga2) !important; } -.mis-xl2 { - margin-inline-start: var(--xl2) !important; +.pl-giga2 { + padding-left: var(--giga2) !important; } -.mie-xl2 { - margin-inline-end: var(--xl2) !important; +.pr-giga2 { + padding-right: var(--giga2) !important; } -.p-xl2 { - padding: var(--xl2) !important; +.pis-giga2 { + padding-inline-start: var(--giga2) !important; } -.pt-xl2 { - padding-top: var(--xl2) !important; +.pie-giga2 { + padding-inline-end: var(--giga2) !important; } -.pb-xl2 { - padding-bottom: var(--xl2) !important; +.w-giga3 { + width: var(--giga3) !important; } -.pl-xl2 { - padding-left: var(--xl2) !important; +.h-giga3 { + height: var(--giga3) !important; } -.pr-xl2 { - padding-right: var(--xl2) !important; +.m-giga3 { + margin: var(--giga3) !important; } -.pis-xl2 { - padding-inline-start: var(--xl2) !important; +.mt-giga3 { + margin-top: var(--giga3) !important; } -.pie-xl2 { - padding-inline-end: var(--xl2) !important; +.mb-giga3 { + margin-bottom: var(--giga3) !important; } -.w-xl3 { - width: var(--xl3) !important; +.ml-giga3 { + margin-left: var(--giga3) !important; } -.h-xl3 { - height: var(--xl3) !important; +.mr-giga3 { + margin-right: var(--giga3) !important; } -.m-xl3 { - margin: var(--xl3) !important; +.mis-giga3 { + margin-inline-start: var(--giga3) !important; } -.mt-xl3 { - margin-top: var(--xl3) !important; +.mie-giga3 { + margin-inline-end: var(--giga3) !important; } -.mb-xl3 { - margin-bottom: var(--xl3) !important; +.p-giga3 { + padding: var(--giga3) !important; } -.ml-xl3 { - margin-left: var(--xl3) !important; +.pt-giga3 { + padding-top: var(--giga3) !important; } -.mr-xl3 { - margin-right: var(--xl3) !important; +.pb-giga3 { + padding-bottom: var(--giga3) !important; } -.mis-xl3 { - margin-inline-start: var(--xl3) !important; +.pl-giga3 { + padding-left: var(--giga3) !important; } -.mie-xl3 { - margin-inline-end: var(--xl3) !important; +.pr-giga3 { + padding-right: var(--giga3) !important; } -.p-xl3 { - padding: var(--xl3) !important; +.pis-giga3 { + padding-inline-start: var(--giga3) !important; } -.pt-xl3 { - padding-top: var(--xl3) !important; +.pie-giga3 { + padding-inline-end: var(--giga3) !important; } -.pb-xl3 { - padding-bottom: var(--xl3) !important; +.w-tera1 { + width: var(--tera1) !important; } -.pl-xl3 { - padding-left: var(--xl3) !important; +.h-tera1 { + height: var(--tera1) !important; } -.pr-xl3 { - padding-right: var(--xl3) !important; +.m-tera1 { + margin: var(--tera1) !important; } -.pis-xl3 { - padding-inline-start: var(--xl3) !important; +.mt-tera1 { + margin-top: var(--tera1) !important; } -.pie-xl3 { - padding-inline-end: var(--xl3) !important; +.mb-tera1 { + margin-bottom: var(--tera1) !important; } -.w-xxl1 { - width: var(--xxl1) !important; +.ml-tera1 { + margin-left: var(--tera1) !important; } -.h-xxl1 { - height: var(--xxl1) !important; +.mr-tera1 { + margin-right: var(--tera1) !important; } -.m-xxl1 { - margin: var(--xxl1) !important; +.mis-tera1 { + margin-inline-start: var(--tera1) !important; } -.mt-xxl1 { - margin-top: var(--xxl1) !important; +.mie-tera1 { + margin-inline-end: var(--tera1) !important; } -.mb-xxl1 { - margin-bottom: var(--xxl1) !important; +.p-tera1 { + padding: var(--tera1) !important; } -.ml-xxl1 { - margin-left: var(--xxl1) !important; +.pt-tera1 { + padding-top: var(--tera1) !important; } -.mr-xxl1 { - margin-right: var(--xxl1) !important; +.pb-tera1 { + padding-bottom: var(--tera1) !important; } -.mis-xxl1 { - margin-inline-start: var(--xxl1) !important; +.pl-tera1 { + padding-left: var(--tera1) !important; } -.mie-xxl1 { - margin-inline-end: var(--xxl1) !important; +.pr-tera1 { + padding-right: var(--tera1) !important; } -.p-xxl1 { - padding: var(--xxl1) !important; +.pis-tera1 { + padding-inline-start: var(--tera1) !important; } -.pt-xxl1 { - padding-top: var(--xxl1) !important; +.pie-tera1 { + padding-inline-end: var(--tera1) !important; } -.pb-xxl1 { - padding-bottom: var(--xxl1) !important; +.w-tera2 { + width: var(--tera2) !important; } -.pl-xxl1 { - padding-left: var(--xxl1) !important; +.h-tera2 { + height: var(--tera2) !important; } -.pr-xxl1 { - padding-right: var(--xxl1) !important; +.m-tera2 { + margin: var(--tera2) !important; } -.pis-xxl1 { - padding-inline-start: var(--xxl1) !important; +.mt-tera2 { + margin-top: var(--tera2) !important; } -.pie-xxl1 { - padding-inline-end: var(--xxl1) !important; +.mb-tera2 { + margin-bottom: var(--tera2) !important; } -.w-xxl2 { - width: var(--xxl2) !important; +.ml-tera2 { + margin-left: var(--tera2) !important; } -.h-xxl2 { - height: var(--xxl2) !important; +.mr-tera2 { + margin-right: var(--tera2) !important; } -.m-xxl2 { - margin: var(--xxl2) !important; +.mis-tera2 { + margin-inline-start: var(--tera2) !important; } -.mt-xxl2 { - margin-top: var(--xxl2) !important; +.mie-tera2 { + margin-inline-end: var(--tera2) !important; } -.mb-xxl2 { - margin-bottom: var(--xxl2) !important; +.p-tera2 { + padding: var(--tera2) !important; } -.ml-xxl2 { - margin-left: var(--xxl2) !important; +.pt-tera2 { + padding-top: var(--tera2) !important; } -.mr-xxl2 { - margin-right: var(--xxl2) !important; +.pb-tera2 { + padding-bottom: var(--tera2) !important; } -.mis-xxl2 { - margin-inline-start: var(--xxl2) !important; +.pl-tera2 { + padding-left: var(--tera2) !important; } -.mie-xxl2 { - margin-inline-end: var(--xxl2) !important; +.pr-tera2 { + padding-right: var(--tera2) !important; } -.p-xxl2 { - padding: var(--xxl2) !important; +.pis-tera2 { + padding-inline-start: var(--tera2) !important; } -.pt-xxl2 { - padding-top: var(--xxl2) !important; +.pie-tera2 { + padding-inline-end: var(--tera2) !important; } -.pb-xxl2 { - padding-bottom: var(--xxl2) !important; +.w-tera3 { + width: var(--tera3) !important; } -.pl-xxl2 { - padding-left: var(--xxl2) !important; +.h-tera3 { + height: var(--tera3) !important; } -.pr-xxl2 { - padding-right: var(--xxl2) !important; +.m-tera3 { + margin: var(--tera3) !important; } -.pis-xxl2 { - padding-inline-start: var(--xxl2) !important; +.mt-tera3 { + margin-top: var(--tera3) !important; } -.pie-xxl2 { - padding-inline-end: var(--xxl2) !important; +.mb-tera3 { + margin-bottom: var(--tera3) !important; } -.w-xxl3 { - width: var(--xxl3) !important; +.ml-tera3 { + margin-left: var(--tera3) !important; } -.h-xxl3 { - height: var(--xxl3) !important; +.mr-tera3 { + margin-right: var(--tera3) !important; } -.m-xxl3 { - margin: var(--xxl3) !important; +.mis-tera3 { + margin-inline-start: var(--tera3) !important; } -.mt-xxl3 { - margin-top: var(--xxl3) !important; +.mie-tera3 { + margin-inline-end: var(--tera3) !important; } -.mb-xxl3 { - margin-bottom: var(--xxl3) !important; +.p-tera3 { + padding: var(--tera3) !important; } -.ml-xxl3 { - margin-left: var(--xxl3) !important; +.pt-tera3 { + padding-top: var(--tera3) !important; } -.mr-xxl3 { - margin-right: var(--xxl3) !important; +.pb-tera3 { + padding-bottom: var(--tera3) !important; } -.mis-xxl3 { - margin-inline-start: var(--xxl3) !important; +.pl-tera3 { + padding-left: var(--tera3) !important; } -.mie-xxl3 { - margin-inline-end: var(--xxl3) !important; +.pr-tera3 { + padding-right: var(--tera3) !important; } -.p-xxl3 { - padding: var(--xxl3) !important; +.pis-tera3 { + padding-inline-start: var(--tera3) !important; } -.pt-xxl3 { - padding-top: var(--xxl3) !important; +.pie-tera3 { + padding-inline-end: var(--tera3) !important; } - -.pb-xxl3 { - padding-bottom: var(--xxl3) !important; } +@layer helpers{ -.pl-xxl3 { - padding-left: var(--xxl3) !important; +/* HELPER TYPOGRAPHY */ + +/* .h1, .h2, .h3, .h4, .h5, .h6 are in elements.text */ + +/* FONT FAMILY */ + +.font-text { + font-family: var(--text) !important; } -.pr-xxl3 { - padding-right: var(--xxl3) !important; +.font-display { + font-family: var(--display) !important; } -.pis-xxl3 { - padding-inline-start: var(--xxl3) !important; +.font-mono { + font-family: var(--mono) !important; } -.pie-xxl3 { - padding-inline-end: var(--xxl3) !important; +/* FONT STYLE */ + +.font-italic { + font-style: italic !important; } -.w-mega1 { - width: var(--mega1) !important; +.font-normal { + font-style: normal !important; } -.h-mega1 { - height: var(--mega1) !important; +/* FONT WEIGHTS */ + +.font-extra-light { + font-weight: var(--extra-light) !important; } -.m-mega1 { - margin: var(--mega1) !important; +.font-light { + font-weight: var(--light) !important; } -.mt-mega1 { - margin-top: var(--mega1) !important; +.font-book { + font-weight: var(--book) !important; } -.mb-mega1 { - margin-bottom: var(--mega1) !important; +.font-semi-bold { + font-weight: var(--semi-bold) !important; } -.ml-mega1 { - margin-left: var(--mega1) !important; +.font-bold { + font-weight: var(--bold) !important; } -.mr-mega1 { - margin-right: var(--mega1) !important; +.font-black { + font-weight: var(--black) !important; } -.mis-mega1 { - margin-inline-start: var(--mega1) !important; +/* FONT SIZES */ + +.text-xs { + font-size: var(--text-xs) !important; } -.mie-mega1 { - margin-inline-end: var(--mega1) !important; +.text-sm { + font-size: var(--text-sm) !important; } -.p-mega1 { - padding: var(--mega1) !important; +.text-md { + font-size: var(--text-md) !important; } -.pt-mega1 { - padding-top: var(--mega1) !important; +.text-lg { + font-size: var(--text-lg) !important; } -.pb-mega1 { - padding-bottom: var(--mega1) !important; +.text-xl { + font-size: var(--text-xl) !important; } -.pl-mega1 { - padding-left: var(--mega1) !important; +.display-sm { + font-size: var(--display-sm) !important; } -.pr-mega1 { - padding-right: var(--mega1) !important; +.display-md { + font-size: var(--display-md) !important; } -.pis-mega1 { - padding-inline-start: var(--mega1) !important; +.display-lg { + font-size: var(--display-lg) !important; } -.pie-mega1 { - padding-inline-end: var(--mega1) !important; +.display-xl { + font-size: var(--display-xl) !important; } -.w-mega2 { - width: var(--mega2) !important; +.display-mega { + font-size: var(--display-mega) !important; } -.h-mega2 { - height: var(--mega2) !important; +.display-giga { + font-size: var(--display-giga) !important; } -.m-mega2 { - margin: var(--mega2) !important; +/* LETTER SPACING */ + +.tracking-sm { + letter-spacing: var(--tracking-sm) !important; } -.mt-mega2 { - margin-top: var(--mega2) !important; +.tracking-md { + letter-spacing: var(--tracking-md) !important; } -.mb-mega2 { - margin-bottom: var(--mega2) !important; +.tracking-lg { + letter-spacing: var(--tracking-lg) !important; } -.ml-mega2 { - margin-left: var(--mega2) !important; +.tracking-xl { + letter-spacing: var(--tracking-xl) !important; } -.mr-mega2 { - margin-right: var(--mega2) !important; +.tracking-xxl { + letter-spacing: var(--tracking-xxl) !important; } -.mis-mega2 { - margin-inline-start: var(--mega2) !important; +/* LINE HEIGHT */ + +.leading-xs { + line-height: var(--leading-xs) !important; } -.mie-mega2 { - margin-inline-end: var(--mega2) !important; +.leading-sm { + line-height: var(--leading-sm) !important; } -.p-mega2 { - padding: var(--mega2) !important; +.leading-md { + line-height: var(--leading-md) !important; } -.pt-mega2 { - padding-top: var(--mega2) !important; +.leading-lg { + line-height: var(--leading-lg) !important; } -.pb-mega2 { - padding-bottom: var(--mega2) !important; +.leading-xl { + line-height: var(--leading-xl) !important; } -.pl-mega2 { - padding-left: var(--mega2) !important; +.leading-xxl { + line-height: var(--leading-xxl) !important; } -.pr-mega2 { - padding-right: var(--mega2) !important; +/* TEXT ALIGN */ + +.text-left { + text-align: left !important; } -.pis-mega2 { - padding-inline-start: var(--mega2) !important; +.text-center { + text-align: center !important; } -.pie-mega2 { - padding-inline-end: var(--mega2) !important; +.text-right { + text-align: right !important; } -.w-mega3 { - width: var(--mega3) !important; +.text-justify { + text-align: justify !important; } -.h-mega3 { - height: var(--mega3) !important; +.text-start { + text-align: start !important; } -.m-mega3 { - margin: var(--mega3) !important; +.text-end { + text-align: end !important; } -.mt-mega3 { - margin-top: var(--mega3) !important; +/* TEXT TRANSFORM */ + +.text-uppercase { + text-transform: uppercase !important; } -.mb-mega3 { - margin-bottom: var(--mega3) !important; +.text-lowercase { + text-transform: lowercase !important; } -.ml-mega3 { - margin-left: var(--mega3) !important; +.text-capitalize { + text-transform: capitalize !important; } - -.mr-mega3 { - margin-right: var(--mega3) !important; } +/* DEFAULT THEME */ -.mis-mega3 { - margin-inline-start: var(--mega3) !important; -} +/* + Basic design tokens and UI abstractions + Import it next to mcss.css -.mie-mega3 { - margin-inline-end: var(--mega3) !important; -} + @import url(./framework/mcss.css); + @import url(./framework/theme.default.css); -.p-mega3 { - padding: var(--mega3) !important; -} + mcss.css imports no theme itself; without this file every token is unset + and the page will look broken.. -.pt-mega3 { - padding-top: var(--mega3) !important; -} + Don't edit the default theme. -.pb-mega3 { - padding-bottom: var(--mega3) !important; -} + To make your own theme, either duplicate/rename the 2 files below and + import theme instead of the default, or just override the bits you want + to change and imported that AFTER the defaults. There is `theme.starter.css` + to get you started if you want to go that road (recommended)). +*/ -.pl-mega3 { - padding-left: var(--mega3) !important; -} +/* Defensive redundancy - Same layers as in mcss.css */ -.pr-mega3 { - padding-right: var(--mega3) !important; -} +@layer theme.default{ -.pis-mega3 { - padding-inline-start: var(--mega3) !important; -} +/* DEFAULT THEME: TOKENS */ -.pie-mega3 { - padding-inline-end: var(--mega3) !important; -} +/* + Raw design tokens. Part of the default theme (see theme.default.css); + Don't edit this file directly. Thee best way is to Override it with your + own theme (see theme.starter.css). -.w-giga1 { - width: var(--giga1) !important; -} + Can't use var() inside media queries, so breakpoints are hard coded in + settings.media-queries.css instead of custom properties + xxs: 240px xs: 360px sm: 480px md: 768px lg: 1024px xl: 1440px xxl: 1920px +*/ -.h-giga1 { - height: var(--giga1) !important; -} +/* -.m-giga1 { - margin: var(--giga1) !important; -} +• Dimensions (Margin, Padding, Width, Height) +• Aspect Ratios -.mt-giga1 { - margin-top: var(--giga1) !important; -} +• Font Families +• Font Size +• Font Weight -.mb-giga1 { - margin-bottom: var(--giga1) !important; -} +• Letter Spacing +• Line Height -.ml-giga1 { - margin-left: var(--giga1) !important; -} +• Colors -.mr-giga1 { - margin-right: var(--giga1) !important; -} +• Border width +• Border radius -.mis-giga1 { - margin-inline-start: var(--giga1) !important; -} +• Box shadows -.mie-giga1 { - margin-inline-end: var(--giga1) !important; -} +• Opacity -.p-giga1 { - padding: var(--giga1) !important; -} +• Z-index -.pt-giga1 { - padding-top: var(--giga1) !important; -} +• Transitions -.pb-giga1 { - padding-bottom: var(--giga1) !important; -} +*/ -.pl-giga1 { - padding-left: var(--giga1) !important; -} +:root { -.pr-giga1 { - padding-right: var(--giga1) !important; -} + /* DIMENSIONS */ -.pis-giga1 { - padding-inline-start: var(--giga1) !important; -} + --xs1: 4px; + --xs2: 8px; + --xs3: 12px; -.pie-giga1 { - padding-inline-end: var(--giga1) !important; -} + --sm1: 16px; + --sm2: 20px; + --sm3: 24px; -.w-giga2 { - width: var(--giga2) !important; -} + --md1: 28px; + --md2: 32px; + --md3: 36px; -.h-giga2 { - height: var(--giga2) !important; -} + --lg1: 40px; + --lg2: 44px; + --lg3: 48px; -.m-giga2 { - margin: var(--giga2) !important; -} + --xl1: 56px; + --xl2: 64px; + --xl3: 80px; -.mt-giga2 { - margin-top: var(--giga2) !important; -} + --xxl1: 96px; + --xxl2: 112px; + --xxl3: 128px; -.mb-giga2 { - margin-bottom: var(--giga2) !important; -} + --mega1: 160px; + --mega2: 192px; + --mega3: 224px; -.ml-giga2 { - margin-left: var(--giga2) !important; -} + --giga1: 256px; + --giga2: 288px; + --giga3: 320px; -.mr-giga2 { - margin-right: var(--giga2) !important; -} + --tera1: 384px; + --tera2: 480px; + --tera3: 520px; -.mis-giga2 { - margin-inline-start: var(--giga2) !important; -} + /* ASPECT RATIOS */ -.mie-giga2 { - margin-inline-end: var(--giga2) !important; -} + --ar-square: 1; + --ar-landscape: 4/3; + --ar-portrait: 3/4; + --ar-widescreen: 16/9; + --ar-golden: 1.618/1; -.p-giga2 { - padding: var(--giga2) !important; -} + /* */ -.pt-giga2 { - padding-top: var(--giga2) !important; -} + /* (More typography in elements.text & help.text) */ -.pb-giga2 { - padding-bottom: var(--giga2) !important; -} + /* FONT FAMILIES (https://modernfontstacks.com) */ -.pl-giga2 { - padding-left: var(--giga2) !important; -} + --display: + Avenir, Montserrat, Corbel, URW Gothic, source-sans-pro, ui-sans-serif, + sans-serif; + --text: ui-sans-serif, system-ui, sans-serif; + --mono: + Dank Mono, Inconsolata, Fira Mono, SF Mono, Monaco, Droid Sans Mono, + Source Code Pro, Cascadia Code, Menlo, Consolas, DejaVu Sans Mono, + ui-monospace, monospace; -.pr-giga2 { - padding-right: var(--giga2) !important; -} + /* FONT SIZES (https://typescale.com) */ -.pis-giga2 { - padding-inline-start: var(--giga2) !important; -} + --text-xs: 0.694rem; + --text-sm: 0.833rem; + --text-md: 1rem; + --text-lg: 1.2rem; + --text-xl: 1.44rem; + --display-sm: 1.728rem; + --display-md: 2.074rem; + --display-lg: 2.488rem; + --display-xl: 2.986rem; /* h1 */ + --display-mega: 3.583rem; + --display-giga: 4.299rem; -.pie-giga2 { - padding-inline-end: var(--giga2) !important; -} + /* FONT WEIGHTS */ -.w-giga3 { - width: var(--giga3) !important; -} + --extra-light: 200; + --light: 300; + --book: 400; + --semi-bold: 600; + --bold: 700; + --black: 900; -.h-giga3 { - height: var(--giga3) !important; -} + /* LETTER SPACING */ -.m-giga3 { - margin: var(--giga3) !important; -} + --tracking-sm: -0.05em; + --tracking-md: 0.025em; + --tracking-lg: 0.05em; + --tracking-xl: 0.075em; + --tracking-xxl: 0.15em; -.mt-giga3 { - margin-top: var(--giga3) !important; -} + /* LINE HEIGHT */ -.mb-giga3 { - margin-bottom: var(--giga3) !important; -} + --leading-xs: 1; + --leading-sm: 1.15; + --leading-md: 1.375; + --leading-lg: 1.5; + --leading-xl: 1.75; + --leading-xxl: 2; + + /* COLORS (https://www.tints.dev) */ + + /* Base */ + + --base-0: #fff; + --base-50: #f6f7f9; + --base-100: #edeef1; + --base-200: #d6dbe1; + --base-300: #b2bbc7; + --base-400: #8897a8; + --base-500: #697a8e; + --base-600: #546375; + --base-700: #4a5666; + --base-800: #3c4550; + --base-900: #353c45; + --base-950: #23282e; + + /* Primary */ -.ml-giga3 { - margin-left: var(--giga3) !important; -} + --primary-50: #f0f9ff; + --primary-100: #e0f2fe; + --primary-200: #bae6fd; + --primary-300: #7dd3fc; + --primary-400: #38bdf8; + --primary-500: #0ea5e9; + --primary-600: #0284c7; + --primary-700: #0369a1; + --primary-800: #075985; + --primary-900: #0c4a6e; + --primary-950: #082f49; -.mr-giga3 { - margin-right: var(--giga3) !important; -} + /* Feedback */ -.mis-giga3 { - margin-inline-start: var(--giga3) !important; -} + --yes-100: #d5f6e8; + --yes-200: #afebd4; + --yes-300: #7adbbd; + --yes-400: #46c4a0; + --yes-500: #13886d; -.mie-giga3 { - margin-inline-end: var(--giga3) !important; -} + --no-100: #ffe4e6; + --no-200: #fecdd3; + --no-300: #fda4af; + --no-400: #fb7185; + --no-500: #e11d48; -.p-giga3 { - padding: var(--giga3) !important; -} + --maybe-100: #fff7d6; + --maybe-200: #fff0b3; + --maybe-300: #ffd64a; + --maybe-400: #ffc220; + --maybe-500: #f9a007; -.pt-giga3 { - padding-top: var(--giga3) !important; -} + /* Highlight (text marker) */ -.pb-giga3 { - padding-bottom: var(--giga3) !important; -} + --highlight-500: #ffee00; -.pl-giga3 { - padding-left: var(--giga3) !important; -} + /* BORDERS */ -.pr-giga3 { - padding-right: var(--giga3) !important; -} + --border-sm: 1px; + --border-md: 2px; + --border-lg: 4px; + --border-xl: 8px; + --border-xxl: 12px; -.pis-giga3 { - padding-inline-start: var(--giga3) !important; -} + --radius-sm: 3px; + --radius-md: 5px; + --radius-lg: 8px; + --radius-xl: 12px; + --radius-xxl: 16px; + --radius-round: 1e5px; -.pie-giga3 { - padding-inline-end: var(--giga3) !important; -} + /* DROP SHADOWS */ -.w-tera1 { - width: var(--tera1) !important; -} + --shadow-sm: + 0 1px 3px 0 var(--ui-shadow-color), 0 1px 2px -1px var(--ui-shadow-color); + --shadow-md: + 0 4px 6px -1px var(--ui-shadow-color), 0 2px 4px -2px var(--ui-shadow-color); + --shadow-lg: + 0 8px 13px -3px var(--ui-shadow-color), + 0 4px 6px -4px var(--ui-shadow-color); + --shadow-xl: + 0 20px 20px -5px var(--ui-shadow-color), + 0 8px 10px -6px var(--ui-shadow-color); + --shadow-xxl: + 0px 11px 8px -6px var(--ui-shadow-color), + 0 10px 15px 2px var(--ui-shadow-color); -.h-tera1 { - height: var(--tera1) !important; -} + /* OPACITY */ -.m-tera1 { - margin: var(--tera1) !important; -} + --o-0: 0; /* overkill for consistency */ + --o-1: 0.2; + --o-2: 0.4; + --o-3: 0.6; + --o-4: 0.8; + --o-5: 1; -.mt-tera1 { - margin-top: var(--tera1) !important; -} + /* Z-INDEX */ -.mb-tera1 { - margin-bottom: var(--tera1) !important; -} + --z-bottom: -1000000000; + --z-0: 0; /* overkill for consistency */ + --z-1: 10; + --z-2: 20; + --z-3: 30; + --z-4: 40; + --z-5: 50; + --z-top: 1000000000; -.ml-tera1 { - margin-left: var(--tera1) !important; -} + /* TRANSITIONS */ -.mr-tera1 { - margin-right: var(--tera1) !important; + --transition: 220ms ease-in-out; + --transition-fast: 100ms ease-in-out; } - -.mis-tera1 { - margin-inline-start: var(--tera1) !important; } -.mie-tera1 { - margin-inline-end: var(--tera1) !important; -} +@layer theme.default{ -.p-tera1 { - padding: var(--tera1) !important; -} +/* DEFAULT THEME: UI */ -.pt-tera1 { - padding-top: var(--tera1) !important; -} +/* + Tokens here are one abstraction level above raw tokens + They define styling for elements, components, or a shared style. -.pb-tera1 { - padding-bottom: var(--tera1) !important; -} + Values, in order of preference: + 1. Another ui token, when the meaning is shared + `--input-border-color: var(--ui-border-color)` + 2. A raw token: `--fieldset-padding: var(--sm3)` + 3. A raw value, only when it's not supposed to match a raw token + or when it's relative to the the element's own value (em heading spacing). + + Part of the default theme (see theme.default.css); don't edit it, + override from your own theme (see theme.starter.css). +*/ -.pl-tera1 { - padding-left: var(--tera1) !important; -} +:root { + /* Color scheme (light/dark), toggled by the .theme-light / .theme-dark + classes below. */ + color-scheme: light dark; -.pr-tera1 { - padding-right: var(--tera1) !important; -} + --ui-border-color: light-dark(var(--base-200), var(--base-500)); + /* Also used by the --shadow-* in theme.default.tokens.css, The one reference + between the files that runs upward, so shadows can switch with the color + scheme. Raw alpha colors: the palettes have no alpha steps. */ + --ui-shadow-color: light-dark(rgb(0 0 0 / 0.1), rgb(0 0 0 / 0.6)); -.pis-tera1 { - padding-inline-start: var(--tera1) !important; + /* Keyboard focus ring (used by :focus-visible in global.a11y.css). + Raw 2px on purpose: an accessibility shouldn't change with the theme. */ + --focus-ring-color: light-dark(var(--primary-500), var(--primary-400)); + --focus-ring-width: 2px; + --focus-ring-offset: 2px; } -.pie-tera1 { - padding-inline-end: var(--tera1) !important; +:root.theme-light { + color-scheme: light; } -.w-tera2 { - width: var(--tera2) !important; +:root.theme-dark { + color-scheme: dark; } -.h-tera2 { - height: var(--tera2) !important; -} +/* HTML ELEMENTS */ -.m-tera2 { - margin: var(--tera2) !important; -} +:root { + accent-color: var(--primary-500); -.mt-tera2 { - margin-top: var(--tera2) !important; -} + --body-background-color: light-dark(var(--base-0), var(--base-950)); + --body-line-height: var(--leading-lg); -.mb-tera2 { - margin-bottom: var(--tera2) !important; -} + --input-height: var(--md3); + --input-padding: var(--xs3); + --input-border-width: var(--border-sm); + --input-border-color: var(--ui-border-color); + --input-border-radius: var(--radius-md); + --input-border-color-invalid: light-dark(var(--no-500), var(--no-400)); -.ml-tera2 { - margin-left: var(--tera2) !important; -} + /* Gap under a label that precedes its control */ + --label-spacing: var(--xs1); -.mr-tera2 { - margin-right: var(--tera2) !important; -} + --fieldset-padding: var(--sm3); + --fieldset-border-width: var(--border-sm); + --fieldset-border-color: var(--ui-border-color); + --fieldset-border-radius: var(--radius-lg); -.mis-tera2 { - margin-inline-start: var(--tera2) !important; -} + /* meter: low/medium/high map to the even-less-good, suboptimum, and + optimum pseudo-elements */ + --meter-height: var(--sm1); + --meter-border-radius: var(--radius-md); + --meter-track-color: var(--primary-100); + --meter-low-color: var(--no-400); + --meter-medium-color: var(--maybe-400); + --meter-high-color: var(--yes-400); -.mie-tera2 { - margin-inline-end: var(--tera2) !important; -} + --progress-height: var(--sm1); + --progress-color: var(--primary-500); + --progress-track-color: var(--primary-100); + --progress-border-radius: var(--radius-md); -.p-tera2 { - padding: var(--tera2) !important; -} + /* select's chevron, applied as a mask using text color; + any url() works here, data URL or file */ + --select-icon-size: var(--sm3); + --select-icon: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%20id='chevron-down'%3E%3Cpath%20d='m6%209%206%206%206-6'/%3E%3C/svg%3E"); -.pt-tera2 { - padding-top: var(--tera2) !important; -} + --dialog-min-width: var(--tera1); + --dialog-max-width: var(--tera3); + --dialog-padding: var(--lg1) var(--md1); + --dialog-border-width: var(--border-sm); + --dialog-border-color: light-dark(var(--base-200), var(--base-800)); + --dialog-background-color: light-dark(var(--base-50), var(--base-900)); + --dialog-border-radius: var(--radius-lg); + --dialog-backdrop-color: var(--base-950); + --dialog-backdrop-opacity: var(--o-4); -.pb-tera2 { - padding-bottom: var(--tera2) !important; -} + /* details: same as dialog by default, on purpose, to be independently + overridable. Spacing is the gap between an open summary and its content. */ + --details-padding: var(--sm1); + --details-spacing: var(--xs3); + --details-border-width: var(--border-sm); + --details-border-color: light-dark(var(--base-200), var(--base-800)); + --details-background-color: light-dark(var(--base-50), var(--base-900)); + --details-border-radius: var(--radius-lg); + --details-icon-size: var(--sm3); + /* Marker icon, applied as a mask painted with the text color; any + url() works here, data URL or file */ + --details-icon: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%20id='chevron-down'%3E%3Cpath%20d='m6%209%206%206%206-6'/%3E%3C/svg%3E"); -.pl-tera2 { - padding-left: var(--tera2) !important; -} + --table-padding: var(--xs2) var(--sm1); + --table-border-width: var(--border-sm); + --table-border-color: light-dark(var(--base-100), var(--base-700)); + --table-border-radius: var(--radius-md); + --table-background-color: none; + /* Gap between the table and its caption */ + --table-caption-spacing: var(--xs3); + /* Gap between a figure's content and caption on either side */ + --figcaption-spacing: var(--xs2); -.pr-tera2 { - padding-right: var(--tera2) !important; -} + /* Text */ -.pis-tera2 { - padding-inline-start: var(--tera2) !important; -} + --heading-font: var(--display); + --heading-weight: var(--black); + --heading-letter-spacing: normal; /* (e.g. -0.02em or var(--tracking-sm)) */ -.pie-tera2 { - padding-inline-end: var(--tera2) !important; -} + --heading-font-size-h1: clamp( + var(--display-md), + 1.269rem + 2.682vw, + var(--display-xl) + ); /* 2.074rem → 2.986rem */ + --heading-font-size-h2: clamp( + var(--display-sm), + 1.057rem + 2.235vw, + var(--display-lg) + ); /* 1.728rem → 2.488rem */ + --heading-font-size-h3: clamp( + var(--text-xl), + 0.881rem + 1.865vw, + var(--display-md) + ); /* 1.44rem → 2.074rem */ + --heading-font-size-h4: clamp( + var(--text-lg), + 0.734rem + 1.553vw, + var(--display-sm) + ); /* 1.2rem → 1.728rem */ + --heading-font-size-h5: clamp( + var(--text-lg), + 0.988rem + 0.706vw, + var(--text-xl) + ); /* 1.2rem → 1.44rem */ + --heading-font-size-h6: clamp( + var(--text-md), + 0.824rem + 0.588vw, + var(--text-lg) + ); /* 1rem → 1.2rem */ -.w-tera3 { - width: var(--tera3) !important; -} + --heading-line-height: var(--leading-sm); + --heading-line-height-h1: var(--heading-line-height); + --heading-line-height-h2: var(--heading-line-height); + --heading-line-height-h3: var(--heading-line-height); + --heading-line-height-h4: var(--leading-md); + --heading-line-height-h5: var(--leading-md); + --heading-line-height-h6: var(--leading-md); -.h-tera3 { - height: var(--tera3) !important; -} + /* Headings bottom margin */ + --heading-spacing-h1: 0.4em; + --heading-spacing-h2: 0.4em; + --heading-spacing-h3: 0.4em; + --heading-spacing-h4: 0.4em; + --heading-spacing-h5: 0.4em; + --heading-spacing-h6: 0.4em; + /* Any h1 before h2, h2 before h3, h3 before h4. */ + --heading-spacing-consecutive: 0.3em; -.m-tera3 { - margin: var(--tera3) !important; -} + --text-color: light-dark(var(--base-950), var(--base-200)); + --link-font-weight: var(--semi-bold); + --link-color: light-dark(var(--primary-600), var(--primary-400)); + --link-color-hover: var(--primary-500); -.mt-tera3 { - margin-top: var(--tera3) !important; -} + --text-code-color: light-dark(var(--primary-600), var(--primary-400)); + --text-code-background-color: light-dark( + var(--primary-100), + var(--primary-900) + ); + /* when code inline styling doesn't apply (inside headings and pre) */ + --text-code-muted-color: light-dark(var(--base-500), var(--base-300)); -.mb-tera3 { - margin-bottom: var(--tera3) !important; -} + --pre-border-radius: var(--radius-md); + /* matching the 0.9em of inline code */ + --pre-font-size: 0.9rem; -.ml-tera3 { - margin-left: var(--tera3) !important; -} + --blockquote-padding-block: var(--sm1); + --blockquote-padding-inline: var(--md1) var(--sm3); + --blockquote-background-color: light-dark( + var(--primary-50), + var(--primary-900) + ); + --blockquote-border-radius: var(--radius-md); + --blockquote-accent-width: var(--xs2); + --blockquote-accent-color: linear-gradient( + var(--primary-800), + var(--primary-500) + ); -.mr-tera3 { - margin-right: var(--tera3) !important; -} + /* .prose related stuff in GLOBAL */ -.mis-tera3 { - margin-inline-start: var(--tera3) !important; -} + /* Optional centered label on
, e.g. "***" or a dingbat */ + --hr-content: ""; -.mie-tera3 { - margin-inline-end: var(--tera3) !important; -} + /* ins: background stays light in both light/dark modes */ + --ins-color: var(--base-950); + --ins-background-color: var(--yes-200); -.p-tera3 { - padding: var(--tera3) !important; -} + --marker-color: var(--highlight-500); -.pt-tera3 { - padding-top: var(--tera3) !important; + --selection-color: light-dark(var(--base-950), var(--base-0)); + --selection-background-color: light-dark( + var(--primary-200), + var(--primary-700) + ); } -.pb-tera3 { - padding-bottom: var(--tera3) !important; -} +/* GLOBAL */ -.pl-tera3 { - padding-left: var(--tera3) !important; -} +:root { + /* Mobile-first: tighter gutters on small screens, 24px from --md up */ + --grid-column-gap: var(--sm1); + --grid-row-gap: var(--sm1); + @media (width >= 768px) { + --grid-column-gap: var(--sm3); + --grid-row-gap: var(--sm3); + } -.pr-tera3 { - padding-right: var(--tera3) !important; -} + --wrap-spacing: var(--sm1); + --wrap-md-spacing: var(--sm3); + --wrap-lg-spacing: 0; + /* Widths are measures: ch tracks the text size, so raw on purpose. */ + --wrap-width-sm: minmax(0, 55ch); + --wrap-width-md: minmax(0, 70ch); + --wrap-width-lg: minmax(0, 900px); + --wrap-width: var(--wrap-width-md); -.pis-tera3 { - padding-inline-start: var(--tera3) !important; -} + --layout-content-width: 70ch; + --layout-aside-width: 245px; + --layout-toc-width: 1fr; -.pie-tera3 { - padding-inline-end: var(--tera3) !important; -} + --prose-spacing: var(--sm1); } -@layer helpers{ - -/* HELPER TYPOGRAPHY */ -/* .h1, .h2, .h3, .h4, .h5, .h6 are in elements.text */ - -/* FONT FAMILY */ +/* COMPONENTS */ -.font-text { - font-family: var(--text) !important; -} +/* Badge */ -.font-display { - font-family: var(--display) !important; -} +:root { + --badge-font-size: var(--text-sm); + --badge-border-radius: var(--radius-md); + --badge-color: var(--base-0); + --badge-background-color: light-dark(var(--base-700), var(--base-600)); -.font-mono { - font-family: var(--mono) !important; + --badge-primary-color: var(--base-0); + --badge-primary-background-color: light-dark( + var(--primary-600), + var(--primary-500) + ); + --badge-success-color: light-dark(var(--yes-500), var(--base-0)); + --badge-success-background-color: light-dark(var(--yes-100), var(--yes-500)); + --badge-danger-color: light-dark(var(--no-500), var(--base-0)); + --badge-danger-background-color: light-dark(var(--no-100), var(--no-500)); + --badge-warning-color: light-dark(var(--maybe-500), var(--base-950)); + --badge-warning-background-color: light-dark( + var(--maybe-100), + var(--maybe-500) + ); } -/* FONT STYLE */ +/* Button */ +/* (Button defaults and primary button colors) */ -.font-italic { - font-style: italic !important; -} +:root { + /* Optical minimums, deliberately off the spacing scale */ + --bt-min-width: 101px; + --bt-min-width-md: 123px; + --bt-min-width-lg: 133px; -.font-normal { - font-style: normal !important; -} + --bt-font-size: var(--text-sm); + --bt-font-size-lg: var(--text-md); + --bt-font-weight: var(--semi-bold); -/* FONT WEIGHTS */ + --bt-color: var(--text-color); + --bt-color-hover: light-dark(var(--text-color), var(--base-0)); -.font-extra-light { - font-weight: var(--extra-light) !important; -} + --bt-background-color: light-dark(var(--base-0), var(--base-800)); + --bt-background-color-hover: light-dark(var(--base-50), var(--base-900)); -.font-light { - font-weight: var(--light) !important; -} + --bt-border-color: var(--ui-border-color); + --bt-border-width: var(--border-sm); + --bt-border-radius: var(--radius-lg); + --bt-border-radius-lg: var(--radius-xl); -.font-book { - font-weight: var(--book) !important; -} + --bt-outline-color-hover: light-dark(var(--base-950), var(--base-0)); + --bt-outline-background-color-hover: light-dark( + rgb(0 0 0 / 0.1), + rgb(255 255 255 / 0.1) + ); + --bt-outline-border-color: light-dark(var(--base-950), var(--base-0)); + --bt-outline-border-color-hover: light-dark(var(--base-950), var(--base-0)); -.font-semi-bold { - font-weight: var(--semi-bold) !important; + --bt-primary-color: var(--base-0); + --bt-primary-color-hover: var(--base-0); + --bt-primary-background-color: var(--primary-600); + --bt-primary-background-color-hover: var(--primary-500); + --bt-primary-border-color: var(--primary-600); + --bt-primary-border-color-hover: var(--primary-600); } -.font-bold { - font-weight: var(--bold) !important; -} +/* Avatar */ -.font-black { - font-weight: var(--black) !important; +:root { + --avatar-color: var(--base-0); + --avatar-background-color: var(--base-400); + --avatar-border-color: light-dark(var(--base-0), var(--base-500)); + --avatar-border-width: var(--border-sm); + --avatar-radius: var(--radius-round); + --avatar-status-dot-color-offline: var(--base-300); + --avatar-status-dot-color-online: var(--yes-400); } -/* FONT SIZES */ +/* Banner */ -.text-xs { - font-size: var(--text-xs) !important; +:root { + --banner-color: var(--base-0); + --banner-background-color: light-dark(var(--primary-600), var(--primary-800)); } -.text-sm { - font-size: var(--text-sm) !important; -} +/* Breadcrumbs */ -.text-md { - font-size: var(--text-md) !important; +:root { + --breadcrumbs-separator: "/"; + --breadcrumbs-separator-color: light-dark(var(--base-300), var(--base-600)); + --breadcrumbs-color: light-dark(var(--base-500), var(--base-400)); + --breadcrumbs-color-current: var(--text-color); } -.text-lg { - font-size: var(--text-lg) !important; -} +/* Card */ -.text-xl { - font-size: var(--text-xl) !important; +:root { + --card-spacing: var(--sm3); + --card-color: var(--text-color); + --card-secondary-text-color: light-dark(var(--base-400), var(--base-500)); + --card-bg-color: light-dark(var(--base-100), var(--base-900)); + --card-border-radius: var(--radius-lg); + --card-border-color: var(--ui-border-color); + --card-border-width: var(--border-sm); + --card-shadow: var(--shadow-md); + --card-shadow-hover: var(--shadow-xl); + --card-loading-bg: light-dark(var(--base-200), var(--base-900)); + /* Default media aspect ratio; the Card component pins it inline only + when its aspectRatio prop is passed */ + --card-aspect-ratio: var(--ar-golden); } -.display-sm { - font-size: var(--display-sm) !important; -} +/* Toggle */ -.display-md { - font-size: var(--display-md) !important; +:root { + /* Drawn-control geometry, deliberately off the scales */ + --toggle-width: 50px; + --toggle-height: 28px; + --toggle-border-width: 2px; + --toggle-track-color: light-dark(var(--base-300), var(--base-700)); + --toggle-track-color-checked: var(--yes-400); + --toggle-thumb-color: var(--body-background-color); } -.display-lg { - font-size: var(--display-lg) !important; -} +/* FAQ */ -.display-xl { - font-size: var(--display-xl) !important; +:root { + --faq-spacing: var(--xs3); } -.display-mega { - font-size: var(--display-mega) !important; -} +/* Field */ -.display-giga { - font-size: var(--display-giga) !important; +:root { + --field-spacing: var(--xs1); + --field-hint-color: light-dark(var(--base-400), var(--base-500)); + --field-error-color: light-dark(var(--no-500), var(--no-300)); + /*Field's hint/error position. Use `static` to reflow under, use `absolute` + (and leave enough space below) if you don't want any shift on errors */ + --field-message-position: static; } -/* LETTER SPACING */ +/* FeatureItem */ -.tracking-sm { - letter-spacing: var(--tracking-sm) !important; +:root { + --featureItem-icon-box-size: var(--lg3); + --featureItem-icon-size: var(--sm3); + --featureItem-icon-color: light-dark(var(--primary-600), var(--primary-300)); + --featureItem-icon-background-color: light-dark( + var(--primary-100), + var(--primary-900) + ); + --featureItem-icon-border-radius: var(--radius-lg); } -.tracking-md { - letter-spacing: var(--tracking-md) !important; -} +/* Footer */ -.tracking-lg { - letter-spacing: var(--tracking-lg) !important; +:root { + --footer-background-color: light-dark(var(--primary-950), var(--base-950)); + --footer-text-color: light-dark(var(--base-0), var(--base-200)); + --footer-border-width: var(--border-md); + --footer-border-color: light-dark(transparent, var(--base-700)); + --footer-link-color: light-dark(var(--base-0), var(--base-200)); + --footer-link-color-hover: light-dark(var(--primary-200), var(--base-0)); } -.tracking-xl { - letter-spacing: var(--tracking-xl) !important; -} +/* Header */ -.tracking-xxl { - letter-spacing: var(--tracking-xxl) !important; +:root { + --header-height: var(--xl1); + --header-padding: var(--sm1); + @media (width >= 768px) { + --header-height: var(--xl2); + --header-padding: var(--sm3); + } + --header-background-color: light-dark(var(--base-0), var(--base-950)); + + /* The mobile menu is an always-dark by design */ + --header-menu-background-color: var(--base-950); + --header-menu-color: var(--base-0); + --header-menu-color-current: var(--primary-400); + --header-menu-secondary-color: var(--base-300); + --header-menu-border-color: var(--base-500); } -/* LINE HEIGHT */ +/* Hero */ -.leading-xs { - line-height: var(--leading-xs) !important; +:root { + --hero-radius: var(--radius-xl); + --hero-content-padding: var(--md3); + --hero-actions-spacing: var(--lg3); + --hero-pagination-dot: var(--sm1); + --hero-pagination-dot-color: var(--base-0); + --hero-pagination-dot-active-color: var(--primary-600); + --hero-pagination-opacity: var(--o-4); } -.leading-sm { - line-height: var(--leading-sm) !important; -} +/* Pagination */ -.leading-md { - line-height: var(--leading-md) !important; +:root { + --pagination-size: var(--md3); + --pagination-border-radius: var(--radius-md); + --pagination-color: var(--text-color); + --pagination-color-current: var(--base-0); + --pagination-background-color-current: light-dark( + var(--primary-600), + var(--primary-500) + ); + --pagination-background-color-hover: light-dark( + var(--base-100), + var(--base-800) + ); } -.leading-lg { - line-height: var(--leading-lg) !important; -} +/* PrevNext */ -.leading-xl { - line-height: var(--leading-xl) !important; +:root { + --prevNext-border-color: var(--ui-border-color); + --prevNext-border-radius: var(--radius-lg); + --prevNext-border-color-hover: var(--link-color); + --prevNext-label-color: light-dark(var(--base-400), var(--base-500)); } -.leading-xxl { - line-height: var(--leading-xxl) !important; +/* Notice */ + +:root { + --notice-spacing: var(--sm1); + --notice-text-color: light-dark(var(--base-950), var(--base-0)); + --notice-background-color: light-dark(var(--base-50), var(--base-800)); + --notice-border-color: light-dark(var(--base-200), var(--base-500)); + --notice-border-width: var(--border-sm); + --notice-border-radius: var(--radius-lg); } -/* TEXT ALIGN */ +/* Pricing */ -.text-left { - text-align: left !important; +:root { + --pricingCard-highlight-border-color: light-dark( + var(--primary-600), + var(--primary-400) + ); + --pricingCard-check-color: light-dark(var(--yes-500), var(--yes-400)); } -.text-center { - text-align: center !important; -} +/* Read Progress Bar */ -.text-right { - text-align: right !important; +:root { + --readProgressBar-height: var(--xs1); + --readProgressBar-color: linear-gradient( + 90deg, + var(--primary-600) 0%, + var(--primary-400) 100% + ); } -.text-justify { - text-align: justify !important; -} +/* Section */ -.text-start { - text-align: start !important; +:root { + --section-spacing: var(--xl3); + --section-header-spacing: var(--lg3); + --section-eyebrow-color: light-dark(var(--primary-600), var(--primary-400)); + --section-lede-color: light-dark(var(--base-500), var(--base-400)); + --section-filled-background-color: light-dark( + var(--base-50), + var(--base-900) + ); + --section-primary-background-color: light-dark( + var(--primary-600), + var(--primary-900) + ); + --section-primary-text-color: var(--base-0); + --section-primary-link-color: var(--primary-100); + --section-primary-link-color-hover: var(--base-0); + --section-primary-eyebrow-color: var(--primary-200); + --section-primary-lede-color: var(--primary-100); } -.text-end { - text-align: end !important; +/* Testimonial */ + +:root { + --testimonial-role-color: light-dark(var(--base-400), var(--base-500)); } -/* TEXT TRANSFORM */ +/* Tags */ -.text-uppercase { - text-transform: uppercase !important; +:root { + --tags-padding: var(--xs2); + --tags-font-size: var(--text-sm); + --tags-color: light-dark(var(--base-500), var(--base-400)); + --tags-background-color: light-dark(var(--base-100), var(--base-800)); + --tags-background-color-hover: light-dark(var(--base-200), var(--base-950)); + --tags-radius: var(--radius-md); } -.text-lowercase { - text-transform: lowercase !important; -} +/* Tiles has no tokens here: its column count is set by container queries in + component.tiles.css since custom properties don't work inside @container. +*/ -.text-capitalize { - text-transform: capitalize !important; +/* TOC */ + +:root { + --toc-color: var(--link-color); + --toc-color-hover: var(--link-color-hover); + --toc-spacing: var(--xs1); + --toc-indentation: var(--xs3); + --toc-icon-size: var(--sm1); } } diff --git a/dist/mcss.min.css b/dist/mcss.min.css index 2f957b90..0f8ee080 100644 --- a/dist/mcss.min.css +++ b/dist/mcss.min.css @@ -1,2 +1,2 @@ /*! mCSS v1.3.0 | MIT | https://mcss.dev */ -@layer settings,base,elements,global,components,theme,helpers;@layer settings{:root{--xs1: 4px;--xs2: 8px;--xs3: 12px;--sm1: 16px;--sm2: 20px;--sm3: 24px;--md1: 28px;--md2: 32px;--md3: 36px;--lg1: 40px;--lg2: 44px;--lg3: 48px;--xl1: 56px;--xl2: 64px;--xl3: 80px;--xxl1: 96px;--xxl2: 112px;--xxl3: 128px;--mega1: 160px;--mega2: 192px;--mega3: 224px;--giga1: 256px;--giga2: 288px;--giga3: 320px;--tera1: 384px;--tera2: 480px;--tera3: 520px;--ar-square: 1;--ar-landscape: 4/3;--ar-portrait: 3/4;--ar-widescreen: 16/9;--ar-golden: 1.618/1;--display: Avenir, Montserrat, Corbel, URW Gothic, source-sans-pro, ui-sans-serif, sans-serif;--text: ui-sans-serif, system-ui, sans-serif;--mono: Dank Mono, Inconsolata, Fira Mono, SF Mono, Monaco, Droid Sans Mono, Source Code Pro, Cascadia Code, Menlo, Consolas, DejaVu Sans Mono, ui-monospace, monospace;--text-xs: .694rem;--text-sm: .833rem;--text-md: 1rem;--text-lg: 1.2rem;--text-xl: 1.44rem;--display-sm: 1.728rem;--display-md: 2.074rem;--display-lg: 2.488rem;--display-xl: 2.986rem;--display-mega: 3.583rem;--display-giga: 4.299rem;--extra-light: 200;--light: 300;--book: 400;--semi-bold: 600;--bold: 700;--black: 900;--tracking-sm: -.05em;--tracking-md: .025em;--tracking-lg: .05em;--tracking-xl: .075em;--tracking-xxl: .15em;--leading-xs: 1;--leading-sm: 1.15;--leading-md: 1.375;--leading-lg: 1.5;--leading-xl: 1.75;--leading-xxl: 2;--base-0: #fff;--base-50: #f6f7f9;--base-100: #edeef1;--base-200: #d6dbe1;--base-300: #b2bbc7;--base-400: #8897a8;--base-500: #697a8e;--base-600: #546375;--base-700: #4a5666;--base-800: #3c4550;--base-900: #353c45;--base-950: #23282e;--primary-50: #f0f9ff;--primary-100: #e0f2fe;--primary-200: #bae6fd;--primary-300: #7dd3fc;--primary-400: #38bdf8;--primary-500: #0ea5e9;--primary-600: #0284c7;--primary-700: #0369a1;--primary-800: #075985;--primary-900: #0c4a6e;--primary-950: #082f49;--yes-100: #d5f6e8;--yes-200: #afebd4;--yes-300: #7adbbd;--yes-400: #46c4a0;--yes-500: #13886d;--no-100: #ffe4e6;--no-200: #fecdd3;--no-300: #fda4af;--no-400: #fb7185;--no-500: #e11d48;--maybe-100: #fff7d6;--maybe-200: #fff0b3;--maybe-300: #ffd64a;--maybe-400: #ffc220;--maybe-500: #f9a007;--highlight-500: #ffee00;--gradient-primary: linear-gradient( 90deg, var(--primary-950) 0%, var(--primary-400) 100% );--border-sm: 1px;--border-md: 2px;--border-lg: 4px;--border-xl: 8px;--border-xxl: 12px;--radius-sm: 3px;--radius-md: 5px;--radius-lg: 8px;--radius-xl: 12px;--radius-xxl: 16px;--radius-round: 1e5px;--shadow-sm: 0 1px 3px 0 var(--ui-shadow-color), 0 1px 2px -1px var(--ui-shadow-color);--shadow-md: 0 4px 6px -1px var(--ui-shadow-color), 0 2px 4px -2px var(--ui-shadow-color);--shadow-lg: 0 8px 13px -3px var(--ui-shadow-color), 0 4px 6px -4px var(--ui-shadow-color);--shadow-xl: 0 20px 20px -5px var(--ui-shadow-color), 0 8px 10px -6px var(--ui-shadow-color);--shadow-xxl: 0px 11px 8px -6px var(--ui-shadow-color), 0 10px 15px 2px var(--ui-shadow-color);--o-0: 0;--o-1: .2;--o-2: .4;--o-3: .6;--o-4: .8;--o-5: 1;--z-bottom: -1000000000;--z-0: 0;--z-1: 10;--z-2: 20;--z-3: 30;--z-4: 40;--z-5: 50;--z-top: 1000000000;--transition: .22s ease-in-out;--transition-fast: .1s ease-in-out}}@layer settings{:root{color-scheme:light dark;--ui-border-color: light-dark(var(--base-200), var(--base-500));--ui-shadow-color: light-dark(rgb(0 0 0 / .1), rgb(0 0 0 / .6));--focus-ring-color: light-dark(var(--primary-500), var(--primary-400));--focus-ring-width: 2px;--focus-ring-offset: 2px;--success-100: var(--yes-100);--success-200: var(--yes-200);--success-300: var(--yes-300);--success-400: var(--yes-400);--success-500: var(--yes-500);--danger-100: var(--no-100);--danger-200: var(--no-200);--danger-300: var(--no-300);--danger-400: var(--no-400);--danger-500: var(--no-500);--warning-100: var(--maybe-100);--warning-200: var(--maybe-200);--warning-300: var(--maybe-300);--warning-400: var(--maybe-400);--warning-500: var(--maybe-500)}:root.theme-light{color-scheme:light}:root.theme-dark{color-scheme:dark}:root{accent-color:var(--primary-500);--body-background-color: light-dark(var(--base-0), var(--base-950));--body-line-height: var(--leading-lg);--input-height: var(--md3);--input-padding: var(--xs3);--input-border-width: var(--border-sm);--input-border-color: var(--ui-border-color);--input-border-radius: var(--radius-md);--input-border-color-invalid: light-dark( var(--danger-500), var(--danger-400) );--label-spacing: var(--xs1);--fieldset-padding: var(--sm3);--fieldset-border-width: var(--border-sm);--fieldset-border-color: var(--ui-border-color);--fieldset-border-radius: var(--radius-lg);--meter-height: var(--sm1);--meter-border-radius: var(--radius-md);--meter-track-color: var(--primary-100);--meter-low-color: var(--danger-400);--meter-medium-color: var(--warning-400);--meter-high-color: var(--success-400);--progress-height: var(--sm1);--progress-color: var(--primary-500);--progress-track-color: var(--primary-100);--progress-border-radius: var(--radius-md);--select-icon-size: var(--sm3);--select-icon: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%20id='chevron-down'%3E%3Cpath%20d='m6%209%206%206%206-6'/%3E%3C/svg%3E");--dialog-min-width: var(--tera1);--dialog-max-width: var(--tera3);--dialog-padding: var(--lg1) var(--md1);--dialog-border-width: var(--border-sm);--dialog-border-color: light-dark(var(--base-200), var(--base-800));--dialog-background-color: light-dark(var(--base-50), var(--base-900));--dialog-border-radius: var(--radius-lg);--dialog-backdrop-color: var(--base-950);--dialog-backdrop-opacity: var(--o-4);--details-padding: var(--sm1);--details-spacing: var(--xs3);--details-border-width: var(--border-sm);--details-border-color: light-dark(var(--base-200), var(--base-800));--details-background-color: light-dark(var(--base-50), var(--base-900));--details-border-radius: var(--radius-lg);--details-icon-size: var(--sm3);--details-icon: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%20id='chevron-down'%3E%3Cpath%20d='m6%209%206%206%206-6'/%3E%3C/svg%3E");--table-padding: var(--xs2) var(--sm1);--table-border-width: var(--border-sm);--table-border-color: light-dark(var(--base-100), var(--base-700));--table-border-radius: var(--radius-md);--table-background-color: none;--table-caption-spacing: var(--xs3);--figcaption-spacing: var(--xs2);--heading-font: var(--display);--heading-weight: var(--black);--heading-letter-spacing: normal;--heading-font-size-h1: clamp( var(--display-md), 1.269rem + 2.682vw, var(--display-xl) );--heading-font-size-h2: clamp( var(--display-sm), 1.057rem + 2.235vw, var(--display-lg) );--heading-font-size-h3: clamp( var(--text-xl), .881rem + 1.865vw, var(--display-md) );--heading-font-size-h4: clamp( var(--text-lg), .734rem + 1.553vw, var(--display-sm) );--heading-font-size-h5: clamp( var(--text-lg), .988rem + .706vw, var(--text-xl) );--heading-font-size-h6: clamp( var(--text-md), .824rem + .588vw, var(--text-lg) );--heading-line-height: var(--leading-sm);--heading-line-height-h1: var(--heading-line-height);--heading-line-height-h2: var(--heading-line-height);--heading-line-height-h3: var(--heading-line-height);--heading-line-height-h4: var(--leading-md);--heading-line-height-h5: var(--leading-md);--heading-line-height-h6: var(--leading-md);--heading-spacing-h1: .4em;--heading-spacing-h2: .4em;--heading-spacing-h3: .4em;--heading-spacing-h4: .4em;--heading-spacing-h5: .4em;--heading-spacing-h6: .4em;--heading-spacing-consecutive: .3em;--text-color: light-dark(var(--base-950), var(--base-200));--link-font-weight: var(--semi-bold);--link-color: light-dark(var(--primary-600), var(--primary-400));--link-color-hover: var(--primary-500);--text-code-color: light-dark(var(--primary-600), var(--primary-400));--text-code-background-color: light-dark( var(--primary-100), var(--primary-900) );--text-code-muted-color: light-dark(var(--base-500), var(--base-300));--pre-border-radius: var(--radius-md);--pre-font-size: .9rem;--blockquote-padding-block: var(--sm1);--blockquote-padding-inline: var(--md1) var(--sm3);--blockquote-background-color: light-dark( var(--primary-50), var(--primary-900) );--blockquote-border-radius: var(--radius-md);--blockquote-accent-width: var(--xs2);--blockquote-accent-color: linear-gradient( var(--primary-800), var(--primary-500) );--hr-content: "";--ins-color: var(--base-950);--ins-background-color: var(--success-200);--marker-color: var(--highlight-500);--selection-color: light-dark(var(--base-950), var(--base-0));--selection-background-color: light-dark( var(--primary-200), var(--primary-700) )}:root{--grid-column-gap: var(--sm1);--grid-row-gap: var(--sm1);@media(width>=768px){--grid-column-gap: var(--sm3);--grid-row-gap: var(--sm3)}--wrap-spacing: var(--sm1);--wrap-md-spacing: var(--sm3);--wrap-lg-spacing: 0;--wrap-width-sm: minmax(0, 55ch);--wrap-width-md: minmax(0, 70ch);--wrap-width-lg: minmax(0, 900px);--wrap-width: var(--wrap-width-md);--layout-content-width: 70ch;--layout-aside-width: 245px;--layout-toc-width: 1fr;--prose-spacing: var(--sm1)}:root{--badge-font-size: var(--text-sm);--badge-border-radius: var(--radius-md);--badge-color: var(--base-0);--badge-background-color: light-dark(var(--base-700), var(--base-600));--badge-primary-color: var(--base-0);--badge-primary-background-color: light-dark( var(--primary-600), var(--primary-500) );--badge-success-color: light-dark(var(--success-500), var(--base-0));--badge-success-background-color: light-dark( var(--success-100), var(--success-500) );--badge-danger-color: light-dark(var(--danger-500), var(--base-0));--badge-danger-background-color: light-dark( var(--danger-100), var(--danger-500) );--badge-warning-color: light-dark(var(--warning-500), var(--base-950));--badge-warning-background-color: light-dark( var(--warning-100), var(--warning-500) )}:root{--bt-min-width: 101px;--bt-min-width-md: 123px;--bt-min-width-lg: 133px;--bt-font-size: var(--text-sm);--bt-font-size-lg: var(--text-md);--bt-font-weight: var(--semi-bold);--bt-color: var(--text-color);--bt-color-hover: light-dark(var(--text-color), var(--base-0));--bt-background-color: light-dark(var(--base-0), var(--base-800));--bt-background-color-hover: light-dark(var(--base-50), var(--base-900));--bt-border-color: var(--ui-border-color);--bt-border-width: var(--border-sm);--bt-border-radius: var(--radius-lg);--bt-border-radius-lg: var(--radius-xl);--bt-outline-color-hover: light-dark(var(--base-950), var(--base-0));--bt-outline-background-color-hover: light-dark( rgb(0 0 0 / .1), rgb(255 255 255 / .1) );--bt-outline-border-color: light-dark(var(--base-950), var(--base-0));--bt-outline-border-color-hover: light-dark(var(--base-950), var(--base-0));--bt-primary-color: var(--base-0);--bt-primary-color-hover: var(--base-0);--bt-primary-background-color: var(--primary-600);--bt-primary-background-color-hover: var(--primary-500);--bt-primary-border-color: var(--primary-600);--bt-primary-border-color-hover: var(--primary-600)}:root{--avatar-color: var(--base-0);--avatar-background-color: var(--base-400);--avatar-border-color: light-dark(var(--base-0), var(--base-500));--avatar-border-width: var(--border-sm);--avatar-radius: var(--radius-round);--avatar-status-dot-color-offline: var(--base-300);--avatar-status-dot-color-online: var(--yes-400)}:root{--banner-color: var(--base-0);--banner-background-color: light-dark(var(--primary-600), var(--primary-800))}:root{--breadcrumbs-separator: "/";--breadcrumbs-separator-color: light-dark(var(--base-300), var(--base-600));--breadcrumbs-color: light-dark(var(--base-500), var(--base-400));--breadcrumbs-color-current: var(--text-color)}:root{--card-spacing: var(--sm3);--card-color: var(--text-color);--card-secondary-text-color: light-dark(var(--base-400), var(--base-500));--card-bg-color: light-dark(var(--base-100), var(--base-900));--card-border-radius: var(--radius-lg);--card-border-color: var(--ui-border-color);--card-border-width: var(--border-sm);--card-shadow: var(--shadow-md);--card-shadow-hover: var(--shadow-xl);--card-loading-bg: light-dark(var(--base-200), var(--base-900));--card-aspect-ratio: var(--ar-golden)}:root{--toggle-width: 50px;--toggle-height: 28px;--toggle-border-width: 2px;--toggle-track-color: light-dark(var(--base-300), var(--base-700));--toggle-track-color-checked: var(--yes-400);--toggle-thumb-color: var(--body-background-color)}:root{--faq-spacing: var(--xs3)}:root{--field-spacing: var(--xs1);--field-hint-color: light-dark(var(--base-400), var(--base-500));--field-error-color: light-dark(var(--danger-500), var(--danger-300));--field-message-position: static}:root{--featureItem-icon-box-size: var(--lg3);--featureItem-icon-size: var(--sm3);--featureItem-icon-color: light-dark(var(--primary-600), var(--primary-300));--featureItem-icon-background-color: light-dark( var(--primary-100), var(--primary-900) );--featureItem-icon-border-radius: var(--radius-lg)}:root{--footer-background-color: light-dark(var(--primary-950), var(--base-950));--footer-text-color: light-dark(var(--base-0), var(--base-200));--footer-border-width: var(--border-md);--footer-border-color: light-dark(transparent, var(--base-700));--footer-link-color: light-dark(var(--base-0), var(--base-200));--footer-link-color-hover: light-dark(var(--primary-200), var(--base-0))}:root{--header-height: var(--xl1);--header-padding: var(--sm1);@media(width>=768px){--header-height: var(--xl2);--header-padding: var(--sm3)}--header-background-color: light-dark(var(--base-0), var(--base-950));--header-menu-background-color: var(--base-950);--header-menu-color: var(--base-0);--header-menu-color-current: var(--primary-400);--header-menu-secondary-color: var(--base-300);--header-menu-border-color: var(--base-500)}:root{--hero-radius: var(--radius-xl);--hero-content-padding: var(--md3);--hero-actions-spacing: var(--lg3);--hero-pagination-dot: var(--sm1);--hero-pagination-dot-color: var(--base-0);--hero-pagination-dot-active-color: var(--primary-600);--hero-pagination-opacity: var(--o-4)}:root{--pagination-size: var(--md3);--pagination-border-radius: var(--radius-md);--pagination-color: var(--text-color);--pagination-color-current: var(--base-0);--pagination-background-color-current: light-dark( var(--primary-600), var(--primary-500) );--pagination-background-color-hover: light-dark( var(--base-100), var(--base-800) )}:root{--prevNext-border-color: var(--ui-border-color);--prevNext-border-radius: var(--radius-lg);--prevNext-border-color-hover: var(--link-color);--prevNext-label-color: light-dark(var(--base-400), var(--base-500))}:root{--notice-spacing: var(--sm1);--notice-text-color: light-dark(var(--base-950), var(--base-0));--notice-background-color: light-dark(var(--base-50), var(--base-800));--notice-border-color: light-dark(var(--base-200), var(--base-500));--notice-border-width: var(--border-sm);--notice-border-radius: var(--radius-lg)}:root{--pricingCard-highlight-border-color: light-dark( var(--primary-600), var(--primary-400) );--pricingCard-check-color: light-dark(var(--success-500), var(--success-400))}:root{--readProgressBar-height: var(--xs1);--readProgressBar-color: linear-gradient( 90deg, var(--primary-600) 0%, var(--primary-400) 100% )}:root{--section-spacing: var(--xl3);--section-header-spacing: var(--lg3);--section-eyebrow-color: light-dark(var(--primary-600), var(--primary-400));--section-lede-color: light-dark(var(--base-500), var(--base-400));--section-filled-background-color: light-dark( var(--base-50), var(--base-900) );--section-primary-background-color: light-dark( var(--primary-600), var(--primary-900) );--section-primary-text-color: var(--base-0);--section-primary-link-color: var(--primary-100);--section-primary-link-color-hover: var(--base-0);--section-primary-eyebrow-color: var(--primary-200);--section-primary-lede-color: var(--primary-100)}:root{--testimonial-role-color: light-dark(var(--base-400), var(--base-500))}:root{--tags-padding: var(--xs2);--tags-font-size: var(--text-sm);--tags-color: light-dark(var(--base-500), var(--base-400));--tags-background-color: light-dark(var(--base-100), var(--base-800));--tags-background-color-hover: light-dark(var(--base-200), var(--base-950));--tags-radius: var(--radius-md)}:root{--toc-color: var(--link-color);--toc-color-hover: var(--link-color-hover);--toc-spacing: var(--xs1);--toc-indentation: var(--xs3);--toc-icon-size: var(--sm1)}}@layer base{*,*:before,*:after{box-sizing:border-box}@media(prefers-reduced-motion:reduce){*,:before,:after{animation-delay:-1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;background-attachment:initial!important;scroll-behavior:auto!important;transition-delay:0s!important;transition-duration:0s!important}}:where(:not(dialog)){margin:0}html,body{min-height:100%}}@layer elements{body{line-sizing:normal;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;background-color:var(--body-background-color);color:var(--text-color);font-family:var(--text);line-height:var(--body-line-height);&:has(.body-is-locked){overflow:hidden}}}@layer elements{::selection{color:var(--selection-color);background-color:var(--selection-background-color)}:where(a,u,ins,abbr){text-underline-offset:2px}a{font-weight:var(--link-font-weight);color:var(--link-color);&:where(:hover){color:var(--link-color-hover);-webkit-text-decoration:none;text-decoration:none}}address{width:max-content;max-width:100%;padding:var(--sm1) var(--sm3);font-style:normal;background-color:light-dark(var(--base-50),var(--base-900));border:var(--xs2) solid transparent;border-image:8 repeating-linear-gradient(-45deg,var(--no-500) 0,var(--no-500) var(--xs2),transparent 0,transparent calc(var(--xs2) * 2),var(--primary-500) 0,var(--primary-500) calc(var(--xs2) * 3),transparent 0,transparent calc(var(--xs2) * 4))}abbr{position:relative;cursor:help;&:after{position:relative;top:calc(var(--xs1) * -1);width:var(--sm1);height:var(--sm1);display:inline-block;content:"";background:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%20id='circle-help'%3E%3Ccircle%20cx='12'%20cy='12'%20r='10'/%3E%3Cpath%20d='M9.09%209a3%203%200%200%201%205.83%201c0%202-3%203-3%203'/%3E%3Cpath%20d='M12%2017h.01'/%3E%3C/svg%3E");background-size:contain}&:hover:before{width:max-content;max-width:400px;position:absolute;left:50%;padding:var(--xs1) var(--xs3);content:attr(title);color:var(--base-0);background-color:var(--base-900);opacity:var(--o-4);border-radius:var(--radius-sm);transform:translate(-50%,-2em)}}blockquote{position:relative;margin-bottom:var(--prose-spacing);padding-block:var(--blockquote-padding-block);padding-inline:var(--blockquote-padding-inline);font-style:italic;background-color:var(--blockquote-background-color);border-radius:var(--blockquote-border-radius);&:before{content:"";position:absolute;top:0;inset-inline-start:0;width:var(--blockquote-accent-width);height:100%;border-start-start-radius:var(--blockquote-border-radius);border-end-start-radius:var(--blockquote-border-radius);background:var(--blockquote-accent-color)}p{&:first-child:before{content:open-quote}&:last-child{margin-bottom:0;&:after{content:close-quote}}}}cite{font-style:italic}code,var,kbd{font-family:var(--mono);font-size:.9em;font-style:normal;color:var(--text-code-muted-color)}:is(code,var,kbd):not(h1 *,h2 *,h3 *,h4 *,h5 *,h6 *,pre *){padding:.15em .3em;color:var(--text-code-color);background-color:var(--text-code-background-color);border-radius:var(--radius-sm)}dt{font-weight:var(--bold)}dd+dt{margin-top:.5em}del{text-decoration-color:var(--danger-500);text-decoration-style:wavy}h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5,h6,.h6{overflow-wrap:break-word;text-wrap:balance}h1,.h1,h2,.h2,h3,.h3,h4,.h4{font-family:var(--heading-font);font-weight:var(--heading-weight);letter-spacing:var(--heading-letter-spacing)}h1,.h1{margin-bottom:var(--heading-spacing-h1);font-size:var(--heading-font-size-h1);line-height:var(--heading-line-height-h1)}h2,.h2{margin-bottom:var(--heading-spacing-h2);font-size:var(--heading-font-size-h2);line-height:var(--heading-line-height-h2)}h3,.h3{margin-bottom:var(--heading-spacing-h3);font-size:var(--heading-font-size-h3);line-height:var(--heading-line-height-h3)}h4,.h4{margin-bottom:var(--heading-spacing-h4);font-size:var(--heading-font-size-h4);line-height:var(--heading-line-height-h4)}h5,.h5{margin-bottom:var(--heading-spacing-h5);font-size:var(--heading-font-size-h5);line-height:var(--heading-line-height-h5)}h6,.h6{margin-bottom:var(--heading-spacing-h6);font-size:var(--heading-font-size-h6);line-height:var(--heading-line-height-h6)}:where(h1,h2,h3):has(+:is(h2,h3,h4)){margin-bottom:var(--heading-spacing-consecutive)}hr{display:flex;justify-content:center;align-items:center;height:0;border-style:solid;border-width:var(--border-sm) 0 0;color:var(--ui-border-color);overflow:visible;&:after{content:var(--hr-content);padding:0 var(--xs1);line-height:1;letter-spacing:var(--tracking-sm);background-color:var(--body-background-color)}}:where(hr):has(+:is(p)){margin-bottom:var(--prose-spacing)}ins{padding:.15em .3em;color:var(--ins-color);background-color:var(--ins-background-color);border-radius:var(--radius-sm);-webkit-text-decoration:none;text-decoration:none;&:before{content:"+ "}}mark{padding:.15em .5em;background:var(--marker-color);border-radius:1em 0}:where(ol,ul){list-style-type:none;padding:0}pre{font-family:var(--mono);font-size:var(--pre-font-size);white-space:pre-wrap;border-radius:var(--pre-border-radius)}q{font-style:italic}s{text-decoration-color:light-dark(var(--base-950),var(--base-50));text-decoration-style:wavy}sub,sup{line-height:1}}@layer elements{:root{quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(af),:not(:lang(af))>:lang(af){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(ak),:not(:lang(ak))>:lang(ak){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(asa),:not(:lang(asa))>:lang(asa){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(az),:not(:lang(az))>:lang(az){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(bem),:not(:lang(bem))>:lang(bem){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(bez),:not(:lang(bez))>:lang(bez){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(bn),:not(:lang(bn))>:lang(bn){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(brx),:not(:lang(brx))>:lang(brx){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(cgg),:not(:lang(cgg))>:lang(cgg){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(chr),:not(:lang(chr))>:lang(chr){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(cy),:not(:lang(cy))>:lang(cy){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(da),:not(:lang(da))>:lang(da){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(dav),:not(:lang(dav))>:lang(dav){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(dje),:not(:lang(dje))>:lang(dje){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(dz),:not(:lang(dz))>:lang(dz){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(ebu),:not(:lang(ebu))>:lang(ebu){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(ee),:not(:lang(ee))>:lang(ee){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(en),:not(:lang(en))>:lang(en){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(fil),:not(:lang(fil))>:lang(fil){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(fo),:not(:lang(fo))>:lang(fo){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(ga),:not(:lang(ga))>:lang(ga){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(gd),:not(:lang(gd))>:lang(gd){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(gl),:not(:lang(gl))>:lang(gl){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(gu),:not(:lang(gu))>:lang(gu){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(guz),:not(:lang(guz))>:lang(guz){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(ha),:not(:lang(ha))>:lang(ha){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(hi),:not(:lang(hi))>:lang(hi){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(id),:not(:lang(id))>:lang(id){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(ig),:not(:lang(ig))>:lang(ig){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(jmc),:not(:lang(jmc))>:lang(jmc){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(kam),:not(:lang(kam))>:lang(kam){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(kde),:not(:lang(kde))>:lang(kde){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(kea),:not(:lang(kea))>:lang(kea){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(khq),:not(:lang(khq))>:lang(khq){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(ki),:not(:lang(ki))>:lang(ki){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(kln),:not(:lang(kln))>:lang(kln){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(km),:not(:lang(km))>:lang(km){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(kn),:not(:lang(kn))>:lang(kn){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(ko),:not(:lang(ko))>:lang(ko){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(ksb),:not(:lang(ksb))>:lang(ksb){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(lg),:not(:lang(lg))>:lang(lg){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(ln),:not(:lang(ln))>:lang(ln){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(lo),:not(:lang(lo))>:lang(lo){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(lrc),:not(:lang(lrc))>:lang(lrc){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(lu),:not(:lang(lu))>:lang(lu){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(luo),:not(:lang(luo))>:lang(luo){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(lv),:not(:lang(lv))>:lang(lv){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(mas),:not(:lang(mas))>:lang(mas){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(mer),:not(:lang(mer))>:lang(mer){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(mfe),:not(:lang(mfe))>:lang(mfe){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(mgo),:not(:lang(mgo))>:lang(mgo){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(ml),:not(:lang(ml))>:lang(ml){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(mn),:not(:lang(mn))>:lang(mn){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(mr),:not(:lang(mr))>:lang(mr){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(ms),:not(:lang(ms))>:lang(ms){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(mt),:not(:lang(mt))>:lang(mt){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(my),:not(:lang(my))>:lang(my){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(naq),:not(:lang(naq))>:lang(naq){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(nd),:not(:lang(nd))>:lang(nd){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(ne),:not(:lang(ne))>:lang(ne){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(nus),:not(:lang(nus))>:lang(nus){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(nyn),:not(:lang(nyn))>:lang(nyn){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(pa),:not(:lang(pa))>:lang(pa){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(pt),:not(:lang(pt))>:lang(pt){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(rof),:not(:lang(rof))>:lang(rof){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(rwk),:not(:lang(rwk))>:lang(rwk){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(saq),:not(:lang(saq))>:lang(saq){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(sbp),:not(:lang(sbp))>:lang(sbp){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(seh),:not(:lang(seh))>:lang(seh){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(ses),:not(:lang(ses))>:lang(ses){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(si),:not(:lang(si))>:lang(si){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(so),:not(:lang(so))>:lang(so){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(sw),:not(:lang(sw))>:lang(sw){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(ta),:not(:lang(ta))>:lang(ta){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(te),:not(:lang(te))>:lang(te){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(teo),:not(:lang(teo))>:lang(teo){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(th),:not(:lang(th))>:lang(th){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(to),:not(:lang(to))>:lang(to){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(tr),:not(:lang(tr))>:lang(tr){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(twq),:not(:lang(twq))>:lang(twq){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(tzm),:not(:lang(tzm))>:lang(tzm){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(uz-Cyrl),:not(:lang(uz-Cyrl))>:lang(uz-Cyrl){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(vai),:not(:lang(vai))>:lang(vai){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(vai-Latn),:not(:lang(vai-Latn))>:lang(vai-Latn){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(vi),:not(:lang(vi))>:lang(vi){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(vun),:not(:lang(vun))>:lang(vun){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(xog),:not(:lang(xog))>:lang(xog){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(yo),:not(:lang(yo))>:lang(yo){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(yue-Hans),:not(:lang(yue-Hans))>:lang(yue-Hans){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(zh),:not(:lang(zh))>:lang(zh){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(zu),:not(:lang(zu))>:lang(zu){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(uz),:not(:lang(uz))>:lang(uz){quotes:"\201c" "\201d" "\2019" "\2018"}:root:lang(eu),:not(:lang(eu))>:lang(eu){quotes:"\201c" "\201d" "\201c" "\201d"}:root:lang(tk),:not(:lang(tk))>:lang(tk){quotes:"\201c" "\201d" "\201c" "\201d"}:root:lang(ar),:not(:lang(ar))>:lang(ar){quotes:"\201d" "\201c" "\2019" "\2018"}:root:lang(ur),:not(:lang(ur))>:lang(ur){quotes:"\201d" "\201c" "\2019" "\2018"}:root:lang(fi),:not(:lang(fi))>:lang(fi){quotes:"\201d" "\201d" "\2019" "\2019"}:root:lang(he),:not(:lang(he))>:lang(he){quotes:"\201d" "\201d" "\2019" "\2019"}:root:lang(lag),:not(:lang(lag))>:lang(lag){quotes:"\201d" "\201d" "\2019" "\2019"}:root:lang(rn),:not(:lang(rn))>:lang(rn){quotes:"\201d" "\201d" "\2019" "\2019"}:root:lang(sn),:not(:lang(sn))>:lang(sn){quotes:"\201d" "\201d" "\2019" "\2019"}:root:lang(sv),:not(:lang(sv))>:lang(sv){quotes:"\201d" "\201d" "\2019" "\2019"}:root:lang(sr),:not(:lang(sr))>:lang(sr){quotes:"\201e" "\201c" "\2018" "\2018"}:root:lang(sr-Latn),:not(:lang(sr-Latn))>:lang(sr-Latn){quotes:"\201e" "\201c" "\2018" "\2018"}:root:lang(bg),:not(:lang(bg))>:lang(bg){quotes:"\201e" "\201c" "\201e" "\201c"}:root:lang(lt),:not(:lang(lt))>:lang(lt){quotes:"\201e" "\201c" "\201e" "\201c"}:root:lang(bs-Cyrl),:not(:lang(bs-Cyrl))>:lang(bs-Cyrl){quotes:"\201e" "\201c" "\201a" "\2018"}:root:lang(cs),:not(:lang(cs))>:lang(cs){quotes:"\201e" "\201c" "\201a" "\2018"}:root:lang(de),:not(:lang(de))>:lang(de){quotes:"\201e" "\201c" "\201a" "\2018"}:root:lang(dsb),:not(:lang(dsb))>:lang(dsb){quotes:"\201e" "\201c" "\201a" "\2018"}:root:lang(et),:not(:lang(et))>:lang(et){quotes:"\201e" "\201c" "\201a" "\2018"}:root:lang(hr),:not(:lang(hr))>:lang(hr){quotes:"\201e" "\201c" "\201a" "\2018"}:root:lang(hsb),:not(:lang(hsb))>:lang(hsb){quotes:"\201e" "\201c" "\201a" "\2018"}:root:lang(is),:not(:lang(is))>:lang(is){quotes:"\201e" "\201c" "\201a" "\2018"}:root:lang(lb),:not(:lang(lb))>:lang(lb){quotes:"\201e" "\201c" "\201a" "\2018"}:root:lang(luy),:not(:lang(luy))>:lang(luy){quotes:"\201e" "\201c" "\201a" "\2018"}:root:lang(mk),:not(:lang(mk))>:lang(mk){quotes:"\201e" "\201c" "\201a" "\2018"}:root:lang(sk),:not(:lang(sk))>:lang(sk){quotes:"\201e" "\201c" "\201a" "\2018"}:root:lang(sl),:not(:lang(sl))>:lang(sl){quotes:"\201e" "\201c" "\201a" "\2018"}:root:lang(ka),:not(:lang(ka))>:lang(ka){quotes:"\201e" "\201c" "\ab" "\bb"}:root:lang(bs),:not(:lang(bs))>:lang(bs){quotes:"\201e" "\201d" "\2018" "\2019"}:root:lang(agq),:not(:lang(agq))>:lang(agq){quotes:"\201e" "\201d" "\201a" "\2019"}:root:lang(ff),:not(:lang(ff))>:lang(ff){quotes:"\201e" "\201d" "\201a" "\2019"}:root:lang(nmg),:not(:lang(nmg))>:lang(nmg){quotes:"\201e" "\201d" "\ab" "\bb"}:root:lang(ro),:not(:lang(ro))>:lang(ro){quotes:"\201e" "\201d" "\ab" "\bb"}:root:lang(pl),:not(:lang(pl))>:lang(pl){quotes:"\201e" "\201d" "\ab" "\bb"}:root:lang(hu),:not(:lang(hu))>:lang(hu){quotes:"\201e" "\201d" "\bb" "\ab"}:root:lang(nl),:not(:lang(nl))>:lang(nl){quotes:"\2018" "\2019" "\201c" "\201d"}:root:lang(ti-ER),:not(:lang(ti-ER))>:lang(ti-ER){quotes:"\2018" "\2019" "\201c" "\201d"}:root:lang(dua),:not(:lang(dua))>:lang(dua){quotes:"\ab" "\bb" "\2018" "\2019"}:root:lang(ksf),:not(:lang(ksf))>:lang(ksf){quotes:"\ab" "\bb" "\2018" "\2019"}:root:lang(rw),:not(:lang(rw))>:lang(rw){quotes:"\ab" "\bb" "\2018" "\2019"}:root:lang(nn),:not(:lang(nn))>:lang(nn){quotes:"\ab" "\bb" "\2018" "\2019"}:root:lang(nb),:not(:lang(nb))>:lang(nb){quotes:"\ab" "\bb" "\2018" "\2019"}:root:lang(ast),:not(:lang(ast))>:lang(ast){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(bm),:not(:lang(bm))>:lang(bm){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(br),:not(:lang(br))>:lang(br){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(ca),:not(:lang(ca))>:lang(ca){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(dyo),:not(:lang(dyo))>:lang(dyo){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(el),:not(:lang(el))>:lang(el){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(es),:not(:lang(es))>:lang(es){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(ewo),:not(:lang(ewo))>:lang(ewo){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(mg),:not(:lang(mg))>:lang(mg){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(mua),:not(:lang(mua))>:lang(mua){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(sg),:not(:lang(sg))>:lang(sg){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(it),:not(:lang(it))>:lang(it){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(kab),:not(:lang(kab))>:lang(kab){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(kk),:not(:lang(kk))>:lang(kk){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(pt-PT),:not(:lang(pt-PT))>:lang(pt-PT){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(nnh),:not(:lang(nnh))>:lang(nnh){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(sq),:not(:lang(sq))>:lang(sq){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(bas),:not(:lang(bas))>:lang(bas){quotes:"\ab" "\bb" "\201e" "\201c"}:root:lang(be),:not(:lang(be))>:lang(be){quotes:"\ab" "\bb" "\201e" "\201c"}:root:lang(ky),:not(:lang(ky))>:lang(ky){quotes:"\ab" "\bb" "\201e" "\201c"}:root:lang(sah),:not(:lang(sah))>:lang(sah){quotes:"\ab" "\bb" "\201e" "\201c"}:root:lang(ru),:not(:lang(ru))>:lang(ru){quotes:"\ab" "\bb" "\201e" "\201c"}:root:lang(uk),:not(:lang(uk))>:lang(uk){quotes:"\ab" "\bb" "\201e" "\201c"}:root:lang(zgh),:not(:lang(zgh))>:lang(zgh){quotes:"\ab" "\bb" "\201e" "\201d"}:root:lang(shi),:not(:lang(shi))>:lang(shi){quotes:"\ab" "\bb" "\201e" "\201d"}:root:lang(shi-Latn),:not(:lang(shi-Latn))>:lang(shi-Latn){quotes:"\ab" "\bb" "\201e" "\201d"}:root:lang(am),:not(:lang(am))>:lang(am){quotes:"\ab" "\bb" "\2039" "\203a"}:root:lang(az-Cyrl),:not(:lang(az-Cyrl))>:lang(az-Cyrl){quotes:"\ab" "\bb" "\2039" "\203a"}:root:lang(fa),:not(:lang(fa))>:lang(fa){quotes:"\ab" "\bb" "\2039" "\203a"}:root:lang(fr-CH),:not(:lang(fr-CH))>:lang(fr-CH){quotes:"\ab" "\bb" "\2039" "\203a"}:root:lang(gsw),:not(:lang(gsw))>:lang(gsw){quotes:"\ab" "\bb" "\2039" "\203a"}:root:lang(jgo),:not(:lang(jgo))>:lang(jgo){quotes:"\ab" "\bb" "\2039" "\203a"}:root:lang(kkj),:not(:lang(kkj))>:lang(kkj){quotes:"\ab" "\bb" "\2039" "\203a"}:root:lang(mzn),:not(:lang(mzn))>:lang(mzn){quotes:"\ab" "\bb" "\2039" "\203a"}:root:lang(fr),:not(:lang(fr))>:lang(fr){quotes:"\ab" "\bb" "\ab" "\bb"}:root:lang(hy),:not(:lang(hy))>:lang(hy){quotes:"\ab" "\bb" "\ab" "\bb"}:root:lang(yav),:not(:lang(yav))>:lang(yav){quotes:"\ab" "\bb" "\ab" "\bb"}:root:lang(ja),:not(:lang(ja))>:lang(ja){quotes:"\300c" "\300d" "\300e" "\300f"}:root:lang(yue),:not(:lang(yue))>:lang(yue){quotes:"\300c" "\300d" "\300e" "\300f"}:root:lang(zh-Hant),:not(:lang(zh-Hant))>:lang(zh-Hant){quotes:"\300c" "\300d" "\300e" "\300f"}}@layer elements{audio,canvas,embed,iframe,img,object,picture,svg,video{display:block;vertical-align:middle;max-width:100%}img,svg,video,canvas{height:auto}audio{width:100%;max-width:var(--tera1)}audio:not([controls]){display:none}figcaption{font-style:italic;font-size:var(--text-sm)}figure{&:has(*+figcaption){figcaption{margin-top:var(--figcaption-spacing)}}&:has(figcaption+*){figcaption{margin-bottom:var(--figcaption-spacing)}}}iframe{border:var(--border-sm) solid var(--ui-border-color)}}@layer elements{caption{caption-side:bottom;margin-top:var(--table-caption-spacing);font-size:var(--text-sm)}table{border-spacing:0;border:var(--table-border-width) solid var(--table-border-color);border-radius:var(--table-border-radius);background-color:var(--table-background-color)}th,td{text-align:start;padding:var(--table-padding);border-bottom:var(--table-border-width) solid var(--table-border-color);border-inline-start:var(--table-border-width) solid var(--table-border-color)}tr{th:first-child,td:first-child{border-inline-start-width:0}}tbody{tr:last-child{th,td{border-bottom-width:0}}}tfoot{th,td{border-top:var(--table-border-width) solid var(--table-border-color);border-bottom-width:0}}}@layer elements{::placeholder{opacity:var(--o-4)}input,button,textarea,select{font:inherit;color:var(--text-color)}button{color:var(--text-color)}fieldset{border:var(--fieldset-border-width) solid var(--fieldset-border-color);border-radius:var(--fieldset-border-radius);padding:var(--fieldset-padding);ul:has([type=checkbox],[type=radio]){padding-inline-start:0}>[aria-hidden]{margin-bottom:var(--sm3);font-size:var(--text-lg);grid-column:1 / -1}}:is(input,select,textarea):user-invalid{border-color:var(--input-border-color-invalid)}input{&:where(:not([type=checkbox],[type=radio])){height:var(--input-height)}&:where(:not([type=color],[type=file],[type=reset],[type=submit])){padding:var(--input-padding)}&:where(:not([type=color])){border-radius:var(--input-border-radius)}&:where(:not([type=file])){border:var(--input-border-width) solid var(--input-border-color)}&[type=file]{width:100%;accent-color:var(--text-color)}&[type=number]{padding-inline-end:var(--xs1)}}label{display:block;&:has(+:is(input,select,textarea)){margin-bottom:var(--label-spacing)}}legend{position:absolute;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);width:1px;height:1px;white-space:nowrap}meter{width:100%;background:var(--meter-track-color);border-radius:var(--meter-border-radius);height:var(--meter-height);&::-webkit-meter-bar{background:var(--meter-track-color)}&::-webkit-meter-bar,&::-webkit-meter-optimum-value,&::-webkit-meter-suboptimum-value,&::-webkit-meter-even-less-good-value{height:var(--meter-height);border:none;border-radius:var(--meter-border-radius)}&::-webkit-meter-even-less-good-value{background:var(--meter-low-color)}&::-webkit-meter-suboptimum-value{background:var(--meter-medium-color)}&::-webkit-meter-optimum-value{background:var(--meter-high-color)}&:-moz-meter-sub-sub-optimum::-moz-meter-bar{background:var(--meter-low-color)}&:-moz-meter-sub-optimum::-moz-meter-bar{background:var(--meter-medium-color)}&:-moz-meter-optimum::-moz-meter-bar{background:var(--meter-high-color)}}progress{appearance:none;width:100%;height:var(--progress-height);background:var(--progress-track-color);border-radius:var(--progress-border-radius);border:none;&::-moz-progress-bar{background:var(--progress-color);border-radius:var(--progress-border-radius)}&::-webkit-progress-bar{width:100%;background:var(--progress-track-color);border-radius:var(--progress-border-radius);height:var(--progress-height)}&::-webkit-progress-value{background:var(--progress-color);border-radius:var(--progress-border-radius)}}select{--split: calc(100% - var(--select-icon-size));display:flex;appearance:none;height:var(--input-height);padding:var(--xs1) calc(var(--input-padding) + var(--md1)) var(--xs1) var(--input-padding);border:var(--input-border-width) solid var(--input-border-color);border-radius:var(--input-border-radius);background:linear-gradient(to right,var(--body-background-color) 0 var(--split),var(--text-color) var(--split) 100%);mask-image:var(--select-icon),linear-gradient(to right,transparent calc(var(--split) - 1px),red 0),linear-gradient(red 0 0);mask-size:var(--select-icon-size),auto,auto;mask-position:calc(100% - var(--xs1)) center,0 0,0 0;mask-repeat:no-repeat;mask-clip:padding-box,padding-box,border-box;mask-origin:padding-box,padding-box,border-box;mask-composite:add,exclude;&:disabled{--disabled-color: light-dark( hsl(from var(--text-color) h s 70%), hsl(from var(--text-color) h s 40%) );cursor:not-allowed;color:var(--disabled-color);background:linear-gradient(to right,var(--body-background-color) 0 var(--split),var(--disabled-color) var(--split) 100%)}&[multiple]{height:auto;padding:var(--input-padding);background:var(--body-background-color);mask-image:none}}textarea{width:100%;padding:var(--input-padding);border-radius:var(--input-border-radius);border:var(--input-border-width) solid var(--input-border-color);resize:vertical;&:not([rows]){min-height:6em}}}@layer elements{dialog{min-width:var(--dialog-min-width);max-width:var(--dialog-max-width);padding:var(--dialog-padding);border:var(--dialog-border-width) solid var(--dialog-border-color);background-color:var(--dialog-background-color);border-radius:var(--dialog-border-radius);&::backdrop{background:var(--dialog-backdrop-color);opacity:var(--dialog-backdrop-opacity)}[aria-label="close pop-up"]{position:absolute;top:var(--xs3);right:var( --xs3 );background:transparent;border:none;outline:none;cursor:pointer}p:last-of-type{margin-bottom:0}}details{padding:var(--details-padding);border:var(--details-border-width) solid var(--details-border-color);background-color:var(--details-background-color);border-radius:var(--details-border-radius);cursor:pointer;summary{display:flex;justify-content:space-between;font-weight:var(--bold);&::-webkit-details-marker{display:none}&:after{content:"";width:var(--details-icon-size);height:var(--details-icon-size);background-color:currentColor;mask-image:var(--details-icon);mask-size:contain;mask-repeat:no-repeat;transition:transform var(--transition)}}&[open]>summary{margin-bottom:var(--details-spacing);&:after{transform:rotate(180deg)}}p:last-of-type{margin-bottom:0}}}@layer global{:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.a11y-skipLink{position:fixed;z-index:var(--z-top);inset-block-start:-100vb;inset-inline-start:0;padding:.75em 1.25em;background-color:var(--body-background-color);color:var(--text-color)}.a11y-skipLink:focus{inset-block-start:0}.a11y-srOnly{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}}@layer global{@keyframes fadeFromOpaque{0%{opacity:1}}@keyframes fadeToOpaque{to{opacity:1}}@keyframes fadeFromTransparent{0%{opacity:0}}@keyframes fadeToTransparent{to{opacity:0}}}@layer global{.grid{display:grid;--grid-tc: repeat(4, 1fr);--grid-cs: 1;--grid-ce: -1;grid-template-columns:var(--grid-tc);grid-column-gap:var(--grid-column-gap);grid-row-gap:var(--grid-row-gap)}.grid-flush{grid-column-gap:0;grid-row-gap:0}.grid>.grid_item{display:block;appearance:none;-webkit-appearance:none}.grid[col="1"]{--grid-tc: repeat(1, 1fr) }.grid[col="2"]{--grid-tc: repeat(2, 1fr) }.grid[col="3"]{--grid-tc: repeat(3, 1fr) }.grid[col="4"]{--grid-tc: repeat(4, 1fr) }.grid[col="5"]{--grid-tc: repeat(5, 1fr) }.grid[col="6"]{--grid-tc: repeat(6, 1fr) }.grid[col="7"]{--grid-tc: repeat(7, 1fr) }.grid[col="8"]{--grid-tc: repeat(8, 1fr) }.grid[col="9"]{--grid-tc: repeat(9, 1fr) }.grid[col="10"]{--grid-tc: repeat(10, 1fr) }.grid[col="11"]{--grid-tc: repeat(11, 1fr) }.grid[col="12"]{--grid-tc: repeat(12, 1fr) }.grid[col="13"]{--grid-tc: repeat(13, 1fr) }.grid[col="14"]{--grid-tc: repeat(14, 1fr) }.grid[col="15"]{--grid-tc: repeat(15, 1fr) }.grid[col="16"]{--grid-tc: repeat(16, 1fr) }.grid[col="17"]{--grid-tc: repeat(17, 1fr) }.grid[col="18"]{--grid-tc: repeat(18, 1fr) }.grid[col="19"]{--grid-tc: repeat(19, 1fr) }.grid[col="20"]{--grid-tc: repeat(20, 1fr) }.grid[col="21"]{--grid-tc: repeat(21, 1fr) }.grid[col="22"]{--grid-tc: repeat(22, 1fr) }.grid[col="23"]{--grid-tc: repeat(23, 1fr) }.grid[col="24"]{--grid-tc: repeat(24, 1fr) }.grid>.grid_item[span^="1"]{--grid-cs: 1 }.grid>.grid_item[span^="2"]{--grid-cs: 2 }.grid>.grid_item[span^="3"]{--grid-cs: 3 }.grid>.grid_item[span^="4"]{--grid-cs: 4 }.grid>.grid_item[span^="5"]{--grid-cs: 5 }.grid>.grid_item[span^="6"]{--grid-cs: 6 }.grid>.grid_item[span^="7"]{--grid-cs: 7 }.grid>.grid_item[span^="8"]{--grid-cs: 8 }.grid>.grid_item[span^="9"]{--grid-cs: 9 }.grid>.grid_item[span^="10"]{--grid-cs: 10 }.grid>.grid_item[span^="11"]{--grid-cs: 11 }.grid>.grid_item[span^="12"]{--grid-cs: 12 }.grid>.grid_item[span^="13"]{--grid-cs: 13 }.grid>.grid_item[span^="14"]{--grid-cs: 14 }.grid>.grid_item[span^="15"]{--grid-cs: 15 }.grid>.grid_item[span^="16"]{--grid-cs: 16 }.grid>.grid_item[span^="17"]{--grid-cs: 17 }.grid>.grid_item[span^="18"]{--grid-cs: 18 }.grid>.grid_item[span^="19"]{--grid-cs: 19 }.grid>.grid_item[span^="20"]{--grid-cs: 20 }.grid>.grid_item[span^="21"]{--grid-cs: 21 }.grid>.grid_item[span^="22"]{--grid-cs: 22 }.grid>.grid_item[span^="23"]{--grid-cs: 23 }.grid>.grid_item[span^="24"]{--grid-cs: 24 }.grid>.grid_item[span$="+1"],.grid>.grid_item[span="1"]{--grid-ce: 1 }.grid>.grid_item[span$="+2"],.grid>.grid_item[span$="-1"],.grid>.grid_item[span="2"]{--grid-ce: 2 }.grid>.grid_item[span$="+3"],.grid>.grid_item[span$="-2"],.grid>.grid_item[span="3"]{--grid-ce: 3 }.grid>.grid_item[span$="+4"],.grid>.grid_item[span$="-3"],.grid>.grid_item[span="4"]{--grid-ce: 4 }.grid>.grid_item[span$="+5"],.grid>.grid_item[span$="-4"],.grid>.grid_item[span="5"]{--grid-ce: 5 }.grid>.grid_item[span$="+6"],.grid>.grid_item[span$="-5"],.grid>.grid_item[span="6"]{--grid-ce: 6 }.grid>.grid_item[span$="+7"],.grid>.grid_item[span$="-6"],.grid>.grid_item[span="7"]{--grid-ce: 7 }.grid>.grid_item[span$="+8"],.grid>.grid_item[span$="-7"],.grid>.grid_item[span="8"]{--grid-ce: 8 }.grid>.grid_item[span$="+9"],.grid>.grid_item[span$="-8"],.grid>.grid_item[span="9"]{--grid-ce: 9 }.grid>.grid_item[span$="+10"],.grid>.grid_item[span$="-9"],.grid>.grid_item[span="10"]{--grid-ce: 10 }.grid>.grid_item[span$="+11"],.grid>.grid_item[span$="-10"],.grid>.grid_item[span="11"]{--grid-ce: 11 }.grid>.grid_item[span$="+12"],.grid>.grid_item[span$="-11"],.grid>.grid_item[span="12"]{--grid-ce: 12 }.grid>.grid_item[span$="+13"],.grid>.grid_item[span$="-12"],.grid>.grid_item[span="13"]{--grid-ce: 13 }.grid>.grid_item[span$="+14"],.grid>.grid_item[span$="-13"],.grid>.grid_item[span="14"]{--grid-ce: 14 }.grid>.grid_item[span$="+15"],.grid>.grid_item[span$="-14"],.grid>.grid_item[span="15"]{--grid-ce: 15 }.grid>.grid_item[span$="+16"],.grid>.grid_item[span$="-15"],.grid>.grid_item[span="16"]{--grid-ce: 16 }.grid>.grid_item[span$="+17"],.grid>.grid_item[span$="-16"],.grid>.grid_item[span="17"]{--grid-ce: 17 }.grid>.grid_item[span$="+18"],.grid>.grid_item[span$="-17"],.grid>.grid_item[span="18"]{--grid-ce: 18 }.grid>.grid_item[span$="+19"],.grid>.grid_item[span$="-18"],.grid>.grid_item[span="19"]{--grid-ce: 19 }.grid>.grid_item[span$="+20"],.grid>.grid_item[span$="-19"],.grid>.grid_item[span="20"]{--grid-ce: 20 }.grid>.grid_item[span$="+21"],.grid>.grid_item[span$="-20"],.grid>.grid_item[span="21"]{--grid-ce: 21 }.grid>.grid_item[span$="+22"],.grid>.grid_item[span$="-21"],.grid>.grid_item[span="22"]{--grid-ce: 22 }.grid>.grid_item[span$="+23"],.grid>.grid_item[span$="-22"],.grid>.grid_item[span="23"]{--grid-ce: 23 }.grid>.grid_item[span$="+24"],.grid>.grid_item[span$="-23"],.grid>.grid_item[span="24"]{--grid-ce: 24 }.grid>.grid_item[span$="-24"]{--grid-ce: 25 }.grid>.grid_item[span]{grid-column-end:span var(--grid-ce)}.grid>.grid_item[span*="+"],.grid>.grid_item[span*="-"],.grid>.grid_item[span*=".."]{grid-column-start:var(--grid-cs)}.grid>.grid_item[span*="-"],.grid>.grid_item[span*=".."]{grid-column-end:var(--grid-ce)}.grid>.grid_item[span=row]{grid-column:1 / -1}@media only screen and (width>=768px){.grid[col-md="1"]{--grid-tc: repeat(1, 1fr) }.grid[col-md="2"]{--grid-tc: repeat(2, 1fr) }.grid[col-md="3"]{--grid-tc: repeat(3, 1fr) }.grid[col-md="4"]{--grid-tc: repeat(4, 1fr) }.grid[col-md="5"]{--grid-tc: repeat(5, 1fr) }.grid[col-md="6"]{--grid-tc: repeat(6, 1fr) }.grid[col-md="7"]{--grid-tc: repeat(7, 1fr) }.grid[col-md="8"]{--grid-tc: repeat(8, 1fr) }.grid[col-md="9"]{--grid-tc: repeat(9, 1fr) }.grid[col-md="10"]{--grid-tc: repeat(10, 1fr) }.grid[col-md="11"]{--grid-tc: repeat(11, 1fr) }.grid[col-md="12"]{--grid-tc: repeat(12, 1fr) }.grid[col-md="13"]{--grid-tc: repeat(13, 1fr) }.grid[col-md="14"]{--grid-tc: repeat(14, 1fr) }.grid[col-md="15"]{--grid-tc: repeat(15, 1fr) }.grid[col-md="16"]{--grid-tc: repeat(16, 1fr) }.grid[col-md="17"]{--grid-tc: repeat(17, 1fr) }.grid[col-md="18"]{--grid-tc: repeat(18, 1fr) }.grid[col-md="19"]{--grid-tc: repeat(19, 1fr) }.grid[col-md="20"]{--grid-tc: repeat(20, 1fr) }.grid[col-md="21"]{--grid-tc: repeat(21, 1fr) }.grid[col-md="22"]{--grid-tc: repeat(22, 1fr) }.grid[col-md="23"]{--grid-tc: repeat(23, 1fr) }.grid[col-md="24"]{--grid-tc: repeat(24, 1fr) }.grid>.grid_item[span-md^="1"]{--grid-cs: 1 }.grid>.grid_item[span-md^="2"]{--grid-cs: 2 }.grid>.grid_item[span-md^="3"]{--grid-cs: 3 }.grid>.grid_item[span-md^="4"]{--grid-cs: 4 }.grid>.grid_item[span-md^="5"]{--grid-cs: 5 }.grid>.grid_item[span-md^="6"]{--grid-cs: 6 }.grid>.grid_item[span-md^="7"]{--grid-cs: 7 }.grid>.grid_item[span-md^="8"]{--grid-cs: 8 }.grid>.grid_item[span-md^="9"]{--grid-cs: 9 }.grid>.grid_item[span-md^="10"]{--grid-cs: 10 }.grid>.grid_item[span-md^="11"]{--grid-cs: 11 }.grid>.grid_item[span-md^="12"]{--grid-cs: 12 }.grid>.grid_item[span-md^="13"]{--grid-cs: 13 }.grid>.grid_item[span-md^="14"]{--grid-cs: 14 }.grid>.grid_item[span-md^="15"]{--grid-cs: 15 }.grid>.grid_item[span-md^="16"]{--grid-cs: 16 }.grid>.grid_item[span-md^="17"]{--grid-cs: 17 }.grid>.grid_item[span-md^="18"]{--grid-cs: 18 }.grid>.grid_item[span-md^="19"]{--grid-cs: 19 }.grid>.grid_item[span-md^="20"]{--grid-cs: 20 }.grid>.grid_item[span-md^="21"]{--grid-cs: 21 }.grid>.grid_item[span-md^="22"]{--grid-cs: 22 }.grid>.grid_item[span-md^="23"]{--grid-cs: 23 }.grid>.grid_item[span-md^="24"]{--grid-cs: 24 }.grid>.grid_item[span-md$="+1"],.grid>.grid_item[span-md="1"]{--grid-ce: 1 }.grid>.grid_item[span-md$="+2"],.grid>.grid_item[span-md$="-1"],.grid>.grid_item[span-md="2"]{--grid-ce: 2 }.grid>.grid_item[span-md$="+3"],.grid>.grid_item[span-md$="-2"],.grid>.grid_item[span-md="3"]{--grid-ce: 3 }.grid>.grid_item[span-md$="+4"],.grid>.grid_item[span-md$="-3"],.grid>.grid_item[span-md="4"]{--grid-ce: 4 }.grid>.grid_item[span-md$="+5"],.grid>.grid_item[span-md$="-4"],.grid>.grid_item[span-md="5"]{--grid-ce: 5 }.grid>.grid_item[span-md$="+6"],.grid>.grid_item[span-md$="-5"],.grid>.grid_item[span-md="6"]{--grid-ce: 6 }.grid>.grid_item[span-md$="+7"],.grid>.grid_item[span-md$="-6"],.grid>.grid_item[span-md="7"]{--grid-ce: 7 }.grid>.grid_item[span-md$="+8"],.grid>.grid_item[span-md$="-7"],.grid>.grid_item[span-md="8"]{--grid-ce: 8 }.grid>.grid_item[span-md$="+9"],.grid>.grid_item[span-md$="-8"],.grid>.grid_item[span-md="9"]{--grid-ce: 9 }.grid>.grid_item[span-md$="+10"],.grid>.grid_item[span-md$="-9"],.grid>.grid_item[span-md="10"]{--grid-ce: 10 }.grid>.grid_item[span-md$="+11"],.grid>.grid_item[span-md$="-10"],.grid>.grid_item[span-md="11"]{--grid-ce: 11 }.grid>.grid_item[span-md$="+12"],.grid>.grid_item[span-md$="-11"],.grid>.grid_item[span-md="12"]{--grid-ce: 12 }.grid>.grid_item[span-md$="+13"],.grid>.grid_item[span-md$="-12"],.grid>.grid_item[span-md="13"]{--grid-ce: 13 }.grid>.grid_item[span-md$="+14"],.grid>.grid_item[span-md$="-13"],.grid>.grid_item[span-md="14"]{--grid-ce: 14 }.grid>.grid_item[span-md$="+15"],.grid>.grid_item[span-md$="-14"],.grid>.grid_item[span-md="15"]{--grid-ce: 15 }.grid>.grid_item[span-md$="+16"],.grid>.grid_item[span-md$="-15"],.grid>.grid_item[span-md="16"]{--grid-ce: 16 }.grid>.grid_item[span-md$="+17"],.grid>.grid_item[span-md$="-16"],.grid>.grid_item[span-md="17"]{--grid-ce: 17 }.grid>.grid_item[span-md$="+18"],.grid>.grid_item[span-md$="-17"],.grid>.grid_item[span-md="18"]{--grid-ce: 18 }.grid>.grid_item[span-md$="+19"],.grid>.grid_item[span-md$="-18"],.grid>.grid_item[span-md="19"]{--grid-ce: 19 }.grid>.grid_item[span-md$="+20"],.grid>.grid_item[span-md$="-19"],.grid>.grid_item[span-md="20"]{--grid-ce: 20 }.grid>.grid_item[span-md$="+21"],.grid>.grid_item[span-md$="-20"],.grid>.grid_item[span-md="21"]{--grid-ce: 21 }.grid>.grid_item[span-md$="+22"],.grid>.grid_item[span-md$="-21"],.grid>.grid_item[span-md="22"]{--grid-ce: 22 }.grid>.grid_item[span-md$="+23"],.grid>.grid_item[span-md$="-22"],.grid>.grid_item[span-md="23"]{--grid-ce: 23 }.grid>.grid_item[span-md$="+24"],.grid>.grid_item[span-md$="-23"],.grid>.grid_item[span-md="24"]{--grid-ce: 24 }.grid>.grid_item[span-md$="-24"]{--grid-ce: 25 }.grid>.grid_item[span-md]{grid-column-end:span var(--grid-ce)}.grid>.grid_item[span-md*="+"],.grid>.grid_item[span-md*="-"],.grid>.grid_item[span-md*=".."]{grid-column-start:var(--grid-cs)}.grid>.grid_item[span-md*="-"],.grid>.grid_item[span-md*=".."]{grid-column-end:var(--grid-ce)}.grid>.grid_item[span-md=row]{grid-column:1 / -1}}@media only screen and (width>=1024px){.grid[col-lg="1"]{--grid-tc: repeat(1, 1fr) }.grid[col-lg="2"]{--grid-tc: repeat(2, 1fr) }.grid[col-lg="3"]{--grid-tc: repeat(3, 1fr) }.grid[col-lg="4"]{--grid-tc: repeat(4, 1fr) }.grid[col-lg="5"]{--grid-tc: repeat(5, 1fr) }.grid[col-lg="6"]{--grid-tc: repeat(6, 1fr) }.grid[col-lg="7"]{--grid-tc: repeat(7, 1fr) }.grid[col-lg="8"]{--grid-tc: repeat(8, 1fr) }.grid[col-lg="9"]{--grid-tc: repeat(9, 1fr) }.grid[col-lg="10"]{--grid-tc: repeat(10, 1fr) }.grid[col-lg="11"]{--grid-tc: repeat(11, 1fr) }.grid[col-lg="12"]{--grid-tc: repeat(12, 1fr) }.grid[col-lg="13"]{--grid-tc: repeat(13, 1fr) }.grid[col-lg="14"]{--grid-tc: repeat(14, 1fr) }.grid[col-lg="15"]{--grid-tc: repeat(15, 1fr) }.grid[col-lg="16"]{--grid-tc: repeat(16, 1fr) }.grid[col-lg="17"]{--grid-tc: repeat(17, 1fr) }.grid[col-lg="18"]{--grid-tc: repeat(18, 1fr) }.grid[col-lg="19"]{--grid-tc: repeat(19, 1fr) }.grid[col-lg="20"]{--grid-tc: repeat(20, 1fr) }.grid[col-lg="21"]{--grid-tc: repeat(21, 1fr) }.grid[col-lg="22"]{--grid-tc: repeat(22, 1fr) }.grid[col-lg="23"]{--grid-tc: repeat(23, 1fr) }.grid[col-lg="24"]{--grid-tc: repeat(24, 1fr) }.grid>.grid_item[span-lg^="1"]{--grid-cs: 1 }.grid>.grid_item[span-lg^="2"]{--grid-cs: 2 }.grid>.grid_item[span-lg^="3"]{--grid-cs: 3 }.grid>.grid_item[span-lg^="4"]{--grid-cs: 4 }.grid>.grid_item[span-lg^="5"]{--grid-cs: 5 }.grid>.grid_item[span-lg^="6"]{--grid-cs: 6 }.grid>.grid_item[span-lg^="7"]{--grid-cs: 7 }.grid>.grid_item[span-lg^="8"]{--grid-cs: 8 }.grid>.grid_item[span-lg^="9"]{--grid-cs: 9 }.grid>.grid_item[span-lg^="10"]{--grid-cs: 10 }.grid>.grid_item[span-lg^="11"]{--grid-cs: 11 }.grid>.grid_item[span-lg^="12"]{--grid-cs: 12 }.grid>.grid_item[span-lg^="13"]{--grid-cs: 13 }.grid>.grid_item[span-lg^="14"]{--grid-cs: 14 }.grid>.grid_item[span-lg^="15"]{--grid-cs: 15 }.grid>.grid_item[span-lg^="16"]{--grid-cs: 16 }.grid>.grid_item[span-lg^="17"]{--grid-cs: 17 }.grid>.grid_item[span-lg^="18"]{--grid-cs: 18 }.grid>.grid_item[span-lg^="19"]{--grid-cs: 19 }.grid>.grid_item[span-lg^="20"]{--grid-cs: 20 }.grid>.grid_item[span-lg^="21"]{--grid-cs: 21 }.grid>.grid_item[span-lg^="22"]{--grid-cs: 22 }.grid>.grid_item[span-lg^="23"]{--grid-cs: 23 }.grid>.grid_item[span-lg^="24"]{--grid-cs: 24 }.grid>.grid_item[span-lg$="+1"],.grid>.grid_item[span-lg="1"]{--grid-ce: 1 }.grid>.grid_item[span-lg$="+2"],.grid>.grid_item[span-lg$="-1"],.grid>.grid_item[span-lg="2"]{--grid-ce: 2 }.grid>.grid_item[span-lg$="+3"],.grid>.grid_item[span-lg$="-2"],.grid>.grid_item[span-lg="3"]{--grid-ce: 3 }.grid>.grid_item[span-lg$="+4"],.grid>.grid_item[span-lg$="-3"],.grid>.grid_item[span-lg="4"]{--grid-ce: 4 }.grid>.grid_item[span-lg$="+5"],.grid>.grid_item[span-lg$="-4"],.grid>.grid_item[span-lg="5"]{--grid-ce: 5 }.grid>.grid_item[span-lg$="+6"],.grid>.grid_item[span-lg$="-5"],.grid>.grid_item[span-lg="6"]{--grid-ce: 6 }.grid>.grid_item[span-lg$="+7"],.grid>.grid_item[span-lg$="-6"],.grid>.grid_item[span-lg="7"]{--grid-ce: 7 }.grid>.grid_item[span-lg$="+8"],.grid>.grid_item[span-lg$="-7"],.grid>.grid_item[span-lg="8"]{--grid-ce: 8 }.grid>.grid_item[span-lg$="+9"],.grid>.grid_item[span-lg$="-8"],.grid>.grid_item[span-lg="9"]{--grid-ce: 9 }.grid>.grid_item[span-lg$="+10"],.grid>.grid_item[span-lg$="-9"],.grid>.grid_item[span-lg="10"]{--grid-ce: 10 }.grid>.grid_item[span-lg$="+11"],.grid>.grid_item[span-lg$="-10"],.grid>.grid_item[span-lg="11"]{--grid-ce: 11 }.grid>.grid_item[span-lg$="+12"],.grid>.grid_item[span-lg$="-11"],.grid>.grid_item[span-lg="12"]{--grid-ce: 12 }.grid>.grid_item[span-lg$="+13"],.grid>.grid_item[span-lg$="-12"],.grid>.grid_item[span-lg="13"]{--grid-ce: 13 }.grid>.grid_item[span-lg$="+14"],.grid>.grid_item[span-lg$="-13"],.grid>.grid_item[span-lg="14"]{--grid-ce: 14 }.grid>.grid_item[span-lg$="+15"],.grid>.grid_item[span-lg$="-14"],.grid>.grid_item[span-lg="15"]{--grid-ce: 15 }.grid>.grid_item[span-lg$="+16"],.grid>.grid_item[span-lg$="-15"],.grid>.grid_item[span-lg="16"]{--grid-ce: 16 }.grid>.grid_item[span-lg$="+17"],.grid>.grid_item[span-lg$="-16"],.grid>.grid_item[span-lg="17"]{--grid-ce: 17 }.grid>.grid_item[span-lg$="+18"],.grid>.grid_item[span-lg$="-17"],.grid>.grid_item[span-lg="18"]{--grid-ce: 18 }.grid>.grid_item[span-lg$="+19"],.grid>.grid_item[span-lg$="-18"],.grid>.grid_item[span-lg="19"]{--grid-ce: 19 }.grid>.grid_item[span-lg$="+20"],.grid>.grid_item[span-lg$="-19"],.grid>.grid_item[span-lg="20"]{--grid-ce: 20 }.grid>.grid_item[span-lg$="+21"],.grid>.grid_item[span-lg$="-20"],.grid>.grid_item[span-lg="21"]{--grid-ce: 21 }.grid>.grid_item[span-lg$="+22"],.grid>.grid_item[span-lg$="-21"],.grid>.grid_item[span-lg="22"]{--grid-ce: 22 }.grid>.grid_item[span-lg$="+23"],.grid>.grid_item[span-lg$="-22"],.grid>.grid_item[span-lg="23"]{--grid-ce: 23 }.grid>.grid_item[span-lg$="+24"],.grid>.grid_item[span-lg$="-23"],.grid>.grid_item[span-lg="24"]{--grid-ce: 24 }.grid>.grid_item[span-lg$="-24"]{--grid-ce: 25 }.grid>.grid_item[span-lg]{grid-column-end:span var(--grid-ce)}.grid>.grid_item[span-lg*="+"],.grid>.grid_item[span-lg*="-"],.grid>.grid_item[span-lg*=".."]{grid-column-start:var(--grid-cs)}.grid>.grid_item[span-lg*="-"],.grid>.grid_item[span-lg*=".."]{grid-column-end:var(--grid-ce)}.grid>.grid_item[span-lg=row]{grid-column:1 / -1}}@media only screen and (width>=1440px){.grid[col-xl="1"]{--grid-tc: repeat(1, 1fr) }.grid[col-xl="2"]{--grid-tc: repeat(2, 1fr) }.grid[col-xl="3"]{--grid-tc: repeat(3, 1fr) }.grid[col-xl="4"]{--grid-tc: repeat(4, 1fr) }.grid[col-xl="5"]{--grid-tc: repeat(5, 1fr) }.grid[col-xl="6"]{--grid-tc: repeat(6, 1fr) }.grid[col-xl="7"]{--grid-tc: repeat(7, 1fr) }.grid[col-xl="8"]{--grid-tc: repeat(8, 1fr) }.grid[col-xl="9"]{--grid-tc: repeat(9, 1fr) }.grid[col-xl="10"]{--grid-tc: repeat(10, 1fr) }.grid[col-xl="11"]{--grid-tc: repeat(11, 1fr) }.grid[col-xl="12"]{--grid-tc: repeat(12, 1fr) }.grid[col-xl="13"]{--grid-tc: repeat(13, 1fr) }.grid[col-xl="14"]{--grid-tc: repeat(14, 1fr) }.grid[col-xl="15"]{--grid-tc: repeat(15, 1fr) }.grid[col-xl="16"]{--grid-tc: repeat(16, 1fr) }.grid[col-xl="17"]{--grid-tc: repeat(17, 1fr) }.grid[col-xl="18"]{--grid-tc: repeat(18, 1fr) }.grid[col-xl="19"]{--grid-tc: repeat(19, 1fr) }.grid[col-xl="20"]{--grid-tc: repeat(20, 1fr) }.grid[col-xl="21"]{--grid-tc: repeat(21, 1fr) }.grid[col-xl="22"]{--grid-tc: repeat(22, 1fr) }.grid[col-xl="23"]{--grid-tc: repeat(23, 1fr) }.grid[col-xl="24"]{--grid-tc: repeat(24, 1fr) }.grid>.grid_item[span-xl^="1"]{--grid-cs: 1 }.grid>.grid_item[span-xl^="2"]{--grid-cs: 2 }.grid>.grid_item[span-xl^="3"]{--grid-cs: 3 }.grid>.grid_item[span-xl^="4"]{--grid-cs: 4 }.grid>.grid_item[span-xl^="5"]{--grid-cs: 5 }.grid>.grid_item[span-xl^="6"]{--grid-cs: 6 }.grid>.grid_item[span-xl^="7"]{--grid-cs: 7 }.grid>.grid_item[span-xl^="8"]{--grid-cs: 8 }.grid>.grid_item[span-xl^="9"]{--grid-cs: 9 }.grid>.grid_item[span-xl^="10"]{--grid-cs: 10 }.grid>.grid_item[span-xl^="11"]{--grid-cs: 11 }.grid>.grid_item[span-xl^="12"]{--grid-cs: 12 }.grid>.grid_item[span-xl^="13"]{--grid-cs: 13 }.grid>.grid_item[span-xl^="14"]{--grid-cs: 14 }.grid>.grid_item[span-xl^="15"]{--grid-cs: 15 }.grid>.grid_item[span-xl^="16"]{--grid-cs: 16 }.grid>.grid_item[span-xl^="17"]{--grid-cs: 17 }.grid>.grid_item[span-xl^="18"]{--grid-cs: 18 }.grid>.grid_item[span-xl^="19"]{--grid-cs: 19 }.grid>.grid_item[span-xl^="20"]{--grid-cs: 20 }.grid>.grid_item[span-xl^="21"]{--grid-cs: 21 }.grid>.grid_item[span-xl^="22"]{--grid-cs: 22 }.grid>.grid_item[span-xl^="23"]{--grid-cs: 23 }.grid>.grid_item[span-xl^="24"]{--grid-cs: 24 }.grid>.grid_item[span-xl$="+1"],.grid>.grid_item[span-xl="1"]{--grid-ce: 1 }.grid>.grid_item[span-xl$="+2"],.grid>.grid_item[span-xl$="-1"],.grid>.grid_item[span-xl="2"]{--grid-ce: 2 }.grid>.grid_item[span-xl$="+3"],.grid>.grid_item[span-xl$="-2"],.grid>.grid_item[span-xl="3"]{--grid-ce: 3 }.grid>.grid_item[span-xl$="+4"],.grid>.grid_item[span-xl$="-3"],.grid>.grid_item[span-xl="4"]{--grid-ce: 4 }.grid>.grid_item[span-xl$="+5"],.grid>.grid_item[span-xl$="-4"],.grid>.grid_item[span-xl="5"]{--grid-ce: 5 }.grid>.grid_item[span-xl$="+6"],.grid>.grid_item[span-xl$="-5"],.grid>.grid_item[span-xl="6"]{--grid-ce: 6 }.grid>.grid_item[span-xl$="+7"],.grid>.grid_item[span-xl$="-6"],.grid>.grid_item[span-xl="7"]{--grid-ce: 7 }.grid>.grid_item[span-xl$="+8"],.grid>.grid_item[span-xl$="-7"],.grid>.grid_item[span-xl="8"]{--grid-ce: 8 }.grid>.grid_item[span-xl$="+9"],.grid>.grid_item[span-xl$="-8"],.grid>.grid_item[span-xl="9"]{--grid-ce: 9 }.grid>.grid_item[span-xl$="+10"],.grid>.grid_item[span-xl$="-9"],.grid>.grid_item[span-xl="10"]{--grid-ce: 10 }.grid>.grid_item[span-xl$="+11"],.grid>.grid_item[span-xl$="-10"],.grid>.grid_item[span-xl="11"]{--grid-ce: 11 }.grid>.grid_item[span-xl$="+12"],.grid>.grid_item[span-xl$="-11"],.grid>.grid_item[span-xl="12"]{--grid-ce: 12 }.grid>.grid_item[span-xl$="+13"],.grid>.grid_item[span-xl$="-12"],.grid>.grid_item[span-xl="13"]{--grid-ce: 13 }.grid>.grid_item[span-xl$="+14"],.grid>.grid_item[span-xl$="-13"],.grid>.grid_item[span-xl="14"]{--grid-ce: 14 }.grid>.grid_item[span-xl$="+15"],.grid>.grid_item[span-xl$="-14"],.grid>.grid_item[span-xl="15"]{--grid-ce: 15 }.grid>.grid_item[span-xl$="+16"],.grid>.grid_item[span-xl$="-15"],.grid>.grid_item[span-xl="16"]{--grid-ce: 16 }.grid>.grid_item[span-xl$="+17"],.grid>.grid_item[span-xl$="-16"],.grid>.grid_item[span-xl="17"]{--grid-ce: 17 }.grid>.grid_item[span-xl$="+18"],.grid>.grid_item[span-xl$="-17"],.grid>.grid_item[span-xl="18"]{--grid-ce: 18 }.grid>.grid_item[span-xl$="+19"],.grid>.grid_item[span-xl$="-18"],.grid>.grid_item[span-xl="19"]{--grid-ce: 19 }.grid>.grid_item[span-xl$="+20"],.grid>.grid_item[span-xl$="-19"],.grid>.grid_item[span-xl="20"]{--grid-ce: 20 }.grid>.grid_item[span-xl$="+21"],.grid>.grid_item[span-xl$="-20"],.grid>.grid_item[span-xl="21"]{--grid-ce: 21 }.grid>.grid_item[span-xl$="+22"],.grid>.grid_item[span-xl$="-21"],.grid>.grid_item[span-xl="22"]{--grid-ce: 22 }.grid>.grid_item[span-xl$="+23"],.grid>.grid_item[span-xl$="-22"],.grid>.grid_item[span-xl="23"]{--grid-ce: 23 }.grid>.grid_item[span-xl$="+24"],.grid>.grid_item[span-xl$="-23"],.grid>.grid_item[span-xl="24"]{--grid-ce: 24 }.grid>.grid_item[span-xl$="-24"]{--grid-ce: 25 }.grid>.grid_item[span-xl]{grid-column-end:span var(--grid-ce)}.grid>.grid_item[span-xl*="+"],.grid>.grid_item[span-xl*="-"],.grid>.grid_item[span-xl*=".."]{grid-column-start:var(--grid-cs)}.grid>.grid_item[span-xl*="-"],.grid>.grid_item[span-xl*=".."]{grid-column-end:var(--grid-ce)}.grid>.grid_item[span-xl=row]{grid-column:1 / -1}}}@layer global{.layout{display:flex;flex-direction:column;width:100vw;min-height:100vh;.layout_content{flex:1}}.layout_content_main{container:main / inline-size}.layout-centered{.layout_content{display:grid;gap:var(--sm3);grid-template-columns:1fr minmax(0,var(--layout-content-width)) 1fr;margin-top:var(--lg1);margin-bottom:var(--sm1);@media(width>=768px){margin-top:var(--xl3);margin-bottom:var(--md3);gap:var(--md3)}}.layout_content_main{grid-column:2}}.layout-sidebar{.layout_content{@media(width>=768px){display:grid;grid-template-columns:var(--layout-aside-width) minmax(0,1fr)}}.layout_content_main{padding:var(--sm2);@media(width>=768px){grid-row:1;grid-column:2;padding:var(--lg1) var(--md2)}}.layout_content_aside{@media(width>=768px){grid-row:1;grid-column:1;padding:var(--lg1) var(--md3)}}}.layout-sidebar-end{.layout_content{@media(width>=768px){grid-template-columns:minmax(0,1fr) var(--layout-aside-width)}}.layout_content_main{@media(width>=768px){grid-column:1}}.layout_content_aside{@media(width>=768px){grid-column:2}}}.layout-docs{.layout_content{@media(width>=768px){display:grid;grid-template-columns:var(--layout-aside-width) minmax(0,1fr)}@media(width>=1024px){grid-template-columns:var(--layout-aside-width) minmax(0,var(--layout-content-width)) var(--layout-toc-width)}}.layout_content_main{padding:var(--sm2);@media(width>=768px){grid-row:1;grid-column:2;padding:var(--lg1) var(--md2)}}.layout_content_aside{display:none;@media(width>=768px){display:block;grid-row:1;grid-column:1;padding:var(--lg1) var(--md3)}}.layout_content_aside-toc{@media(width>=768px){display:none}@media(width>=1024px){display:block;grid-row:1;grid-column:3;padding:var(--lg1) var(--md3)}}}.layout-split{.layout_content{display:grid;@media(width>=768px){grid-template-columns:1fr 1fr}}}.layout-cover{min-height:100dvh;.layout_content{display:grid;place-items:center}}}@layer global{@scope(.prose)to (.not-prose){:is(p,ul,ol,blockquote,table):has(+:is(h1,h2,h3,h4)){margin-bottom:calc(var(--prose-spacing) * 2)}p,ul,ol,dl{margin-bottom:var(--prose-spacing);p,ul,ol,dl{margin-bottom:0}}ul,ol{ul,ol{margin-inline-start:0;padding-inline-start:var(--sm2)}li{margin-bottom:.5em;&::marker{color:light-dark(var(--base-300),var(--base-600))}}}ul{margin-inline-start:var(--sm2);list-style-type:"\2192 "}ol{margin-inline-start:var(--md2);list-style-type:decimal-leading-zero;li::marker{font-size:var(--text-sm)}}table{margin-top:var(--md1);margin-bottom:var(--md1)}}}@layer global{.wrap{display:grid;grid-template-columns:1fr var(--wrap-width) 1fr;>*,>astro-island>*,>astro-slot>*,>astro-static-slot>*{grid-column:2;padding-inline:var(--wrap-spacing);@media(width>=768px){padding-inline:var(--wrap-md-spacing)}@media(width>=1024px){padding-inline:var(--wrap-lg-spacing)}}}.wrap-sm{--wrap-width: var(--wrap-width-sm)}.wrap-md{--wrap-width: var(--wrap-width-md)}.wrap-lg{--wrap-width: var(--wrap-width-lg)}.wrap_content-fullBleed{grid-column:1 / -1;width:100%;object-fit:cover}}@layer helpers{.c-base-0{color:var(--base-0)!important}.bdc-base-0{border-color:var(--base-0)!important}.bgc-base-0{background-color:var(--base-0)!important}.c-base-50{color:var(--base-50)!important}.bdc-base-50{border-color:var(--base-50)!important}.bgc-base-50{background-color:var(--base-50)!important}.c-base-100{color:var(--base-100)!important}.bdc-base-100{border-color:var(--base-100)!important}.bgc-base-100{background-color:var(--base-100)!important}.c-base-200{color:var(--base-200)!important}.bdc-base-200{border-color:var(--base-200)!important}.bgc-base-200{background-color:var(--base-200)!important}.c-base-300{color:var(--base-300)!important}.bdc-base-300{border-color:var(--base-300)!important}.bgc-base-300{background-color:var(--base-300)!important}.c-base-400{color:var(--base-400)!important}.bdc-base-400{border-color:var(--base-400)!important}.bgc-base-400{background-color:var(--base-400)!important}.c-base-500{color:var(--base-500)!important}.bdc-base-500{border-color:var(--base-500)!important}.bgc-base-500{background-color:var(--base-500)!important}.c-base-600{color:var(--base-600)!important}.bdc-base-600{border-color:var(--base-600)!important}.bgc-base-600{background-color:var(--base-600)!important}.c-base-700{color:var(--base-700)!important}.bdc-base-700{border-color:var(--base-700)!important}.bgc-base-700{background-color:var(--base-700)!important}.c-base-800{color:var(--base-800)!important}.bdc-base-800{border-color:var(--base-800)!important}.bgc-base-800{background-color:var(--base-800)!important}.c-base-900{color:var(--base-900)!important}.bdc-base-900{border-color:var(--base-900)!important}.bgc-base-900{background-color:var(--base-900)!important}.c-base-950{color:var(--base-950)!important}.bdc-base-950{border-color:var(--base-950)!important}.bgc-base-950{background-color:var(--base-950)!important}.c-primary-50{color:var(--primary-50)!important}.bdc-primary-50{border-color:var(--primary-50)!important}.bgc-primary-50{background-color:var(--primary-50)!important}.c-primary-100{color:var(--primary-100)!important}.bdc-primary-100{border-color:var(--primary-100)!important}.bgc-primary-100{background-color:var(--primary-100)!important}.c-primary-200{color:var(--primary-200)!important}.bdc-primary-200{border-color:var(--primary-200)!important}.bgc-primary-200{background-color:var(--primary-200)!important}.c-primary-300{color:var(--primary-300)!important}.bdc-primary-300{border-color:var(--primary-300)!important}.bgc-primary-300{background-color:var(--primary-300)!important}.c-primary-400{color:var(--primary-400)!important}.bdc-primary-400{border-color:var(--primary-400)!important}.bgc-primary-400{background-color:var(--primary-400)!important}.c-primary-500{color:var(--primary-500)!important}.bdc-primary-500{border-color:var(--primary-500)!important}.bgc-primary-500{background-color:var(--primary-500)!important}.c-primary-600{color:var(--primary-600)!important}.bdc-primary-600{border-color:var(--primary-600)!important}.bgc-primary-600{background-color:var(--primary-600)!important}.c-primary-700{color:var(--primary-700)!important}.bdc-primary-700{border-color:var(--primary-700)!important}.bgc-primary-700{background-color:var(--primary-700)!important}.c-primary-800{color:var(--primary-800)!important}.bdc-primary-800{border-color:var(--primary-800)!important}.bgc-primary-800{background-color:var(--primary-800)!important}.c-primary-900{color:var(--primary-900)!important}.bdc-primary-900{border-color:var(--primary-900)!important}.bgc-primary-900{background-color:var(--primary-900)!important}.c-primary-950{color:var(--primary-950)!important}.bdc-primary-950{border-color:var(--primary-950)!important}.bgc-primary-950{background-color:var(--primary-950)!important}.c-yes-100{color:var(--yes-100)!important}.bdc-yes-100{border-color:var(--yes-100)!important}.bgc-yes-100{background-color:var(--yes-100)!important}.c-yes-200{color:var(--yes-200)!important}.bdc-yes-200{border-color:var(--yes-200)!important}.bgc-yes-200{background-color:var(--yes-200)!important}.c-yes-300{color:var(--yes-300)!important}.bdc-yes-300{border-color:var(--yes-300)!important}.bgc-yes-300{background-color:var(--yes-300)!important}.c-yes-400{color:var(--yes-400)!important}.bdc-yes-400{border-color:var(--yes-400)!important}.bgc-yes-400{background-color:var(--yes-400)!important}.c-yes-500{color:var(--yes-500)!important}.bdc-yes-500{border-color:var(--yes-500)!important}.bgc-yes-500{background-color:var(--yes-500)!important}.c-no-100{color:var(--no-100)!important}.bdc-no-100{border-color:var(--no-100)!important}.bgc-no-100{background-color:var(--no-100)!important}.c-no-200{color:var(--no-200)!important}.bdc-no-200{border-color:var(--no-200)!important}.bgc-no-200{background-color:var(--no-200)!important}.c-no-300{color:var(--no-300)!important}.bdc-no-300{border-color:var(--no-300)!important}.bgc-no-300{background-color:var(--no-300)!important}.c-no-400{color:var(--no-400)!important}.bdc-no-400{border-color:var(--no-400)!important}.bgc-no-400{background-color:var(--no-400)!important}.c-no-500{color:var(--no-500)!important}.bdc-no-500{border-color:var(--no-500)!important}.bgc-no-500{background-color:var(--no-500)!important}.c-maybe-100{color:var(--maybe-100)!important}.bdc-maybe-100{border-color:var(--maybe-100)!important}.bgc-maybe-100{background-color:var(--maybe-100)!important}.c-maybe-200{color:var(--maybe-200)!important}.bdc-maybe-200{border-color:var(--maybe-200)!important}.bgc-maybe-200{background-color:var(--maybe-200)!important}.c-maybe-300{color:var(--maybe-300)!important}.bdc-maybe-300{border-color:var(--maybe-300)!important}.bgc-maybe-300{background-color:var(--maybe-300)!important}.c-maybe-400{color:var(--maybe-400)!important}.bdc-maybe-400{border-color:var(--maybe-400)!important}.bgc-maybe-400{background-color:var(--maybe-400)!important}.c-maybe-500{color:var(--maybe-500)!important}.bdc-maybe-500{border-color:var(--maybe-500)!important}.bgc-maybe-500{background-color:var(--maybe-500)!important}}@layer helpers{body.dev{--baseline: 8;background-size:100% calc(var(--baseline) * 1px)!important;background-image:linear-gradient(to bottom,#0000 calc((var(--baseline) - 1) * 1px),#ff69b4 calc(var(--baseline) * 1px))!important}.dev-error{position:fixed!important;top:var(--md1)!important;left:var(--md1)!important;z-index:var(--z-top)!important;padding:var(--sm1)!important;font-size:1rem!important;color:var(--danger-500)!important;background:var(--danger-100)!important;border:1px solid var(--danger-500)!important;border-radius:var(--radius-md)!important}}@layer helpers{.of-auto,.overflow-auto{overflow:auto!important}.of-hidden,.overflow-hidden{overflow:hidden!important}.of-clip,.overflow-clip{overflow:clip!important}.of-visible,.overflow-visible{overflow:visible!important}.of-scroll,.overflow-scroll{overflow:scroll!important}.of-x-auto,.overflow-x-auto{overflow-x:auto!important}.of-y-auto,.overflow-y-auto{overflow-y:auto!important}.of-x-hidden,.overflow-x-hidden{overflow-x:hidden!important}.of-y-hidden,.overflow-y-hidden{overflow-y:hidden!important}.of-x-clip,.overflow-x-clip{overflow-x:clip!important}.of-y-clip,.overflow-y-clip{overflow-y:clip!important}.of-x-visible,.overflow-x-visible{overflow-x:visible!important}.of-y-visible,.overflow-y-visible{overflow-y:visible!important}.of-x-scroll,.overflow-x-scroll{overflow-x:scroll!important}.of-y-scroll,.overflow-y-scroll{overflow-y:scroll!important}.position-static{position:static!important}.position-fixed{position:fixed!important}.position-absolute{position:absolute!important}.position-relative{position:relative!important}.position-sticky{position:sticky!important}.visibility-visible{visibility:visible!important}.visibility-hidden{visibility:hidden!important}.visibility-collapse{visibility:collapse!important}.z-auto{z-index:auto!important}.z-bottom{z-index:var(--z-bottom)!important}.z-0{z-index:var(--z-0)!important}.z-1{z-index:var(--z-1)!important}.z-2{z-index:var(--z-2)!important}.z-3{z-index:var(--z-3)!important}.z-4{z-index:var(--z-4)!important}.z-5{z-index:var(--z-5)!important}.z-top{z-index:var(--z-top)!important}}@layer helpers{.o-0{opacity:var(--o-0)!important}.o-1{opacity:var(--o-1)!important}.o-2{opacity:var(--o-2)!important}.o-3{opacity:var(--o-3)!important}.o-4{opacity:var(--o-4)!important}.o-5{opacity:var(--o-5)!important}}@layer helpers{.ar-square{aspect-ratio:var(--ar-square)!important}.ar-landscape{aspect-ratio:var(--ar-landscape)!important}.ar-portrait{aspect-ratio:var(--ar-portrait)!important}.ar-widescreen{aspect-ratio:var(--ar-widescreen)!important}.ar-golden{aspect-ratio:var(--ar-golden)!important}}@layer helpers{.w-0{width:0!important}.h-0{height:0!important}.m-0{margin:0!important}.mt-0{margin-top:0!important}.mb-0{margin-bottom:0!important}.ml-0{margin-left:0!important}.mr-0{margin-right:0!important}.mis-0{margin-inline-start:0!important}.mie-0{margin-inline-end:0!important}.p-0{padding:0!important}.pt-0{padding-top:0!important}.pb-0{padding-bottom:0!important}.pl-0{padding-left:0!important}.pr-0{padding-right:0!important}.pis-0{padding-inline-start:0!important}.pie-0{padding-inline-end:0!important}.w-xs1{width:var(--xs1)!important}.h-xs1{height:var(--xs1)!important}.m-xs1{margin:var(--xs1)!important}.mt-xs1{margin-top:var(--xs1)!important}.mb-xs1{margin-bottom:var(--xs1)!important}.ml-xs1{margin-left:var(--xs1)!important}.mr-xs1{margin-right:var(--xs1)!important}.mis-xs1{margin-inline-start:var(--xs1)!important}.mie-xs1{margin-inline-end:var(--xs1)!important}.p-xs1{padding:var(--xs1)!important}.pt-xs1{padding-top:var(--xs1)!important}.pb-xs1{padding-bottom:var(--xs1)!important}.pl-xs1{padding-left:var(--xs1)!important}.pr-xs1{padding-right:var(--xs1)!important}.pis-xs1{padding-inline-start:var(--xs1)!important}.pie-xs1{padding-inline-end:var(--xs1)!important}.w-xs2{width:var(--xs2)!important}.h-xs2{height:var(--xs2)!important}.m-xs2{margin:var(--xs2)!important}.mt-xs2{margin-top:var(--xs2)!important}.mb-xs2{margin-bottom:var(--xs2)!important}.ml-xs2{margin-left:var(--xs2)!important}.mr-xs2{margin-right:var(--xs2)!important}.mis-xs2{margin-inline-start:var(--xs2)!important}.mie-xs2{margin-inline-end:var(--xs2)!important}.p-xs2{padding:var(--xs2)!important}.pt-xs2{padding-top:var(--xs2)!important}.pb-xs2{padding-bottom:var(--xs2)!important}.pl-xs2{padding-left:var(--xs2)!important}.pr-xs2{padding-right:var(--xs2)!important}.pis-xs2{padding-inline-start:var(--xs2)!important}.pie-xs2{padding-inline-end:var(--xs2)!important}.w-xs3{width:var(--xs3)!important}.h-xs3{height:var(--xs3)!important}.m-xs3{margin:var(--xs3)!important}.mt-xs3{margin-top:var(--xs3)!important}.mb-xs3{margin-bottom:var(--xs3)!important}.ml-xs3{margin-left:var(--xs3)!important}.mr-xs3{margin-right:var(--xs3)!important}.mis-xs3{margin-inline-start:var(--xs3)!important}.mie-xs3{margin-inline-end:var(--xs3)!important}.p-xs3{padding:var(--xs3)!important}.pt-xs3{padding-top:var(--xs3)!important}.pb-xs3{padding-bottom:var(--xs3)!important}.pl-xs3{padding-left:var(--xs3)!important}.pr-xs3{padding-right:var(--xs3)!important}.pis-xs3{padding-inline-start:var(--xs3)!important}.pie-xs3{padding-inline-end:var(--xs3)!important}.w-sm1{width:var(--sm1)!important}.h-sm1{height:var(--sm1)!important}.m-sm1{margin:var(--sm1)!important}.mt-sm1{margin-top:var(--sm1)!important}.mb-sm1{margin-bottom:var(--sm1)!important}.ml-sm1{margin-left:var(--sm1)!important}.mr-sm1{margin-right:var(--sm1)!important}.mis-sm1{margin-inline-start:var(--sm1)!important}.mie-sm1{margin-inline-end:var(--sm1)!important}.p-sm1{padding:var(--sm1)!important}.pt-sm1{padding-top:var(--sm1)!important}.pb-sm1{padding-bottom:var(--sm1)!important}.pl-sm1{padding-left:var(--sm1)!important}.pr-sm1{padding-right:var(--sm1)!important}.pis-sm1{padding-inline-start:var(--sm1)!important}.pie-sm1{padding-inline-end:var(--sm1)!important}.w-sm2{width:var(--sm2)!important}.h-sm2{height:var(--sm2)!important}.m-sm2{margin:var(--sm2)!important}.mt-sm2{margin-top:var(--sm2)!important}.mb-sm2{margin-bottom:var(--sm2)!important}.ml-sm2{margin-left:var(--sm2)!important}.mr-sm2{margin-right:var(--sm2)!important}.mis-sm2{margin-inline-start:var(--sm2)!important}.mie-sm2{margin-inline-end:var(--sm2)!important}.p-sm2{padding:var(--sm2)!important}.pt-sm2{padding-top:var(--sm2)!important}.pb-sm2{padding-bottom:var(--sm2)!important}.pl-sm2{padding-left:var(--sm2)!important}.pr-sm2{padding-right:var(--sm2)!important}.pis-sm2{padding-inline-start:var(--sm2)!important}.pie-sm2{padding-inline-end:var(--sm2)!important}.w-sm3{width:var(--sm3)!important}.h-sm3{height:var(--sm3)!important}.m-sm3{margin:var(--sm3)!important}.mt-sm3{margin-top:var(--sm3)!important}.mb-sm3{margin-bottom:var(--sm3)!important}.ml-sm3{margin-left:var(--sm3)!important}.mr-sm3{margin-right:var(--sm3)!important}.mis-sm3{margin-inline-start:var(--sm3)!important}.mie-sm3{margin-inline-end:var(--sm3)!important}.p-sm3{padding:var(--sm3)!important}.pt-sm3{padding-top:var(--sm3)!important}.pb-sm3{padding-bottom:var(--sm3)!important}.pl-sm3{padding-left:var(--sm3)!important}.pr-sm3{padding-right:var(--sm3)!important}.pis-sm3{padding-inline-start:var(--sm3)!important}.pie-sm3{padding-inline-end:var(--sm3)!important}.w-md1{width:var(--md1)!important}.h-md1{height:var(--md1)!important}.m-md1{margin:var(--md1)!important}.mt-md1{margin-top:var(--md1)!important}.mb-md1{margin-bottom:var(--md1)!important}.ml-md1{margin-left:var(--md1)!important}.mr-md1{margin-right:var(--md1)!important}.mis-md1{margin-inline-start:var(--md1)!important}.mie-md1{margin-inline-end:var(--md1)!important}.p-md1{padding:var(--md1)!important}.pt-md1{padding-top:var(--md1)!important}.pb-md1{padding-bottom:var(--md1)!important}.pl-md1{padding-left:var(--md1)!important}.pr-md1{padding-right:var(--md1)!important}.pis-md1{padding-inline-start:var(--md1)!important}.pie-md1{padding-inline-end:var(--md1)!important}.w-md2{width:var(--md2)!important}.h-md2{height:var(--md2)!important}.m-md2{margin:var(--md2)!important}.mt-md2{margin-top:var(--md2)!important}.mb-md2{margin-bottom:var(--md2)!important}.ml-md2{margin-left:var(--md2)!important}.mr-md2{margin-right:var(--md2)!important}.mis-md2{margin-inline-start:var(--md2)!important}.mie-md2{margin-inline-end:var(--md2)!important}.p-md2{padding:var(--md2)!important}.pt-md2{padding-top:var(--md2)!important}.pb-md2{padding-bottom:var(--md2)!important}.pl-md2{padding-left:var(--md2)!important}.pr-md2{padding-right:var(--md2)!important}.pis-md2{padding-inline-start:var(--md2)!important}.pie-md2{padding-inline-end:var(--md2)!important}.w-md3{width:var(--md3)!important}.h-md3{height:var(--md3)!important}.m-md3{margin:var(--md3)!important}.mt-md3{margin-top:var(--md3)!important}.mb-md3{margin-bottom:var(--md3)!important}.ml-md3{margin-left:var(--md3)!important}.mr-md3{margin-right:var(--md3)!important}.mis-md3{margin-inline-start:var(--md3)!important}.mie-md3{margin-inline-end:var(--md3)!important}.p-md3{padding:var(--md3)!important}.pt-md3{padding-top:var(--md3)!important}.pb-md3{padding-bottom:var(--md3)!important}.pl-md3{padding-left:var(--md3)!important}.pr-md3{padding-right:var(--md3)!important}.pis-md3{padding-inline-start:var(--md3)!important}.pie-md3{padding-inline-end:var(--md3)!important}.w-lg1{width:var(--lg1)!important}.h-lg1{height:var(--lg1)!important}.m-lg1{margin:var(--lg1)!important}.mt-lg1{margin-top:var(--lg1)!important}.mb-lg1{margin-bottom:var(--lg1)!important}.ml-lg1{margin-left:var(--lg1)!important}.mr-lg1{margin-right:var(--lg1)!important}.mis-lg1{margin-inline-start:var(--lg1)!important}.mie-lg1{margin-inline-end:var(--lg1)!important}.p-lg1{padding:var(--lg1)!important}.pt-lg1{padding-top:var(--lg1)!important}.pb-lg1{padding-bottom:var(--lg1)!important}.pl-lg1{padding-left:var(--lg1)!important}.pr-lg1{padding-right:var(--lg1)!important}.pis-lg1{padding-inline-start:var(--lg1)!important}.pie-lg1{padding-inline-end:var(--lg1)!important}.w-lg2{width:var(--lg2)!important}.h-lg2{height:var(--lg2)!important}.m-lg2{margin:var(--lg2)!important}.mt-lg2{margin-top:var(--lg2)!important}.mb-lg2{margin-bottom:var(--lg2)!important}.ml-lg2{margin-left:var(--lg2)!important}.mr-lg2{margin-right:var(--lg2)!important}.mis-lg2{margin-inline-start:var(--lg2)!important}.mie-lg2{margin-inline-end:var(--lg2)!important}.p-lg2{padding:var(--lg2)!important}.pt-lg2{padding-top:var(--lg2)!important}.pb-lg2{padding-bottom:var(--lg2)!important}.pl-lg2{padding-left:var(--lg2)!important}.pr-lg2{padding-right:var(--lg2)!important}.pis-lg2{padding-inline-start:var(--lg2)!important}.pie-lg2{padding-inline-end:var(--lg2)!important}.w-lg3{width:var(--lg3)!important}.h-lg3{height:var(--lg3)!important}.m-lg3{margin:var(--lg3)!important}.mt-lg3{margin-top:var(--lg3)!important}.mb-lg3{margin-bottom:var(--lg3)!important}.ml-lg3{margin-left:var(--lg3)!important}.mr-lg3{margin-right:var(--lg3)!important}.mis-lg3{margin-inline-start:var(--lg3)!important}.mie-lg3{margin-inline-end:var(--lg3)!important}.p-lg3{padding:var(--lg3)!important}.pt-lg3{padding-top:var(--lg3)!important}.pb-lg3{padding-bottom:var(--lg3)!important}.pl-lg3{padding-left:var(--lg3)!important}.pr-lg3{padding-right:var(--lg3)!important}.pis-lg3{padding-inline-start:var(--lg3)!important}.pie-lg3{padding-inline-end:var(--lg3)!important}.w-xl1{width:var(--xl1)!important}.h-xl1{height:var(--xl1)!important}.m-xl1{margin:var(--xl1)!important}.mt-xl1{margin-top:var(--xl1)!important}.mb-xl1{margin-bottom:var(--xl1)!important}.ml-xl1{margin-left:var(--xl1)!important}.mr-xl1{margin-right:var(--xl1)!important}.mis-xl1{margin-inline-start:var(--xl1)!important}.mie-xl1{margin-inline-end:var(--xl1)!important}.p-xl1{padding:var(--xl1)!important}.pt-xl1{padding-top:var(--xl1)!important}.pb-xl1{padding-bottom:var(--xl1)!important}.pl-xl1{padding-left:var(--xl1)!important}.pr-xl1{padding-right:var(--xl1)!important}.pis-xl1{padding-inline-start:var(--xl1)!important}.pie-xl1{padding-inline-end:var(--xl1)!important}.w-xl2{width:var(--xl2)!important}.h-xl2{height:var(--xl2)!important}.m-xl2{margin:var(--xl2)!important}.mt-xl2{margin-top:var(--xl2)!important}.mb-xl2{margin-bottom:var(--xl2)!important}.ml-xl2{margin-left:var(--xl2)!important}.mr-xl2{margin-right:var(--xl2)!important}.mis-xl2{margin-inline-start:var(--xl2)!important}.mie-xl2{margin-inline-end:var(--xl2)!important}.p-xl2{padding:var(--xl2)!important}.pt-xl2{padding-top:var(--xl2)!important}.pb-xl2{padding-bottom:var(--xl2)!important}.pl-xl2{padding-left:var(--xl2)!important}.pr-xl2{padding-right:var(--xl2)!important}.pis-xl2{padding-inline-start:var(--xl2)!important}.pie-xl2{padding-inline-end:var(--xl2)!important}.w-xl3{width:var(--xl3)!important}.h-xl3{height:var(--xl3)!important}.m-xl3{margin:var(--xl3)!important}.mt-xl3{margin-top:var(--xl3)!important}.mb-xl3{margin-bottom:var(--xl3)!important}.ml-xl3{margin-left:var(--xl3)!important}.mr-xl3{margin-right:var(--xl3)!important}.mis-xl3{margin-inline-start:var(--xl3)!important}.mie-xl3{margin-inline-end:var(--xl3)!important}.p-xl3{padding:var(--xl3)!important}.pt-xl3{padding-top:var(--xl3)!important}.pb-xl3{padding-bottom:var(--xl3)!important}.pl-xl3{padding-left:var(--xl3)!important}.pr-xl3{padding-right:var(--xl3)!important}.pis-xl3{padding-inline-start:var(--xl3)!important}.pie-xl3{padding-inline-end:var(--xl3)!important}.w-xxl1{width:var(--xxl1)!important}.h-xxl1{height:var(--xxl1)!important}.m-xxl1{margin:var(--xxl1)!important}.mt-xxl1{margin-top:var(--xxl1)!important}.mb-xxl1{margin-bottom:var(--xxl1)!important}.ml-xxl1{margin-left:var(--xxl1)!important}.mr-xxl1{margin-right:var(--xxl1)!important}.mis-xxl1{margin-inline-start:var(--xxl1)!important}.mie-xxl1{margin-inline-end:var(--xxl1)!important}.p-xxl1{padding:var(--xxl1)!important}.pt-xxl1{padding-top:var(--xxl1)!important}.pb-xxl1{padding-bottom:var(--xxl1)!important}.pl-xxl1{padding-left:var(--xxl1)!important}.pr-xxl1{padding-right:var(--xxl1)!important}.pis-xxl1{padding-inline-start:var(--xxl1)!important}.pie-xxl1{padding-inline-end:var(--xxl1)!important}.w-xxl2{width:var(--xxl2)!important}.h-xxl2{height:var(--xxl2)!important}.m-xxl2{margin:var(--xxl2)!important}.mt-xxl2{margin-top:var(--xxl2)!important}.mb-xxl2{margin-bottom:var(--xxl2)!important}.ml-xxl2{margin-left:var(--xxl2)!important}.mr-xxl2{margin-right:var(--xxl2)!important}.mis-xxl2{margin-inline-start:var(--xxl2)!important}.mie-xxl2{margin-inline-end:var(--xxl2)!important}.p-xxl2{padding:var(--xxl2)!important}.pt-xxl2{padding-top:var(--xxl2)!important}.pb-xxl2{padding-bottom:var(--xxl2)!important}.pl-xxl2{padding-left:var(--xxl2)!important}.pr-xxl2{padding-right:var(--xxl2)!important}.pis-xxl2{padding-inline-start:var(--xxl2)!important}.pie-xxl2{padding-inline-end:var(--xxl2)!important}.w-xxl3{width:var(--xxl3)!important}.h-xxl3{height:var(--xxl3)!important}.m-xxl3{margin:var(--xxl3)!important}.mt-xxl3{margin-top:var(--xxl3)!important}.mb-xxl3{margin-bottom:var(--xxl3)!important}.ml-xxl3{margin-left:var(--xxl3)!important}.mr-xxl3{margin-right:var(--xxl3)!important}.mis-xxl3{margin-inline-start:var(--xxl3)!important}.mie-xxl3{margin-inline-end:var(--xxl3)!important}.p-xxl3{padding:var(--xxl3)!important}.pt-xxl3{padding-top:var(--xxl3)!important}.pb-xxl3{padding-bottom:var(--xxl3)!important}.pl-xxl3{padding-left:var(--xxl3)!important}.pr-xxl3{padding-right:var(--xxl3)!important}.pis-xxl3{padding-inline-start:var(--xxl3)!important}.pie-xxl3{padding-inline-end:var(--xxl3)!important}.w-mega1{width:var(--mega1)!important}.h-mega1{height:var(--mega1)!important}.m-mega1{margin:var(--mega1)!important}.mt-mega1{margin-top:var(--mega1)!important}.mb-mega1{margin-bottom:var(--mega1)!important}.ml-mega1{margin-left:var(--mega1)!important}.mr-mega1{margin-right:var(--mega1)!important}.mis-mega1{margin-inline-start:var(--mega1)!important}.mie-mega1{margin-inline-end:var(--mega1)!important}.p-mega1{padding:var(--mega1)!important}.pt-mega1{padding-top:var(--mega1)!important}.pb-mega1{padding-bottom:var(--mega1)!important}.pl-mega1{padding-left:var(--mega1)!important}.pr-mega1{padding-right:var(--mega1)!important}.pis-mega1{padding-inline-start:var(--mega1)!important}.pie-mega1{padding-inline-end:var(--mega1)!important}.w-mega2{width:var(--mega2)!important}.h-mega2{height:var(--mega2)!important}.m-mega2{margin:var(--mega2)!important}.mt-mega2{margin-top:var(--mega2)!important}.mb-mega2{margin-bottom:var(--mega2)!important}.ml-mega2{margin-left:var(--mega2)!important}.mr-mega2{margin-right:var(--mega2)!important}.mis-mega2{margin-inline-start:var(--mega2)!important}.mie-mega2{margin-inline-end:var(--mega2)!important}.p-mega2{padding:var(--mega2)!important}.pt-mega2{padding-top:var(--mega2)!important}.pb-mega2{padding-bottom:var(--mega2)!important}.pl-mega2{padding-left:var(--mega2)!important}.pr-mega2{padding-right:var(--mega2)!important}.pis-mega2{padding-inline-start:var(--mega2)!important}.pie-mega2{padding-inline-end:var(--mega2)!important}.w-mega3{width:var(--mega3)!important}.h-mega3{height:var(--mega3)!important}.m-mega3{margin:var(--mega3)!important}.mt-mega3{margin-top:var(--mega3)!important}.mb-mega3{margin-bottom:var(--mega3)!important}.ml-mega3{margin-left:var(--mega3)!important}.mr-mega3{margin-right:var(--mega3)!important}.mis-mega3{margin-inline-start:var(--mega3)!important}.mie-mega3{margin-inline-end:var(--mega3)!important}.p-mega3{padding:var(--mega3)!important}.pt-mega3{padding-top:var(--mega3)!important}.pb-mega3{padding-bottom:var(--mega3)!important}.pl-mega3{padding-left:var(--mega3)!important}.pr-mega3{padding-right:var(--mega3)!important}.pis-mega3{padding-inline-start:var(--mega3)!important}.pie-mega3{padding-inline-end:var(--mega3)!important}.w-giga1{width:var(--giga1)!important}.h-giga1{height:var(--giga1)!important}.m-giga1{margin:var(--giga1)!important}.mt-giga1{margin-top:var(--giga1)!important}.mb-giga1{margin-bottom:var(--giga1)!important}.ml-giga1{margin-left:var(--giga1)!important}.mr-giga1{margin-right:var(--giga1)!important}.mis-giga1{margin-inline-start:var(--giga1)!important}.mie-giga1{margin-inline-end:var(--giga1)!important}.p-giga1{padding:var(--giga1)!important}.pt-giga1{padding-top:var(--giga1)!important}.pb-giga1{padding-bottom:var(--giga1)!important}.pl-giga1{padding-left:var(--giga1)!important}.pr-giga1{padding-right:var(--giga1)!important}.pis-giga1{padding-inline-start:var(--giga1)!important}.pie-giga1{padding-inline-end:var(--giga1)!important}.w-giga2{width:var(--giga2)!important}.h-giga2{height:var(--giga2)!important}.m-giga2{margin:var(--giga2)!important}.mt-giga2{margin-top:var(--giga2)!important}.mb-giga2{margin-bottom:var(--giga2)!important}.ml-giga2{margin-left:var(--giga2)!important}.mr-giga2{margin-right:var(--giga2)!important}.mis-giga2{margin-inline-start:var(--giga2)!important}.mie-giga2{margin-inline-end:var(--giga2)!important}.p-giga2{padding:var(--giga2)!important}.pt-giga2{padding-top:var(--giga2)!important}.pb-giga2{padding-bottom:var(--giga2)!important}.pl-giga2{padding-left:var(--giga2)!important}.pr-giga2{padding-right:var(--giga2)!important}.pis-giga2{padding-inline-start:var(--giga2)!important}.pie-giga2{padding-inline-end:var(--giga2)!important}.w-giga3{width:var(--giga3)!important}.h-giga3{height:var(--giga3)!important}.m-giga3{margin:var(--giga3)!important}.mt-giga3{margin-top:var(--giga3)!important}.mb-giga3{margin-bottom:var(--giga3)!important}.ml-giga3{margin-left:var(--giga3)!important}.mr-giga3{margin-right:var(--giga3)!important}.mis-giga3{margin-inline-start:var(--giga3)!important}.mie-giga3{margin-inline-end:var(--giga3)!important}.p-giga3{padding:var(--giga3)!important}.pt-giga3{padding-top:var(--giga3)!important}.pb-giga3{padding-bottom:var(--giga3)!important}.pl-giga3{padding-left:var(--giga3)!important}.pr-giga3{padding-right:var(--giga3)!important}.pis-giga3{padding-inline-start:var(--giga3)!important}.pie-giga3{padding-inline-end:var(--giga3)!important}.w-tera1{width:var(--tera1)!important}.h-tera1{height:var(--tera1)!important}.m-tera1{margin:var(--tera1)!important}.mt-tera1{margin-top:var(--tera1)!important}.mb-tera1{margin-bottom:var(--tera1)!important}.ml-tera1{margin-left:var(--tera1)!important}.mr-tera1{margin-right:var(--tera1)!important}.mis-tera1{margin-inline-start:var(--tera1)!important}.mie-tera1{margin-inline-end:var(--tera1)!important}.p-tera1{padding:var(--tera1)!important}.pt-tera1{padding-top:var(--tera1)!important}.pb-tera1{padding-bottom:var(--tera1)!important}.pl-tera1{padding-left:var(--tera1)!important}.pr-tera1{padding-right:var(--tera1)!important}.pis-tera1{padding-inline-start:var(--tera1)!important}.pie-tera1{padding-inline-end:var(--tera1)!important}.w-tera2{width:var(--tera2)!important}.h-tera2{height:var(--tera2)!important}.m-tera2{margin:var(--tera2)!important}.mt-tera2{margin-top:var(--tera2)!important}.mb-tera2{margin-bottom:var(--tera2)!important}.ml-tera2{margin-left:var(--tera2)!important}.mr-tera2{margin-right:var(--tera2)!important}.mis-tera2{margin-inline-start:var(--tera2)!important}.mie-tera2{margin-inline-end:var(--tera2)!important}.p-tera2{padding:var(--tera2)!important}.pt-tera2{padding-top:var(--tera2)!important}.pb-tera2{padding-bottom:var(--tera2)!important}.pl-tera2{padding-left:var(--tera2)!important}.pr-tera2{padding-right:var(--tera2)!important}.pis-tera2{padding-inline-start:var(--tera2)!important}.pie-tera2{padding-inline-end:var(--tera2)!important}.w-tera3{width:var(--tera3)!important}.h-tera3{height:var(--tera3)!important}.m-tera3{margin:var(--tera3)!important}.mt-tera3{margin-top:var(--tera3)!important}.mb-tera3{margin-bottom:var(--tera3)!important}.ml-tera3{margin-left:var(--tera3)!important}.mr-tera3{margin-right:var(--tera3)!important}.mis-tera3{margin-inline-start:var(--tera3)!important}.mie-tera3{margin-inline-end:var(--tera3)!important}.p-tera3{padding:var(--tera3)!important}.pt-tera3{padding-top:var(--tera3)!important}.pb-tera3{padding-bottom:var(--tera3)!important}.pl-tera3{padding-left:var(--tera3)!important}.pr-tera3{padding-right:var(--tera3)!important}.pis-tera3{padding-inline-start:var(--tera3)!important}.pie-tera3{padding-inline-end:var(--tera3)!important}}@layer helpers{.font-text{font-family:var(--text)!important}.font-display{font-family:var(--display)!important}.font-mono{font-family:var(--mono)!important}.font-italic{font-style:italic!important}.font-normal{font-style:normal!important}.font-extra-light{font-weight:var(--extra-light)!important}.font-light{font-weight:var(--light)!important}.font-book{font-weight:var(--book)!important}.font-semi-bold{font-weight:var(--semi-bold)!important}.font-bold{font-weight:var(--bold)!important}.font-black{font-weight:var(--black)!important}.text-xs{font-size:var(--text-xs)!important}.text-sm{font-size:var(--text-sm)!important}.text-md{font-size:var(--text-md)!important}.text-lg{font-size:var(--text-lg)!important}.text-xl{font-size:var(--text-xl)!important}.display-sm{font-size:var(--display-sm)!important}.display-md{font-size:var(--display-md)!important}.display-lg{font-size:var(--display-lg)!important}.display-xl{font-size:var(--display-xl)!important}.display-mega{font-size:var(--display-mega)!important}.display-giga{font-size:var(--display-giga)!important}.tracking-sm{letter-spacing:var(--tracking-sm)!important}.tracking-md{letter-spacing:var(--tracking-md)!important}.tracking-lg{letter-spacing:var(--tracking-lg)!important}.tracking-xl{letter-spacing:var(--tracking-xl)!important}.tracking-xxl{letter-spacing:var(--tracking-xxl)!important}.leading-xs{line-height:var(--leading-xs)!important}.leading-sm{line-height:var(--leading-sm)!important}.leading-md{line-height:var(--leading-md)!important}.leading-lg{line-height:var(--leading-lg)!important}.leading-xl{line-height:var(--leading-xl)!important}.leading-xxl{line-height:var(--leading-xxl)!important}.text-left{text-align:left!important}.text-center{text-align:center!important}.text-right{text-align:right!important}.text-justify{text-align:justify!important}.text-start{text-align:start!important}.text-end{text-align:end!important}.text-uppercase{text-transform:uppercase!important}.text-lowercase{text-transform:lowercase!important}.text-capitalize{text-transform:capitalize!important}} +@layer base,elements,global,components,theme.default,theme.user,external,helpers;@layer base,elements,global,components,theme.default,theme.user,external,helpers;@layer base{*,*:before,*:after{box-sizing:border-box}@media(prefers-reduced-motion:reduce){*,:before,:after{animation-delay:-1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;background-attachment:initial!important;scroll-behavior:auto!important;transition-delay:0s!important;transition-duration:0s!important}}:where(:not(dialog)){margin:0}html,body{min-height:100%}}@layer elements{body{line-sizing:normal;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;background-color:var(--body-background-color);color:var(--text-color);font-family:var(--text);line-height:var(--body-line-height);&:has(.body-is-locked){overflow:hidden}}}@layer elements{::selection{color:var(--selection-color);background-color:var(--selection-background-color)}:where(a,u,ins,abbr){text-underline-offset:2px}a{font-weight:var(--link-font-weight);color:var(--link-color);&:where(:hover){color:var(--link-color-hover);-webkit-text-decoration:none;text-decoration:none}}address{width:max-content;max-width:100%;padding:var(--sm1) var(--sm3);font-style:normal;background-color:light-dark(var(--base-50),var(--base-900));border:var(--xs2) solid transparent;border-image:8 repeating-linear-gradient(-45deg,var(--no-500) 0,var(--no-500) var(--xs2),transparent 0,transparent calc(var(--xs2) * 2),var(--primary-500) 0,var(--primary-500) calc(var(--xs2) * 3),transparent 0,transparent calc(var(--xs2) * 4))}abbr{position:relative;cursor:help;&:after{position:relative;top:calc(var(--xs1) * -1);width:var(--sm1);height:var(--sm1);display:inline-block;content:"";background:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%20id='circle-help'%3E%3Ccircle%20cx='12'%20cy='12'%20r='10'/%3E%3Cpath%20d='M9.09%209a3%203%200%200%201%205.83%201c0%202-3%203-3%203'/%3E%3Cpath%20d='M12%2017h.01'/%3E%3C/svg%3E");background-size:contain}&:hover:before{width:max-content;max-width:400px;position:absolute;left:50%;padding:var(--xs1) var(--xs3);content:attr(title);color:var(--base-0);background-color:var(--base-900);opacity:var(--o-4);border-radius:var(--radius-sm);transform:translate(-50%,-2em)}}blockquote{position:relative;margin-bottom:var(--prose-spacing);padding-block:var(--blockquote-padding-block);padding-inline:var(--blockquote-padding-inline);font-style:italic;background-color:var(--blockquote-background-color);border-radius:var(--blockquote-border-radius);&:before{content:"";position:absolute;top:0;inset-inline-start:0;width:var(--blockquote-accent-width);height:100%;border-start-start-radius:var(--blockquote-border-radius);border-end-start-radius:var(--blockquote-border-radius);background:var(--blockquote-accent-color)}p{&:first-child:before{content:open-quote}&:last-child{margin-bottom:0;&:after{content:close-quote}}}}cite{font-style:italic}code,var,kbd{font-family:var(--mono);font-size:.9em;font-style:normal;color:var(--text-code-muted-color)}:is(code,var,kbd):not(h1 *,h2 *,h3 *,h4 *,h5 *,h6 *,pre *){padding:.15em .3em;color:var(--text-code-color);background-color:var(--text-code-background-color);border-radius:var(--radius-sm)}dt{font-weight:var(--bold)}dd+dt{margin-top:.5em}del{text-decoration-color:var(--no-500);text-decoration-style:wavy}h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5,h6,.h6{overflow-wrap:break-word;text-wrap:balance}h1,.h1,h2,.h2,h3,.h3,h4,.h4{font-family:var(--heading-font);font-weight:var(--heading-weight);letter-spacing:var(--heading-letter-spacing)}h1,.h1{margin-bottom:var(--heading-spacing-h1);font-size:var(--heading-font-size-h1);line-height:var(--heading-line-height-h1)}h2,.h2{margin-bottom:var(--heading-spacing-h2);font-size:var(--heading-font-size-h2);line-height:var(--heading-line-height-h2)}h3,.h3{margin-bottom:var(--heading-spacing-h3);font-size:var(--heading-font-size-h3);line-height:var(--heading-line-height-h3)}h4,.h4{margin-bottom:var(--heading-spacing-h4);font-size:var(--heading-font-size-h4);line-height:var(--heading-line-height-h4)}h5,.h5{margin-bottom:var(--heading-spacing-h5);font-size:var(--heading-font-size-h5);line-height:var(--heading-line-height-h5)}h6,.h6{margin-bottom:var(--heading-spacing-h6);font-size:var(--heading-font-size-h6);line-height:var(--heading-line-height-h6)}:where(h1,h2,h3):has(+:is(h2,h3,h4)){margin-bottom:var(--heading-spacing-consecutive)}hr{display:flex;justify-content:center;align-items:center;height:0;border-style:solid;border-width:var(--border-sm) 0 0;color:var(--ui-border-color);overflow:visible;&:after{content:var(--hr-content);padding:0 var(--xs1);line-height:1;letter-spacing:var(--tracking-sm);background-color:var(--body-background-color)}}:where(hr):has(+:is(p)){margin-bottom:var(--prose-spacing)}ins{padding:.15em .3em;color:var(--ins-color);background-color:var(--ins-background-color);border-radius:var(--radius-sm);-webkit-text-decoration:none;text-decoration:none;&:before{content:"+ "}}mark{padding:.15em .5em;background:var(--marker-color);border-radius:1em 0}:where(ol,ul){list-style-type:none;padding:0}pre{font-family:var(--mono);font-size:var(--pre-font-size);white-space:pre-wrap;border-radius:var(--pre-border-radius)}q{font-style:italic}s{text-decoration-color:light-dark(var(--base-950),var(--base-50));text-decoration-style:wavy}sub,sup{line-height:1}}@layer elements{:root{quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(af),:not(:lang(af))>:lang(af){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(ak),:not(:lang(ak))>:lang(ak){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(asa),:not(:lang(asa))>:lang(asa){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(az),:not(:lang(az))>:lang(az){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(bem),:not(:lang(bem))>:lang(bem){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(bez),:not(:lang(bez))>:lang(bez){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(bn),:not(:lang(bn))>:lang(bn){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(brx),:not(:lang(brx))>:lang(brx){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(cgg),:not(:lang(cgg))>:lang(cgg){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(chr),:not(:lang(chr))>:lang(chr){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(cy),:not(:lang(cy))>:lang(cy){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(da),:not(:lang(da))>:lang(da){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(dav),:not(:lang(dav))>:lang(dav){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(dje),:not(:lang(dje))>:lang(dje){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(dz),:not(:lang(dz))>:lang(dz){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(ebu),:not(:lang(ebu))>:lang(ebu){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(ee),:not(:lang(ee))>:lang(ee){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(en),:not(:lang(en))>:lang(en){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(fil),:not(:lang(fil))>:lang(fil){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(fo),:not(:lang(fo))>:lang(fo){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(ga),:not(:lang(ga))>:lang(ga){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(gd),:not(:lang(gd))>:lang(gd){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(gl),:not(:lang(gl))>:lang(gl){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(gu),:not(:lang(gu))>:lang(gu){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(guz),:not(:lang(guz))>:lang(guz){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(ha),:not(:lang(ha))>:lang(ha){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(hi),:not(:lang(hi))>:lang(hi){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(id),:not(:lang(id))>:lang(id){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(ig),:not(:lang(ig))>:lang(ig){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(jmc),:not(:lang(jmc))>:lang(jmc){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(kam),:not(:lang(kam))>:lang(kam){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(kde),:not(:lang(kde))>:lang(kde){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(kea),:not(:lang(kea))>:lang(kea){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(khq),:not(:lang(khq))>:lang(khq){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(ki),:not(:lang(ki))>:lang(ki){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(kln),:not(:lang(kln))>:lang(kln){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(km),:not(:lang(km))>:lang(km){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(kn),:not(:lang(kn))>:lang(kn){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(ko),:not(:lang(ko))>:lang(ko){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(ksb),:not(:lang(ksb))>:lang(ksb){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(lg),:not(:lang(lg))>:lang(lg){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(ln),:not(:lang(ln))>:lang(ln){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(lo),:not(:lang(lo))>:lang(lo){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(lrc),:not(:lang(lrc))>:lang(lrc){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(lu),:not(:lang(lu))>:lang(lu){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(luo),:not(:lang(luo))>:lang(luo){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(lv),:not(:lang(lv))>:lang(lv){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(mas),:not(:lang(mas))>:lang(mas){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(mer),:not(:lang(mer))>:lang(mer){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(mfe),:not(:lang(mfe))>:lang(mfe){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(mgo),:not(:lang(mgo))>:lang(mgo){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(ml),:not(:lang(ml))>:lang(ml){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(mn),:not(:lang(mn))>:lang(mn){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(mr),:not(:lang(mr))>:lang(mr){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(ms),:not(:lang(ms))>:lang(ms){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(mt),:not(:lang(mt))>:lang(mt){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(my),:not(:lang(my))>:lang(my){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(naq),:not(:lang(naq))>:lang(naq){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(nd),:not(:lang(nd))>:lang(nd){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(ne),:not(:lang(ne))>:lang(ne){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(nus),:not(:lang(nus))>:lang(nus){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(nyn),:not(:lang(nyn))>:lang(nyn){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(pa),:not(:lang(pa))>:lang(pa){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(pt),:not(:lang(pt))>:lang(pt){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(rof),:not(:lang(rof))>:lang(rof){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(rwk),:not(:lang(rwk))>:lang(rwk){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(saq),:not(:lang(saq))>:lang(saq){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(sbp),:not(:lang(sbp))>:lang(sbp){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(seh),:not(:lang(seh))>:lang(seh){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(ses),:not(:lang(ses))>:lang(ses){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(si),:not(:lang(si))>:lang(si){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(so),:not(:lang(so))>:lang(so){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(sw),:not(:lang(sw))>:lang(sw){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(ta),:not(:lang(ta))>:lang(ta){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(te),:not(:lang(te))>:lang(te){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(teo),:not(:lang(teo))>:lang(teo){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(th),:not(:lang(th))>:lang(th){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(to),:not(:lang(to))>:lang(to){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(tr),:not(:lang(tr))>:lang(tr){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(twq),:not(:lang(twq))>:lang(twq){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(tzm),:not(:lang(tzm))>:lang(tzm){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(uz-Cyrl),:not(:lang(uz-Cyrl))>:lang(uz-Cyrl){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(vai),:not(:lang(vai))>:lang(vai){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(vai-Latn),:not(:lang(vai-Latn))>:lang(vai-Latn){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(vi),:not(:lang(vi))>:lang(vi){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(vun),:not(:lang(vun))>:lang(vun){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(xog),:not(:lang(xog))>:lang(xog){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(yo),:not(:lang(yo))>:lang(yo){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(yue-Hans),:not(:lang(yue-Hans))>:lang(yue-Hans){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(zh),:not(:lang(zh))>:lang(zh){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(zu),:not(:lang(zu))>:lang(zu){quotes:"\201c" "\201d" "\2018" "\2019"}:root:lang(uz),:not(:lang(uz))>:lang(uz){quotes:"\201c" "\201d" "\2019" "\2018"}:root:lang(eu),:not(:lang(eu))>:lang(eu){quotes:"\201c" "\201d" "\201c" "\201d"}:root:lang(tk),:not(:lang(tk))>:lang(tk){quotes:"\201c" "\201d" "\201c" "\201d"}:root:lang(ar),:not(:lang(ar))>:lang(ar){quotes:"\201d" "\201c" "\2019" "\2018"}:root:lang(ur),:not(:lang(ur))>:lang(ur){quotes:"\201d" "\201c" "\2019" "\2018"}:root:lang(fi),:not(:lang(fi))>:lang(fi){quotes:"\201d" "\201d" "\2019" "\2019"}:root:lang(he),:not(:lang(he))>:lang(he){quotes:"\201d" "\201d" "\2019" "\2019"}:root:lang(lag),:not(:lang(lag))>:lang(lag){quotes:"\201d" "\201d" "\2019" "\2019"}:root:lang(rn),:not(:lang(rn))>:lang(rn){quotes:"\201d" "\201d" "\2019" "\2019"}:root:lang(sn),:not(:lang(sn))>:lang(sn){quotes:"\201d" "\201d" "\2019" "\2019"}:root:lang(sv),:not(:lang(sv))>:lang(sv){quotes:"\201d" "\201d" "\2019" "\2019"}:root:lang(sr),:not(:lang(sr))>:lang(sr){quotes:"\201e" "\201c" "\2018" "\2018"}:root:lang(sr-Latn),:not(:lang(sr-Latn))>:lang(sr-Latn){quotes:"\201e" "\201c" "\2018" "\2018"}:root:lang(bg),:not(:lang(bg))>:lang(bg){quotes:"\201e" "\201c" "\201e" "\201c"}:root:lang(lt),:not(:lang(lt))>:lang(lt){quotes:"\201e" "\201c" "\201e" "\201c"}:root:lang(bs-Cyrl),:not(:lang(bs-Cyrl))>:lang(bs-Cyrl){quotes:"\201e" "\201c" "\201a" "\2018"}:root:lang(cs),:not(:lang(cs))>:lang(cs){quotes:"\201e" "\201c" "\201a" "\2018"}:root:lang(de),:not(:lang(de))>:lang(de){quotes:"\201e" "\201c" "\201a" "\2018"}:root:lang(dsb),:not(:lang(dsb))>:lang(dsb){quotes:"\201e" "\201c" "\201a" "\2018"}:root:lang(et),:not(:lang(et))>:lang(et){quotes:"\201e" "\201c" "\201a" "\2018"}:root:lang(hr),:not(:lang(hr))>:lang(hr){quotes:"\201e" "\201c" "\201a" "\2018"}:root:lang(hsb),:not(:lang(hsb))>:lang(hsb){quotes:"\201e" "\201c" "\201a" "\2018"}:root:lang(is),:not(:lang(is))>:lang(is){quotes:"\201e" "\201c" "\201a" "\2018"}:root:lang(lb),:not(:lang(lb))>:lang(lb){quotes:"\201e" "\201c" "\201a" "\2018"}:root:lang(luy),:not(:lang(luy))>:lang(luy){quotes:"\201e" "\201c" "\201a" "\2018"}:root:lang(mk),:not(:lang(mk))>:lang(mk){quotes:"\201e" "\201c" "\201a" "\2018"}:root:lang(sk),:not(:lang(sk))>:lang(sk){quotes:"\201e" "\201c" "\201a" "\2018"}:root:lang(sl),:not(:lang(sl))>:lang(sl){quotes:"\201e" "\201c" "\201a" "\2018"}:root:lang(ka),:not(:lang(ka))>:lang(ka){quotes:"\201e" "\201c" "\ab" "\bb"}:root:lang(bs),:not(:lang(bs))>:lang(bs){quotes:"\201e" "\201d" "\2018" "\2019"}:root:lang(agq),:not(:lang(agq))>:lang(agq){quotes:"\201e" "\201d" "\201a" "\2019"}:root:lang(ff),:not(:lang(ff))>:lang(ff){quotes:"\201e" "\201d" "\201a" "\2019"}:root:lang(nmg),:not(:lang(nmg))>:lang(nmg){quotes:"\201e" "\201d" "\ab" "\bb"}:root:lang(ro),:not(:lang(ro))>:lang(ro){quotes:"\201e" "\201d" "\ab" "\bb"}:root:lang(pl),:not(:lang(pl))>:lang(pl){quotes:"\201e" "\201d" "\ab" "\bb"}:root:lang(hu),:not(:lang(hu))>:lang(hu){quotes:"\201e" "\201d" "\bb" "\ab"}:root:lang(nl),:not(:lang(nl))>:lang(nl){quotes:"\2018" "\2019" "\201c" "\201d"}:root:lang(ti-ER),:not(:lang(ti-ER))>:lang(ti-ER){quotes:"\2018" "\2019" "\201c" "\201d"}:root:lang(dua),:not(:lang(dua))>:lang(dua){quotes:"\ab" "\bb" "\2018" "\2019"}:root:lang(ksf),:not(:lang(ksf))>:lang(ksf){quotes:"\ab" "\bb" "\2018" "\2019"}:root:lang(rw),:not(:lang(rw))>:lang(rw){quotes:"\ab" "\bb" "\2018" "\2019"}:root:lang(nn),:not(:lang(nn))>:lang(nn){quotes:"\ab" "\bb" "\2018" "\2019"}:root:lang(nb),:not(:lang(nb))>:lang(nb){quotes:"\ab" "\bb" "\2018" "\2019"}:root:lang(ast),:not(:lang(ast))>:lang(ast){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(bm),:not(:lang(bm))>:lang(bm){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(br),:not(:lang(br))>:lang(br){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(ca),:not(:lang(ca))>:lang(ca){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(dyo),:not(:lang(dyo))>:lang(dyo){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(el),:not(:lang(el))>:lang(el){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(es),:not(:lang(es))>:lang(es){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(ewo),:not(:lang(ewo))>:lang(ewo){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(mg),:not(:lang(mg))>:lang(mg){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(mua),:not(:lang(mua))>:lang(mua){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(sg),:not(:lang(sg))>:lang(sg){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(it),:not(:lang(it))>:lang(it){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(kab),:not(:lang(kab))>:lang(kab){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(kk),:not(:lang(kk))>:lang(kk){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(pt-PT),:not(:lang(pt-PT))>:lang(pt-PT){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(nnh),:not(:lang(nnh))>:lang(nnh){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(sq),:not(:lang(sq))>:lang(sq){quotes:"\ab" "\bb" "\201c" "\201d"}:root:lang(bas),:not(:lang(bas))>:lang(bas){quotes:"\ab" "\bb" "\201e" "\201c"}:root:lang(be),:not(:lang(be))>:lang(be){quotes:"\ab" "\bb" "\201e" "\201c"}:root:lang(ky),:not(:lang(ky))>:lang(ky){quotes:"\ab" "\bb" "\201e" "\201c"}:root:lang(sah),:not(:lang(sah))>:lang(sah){quotes:"\ab" "\bb" "\201e" "\201c"}:root:lang(ru),:not(:lang(ru))>:lang(ru){quotes:"\ab" "\bb" "\201e" "\201c"}:root:lang(uk),:not(:lang(uk))>:lang(uk){quotes:"\ab" "\bb" "\201e" "\201c"}:root:lang(zgh),:not(:lang(zgh))>:lang(zgh){quotes:"\ab" "\bb" "\201e" "\201d"}:root:lang(shi),:not(:lang(shi))>:lang(shi){quotes:"\ab" "\bb" "\201e" "\201d"}:root:lang(shi-Latn),:not(:lang(shi-Latn))>:lang(shi-Latn){quotes:"\ab" "\bb" "\201e" "\201d"}:root:lang(am),:not(:lang(am))>:lang(am){quotes:"\ab" "\bb" "\2039" "\203a"}:root:lang(az-Cyrl),:not(:lang(az-Cyrl))>:lang(az-Cyrl){quotes:"\ab" "\bb" "\2039" "\203a"}:root:lang(fa),:not(:lang(fa))>:lang(fa){quotes:"\ab" "\bb" "\2039" "\203a"}:root:lang(fr-CH),:not(:lang(fr-CH))>:lang(fr-CH){quotes:"\ab" "\bb" "\2039" "\203a"}:root:lang(gsw),:not(:lang(gsw))>:lang(gsw){quotes:"\ab" "\bb" "\2039" "\203a"}:root:lang(jgo),:not(:lang(jgo))>:lang(jgo){quotes:"\ab" "\bb" "\2039" "\203a"}:root:lang(kkj),:not(:lang(kkj))>:lang(kkj){quotes:"\ab" "\bb" "\2039" "\203a"}:root:lang(mzn),:not(:lang(mzn))>:lang(mzn){quotes:"\ab" "\bb" "\2039" "\203a"}:root:lang(fr),:not(:lang(fr))>:lang(fr){quotes:"\ab" "\bb" "\ab" "\bb"}:root:lang(hy),:not(:lang(hy))>:lang(hy){quotes:"\ab" "\bb" "\ab" "\bb"}:root:lang(yav),:not(:lang(yav))>:lang(yav){quotes:"\ab" "\bb" "\ab" "\bb"}:root:lang(ja),:not(:lang(ja))>:lang(ja){quotes:"\300c" "\300d" "\300e" "\300f"}:root:lang(yue),:not(:lang(yue))>:lang(yue){quotes:"\300c" "\300d" "\300e" "\300f"}:root:lang(zh-Hant),:not(:lang(zh-Hant))>:lang(zh-Hant){quotes:"\300c" "\300d" "\300e" "\300f"}}@layer elements{audio,canvas,embed,iframe,img,object,picture,svg,video{display:block;vertical-align:middle;max-width:100%}img,svg,video,canvas{height:auto}audio{width:100%;max-width:var(--tera1)}audio:not([controls]){display:none}figcaption{font-style:italic;font-size:var(--text-sm)}figure{&:has(*+figcaption){figcaption{margin-top:var(--figcaption-spacing)}}&:has(figcaption+*){figcaption{margin-bottom:var(--figcaption-spacing)}}}iframe{border:var(--border-sm) solid var(--ui-border-color)}}@layer elements{caption{caption-side:bottom;margin-top:var(--table-caption-spacing);font-size:var(--text-sm)}table{border-spacing:0;border:var(--table-border-width) solid var(--table-border-color);border-radius:var(--table-border-radius);background-color:var(--table-background-color)}th,td{text-align:start;padding:var(--table-padding);border-bottom:var(--table-border-width) solid var(--table-border-color);border-inline-start:var(--table-border-width) solid var(--table-border-color)}tr{th:first-child,td:first-child{border-inline-start-width:0}}tbody{tr:last-child{th,td{border-bottom-width:0}}}tfoot{th,td{border-top:var(--table-border-width) solid var(--table-border-color);border-bottom-width:0}}}@layer elements{::placeholder{opacity:var(--o-4)}input,button,textarea,select{font:inherit;color:var(--text-color)}button{color:var(--text-color)}fieldset{border:var(--fieldset-border-width) solid var(--fieldset-border-color);border-radius:var(--fieldset-border-radius);padding:var(--fieldset-padding);ul:has([type=checkbox],[type=radio]){padding-inline-start:0}>[aria-hidden]{margin-bottom:var(--sm3);font-size:var(--text-lg);grid-column:1 / -1}}:is(input,select,textarea):user-invalid{border-color:var(--input-border-color-invalid)}input{&:where(:not([type=checkbox],[type=radio])){height:var(--input-height)}&:where(:not([type=color],[type=file],[type=reset],[type=submit])){padding:var(--input-padding)}&:where(:not([type=color])){border-radius:var(--input-border-radius)}&:where(:not([type=file])){border:var(--input-border-width) solid var(--input-border-color)}&[type=file]{width:100%;accent-color:var(--text-color)}&[type=number]{padding-inline-end:var(--xs1)}}label{display:block;&:has(+:is(input,select,textarea)){margin-bottom:var(--label-spacing)}}legend{position:absolute;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);width:1px;height:1px;white-space:nowrap}meter{width:100%;background:var(--meter-track-color);border-radius:var(--meter-border-radius);height:var(--meter-height);&::-webkit-meter-bar{background:var(--meter-track-color)}&::-webkit-meter-bar,&::-webkit-meter-optimum-value,&::-webkit-meter-suboptimum-value,&::-webkit-meter-even-less-good-value{height:var(--meter-height);border:none;border-radius:var(--meter-border-radius)}&::-webkit-meter-even-less-good-value{background:var(--meter-low-color)}&::-webkit-meter-suboptimum-value{background:var(--meter-medium-color)}&::-webkit-meter-optimum-value{background:var(--meter-high-color)}&:-moz-meter-sub-sub-optimum::-moz-meter-bar{background:var(--meter-low-color)}&:-moz-meter-sub-optimum::-moz-meter-bar{background:var(--meter-medium-color)}&:-moz-meter-optimum::-moz-meter-bar{background:var(--meter-high-color)}}progress{appearance:none;width:100%;height:var(--progress-height);background:var(--progress-track-color);border-radius:var(--progress-border-radius);border:none;&::-moz-progress-bar{background:var(--progress-color);border-radius:var(--progress-border-radius)}&::-webkit-progress-bar{width:100%;background:var(--progress-track-color);border-radius:var(--progress-border-radius);height:var(--progress-height)}&::-webkit-progress-value{background:var(--progress-color);border-radius:var(--progress-border-radius)}}select{--split: calc(100% - var(--select-icon-size));display:flex;appearance:none;height:var(--input-height);padding:var(--xs1) calc(var(--input-padding) + var(--md1)) var(--xs1) var(--input-padding);border:var(--input-border-width) solid var(--input-border-color);border-radius:var(--input-border-radius);background:linear-gradient(to right,var(--body-background-color) 0 var(--split),var(--text-color) var(--split) 100%);mask-image:var(--select-icon),linear-gradient(to right,transparent calc(var(--split) - 1px),red 0),linear-gradient(red 0 0);mask-size:var(--select-icon-size),auto,auto;mask-position:calc(100% - var(--xs1)) center,0 0,0 0;mask-repeat:no-repeat;mask-clip:padding-box,padding-box,border-box;mask-origin:padding-box,padding-box,border-box;mask-composite:add,exclude;&:disabled{--disabled-color: light-dark( hsl(from var(--text-color) h s 70%), hsl(from var(--text-color) h s 40%) );cursor:not-allowed;color:var(--disabled-color);background:linear-gradient(to right,var(--body-background-color) 0 var(--split),var(--disabled-color) var(--split) 100%)}&[multiple]{height:auto;padding:var(--input-padding);background:var(--body-background-color);mask-image:none}}textarea{width:100%;padding:var(--input-padding);border-radius:var(--input-border-radius);border:var(--input-border-width) solid var(--input-border-color);resize:vertical;&:not([rows]){min-height:6em}}}@layer elements{dialog{min-width:var(--dialog-min-width);max-width:var(--dialog-max-width);padding:var(--dialog-padding);border:var(--dialog-border-width) solid var(--dialog-border-color);background-color:var(--dialog-background-color);border-radius:var(--dialog-border-radius);&::backdrop{background:var(--dialog-backdrop-color);opacity:var(--dialog-backdrop-opacity)}[aria-label="close pop-up"]{position:absolute;top:var(--xs3);right:var( --xs3 );background:transparent;border:none;outline:none;cursor:pointer}p:last-of-type{margin-bottom:0}}details{padding:var(--details-padding);border:var(--details-border-width) solid var(--details-border-color);background-color:var(--details-background-color);border-radius:var(--details-border-radius);cursor:pointer;summary{display:flex;justify-content:space-between;font-weight:var(--bold);&::-webkit-details-marker{display:none}&:after{content:"";width:var(--details-icon-size);height:var(--details-icon-size);background-color:currentColor;mask-image:var(--details-icon);mask-size:contain;mask-repeat:no-repeat;transition:transform var(--transition)}}&[open]>summary{margin-bottom:var(--details-spacing);&:after{transform:rotate(180deg)}}p:last-of-type{margin-bottom:0}}}@layer global{:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.a11y-skipLink{position:fixed;z-index:var(--z-top);inset-block-start:-100vb;inset-inline-start:0;padding:.75em 1.25em;background-color:var(--body-background-color);color:var(--text-color)}.a11y-skipLink:focus{inset-block-start:0}.a11y-srOnly{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}}@layer global{@keyframes fadeFromOpaque{0%{opacity:1}}@keyframes fadeToOpaque{to{opacity:1}}@keyframes fadeFromTransparent{0%{opacity:0}}@keyframes fadeToTransparent{to{opacity:0}}}@layer global{.grid{display:grid;--grid-tc: repeat(4, 1fr);--grid-cs: 1;--grid-ce: -1;grid-template-columns:var(--grid-tc);grid-column-gap:var(--grid-column-gap);grid-row-gap:var(--grid-row-gap)}.grid-flush{grid-column-gap:0;grid-row-gap:0}.grid>.grid_item{display:block;appearance:none}.grid[col="1"]{--grid-tc: repeat(1, 1fr) }.grid[col="2"]{--grid-tc: repeat(2, 1fr) }.grid[col="3"]{--grid-tc: repeat(3, 1fr) }.grid[col="4"]{--grid-tc: repeat(4, 1fr) }.grid[col="5"]{--grid-tc: repeat(5, 1fr) }.grid[col="6"]{--grid-tc: repeat(6, 1fr) }.grid[col="7"]{--grid-tc: repeat(7, 1fr) }.grid[col="8"]{--grid-tc: repeat(8, 1fr) }.grid[col="9"]{--grid-tc: repeat(9, 1fr) }.grid[col="10"]{--grid-tc: repeat(10, 1fr) }.grid[col="11"]{--grid-tc: repeat(11, 1fr) }.grid[col="12"]{--grid-tc: repeat(12, 1fr) }.grid[col="13"]{--grid-tc: repeat(13, 1fr) }.grid[col="14"]{--grid-tc: repeat(14, 1fr) }.grid[col="15"]{--grid-tc: repeat(15, 1fr) }.grid[col="16"]{--grid-tc: repeat(16, 1fr) }.grid[col="17"]{--grid-tc: repeat(17, 1fr) }.grid[col="18"]{--grid-tc: repeat(18, 1fr) }.grid[col="19"]{--grid-tc: repeat(19, 1fr) }.grid[col="20"]{--grid-tc: repeat(20, 1fr) }.grid[col="21"]{--grid-tc: repeat(21, 1fr) }.grid[col="22"]{--grid-tc: repeat(22, 1fr) }.grid[col="23"]{--grid-tc: repeat(23, 1fr) }.grid[col="24"]{--grid-tc: repeat(24, 1fr) }.grid>.grid_item[span^="1"]{--grid-cs: 1 }.grid>.grid_item[span^="2"]{--grid-cs: 2 }.grid>.grid_item[span^="3"]{--grid-cs: 3 }.grid>.grid_item[span^="4"]{--grid-cs: 4 }.grid>.grid_item[span^="5"]{--grid-cs: 5 }.grid>.grid_item[span^="6"]{--grid-cs: 6 }.grid>.grid_item[span^="7"]{--grid-cs: 7 }.grid>.grid_item[span^="8"]{--grid-cs: 8 }.grid>.grid_item[span^="9"]{--grid-cs: 9 }.grid>.grid_item[span^="10"]{--grid-cs: 10 }.grid>.grid_item[span^="11"]{--grid-cs: 11 }.grid>.grid_item[span^="12"]{--grid-cs: 12 }.grid>.grid_item[span^="13"]{--grid-cs: 13 }.grid>.grid_item[span^="14"]{--grid-cs: 14 }.grid>.grid_item[span^="15"]{--grid-cs: 15 }.grid>.grid_item[span^="16"]{--grid-cs: 16 }.grid>.grid_item[span^="17"]{--grid-cs: 17 }.grid>.grid_item[span^="18"]{--grid-cs: 18 }.grid>.grid_item[span^="19"]{--grid-cs: 19 }.grid>.grid_item[span^="20"]{--grid-cs: 20 }.grid>.grid_item[span^="21"]{--grid-cs: 21 }.grid>.grid_item[span^="22"]{--grid-cs: 22 }.grid>.grid_item[span^="23"]{--grid-cs: 23 }.grid>.grid_item[span^="24"]{--grid-cs: 24 }.grid>.grid_item[span$="+1"],.grid>.grid_item[span="1"]{--grid-ce: 1 }.grid>.grid_item[span$="+2"],.grid>.grid_item[span$="-1"],.grid>.grid_item[span="2"]{--grid-ce: 2 }.grid>.grid_item[span$="+3"],.grid>.grid_item[span$="-2"],.grid>.grid_item[span="3"]{--grid-ce: 3 }.grid>.grid_item[span$="+4"],.grid>.grid_item[span$="-3"],.grid>.grid_item[span="4"]{--grid-ce: 4 }.grid>.grid_item[span$="+5"],.grid>.grid_item[span$="-4"],.grid>.grid_item[span="5"]{--grid-ce: 5 }.grid>.grid_item[span$="+6"],.grid>.grid_item[span$="-5"],.grid>.grid_item[span="6"]{--grid-ce: 6 }.grid>.grid_item[span$="+7"],.grid>.grid_item[span$="-6"],.grid>.grid_item[span="7"]{--grid-ce: 7 }.grid>.grid_item[span$="+8"],.grid>.grid_item[span$="-7"],.grid>.grid_item[span="8"]{--grid-ce: 8 }.grid>.grid_item[span$="+9"],.grid>.grid_item[span$="-8"],.grid>.grid_item[span="9"]{--grid-ce: 9 }.grid>.grid_item[span$="+10"],.grid>.grid_item[span$="-9"],.grid>.grid_item[span="10"]{--grid-ce: 10 }.grid>.grid_item[span$="+11"],.grid>.grid_item[span$="-10"],.grid>.grid_item[span="11"]{--grid-ce: 11 }.grid>.grid_item[span$="+12"],.grid>.grid_item[span$="-11"],.grid>.grid_item[span="12"]{--grid-ce: 12 }.grid>.grid_item[span$="+13"],.grid>.grid_item[span$="-12"],.grid>.grid_item[span="13"]{--grid-ce: 13 }.grid>.grid_item[span$="+14"],.grid>.grid_item[span$="-13"],.grid>.grid_item[span="14"]{--grid-ce: 14 }.grid>.grid_item[span$="+15"],.grid>.grid_item[span$="-14"],.grid>.grid_item[span="15"]{--grid-ce: 15 }.grid>.grid_item[span$="+16"],.grid>.grid_item[span$="-15"],.grid>.grid_item[span="16"]{--grid-ce: 16 }.grid>.grid_item[span$="+17"],.grid>.grid_item[span$="-16"],.grid>.grid_item[span="17"]{--grid-ce: 17 }.grid>.grid_item[span$="+18"],.grid>.grid_item[span$="-17"],.grid>.grid_item[span="18"]{--grid-ce: 18 }.grid>.grid_item[span$="+19"],.grid>.grid_item[span$="-18"],.grid>.grid_item[span="19"]{--grid-ce: 19 }.grid>.grid_item[span$="+20"],.grid>.grid_item[span$="-19"],.grid>.grid_item[span="20"]{--grid-ce: 20 }.grid>.grid_item[span$="+21"],.grid>.grid_item[span$="-20"],.grid>.grid_item[span="21"]{--grid-ce: 21 }.grid>.grid_item[span$="+22"],.grid>.grid_item[span$="-21"],.grid>.grid_item[span="22"]{--grid-ce: 22 }.grid>.grid_item[span$="+23"],.grid>.grid_item[span$="-22"],.grid>.grid_item[span="23"]{--grid-ce: 23 }.grid>.grid_item[span$="+24"],.grid>.grid_item[span$="-23"],.grid>.grid_item[span="24"]{--grid-ce: 24 }.grid>.grid_item[span$="-24"]{--grid-ce: 25 }.grid>.grid_item[span]{grid-column-end:span var(--grid-ce)}.grid>.grid_item[span*="+"],.grid>.grid_item[span*="-"],.grid>.grid_item[span*=".."]{grid-column-start:var(--grid-cs)}.grid>.grid_item[span*="-"],.grid>.grid_item[span*=".."]{grid-column-end:var(--grid-ce)}.grid>.grid_item[span=row]{grid-column:1 / -1}@media only screen and (width>=768px){.grid[col-md="1"]{--grid-tc: repeat(1, 1fr) }.grid[col-md="2"]{--grid-tc: repeat(2, 1fr) }.grid[col-md="3"]{--grid-tc: repeat(3, 1fr) }.grid[col-md="4"]{--grid-tc: repeat(4, 1fr) }.grid[col-md="5"]{--grid-tc: repeat(5, 1fr) }.grid[col-md="6"]{--grid-tc: repeat(6, 1fr) }.grid[col-md="7"]{--grid-tc: repeat(7, 1fr) }.grid[col-md="8"]{--grid-tc: repeat(8, 1fr) }.grid[col-md="9"]{--grid-tc: repeat(9, 1fr) }.grid[col-md="10"]{--grid-tc: repeat(10, 1fr) }.grid[col-md="11"]{--grid-tc: repeat(11, 1fr) }.grid[col-md="12"]{--grid-tc: repeat(12, 1fr) }.grid[col-md="13"]{--grid-tc: repeat(13, 1fr) }.grid[col-md="14"]{--grid-tc: repeat(14, 1fr) }.grid[col-md="15"]{--grid-tc: repeat(15, 1fr) }.grid[col-md="16"]{--grid-tc: repeat(16, 1fr) }.grid[col-md="17"]{--grid-tc: repeat(17, 1fr) }.grid[col-md="18"]{--grid-tc: repeat(18, 1fr) }.grid[col-md="19"]{--grid-tc: repeat(19, 1fr) }.grid[col-md="20"]{--grid-tc: repeat(20, 1fr) }.grid[col-md="21"]{--grid-tc: repeat(21, 1fr) }.grid[col-md="22"]{--grid-tc: repeat(22, 1fr) }.grid[col-md="23"]{--grid-tc: repeat(23, 1fr) }.grid[col-md="24"]{--grid-tc: repeat(24, 1fr) }.grid>.grid_item[span-md^="1"]{--grid-cs: 1 }.grid>.grid_item[span-md^="2"]{--grid-cs: 2 }.grid>.grid_item[span-md^="3"]{--grid-cs: 3 }.grid>.grid_item[span-md^="4"]{--grid-cs: 4 }.grid>.grid_item[span-md^="5"]{--grid-cs: 5 }.grid>.grid_item[span-md^="6"]{--grid-cs: 6 }.grid>.grid_item[span-md^="7"]{--grid-cs: 7 }.grid>.grid_item[span-md^="8"]{--grid-cs: 8 }.grid>.grid_item[span-md^="9"]{--grid-cs: 9 }.grid>.grid_item[span-md^="10"]{--grid-cs: 10 }.grid>.grid_item[span-md^="11"]{--grid-cs: 11 }.grid>.grid_item[span-md^="12"]{--grid-cs: 12 }.grid>.grid_item[span-md^="13"]{--grid-cs: 13 }.grid>.grid_item[span-md^="14"]{--grid-cs: 14 }.grid>.grid_item[span-md^="15"]{--grid-cs: 15 }.grid>.grid_item[span-md^="16"]{--grid-cs: 16 }.grid>.grid_item[span-md^="17"]{--grid-cs: 17 }.grid>.grid_item[span-md^="18"]{--grid-cs: 18 }.grid>.grid_item[span-md^="19"]{--grid-cs: 19 }.grid>.grid_item[span-md^="20"]{--grid-cs: 20 }.grid>.grid_item[span-md^="21"]{--grid-cs: 21 }.grid>.grid_item[span-md^="22"]{--grid-cs: 22 }.grid>.grid_item[span-md^="23"]{--grid-cs: 23 }.grid>.grid_item[span-md^="24"]{--grid-cs: 24 }.grid>.grid_item[span-md$="+1"],.grid>.grid_item[span-md="1"]{--grid-ce: 1 }.grid>.grid_item[span-md$="+2"],.grid>.grid_item[span-md$="-1"],.grid>.grid_item[span-md="2"]{--grid-ce: 2 }.grid>.grid_item[span-md$="+3"],.grid>.grid_item[span-md$="-2"],.grid>.grid_item[span-md="3"]{--grid-ce: 3 }.grid>.grid_item[span-md$="+4"],.grid>.grid_item[span-md$="-3"],.grid>.grid_item[span-md="4"]{--grid-ce: 4 }.grid>.grid_item[span-md$="+5"],.grid>.grid_item[span-md$="-4"],.grid>.grid_item[span-md="5"]{--grid-ce: 5 }.grid>.grid_item[span-md$="+6"],.grid>.grid_item[span-md$="-5"],.grid>.grid_item[span-md="6"]{--grid-ce: 6 }.grid>.grid_item[span-md$="+7"],.grid>.grid_item[span-md$="-6"],.grid>.grid_item[span-md="7"]{--grid-ce: 7 }.grid>.grid_item[span-md$="+8"],.grid>.grid_item[span-md$="-7"],.grid>.grid_item[span-md="8"]{--grid-ce: 8 }.grid>.grid_item[span-md$="+9"],.grid>.grid_item[span-md$="-8"],.grid>.grid_item[span-md="9"]{--grid-ce: 9 }.grid>.grid_item[span-md$="+10"],.grid>.grid_item[span-md$="-9"],.grid>.grid_item[span-md="10"]{--grid-ce: 10 }.grid>.grid_item[span-md$="+11"],.grid>.grid_item[span-md$="-10"],.grid>.grid_item[span-md="11"]{--grid-ce: 11 }.grid>.grid_item[span-md$="+12"],.grid>.grid_item[span-md$="-11"],.grid>.grid_item[span-md="12"]{--grid-ce: 12 }.grid>.grid_item[span-md$="+13"],.grid>.grid_item[span-md$="-12"],.grid>.grid_item[span-md="13"]{--grid-ce: 13 }.grid>.grid_item[span-md$="+14"],.grid>.grid_item[span-md$="-13"],.grid>.grid_item[span-md="14"]{--grid-ce: 14 }.grid>.grid_item[span-md$="+15"],.grid>.grid_item[span-md$="-14"],.grid>.grid_item[span-md="15"]{--grid-ce: 15 }.grid>.grid_item[span-md$="+16"],.grid>.grid_item[span-md$="-15"],.grid>.grid_item[span-md="16"]{--grid-ce: 16 }.grid>.grid_item[span-md$="+17"],.grid>.grid_item[span-md$="-16"],.grid>.grid_item[span-md="17"]{--grid-ce: 17 }.grid>.grid_item[span-md$="+18"],.grid>.grid_item[span-md$="-17"],.grid>.grid_item[span-md="18"]{--grid-ce: 18 }.grid>.grid_item[span-md$="+19"],.grid>.grid_item[span-md$="-18"],.grid>.grid_item[span-md="19"]{--grid-ce: 19 }.grid>.grid_item[span-md$="+20"],.grid>.grid_item[span-md$="-19"],.grid>.grid_item[span-md="20"]{--grid-ce: 20 }.grid>.grid_item[span-md$="+21"],.grid>.grid_item[span-md$="-20"],.grid>.grid_item[span-md="21"]{--grid-ce: 21 }.grid>.grid_item[span-md$="+22"],.grid>.grid_item[span-md$="-21"],.grid>.grid_item[span-md="22"]{--grid-ce: 22 }.grid>.grid_item[span-md$="+23"],.grid>.grid_item[span-md$="-22"],.grid>.grid_item[span-md="23"]{--grid-ce: 23 }.grid>.grid_item[span-md$="+24"],.grid>.grid_item[span-md$="-23"],.grid>.grid_item[span-md="24"]{--grid-ce: 24 }.grid>.grid_item[span-md$="-24"]{--grid-ce: 25 }.grid>.grid_item[span-md]{grid-column-end:span var(--grid-ce)}.grid>.grid_item[span-md*="+"],.grid>.grid_item[span-md*="-"],.grid>.grid_item[span-md*=".."]{grid-column-start:var(--grid-cs)}.grid>.grid_item[span-md*="-"],.grid>.grid_item[span-md*=".."]{grid-column-end:var(--grid-ce)}.grid>.grid_item[span-md=row]{grid-column:1 / -1}}@media only screen and (width>=1024px){.grid[col-lg="1"]{--grid-tc: repeat(1, 1fr) }.grid[col-lg="2"]{--grid-tc: repeat(2, 1fr) }.grid[col-lg="3"]{--grid-tc: repeat(3, 1fr) }.grid[col-lg="4"]{--grid-tc: repeat(4, 1fr) }.grid[col-lg="5"]{--grid-tc: repeat(5, 1fr) }.grid[col-lg="6"]{--grid-tc: repeat(6, 1fr) }.grid[col-lg="7"]{--grid-tc: repeat(7, 1fr) }.grid[col-lg="8"]{--grid-tc: repeat(8, 1fr) }.grid[col-lg="9"]{--grid-tc: repeat(9, 1fr) }.grid[col-lg="10"]{--grid-tc: repeat(10, 1fr) }.grid[col-lg="11"]{--grid-tc: repeat(11, 1fr) }.grid[col-lg="12"]{--grid-tc: repeat(12, 1fr) }.grid[col-lg="13"]{--grid-tc: repeat(13, 1fr) }.grid[col-lg="14"]{--grid-tc: repeat(14, 1fr) }.grid[col-lg="15"]{--grid-tc: repeat(15, 1fr) }.grid[col-lg="16"]{--grid-tc: repeat(16, 1fr) }.grid[col-lg="17"]{--grid-tc: repeat(17, 1fr) }.grid[col-lg="18"]{--grid-tc: repeat(18, 1fr) }.grid[col-lg="19"]{--grid-tc: repeat(19, 1fr) }.grid[col-lg="20"]{--grid-tc: repeat(20, 1fr) }.grid[col-lg="21"]{--grid-tc: repeat(21, 1fr) }.grid[col-lg="22"]{--grid-tc: repeat(22, 1fr) }.grid[col-lg="23"]{--grid-tc: repeat(23, 1fr) }.grid[col-lg="24"]{--grid-tc: repeat(24, 1fr) }.grid>.grid_item[span-lg^="1"]{--grid-cs: 1 }.grid>.grid_item[span-lg^="2"]{--grid-cs: 2 }.grid>.grid_item[span-lg^="3"]{--grid-cs: 3 }.grid>.grid_item[span-lg^="4"]{--grid-cs: 4 }.grid>.grid_item[span-lg^="5"]{--grid-cs: 5 }.grid>.grid_item[span-lg^="6"]{--grid-cs: 6 }.grid>.grid_item[span-lg^="7"]{--grid-cs: 7 }.grid>.grid_item[span-lg^="8"]{--grid-cs: 8 }.grid>.grid_item[span-lg^="9"]{--grid-cs: 9 }.grid>.grid_item[span-lg^="10"]{--grid-cs: 10 }.grid>.grid_item[span-lg^="11"]{--grid-cs: 11 }.grid>.grid_item[span-lg^="12"]{--grid-cs: 12 }.grid>.grid_item[span-lg^="13"]{--grid-cs: 13 }.grid>.grid_item[span-lg^="14"]{--grid-cs: 14 }.grid>.grid_item[span-lg^="15"]{--grid-cs: 15 }.grid>.grid_item[span-lg^="16"]{--grid-cs: 16 }.grid>.grid_item[span-lg^="17"]{--grid-cs: 17 }.grid>.grid_item[span-lg^="18"]{--grid-cs: 18 }.grid>.grid_item[span-lg^="19"]{--grid-cs: 19 }.grid>.grid_item[span-lg^="20"]{--grid-cs: 20 }.grid>.grid_item[span-lg^="21"]{--grid-cs: 21 }.grid>.grid_item[span-lg^="22"]{--grid-cs: 22 }.grid>.grid_item[span-lg^="23"]{--grid-cs: 23 }.grid>.grid_item[span-lg^="24"]{--grid-cs: 24 }.grid>.grid_item[span-lg$="+1"],.grid>.grid_item[span-lg="1"]{--grid-ce: 1 }.grid>.grid_item[span-lg$="+2"],.grid>.grid_item[span-lg$="-1"],.grid>.grid_item[span-lg="2"]{--grid-ce: 2 }.grid>.grid_item[span-lg$="+3"],.grid>.grid_item[span-lg$="-2"],.grid>.grid_item[span-lg="3"]{--grid-ce: 3 }.grid>.grid_item[span-lg$="+4"],.grid>.grid_item[span-lg$="-3"],.grid>.grid_item[span-lg="4"]{--grid-ce: 4 }.grid>.grid_item[span-lg$="+5"],.grid>.grid_item[span-lg$="-4"],.grid>.grid_item[span-lg="5"]{--grid-ce: 5 }.grid>.grid_item[span-lg$="+6"],.grid>.grid_item[span-lg$="-5"],.grid>.grid_item[span-lg="6"]{--grid-ce: 6 }.grid>.grid_item[span-lg$="+7"],.grid>.grid_item[span-lg$="-6"],.grid>.grid_item[span-lg="7"]{--grid-ce: 7 }.grid>.grid_item[span-lg$="+8"],.grid>.grid_item[span-lg$="-7"],.grid>.grid_item[span-lg="8"]{--grid-ce: 8 }.grid>.grid_item[span-lg$="+9"],.grid>.grid_item[span-lg$="-8"],.grid>.grid_item[span-lg="9"]{--grid-ce: 9 }.grid>.grid_item[span-lg$="+10"],.grid>.grid_item[span-lg$="-9"],.grid>.grid_item[span-lg="10"]{--grid-ce: 10 }.grid>.grid_item[span-lg$="+11"],.grid>.grid_item[span-lg$="-10"],.grid>.grid_item[span-lg="11"]{--grid-ce: 11 }.grid>.grid_item[span-lg$="+12"],.grid>.grid_item[span-lg$="-11"],.grid>.grid_item[span-lg="12"]{--grid-ce: 12 }.grid>.grid_item[span-lg$="+13"],.grid>.grid_item[span-lg$="-12"],.grid>.grid_item[span-lg="13"]{--grid-ce: 13 }.grid>.grid_item[span-lg$="+14"],.grid>.grid_item[span-lg$="-13"],.grid>.grid_item[span-lg="14"]{--grid-ce: 14 }.grid>.grid_item[span-lg$="+15"],.grid>.grid_item[span-lg$="-14"],.grid>.grid_item[span-lg="15"]{--grid-ce: 15 }.grid>.grid_item[span-lg$="+16"],.grid>.grid_item[span-lg$="-15"],.grid>.grid_item[span-lg="16"]{--grid-ce: 16 }.grid>.grid_item[span-lg$="+17"],.grid>.grid_item[span-lg$="-16"],.grid>.grid_item[span-lg="17"]{--grid-ce: 17 }.grid>.grid_item[span-lg$="+18"],.grid>.grid_item[span-lg$="-17"],.grid>.grid_item[span-lg="18"]{--grid-ce: 18 }.grid>.grid_item[span-lg$="+19"],.grid>.grid_item[span-lg$="-18"],.grid>.grid_item[span-lg="19"]{--grid-ce: 19 }.grid>.grid_item[span-lg$="+20"],.grid>.grid_item[span-lg$="-19"],.grid>.grid_item[span-lg="20"]{--grid-ce: 20 }.grid>.grid_item[span-lg$="+21"],.grid>.grid_item[span-lg$="-20"],.grid>.grid_item[span-lg="21"]{--grid-ce: 21 }.grid>.grid_item[span-lg$="+22"],.grid>.grid_item[span-lg$="-21"],.grid>.grid_item[span-lg="22"]{--grid-ce: 22 }.grid>.grid_item[span-lg$="+23"],.grid>.grid_item[span-lg$="-22"],.grid>.grid_item[span-lg="23"]{--grid-ce: 23 }.grid>.grid_item[span-lg$="+24"],.grid>.grid_item[span-lg$="-23"],.grid>.grid_item[span-lg="24"]{--grid-ce: 24 }.grid>.grid_item[span-lg$="-24"]{--grid-ce: 25 }.grid>.grid_item[span-lg]{grid-column-end:span var(--grid-ce)}.grid>.grid_item[span-lg*="+"],.grid>.grid_item[span-lg*="-"],.grid>.grid_item[span-lg*=".."]{grid-column-start:var(--grid-cs)}.grid>.grid_item[span-lg*="-"],.grid>.grid_item[span-lg*=".."]{grid-column-end:var(--grid-ce)}.grid>.grid_item[span-lg=row]{grid-column:1 / -1}}@media only screen and (width>=1440px){.grid[col-xl="1"]{--grid-tc: repeat(1, 1fr) }.grid[col-xl="2"]{--grid-tc: repeat(2, 1fr) }.grid[col-xl="3"]{--grid-tc: repeat(3, 1fr) }.grid[col-xl="4"]{--grid-tc: repeat(4, 1fr) }.grid[col-xl="5"]{--grid-tc: repeat(5, 1fr) }.grid[col-xl="6"]{--grid-tc: repeat(6, 1fr) }.grid[col-xl="7"]{--grid-tc: repeat(7, 1fr) }.grid[col-xl="8"]{--grid-tc: repeat(8, 1fr) }.grid[col-xl="9"]{--grid-tc: repeat(9, 1fr) }.grid[col-xl="10"]{--grid-tc: repeat(10, 1fr) }.grid[col-xl="11"]{--grid-tc: repeat(11, 1fr) }.grid[col-xl="12"]{--grid-tc: repeat(12, 1fr) }.grid[col-xl="13"]{--grid-tc: repeat(13, 1fr) }.grid[col-xl="14"]{--grid-tc: repeat(14, 1fr) }.grid[col-xl="15"]{--grid-tc: repeat(15, 1fr) }.grid[col-xl="16"]{--grid-tc: repeat(16, 1fr) }.grid[col-xl="17"]{--grid-tc: repeat(17, 1fr) }.grid[col-xl="18"]{--grid-tc: repeat(18, 1fr) }.grid[col-xl="19"]{--grid-tc: repeat(19, 1fr) }.grid[col-xl="20"]{--grid-tc: repeat(20, 1fr) }.grid[col-xl="21"]{--grid-tc: repeat(21, 1fr) }.grid[col-xl="22"]{--grid-tc: repeat(22, 1fr) }.grid[col-xl="23"]{--grid-tc: repeat(23, 1fr) }.grid[col-xl="24"]{--grid-tc: repeat(24, 1fr) }.grid>.grid_item[span-xl^="1"]{--grid-cs: 1 }.grid>.grid_item[span-xl^="2"]{--grid-cs: 2 }.grid>.grid_item[span-xl^="3"]{--grid-cs: 3 }.grid>.grid_item[span-xl^="4"]{--grid-cs: 4 }.grid>.grid_item[span-xl^="5"]{--grid-cs: 5 }.grid>.grid_item[span-xl^="6"]{--grid-cs: 6 }.grid>.grid_item[span-xl^="7"]{--grid-cs: 7 }.grid>.grid_item[span-xl^="8"]{--grid-cs: 8 }.grid>.grid_item[span-xl^="9"]{--grid-cs: 9 }.grid>.grid_item[span-xl^="10"]{--grid-cs: 10 }.grid>.grid_item[span-xl^="11"]{--grid-cs: 11 }.grid>.grid_item[span-xl^="12"]{--grid-cs: 12 }.grid>.grid_item[span-xl^="13"]{--grid-cs: 13 }.grid>.grid_item[span-xl^="14"]{--grid-cs: 14 }.grid>.grid_item[span-xl^="15"]{--grid-cs: 15 }.grid>.grid_item[span-xl^="16"]{--grid-cs: 16 }.grid>.grid_item[span-xl^="17"]{--grid-cs: 17 }.grid>.grid_item[span-xl^="18"]{--grid-cs: 18 }.grid>.grid_item[span-xl^="19"]{--grid-cs: 19 }.grid>.grid_item[span-xl^="20"]{--grid-cs: 20 }.grid>.grid_item[span-xl^="21"]{--grid-cs: 21 }.grid>.grid_item[span-xl^="22"]{--grid-cs: 22 }.grid>.grid_item[span-xl^="23"]{--grid-cs: 23 }.grid>.grid_item[span-xl^="24"]{--grid-cs: 24 }.grid>.grid_item[span-xl$="+1"],.grid>.grid_item[span-xl="1"]{--grid-ce: 1 }.grid>.grid_item[span-xl$="+2"],.grid>.grid_item[span-xl$="-1"],.grid>.grid_item[span-xl="2"]{--grid-ce: 2 }.grid>.grid_item[span-xl$="+3"],.grid>.grid_item[span-xl$="-2"],.grid>.grid_item[span-xl="3"]{--grid-ce: 3 }.grid>.grid_item[span-xl$="+4"],.grid>.grid_item[span-xl$="-3"],.grid>.grid_item[span-xl="4"]{--grid-ce: 4 }.grid>.grid_item[span-xl$="+5"],.grid>.grid_item[span-xl$="-4"],.grid>.grid_item[span-xl="5"]{--grid-ce: 5 }.grid>.grid_item[span-xl$="+6"],.grid>.grid_item[span-xl$="-5"],.grid>.grid_item[span-xl="6"]{--grid-ce: 6 }.grid>.grid_item[span-xl$="+7"],.grid>.grid_item[span-xl$="-6"],.grid>.grid_item[span-xl="7"]{--grid-ce: 7 }.grid>.grid_item[span-xl$="+8"],.grid>.grid_item[span-xl$="-7"],.grid>.grid_item[span-xl="8"]{--grid-ce: 8 }.grid>.grid_item[span-xl$="+9"],.grid>.grid_item[span-xl$="-8"],.grid>.grid_item[span-xl="9"]{--grid-ce: 9 }.grid>.grid_item[span-xl$="+10"],.grid>.grid_item[span-xl$="-9"],.grid>.grid_item[span-xl="10"]{--grid-ce: 10 }.grid>.grid_item[span-xl$="+11"],.grid>.grid_item[span-xl$="-10"],.grid>.grid_item[span-xl="11"]{--grid-ce: 11 }.grid>.grid_item[span-xl$="+12"],.grid>.grid_item[span-xl$="-11"],.grid>.grid_item[span-xl="12"]{--grid-ce: 12 }.grid>.grid_item[span-xl$="+13"],.grid>.grid_item[span-xl$="-12"],.grid>.grid_item[span-xl="13"]{--grid-ce: 13 }.grid>.grid_item[span-xl$="+14"],.grid>.grid_item[span-xl$="-13"],.grid>.grid_item[span-xl="14"]{--grid-ce: 14 }.grid>.grid_item[span-xl$="+15"],.grid>.grid_item[span-xl$="-14"],.grid>.grid_item[span-xl="15"]{--grid-ce: 15 }.grid>.grid_item[span-xl$="+16"],.grid>.grid_item[span-xl$="-15"],.grid>.grid_item[span-xl="16"]{--grid-ce: 16 }.grid>.grid_item[span-xl$="+17"],.grid>.grid_item[span-xl$="-16"],.grid>.grid_item[span-xl="17"]{--grid-ce: 17 }.grid>.grid_item[span-xl$="+18"],.grid>.grid_item[span-xl$="-17"],.grid>.grid_item[span-xl="18"]{--grid-ce: 18 }.grid>.grid_item[span-xl$="+19"],.grid>.grid_item[span-xl$="-18"],.grid>.grid_item[span-xl="19"]{--grid-ce: 19 }.grid>.grid_item[span-xl$="+20"],.grid>.grid_item[span-xl$="-19"],.grid>.grid_item[span-xl="20"]{--grid-ce: 20 }.grid>.grid_item[span-xl$="+21"],.grid>.grid_item[span-xl$="-20"],.grid>.grid_item[span-xl="21"]{--grid-ce: 21 }.grid>.grid_item[span-xl$="+22"],.grid>.grid_item[span-xl$="-21"],.grid>.grid_item[span-xl="22"]{--grid-ce: 22 }.grid>.grid_item[span-xl$="+23"],.grid>.grid_item[span-xl$="-22"],.grid>.grid_item[span-xl="23"]{--grid-ce: 23 }.grid>.grid_item[span-xl$="+24"],.grid>.grid_item[span-xl$="-23"],.grid>.grid_item[span-xl="24"]{--grid-ce: 24 }.grid>.grid_item[span-xl$="-24"]{--grid-ce: 25 }.grid>.grid_item[span-xl]{grid-column-end:span var(--grid-ce)}.grid>.grid_item[span-xl*="+"],.grid>.grid_item[span-xl*="-"],.grid>.grid_item[span-xl*=".."]{grid-column-start:var(--grid-cs)}.grid>.grid_item[span-xl*="-"],.grid>.grid_item[span-xl*=".."]{grid-column-end:var(--grid-ce)}.grid>.grid_item[span-xl=row]{grid-column:1 / -1}}}@layer global{.layout{display:flex;flex-direction:column;width:100vw;min-height:100vh;.layout_content{flex:1}}.layout_content_main{container:main / inline-size}.layout-centered{.layout_content{display:grid;gap:var(--sm3);grid-template-columns:1fr minmax(0,var(--layout-content-width)) 1fr;margin-top:var(--lg1);margin-bottom:var(--sm1);@media(width>=768px){margin-top:var(--xl3);margin-bottom:var(--md3);gap:var(--md3)}}.layout_content_main{grid-column:2}}.layout-sidebar{.layout_content{@media(width>=768px){display:grid;grid-template-columns:var(--layout-aside-width) minmax(0,1fr)}}.layout_content_main{padding:var(--sm2);@media(width>=768px){grid-row:1;grid-column:2;padding:var(--lg1) var(--md2)}}.layout_content_aside{@media(width>=768px){grid-row:1;grid-column:1;padding:var(--lg1) var(--md3)}}}.layout-sidebar-end{.layout_content{@media(width>=768px){grid-template-columns:minmax(0,1fr) var(--layout-aside-width)}}.layout_content_main{@media(width>=768px){grid-column:1}}.layout_content_aside{@media(width>=768px){grid-column:2}}}.layout-docs{.layout_content{@media(width>=768px){display:grid;grid-template-columns:var(--layout-aside-width) minmax(0,1fr)}@media(width>=1024px){grid-template-columns:var(--layout-aside-width) minmax(0,var(--layout-content-width)) var(--layout-toc-width)}}.layout_content_main{padding:var(--sm2);@media(width>=768px){grid-row:1;grid-column:2;padding:var(--lg1) var(--md2)}}.layout_content_aside{display:none;@media(width>=768px){display:block;grid-row:1;grid-column:1;padding:var(--lg1) var(--md3)}}.layout_content_aside-toc{@media(width>=768px){display:none}@media(width>=1024px){display:block;grid-row:1;grid-column:3;padding:var(--lg1) var(--md3)}}}.layout-split{.layout_content{display:grid;@media(width>=768px){grid-template-columns:1fr 1fr}}}.layout-cover{min-height:100dvh;.layout_content{display:grid;place-items:center}}}@layer global{@scope(.prose)to (.not-prose){:is(p,ul,ol,blockquote,table):has(+:is(h1,h2,h3,h4)){margin-bottom:calc(var(--prose-spacing) * 2)}p,ul,ol,dl{margin-bottom:var(--prose-spacing);p,ul,ol,dl{margin-bottom:0}}ul,ol{ul,ol{margin-inline-start:0;padding-inline-start:var(--sm2)}li{margin-bottom:.5em;&::marker{color:light-dark(var(--base-300),var(--base-600))}}}ul{margin-inline-start:var(--sm2);list-style-type:"\2192 "}ol{margin-inline-start:var(--md2);list-style-type:decimal-leading-zero;li::marker{font-size:var(--text-sm)}}table{margin-top:var(--md1);margin-bottom:var(--md1)}}}@layer global{.wrap{display:grid;grid-template-columns:1fr var(--wrap-width) 1fr;>*,>astro-island>*,>astro-slot>*,>astro-static-slot>*{grid-column:2;padding-inline:var(--wrap-spacing);@media(width>=768px){padding-inline:var(--wrap-md-spacing)}@media(width>=1024px){padding-inline:var(--wrap-lg-spacing)}}}.wrap-sm{--wrap-width: var(--wrap-width-sm)}.wrap-md{--wrap-width: var(--wrap-width-md)}.wrap-lg{--wrap-width: var(--wrap-width-lg)}.wrap_content-fullBleed{grid-column:1 / -1;width:100%;object-fit:cover}}@layer helpers{.c-base-0{color:var(--base-0)!important}.bdc-base-0{border-color:var(--base-0)!important}.bgc-base-0{background-color:var(--base-0)!important}.c-base-50{color:var(--base-50)!important}.bdc-base-50{border-color:var(--base-50)!important}.bgc-base-50{background-color:var(--base-50)!important}.c-base-100{color:var(--base-100)!important}.bdc-base-100{border-color:var(--base-100)!important}.bgc-base-100{background-color:var(--base-100)!important}.c-base-200{color:var(--base-200)!important}.bdc-base-200{border-color:var(--base-200)!important}.bgc-base-200{background-color:var(--base-200)!important}.c-base-300{color:var(--base-300)!important}.bdc-base-300{border-color:var(--base-300)!important}.bgc-base-300{background-color:var(--base-300)!important}.c-base-400{color:var(--base-400)!important}.bdc-base-400{border-color:var(--base-400)!important}.bgc-base-400{background-color:var(--base-400)!important}.c-base-500{color:var(--base-500)!important}.bdc-base-500{border-color:var(--base-500)!important}.bgc-base-500{background-color:var(--base-500)!important}.c-base-600{color:var(--base-600)!important}.bdc-base-600{border-color:var(--base-600)!important}.bgc-base-600{background-color:var(--base-600)!important}.c-base-700{color:var(--base-700)!important}.bdc-base-700{border-color:var(--base-700)!important}.bgc-base-700{background-color:var(--base-700)!important}.c-base-800{color:var(--base-800)!important}.bdc-base-800{border-color:var(--base-800)!important}.bgc-base-800{background-color:var(--base-800)!important}.c-base-900{color:var(--base-900)!important}.bdc-base-900{border-color:var(--base-900)!important}.bgc-base-900{background-color:var(--base-900)!important}.c-base-950{color:var(--base-950)!important}.bdc-base-950{border-color:var(--base-950)!important}.bgc-base-950{background-color:var(--base-950)!important}.c-primary-50{color:var(--primary-50)!important}.bdc-primary-50{border-color:var(--primary-50)!important}.bgc-primary-50{background-color:var(--primary-50)!important}.c-primary-100{color:var(--primary-100)!important}.bdc-primary-100{border-color:var(--primary-100)!important}.bgc-primary-100{background-color:var(--primary-100)!important}.c-primary-200{color:var(--primary-200)!important}.bdc-primary-200{border-color:var(--primary-200)!important}.bgc-primary-200{background-color:var(--primary-200)!important}.c-primary-300{color:var(--primary-300)!important}.bdc-primary-300{border-color:var(--primary-300)!important}.bgc-primary-300{background-color:var(--primary-300)!important}.c-primary-400{color:var(--primary-400)!important}.bdc-primary-400{border-color:var(--primary-400)!important}.bgc-primary-400{background-color:var(--primary-400)!important}.c-primary-500{color:var(--primary-500)!important}.bdc-primary-500{border-color:var(--primary-500)!important}.bgc-primary-500{background-color:var(--primary-500)!important}.c-primary-600{color:var(--primary-600)!important}.bdc-primary-600{border-color:var(--primary-600)!important}.bgc-primary-600{background-color:var(--primary-600)!important}.c-primary-700{color:var(--primary-700)!important}.bdc-primary-700{border-color:var(--primary-700)!important}.bgc-primary-700{background-color:var(--primary-700)!important}.c-primary-800{color:var(--primary-800)!important}.bdc-primary-800{border-color:var(--primary-800)!important}.bgc-primary-800{background-color:var(--primary-800)!important}.c-primary-900{color:var(--primary-900)!important}.bdc-primary-900{border-color:var(--primary-900)!important}.bgc-primary-900{background-color:var(--primary-900)!important}.c-primary-950{color:var(--primary-950)!important}.bdc-primary-950{border-color:var(--primary-950)!important}.bgc-primary-950{background-color:var(--primary-950)!important}.c-yes-100{color:var(--yes-100)!important}.bdc-yes-100{border-color:var(--yes-100)!important}.bgc-yes-100{background-color:var(--yes-100)!important}.c-yes-200{color:var(--yes-200)!important}.bdc-yes-200{border-color:var(--yes-200)!important}.bgc-yes-200{background-color:var(--yes-200)!important}.c-yes-300{color:var(--yes-300)!important}.bdc-yes-300{border-color:var(--yes-300)!important}.bgc-yes-300{background-color:var(--yes-300)!important}.c-yes-400{color:var(--yes-400)!important}.bdc-yes-400{border-color:var(--yes-400)!important}.bgc-yes-400{background-color:var(--yes-400)!important}.c-yes-500{color:var(--yes-500)!important}.bdc-yes-500{border-color:var(--yes-500)!important}.bgc-yes-500{background-color:var(--yes-500)!important}.c-no-100{color:var(--no-100)!important}.bdc-no-100{border-color:var(--no-100)!important}.bgc-no-100{background-color:var(--no-100)!important}.c-no-200{color:var(--no-200)!important}.bdc-no-200{border-color:var(--no-200)!important}.bgc-no-200{background-color:var(--no-200)!important}.c-no-300{color:var(--no-300)!important}.bdc-no-300{border-color:var(--no-300)!important}.bgc-no-300{background-color:var(--no-300)!important}.c-no-400{color:var(--no-400)!important}.bdc-no-400{border-color:var(--no-400)!important}.bgc-no-400{background-color:var(--no-400)!important}.c-no-500{color:var(--no-500)!important}.bdc-no-500{border-color:var(--no-500)!important}.bgc-no-500{background-color:var(--no-500)!important}.c-maybe-100{color:var(--maybe-100)!important}.bdc-maybe-100{border-color:var(--maybe-100)!important}.bgc-maybe-100{background-color:var(--maybe-100)!important}.c-maybe-200{color:var(--maybe-200)!important}.bdc-maybe-200{border-color:var(--maybe-200)!important}.bgc-maybe-200{background-color:var(--maybe-200)!important}.c-maybe-300{color:var(--maybe-300)!important}.bdc-maybe-300{border-color:var(--maybe-300)!important}.bgc-maybe-300{background-color:var(--maybe-300)!important}.c-maybe-400{color:var(--maybe-400)!important}.bdc-maybe-400{border-color:var(--maybe-400)!important}.bgc-maybe-400{background-color:var(--maybe-400)!important}.c-maybe-500{color:var(--maybe-500)!important}.bdc-maybe-500{border-color:var(--maybe-500)!important}.bgc-maybe-500{background-color:var(--maybe-500)!important}}@layer helpers{body.dev{--baseline: 8;background-size:100% calc(var(--baseline) * 1px)!important;background-image:linear-gradient(to bottom,#0000 calc((var(--baseline) - 1) * 1px),#ff69b4 calc(var(--baseline) * 1px))!important}.dev-error{position:fixed!important;top:var(--md1)!important;left:var(--md1)!important;z-index:var(--z-top)!important;padding:var(--sm1)!important;font-size:1rem!important;color:var(--no-500)!important;background:var(--no-100)!important;border:1px solid var(--no-500)!important;border-radius:var(--radius-md)!important}}@layer helpers{.of-auto,.overflow-auto{overflow:auto!important}.of-hidden,.overflow-hidden{overflow:hidden!important}.of-clip,.overflow-clip{overflow:clip!important}.of-visible,.overflow-visible{overflow:visible!important}.of-scroll,.overflow-scroll{overflow:scroll!important}.of-x-auto,.overflow-x-auto{overflow-x:auto!important}.of-y-auto,.overflow-y-auto{overflow-y:auto!important}.of-x-hidden,.overflow-x-hidden{overflow-x:hidden!important}.of-y-hidden,.overflow-y-hidden{overflow-y:hidden!important}.of-x-clip,.overflow-x-clip{overflow-x:clip!important}.of-y-clip,.overflow-y-clip{overflow-y:clip!important}.of-x-visible,.overflow-x-visible{overflow-x:visible!important}.of-y-visible,.overflow-y-visible{overflow-y:visible!important}.of-x-scroll,.overflow-x-scroll{overflow-x:scroll!important}.of-y-scroll,.overflow-y-scroll{overflow-y:scroll!important}.position-static{position:static!important}.position-fixed{position:fixed!important}.position-absolute{position:absolute!important}.position-relative{position:relative!important}.position-sticky{position:sticky!important}.visibility-visible{visibility:visible!important}.visibility-hidden{visibility:hidden!important}.visibility-collapse{visibility:collapse!important}.z-auto{z-index:auto!important}.z-bottom{z-index:var(--z-bottom)!important}.z-0{z-index:var(--z-0)!important}.z-1{z-index:var(--z-1)!important}.z-2{z-index:var(--z-2)!important}.z-3{z-index:var(--z-3)!important}.z-4{z-index:var(--z-4)!important}.z-5{z-index:var(--z-5)!important}.z-top{z-index:var(--z-top)!important}}@layer helpers{.o-0{opacity:var(--o-0)!important}.o-1{opacity:var(--o-1)!important}.o-2{opacity:var(--o-2)!important}.o-3{opacity:var(--o-3)!important}.o-4{opacity:var(--o-4)!important}.o-5{opacity:var(--o-5)!important}}@layer helpers{.ar-square{aspect-ratio:var(--ar-square)!important}.ar-landscape{aspect-ratio:var(--ar-landscape)!important}.ar-portrait{aspect-ratio:var(--ar-portrait)!important}.ar-widescreen{aspect-ratio:var(--ar-widescreen)!important}.ar-golden{aspect-ratio:var(--ar-golden)!important}}@layer helpers{.w-0{width:0!important}.h-0{height:0!important}.m-0{margin:0!important}.mt-0{margin-top:0!important}.mb-0{margin-bottom:0!important}.ml-0{margin-left:0!important}.mr-0{margin-right:0!important}.mis-0{margin-inline-start:0!important}.mie-0{margin-inline-end:0!important}.p-0{padding:0!important}.pt-0{padding-top:0!important}.pb-0{padding-bottom:0!important}.pl-0{padding-left:0!important}.pr-0{padding-right:0!important}.pis-0{padding-inline-start:0!important}.pie-0{padding-inline-end:0!important}.w-xs1{width:var(--xs1)!important}.h-xs1{height:var(--xs1)!important}.m-xs1{margin:var(--xs1)!important}.mt-xs1{margin-top:var(--xs1)!important}.mb-xs1{margin-bottom:var(--xs1)!important}.ml-xs1{margin-left:var(--xs1)!important}.mr-xs1{margin-right:var(--xs1)!important}.mis-xs1{margin-inline-start:var(--xs1)!important}.mie-xs1{margin-inline-end:var(--xs1)!important}.p-xs1{padding:var(--xs1)!important}.pt-xs1{padding-top:var(--xs1)!important}.pb-xs1{padding-bottom:var(--xs1)!important}.pl-xs1{padding-left:var(--xs1)!important}.pr-xs1{padding-right:var(--xs1)!important}.pis-xs1{padding-inline-start:var(--xs1)!important}.pie-xs1{padding-inline-end:var(--xs1)!important}.w-xs2{width:var(--xs2)!important}.h-xs2{height:var(--xs2)!important}.m-xs2{margin:var(--xs2)!important}.mt-xs2{margin-top:var(--xs2)!important}.mb-xs2{margin-bottom:var(--xs2)!important}.ml-xs2{margin-left:var(--xs2)!important}.mr-xs2{margin-right:var(--xs2)!important}.mis-xs2{margin-inline-start:var(--xs2)!important}.mie-xs2{margin-inline-end:var(--xs2)!important}.p-xs2{padding:var(--xs2)!important}.pt-xs2{padding-top:var(--xs2)!important}.pb-xs2{padding-bottom:var(--xs2)!important}.pl-xs2{padding-left:var(--xs2)!important}.pr-xs2{padding-right:var(--xs2)!important}.pis-xs2{padding-inline-start:var(--xs2)!important}.pie-xs2{padding-inline-end:var(--xs2)!important}.w-xs3{width:var(--xs3)!important}.h-xs3{height:var(--xs3)!important}.m-xs3{margin:var(--xs3)!important}.mt-xs3{margin-top:var(--xs3)!important}.mb-xs3{margin-bottom:var(--xs3)!important}.ml-xs3{margin-left:var(--xs3)!important}.mr-xs3{margin-right:var(--xs3)!important}.mis-xs3{margin-inline-start:var(--xs3)!important}.mie-xs3{margin-inline-end:var(--xs3)!important}.p-xs3{padding:var(--xs3)!important}.pt-xs3{padding-top:var(--xs3)!important}.pb-xs3{padding-bottom:var(--xs3)!important}.pl-xs3{padding-left:var(--xs3)!important}.pr-xs3{padding-right:var(--xs3)!important}.pis-xs3{padding-inline-start:var(--xs3)!important}.pie-xs3{padding-inline-end:var(--xs3)!important}.w-sm1{width:var(--sm1)!important}.h-sm1{height:var(--sm1)!important}.m-sm1{margin:var(--sm1)!important}.mt-sm1{margin-top:var(--sm1)!important}.mb-sm1{margin-bottom:var(--sm1)!important}.ml-sm1{margin-left:var(--sm1)!important}.mr-sm1{margin-right:var(--sm1)!important}.mis-sm1{margin-inline-start:var(--sm1)!important}.mie-sm1{margin-inline-end:var(--sm1)!important}.p-sm1{padding:var(--sm1)!important}.pt-sm1{padding-top:var(--sm1)!important}.pb-sm1{padding-bottom:var(--sm1)!important}.pl-sm1{padding-left:var(--sm1)!important}.pr-sm1{padding-right:var(--sm1)!important}.pis-sm1{padding-inline-start:var(--sm1)!important}.pie-sm1{padding-inline-end:var(--sm1)!important}.w-sm2{width:var(--sm2)!important}.h-sm2{height:var(--sm2)!important}.m-sm2{margin:var(--sm2)!important}.mt-sm2{margin-top:var(--sm2)!important}.mb-sm2{margin-bottom:var(--sm2)!important}.ml-sm2{margin-left:var(--sm2)!important}.mr-sm2{margin-right:var(--sm2)!important}.mis-sm2{margin-inline-start:var(--sm2)!important}.mie-sm2{margin-inline-end:var(--sm2)!important}.p-sm2{padding:var(--sm2)!important}.pt-sm2{padding-top:var(--sm2)!important}.pb-sm2{padding-bottom:var(--sm2)!important}.pl-sm2{padding-left:var(--sm2)!important}.pr-sm2{padding-right:var(--sm2)!important}.pis-sm2{padding-inline-start:var(--sm2)!important}.pie-sm2{padding-inline-end:var(--sm2)!important}.w-sm3{width:var(--sm3)!important}.h-sm3{height:var(--sm3)!important}.m-sm3{margin:var(--sm3)!important}.mt-sm3{margin-top:var(--sm3)!important}.mb-sm3{margin-bottom:var(--sm3)!important}.ml-sm3{margin-left:var(--sm3)!important}.mr-sm3{margin-right:var(--sm3)!important}.mis-sm3{margin-inline-start:var(--sm3)!important}.mie-sm3{margin-inline-end:var(--sm3)!important}.p-sm3{padding:var(--sm3)!important}.pt-sm3{padding-top:var(--sm3)!important}.pb-sm3{padding-bottom:var(--sm3)!important}.pl-sm3{padding-left:var(--sm3)!important}.pr-sm3{padding-right:var(--sm3)!important}.pis-sm3{padding-inline-start:var(--sm3)!important}.pie-sm3{padding-inline-end:var(--sm3)!important}.w-md1{width:var(--md1)!important}.h-md1{height:var(--md1)!important}.m-md1{margin:var(--md1)!important}.mt-md1{margin-top:var(--md1)!important}.mb-md1{margin-bottom:var(--md1)!important}.ml-md1{margin-left:var(--md1)!important}.mr-md1{margin-right:var(--md1)!important}.mis-md1{margin-inline-start:var(--md1)!important}.mie-md1{margin-inline-end:var(--md1)!important}.p-md1{padding:var(--md1)!important}.pt-md1{padding-top:var(--md1)!important}.pb-md1{padding-bottom:var(--md1)!important}.pl-md1{padding-left:var(--md1)!important}.pr-md1{padding-right:var(--md1)!important}.pis-md1{padding-inline-start:var(--md1)!important}.pie-md1{padding-inline-end:var(--md1)!important}.w-md2{width:var(--md2)!important}.h-md2{height:var(--md2)!important}.m-md2{margin:var(--md2)!important}.mt-md2{margin-top:var(--md2)!important}.mb-md2{margin-bottom:var(--md2)!important}.ml-md2{margin-left:var(--md2)!important}.mr-md2{margin-right:var(--md2)!important}.mis-md2{margin-inline-start:var(--md2)!important}.mie-md2{margin-inline-end:var(--md2)!important}.p-md2{padding:var(--md2)!important}.pt-md2{padding-top:var(--md2)!important}.pb-md2{padding-bottom:var(--md2)!important}.pl-md2{padding-left:var(--md2)!important}.pr-md2{padding-right:var(--md2)!important}.pis-md2{padding-inline-start:var(--md2)!important}.pie-md2{padding-inline-end:var(--md2)!important}.w-md3{width:var(--md3)!important}.h-md3{height:var(--md3)!important}.m-md3{margin:var(--md3)!important}.mt-md3{margin-top:var(--md3)!important}.mb-md3{margin-bottom:var(--md3)!important}.ml-md3{margin-left:var(--md3)!important}.mr-md3{margin-right:var(--md3)!important}.mis-md3{margin-inline-start:var(--md3)!important}.mie-md3{margin-inline-end:var(--md3)!important}.p-md3{padding:var(--md3)!important}.pt-md3{padding-top:var(--md3)!important}.pb-md3{padding-bottom:var(--md3)!important}.pl-md3{padding-left:var(--md3)!important}.pr-md3{padding-right:var(--md3)!important}.pis-md3{padding-inline-start:var(--md3)!important}.pie-md3{padding-inline-end:var(--md3)!important}.w-lg1{width:var(--lg1)!important}.h-lg1{height:var(--lg1)!important}.m-lg1{margin:var(--lg1)!important}.mt-lg1{margin-top:var(--lg1)!important}.mb-lg1{margin-bottom:var(--lg1)!important}.ml-lg1{margin-left:var(--lg1)!important}.mr-lg1{margin-right:var(--lg1)!important}.mis-lg1{margin-inline-start:var(--lg1)!important}.mie-lg1{margin-inline-end:var(--lg1)!important}.p-lg1{padding:var(--lg1)!important}.pt-lg1{padding-top:var(--lg1)!important}.pb-lg1{padding-bottom:var(--lg1)!important}.pl-lg1{padding-left:var(--lg1)!important}.pr-lg1{padding-right:var(--lg1)!important}.pis-lg1{padding-inline-start:var(--lg1)!important}.pie-lg1{padding-inline-end:var(--lg1)!important}.w-lg2{width:var(--lg2)!important}.h-lg2{height:var(--lg2)!important}.m-lg2{margin:var(--lg2)!important}.mt-lg2{margin-top:var(--lg2)!important}.mb-lg2{margin-bottom:var(--lg2)!important}.ml-lg2{margin-left:var(--lg2)!important}.mr-lg2{margin-right:var(--lg2)!important}.mis-lg2{margin-inline-start:var(--lg2)!important}.mie-lg2{margin-inline-end:var(--lg2)!important}.p-lg2{padding:var(--lg2)!important}.pt-lg2{padding-top:var(--lg2)!important}.pb-lg2{padding-bottom:var(--lg2)!important}.pl-lg2{padding-left:var(--lg2)!important}.pr-lg2{padding-right:var(--lg2)!important}.pis-lg2{padding-inline-start:var(--lg2)!important}.pie-lg2{padding-inline-end:var(--lg2)!important}.w-lg3{width:var(--lg3)!important}.h-lg3{height:var(--lg3)!important}.m-lg3{margin:var(--lg3)!important}.mt-lg3{margin-top:var(--lg3)!important}.mb-lg3{margin-bottom:var(--lg3)!important}.ml-lg3{margin-left:var(--lg3)!important}.mr-lg3{margin-right:var(--lg3)!important}.mis-lg3{margin-inline-start:var(--lg3)!important}.mie-lg3{margin-inline-end:var(--lg3)!important}.p-lg3{padding:var(--lg3)!important}.pt-lg3{padding-top:var(--lg3)!important}.pb-lg3{padding-bottom:var(--lg3)!important}.pl-lg3{padding-left:var(--lg3)!important}.pr-lg3{padding-right:var(--lg3)!important}.pis-lg3{padding-inline-start:var(--lg3)!important}.pie-lg3{padding-inline-end:var(--lg3)!important}.w-xl1{width:var(--xl1)!important}.h-xl1{height:var(--xl1)!important}.m-xl1{margin:var(--xl1)!important}.mt-xl1{margin-top:var(--xl1)!important}.mb-xl1{margin-bottom:var(--xl1)!important}.ml-xl1{margin-left:var(--xl1)!important}.mr-xl1{margin-right:var(--xl1)!important}.mis-xl1{margin-inline-start:var(--xl1)!important}.mie-xl1{margin-inline-end:var(--xl1)!important}.p-xl1{padding:var(--xl1)!important}.pt-xl1{padding-top:var(--xl1)!important}.pb-xl1{padding-bottom:var(--xl1)!important}.pl-xl1{padding-left:var(--xl1)!important}.pr-xl1{padding-right:var(--xl1)!important}.pis-xl1{padding-inline-start:var(--xl1)!important}.pie-xl1{padding-inline-end:var(--xl1)!important}.w-xl2{width:var(--xl2)!important}.h-xl2{height:var(--xl2)!important}.m-xl2{margin:var(--xl2)!important}.mt-xl2{margin-top:var(--xl2)!important}.mb-xl2{margin-bottom:var(--xl2)!important}.ml-xl2{margin-left:var(--xl2)!important}.mr-xl2{margin-right:var(--xl2)!important}.mis-xl2{margin-inline-start:var(--xl2)!important}.mie-xl2{margin-inline-end:var(--xl2)!important}.p-xl2{padding:var(--xl2)!important}.pt-xl2{padding-top:var(--xl2)!important}.pb-xl2{padding-bottom:var(--xl2)!important}.pl-xl2{padding-left:var(--xl2)!important}.pr-xl2{padding-right:var(--xl2)!important}.pis-xl2{padding-inline-start:var(--xl2)!important}.pie-xl2{padding-inline-end:var(--xl2)!important}.w-xl3{width:var(--xl3)!important}.h-xl3{height:var(--xl3)!important}.m-xl3{margin:var(--xl3)!important}.mt-xl3{margin-top:var(--xl3)!important}.mb-xl3{margin-bottom:var(--xl3)!important}.ml-xl3{margin-left:var(--xl3)!important}.mr-xl3{margin-right:var(--xl3)!important}.mis-xl3{margin-inline-start:var(--xl3)!important}.mie-xl3{margin-inline-end:var(--xl3)!important}.p-xl3{padding:var(--xl3)!important}.pt-xl3{padding-top:var(--xl3)!important}.pb-xl3{padding-bottom:var(--xl3)!important}.pl-xl3{padding-left:var(--xl3)!important}.pr-xl3{padding-right:var(--xl3)!important}.pis-xl3{padding-inline-start:var(--xl3)!important}.pie-xl3{padding-inline-end:var(--xl3)!important}.w-xxl1{width:var(--xxl1)!important}.h-xxl1{height:var(--xxl1)!important}.m-xxl1{margin:var(--xxl1)!important}.mt-xxl1{margin-top:var(--xxl1)!important}.mb-xxl1{margin-bottom:var(--xxl1)!important}.ml-xxl1{margin-left:var(--xxl1)!important}.mr-xxl1{margin-right:var(--xxl1)!important}.mis-xxl1{margin-inline-start:var(--xxl1)!important}.mie-xxl1{margin-inline-end:var(--xxl1)!important}.p-xxl1{padding:var(--xxl1)!important}.pt-xxl1{padding-top:var(--xxl1)!important}.pb-xxl1{padding-bottom:var(--xxl1)!important}.pl-xxl1{padding-left:var(--xxl1)!important}.pr-xxl1{padding-right:var(--xxl1)!important}.pis-xxl1{padding-inline-start:var(--xxl1)!important}.pie-xxl1{padding-inline-end:var(--xxl1)!important}.w-xxl2{width:var(--xxl2)!important}.h-xxl2{height:var(--xxl2)!important}.m-xxl2{margin:var(--xxl2)!important}.mt-xxl2{margin-top:var(--xxl2)!important}.mb-xxl2{margin-bottom:var(--xxl2)!important}.ml-xxl2{margin-left:var(--xxl2)!important}.mr-xxl2{margin-right:var(--xxl2)!important}.mis-xxl2{margin-inline-start:var(--xxl2)!important}.mie-xxl2{margin-inline-end:var(--xxl2)!important}.p-xxl2{padding:var(--xxl2)!important}.pt-xxl2{padding-top:var(--xxl2)!important}.pb-xxl2{padding-bottom:var(--xxl2)!important}.pl-xxl2{padding-left:var(--xxl2)!important}.pr-xxl2{padding-right:var(--xxl2)!important}.pis-xxl2{padding-inline-start:var(--xxl2)!important}.pie-xxl2{padding-inline-end:var(--xxl2)!important}.w-xxl3{width:var(--xxl3)!important}.h-xxl3{height:var(--xxl3)!important}.m-xxl3{margin:var(--xxl3)!important}.mt-xxl3{margin-top:var(--xxl3)!important}.mb-xxl3{margin-bottom:var(--xxl3)!important}.ml-xxl3{margin-left:var(--xxl3)!important}.mr-xxl3{margin-right:var(--xxl3)!important}.mis-xxl3{margin-inline-start:var(--xxl3)!important}.mie-xxl3{margin-inline-end:var(--xxl3)!important}.p-xxl3{padding:var(--xxl3)!important}.pt-xxl3{padding-top:var(--xxl3)!important}.pb-xxl3{padding-bottom:var(--xxl3)!important}.pl-xxl3{padding-left:var(--xxl3)!important}.pr-xxl3{padding-right:var(--xxl3)!important}.pis-xxl3{padding-inline-start:var(--xxl3)!important}.pie-xxl3{padding-inline-end:var(--xxl3)!important}.w-mega1{width:var(--mega1)!important}.h-mega1{height:var(--mega1)!important}.m-mega1{margin:var(--mega1)!important}.mt-mega1{margin-top:var(--mega1)!important}.mb-mega1{margin-bottom:var(--mega1)!important}.ml-mega1{margin-left:var(--mega1)!important}.mr-mega1{margin-right:var(--mega1)!important}.mis-mega1{margin-inline-start:var(--mega1)!important}.mie-mega1{margin-inline-end:var(--mega1)!important}.p-mega1{padding:var(--mega1)!important}.pt-mega1{padding-top:var(--mega1)!important}.pb-mega1{padding-bottom:var(--mega1)!important}.pl-mega1{padding-left:var(--mega1)!important}.pr-mega1{padding-right:var(--mega1)!important}.pis-mega1{padding-inline-start:var(--mega1)!important}.pie-mega1{padding-inline-end:var(--mega1)!important}.w-mega2{width:var(--mega2)!important}.h-mega2{height:var(--mega2)!important}.m-mega2{margin:var(--mega2)!important}.mt-mega2{margin-top:var(--mega2)!important}.mb-mega2{margin-bottom:var(--mega2)!important}.ml-mega2{margin-left:var(--mega2)!important}.mr-mega2{margin-right:var(--mega2)!important}.mis-mega2{margin-inline-start:var(--mega2)!important}.mie-mega2{margin-inline-end:var(--mega2)!important}.p-mega2{padding:var(--mega2)!important}.pt-mega2{padding-top:var(--mega2)!important}.pb-mega2{padding-bottom:var(--mega2)!important}.pl-mega2{padding-left:var(--mega2)!important}.pr-mega2{padding-right:var(--mega2)!important}.pis-mega2{padding-inline-start:var(--mega2)!important}.pie-mega2{padding-inline-end:var(--mega2)!important}.w-mega3{width:var(--mega3)!important}.h-mega3{height:var(--mega3)!important}.m-mega3{margin:var(--mega3)!important}.mt-mega3{margin-top:var(--mega3)!important}.mb-mega3{margin-bottom:var(--mega3)!important}.ml-mega3{margin-left:var(--mega3)!important}.mr-mega3{margin-right:var(--mega3)!important}.mis-mega3{margin-inline-start:var(--mega3)!important}.mie-mega3{margin-inline-end:var(--mega3)!important}.p-mega3{padding:var(--mega3)!important}.pt-mega3{padding-top:var(--mega3)!important}.pb-mega3{padding-bottom:var(--mega3)!important}.pl-mega3{padding-left:var(--mega3)!important}.pr-mega3{padding-right:var(--mega3)!important}.pis-mega3{padding-inline-start:var(--mega3)!important}.pie-mega3{padding-inline-end:var(--mega3)!important}.w-giga1{width:var(--giga1)!important}.h-giga1{height:var(--giga1)!important}.m-giga1{margin:var(--giga1)!important}.mt-giga1{margin-top:var(--giga1)!important}.mb-giga1{margin-bottom:var(--giga1)!important}.ml-giga1{margin-left:var(--giga1)!important}.mr-giga1{margin-right:var(--giga1)!important}.mis-giga1{margin-inline-start:var(--giga1)!important}.mie-giga1{margin-inline-end:var(--giga1)!important}.p-giga1{padding:var(--giga1)!important}.pt-giga1{padding-top:var(--giga1)!important}.pb-giga1{padding-bottom:var(--giga1)!important}.pl-giga1{padding-left:var(--giga1)!important}.pr-giga1{padding-right:var(--giga1)!important}.pis-giga1{padding-inline-start:var(--giga1)!important}.pie-giga1{padding-inline-end:var(--giga1)!important}.w-giga2{width:var(--giga2)!important}.h-giga2{height:var(--giga2)!important}.m-giga2{margin:var(--giga2)!important}.mt-giga2{margin-top:var(--giga2)!important}.mb-giga2{margin-bottom:var(--giga2)!important}.ml-giga2{margin-left:var(--giga2)!important}.mr-giga2{margin-right:var(--giga2)!important}.mis-giga2{margin-inline-start:var(--giga2)!important}.mie-giga2{margin-inline-end:var(--giga2)!important}.p-giga2{padding:var(--giga2)!important}.pt-giga2{padding-top:var(--giga2)!important}.pb-giga2{padding-bottom:var(--giga2)!important}.pl-giga2{padding-left:var(--giga2)!important}.pr-giga2{padding-right:var(--giga2)!important}.pis-giga2{padding-inline-start:var(--giga2)!important}.pie-giga2{padding-inline-end:var(--giga2)!important}.w-giga3{width:var(--giga3)!important}.h-giga3{height:var(--giga3)!important}.m-giga3{margin:var(--giga3)!important}.mt-giga3{margin-top:var(--giga3)!important}.mb-giga3{margin-bottom:var(--giga3)!important}.ml-giga3{margin-left:var(--giga3)!important}.mr-giga3{margin-right:var(--giga3)!important}.mis-giga3{margin-inline-start:var(--giga3)!important}.mie-giga3{margin-inline-end:var(--giga3)!important}.p-giga3{padding:var(--giga3)!important}.pt-giga3{padding-top:var(--giga3)!important}.pb-giga3{padding-bottom:var(--giga3)!important}.pl-giga3{padding-left:var(--giga3)!important}.pr-giga3{padding-right:var(--giga3)!important}.pis-giga3{padding-inline-start:var(--giga3)!important}.pie-giga3{padding-inline-end:var(--giga3)!important}.w-tera1{width:var(--tera1)!important}.h-tera1{height:var(--tera1)!important}.m-tera1{margin:var(--tera1)!important}.mt-tera1{margin-top:var(--tera1)!important}.mb-tera1{margin-bottom:var(--tera1)!important}.ml-tera1{margin-left:var(--tera1)!important}.mr-tera1{margin-right:var(--tera1)!important}.mis-tera1{margin-inline-start:var(--tera1)!important}.mie-tera1{margin-inline-end:var(--tera1)!important}.p-tera1{padding:var(--tera1)!important}.pt-tera1{padding-top:var(--tera1)!important}.pb-tera1{padding-bottom:var(--tera1)!important}.pl-tera1{padding-left:var(--tera1)!important}.pr-tera1{padding-right:var(--tera1)!important}.pis-tera1{padding-inline-start:var(--tera1)!important}.pie-tera1{padding-inline-end:var(--tera1)!important}.w-tera2{width:var(--tera2)!important}.h-tera2{height:var(--tera2)!important}.m-tera2{margin:var(--tera2)!important}.mt-tera2{margin-top:var(--tera2)!important}.mb-tera2{margin-bottom:var(--tera2)!important}.ml-tera2{margin-left:var(--tera2)!important}.mr-tera2{margin-right:var(--tera2)!important}.mis-tera2{margin-inline-start:var(--tera2)!important}.mie-tera2{margin-inline-end:var(--tera2)!important}.p-tera2{padding:var(--tera2)!important}.pt-tera2{padding-top:var(--tera2)!important}.pb-tera2{padding-bottom:var(--tera2)!important}.pl-tera2{padding-left:var(--tera2)!important}.pr-tera2{padding-right:var(--tera2)!important}.pis-tera2{padding-inline-start:var(--tera2)!important}.pie-tera2{padding-inline-end:var(--tera2)!important}.w-tera3{width:var(--tera3)!important}.h-tera3{height:var(--tera3)!important}.m-tera3{margin:var(--tera3)!important}.mt-tera3{margin-top:var(--tera3)!important}.mb-tera3{margin-bottom:var(--tera3)!important}.ml-tera3{margin-left:var(--tera3)!important}.mr-tera3{margin-right:var(--tera3)!important}.mis-tera3{margin-inline-start:var(--tera3)!important}.mie-tera3{margin-inline-end:var(--tera3)!important}.p-tera3{padding:var(--tera3)!important}.pt-tera3{padding-top:var(--tera3)!important}.pb-tera3{padding-bottom:var(--tera3)!important}.pl-tera3{padding-left:var(--tera3)!important}.pr-tera3{padding-right:var(--tera3)!important}.pis-tera3{padding-inline-start:var(--tera3)!important}.pie-tera3{padding-inline-end:var(--tera3)!important}}@layer helpers{.font-text{font-family:var(--text)!important}.font-display{font-family:var(--display)!important}.font-mono{font-family:var(--mono)!important}.font-italic{font-style:italic!important}.font-normal{font-style:normal!important}.font-extra-light{font-weight:var(--extra-light)!important}.font-light{font-weight:var(--light)!important}.font-book{font-weight:var(--book)!important}.font-semi-bold{font-weight:var(--semi-bold)!important}.font-bold{font-weight:var(--bold)!important}.font-black{font-weight:var(--black)!important}.text-xs{font-size:var(--text-xs)!important}.text-sm{font-size:var(--text-sm)!important}.text-md{font-size:var(--text-md)!important}.text-lg{font-size:var(--text-lg)!important}.text-xl{font-size:var(--text-xl)!important}.display-sm{font-size:var(--display-sm)!important}.display-md{font-size:var(--display-md)!important}.display-lg{font-size:var(--display-lg)!important}.display-xl{font-size:var(--display-xl)!important}.display-mega{font-size:var(--display-mega)!important}.display-giga{font-size:var(--display-giga)!important}.tracking-sm{letter-spacing:var(--tracking-sm)!important}.tracking-md{letter-spacing:var(--tracking-md)!important}.tracking-lg{letter-spacing:var(--tracking-lg)!important}.tracking-xl{letter-spacing:var(--tracking-xl)!important}.tracking-xxl{letter-spacing:var(--tracking-xxl)!important}.leading-xs{line-height:var(--leading-xs)!important}.leading-sm{line-height:var(--leading-sm)!important}.leading-md{line-height:var(--leading-md)!important}.leading-lg{line-height:var(--leading-lg)!important}.leading-xl{line-height:var(--leading-xl)!important}.leading-xxl{line-height:var(--leading-xxl)!important}.text-left{text-align:left!important}.text-center{text-align:center!important}.text-right{text-align:right!important}.text-justify{text-align:justify!important}.text-start{text-align:start!important}.text-end{text-align:end!important}.text-uppercase{text-transform:uppercase!important}.text-lowercase{text-transform:lowercase!important}.text-capitalize{text-transform:capitalize!important}}@layer theme.default{:root{--xs1: 4px;--xs2: 8px;--xs3: 12px;--sm1: 16px;--sm2: 20px;--sm3: 24px;--md1: 28px;--md2: 32px;--md3: 36px;--lg1: 40px;--lg2: 44px;--lg3: 48px;--xl1: 56px;--xl2: 64px;--xl3: 80px;--xxl1: 96px;--xxl2: 112px;--xxl3: 128px;--mega1: 160px;--mega2: 192px;--mega3: 224px;--giga1: 256px;--giga2: 288px;--giga3: 320px;--tera1: 384px;--tera2: 480px;--tera3: 520px;--ar-square: 1;--ar-landscape: 4/3;--ar-portrait: 3/4;--ar-widescreen: 16/9;--ar-golden: 1.618/1;--display: Avenir, Montserrat, Corbel, URW Gothic, source-sans-pro, ui-sans-serif, sans-serif;--text: ui-sans-serif, system-ui, sans-serif;--mono: Dank Mono, Inconsolata, Fira Mono, SF Mono, Monaco, Droid Sans Mono, Source Code Pro, Cascadia Code, Menlo, Consolas, DejaVu Sans Mono, ui-monospace, monospace;--text-xs: .694rem;--text-sm: .833rem;--text-md: 1rem;--text-lg: 1.2rem;--text-xl: 1.44rem;--display-sm: 1.728rem;--display-md: 2.074rem;--display-lg: 2.488rem;--display-xl: 2.986rem;--display-mega: 3.583rem;--display-giga: 4.299rem;--extra-light: 200;--light: 300;--book: 400;--semi-bold: 600;--bold: 700;--black: 900;--tracking-sm: -.05em;--tracking-md: .025em;--tracking-lg: .05em;--tracking-xl: .075em;--tracking-xxl: .15em;--leading-xs: 1;--leading-sm: 1.15;--leading-md: 1.375;--leading-lg: 1.5;--leading-xl: 1.75;--leading-xxl: 2;--base-0: #fff;--base-50: #f6f7f9;--base-100: #edeef1;--base-200: #d6dbe1;--base-300: #b2bbc7;--base-400: #8897a8;--base-500: #697a8e;--base-600: #546375;--base-700: #4a5666;--base-800: #3c4550;--base-900: #353c45;--base-950: #23282e;--primary-50: #f0f9ff;--primary-100: #e0f2fe;--primary-200: #bae6fd;--primary-300: #7dd3fc;--primary-400: #38bdf8;--primary-500: #0ea5e9;--primary-600: #0284c7;--primary-700: #0369a1;--primary-800: #075985;--primary-900: #0c4a6e;--primary-950: #082f49;--yes-100: #d5f6e8;--yes-200: #afebd4;--yes-300: #7adbbd;--yes-400: #46c4a0;--yes-500: #13886d;--no-100: #ffe4e6;--no-200: #fecdd3;--no-300: #fda4af;--no-400: #fb7185;--no-500: #e11d48;--maybe-100: #fff7d6;--maybe-200: #fff0b3;--maybe-300: #ffd64a;--maybe-400: #ffc220;--maybe-500: #f9a007;--highlight-500: #ffee00;--border-sm: 1px;--border-md: 2px;--border-lg: 4px;--border-xl: 8px;--border-xxl: 12px;--radius-sm: 3px;--radius-md: 5px;--radius-lg: 8px;--radius-xl: 12px;--radius-xxl: 16px;--radius-round: 1e5px;--shadow-sm: 0 1px 3px 0 var(--ui-shadow-color), 0 1px 2px -1px var(--ui-shadow-color);--shadow-md: 0 4px 6px -1px var(--ui-shadow-color), 0 2px 4px -2px var(--ui-shadow-color);--shadow-lg: 0 8px 13px -3px var(--ui-shadow-color), 0 4px 6px -4px var(--ui-shadow-color);--shadow-xl: 0 20px 20px -5px var(--ui-shadow-color), 0 8px 10px -6px var(--ui-shadow-color);--shadow-xxl: 0px 11px 8px -6px var(--ui-shadow-color), 0 10px 15px 2px var(--ui-shadow-color);--o-0: 0;--o-1: .2;--o-2: .4;--o-3: .6;--o-4: .8;--o-5: 1;--z-bottom: -1000000000;--z-0: 0;--z-1: 10;--z-2: 20;--z-3: 30;--z-4: 40;--z-5: 50;--z-top: 1000000000;--transition: .22s ease-in-out;--transition-fast: .1s ease-in-out}}@layer theme.default{:root{color-scheme:light dark;--ui-border-color: light-dark(var(--base-200), var(--base-500));--ui-shadow-color: light-dark(rgb(0 0 0 / .1), rgb(0 0 0 / .6));--focus-ring-color: light-dark(var(--primary-500), var(--primary-400));--focus-ring-width: 2px;--focus-ring-offset: 2px}:root.theme-light{color-scheme:light}:root.theme-dark{color-scheme:dark}:root{accent-color:var(--primary-500);--body-background-color: light-dark(var(--base-0), var(--base-950));--body-line-height: var(--leading-lg);--input-height: var(--md3);--input-padding: var(--xs3);--input-border-width: var(--border-sm);--input-border-color: var(--ui-border-color);--input-border-radius: var(--radius-md);--input-border-color-invalid: light-dark(var(--no-500), var(--no-400));--label-spacing: var(--xs1);--fieldset-padding: var(--sm3);--fieldset-border-width: var(--border-sm);--fieldset-border-color: var(--ui-border-color);--fieldset-border-radius: var(--radius-lg);--meter-height: var(--sm1);--meter-border-radius: var(--radius-md);--meter-track-color: var(--primary-100);--meter-low-color: var(--no-400);--meter-medium-color: var(--maybe-400);--meter-high-color: var(--yes-400);--progress-height: var(--sm1);--progress-color: var(--primary-500);--progress-track-color: var(--primary-100);--progress-border-radius: var(--radius-md);--select-icon-size: var(--sm3);--select-icon: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%20id='chevron-down'%3E%3Cpath%20d='m6%209%206%206%206-6'/%3E%3C/svg%3E");--dialog-min-width: var(--tera1);--dialog-max-width: var(--tera3);--dialog-padding: var(--lg1) var(--md1);--dialog-border-width: var(--border-sm);--dialog-border-color: light-dark(var(--base-200), var(--base-800));--dialog-background-color: light-dark(var(--base-50), var(--base-900));--dialog-border-radius: var(--radius-lg);--dialog-backdrop-color: var(--base-950);--dialog-backdrop-opacity: var(--o-4);--details-padding: var(--sm1);--details-spacing: var(--xs3);--details-border-width: var(--border-sm);--details-border-color: light-dark(var(--base-200), var(--base-800));--details-background-color: light-dark(var(--base-50), var(--base-900));--details-border-radius: var(--radius-lg);--details-icon-size: var(--sm3);--details-icon: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%20id='chevron-down'%3E%3Cpath%20d='m6%209%206%206%206-6'/%3E%3C/svg%3E");--table-padding: var(--xs2) var(--sm1);--table-border-width: var(--border-sm);--table-border-color: light-dark(var(--base-100), var(--base-700));--table-border-radius: var(--radius-md);--table-background-color: none;--table-caption-spacing: var(--xs3);--figcaption-spacing: var(--xs2);--heading-font: var(--display);--heading-weight: var(--black);--heading-letter-spacing: normal;--heading-font-size-h1: clamp( var(--display-md), 1.269rem + 2.682vw, var(--display-xl) );--heading-font-size-h2: clamp( var(--display-sm), 1.057rem + 2.235vw, var(--display-lg) );--heading-font-size-h3: clamp( var(--text-xl), .881rem + 1.865vw, var(--display-md) );--heading-font-size-h4: clamp( var(--text-lg), .734rem + 1.553vw, var(--display-sm) );--heading-font-size-h5: clamp( var(--text-lg), .988rem + .706vw, var(--text-xl) );--heading-font-size-h6: clamp( var(--text-md), .824rem + .588vw, var(--text-lg) );--heading-line-height: var(--leading-sm);--heading-line-height-h1: var(--heading-line-height);--heading-line-height-h2: var(--heading-line-height);--heading-line-height-h3: var(--heading-line-height);--heading-line-height-h4: var(--leading-md);--heading-line-height-h5: var(--leading-md);--heading-line-height-h6: var(--leading-md);--heading-spacing-h1: .4em;--heading-spacing-h2: .4em;--heading-spacing-h3: .4em;--heading-spacing-h4: .4em;--heading-spacing-h5: .4em;--heading-spacing-h6: .4em;--heading-spacing-consecutive: .3em;--text-color: light-dark(var(--base-950), var(--base-200));--link-font-weight: var(--semi-bold);--link-color: light-dark(var(--primary-600), var(--primary-400));--link-color-hover: var(--primary-500);--text-code-color: light-dark(var(--primary-600), var(--primary-400));--text-code-background-color: light-dark( var(--primary-100), var(--primary-900) );--text-code-muted-color: light-dark(var(--base-500), var(--base-300));--pre-border-radius: var(--radius-md);--pre-font-size: .9rem;--blockquote-padding-block: var(--sm1);--blockquote-padding-inline: var(--md1) var(--sm3);--blockquote-background-color: light-dark( var(--primary-50), var(--primary-900) );--blockquote-border-radius: var(--radius-md);--blockquote-accent-width: var(--xs2);--blockquote-accent-color: linear-gradient( var(--primary-800), var(--primary-500) );--hr-content: "";--ins-color: var(--base-950);--ins-background-color: var(--yes-200);--marker-color: var(--highlight-500);--selection-color: light-dark(var(--base-950), var(--base-0));--selection-background-color: light-dark( var(--primary-200), var(--primary-700) )}:root{--grid-column-gap: var(--sm1);--grid-row-gap: var(--sm1);@media(width>=768px){--grid-column-gap: var(--sm3);--grid-row-gap: var(--sm3)}--wrap-spacing: var(--sm1);--wrap-md-spacing: var(--sm3);--wrap-lg-spacing: 0;--wrap-width-sm: minmax(0, 55ch);--wrap-width-md: minmax(0, 70ch);--wrap-width-lg: minmax(0, 900px);--wrap-width: var(--wrap-width-md);--layout-content-width: 70ch;--layout-aside-width: 245px;--layout-toc-width: 1fr;--prose-spacing: var(--sm1)}:root{--badge-font-size: var(--text-sm);--badge-border-radius: var(--radius-md);--badge-color: var(--base-0);--badge-background-color: light-dark(var(--base-700), var(--base-600));--badge-primary-color: var(--base-0);--badge-primary-background-color: light-dark( var(--primary-600), var(--primary-500) );--badge-success-color: light-dark(var(--yes-500), var(--base-0));--badge-success-background-color: light-dark(var(--yes-100), var(--yes-500));--badge-danger-color: light-dark(var(--no-500), var(--base-0));--badge-danger-background-color: light-dark(var(--no-100), var(--no-500));--badge-warning-color: light-dark(var(--maybe-500), var(--base-950));--badge-warning-background-color: light-dark( var(--maybe-100), var(--maybe-500) )}:root{--bt-min-width: 101px;--bt-min-width-md: 123px;--bt-min-width-lg: 133px;--bt-font-size: var(--text-sm);--bt-font-size-lg: var(--text-md);--bt-font-weight: var(--semi-bold);--bt-color: var(--text-color);--bt-color-hover: light-dark(var(--text-color), var(--base-0));--bt-background-color: light-dark(var(--base-0), var(--base-800));--bt-background-color-hover: light-dark(var(--base-50), var(--base-900));--bt-border-color: var(--ui-border-color);--bt-border-width: var(--border-sm);--bt-border-radius: var(--radius-lg);--bt-border-radius-lg: var(--radius-xl);--bt-outline-color-hover: light-dark(var(--base-950), var(--base-0));--bt-outline-background-color-hover: light-dark( rgb(0 0 0 / .1), rgb(255 255 255 / .1) );--bt-outline-border-color: light-dark(var(--base-950), var(--base-0));--bt-outline-border-color-hover: light-dark(var(--base-950), var(--base-0));--bt-primary-color: var(--base-0);--bt-primary-color-hover: var(--base-0);--bt-primary-background-color: var(--primary-600);--bt-primary-background-color-hover: var(--primary-500);--bt-primary-border-color: var(--primary-600);--bt-primary-border-color-hover: var(--primary-600)}:root{--avatar-color: var(--base-0);--avatar-background-color: var(--base-400);--avatar-border-color: light-dark(var(--base-0), var(--base-500));--avatar-border-width: var(--border-sm);--avatar-radius: var(--radius-round);--avatar-status-dot-color-offline: var(--base-300);--avatar-status-dot-color-online: var(--yes-400)}:root{--banner-color: var(--base-0);--banner-background-color: light-dark(var(--primary-600), var(--primary-800))}:root{--breadcrumbs-separator: "/";--breadcrumbs-separator-color: light-dark(var(--base-300), var(--base-600));--breadcrumbs-color: light-dark(var(--base-500), var(--base-400));--breadcrumbs-color-current: var(--text-color)}:root{--card-spacing: var(--sm3);--card-color: var(--text-color);--card-secondary-text-color: light-dark(var(--base-400), var(--base-500));--card-bg-color: light-dark(var(--base-100), var(--base-900));--card-border-radius: var(--radius-lg);--card-border-color: var(--ui-border-color);--card-border-width: var(--border-sm);--card-shadow: var(--shadow-md);--card-shadow-hover: var(--shadow-xl);--card-loading-bg: light-dark(var(--base-200), var(--base-900));--card-aspect-ratio: var(--ar-golden)}:root{--toggle-width: 50px;--toggle-height: 28px;--toggle-border-width: 2px;--toggle-track-color: light-dark(var(--base-300), var(--base-700));--toggle-track-color-checked: var(--yes-400);--toggle-thumb-color: var(--body-background-color)}:root{--faq-spacing: var(--xs3)}:root{--field-spacing: var(--xs1);--field-hint-color: light-dark(var(--base-400), var(--base-500));--field-error-color: light-dark(var(--no-500), var(--no-300));--field-message-position: static}:root{--featureItem-icon-box-size: var(--lg3);--featureItem-icon-size: var(--sm3);--featureItem-icon-color: light-dark(var(--primary-600), var(--primary-300));--featureItem-icon-background-color: light-dark( var(--primary-100), var(--primary-900) );--featureItem-icon-border-radius: var(--radius-lg)}:root{--footer-background-color: light-dark(var(--primary-950), var(--base-950));--footer-text-color: light-dark(var(--base-0), var(--base-200));--footer-border-width: var(--border-md);--footer-border-color: light-dark(transparent, var(--base-700));--footer-link-color: light-dark(var(--base-0), var(--base-200));--footer-link-color-hover: light-dark(var(--primary-200), var(--base-0))}:root{--header-height: var(--xl1);--header-padding: var(--sm1);@media(width>=768px){--header-height: var(--xl2);--header-padding: var(--sm3)}--header-background-color: light-dark(var(--base-0), var(--base-950));--header-menu-background-color: var(--base-950);--header-menu-color: var(--base-0);--header-menu-color-current: var(--primary-400);--header-menu-secondary-color: var(--base-300);--header-menu-border-color: var(--base-500)}:root{--hero-radius: var(--radius-xl);--hero-content-padding: var(--md3);--hero-actions-spacing: var(--lg3);--hero-pagination-dot: var(--sm1);--hero-pagination-dot-color: var(--base-0);--hero-pagination-dot-active-color: var(--primary-600);--hero-pagination-opacity: var(--o-4)}:root{--pagination-size: var(--md3);--pagination-border-radius: var(--radius-md);--pagination-color: var(--text-color);--pagination-color-current: var(--base-0);--pagination-background-color-current: light-dark( var(--primary-600), var(--primary-500) );--pagination-background-color-hover: light-dark( var(--base-100), var(--base-800) )}:root{--prevNext-border-color: var(--ui-border-color);--prevNext-border-radius: var(--radius-lg);--prevNext-border-color-hover: var(--link-color);--prevNext-label-color: light-dark(var(--base-400), var(--base-500))}:root{--notice-spacing: var(--sm1);--notice-text-color: light-dark(var(--base-950), var(--base-0));--notice-background-color: light-dark(var(--base-50), var(--base-800));--notice-border-color: light-dark(var(--base-200), var(--base-500));--notice-border-width: var(--border-sm);--notice-border-radius: var(--radius-lg)}:root{--pricingCard-highlight-border-color: light-dark( var(--primary-600), var(--primary-400) );--pricingCard-check-color: light-dark(var(--yes-500), var(--yes-400))}:root{--readProgressBar-height: var(--xs1);--readProgressBar-color: linear-gradient( 90deg, var(--primary-600) 0%, var(--primary-400) 100% )}:root{--section-spacing: var(--xl3);--section-header-spacing: var(--lg3);--section-eyebrow-color: light-dark(var(--primary-600), var(--primary-400));--section-lede-color: light-dark(var(--base-500), var(--base-400));--section-filled-background-color: light-dark( var(--base-50), var(--base-900) );--section-primary-background-color: light-dark( var(--primary-600), var(--primary-900) );--section-primary-text-color: var(--base-0);--section-primary-link-color: var(--primary-100);--section-primary-link-color-hover: var(--base-0);--section-primary-eyebrow-color: var(--primary-200);--section-primary-lede-color: var(--primary-100)}:root{--testimonial-role-color: light-dark(var(--base-400), var(--base-500))}:root{--tags-padding: var(--xs2);--tags-font-size: var(--text-sm);--tags-color: light-dark(var(--base-500), var(--base-400));--tags-background-color: light-dark(var(--base-100), var(--base-800));--tags-background-color-hover: light-dark(var(--base-200), var(--base-950));--tags-radius: var(--radius-md)}:root{--toc-color: var(--link-color);--toc-color-hover: var(--link-color-hover);--toc-spacing: var(--xs1);--toc-indentation: var(--xs3);--toc-icon-size: var(--sm1)}} diff --git a/package.json b/package.json index 0c03e0dd..e62123f7 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "astro": "astro", "build:css": "node src/tools/build-css.mjs", "check": "astro check", + "check:layers": "node src/tools/check-layers.mjs", "lint:css": "stylelint \"src/styles/**/*.css\"", "prepare": "git config core.hooksPath .githooks" }, diff --git a/public/_redirects b/public/_redirects new file mode 100644 index 00000000..17adc004 --- /dev/null +++ b/public/_redirects @@ -0,0 +1,33 @@ +# Netlify edge redirects: real HTTP 301s, so they work for every client +# (browsers, curl, AI agents fetching the .md twins), not just HTML pages. +# Do NOT also add a rule's source path to astro.config.mjs `redirects`: +# Astro would emit a stub file at that path, and Netlify serves an existing +# file instead of applying the redirect. + +# Slug lowercased for consistency with the other component docs +/components/ReadProgressBar /components/readprogressbar 301 + +# The template docs page moved twice: components collection -> docs -> +# a section of the component library's start page (docs restructure) +/components/template /docs/components#marketing-template 301 + +# Tags pages moved under /blog so the Blog nav item highlights on them +/tags /blog/tags 301 +/tags/* /blog/tags/:splat 301 + +# Docs restructure (2026-08-16): pages merged or split. The .md twins are +# separate routes fetched cold by AI agents, so each gets its own rule. +/docs/tokens /docs/default-theme 301 +/docs/tokens.md /docs/default-theme.md 301 +/docs/themes /docs/default-theme 301 +/docs/themes.md /docs/default-theme.md 301 +/docs/reset /docs/default-html 301 +/docs/reset.md /docs/default-html.md 301 +/docs/elements /docs/default-html 301 +/docs/elements.md /docs/default-html.md 301 +/docs/global /docs/layout 301 +/docs/global.md /docs/layout.md 301 +/docs/media-queries /docs/layout 301 +/docs/media-queries.md /docs/layout.md 301 +/docs/template /docs/components#marketing-template 301 +/docs/template.md /docs/components.md 301 diff --git a/src/components/NavDocs.astro b/src/components/NavDocs.astro index 4b92c2b2..f2b7a591 100644 --- a/src/components/NavDocs.astro +++ b/src/components/NavDocs.astro @@ -11,7 +11,7 @@ const currentPath = pathname.split('/')[2]; // pathname starts with '/' { docsNavItems.map((page) => (
  • - + {page.title} diff --git a/src/components/SiteFooter.astro b/src/components/SiteFooter.astro index c6cb8251..22ca070e 100644 --- a/src/components/SiteFooter.astro +++ b/src/components/SiteFooter.astro @@ -13,9 +13,9 @@ import { VERSION } from '../scripts/globals';

    Documentation

    diff --git a/src/components/SiteHeader.astro b/src/components/SiteHeader.astro index d80e3dcb..34d570c3 100644 --- a/src/components/SiteHeader.astro +++ b/src/components/SiteHeader.astro @@ -15,7 +15,7 @@ const navItems: NavItem[] = [ { label: 'Docs', href: '/docs/start', - children: docsNavItems.map((page) => ({ label: page.title, href: `/docs/${page.id}` })), + children: docsNavItems.map((page) => ({ label: page.title, href: page.href ?? `/docs/${page.id}` })), }, { label: 'Components', diff --git a/src/content/blog/component-system-that-scales.md b/src/content/blog/component-system-that-scales.md index 8ac125d9..203cbb27 100644 --- a/src/content/blog/component-system-that-scales.md +++ b/src/content/blog/component-system-that-scales.md @@ -88,7 +88,7 @@ Same result, radically different dependency graph. `component.card.css` is once ### Tokens -mCSS components expose their look through [tokens](/docs/tokens). So if the token exists, you can set the component's styling without targeting any element at all: +mCSS components expose their look through [tokens](/docs/default-theme). So if the token exists, you can set the component's styling without targeting any element at all: ```css /* component.pricing.css */ @@ -118,7 +118,7 @@ Same pattern, delivered by prop instead of typed by hand. Sometimes the component has no token and no `Class` prop for what you're after. The answer is still not a descendant selector, nor editing the framework files. You own your copy of mCSS, so you _can_ edit the framework files if you really want to, but I'd recommend these options instead: -1. Override it from your [theme](/docs/themes). The recommended way to override framework classes. +1. Override it from your [theme](/docs/default-theme). The recommended way to override framework classes. 2. Override it through classes you mix on from your own `site/` CSS, as above. 3. If the component genuinely fights what you need, stop bending it: build your own site component and use that instead. A `component.planCard.css` you fully own beats a framework card held together with exceptions. @@ -132,11 +132,13 @@ The rule bans crossing block boundaries, not everything that isn't a class: **None of these reach into another component.** They describe your own block's markup/state. -### The two exceptions +### Exceptions -**Theme files.** A theme's entire job is to restyle other people's blocks, deliberately and in one place. That is why `theme.*.css` is the one kind of file allowed to select framework classes, framework globals, and bare elements from outside. The exception is safe because it is bounded: at most one theme is active, and you always know where to look. +Some CSS legitimately crosses block boundaries. What makes an exception acceptable is that it is bounded and named: one predictable file, one clear reason, so you always know where to look. Two examples: -**The print sheet.** `global.print.css` holds every `@media print` rule in the project, including rules that select other blocks' classes, because a printed page is one design decision that should be readable in one file. The [Getting Started docs](/docs/start#print-styles) cover the reasoning. +**Theme files.** A theme's entire job is to restyle other people's blocks, deliberately and in one place. That is why `theme.*.css` files are allowed to select framework classes, framework globals, and bare elements from outside. The exception is safe because it is bounded: at most one theme is active. + +**A print sheet.** A `global.print.css` holding every `@media print` rule in the project, including rules that select other blocks' classes, because a printed page is one design decision that should be readable in one file, not spread across every component it touches. ## The self-check diff --git a/src/content/blog/css-select-mask-styling.mdx b/src/content/blog/css-select-mask-styling.mdx index 900225dd..e3f72c63 100644 --- a/src/content/blog/css-select-mask-styling.mdx +++ b/src/content/blog/css-select-mask-styling.mdx @@ -27,7 +27,7 @@ Custom `` elements the old way, which _should_ be simple but never is… The common workarounds are clunky and usually require an extra wrapper. I really wanted [mCSS HTML elements](/docs/elements#form) to be customizable out of the box, without extra markup. Here were my requirements: +In the meantime, we're stuck with styling ``. 2. Custom "chevron" icon that matches the text color in light/dark themes. @@ -60,7 +60,7 @@ The two values used here: ### The result -Here's how it looks like (more [examples in mCSS docs](/docs/elements#form)): +Here's how it looks like (more [examples in mCSS docs](/docs/default-html#form)):