bullframe.css 6.1.0 → 6.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/CHANGELOG.md +39 -1
  2. package/README.md +14 -2
  3. package/bin/bullframe.mjs +277 -0
  4. package/dist/css/bullframe-classless-dark.css +1 -1
  5. package/dist/css/bullframe-classless-dark.min.css +1 -1
  6. package/dist/css/bullframe-classless-dark.min.css.map +1 -1
  7. package/dist/css/bullframe-classless-system-default.css +1 -1
  8. package/dist/css/bullframe-classless-system-default.min.css +1 -1
  9. package/dist/css/bullframe-classless-system-default.min.css.map +1 -1
  10. package/dist/css/bullframe-classless.css +1 -1
  11. package/dist/css/bullframe-classless.min.css +1 -1
  12. package/dist/css/bullframe-classless.min.css.map +1 -1
  13. package/dist/css/bullframe-dark.css +1 -1
  14. package/dist/css/bullframe-dark.min.css +1 -1
  15. package/dist/css/bullframe-dark.min.css.map +1 -1
  16. package/dist/css/bullframe-system-default.css +1 -1
  17. package/dist/css/bullframe-system-default.min.css +1 -1
  18. package/dist/css/bullframe-system-default.min.css.map +1 -1
  19. package/dist/css/bullframe-utilities.css +1 -1
  20. package/dist/css/bullframe-utilities.min.css +1 -1
  21. package/dist/css/bullframe-utilities.min.css.map +1 -1
  22. package/dist/css/bullframe.css +1 -1
  23. package/dist/css/bullframe.min.css +1 -1
  24. package/dist/css/bullframe.min.css.map +1 -1
  25. package/dist/skills/AGENTS.bullframe.md +46 -0
  26. package/dist/skills/_shared/builds.md +66 -0
  27. package/dist/skills/_shared/conventions.md +93 -0
  28. package/dist/skills/api.json +1023 -0
  29. package/dist/skills/bullframe-convert/SKILL.md +117 -0
  30. package/dist/skills/bullframe-convert/examples/after.html +43 -0
  31. package/dist/skills/bullframe-convert/examples/before.html +44 -0
  32. package/dist/skills/bullframe-core/SKILL.md +143 -0
  33. package/dist/skills/bullframe-docs-page/SKILL.md +89 -0
  34. package/dist/skills/bullframe-docs-page/examples/docs-page.html +72 -0
  35. package/dist/skills/bullframe-forms/SKILL.md +99 -0
  36. package/dist/skills/bullframe-forms/examples/contact-form.html +67 -0
  37. package/dist/skills/bullframe-landing-page/SKILL.md +96 -0
  38. package/dist/skills/bullframe-landing-page/examples/landing.html +98 -0
  39. package/dist/skills/index.json +134 -0
  40. package/package.json +15 -5
package/CHANGELOG.md CHANGED
@@ -7,6 +7,42 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [6.2.1] - 2026-09-29
11
+
12
+ ### Changed
13
+
14
+ - Shorter README install, CDN, and agent skills sections.
15
+ - Renamed docs "AI skills" to "agent skills" (`/agent-skills`; `/ai-skills` redirects).
16
+ - Docs `color-scheme` (meta + CSS pins on `html` / `html.dark`, synced with the appearance toggle) and light/dark `theme-color`.
17
+
18
+ ### Fixed
19
+
20
+ - Docs deploys reach returning visitors without a hard refresh.
21
+ - Docs edit links and API source links pointed at a deleted `v6` branch.
22
+ - Leftover legacy CSS files no longer linger in the docs public tree.
23
+
24
+ ## [6.2.0] - 2026-09-29
25
+
26
+ ### Added
27
+
28
+ - AI agent skills: `bullframe-core`, `bullframe-landing-page`, `bullframe-forms`, `bullframe-docs-page`, `bullframe-convert`; `npx bullframe.css skills install` (Claude, Cursor, Codex).
29
+ - Generated `api.json` (`.bf-*` classes, `--bf-*` tokens) in the package and at `/api.json`.
30
+ - AI skills docs page; docs site 404 page.
31
+ - `npm run test:e2e:sync-from-ci` to copy Playwright linux baselines from a CI run artifact.
32
+
33
+ ### Fixed
34
+
35
+ - Non-existent classes in Grid, Cards, Spacing, and Text docs.
36
+ - Wrong v6 token names in the migration guide.
37
+
38
+ ### Changed
39
+
40
+ - npm publish is manual from the release tag; **Publish to npm** is `workflow_dispatch` only (no `release: published` trigger).
41
+
42
+ ### Security
43
+
44
+ - Explicit `permissions: contents: read` on CI, Deploy docs, and Skills eval workflows.
45
+
10
46
  ## [6.1.0] - 2026-09-14
11
47
 
12
48
  ### Added
@@ -512,6 +548,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
512
548
  - Initial commit on 19 November 2012
513
549
  - Framework aimed to kickstart cross-browser responsive HTML/CSS development
514
550
 
515
- [Unreleased]: https://github.com/marcop135/bullframe.css/compare/v6.1.0...HEAD
551
+ [Unreleased]: https://github.com/marcop135/bullframe.css/compare/v6.2.1...HEAD
552
+ [6.2.1]: https://github.com/marcop135/bullframe.css/compare/v6.2.0...v6.2.1
553
+ [6.2.0]: https://github.com/marcop135/bullframe.css/compare/v6.1.0...v6.2.0
516
554
  [6.1.0]: https://github.com/marcop135/bullframe.css/compare/v6.0.0...v6.1.0
517
555
  [6.0.0]: https://github.com/marcop135/bullframe.css/compare/v5.1.0...v6.0.0
package/README.md CHANGED
@@ -39,6 +39,7 @@ Light or dark. Built for pages and forms: landings, docs, help centers, and mark
39
39
  - Accessibility built in: clear focus, reduced motion respect, WCAG AA defaults
40
40
  - Works with any stack: drop it on a landing, docs site, or help center
41
41
  - npm or CDN; nothing to compile to use it
42
+ - Agent skills for coding agents
42
43
 
43
44
  ## Examples
44
45
 
@@ -71,7 +72,7 @@ npm install bullframe.css
71
72
  import 'bullframe.css';
72
73
  ```
73
74
 
74
- Default import: class-based, light. Other builds: `bullframe.css/classless`, `bullframe.css/dark`, and so on. See [Builds](#builds) below.
75
+ [Install docs →](https://bullframecss.marcopontili.com/getting-started)
75
76
 
76
77
  ### CDN
77
78
 
@@ -79,7 +80,17 @@ Default import: class-based, light. Other builds: `bullframe.css/classless`, `bu
79
80
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bullframe.css">
80
81
  ```
81
82
 
82
- Always the latest release. Swap the path for another build (e.g. `bullframe.css/dist/css/bullframe-classless.min.css`).
83
+ [CDN docs →](https://bullframecss.marcopontili.com/getting-started)
84
+
85
+ ## Agent skills
86
+
87
+ Markdown skills for Claude, Cursor, and Codex. No server. No API key.
88
+
89
+ ```bash
90
+ npx bullframe.css skills install
91
+ ```
92
+
93
+ [Agent skills docs →](https://bullframecss.marcopontili.com/agent-skills)
83
94
 
84
95
  ## Builds
85
96
 
@@ -114,6 +125,7 @@ Seven files in `dist/css/`, each with a minified twin and a source map. Pick one
114
125
  | [Components](https://bullframecss.marcopontili.com/components/) | Cards, modals, navigation, buttons |
115
126
  | [Theming](https://bullframecss.marcopontili.com/theming) | Colours and dark mode |
116
127
  | [API reference](https://bullframecss.marcopontili.com/api-reference) | Full token and class list |
128
+ | [Agent skills](https://bullframecss.marcopontili.com/agent-skills) | Skills for coding agents |
117
129
  | [Changelog](./CHANGELOG.md) | Release notes |
118
130
 
119
131
  ## Contributing
@@ -0,0 +1,277 @@
1
+ #!/usr/bin/env node
2
+ /* Bullframe CSS command line.
3
+ *
4
+ * One job: copy the agent skills that ship in this package into the current project,
5
+ * in whatever layout the project's AI tooling reads. Zero dependencies, no network,
6
+ * no postinstall hook, and it never touches the framework's CSS.
7
+ *
8
+ * npx bullframe.css skills list
9
+ * npx bullframe.css skills install [--target claude,cursor,codex,agents,dir] [--dir <path>]
10
+ * npx bullframe.css skills path
11
+ */
12
+ import { cp, mkdir, readFile, writeFile, access } from 'node:fs/promises';
13
+ import { constants } from 'node:fs';
14
+ import path from 'node:path';
15
+ import { fileURLToPath } from 'node:url';
16
+
17
+ const here = path.dirname(fileURLToPath(import.meta.url));
18
+ const packageRoot = path.resolve(here, '..');
19
+ const skillsDir = path.join(packageRoot, 'dist', 'skills');
20
+
21
+ const START = '<!-- bullframe:skills:start -->';
22
+ const END = '<!-- bullframe:skills:end -->';
23
+ const LOCAL_DIR = 'bullframe-skills';
24
+
25
+ /** Tool targets that write into `$parent/skills/` with the same SKILL.md layout. */
26
+ const TOOL_TARGETS = {
27
+ claude: { parent: '.claude', label: '.claude/skills' },
28
+ cursor: { parent: '.cursor', label: '.cursor/skills' },
29
+ codex: { parent: '.agents', label: '.agents/skills' },
30
+ };
31
+
32
+ const KNOWN_TARGETS = [...Object.keys(TOOL_TARGETS), 'agents', 'dir'];
33
+
34
+ const USAGE = `bullframe.css - agent skills for the Bullframe CSS framework
35
+
36
+ Usage
37
+ npx bullframe.css skills list
38
+ npx bullframe.css skills install [options]
39
+ npx bullframe.css skills path
40
+
41
+ Install options
42
+ --target <list> Comma separated: claude, cursor, codex, agents, dir.
43
+ Default: agents, plus claude / cursor / codex when a
44
+ .claude, .cursor, or .agents directory exists.
45
+ --dir <path> Where the "dir" and "agents" targets copy the skills.
46
+ Default: ./${LOCAL_DIR}
47
+ --dry-run Print what would be written and exit without writing.
48
+ --force Overwrite files that already differ.
49
+
50
+ Other
51
+ --help, -h This text
52
+ --version, -v Package version
53
+ `;
54
+
55
+ function parseArgs(argv) {
56
+ const options = { targets: null, dir: null, dryRun: false, force: false };
57
+ const positional = [];
58
+
59
+ for (let i = 0; i < argv.length; i++) {
60
+ const arg = argv[i];
61
+ if (arg === '--target') options.targets = (argv[++i] ?? '').split(',').filter(Boolean);
62
+ else if (arg === '--dir') options.dir = argv[++i];
63
+ else if (arg === '--dry-run') options.dryRun = true;
64
+ else if (arg === '--force') options.force = true;
65
+ else if (arg === '--help' || arg === '-h') options.help = true;
66
+ else if (arg === '--version' || arg === '-v') options.version = true;
67
+ else if (arg.startsWith('-')) options.unknown = arg;
68
+ else positional.push(arg);
69
+ }
70
+
71
+ return { options, positional };
72
+ }
73
+
74
+ async function exists(target) {
75
+ try {
76
+ await access(target, constants.F_OK);
77
+ return true;
78
+ } catch {
79
+ return false;
80
+ }
81
+ }
82
+
83
+ async function readIndex() {
84
+ try {
85
+ return JSON.parse(await readFile(path.join(skillsDir, 'index.json'), 'utf8'));
86
+ } catch {
87
+ fail(
88
+ `no skills found in ${skillsDir}.\nInstall the published package, or run "npm run skills:build" in a clone.`
89
+ );
90
+ }
91
+ }
92
+
93
+ function fail(message) {
94
+ console.error(`bullframe: ${message}`);
95
+ process.exit(1);
96
+ }
97
+
98
+ /** Replace the managed block in place, or append it. Never duplicates. */
99
+ function mergeAgentsBlock(existing, body) {
100
+ const block = `${START}\n${body.trimEnd()}\n${END}\n`;
101
+ if (!existing) return block;
102
+
103
+ const start = existing.indexOf(START);
104
+ const end = existing.indexOf(END);
105
+ if (start !== -1 && end !== -1 && end > start) {
106
+ return existing.slice(0, start) + block.trimEnd() + existing.slice(end + END.length);
107
+ }
108
+
109
+ const separator = existing.endsWith('\n') ? '\n' : '\n\n';
110
+ return `${existing}${separator}${block}`;
111
+ }
112
+
113
+ async function writeFileIfNeeded(file, content, { dryRun, force }, written) {
114
+ const current = (await exists(file)) ? await readFile(file, 'utf8') : null;
115
+ if (current === content) {
116
+ written.push(`unchanged ${path.relative(process.cwd(), file)}`);
117
+ return;
118
+ }
119
+ if (current !== null && !force && !file.endsWith('AGENTS.md')) {
120
+ written.push(`skipped ${path.relative(process.cwd(), file)} (exists, use --force)`);
121
+ return;
122
+ }
123
+ written.push(
124
+ `${current === null ? 'wrote ' : 'updated '} ${path.relative(process.cwd(), file)}`
125
+ );
126
+ if (dryRun) return;
127
+ await mkdir(path.dirname(file), { recursive: true });
128
+ await writeFile(file, content, 'utf8');
129
+ }
130
+
131
+ async function copyTree(from, to, { dryRun }, written, label) {
132
+ written.push(`${dryRun ? 'would copy' : 'copied '} ${label}`);
133
+ if (dryRun) return;
134
+ await mkdir(path.dirname(to), { recursive: true });
135
+ await cp(from, to, { recursive: true, force: true });
136
+ }
137
+
138
+ /** Copy every skill plus `_shared` and `api.json` into `$parent/skills/`. */
139
+ async function installToolLayout(index, parentDir, label, options, written) {
140
+ const root = path.join(parentDir, 'skills');
141
+ for (const skill of index.skills) {
142
+ await copyTree(
143
+ path.join(skillsDir, skill.name),
144
+ path.join(root, skill.name),
145
+ options,
146
+ written,
147
+ `${label}/${skill.name}/`
148
+ );
149
+ }
150
+ await copyTree(
151
+ path.join(skillsDir, '_shared'),
152
+ path.join(root, '_shared'),
153
+ options,
154
+ written,
155
+ `${label}/_shared/`
156
+ );
157
+ await writeFileIfNeeded(
158
+ path.join(root, '_shared', 'api.json'),
159
+ await readFile(path.join(skillsDir, 'api.json'), 'utf8'),
160
+ { ...options, force: true },
161
+ written
162
+ );
163
+ }
164
+
165
+ async function listSkills() {
166
+ const index = await readIndex();
167
+ console.log(`bullframe.css ${index.version} - ${index.skills.length} skills\n`);
168
+ for (const skill of index.skills) {
169
+ console.log(` ${skill.name}`);
170
+ console.log(` ${skill.description}`);
171
+ if (skill.requires?.length) console.log(` requires: ${skill.requires.join(', ')}`);
172
+ }
173
+ console.log(`\nInstall with: npx bullframe.css skills install`);
174
+ }
175
+
176
+ async function installSkills(options) {
177
+ const index = await readIndex();
178
+ const cwd = process.cwd();
179
+ const localDir = path.resolve(cwd, options.dir ?? LOCAL_DIR);
180
+
181
+ let targets = options.targets;
182
+ if (!targets) {
183
+ targets = ['agents'];
184
+ for (const [name, { parent }] of Object.entries(TOOL_TARGETS)) {
185
+ if (await exists(path.join(cwd, parent))) targets.push(name);
186
+ }
187
+ }
188
+
189
+ const unknown = targets.filter((t) => !KNOWN_TARGETS.includes(t));
190
+ if (unknown.length) {
191
+ fail(`unknown target "${unknown[0]}". Use ${KNOWN_TARGETS.join(', ')}.`);
192
+ }
193
+
194
+ const written = [];
195
+
196
+ for (const name of Object.keys(TOOL_TARGETS)) {
197
+ if (!targets.includes(name)) continue;
198
+ const { parent, label } = TOOL_TARGETS[name];
199
+ await installToolLayout(index, path.join(cwd, parent), label, options, written);
200
+ }
201
+
202
+ if (targets.includes('agents') || targets.includes('dir')) {
203
+ for (const skill of index.skills) {
204
+ await copyTree(
205
+ path.join(skillsDir, skill.name),
206
+ path.join(localDir, skill.name),
207
+ options,
208
+ written,
209
+ `${path.relative(cwd, localDir)}/${skill.name}/`
210
+ );
211
+ }
212
+ for (const file of ['_shared', 'api.json', 'index.json']) {
213
+ await copyTree(
214
+ path.join(skillsDir, file),
215
+ path.join(localDir, file),
216
+ options,
217
+ written,
218
+ `${path.relative(cwd, localDir)}/${file}`
219
+ );
220
+ }
221
+ }
222
+
223
+ if (targets.includes('agents')) {
224
+ const agentsFile = path.join(cwd, 'AGENTS.md');
225
+ const body = await readFile(path.join(skillsDir, index.agentsBlock), 'utf8');
226
+ const existing = (await exists(agentsFile)) ? await readFile(agentsFile, 'utf8') : null;
227
+ await writeFileIfNeeded(
228
+ agentsFile,
229
+ mergeAgentsBlock(existing, body),
230
+ { ...options, force: true },
231
+ written
232
+ );
233
+ }
234
+
235
+ console.log(`bullframe.css ${index.version} - targets: ${targets.join(', ')}`);
236
+ for (const line of written) console.log(` ${line}`);
237
+ if (options.dryRun) console.log('\nDry run: nothing was written.');
238
+ }
239
+
240
+ async function main() {
241
+ const { options, positional } = parseArgs(process.argv.slice(2));
242
+
243
+ if (options.version) {
244
+ const pkg = JSON.parse(await readFile(path.join(packageRoot, 'package.json'), 'utf8'));
245
+ console.log(pkg.version);
246
+ return;
247
+ }
248
+ if (options.help || positional.length === 0) {
249
+ console.log(USAGE);
250
+ return;
251
+ }
252
+ if (options.unknown) {
253
+ console.error(`bullframe: unknown option "${options.unknown}"\n`);
254
+ console.log(USAGE);
255
+ process.exit(2);
256
+ }
257
+
258
+ const [group, command] = positional;
259
+ if (group !== 'skills') {
260
+ console.error(`bullframe: unknown command "${group}"\n`);
261
+ console.log(USAGE);
262
+ process.exit(2);
263
+ }
264
+
265
+ if (command === 'list') return listSkills();
266
+ if (command === 'install') return installSkills(options);
267
+ if (command === 'path') {
268
+ console.log(skillsDir);
269
+ return;
270
+ }
271
+
272
+ console.error(`bullframe: unknown subcommand "${command ?? ''}"\n`);
273
+ console.log(USAGE);
274
+ process.exit(2);
275
+ }
276
+
277
+ main().catch((error) => fail(error.message));
@@ -1,4 +1,4 @@
1
- /* ! Bullframe CSS v6.1.0 | MIT License | https://github.com/marcop135/bullframe.css */
1
+ /* ! Bullframe CSS v6.2.1 | MIT License | https://github.com/marcop135/bullframe.css */
2
2
 
3
3
  /* Always-dark classless build. */
4
4
 
@@ -1 +1 @@
1
- /* ! Bullframe CSS v6.1.0 | MIT License | https://github.com/marcop135/bullframe.css */:root{--bf-white:#fff;--bf-light:#f0f0f0;--bf-gray-light-extra:#e9e9e9;--bf-gray-light:#ccc;--bf-gray:#999;--bf-gray-dark:#666;--bf-gray-dark-extra:#333;--bf-dark:#222;--bf-dark-extra:#111;--bf-black:#000;--bf-yellow-light:#ff9;--bf-yellow:#ff0;--bf-orange:orange;--bf-blue:#0056b3;--bf-blue-light:#004187;--bf-blue-light-extra:#bed8fe;--bf-red:red;--bf-focus-ring-color:var(--bf-orange);--bf-focus-ring-width:0.2rem;--bf-focus-ring-offset:0.3rem;--bf-dark-bg:#1c1c1c;--bf-dark-link:#4da5ff;--bf-dark-link-hover:#4da5ff;--bf-dark-border-focus:#1a8cff;--bf-dark-shadow-focus:rgba(3,102,214,.5);--bf-dark-mark-bg:#e6e600;--bf-dark-ins-bg:#ffffc8;--bf-dark-button-hover:#b8b8b8;--bf-dark-button-shadow:hsla(0,0%,100%,.45);--bf-dark-invalid:#ff2626;--bf-spacing-sm:0.25rem;--bf-spacing-md:0.5rem;--bf-spacing-lg:1rem;--bf-spacing-xl:2rem;--bf-spacing-xxl:3rem;--bf-spacing-grid-gutter:1.5rem;--bf-font-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bf-font-serif:Georgia,Times,"Times New Roman",serif;--bf-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bf-body-font-size-rem:1.6rem;--bf-body-line-height:1.5;--bf-breakpoint-xs:0;--bf-breakpoint-sm:576px;--bf-breakpoint-md:768px;--bf-breakpoint-lg:992px;--bf-breakpoint-xl:1200px;--bf-breakpoint-xxl:1400px}*,:after,:before{box-sizing:border-box}article,aside,details,dialog,figcaption,figure,footer,header,hgroup,main,menu,nav,section{display:block}template{display:none}[hidden]:where(:not([hidden=until-found])){display:none!important}@layer{html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none}@supports (scrollbar-gutter:stable){html{scrollbar-gutter:stable}}h1{font-size:2em;margin-block:.67em}@media (forced-colors:active){mark{background-color:Highlight;color:HighlightText}}audio,iframe,img,svg,video{max-block-size:100%;max-inline-size:100%}fieldset{min-inline-size:0}@supports selector(:has(*)){label:has(+input:not([type=radio],[type=checkbox]),select,textarea){display:block}}textarea:not([rows]){min-block-size:6em}button,input,select,textarea{font-family:inherit;font-size:inherit}[type=search]{-webkit-appearance:textfield}@supports (-webkit-touch-callout:none){[type=search]{background-color:canvas;border:1px solid -apple-system-secondary-label}}input:where([type=tel],[type=url],[type=email],[type=number]):not(:-moz-placeholder){direction:ltr}input:where([type=tel],[type=url],[type=email],[type=number]):not(:placeholder-shown){direction:ltr}table{border:1px solid}@media (prefers-reduced-motion:no-preference){dialog::backdrop{background:rgba(0,0,0,.3)}@supports (overlay:auto){[popover],dialog,dialog::backdrop{opacity:0;transition:opacity .3s ease-out,display allow-discrete .3s,overlay allow-discrete .3s}:popover-open,dialog[open],dialog[open]::backdrop{opacity:1}@starting-style{:popover-open,dialog[open],dialog[open]::backdrop{opacity:0}}}}img{display:block}@supports (position-area:block-end span-inline-end){[popover]{margin:0;position-area:block-end span-inline-end}}}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:var(--bf-dark);font-family:system-ui,sans-serif;font-size:62.5%;line-height:1.15;-webkit-tap-highlight-color:rgb(0 0 0/0)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,Helvetica,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:var(--bf-body-font-size-rem);font-weight:400;line-height:var(--bf-body-line-height);margin:0;text-align:left;text-rendering:optimizeLegibility;word-wrap:break-word;background-color:var(--bf-white)}h1,h2,h3,h4,h5,h6{color:inherit;font-family:inherit;font-weight:600;line-height:1.25;margin-bottom:var(--bf-spacing-lg);margin-top:0}@supports (text-wrap:balance){h1,h2,h3,h4,h5,h6{text-wrap:balance}}h1{font-size:36px;font-size:3.6rem}h2{font-size:30px;font-size:3rem}h3{font-size:24px;font-size:2.4rem}h4{font-size:20px;font-size:2rem}h5,h6{font-size:16px;font-size:1.6rem}blockquote{font-style:italic;margin:0 0 var(--bf-spacing-xl);padding-left:0}blockquote p{margin-bottom:0}blockquote small{color:var(--bf-gray);display:block}blockquote small:before{content:"\2014 \00A0"}q{quotes:"\201C" "\201D" "\2018" "\2019"}p{margin:0 0 var(--bf-spacing-xl) 0}abbr[data-original-title],abbr[title]{border-bottom:0;cursor:help;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}mark{background-color:var(--bf-yellow)}ins,mark{color:var(--bf-black)}ins{background-color:var(--bf-yellow-light);text-decoration:none}b,strong{font-weight:inherit;font-weight:bolder}dfn{font-style:italic}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-8px;top:-.8rem}sub{bottom:-4px;bottom:-.4rem}small{font-size:80%}@supports selector(:has(*)){p:has(small){line-height:1.25}}hr{border-style:solid;border-width:1px 0 0;box-sizing:content-box;color:inherit;height:0;margin:var(--bf-spacing-xl) 0;overflow:visible;padding:0}hr,pre{display:block}pre{margin:0 0 var(--bf-spacing-xl) 0;overflow:auto;word-break:break-all;word-wrap:break-word;hyphens:none;white-space:pre;-ms-overflow-style:auto}code,kbd,pre,samp{font-family:Menlo,Consolas,Roboto Mono,"Ubuntu Monospace",Noto Mono,Oxygen Mono,Liberation Mono,monospace,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:.875em}code{word-wrap:break-word}a>code,pre code{color:inherit}pre code{font-size:inherit;word-break:normal}:where(html input,button,select,optgroup,textarea){color:inherit;font-family:inherit;font-size:inherit;line-height:inherit}:where(html input,button,[type=radio],[type=checkbox],select,optgroup,textarea){margin:0}:where(html input,select,textarea,legend){width:100%}:where(html label,button,[type=image],[type=submit],[type=reset],html [type=button],[type=radio],[type=checkbox]){width:auto}:where(html input,label,select,textarea,button,html [type=button],[type=reset],[type=submit],output){display:inline-block}:where([type=file]){background-color:transparent;display:block}:where(button,html input,select,textarea){background-image:none}:where(input,select,textarea){vertical-align:baseline}:where(form){margin:0}:where(fieldset){border:0;margin:0;min-width:0;padding:0}:where(legend){border:0;color:inherit;display:table;font-size:inherit;font-weight:400;line-height:1.375;margin-bottom:var(--bf-spacing-md);max-width:100%;padding:0;white-space:normal}:where(label){font-size:90%;font-weight:400;line-height:1.375;margin-bottom:var(--bf-spacing-md)}:where(label input,label select,label textarea){font-size:110%}::-webkit-inner-spin-button{height:auto}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-color-swatch-wrapper{padding:0}:where([type=search]){outline-offset:calc(var(--bf-spacing-sm)*-1)}:where(output){vertical-align:middle}:where(button,select){text-transform:none}:where(select){word-wrap:normal}:where([list]):not([type=date],[type=datetime-local],[type=month],[type=week],[type=time])::-webkit-calendar-picker-indicator{display:none!important}:where(optgroup){font-family:inherit;font-size:inherit;font-style:inherit;font-weight:600}:where(button,html [type=button],[type=reset],[type=submit],[type=email],[type=number],[type=text],[type=tel],[type=date],[type=datetime-local],[type=month],[type=week],[type=url],[type=image],[type=password],[type=search],[type=search]::-webkit-search-decoration,[type=search]::-webkit-search-cancel-button,input[list],textarea){-webkit-appearance:none;appearance:none}::file-selector-button{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;font:inherit}:where(button,input,select,textarea){border-radius:var(--bf-spacing-sm)}:where([type=radio]){border-radius:50%}:where([type=checkbox]){border-radius:var(--bf-spacing-md)}:where([type=radio],[type=checkbox]){background-color:var(--bf-white);padding:0}:where([type=range i]){background-color:transparent}:where(select[size],select[multiple]){height:auto}:where(select[multiple]){background-image:none}:where(textarea){height:auto;min-height:60px;min-height:6rem;overflow:auto;resize:vertical;vertical-align:top}::-moz-focus-inner{border-style:none;padding:0}:where(button,[type=button],[type=reset],[type=submit]){background-clip:padding-box;line-height:normal;margin:0;overflow:visible;text-align:center;vertical-align:baseline;-webkit-tap-highlight-color:rgb(0 0 0/0);background-image:none;border:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}:where(button,[type=button],[type=reset],[type=submit]):active,:where(button,[type=button],[type=reset],[type=submit]):focus,:where(button,[type=button],[type=reset],[type=submit]):hover{color:var(--bf-dark);text-decoration:none}:where(button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled)){cursor:pointer}:where(input::-moz-placeholder,textarea::-moz-placeholder){color:var(--bf-gray-dark)}:where(input::placeholder,textarea::placeholder){color:var(--bf-gray-dark)}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}:where([type=email],[type=number],[type=password],[type=tel],[type=search],[type=text],[type=date],[type=datetime-local],[type=month],[type=week],[type=time],[type=url],input[list],select,textarea){background-color:var(--bf-white);border:1px solid var(--bf-gray);padding:var(--bf-spacing-md) calc(var(--bf-spacing-lg)*.75)}:where([type=email],[type=number],[type=password],[type=tel],[type=search],[type=text],[type=date],[type=datetime-local],[type=month],[type=week],[type=time],[type=url],input[list],select,textarea,[type=radio],[type=checkbox]):active,:where([type=email],[type=number],[type=password],[type=tel],[type=search],[type=text],[type=date],[type=datetime-local],[type=month],[type=week],[type=time],[type=url],input[list],select,textarea,[type=radio],[type=checkbox]):focus{border-color:var(--bf-blue);box-shadow:0 0 0 3px rgba(0,86,179,.25);transition:border .2s,background-color .2s,box-shadow .2s}:where(button,[type=button],[type=reset],[type=submit]){background:var(--bf-gray-light);color:var(--bf-dark);padding:calc(var(--bf-spacing-xl)/3) calc(var(--bf-spacing-xl)/3*2);transition:color .2s,background .2s,box-shadow .2s}:where(button,[type=button],[type=reset],[type=submit]):active,:where(button,[type=button],[type=reset],[type=submit]):focus:not(.bf-disabled):not([aria-disabled=true]),:where(button,[type=button],[type=reset],[type=submit]):hover{background:#b8b8b8;color:var(--bf-dark);text-decoration:none}:where(button,[type=button],[type=reset],[type=submit]):active,:where(button,[type=button],[type=reset],[type=submit]):focus:not(.bf-disabled):not([aria-disabled=true]){box-shadow:0 0 0 3px rgba(0,0,0,.15)}:where(fieldset[disabled] button,fieldset[disabled] input,fieldset[disabled] input:after,fieldset[disabled] input:before,fieldset[disabled] input:checked,fieldset[disabled] select,fieldset[disabled] textarea,fieldset[disabled] label,button[disabled],input[disabled],input[disabled]:after,input[disabled]:before,input[disabled]:checked,select[disabled],textarea[disabled],label[disabled],button:disabled,input:disabled,input:disabled:after,input:disabled:before,input:disabled:checked,select:disabled,textarea:disabled,label:disabled,button[aria-disabled=true],input[aria-disabled=true],input[aria-disabled=true]:after,input[aria-disabled=true]:before,input[aria-disabled=true]:checked,select[aria-disabled=true],textarea[aria-disabled=true],label[aria-disabled=true]){box-shadow:none!important;cursor:default!important;cursor:not-allowed!important;opacity:.5!important;outline:none!important;pointer-events:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}:where(select):not([size],select[multiple]){-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bf-white) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0 0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .85rem center/8px 10px;padding-right:calc(var(--bf-spacing-lg) + var(--bf-spacing-lg))}:where([dir=rtl]) :where(select):not([size],select[multiple]),:where(select[dir=rtl]):not([size],select[multiple]){background-position:left .85rem top 50%;padding-left:calc(var(--bf-spacing-lg) + var(--bf-spacing-lg));padding-right:calc(var(--bf-spacing-lg)*.75)}@supports ((-webkit-appearance:none) or (-moz-appearance:none) or (appearance:none)){:where([type=range]){-webkit-appearance:none;-moz-appearance:none;appearance:none;height:1.4rem;width:100%}:where([type=range])::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background-color:var(--bf-blue);border:0;border-radius:1.5rem;height:1.5rem;margin-top:-.25rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:1.5rem}:where([type=range])::-webkit-slider-thumb:active{background-color:var(--bf-blue)}:where([type=range])::-moz-range-thumb{-moz-appearance:none;appearance:none;background-color:var(--bf-blue);border:0;border-radius:1.5rem;height:1.5rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:1.5rem}:where([type=range])::-moz-range-thumb:active{background-color:var(--bf-blue)}:where([type=range])::-webkit-slider-runnable-track{background-color:var(--bf-gray-light-extra);border-color:transparent;color:transparent;cursor:pointer;height:.65rem;width:100%}:where([type=range])::-moz-range-track{background-color:var(--bf-gray-light-extra);border-color:transparent;color:transparent;cursor:pointer;height:.65rem;width:100%}:where([type=range]):focus{outline:none}:where([type=range]):focus::-webkit-slider-thumb{box-shadow:0 0 0 .1rem var(--bf-white),0 0 0 .2rem rgba(0,123,255,.25)}:where([type=range]):focus::-moz-range-thumb{box-shadow:0 0 0 .1rem var(--bf-white),0 0 0 .2rem rgba(0,123,255,.25)}:where([type=range])::-moz-focus-outer{border:0}:where([type=range]):disabled{pointer-events:none}:where([type=range]):disabled::-webkit-slider-thumb{background-color:var(--bf-gray-light)}:where([type=range]):disabled::-moz-range-thumb{background-color:var(--bf-gray-light)}}a{background-color:transparent;color:var(--bf-blue);text-decoration:none}a:focus,a:hover{color:var(--bf-blue-light);text-decoration:underline}a:not([href],[class]),a:not([href],[class]):hover,a:not([href],[tabindex]){color:inherit;text-decoration:none}a:not([href],[tabindex]):focus{outline:0}:where(:focus:not(:focus-visible)){outline:none}:where([tabindex="-1"]:focus:not(:focus-visible)){outline:0!important}:focus-visible{outline:var(--bf-focus-ring-width) solid var(--bf-focus-ring-color);outline-offset:var(--bf-focus-ring-offset)}[type=button]:focus,[type=checkbox]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=radio]:focus,[type=reset]:focus,[type=search]:focus,[type=submit]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,button:focus,input[list]:focus,select:focus,textarea:focus{outline:0}dl,menu,ol,ul{margin:0 0 var(--bf-spacing-xl) 0;padding:0}dd,menu ol,menu ul,ol ol,ol ul,ul ol,ul ul{margin-bottom:0}ol,ul{margin-left:var(--bf-spacing-xl)}nav ol,nav ul{list-style:none;margin-left:0}dt{font-weight:700}dd{margin-left:0}nav li:before{content:"\200B";position:absolute}audio,canvas,progress,video{display:inline-block}audio,canvas,embed,iframe,img,object,video{max-width:100%}audio,canvas,img,svg,video{vertical-align:middle}img{border-style:none;height:auto}figure{margin:0}figcaption,figure{display:block}figcaption{font-size:90%;line-height:1.375}video{height:auto}audio{width:100%}audio:not([controls]){display:none;height:0}svg:not(:root){overflow:hidden}svg:not([fill]){fill:currentColor}meter,progress{display:inline-block;max-width:100%;vertical-align:baseline;width:100%}progress[value]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bf-gray-light);border:none;height:20px;height:2rem}progress[value]::-webkit-progress-bar{background:var(--bf-gray-light)}iframe{border-style:none}address{font-style:normal;line-height:inherit;margin-bottom:var(--bf-spacing-lg)}details>summary:first-of-type{display:list-item}summary{cursor:pointer;font-weight:700;word-break:break-all}dialog{background-color:var(--bf-white);border:none;border-radius:var(--bf-spacing-sm);color:var(--bf-dark);height:-moz-fit-content;height:fit-content;max-width:calc(100vw - var(--bf-spacing-grid-gutter)*2);min-width:min(25rem,100%);padding:var(--bf-spacing-xl)}@media (min-width:768px){dialog{max-width:50rem}}dialog[open]{display:block!important}dialog::backdrop{background:rgba(0,0,0,.4)}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}table{border-collapse:collapse;border-color:currentcolor;caption-side:bottom;max-width:100%;text-indent:0}tbody,td,tfoot,th,thead,tr{border:0 solid;border-color:inherit}thead th{vertical-align:bottom}td,th{vertical-align:top}th{font-weight:700;text-align:inherit;text-align:-webkit-match-parent}caption{caption-side:bottom;color:var(--bf-gray);font-size:90%;line-height:1.375;padding-bottom:var(--bf-spacing-md);padding-top:var(--bf-spacing-md);text-align:left}:where([aria-busy=true i]){cursor:progress}:where([aria-disabled=true i],[disabled]){cursor:not-allowed}:where([aria-hidden=false i][hidden]){display:initial}:where([aria-hidden=false i][hidden]:not(:focus)){clip:rect(0,0,0,0);position:absolute}@media (prefers-contrast:more){a{text-decoration:underline}:root{--bf-focus-ring-color:#b87300}:focus-visible{outline-offset:.4rem;outline-width:.3rem}[type=date],[type=datetime-local],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],input[list],select,textarea{border-width:2px}}@media (forced-colors:active){:focus-visible{outline-color:Highlight}a{text-decoration:underline}[type=button],[type=reset],[type=submit],button{border:1px solid ButtonText}}html{color:var(--bf-light)}body{background-color:var(--bf-dark-bg)}a{color:var(--bf-dark-link)}a:focus,a:hover{color:var(--bf-dark-link-hover)}mark{background-color:var(--bf-dark-mark-bg)}ins{background-color:var(--bf-dark-ins-bg)}[type=date],[type=datetime-local],[type=email],[type=month],[type=number],[type=password],[type=range],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],input[list],select,select:not([size],select[multiple]),textarea{background-color:var(--bf-dark-extra);border-color:var(--bf-black);color:var(--bf-gray-light)}[type=date]:active,[type=date]:focus,[type=datetime-local]:active,[type=datetime-local]:focus,[type=email]:active,[type=email]:focus,[type=month]:active,[type=month]:focus,[type=number]:active,[type=number]:focus,[type=password]:active,[type=password]:focus,[type=search]:active,[type=search]:focus,[type=tel]:active,[type=tel]:focus,[type=text]:active,[type=text]:focus,[type=time]:active,[type=time]:focus,[type=url]:active,[type=url]:focus,[type=week]:active,[type=week]:focus,input[list]:active,input[list]:focus,select:active,select:focus,select:not([size],select[multiple]):active,select:not([size],select[multiple]):focus,textarea:active,textarea:focus{background-color:var(--bf-dark-extra);border-color:var(--bf-dark-border-focus);box-shadow:0 0 0 3px var(--bf-dark-shadow-focus)}select:not([size],select[multiple]){background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3E%3Cpath fill='%23f0f0f0' d='M2 0 0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E")}[type=range],[type=range]:focus{background-color:transparent}[type=range]::-webkit-slider-runnable-track{background-color:var(--bf-dark-extra)}[type=range]::-moz-range-track{background-color:var(--bf-dark-extra)}input::-moz-placeholder,textarea::-moz-placeholder{color:var(--bf-gray)}input::placeholder,textarea::placeholder{color:var(--bf-gray)}[type=button],[type=reset],[type=submit],button{background:var(--bf-gray-light)}[type=button]:active,[type=button]:focus,[type=button]:hover,[type=reset]:active,[type=reset]:focus,[type=reset]:hover,[type=submit]:active,[type=submit]:focus,[type=submit]:hover,button:active,button:focus,button:hover{background:var(--bf-dark-button-hover)}[type=button]:active,[type=button]:focus,[type=reset]:active,[type=reset]:focus,[type=submit]:active,[type=submit]:focus,button:active,button:focus{box-shadow:0 0 0 3px var(--bf-dark-button-shadow)}dialog{background-color:var(--bf-dark-bg);color:var(--bf-light)}caption{color:var(--bf-gray-light)}progress[value]{background:var(--bf-gray-dark-extra);color:var(--bf-blue)}progress[value]::-webkit-progress-bar{background:var(--bf-gray-dark-extra)}progress[value]::-webkit-progress-value{background:var(--bf-blue)}a:focus,input:focus{outline-color:#d68c00}:focus-visible{outline-color:#d68c00}html{scrollbar-color:#616161 var(--bf-dark-extra)}::-webkit-scrollbar{height:1.5rem;width:1.5rem}::-webkit-scrollbar-track{background-color:var(--bf-dark-extra)}::-webkit-scrollbar-thumb{background-color:#616161}::-webkit-scrollbar-thumb:hover{background-color:#737373}
1
+ /* ! Bullframe CSS v6.2.1 | MIT License | https://github.com/marcop135/bullframe.css */:root{--bf-white:#fff;--bf-light:#f0f0f0;--bf-gray-light-extra:#e9e9e9;--bf-gray-light:#ccc;--bf-gray:#999;--bf-gray-dark:#666;--bf-gray-dark-extra:#333;--bf-dark:#222;--bf-dark-extra:#111;--bf-black:#000;--bf-yellow-light:#ff9;--bf-yellow:#ff0;--bf-orange:orange;--bf-blue:#0056b3;--bf-blue-light:#004187;--bf-blue-light-extra:#bed8fe;--bf-red:red;--bf-focus-ring-color:var(--bf-orange);--bf-focus-ring-width:0.2rem;--bf-focus-ring-offset:0.3rem;--bf-dark-bg:#1c1c1c;--bf-dark-link:#4da5ff;--bf-dark-link-hover:#4da5ff;--bf-dark-border-focus:#1a8cff;--bf-dark-shadow-focus:rgba(3,102,214,.5);--bf-dark-mark-bg:#e6e600;--bf-dark-ins-bg:#ffffc8;--bf-dark-button-hover:#b8b8b8;--bf-dark-button-shadow:hsla(0,0%,100%,.45);--bf-dark-invalid:#ff2626;--bf-spacing-sm:0.25rem;--bf-spacing-md:0.5rem;--bf-spacing-lg:1rem;--bf-spacing-xl:2rem;--bf-spacing-xxl:3rem;--bf-spacing-grid-gutter:1.5rem;--bf-font-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bf-font-serif:Georgia,Times,"Times New Roman",serif;--bf-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bf-body-font-size-rem:1.6rem;--bf-body-line-height:1.5;--bf-breakpoint-xs:0;--bf-breakpoint-sm:576px;--bf-breakpoint-md:768px;--bf-breakpoint-lg:992px;--bf-breakpoint-xl:1200px;--bf-breakpoint-xxl:1400px}*,:after,:before{box-sizing:border-box}article,aside,details,dialog,figcaption,figure,footer,header,hgroup,main,menu,nav,section{display:block}template{display:none}[hidden]:where(:not([hidden=until-found])){display:none!important}@layer{html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none}@supports (scrollbar-gutter:stable){html{scrollbar-gutter:stable}}h1{font-size:2em;margin-block:.67em}@media (forced-colors:active){mark{background-color:Highlight;color:HighlightText}}audio,iframe,img,svg,video{max-block-size:100%;max-inline-size:100%}fieldset{min-inline-size:0}@supports selector(:has(*)){label:has(+input:not([type=radio],[type=checkbox]),select,textarea){display:block}}textarea:not([rows]){min-block-size:6em}button,input,select,textarea{font-family:inherit;font-size:inherit}[type=search]{-webkit-appearance:textfield}@supports (-webkit-touch-callout:none){[type=search]{background-color:canvas;border:1px solid -apple-system-secondary-label}}input:where([type=tel],[type=url],[type=email],[type=number]):not(:-moz-placeholder){direction:ltr}input:where([type=tel],[type=url],[type=email],[type=number]):not(:placeholder-shown){direction:ltr}table{border:1px solid}@media (prefers-reduced-motion:no-preference){dialog::backdrop{background:rgba(0,0,0,.3)}@supports (overlay:auto){[popover],dialog,dialog::backdrop{opacity:0;transition:opacity .3s ease-out,display allow-discrete .3s,overlay allow-discrete .3s}:popover-open,dialog[open],dialog[open]::backdrop{opacity:1}@starting-style{:popover-open,dialog[open],dialog[open]::backdrop{opacity:0}}}}img{display:block}@supports (position-area:block-end span-inline-end){[popover]{margin:0;position-area:block-end span-inline-end}}}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:var(--bf-dark);font-family:system-ui,sans-serif;font-size:62.5%;line-height:1.15;-webkit-tap-highlight-color:rgb(0 0 0/0)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,Helvetica,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:var(--bf-body-font-size-rem);font-weight:400;line-height:var(--bf-body-line-height);margin:0;text-align:left;text-rendering:optimizeLegibility;word-wrap:break-word;background-color:var(--bf-white)}h1,h2,h3,h4,h5,h6{color:inherit;font-family:inherit;font-weight:600;line-height:1.25;margin-bottom:var(--bf-spacing-lg);margin-top:0}@supports (text-wrap:balance){h1,h2,h3,h4,h5,h6{text-wrap:balance}}h1{font-size:36px;font-size:3.6rem}h2{font-size:30px;font-size:3rem}h3{font-size:24px;font-size:2.4rem}h4{font-size:20px;font-size:2rem}h5,h6{font-size:16px;font-size:1.6rem}blockquote{font-style:italic;margin:0 0 var(--bf-spacing-xl);padding-left:0}blockquote p{margin-bottom:0}blockquote small{color:var(--bf-gray);display:block}blockquote small:before{content:"\2014 \00A0"}q{quotes:"\201C" "\201D" "\2018" "\2019"}p{margin:0 0 var(--bf-spacing-xl) 0}abbr[data-original-title],abbr[title]{border-bottom:0;cursor:help;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}mark{background-color:var(--bf-yellow)}ins,mark{color:var(--bf-black)}ins{background-color:var(--bf-yellow-light);text-decoration:none}b,strong{font-weight:inherit;font-weight:bolder}dfn{font-style:italic}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-8px;top:-.8rem}sub{bottom:-4px;bottom:-.4rem}small{font-size:80%}@supports selector(:has(*)){p:has(small){line-height:1.25}}hr{border-style:solid;border-width:1px 0 0;box-sizing:content-box;color:inherit;height:0;margin:var(--bf-spacing-xl) 0;overflow:visible;padding:0}hr,pre{display:block}pre{margin:0 0 var(--bf-spacing-xl) 0;overflow:auto;word-break:break-all;word-wrap:break-word;hyphens:none;white-space:pre;-ms-overflow-style:auto}code,kbd,pre,samp{font-family:Menlo,Consolas,Roboto Mono,"Ubuntu Monospace",Noto Mono,Oxygen Mono,Liberation Mono,monospace,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:.875em}code{word-wrap:break-word}a>code,pre code{color:inherit}pre code{font-size:inherit;word-break:normal}:where(html input,button,select,optgroup,textarea){color:inherit;font-family:inherit;font-size:inherit;line-height:inherit}:where(html input,button,[type=radio],[type=checkbox],select,optgroup,textarea){margin:0}:where(html input,select,textarea,legend){width:100%}:where(html label,button,[type=image],[type=submit],[type=reset],html [type=button],[type=radio],[type=checkbox]){width:auto}:where(html input,label,select,textarea,button,html [type=button],[type=reset],[type=submit],output){display:inline-block}:where([type=file]){background-color:transparent;display:block}:where(button,html input,select,textarea){background-image:none}:where(input,select,textarea){vertical-align:baseline}:where(form){margin:0}:where(fieldset){border:0;margin:0;min-width:0;padding:0}:where(legend){border:0;color:inherit;display:table;font-size:inherit;font-weight:400;line-height:1.375;margin-bottom:var(--bf-spacing-md);max-width:100%;padding:0;white-space:normal}:where(label){font-size:90%;font-weight:400;line-height:1.375;margin-bottom:var(--bf-spacing-md)}:where(label input,label select,label textarea){font-size:110%}::-webkit-inner-spin-button{height:auto}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-color-swatch-wrapper{padding:0}:where([type=search]){outline-offset:calc(var(--bf-spacing-sm)*-1)}:where(output){vertical-align:middle}:where(button,select){text-transform:none}:where(select){word-wrap:normal}:where([list]):not([type=date],[type=datetime-local],[type=month],[type=week],[type=time])::-webkit-calendar-picker-indicator{display:none!important}:where(optgroup){font-family:inherit;font-size:inherit;font-style:inherit;font-weight:600}:where(button,html [type=button],[type=reset],[type=submit],[type=email],[type=number],[type=text],[type=tel],[type=date],[type=datetime-local],[type=month],[type=week],[type=url],[type=image],[type=password],[type=search],[type=search]::-webkit-search-decoration,[type=search]::-webkit-search-cancel-button,input[list],textarea){-webkit-appearance:none;appearance:none}::file-selector-button{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;font:inherit}:where(button,input,select,textarea){border-radius:var(--bf-spacing-sm)}:where([type=radio]){border-radius:50%}:where([type=checkbox]){border-radius:var(--bf-spacing-md)}:where([type=radio],[type=checkbox]){background-color:var(--bf-white);padding:0}:where([type=range i]){background-color:transparent}:where(select[size],select[multiple]){height:auto}:where(select[multiple]){background-image:none}:where(textarea){height:auto;min-height:60px;min-height:6rem;overflow:auto;resize:vertical;vertical-align:top}::-moz-focus-inner{border-style:none;padding:0}:where(button,[type=button],[type=reset],[type=submit]){background-clip:padding-box;line-height:normal;margin:0;overflow:visible;text-align:center;vertical-align:baseline;-webkit-tap-highlight-color:rgb(0 0 0/0);background-image:none;border:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}:where(button,[type=button],[type=reset],[type=submit]):active,:where(button,[type=button],[type=reset],[type=submit]):focus,:where(button,[type=button],[type=reset],[type=submit]):hover{color:var(--bf-dark);text-decoration:none}:where(button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled)){cursor:pointer}:where(input::-moz-placeholder,textarea::-moz-placeholder){color:var(--bf-gray-dark)}:where(input::placeholder,textarea::placeholder){color:var(--bf-gray-dark)}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}:where([type=email],[type=number],[type=password],[type=tel],[type=search],[type=text],[type=date],[type=datetime-local],[type=month],[type=week],[type=time],[type=url],input[list],select,textarea){background-color:var(--bf-white);border:1px solid var(--bf-gray);padding:var(--bf-spacing-md) calc(var(--bf-spacing-lg)*.75)}:where([type=email],[type=number],[type=password],[type=tel],[type=search],[type=text],[type=date],[type=datetime-local],[type=month],[type=week],[type=time],[type=url],input[list],select,textarea,[type=radio],[type=checkbox]):active,:where([type=email],[type=number],[type=password],[type=tel],[type=search],[type=text],[type=date],[type=datetime-local],[type=month],[type=week],[type=time],[type=url],input[list],select,textarea,[type=radio],[type=checkbox]):focus{border-color:var(--bf-blue);box-shadow:0 0 0 3px rgba(0,86,179,.25);transition:border .2s,background-color .2s,box-shadow .2s}:where(button,[type=button],[type=reset],[type=submit]){background:var(--bf-gray-light);color:var(--bf-dark);padding:calc(var(--bf-spacing-xl)/3) calc(var(--bf-spacing-xl)/3*2);transition:color .2s,background .2s,box-shadow .2s}:where(button,[type=button],[type=reset],[type=submit]):active,:where(button,[type=button],[type=reset],[type=submit]):focus:not(.bf-disabled):not([aria-disabled=true]),:where(button,[type=button],[type=reset],[type=submit]):hover{background:#b8b8b8;color:var(--bf-dark);text-decoration:none}:where(button,[type=button],[type=reset],[type=submit]):active,:where(button,[type=button],[type=reset],[type=submit]):focus:not(.bf-disabled):not([aria-disabled=true]){box-shadow:0 0 0 3px rgba(0,0,0,.15)}:where(fieldset[disabled] button,fieldset[disabled] input,fieldset[disabled] input:after,fieldset[disabled] input:before,fieldset[disabled] input:checked,fieldset[disabled] select,fieldset[disabled] textarea,fieldset[disabled] label,button[disabled],input[disabled],input[disabled]:after,input[disabled]:before,input[disabled]:checked,select[disabled],textarea[disabled],label[disabled],button:disabled,input:disabled,input:disabled:after,input:disabled:before,input:disabled:checked,select:disabled,textarea:disabled,label:disabled,button[aria-disabled=true],input[aria-disabled=true],input[aria-disabled=true]:after,input[aria-disabled=true]:before,input[aria-disabled=true]:checked,select[aria-disabled=true],textarea[aria-disabled=true],label[aria-disabled=true]){box-shadow:none!important;cursor:default!important;cursor:not-allowed!important;opacity:.5!important;outline:none!important;pointer-events:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}:where(select):not([size],select[multiple]){-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bf-white) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0 0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .85rem center/8px 10px;padding-right:calc(var(--bf-spacing-lg) + var(--bf-spacing-lg))}:where([dir=rtl]) :where(select):not([size],select[multiple]),:where(select[dir=rtl]):not([size],select[multiple]){background-position:left .85rem top 50%;padding-left:calc(var(--bf-spacing-lg) + var(--bf-spacing-lg));padding-right:calc(var(--bf-spacing-lg)*.75)}@supports ((-webkit-appearance:none) or (-moz-appearance:none) or (appearance:none)){:where([type=range]){-webkit-appearance:none;-moz-appearance:none;appearance:none;height:1.4rem;width:100%}:where([type=range])::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background-color:var(--bf-blue);border:0;border-radius:1.5rem;height:1.5rem;margin-top:-.25rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:1.5rem}:where([type=range])::-webkit-slider-thumb:active{background-color:var(--bf-blue)}:where([type=range])::-moz-range-thumb{-moz-appearance:none;appearance:none;background-color:var(--bf-blue);border:0;border-radius:1.5rem;height:1.5rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:1.5rem}:where([type=range])::-moz-range-thumb:active{background-color:var(--bf-blue)}:where([type=range])::-webkit-slider-runnable-track{background-color:var(--bf-gray-light-extra);border-color:transparent;color:transparent;cursor:pointer;height:.65rem;width:100%}:where([type=range])::-moz-range-track{background-color:var(--bf-gray-light-extra);border-color:transparent;color:transparent;cursor:pointer;height:.65rem;width:100%}:where([type=range]):focus{outline:none}:where([type=range]):focus::-webkit-slider-thumb{box-shadow:0 0 0 .1rem var(--bf-white),0 0 0 .2rem rgba(0,123,255,.25)}:where([type=range]):focus::-moz-range-thumb{box-shadow:0 0 0 .1rem var(--bf-white),0 0 0 .2rem rgba(0,123,255,.25)}:where([type=range])::-moz-focus-outer{border:0}:where([type=range]):disabled{pointer-events:none}:where([type=range]):disabled::-webkit-slider-thumb{background-color:var(--bf-gray-light)}:where([type=range]):disabled::-moz-range-thumb{background-color:var(--bf-gray-light)}}a{background-color:transparent;color:var(--bf-blue);text-decoration:none}a:focus,a:hover{color:var(--bf-blue-light);text-decoration:underline}a:not([href],[class]),a:not([href],[class]):hover,a:not([href],[tabindex]){color:inherit;text-decoration:none}a:not([href],[tabindex]):focus{outline:0}:where(:focus:not(:focus-visible)){outline:none}:where([tabindex="-1"]:focus:not(:focus-visible)){outline:0!important}:focus-visible{outline:var(--bf-focus-ring-width) solid var(--bf-focus-ring-color);outline-offset:var(--bf-focus-ring-offset)}[type=button]:focus,[type=checkbox]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=radio]:focus,[type=reset]:focus,[type=search]:focus,[type=submit]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,button:focus,input[list]:focus,select:focus,textarea:focus{outline:0}dl,menu,ol,ul{margin:0 0 var(--bf-spacing-xl) 0;padding:0}dd,menu ol,menu ul,ol ol,ol ul,ul ol,ul ul{margin-bottom:0}ol,ul{margin-left:var(--bf-spacing-xl)}nav ol,nav ul{list-style:none;margin-left:0}dt{font-weight:700}dd{margin-left:0}nav li:before{content:"\200B";position:absolute}audio,canvas,progress,video{display:inline-block}audio,canvas,embed,iframe,img,object,video{max-width:100%}audio,canvas,img,svg,video{vertical-align:middle}img{border-style:none;height:auto}figure{margin:0}figcaption,figure{display:block}figcaption{font-size:90%;line-height:1.375}video{height:auto}audio{width:100%}audio:not([controls]){display:none;height:0}svg:not(:root){overflow:hidden}svg:not([fill]){fill:currentColor}meter,progress{display:inline-block;max-width:100%;vertical-align:baseline;width:100%}progress[value]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bf-gray-light);border:none;height:20px;height:2rem}progress[value]::-webkit-progress-bar{background:var(--bf-gray-light)}iframe{border-style:none}address{font-style:normal;line-height:inherit;margin-bottom:var(--bf-spacing-lg)}details>summary:first-of-type{display:list-item}summary{cursor:pointer;font-weight:700;word-break:break-all}dialog{background-color:var(--bf-white);border:none;border-radius:var(--bf-spacing-sm);color:var(--bf-dark);height:-moz-fit-content;height:fit-content;max-width:calc(100vw - var(--bf-spacing-grid-gutter)*2);min-width:min(25rem,100%);padding:var(--bf-spacing-xl)}@media (min-width:768px){dialog{max-width:50rem}}dialog[open]{display:block!important}dialog::backdrop{background:rgba(0,0,0,.4)}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}table{border-collapse:collapse;border-color:currentcolor;caption-side:bottom;max-width:100%;text-indent:0}tbody,td,tfoot,th,thead,tr{border:0 solid;border-color:inherit}thead th{vertical-align:bottom}td,th{vertical-align:top}th{font-weight:700;text-align:inherit;text-align:-webkit-match-parent}caption{caption-side:bottom;color:var(--bf-gray);font-size:90%;line-height:1.375;padding-bottom:var(--bf-spacing-md);padding-top:var(--bf-spacing-md);text-align:left}:where([aria-busy=true i]){cursor:progress}:where([aria-disabled=true i],[disabled]){cursor:not-allowed}:where([aria-hidden=false i][hidden]){display:initial}:where([aria-hidden=false i][hidden]:not(:focus)){clip:rect(0,0,0,0);position:absolute}@media (prefers-contrast:more){a{text-decoration:underline}:root{--bf-focus-ring-color:#b87300}:focus-visible{outline-offset:.4rem;outline-width:.3rem}[type=date],[type=datetime-local],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],input[list],select,textarea{border-width:2px}}@media (forced-colors:active){:focus-visible{outline-color:Highlight}a{text-decoration:underline}[type=button],[type=reset],[type=submit],button{border:1px solid ButtonText}}html{color:var(--bf-light)}body{background-color:var(--bf-dark-bg)}a{color:var(--bf-dark-link)}a:focus,a:hover{color:var(--bf-dark-link-hover)}mark{background-color:var(--bf-dark-mark-bg)}ins{background-color:var(--bf-dark-ins-bg)}[type=date],[type=datetime-local],[type=email],[type=month],[type=number],[type=password],[type=range],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],input[list],select,select:not([size],select[multiple]),textarea{background-color:var(--bf-dark-extra);border-color:var(--bf-black);color:var(--bf-gray-light)}[type=date]:active,[type=date]:focus,[type=datetime-local]:active,[type=datetime-local]:focus,[type=email]:active,[type=email]:focus,[type=month]:active,[type=month]:focus,[type=number]:active,[type=number]:focus,[type=password]:active,[type=password]:focus,[type=search]:active,[type=search]:focus,[type=tel]:active,[type=tel]:focus,[type=text]:active,[type=text]:focus,[type=time]:active,[type=time]:focus,[type=url]:active,[type=url]:focus,[type=week]:active,[type=week]:focus,input[list]:active,input[list]:focus,select:active,select:focus,select:not([size],select[multiple]):active,select:not([size],select[multiple]):focus,textarea:active,textarea:focus{background-color:var(--bf-dark-extra);border-color:var(--bf-dark-border-focus);box-shadow:0 0 0 3px var(--bf-dark-shadow-focus)}select:not([size],select[multiple]){background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3E%3Cpath fill='%23f0f0f0' d='M2 0 0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E")}[type=range],[type=range]:focus{background-color:transparent}[type=range]::-webkit-slider-runnable-track{background-color:var(--bf-dark-extra)}[type=range]::-moz-range-track{background-color:var(--bf-dark-extra)}input::-moz-placeholder,textarea::-moz-placeholder{color:var(--bf-gray)}input::placeholder,textarea::placeholder{color:var(--bf-gray)}[type=button],[type=reset],[type=submit],button{background:var(--bf-gray-light)}[type=button]:active,[type=button]:focus,[type=button]:hover,[type=reset]:active,[type=reset]:focus,[type=reset]:hover,[type=submit]:active,[type=submit]:focus,[type=submit]:hover,button:active,button:focus,button:hover{background:var(--bf-dark-button-hover)}[type=button]:active,[type=button]:focus,[type=reset]:active,[type=reset]:focus,[type=submit]:active,[type=submit]:focus,button:active,button:focus{box-shadow:0 0 0 3px var(--bf-dark-button-shadow)}dialog{background-color:var(--bf-dark-bg);color:var(--bf-light)}caption{color:var(--bf-gray-light)}progress[value]{background:var(--bf-gray-dark-extra);color:var(--bf-blue)}progress[value]::-webkit-progress-bar{background:var(--bf-gray-dark-extra)}progress[value]::-webkit-progress-value{background:var(--bf-blue)}a:focus,input:focus{outline-color:#d68c00}:focus-visible{outline-color:#d68c00}html{scrollbar-color:#616161 var(--bf-dark-extra)}::-webkit-scrollbar{height:1.5rem;width:1.5rem}::-webkit-scrollbar-track{background-color:var(--bf-dark-extra)}::-webkit-scrollbar-thumb{background-color:#616161}::-webkit-scrollbar-thumb:hover{background-color:#737373}