aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDeniz Akşimşek <deniz@denizaksimsek.com>2023-01-10 18:26:53 +0300
committerDeniz Akşimşek <deniz@denizaksimsek.com>2023-01-10 18:26:53 +0300
commit53cc93c56ad500bba59037c30c13b6a3a685f61e (patch)
tree606eed4ce0f4bb46f4f74b9431d61338d22a1d66
parent443253c4d2922d4b6626f45f407b14e59d03563e (diff)
parent571b3b9fd1c0eda8d44b4f0b73cc48f9c5802c6f (diff)
downloadmissing-53cc93c56ad500bba59037c30c13b6a3a685f61e.tar.gz
missing-53cc93c56ad500bba59037c30c13b6a3a685f61e.zip
Merge branch 'dev' into prodv1.0.6
-rw-r--r--.github/workflows/npm-publish.yml4
-rw-r--r--.gitignore2
-rwxr-xr-x_build/artifacts.ts8
-rw-r--r--deno.json4
-rw-r--r--deno.lock66
-rw-r--r--docs/10-main.md4
-rw-r--r--import_map.json2
-rw-r--r--missing-js/19.ts50
-rw-r--r--missing-js/tabs.js6
-rw-r--r--releases/1.0.6.md26
-rw-r--r--releases/_artifacts/v1.0.6/missing-js/19.js3
-rw-r--r--releases/_artifacts/v1.0.6/missing-js/menu.js3
-rw-r--r--releases/_artifacts/v1.0.6/missing-js/overflow-nav.js3
-rw-r--r--releases/_artifacts/v1.0.6/missing-js/tabs.js3
-rw-r--r--releases/_artifacts/v1.0.6/missing-prism.css62
-rw-r--r--releases/_artifacts/v1.0.6/missing-prism.min.css1
-rw-r--r--releases/_artifacts/v1.0.6/missing.css2417
-rw-r--r--releases/_artifacts/v1.0.6/missing.min.css126
-rw-r--r--src/aria.css21
-rw-r--r--src/main.css25
20 files changed, 2786 insertions, 50 deletions
diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml
index 73ebc43..0d9c577 100644
--- a/.github/workflows/npm-publish.yml
+++ b/.github/workflows/npm-publish.yml
@@ -27,7 +27,9 @@ jobs:
git config user.email "<>"
- run: |
echo "new_version=$(echo '${{env.GITHUB_REF_NAME}}' | cut -c 2-)" >> $GITHUB_ENV
- - run: npm version ${{env.new_version}}
+ - run: npm version --git-tag-version=false ${{env.new_version}}
+ - run: git add package.json package-lock.json
+ - run: git commit -m "bump npm version to v${{env.new_version}}"
- run: git push
- run: npm publish
env:
diff --git a/.gitignore b/.gitignore
index 3972abd..f263cb5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,4 +8,4 @@ _bin
.netlify
# esm.sh :[
-deno.lock
+# deno.lock
diff --git a/_build/artifacts.ts b/_build/artifacts.ts
index 7b38d2a..9d94457 100755
--- a/_build/artifacts.ts
+++ b/_build/artifacts.ts
@@ -1,20 +1,22 @@
#!/usr/bin/env -S deno run --allow-read=. --allow-write=.
-import { join, basename } from "std/path/mod.ts";
+import { join, basename, dirname } from "std/path/mod.ts";
import { extract } from "lume/deps/front_matter.ts";
const distDir = "dist";
-const artifactsDir = "releases/artifacts";
+const artifactsDir = "releases/_artifacts";
function artifact(release: string, artifact: string) {
const src = join(distDir, artifact);
const dst = join(artifactsDir, release, artifact);
+ Deno.mkdirSync(dirname(dst), { recursive: true });
return Deno.copyFile(src, dst);
}
function release(filePath: string) {
const release = "v" + basename(filePath).split(".").slice(0, -1).join(".");
- const frontmatter = extract(filePath).attrs;
+ const text = Deno.readTextFileSync(filePath);
+ const frontmatter = extract(text).attrs;
const artifactsObject = frontmatter["artifacts"] as Tree<string>;
const artifacts = leaves(artifactsObject);
artifacts.forEach(a => artifact(release, a));
diff --git a/deno.json b/deno.json
index d030cf3..9a709c5 100644
--- a/deno.json
+++ b/deno.json
@@ -3,9 +3,7 @@
"tasks": {
"prod": "deno task www",
"dev": "deno task www -s --dev",
-
"www": "deno task lume --config=_lume_config.ts",
-
- "lume": "echo \"import 'lume/cli.ts'\" | deno run --unstable -A -"
+ "lume": "echo \"import 'lume/cli.ts'\" | deno run --unstable -A -",
}
}
diff --git a/deno.lock b/deno.lock
new file mode 100644
index 0000000..a08d08f
--- /dev/null
+++ b/deno.lock
@@ -0,0 +1,66 @@
+{
+ "version": "2",
+ "remote": {
+ "https://deno.land/std@0.159.0/_util/assert.ts": "e94f2eb37cebd7f199952e242c77654e43333c1ac4c5c700e929ea3aa5489f74",
+ "https://deno.land/std@0.159.0/_util/os.ts": "8a33345f74990e627b9dfe2de9b040004b08ea5146c7c9e8fe9a29070d193934",
+ "https://deno.land/std@0.159.0/path/_constants.ts": "df1db3ffa6dd6d1252cc9617e5d72165cd2483df90e93833e13580687b6083c3",
+ "https://deno.land/std@0.159.0/path/_interface.ts": "ee3b431a336b80cf445441109d089b70d87d5e248f4f90ff906820889ecf8d09",
+ "https://deno.land/std@0.159.0/path/_util.ts": "d16be2a16e1204b65f9d0dfc54a9bc472cafe5f4a190b3c8471ec2016ccd1677",
+ "https://deno.land/std@0.159.0/path/common.ts": "bee563630abd2d97f99d83c96c2fa0cca7cee103e8cb4e7699ec4d5db7bd2633",
+ "https://deno.land/std@0.159.0/path/glob.ts": "cb5255638de1048973c3e69e420c77dc04f75755524cb3b2e160fe9277d939ee",
+ "https://deno.land/std@0.159.0/path/mod.ts": "56fec03ad0ebd61b6ab39ddb9b0ddb4c4a5c9f2f4f632e09dd37ec9ebfd722ac",
+ "https://deno.land/std@0.159.0/path/posix.ts": "c1f7afe274290ea0b51da07ee205653b2964bd74909a82deb07b69a6cc383aaa",
+ "https://deno.land/std@0.159.0/path/separator.ts": "fe1816cb765a8068afb3e8f13ad272351c85cbc739af56dacfc7d93d710fe0f9",
+ "https://deno.land/std@0.159.0/path/win32.ts": "bd7549042e37879c68ff2f8576a25950abbfca1d696d41d82c7bca0b7e6f452c",
+ "https://deno.land/std@0.168.0/_util/asserts.ts": "d0844e9b62510f89ce1f9878b046f6a57bf88f208a10304aab50efcb48365272",
+ "https://deno.land/std@0.168.0/bytes/bytes_list.ts": "aba5e2369e77d426b10af1de0dcc4531acecec27f9b9056f4f7bfbf8ac147ab4",
+ "https://deno.land/std@0.168.0/bytes/concat.ts": "97a1274e117510ffffc9499c4debb9541e408732bab2e0ca624869ae13103c10",
+ "https://deno.land/std@0.168.0/bytes/copy.ts": "d14a58f188a997ee0d2ba696d0c82a42f4fb4b6705e90a4238b77d7644dae24c",
+ "https://deno.land/std@0.168.0/encoding/_yaml/dumper/dumper.ts": "5bd334372608a1aec7a2343705930889d4048f57a2c4d398f1d6d75996ecd0d3",
+ "https://deno.land/std@0.168.0/encoding/_yaml/dumper/dumper_state.ts": "3c1bc8519c1832f0f136856881b97f0b42f64b7968767dbc36b8b0b6cae963dc",
+ "https://deno.land/std@0.168.0/encoding/_yaml/error.ts": "6ca899f6d86c6979bce6d7c3a6a8e2a360b09d8b0f55d2e649bd1233604fb7c9",
+ "https://deno.land/std@0.168.0/encoding/_yaml/loader/loader.ts": "db200890459e9490b21d8ce657d9566327e1d1d20ed493393a1f04a51516436c",
+ "https://deno.land/std@0.168.0/encoding/_yaml/loader/loader_state.ts": "59124e56d864274ce4043dca8bf63e937c6e960e4ad120465e424b38f3469b2d",
+ "https://deno.land/std@0.168.0/encoding/_yaml/mark.ts": "7f67f43755b2602fefe52012eb3ab627880da97edd0f6c00f916ceb2ddb1b5d1",
+ "https://deno.land/std@0.168.0/encoding/_yaml/parse.ts": "f0c9b19957b78003e268cea886451d9eb5a71645308c1e64db05efb669ffb114",
+ "https://deno.land/std@0.168.0/encoding/_yaml/schema.ts": "db295ea6079fce9c38f4ee2ff1233c65db598b35b379551e445b558534b2e1fd",
+ "https://deno.land/std@0.168.0/encoding/_yaml/schema/core.ts": "bcb47a389d596369fbfccf73a6b221ac3ca5440149b4f6df1e707f2efc6854ef",
+ "https://deno.land/std@0.168.0/encoding/_yaml/schema/default.ts": "8b6bd9cb1cab07a3397e1cc3843edba6ad40d1bd15687c1f56cd977da834d984",
+ "https://deno.land/std@0.168.0/encoding/_yaml/schema/extended.ts": "e8b8976bcfda4c339709fba75787168fbc780458e52b9729386284d33f57e21a",
+ "https://deno.land/std@0.168.0/encoding/_yaml/schema/failsafe.ts": "7254a9ca0dff8f30377098622812e55c4535aaf352fecb4ec51939e596bd74e7",
+ "https://deno.land/std@0.168.0/encoding/_yaml/schema/json.ts": "2205d0d3d3377de56f92ac0f4a82bf561ea0d7b86eb195c9f0c32c7c7871d78f",
+ "https://deno.land/std@0.168.0/encoding/_yaml/schema/mod.ts": "6769df6082aceee9849f71168f4353ba4f92e4a2a5a429a422debac13a593d4e",
+ "https://deno.land/std@0.168.0/encoding/_yaml/state.ts": "374b8dc170417beccb364e543b25eef73576196f4a526836bb3a621b87a204a3",
+ "https://deno.land/std@0.168.0/encoding/_yaml/stringify.ts": "ec15035c1928f96f4e42c0a0e9f3082512e294fd6b8ff6a0403a3ee9282f69aa",
+ "https://deno.land/std@0.168.0/encoding/_yaml/type.ts": "95ad0cdbab49343b1527ebc7762c477726c34702438375be6781b44e03e9fcfc",
+ "https://deno.land/std@0.168.0/encoding/_yaml/type/binary.ts": "04c00f4e5c491c0c09e894dfd4e2ce312d5cf4bb2a9eb04c4a05d3a6fb17bfbe",
+ "https://deno.land/std@0.168.0/encoding/_yaml/type/bool.ts": "95c030531adc3d66a59979dc25c2fcdeb1f58ae40a91d6f9e9a537af0fd2b5a4",
+ "https://deno.land/std@0.168.0/encoding/_yaml/type/float.ts": "60e26783fd0e4472bd222e028323ff68e0c5ff37a9871298c676335d8574cf87",
+ "https://deno.land/std@0.168.0/encoding/_yaml/type/function.ts": "b5642dda5ef8d47c0325a2b89a022cbce3be45ba21f8c4f9202364d967c6b3e5",
+ "https://deno.land/std@0.168.0/encoding/_yaml/type/int.ts": "166cdd73d9473373e0e65e9f65d5fd8e96cbd303b58535e2ff2e049bb73dbefb",
+ "https://deno.land/std@0.168.0/encoding/_yaml/type/map.ts": "78bf5447d2e3f79d59bf7cb63a76ca7797854a0d8e2154c6fd35775c4e5c8c61",
+ "https://deno.land/std@0.168.0/encoding/_yaml/type/merge.ts": "094b272e6087c6aef39cd9617fa6603ec934e507faad6c276d293e2734f9b083",
+ "https://deno.land/std@0.168.0/encoding/_yaml/type/mod.ts": "b2f267dc0b0296cf8f6109aa129e2cf6d1e1f8c59f8903f0330c18749eca2d3c",
+ "https://deno.land/std@0.168.0/encoding/_yaml/type/nil.ts": "1988843acab56e99e883cd047c40cc7fb799b6d335f541f022ae3b914abcbe35",
+ "https://deno.land/std@0.168.0/encoding/_yaml/type/omap.ts": "fd3f2f9a8ae634996da84d021353ac8bf4b41e714f2711159d756d0e2f3aabd1",
+ "https://deno.land/std@0.168.0/encoding/_yaml/type/pairs.ts": "90736f87b6e39a144205a235d8851f7bebf6bb3835fd03742c30253d5ecd7ec5",
+ "https://deno.land/std@0.168.0/encoding/_yaml/type/regexp.ts": "a9e70491fa7ede8689b933d81142aa7635a253733a4df626bd479c55cb64222e",
+ "https://deno.land/std@0.168.0/encoding/_yaml/type/seq.ts": "135f37a1b6dcb3688bc0dad0c9dc3a04370b1fc94267960586ea23877ffd3088",
+ "https://deno.land/std@0.168.0/encoding/_yaml/type/set.ts": "2937ac0e1ce8c121a4009e74568e341e2a380fdb5f41f16050ce2ca7537b2bd8",
+ "https://deno.land/std@0.168.0/encoding/_yaml/type/str.ts": "6420d3a0099d9fbc35861241b7dad65b800ff3909efe71ab71c895326187ab8d",
+ "https://deno.land/std@0.168.0/encoding/_yaml/type/timestamp.ts": "3db0667dd9bdc3b3f0e8596fff023e87bc9fca230a545bb67d0bf3b732c1c656",
+ "https://deno.land/std@0.168.0/encoding/_yaml/type/undefined.ts": "5b595082d064cf50a3345f5fdda8c02beb0768e9d97d4bd4c53ac81a9f94e185",
+ "https://deno.land/std@0.168.0/encoding/_yaml/utils.ts": "c7e6bf055b08fffe700c7cbdfa2939cab7b9676ff75b6dc98d72d41b3b173d37",
+ "https://deno.land/std@0.168.0/encoding/front_matter/mod.ts": "0e60c544c4d4a41da5c050a3ff3fe5e93a9447e6f50625c58fe61b66217d2d80",
+ "https://deno.land/std@0.168.0/encoding/front_matter/yaml.ts": "f25495af2ff59b58b2ca9fce5d1637f26f185e2921c3eb0c97db35ee674e689c",
+ "https://deno.land/std@0.168.0/encoding/yaml.ts": "42baa442cb37a7e1f5d1aa5256ba988d139fe7bb2940151d8ed689be0ea67ce9",
+ "https://deno.land/std@0.168.0/io/buf_reader.ts": "6c0eb067040a9931be2d24de50f56e67b10e3ff69d5344575df06caddf551417",
+ "https://deno.land/std@0.168.0/io/buf_writer.ts": "b1ee5325cec3386596c67b1c7510bfc7e42b2f505060fe2e9d6536cdefdbb30c",
+ "https://deno.land/std@0.168.0/io/buffer.ts": "04e4d9a7bffffeddd75df7da795001871857d83f8e7772e6a3eee9d174f33d38",
+ "https://deno.land/std@0.168.0/io/read_delim.ts": "6bff17d31730eeab402633ee53701ac16e7b575a343c432acf7bd61bd649fd05",
+ "https://deno.land/std@0.168.0/io/read_lines.ts": "51e2841394effe1473f588de2a87d62b1c2deb63ce869115506324e228f9e67b",
+ "https://deno.land/std@0.168.0/io/read_string_delim.ts": "70b20eebd853269252d4a833834a2677b711f216842709d11005ba291d822a0a",
+ "https://deno.land/std@0.168.0/io/types.d.ts": "790d3a3fa6b7f298d4cfbcf8bfd9d4be595c1b1acaa3eebb3009177df98bf93c",
+ "https://deno.land/x/lume@v1.14.2/deps/front_matter.ts": "9562fb0e7a28816236b3ce3f4f7165bed1ec1126e4bf6e03b07bab8bfb958833"
+ }
+}
diff --git a/docs/10-main.md b/docs/10-main.md
index 6ec278c..b69912f 100644
--- a/docs/10-main.md
+++ b/docs/10-main.md
@@ -21,9 +21,9 @@ Install it on your website if you haven't already:
<figure>
~~~ html
- <link rel="stylesheet" href="https://the.missing.style/<%= version %>/missing.min.css">
+ <link rel="stylesheet" href="https://the.missing.style/v<%= version %>/missing.min.css">
<!-- Prism theme (https://prismjs.com/): -->
- <link rel="stylesheet" href="https://the.missing.style/<%= version %>/missing-prism.min.css">
+ <link rel="stylesheet" href="https://the.missing.style/v<%= version %>/missing-prism.min.css">
~~~
</figure>
diff --git a/import_map.json b/import_map.json
index 317115b..4390b27 100644
--- a/import_map.json
+++ b/import_map.json
@@ -1,6 +1,6 @@
{
"imports": {
- "lume/": "https://deno.land/x/lume@v1.13.0/",
+ "lume/": "https://deno.land/x/lume@v1.14.2/",
"std/": "https://deno.land/std@0.159.0/"
}
}
diff --git a/missing-js/19.ts b/missing-js/19.ts
index 07d4fc9..99313ff 100644
--- a/missing-js/19.ts
+++ b/missing-js/19.ts
@@ -68,22 +68,46 @@ export function traverse(
const { wrap = true } = options;
const advance = direction + "ElementSibling";
- const wrapIt = direction === "next"
- ? (root: ParentNode, selector: string) => $(root, selector)
- : (root: ParentNode, selector: string) => $$(root, selector).at(-1);
- if (!current)
- return wrap ? wrapIt(root, selector) : null;
+
+ const wrapIt = () => {
+ // If wrapping is disabled.
+ if (!wrap) return null;
+ // Wrap in the correct direction.
+ return direction === "next"
+ ? $(root, selector)
+ : $$(root, selector).at(-1);
+ }
+
+ if (!current) return wrapIt();
+
+ // Traverse left to right, bottom to top.
+ //
+ // (begin ascii art diagram)
+ // (R)
+ // / \
+ // (r) (4) <- return value
+ // / | \ / \
+ // current -> (1) (2) (3) (*) (*)
+ // (end diagram)
+ //
+ // In the diagram above, 1, 2, 3 are tested by the selector (assuming we
+ // start at 1). Then, having run out of siblings, we move up (as many times
+ // as needed) before advancing, ending up at 4.
+ //
+ // To "test" an element, ee call Element#matches, then if that returns false,
+ // querySelector. The querySelector call is how the items marked with
+ // asterisks can be checked.
let cursor = current;
while (true) {
- while (cursor[advance] === null) {
- cursor = cursor.parentElement as Element;
- if (cursor === root)
- return wrap ? wrapIt(root, selector) : null;
+ while (cursor[advance] === null) { // 3
+ cursor = cursor.parentElement as Element; // 1 to r
+ if (cursor === root) return wrapIt();
}
- cursor = cursor[advance];
- const found = cursor.matches(selector) ? cursor : $(cursor, selector);
- if (found)
- return found;
+ cursor = cursor[advance]; // 1 to 2 to 3, r to 4
+ const found = cursor.matches(selector)
+ ? cursor // 4
+ : $(cursor, selector); // asterisks
+ if (found) return found;
}
}
diff --git a/missing-js/tabs.js b/missing-js/tabs.js
index 1bdee63..9958ff6 100644
--- a/missing-js/tabs.js
+++ b/missing-js/tabs.js
@@ -33,7 +33,7 @@ const tabPanelOf = (tab, root) => {
* @param {HTMLElement | null} tab
* @returns {void}
*/
-const switchTab = (root, tablist, tab) => {
+const switchTab = (root, tablist, tab, { focusTab = true } = {}) => {
if (!tab) return;
const curtab = currentTab(tablist);
@@ -47,7 +47,7 @@ const switchTab = (root, tablist, tab) => {
const tabpanel = tabPanelOf(tab, root);
if (tabpanel) tabpanel.hidden = false;
- tab.focus();
+ if (focusTab) tab.focus();
};
/**
@@ -57,7 +57,7 @@ export const tablist = behavior("[role=tablist]", (tablist, { root }) => {
if (!(tablist instanceof HTMLElement)) return;
tablist.tabIndex = 0;
tabsOf(tablist).forEach(tab => tab.tabIndex = -1);
- switchTab(root, tablist, currentTab(tablist));
+ switchTab(root, tablist, currentTab(tablist), { focusTab: false });
on(tablist, "focus", _ => currentTab(tablist)?.focus());
diff --git a/releases/1.0.6.md b/releases/1.0.6.md
new file mode 100644
index 0000000..7a329cc
--- /dev/null
+++ b/releases/1.0.6.md
@@ -0,0 +1,26 @@
+---
+release: 1.0.6
+artifacts:
+ Missing.css:
+ Plain: missing.css
+ Minified: missing.min.css
+ Missing Prism:
+ Plain: missing-prism.css
+ Minified: missing-prism.min.css
+ Missing.js:
+ 19: missing-js/19.js
+ Tabs: missing-js/tabs.js
+ Menu: missing-js/menu.js
+ Navbar: missing-js/overflow-nav.js
+---
+
+## Changelog
+
+ - Missing.css is now available on npm: [`missing.css@1.0.6`][].
+ Thanks to esmiralha#6639@discord.com for implementing this!
+ - Added box shadows to buttons to better indicate button states.
+ - Changed link styling, removing the outline that appears on hover and making the underline more subtle
+ - Use `--secondary-font` for `<dt>` element
+ - Fixed an issue the first tab in a tablist would be focused on load
+
+[`missing.css@1.0.6`]: https://www.npmjs.com/package/missing.css/v/1.0.6
diff --git a/releases/_artifacts/v1.0.6/missing-js/19.js b/releases/_artifacts/v1.0.6/missing-js/19.js
new file mode 100644
index 0000000..1e034eb
--- /dev/null
+++ b/releases/_artifacts/v1.0.6/missing-js/19.js
@@ -0,0 +1,3 @@
+function T(e){return(...t)=>(console.log("%c%s","color:green",e,...t),t.at(-1))}const h=T("19.js");function E(e){return e.replace(/[A-Z]/g,t=>"-"+t.toLowerCase())}function f(e,t,n,r,i={}){const{wrap:l=!0}=i,u=e+"ElementSibling",a=()=>l?e==="next"?d(t,n):g(t,n).at(-1):null;if(!r)return a();let o=r;for(;;){for(;o[u]===null;)if(o=o.parentElement,o===t)return a();o=o[u];const s=o.matches(n)?o:d(o,n);if(s)return s}}function d(e,t){return e.querySelector(t)}function g(e,t){return Array.from(e.querySelectorAll(t))}function L(e,t,n,r={}){const i=l=>(r.addedBy&&!r.addedBy.isConnected&&v({target:e,type:t,listener:i,options:r}),n(l));return e.addEventListener(t,i,r),{target:e,type:t,options:r,listener:i}}function v({target:e,type:t,listener:n,options:r}){return e.removeEventListener(t,n,r)}function y(e,t){for(const n of e.split(" "))n==="default"&&t.preventDefault(),n==="bubbling"&&t.stopPropagation(),n==="propagation"&&t.stopImmediatePropagation()}function A(e,t){return n=>{y(e,n),t(n)}}function w(e,t,n){return e.dispatchEvent(new CustomEvent(t,{detail:n}))}function k(e,t,n=void 0){if(typeof t=="object"){for(const i in t)e.setAttribute(E(i),t[i]);return null}const r=e.getAttribute(t);return n===void 0?e.getAttribute(t):n===null?(e.removeAttribute(t),r):(e.setAttribute(t,n),n)}function x(e){const t=document.createElement("div");return t.append(e),t.innerHTML}function b(e){return e==null?"":e instanceof Node?x(e):String(e).replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll("'","&#x27;").replaceAll('"',"&quot;")}function N(e,...t){const n=document.createElement("template");return typeof e=="object"&&"raw"in e&&(e=String.raw(e,...t.map(b))),n.innerHTML=e,n.content}function O(e){return e instanceof HTMLElement?e:null}function P(e,t,n,r={}){return f("next",e,t,n,r)}function S(e,t,n,r={}){return f("previous",e,t,n,r)}function B(e){const l={},u=o=>~~(o.altKey&&1)|~~(o.ctrlKey&&2)|~~(o.metaKey&&4)|~~(o.shiftKey&&8),a=o=>{const s=o.split("+"),c=s.pop();let p=0;for(const m in s)switch(m.toLowerCase()){case"alt":p|=1;break;case"ctrl":p|=2;break;case"meta":p|=4;break;case"shift":p|=8;break}return[c,p]};for(const[o,s]of Object.entries(e)){const[c,p]=a(o);(l[c]??(l[c]=new Array(8)))[p]=s}return o=>l[o.key]?.[u(o)]?.(o)}function C(e,t,{mode:n="trailing"}={}){let r=null;return(...i)=>{r?clearTimeout(r):n==="leading"&&t(...i),r=setTimeout(()=>{n==="trailing"&&t(...i),r=null},e)}}function D(e,t){const n=new WeakSet;return(r=document,i={})=>{const l=r.getRootNode();g(r,e).forEach(u=>{n.has(u)||(n.add(u),t(u,{options:i,root:l}))})}}function K(e,t){return n=>{let r=null;const i=(...a)=>{const o=r;r=a.at(-1),r instanceof DocumentFragment&&(r=r.lastChild),o?o.after(...a):e.prepend(...a)},l=a=>{if(a)for(;a.nextSibling;)a.nextSibling.remove();else e.replaceChildren()},u=e.getRootNode();for(const a of n){const o=t.idOf(a),s=u.getElementById(o);i(s?t.update?.(s,a)??s:t.create(a,{id:o}))}l(r)}}export{d as $,g as $$,O as asHtml,k as attr,D as behavior,C as debounce,w as dispatch,y as halt,A as halts,B as hotkey,N as html,b as htmlescape,T as makelogger,P as next,v as off,L as on,S as prev,K as repeater,x as stringifyNode,f as traverse};
+
+/*# sourceMappingURL=./19.js.map */ \ No newline at end of file
diff --git a/releases/_artifacts/v1.0.6/missing-js/menu.js b/releases/_artifacts/v1.0.6/missing-js/menu.js
new file mode 100644
index 0000000..80c3830
--- /dev/null
+++ b/releases/_artifacts/v1.0.6/missing-js/menu.js
@@ -0,0 +1,3 @@
+import{$ as m,$$ as h,on as o,dispatch as c,halts as g,attr as i,next as E,prev as _,asHtml as a,hotkey as w,behavior as f,makelogger as k}from"./19.js";const l=k("menu"),x="[role=menu]",s="[role=menuitem]",p=e=>h(e,s),y=(e,{root:r})=>{const t=i(e,"aria-controls");return t===null?null:r.getElementById(t)},u=e=>m(e,s),v=e=>p(e).at(-1)??null,d=e=>!e.hidden,B=f(x,(e,{root:r})=>{if(!(e instanceof HTMLElement))return;let t;p(e).forEach(n=>n.setAttribute("tabindex","-1")),o(e,"menu:open",n=>{t=n.detail?.opener,t||l("Warning: Menu",e,"opened without passing an `opener` element"),e.hidden=!1,u(e)?.focus()}),o(e,"menu:close",n=>{l("menu:close",e.hidden=!0),t?.focus()}),o(e,"focusout",n=>{d(e)&&(e.contains(n.relatedTarget)||t!==n.relatedTarget&&c(e,"menu:close"))}),o(e,"keydown",g("default",w({ArrowUp:n=>a(_(e,s,r.activeElement,{}))?.focus(),ArrowDown:n=>a(E(e,s,r.activeElement,{}))?.focus(),Space:n=>a(r.activeElement?.closest(s))?.click(),Home:n=>u(e)?.focus(),End:n=>v(e)?.focus(),Escape:n=>c(e,"menu:close")}))),o(window,"click",n=>{d(e)&&t!==n.target&&c(e,"menu:close")},{addedBy:e})}),M=f("[aria-haspopup=menu]",(e,{root:r})=>{const t=y(e,{root:r});if(t===null)return l("Error: Menu button",e,"has no menu.");o(t,"menu:close",n=>i(e,"aria-expanded","false"),{addedBy:e}),o(t,"menu:open",n=>i(e,"aria-expanded","true"),{addedBy:e}),o(e,"click",()=>c(t,d(t)?"menu:close":"menu:open",{opener:e}))});B(document);M(document);export{B as menu,M as menuButton};
+
+/*# sourceMappingURL=./menu.js.map */ \ No newline at end of file
diff --git a/releases/_artifacts/v1.0.6/missing-js/overflow-nav.js b/releases/_artifacts/v1.0.6/missing-js/overflow-nav.js
new file mode 100644
index 0000000..8ede3f4
--- /dev/null
+++ b/releases/_artifacts/v1.0.6/missing-js/overflow-nav.js
@@ -0,0 +1,3 @@
+import{$ as f,asHtml as g,attr as d,behavior as p,makelogger as m,on as l}from"./19.js";const w=m("overflow-nav"),a=p("[data-overflow-nav]",(t,{options:{expandedClass:o="expanded"}})=>{const e=g(f(t,"[data-nav-expander]"));if(e===null)return w("Expand toggle missing from navbar ",t);const c=()=>t.scrollWidth>t.clientWidth,r=()=>t.classList.contains(o),n=(s=!r())=>{s?(t.classList.add(o),d(e,"aria-pressed",!0),e.textContent="\xD7"):(t.classList.remove(o),d(e,"aria-pressed",!1),e.textContent="\u2630")},i=()=>{const s=e.hidden;e.hidden=!c(),s!=e.hidden&&n(!1)};l(e,"click",()=>n()),i(),l(window,"resize",()=>i(),{addedBy:t})});var h=a;a(document);export{h as default};
+
+/*# sourceMappingURL=./overflow-nav.js.map */ \ No newline at end of file
diff --git a/releases/_artifacts/v1.0.6/missing-js/tabs.js b/releases/_artifacts/v1.0.6/missing-js/tabs.js
new file mode 100644
index 0000000..873a350
--- /dev/null
+++ b/releases/_artifacts/v1.0.6/missing-js/tabs.js
@@ -0,0 +1,3 @@
+import{$ as m,$$ as p,on as t,attr as s,next as x,prev as b,asHtml as r,hotkey as T,behavior as k,makelogger as w}from"./19.js";const E=w("tabs"),c=e=>p(e,"[role=tab]"),u=e=>m(e,"[role=tab][aria-selected=true]"),i=(e,n)=>{const o=s(e,"aria-controls");return o===null?(E("Tab",e,"has no associated tabpanel"),null):n.getElementById(o)},f=(e,n,o,{focusTab:h=!0}={})=>{if(!o)return;const a=u(n);if(a){s(a,{ariaSelected:!1,tabindex:-1});const l=i(a,e);l&&(l.hidden=!0)}s(o,{ariaSelected:!0,tabindex:0});const d=i(o,e);d&&(d.hidden=!1),h&&o.focus()},g=k("[role=tablist]",(e,{root:n})=>{e instanceof HTMLElement&&(e.tabIndex=0,c(e).forEach(o=>o.tabIndex=-1),f(n,e,u(e),{focusTab:!1}),t(e,"focus",o=>u(e)?.focus()),t(e,"click",o=>f(n,e,r(r(o.target)?.closest("[role=tab]")))),t(e,"focusin",o=>f(n,e,r(r(o.target)?.closest("[role=tab]")))),t(e,"keydown",T({ArrowRight:o=>r(x(e,"[role=tab]",r(o.target)))?.focus(),ArrowLeft:o=>r(b(e,"[role=tab]",r(o.target)))?.focus(),Home:o=>c(e).at(0)?.focus(),End:o=>c(e).at(-1)?.focus()})))});g(document);var H=g;export{H as default,g as tablist};
+
+/*# sourceMappingURL=./tabs.js.map */ \ No newline at end of file
diff --git a/releases/_artifacts/v1.0.6/missing-prism.css b/releases/_artifacts/v1.0.6/missing-prism.css
new file mode 100644
index 0000000..23e48b5
--- /dev/null
+++ b/releases/_artifacts/v1.0.6/missing-prism.css
@@ -0,0 +1,62 @@
+
+.token.comment,
+.token.prolog,
+.token.doctype,
+.token.cdata,
+.token.punctuation {
+ color: var(--muted-fg);
+}
+
+.token.property,
+.token.tag,
+.token.boolean,
+.token.number,
+.token.constant,
+.token.symbol,
+.token.deleted {
+ color: var(--bad-fg);
+}
+
+.token.selector,
+.token.attr-name,
+.token.string,
+.token.char,
+.token.builtin,
+.token.inserted {
+ color: var(--ok-fg);
+}
+
+.token.operator,
+.token.entity,
+.token.url,
+.language-css .token.string,
+.style .token.string,
+.token.regex,
+.token.important,
+.token.variable {
+ color: var(--warn-fg)
+}
+
+.token.atrule,
+.token.attr-value,
+.token.keyword {
+ color: var(--info-fg);
+}
+
+.token.function {
+ color: var(--bad-fg);
+ font-style: italic;
+}
+
+.token.important,
+.token.bold {
+ font-weight: bold;
+}
+
+.token.italic {
+ font-style: italic;
+}
+
+.token.entity {
+ cursor: help;
+}
diff --git a/releases/_artifacts/v1.0.6/missing-prism.min.css b/releases/_artifacts/v1.0.6/missing-prism.min.css
new file mode 100644
index 0000000..41c91b1
--- /dev/null
+++ b/releases/_artifacts/v1.0.6/missing-prism.min.css
@@ -0,0 +1 @@
+.token.cdata,.token.comment,.token.doctype,.token.prolog,.token.punctuation{color:var(--muted-fg)}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:var(--bad-fg)}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:var(--ok-fg)}.language-css .token.string,.style .token.string,.token.entity,.token.important,.token.operator,.token.regex,.token.url,.token.variable{color:var(--warn-fg)}.token.atrule,.token.attr-value,.token.keyword{color:var(--info-fg)}.token.function{color:var(--bad-fg);font-style:italic}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help} \ No newline at end of file
diff --git a/releases/_artifacts/v1.0.6/missing.css b/releases/_artifacts/v1.0.6/missing.css
new file mode 100644
index 0000000..763a1e6
--- /dev/null
+++ b/releases/_artifacts/v1.0.6/missing.css
@@ -0,0 +1,2417 @@
+/* Document
+ * ========================================================================== */
+
+/**
+ * 1. Add border box sizing in all browsers (opinionated).
+ * 2. Backgrounds do not repeat by default (opinionated).
+ */
+
+*,
+::before,
+::after {
+ box-sizing: border-box; /* 1 */
+ background-repeat: no-repeat; /* 2 */
+}
+
+/**
+ * 1. Add text decoration inheritance in all browsers (opinionated).
+ * 2. Add vertical alignment inheritance in all browsers (opinionated).
+ */
+
+::before,
+::after {
+ text-decoration: inherit; /* 1 */
+ vertical-align: inherit; /* 2 */
+}
+
+/**
+ * 1. Use the default cursor in all browsers (opinionated).
+ * 3. Breaks words to prevent overflow in all browsers (opinionated).
+ * 5. Remove the grey highlight on links in iOS (opinionated).
+ * 6. Prevent adjustments of font size after orientation changes in iOS.
+ */
+
+:root {
+ cursor: default; /* 1 */
+ overflow-wrap: break-word; /* 3 */
+ -webkit-tap-highlight-color: transparent; /* 5 */
+ text-size-adjust: none;
+ -webkit-text-size-adjust: none;
+}
+
+/* Text-level semantics
+ * ========================================================================== */
+
+/**
+ * Add the correct text decoration in Safari.
+ */
+
+abbr[title] {
+ text-decoration: underline;
+ -webkit-text-decoration: underline dotted;
+ text-decoration: underline dotted;
+}
+
+/**
+ * Add the correct font weight in Chrome, Edge, and Safari.
+ */
+
+strong, b {
+ font-weight: bolder;
+}
+
+/**
+ * Add the correct font size in all browsers.
+ */
+
+small {
+ font-size: 80%;
+}
+
+/* Embedded content
+ * ========================================================================== */
+
+/*
+ * Change the alignment on media elements in all browsers (opinionated).
+ */
+
+audio, canvas, iframe, img, svg, video {
+ vertical-align: middle;
+}
+
+/**
+ * Change the fill color to match the text color in all browsers (opinionated).
+ */
+
+svg:not([fill]) {
+ fill: currentColor;
+}
+
+/* Tabular data
+ * ========================================================================== */
+
+/**
+ * 1. Collapse border spacing in all browsers (opinionated).
+ * 2. Correct table border color in Chrome, Edge, and Safari.
+ * 3. Remove text indentation from table contents in Chrome, Edge, and Safari.
+ */
+
+table {
+ border-collapse: collapse; /* 1 */
+ border-color: currentColor; /* 2 */
+ text-indent: 0; /* 3 */
+}
+
+/* Forms
+ * ========================================================================== */
+
+/**
+ * Remove the margin on controls in Safari.
+ */
+
+button, input, select {
+ margin: 0;
+}
+
+/**
+ * Correct the inability to style buttons in iOS and Safari.
+ */
+
+button, [type="button"], [type="reset"], [type="submit"] {
+ -webkit-appearance: button;
+}
+
+/**
+ * Change the inconsistent appearance in all browsers (opinionated).
+ */
+
+fieldset {
+ border: 1px solid #a0a0a0;
+}
+
+/**
+ * Add the correct vertical alignment in Chrome, Edge, and Firefox.
+ */
+
+progress {
+ vertical-align: baseline;
+}
+
+/**
+ * 1. Remove the margin in Firefox and Safari.
+ */
+
+textarea {
+ margin: 0; /* 1 */
+}
+
+/**
+ * 1. Correct the odd appearance in Chrome, Edge, and Safari.
+ * 2. Correct the outline style in Safari.
+ */
+
+[type="search"] {
+ -webkit-appearance: textfield; /* 1 */
+ outline-offset: -2px; /* 2 */
+}
+
+/**
+ * Correct the cursor style of increment and decrement buttons in Safari.
+ */
+
+::-webkit-inner-spin-button,
+::-webkit-outer-spin-button {
+ block-size: auto;
+}
+
+/**
+ * Correct the text style of placeholders in Chrome, Edge, and Safari.
+ */
+
+::-webkit-input-placeholder {
+ color: inherit;
+ opacity: 0.54;
+}
+
+/**
+ * Remove the inner padding in Chrome, Edge, and Safari on macOS.
+ */
+
+::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+/**
+ * 1. Correct the inability to style upload buttons in iOS and Safari.
+ * 2. Change font properties to `inherit` in Safari.
+ */
+
+::-webkit-file-upload-button {
+ -webkit-appearance: button; /* 1 */
+ font: inherit; /* 2 */
+}
+
+/* Interactive
+ * ========================================================================== */
+
+[hidden] {
+ display: none !important;
+}
+
+:focus-visible {
+ outline: .2em solid var(--accent);
+ z-index: 32;
+}
+
+iframe:focus-visible,
+ html:focus-visible,
+ body:focus-visible {
+ outline: none;
+ }
+
+:target {
+ outline: .2em solid var(--fg);
+ z-index: 2;
+}
+
+/*
+ * Add the correct display in Safari.
+ */
+
+details > summary:first-of-type {
+ display: list-item;
+}
+
+/* Accessibility
+ * ========================================================================== */
+
+/**
+ * Change the cursor on busy elements in all browsers (opinionated).
+ */
+
+[aria-busy="true"] {
+ cursor: progress;
+}
+
+/*
+ * Change the cursor on disabled, not-editable, or otherwise
+ * inoperable elements in all browsers (opinionated).
+ */
+
+[aria-disabled="true"], [disabled] {
+ cursor: not-allowed;
+}
+
+datalist {
+ display: none !important;
+}
+
+/* https://github.com/fchristant/colar/ */
+
+:root {
+ --gray-0: #f8fafb;
+ --gray-1: #f2f4f6;
+ --gray-2: #ebedef;
+ --gray-3: #e0e4e5;
+ --gray-4: #d1d6d8;
+ --gray-5: #b1b6b9;
+ --gray-6: #979b9d;
+ --gray-7: #7e8282;
+ --gray-8: #666968;
+ --gray-9: #50514f;
+ --gray-10: #3a3a37;
+ --gray-11: #252521;
+ --gray-12: #121210;
+
+ --red-0: #fff5f5;
+ --red-1: #ffe3e3;
+ --red-2: #ffc9c9;
+ --red-3: #ffa8a8;
+ --red-4: #ff8787;
+ --red-5: #ff6b6b;
+ --red-6: #fa5252;
+ --red-7: #f03e3e;
+ --red-8: #e03131;
+ --red-9: #c92a2a;
+ --red-10: #b02525;
+ --red-11: #962020;
+ --red-12: #7d1a1a;
+
+ --pink-0: #fff0f6;
+ --pink-1: #ffdeeb;
+ --pink-2: #fcc2d7;
+ --pink-3: #faa2c1;
+ --pink-4: #f783ac;
+ --pink-5: #f06595;
+ --pink-6: #e64980;
+ --pink-7: #d6336c;
+ --pink-8: #c2255c;
+ --pink-9: #a61e4d;
+ --pink-10: #8c1941;
+ --pink-11: #731536;
+ --pink-12: #59102a;
+
+ --purple-0: #f8f0fc;
+ --purple-1: #f3d9fa;
+ --purple-2: #eebefa;
+ --purple-3: #e599f7;
+ --purple-4: #da77f2;
+ --purple-5: #cc5de8;
+ --purple-6: #be4bdb;
+ --purple-7: #ae3ec9;
+ --purple-8: #9c36b5;
+ --purple-9: #862e9c;
+ --purple-10: #702682;
+ --purple-11: #5a1e69;
+ --purple-12: #44174f;
+
+ --violet-0: #f3f0ff;
+ --violet-1: #e5dbff;
+ --violet-2: #d0bfff;
+ --violet-3: #b197fc;
+ --violet-4: #9775fa;
+ --violet-5: #845ef7;
+ --violet-6: #7950f2;
+ --violet-7: #7048e8;
+ --violet-8: #6741d9;
+ --violet-9: #5f3dc4;
+ --violet-10: #5235ab;
+ --violet-11: #462d91;
+ --violet-12: #3a2578;
+
+ --indigo-0: #edf2ff;
+ --indigo-1: #dbe4ff;
+ --indigo-2: #bac8ff;
+ --indigo-3: #91a7ff;
+ --indigo-4: #748ffc;
+ --indigo-5: #5c7cfa;
+ --indigo-6: #4c6ef5;
+ --indigo-7: #4263eb;
+ --indigo-8: #3b5bdb;
+ --indigo-9: #364fc7;
+ --indigo-10: #2f44ad;
+ --indigo-11: #283a94;
+ --indigo-12: #21307a;
+
+ --blue-0: #e7f5ff;
+ --blue-1: #d0ebff;
+ --blue-2: #a5d8ff;
+ --blue-3: #74c0fc;
+ --blue-4: #4dabf7;
+ --blue-5: #339af0;
+ --blue-6: #228be6;
+ --blue-7: #1c7ed6;
+ --blue-8: #1971c2;
+ --blue-9: #1864ab;
+ --blue-10: #145591;
+ --blue-11: #114678;
+ --blue-12: #0d375e;
+
+ --cyan-0: #e3fafc;
+ --cyan-1: #c5f6fa;
+ --cyan-2: #99e9f2;
+ --cyan-3: #66d9e8;
+ --cyan-4: #3bc9db;
+ --cyan-5: #22b8cf;
+ --cyan-6: #15aabf;
+ --cyan-7: #1098ad;
+ --cyan-8: #0c8599;
+ --cyan-9: #0b7285;
+ --cyan-10: #095c6b;
+ --cyan-11: #074652;
+ --cyan-12: #053038;
+
+ --teal-0: #e6fcf5;
+ --teal-1: #c3fae8;
+ --teal-2: #96f2d7;
+ --teal-3: #63e6be;
+ --teal-4: #38d9a9;
+ --teal-5: #20c997;
+ --teal-6: #12b886;
+ --teal-7: #0ca678;
+ --teal-8: #099268;
+ --teal-9: #087f5b;
+ --teal-10: #066649;
+ --teal-11: #054d37;
+ --teal-12: #033325;
+
+ --green-0: #ebfbee;
+ --green-1: #d3f9d8;
+ --green-2: #b2f2bb;
+ --green-3: #8ce99a;
+ --green-4: #69db7c;
+ --green-5: #51cf66;
+ --green-6: #40c057;
+ --green-7: #37b24d;
+ --green-8: #2f9e44;
+ --green-9: #2b8a3e;
+ --green-10: #237032;
+ --green-11: #1b5727;
+ --green-12: #133d1b;
+
+ --lime-0: #f4fce3;
+ --lime-1: #e9fac8;
+ --lime-2: #d8f5a2;
+ --lime-3: #c0eb75;
+ --lime-4: #a9e34b;
+ --lime-5: #94d82d;
+ --lime-6: #82c91e;
+ --lime-7: #74b816;
+ --lime-8: #66a80f;
+ --lime-9: #5c940d;
+ --lime-10: #4c7a0b;
+ --lime-11: #3c6109;
+ --lime-12: #2c4706;
+
+ --yellow-0: #fff9db;
+ --yellow-1: #fff3bf;
+ --yellow-2: #ffec99;
+ --yellow-3: #ffe066;
+ --yellow-4: #ffd43b;
+ --yellow-5: #fcc419;
+ --yellow-6: #fab005;
+ --yellow-7: #f59f00;
+ --yellow-8: #f08c00;
+ --yellow-9: #e67700;
+ --yellow-10: #b35c00;
+ --yellow-11: #804200;
+ --yellow-12: #663500;
+
+ --orange-0: #fff4e6;
+ --orange-1: #ffe8cc;
+ --orange-2: #ffd8a8;
+ --orange-3: #ffc078;
+ --orange-4: #ffa94d;
+ --orange-5: #ff922b;
+ --orange-6: #fd7e14;
+ --orange-7: #f76707;
+ --orange-8: #e8590c;
+ --orange-9: #d9480f;
+ --orange-10: #bf400d;
+ --orange-11: #99330b;
+ --orange-12: #802b09;
+
+ --choco-0: #fff8dc;
+ --choco-1: #fce1bc;
+ --choco-2: #f7ca9e;
+ --choco-3: #f1b280;
+ --choco-4: #e99b62;
+ --choco-5: #df8545;
+ --choco-6: #d46e25;
+ --choco-7: #bd5f1b;
+ --choco-8: #a45117;
+ --choco-9: #8a4513;
+ --choco-10: #703a13;
+ --choco-11: #572f12;
+ --choco-12: #3d210d;
+
+ --brown-0: #faf4eb;
+ --brown-1: #ede0d1;
+ --brown-2: #e0cab7;
+ --brown-3: #d3b79e;
+ --brown-4: #c5a285;
+ --brown-5: #b78f6d;
+ --brown-6: #a87c56;
+ --brown-7: #956b47;
+ --brown-8: #825b3a;
+ --brown-9: #6f4b2d;
+ --brown-10:#5e3a21;
+ --brown-11:#4e2b15;
+ --brown-12: #422412;
+
+ --sand-0: #f8fafb;
+ --sand-1: #e6e4dc;
+ --sand-2: #d5cfbd;
+ --sand-3: #c2b9a0;
+ --sand-4: #aea58c;
+ --sand-5: #9a9178;
+ --sand-6: #867c65;
+ --sand-7: #736a53;
+ --sand-8: #5f5746;
+ --sand-9: #4b4639;
+ --sand-10:#38352d;
+ --sand-11:#252521;
+ --sand-12: #121210;
+
+ --camo-0: #f9fbe7;
+ --camo-1: #e8ed9c;
+ --camo-2: #d2df4e;
+ --camo-3: #c2ce34;
+ --camo-4: #b5bb2e;
+ --camo-5: #a7a827;
+ --camo-6: #999621;
+ --camo-7: #8c851c;
+ --camo-8: #7e7416;
+ --camo-9: #6d6414;
+ --camo-10: #5d5411;
+ --camo-11: #4d460e;
+ --camo-12: #36300a;
+
+ --jungle-0: #ecfeb0;
+ --jungle-1: #def39a;
+ --jungle-2: #d0e884;
+ --jungle-3: #c2dd6e;
+ --jungle-4: #b5d15b;
+ --jungle-5: #a8c648;
+ --jungle-6: #9bbb36;
+ --jungle-7: #8fb024;
+ --jungle-8: #84a513;
+ --jungle-9: #7a9908;
+ --jungle-10: #658006;
+ --jungle-11: #516605;
+ --jungle-12: #3d4d04;
+}
+
+/***
+ 4.1 The document element
+ https://html.spec.whatwg.org/multipage/semantics.html#the-root-element
+
+ 4.3 Sections
+ https://html.spec.whatwg.org/multipage/sections.html
+ ***/
+
+html {
+ font-family: var(--main-font);
+ line-height: var(--rhythm);
+
+ background: var(--bg);
+ color: var(--fg);
+ scroll-padding-block-start: calc(4 * var(--gap));
+}
+
+body {
+ margin: 0;
+}
+
+header, footer, section + section {
+ margin-block: calc(2 * var(--gap));
+}
+
+nav a {
+ text-decoration: none;
+ color: var(--accent);
+ }
+
+/* SEE components/box.css */
+
+aside h1,
+ aside h2,
+ aside h3,
+ aside h4,
+ aside h5,
+ aside h6 {
+ font-size: 1em;
+ text-transform: none;
+ letter-spacing: none;
+ }
+
+aside.big {
+ /* Pull quote */
+ background: none;
+ border: none;
+ -webkit-border-start: 1px solid var(--muted-fg);
+ border-inline-start: 1px solid var(--muted-fg);
+ border-radius: 0;
+ padding: 0;
+ -webkit-padding-start: var(--rhythm);
+ padding-inline-start: var(--rhythm);
+ font-style: italic;
+ color: var(--accent);
+ }
+
+h1, h2, h3, h4, h5, h6,
+.\<h1\>, .\<h2\>, .\<h3\>, .\<h4\>, .\<h5\>, .\<h6\> {
+ -webkit-margin-after: var(--gap);
+ margin-block-end: var(--gap);
+ font-family: var(--secondary-font);
+ font-size: 1em;
+ -webkit-margin-before: calc(2 * var(--gap));
+ margin-block-start: calc(2 * var(--gap));
+ position: relative;
+}
+
+h1, .\<h1\> {
+ font-size: 2em;
+ text-transform: none;
+ line-height: calc(2 * var(--rhythm));
+ letter-spacing: 0;
+}
+
+h2, .\<h2\> {
+ font-size: 1.6em;
+ text-transform: none;
+ line-height: calc(1.5 * var(--rhythm));
+ letter-spacing: 0;
+}
+
+h3, .\<h3\> {
+ font-size: 1.17em;
+ line-height: calc(1 * var(--rhythm));
+}
+
+h4, .\<h4\>, h5, .\<h5\>, h6, .\<h6\> {
+ font-size: 1em;
+ text-transform: none;
+ line-height: calc(1 * var(--rhythm));
+ letter-spacing: 0;
+ -webkit-margin-before: var(--gap);
+ margin-block-start: var(--gap);
+}
+
+h1 + h2,
+h2 + h3,
+h3 + h4,
+h4 + h5,
+h5 + h6,
+h1:first-child,
+h2:first-child,
+h3:first-child,
+h4:first-child,
+h5:first-child,
+h6:first-child {
+ -webkit-margin-before: var(--gap);
+ margin-block-start: var(--gap);
+}
+
+h1:target,
+h2:target,
+h3:target,
+h4:target,
+h5:target,
+h6:target {
+ outline: none
+}
+
+h1:target::before, h2:target::before, h3:target::before, h4:target::before, h5:target::before, h6:target::before {
+ content: "";
+ display: block;
+ position: absolute;
+ left: -.5em;
+ width: 4px;
+ height: 100%;
+ background: var(--accent);
+ }
+
+header {
+ font-family: var(--secondary-font);
+ -webkit-border-after: 1px solid var(--graphical-fg);
+ border-block-end: 1px solid var(--graphical-fg);
+}
+
+footer {
+ font-family: var(--secondary-font);
+ -webkit-border-before: 1px solid var(--graphical-fg);
+ border-block-start: 1px solid var(--graphical-fg);
+}
+
+body > header,
+body > footer,
+main + footer {
+ padding: var(--rhythm) calc((100% - var(--eff-line-length)) / 2)
+}
+
+address {
+ --density: 0;
+}
+
+/***
+ 4.4 Grouping content
+ https://html.spec.whatwg.org/multipage/grouping-content.html
+ ***/
+
+p {
+ margin-block: var(--gap);
+}
+
+hr {
+ color: inherit;
+ margin-inline: 0;
+ margin-block: var(--gap);
+
+ flex: 0 1 0px;
+ -webkit-border-start: 1px solid var(--accent);
+ border-inline-start: 1px solid var(--accent);
+ block-size: auto;
+ -webkit-border-before: 1px solid var(--accent);
+ border-block-start: 1px solid var(--accent);
+ -webkit-border-after: none;
+ border-block-end: none;
+ -webkit-border-end: none;
+ border-inline-end: none;
+}
+
+pre {
+ font-family: var(--mono-font);
+ font-size: .9em;
+ line-height: var(--rhythm);
+ tab-size: 2;
+
+ margin: var(--gap) 0;
+
+ overflow-x: auto;
+ scrollbar-width: thin;
+ scrollbar-color: var(--accent) transparent;
+}
+
+blockquote {
+ margin-inline: 0 var(--gap);
+ padding-inline: var(--gap) 0;
+ margin-block: var(--gap);
+
+ font-size: 1.1em;
+ line-height: var(--rhythm);
+ font-style: italic;
+
+ -webkit-border-start: 1px solid var(--graphical-fg);
+
+ border-inline-start: 1px solid var(--graphical-fg);
+ color: var(--muted-fg)
+}
+
+blockquote em, blockquote cite, blockquote dfn, blockquote var, blockquote i, blockquote address {
+ font-style: normal;
+ }
+
+blockquote footer {
+ text-align: right;
+ text-align: end;
+ }
+
+ul, ol {
+ -webkit-padding-start: var(--rhythm);
+ padding-inline-start: var(--rhythm)
+}
+
+ul ul, ul ol, ol ul, ol ol {
+ -webkit-padding-start: var(--gap);
+ padding-inline-start: var(--gap);
+ }
+
+ul[role="list"], ol[role="list"], ul[role="listbox"], ol[role="listbox"] {
+ -webkit-padding-start: 0;
+ padding-inline-start: 0;
+ list-style: none;
+ }
+
+ul {
+}
+
+ol {
+ list-style: decimal;
+}
+
+dl {
+ margin-block: var(--gap);
+}
+
+dt {
+ font-weight: bold;
+ font-family: var(--secondary-font);
+ }
+
+dd {
+ -webkit-margin-start: var(--rhythm);
+ margin-inline-start: var(--rhythm);
+ }
+
+li::marker {
+ font-family: var(--secondary-font);
+}
+
+figure {
+ max-width: 100%;
+ margin-inline: 0;
+
+ /* SEE components/box.css */
+}
+
+figcaption {
+ margin-block: var(--gap);
+
+ font-family: var(--secondary-font);
+
+ color: var(--muted-fg);
+}
+
+main {
+ max-inline-size: var(--eff-line-length);
+ inline-size: 100%;
+ margin-inline: auto
+}
+
+main:first-child { padding-top: var(--gap); }
+
+/***
+ 4.5 Text-level semantics
+ https://html.spec.whatwg.org/multipage/text-level-semantics.html
+
+ 4.7 Edits
+ https://html.spec.whatwg.org/multipage/edits.html
+ ***/
+
+/* Text-level semantics */
+
+a, .\<a\> {
+ color: var(--link-fg, var(--accent));
+ font-family: var(--secondary-font);
+ border-radius: var(--border-radius);
+ outline-offset: 1px;
+ background: none;
+ border: none;
+ font-size: 1em;
+ -webkit-text-decoration: 1px dashed underline;
+ text-decoration: 1px dashed underline
+}
+
+.list-of-links :is(a,.\<a\>) {
+ text-decoration: none
+}
+
+:is(a,.\<a\>):hover, :is(a,.\<a\>):focus {
+ -webkit-text-decoration: 2px solid underline;
+ text-decoration: 2px solid underline;
+ cursor: pointer;
+ outline: none;
+ }
+
+small[role="note"] {
+ /***
+ Sidenote
+ ***/
+ display: block;
+ float: inline-end;
+ clear: inline-end;
+
+ --sidenote-width: 20ch;
+
+ max-inline-size: var(--sidenote-width);
+ padding-inline: 1.5ch 1ch;
+
+ -webkit-margin-end: calc(1em - var(--sidenote-width));
+
+ margin-inline-end: calc(1em - var(--sidenote-width));
+ -webkit-margin-after: var(--rhythm);
+ margin-block-end: var(--rhythm);
+
+ font-family: var(--secondary-font);
+
+ background: var(--bg);
+ border: 1px solid transparent;
+
+ transition: transform .1s ease-in-out
+ }
+
+small[role="note"]:hover, small[role="note"]:focus-within {
+ border: 1px solid var(--graphical-fg);
+ border-radius: var(--border-radius);
+ transform: translateX(calc(
+ 0px - var(--sidenote-width)
+ + min(var(--gutter-width), var(--sidenote-width))
+ ))
+ }
+
+small, .\<small\> {
+ font-size: .8em;
+}
+
+s {
+ color: var(--bad-fg);
+}
+
+q {
+ font-style: italic
+}
+
+q em, q cite, q dfn, q var, q i, q address {
+ font-style: normal;
+ }
+
+time {
+ font-variant-numeric: tabular-nums;
+}
+
+code, samp, kbd {
+ font-family: var(--mono-font);
+ font-style: normal;
+}
+
+samp {
+ color: var(--ok-fg);
+}
+
+kbd kbd /*
+ We apply the key-like styling to a nested kbd element, a pattern shown in
+ WHATWG HTML for marking up keyboard input:
+
+ > Here the kbd element is used to indicate keys to press:
+ > ~~~ html
+ > <p>To make George eat an apple, press <kbd><kbd>Shift</kbd> + <kbd>F3</kbd></kbd></p>
+ > ~~~
+
+ The plain kbd element can also be used for clicking menus (<kbd>File |
+ New...</kbd>) or voice input (<kbd>Hey Siri, </kbd>)
+*/ {
+ display: inline-block;
+
+ padding: 0 .3em;
+ font-size: .8em;
+ line-height: 1.1em;
+
+ background: var(--interactive-bg);
+ border: 1px outset var(--graphical-fg);
+ border-block-end-width: 3px;
+ border-radius: var(--border-radius);
+}
+
+sub {
+ vertical-align: bottom;
+ line-height: 1;
+}
+
+sup {
+ vertical-align: top;
+ line-height: 1;
+}
+
+mark {
+ background: var(--warn-bg);
+ color: var(--warn-fg);
+}
+
+/* Edits */
+
+ins {
+ background: var(--ok-bg);
+ color: var(--ok-fg);
+}
+
+del {
+ background: var(--bad-bg);
+ color: var(--bad-fg);
+}
+
+/***
+ 4.8 Embedded content
+ https://html.spec.whatwg.org/multipage/embedded-content.html
+ ***/
+
+img, video, audio, iframe, object, embed {
+ max-inline-size: 100%;
+ inline-size: max-content;
+ block-size: auto;
+}
+
+/***
+ 4.9 Tabular data
+ https://html.spec.whatwg.org/multipage/tables.html
+ ***/
+
+table {
+ font-variant-numeric: tabular-nums;
+ font: inherit;
+}
+
+caption {
+ text-align: start;
+ font-family: var(--secondary-font);
+ font-style: italic;
+}
+
+tbody {
+ border-block: 1px solid var(--faded-fg);
+}
+
+thead {
+}
+
+tfoot {
+}
+
+tr {
+
+}
+
+td, th {
+ vertical-align: top
+}
+
+td:not(:last-child), th:not(:last-child) {
+ -webkit-padding-end: var(--rhythm);
+ padding-inline-end: var(--rhythm);
+ }
+
+td {
+ }
+
+th {
+ font-family: var(--secondary-font);
+ text-align: start;
+ }
+
+/***
+ 4.10 Forms
+ https://html.spec.whatwg.org/multipage/forms.html
+ ***/
+
+input { display: block; }
+
+label input:not([specificity-hack]) { display: inline; padding-block: 0; }
+
+button,
+input[type="submit"],
+input[type="reset"],
+input[type="button"],
+input::file-selector-button,
+.\<button\> {
+ display: inline-block;
+ padding: 0 calc(var(--rhythm) / 4);
+ vertical-align: middle;
+ box-sizing: border-box;
+
+ font-size: .8rem;
+ line-height: 1.125em;
+ font-family: var(--secondary-font);
+ min-height: var(--rhythm);
+
+ background: var(--interactive-bg);
+ color: var(--fg);
+ border: 1px solid var(--muted-fg);
+ box-shadow: 0 2px 4px -2px var(--fg);
+ border-radius: var(--border-radius);
+
+ /* a-specific resets */
+ color: var(--fg);
+ text-decoration: none;
+ display: inline-flex;
+ place-items: center
+}
+
+:is(button,input[type="submit"],input[type="reset"],input[type="button"],input::file-selector-button,.\<button\>):hover, :is(button,input[type="submit"],input[type="reset"],input[type="button"],input::file-selector-button,.\<button\>):focus-visible {
+ filter: brightness(1.1);
+ box-shadow: 0 3px 6px -2px var(--fg);
+
+ /* a-specific resets */
+ text-decoration: none;
+ }
+
+:is(button,input[type="submit"],input[type="reset"],input[type="button"],input::file-selector-button,.\<button\>):active {
+ box-shadow: none;
+ }
+
+:is(button,input[type="submit"],input[type="reset"],input[type="button"],input::file-selector-button,.\<button\>):where([aria-pressed="true"], [aria-expanded="true"]) {
+ box-shadow: 0 2px 4px -1px var(--fg) inset;
+ background: var(--pressed-interactive-bg);
+ }
+
+[disabled]:is(button,input[type="submit"],input[type="reset"],input[type="button"],input::file-selector-button,.\<button\>) {
+ color: var(--muted-fg);
+ box-shadow: none;
+ }
+
+strong > :is(button,input[type="submit"],input[type="reset"],input[type="button"],input::file-selector-button,.\<button\>) {
+ background: var(--accent);
+ color: var(--bg);
+ border: none;
+ font-weight: bold
+}
+
+strong > [disabled]:is(button,input[type="submit"],input[type="reset"],input[type="button"],input::file-selector-button,.\<button\>) {
+ color: var(--muted-accent);
+ }
+
+.big:is(button,input[type="submit"],input[type="reset"],input[type="button"],input::file-selector-button,.\<button\>) {
+ min-block-size: calc(1.5 * var(--rhythm));
+ font-size: 1rem;
+ padding-inline: calc(.5 * var(--rhythm));
+ line-height: var(--rhythm)
+}
+
+input:not([type]),
+input[type="text"],
+input[type="search"],
+input[type="tel"],
+input[type="url"],
+input[type="email"],
+input[type="password"],
+input[type="date"],
+input[type="month"],
+input[type="week"],
+input[type="time"],
+input[type="datetime"],
+input[type="datetime-local"],
+input[type="number"],
+select,
+textarea {
+ padding: calc(var(--rhythm) / 4);
+ vertical-align: top;
+
+ font-size: 1rem;
+ line-height: inherit;
+ font-family: var(--main-font);
+
+ background: var(--bg);
+ color: var(--fg);
+ border: 1px solid var(--graphical-fg);
+ border-radius: var(--border-radius);
+
+ vertical-align: top
+}
+
+:is(input:not([type]),input[type="text"],input[type="search"],input[type="tel"],input[type="url"],input[type="email"],input[type="password"],input[type="date"],input[type="month"],input[type="week"],input[type="time"],input[type="datetime"],input[type="datetime-local"],input[type="number"],select,textarea):focus-visible {
+ border: 1px solid var(--accent);
+ }
+
+:is(input:not([type]),input[type="text"],input[type="search"],input[type="tel"],input[type="url"],input[type="email"],input[type="password"],input[type="date"],input[type="month"],input[type="week"],input[type="time"],input[type="datetime"],input[type="datetime-local"],input[type="number"],select,textarea)::placeholder {
+ color: var(--muted-fg);
+ opacity: 1;
+ text-align: end;
+ }
+
+input[type="range"] {
+ width: 100%;
+ padding: calc(var(--gap) / 4);
+}
+
+input[type="color"] {
+ padding: 0;
+ margin: 0;
+ height: calc(1.5 * var(--rhythm));
+
+ border: none;
+ background: none;
+}
+
+input[type="file"] {
+ padding: calc(var(--gap) / 4) 0;
+ font: inherit;
+ line-height: calc(var(--rhythm) / 2)
+}
+
+input[type="file"]::file-selector-button {
+ margin-block: .1em 0;
+ -webkit-margin-end: 1ch;
+ margin-inline-end: 1ch;
+ }
+
+select[multiple] {
+ vertical-align: top;
+}
+
+optgroup::before {
+ color: var(--muted-fg);
+ font-style: normal;
+}
+
+progress {
+ /* TODO */
+}
+
+meter {
+ /* TODO */
+}
+
+label[for] {
+ display: block;
+ padding-block: calc(var(--gap) / 4);
+}
+
+fieldset {
+ position: relative;
+
+ padding: var(--gap);
+ margin: var(--gap) 0;
+ width: 100%;
+ border-radius: var(--border-radius);
+}
+
+fieldset > legend + * { -webkit-margin-before: 0; margin-block-start: 0 }
+
+fieldset {
+
+ border: 1px solid var(--graphical-fg);
+}
+
+/***
+ 4.11 Interactive elements
+ https://html.spec.whatwg.org/multipage/interactive-elements.html#interactive-elements
+ ***/
+
+details:not(specificity-hack) {
+ /* SEE components/box.css */
+
+ -webkit-padding-before: 0;
+
+ padding-block-start: 0
+}
+
+details:not(specificity-hack):not([open]) { -webkit-padding-after: 0; padding-block-end: 0; }
+
+summary {
+ margin: calc(0px - var(--gap));
+ margin-top: calc(0px - var(--gap));
+ margin-bottom: 0;
+ padding-inline: var(--gap);
+
+ font-family: var(--secondary-font);
+ font-weight: bold;
+
+ cursor: pointer
+}
+
+summary:focus-visible, summary:active {
+ filter: brightness(.8);
+ outline: none;
+ }
+
+dialog {
+ /* SEE components/box.css */
+
+ inline-inset: 0;
+
+ block-size: -moz-fit-content;
+
+ block-size: fit-content;
+ inline-size: -moz-fit-content;
+ inline-size: fit-content;
+
+ margin: auto !important;
+
+ background-color: var(--bg);
+ color: var(--fg);
+ border-color: var(--accent);
+}
+
+dialog[open]::backdrop {
+ display: block;
+ background: black;
+ opacity: .4;
+ animation: bg 2s;
+}
+
+@keyframes bg {
+ from { background: transparent; }
+}
+
+dialog:not([open]) {
+ display: none;
+}
+
+.box,
+/* defined elsewhere */
+[role=menu],
+.sidebar-layout > header,
+[role=tabpanel],
+figure,
+details,
+dialog,
+aside {
+ margin: var(--gap) 0;
+ padding: var(--gap);
+ overflow: clip;
+
+ border-radius: var(--border-radius);
+ background: var(--box-bg);
+ border: 1px solid var(--graphical-fg);
+}
+
+.titlebar {
+ margin-inline: calc(0px - var(--gap));
+ -webkit-margin-after: calc(0px - var(--gap));
+ margin-block-end: calc(0px - var(--gap));
+ padding-inline: var(--gap);
+
+ font: inherit;
+ font-family: var(--secondary-font);
+ font-weight: bold;
+
+ translate: 0 calc(-1px - var(--gap));
+
+ background: var(--graphical-fg);
+ color: var(--bg);
+}
+
+.sub-title, sub-title {
+ /***
+ Meant for use in headings. Make sure to also use visually-hidden punctuation
+ to mark the subtitle as shown below:
+
+ 1 | <h1>
+ 2 | Foo Bar<v-h>:</v-h>
+ 3 | <sub-title>How I Learned To Stop Worrying and Love Baz</sub-title>
+ 4 | </h1>
+
+ 1 | <h1>
+ 2 | <sub-title class="-allcaps">Breaking News</sub-title><v-h>:</v-h>
+ 3 | Bad Thing Happens
+ 4 | <h1>
+ ***/
+
+ display: block;
+
+ font-weight: normal;
+
+ color: var(--muted-fg);
+}
+
+.tool-bar, [role=toolbar] {
+ display: flex;
+ flex-flow: row wrap;
+ gap: calc(var(--gap) / 2)
+}
+
+.tool-bar > *, [role=toolbar] > * { margin: 0; }
+
+.sidebar-layout header li {
+ margin-block: calc(.5 * var(--gap));
+ }
+
+.sidebar-layout header a {
+ font-weight: bold;
+ }
+
+@media (min-width: 75ch) {
+
+.sidebar-layout {
+ display: grid;
+ grid-template-columns: 25ch auto;
+ inset: 0
+}
+
+ .sidebar-layout > header {
+ border-block: none;
+ -webkit-border-start: none;
+ border-inline-start: none;
+ margin: 0;
+ }
+
+ .sidebar-layout > :nth-child(2) {
+ overflow: auto;
+ --full-width: calc(100vw - 25ch);
+ margin-top: var(--gap);
+ }
+ }
+
+.breadcrumbs[aria-label] {
+ font-family: var(--secondary-font)
+}
+
+.breadcrumbs[aria-label] ul, .breadcrumbs[aria-label] ol {
+ list-style: none;
+ -webkit-padding-start: 0;
+ padding-inline-start: 0;
+ }
+
+.breadcrumbs[aria-label] li {
+ display: inline
+ }
+
+:is(.breadcrumbs[aria-label] li)+li::before {
+ content: ' / ' / '';
+ content: ' / ';
+ display: inline;
+ }
+
+.breadcrumbs[aria-label] [aria-current="page"] {
+ font-weight: bold;
+ }
+
+.chip, chip {
+ font-family: var(--secondary-font);
+ border: 1px solid var(--accent);
+ background: var(--box-bg);
+ border-radius: calc(var(--rhythm) / 2);
+ padding-inline: calc(var(--rhythm) / 2);
+}
+
+.navbar {
+ padding: var(--rhythm);
+
+ font-family: var(--secondary-font);
+
+ background: var(--box-bg);
+ -webkit-border-after: 1px solid var(--accent);
+ border-block-end: 1px solid var(--accent);
+
+ overflow-x: auto;
+ scrollbar-width: thin;
+
+ position: sticky;
+ z-index: 5;
+ top: 0;
+ left: 0;
+ right: 0;
+
+ /* Inner layout */
+ display: flex;
+ flex-flow: row;
+ align-items: center;
+ gap: var(--gap)
+}
+
+.navbar.expanded {
+ flex-flow: column;
+ align-items: start;
+
+ max-height: 90vh;
+ overflow-y: auto
+ }
+
+.navbar.expanded ul[role="list"] { flex-flow: column; }
+
+.navbar * {
+ flex-shrink: 0;
+ margin-block: 0;
+ }
+
+.navbar:not(.expanded) > :first-child, .navbar:not(.expanded) nav > :first-child { -webkit-margin-start: auto; margin-inline-start: auto; }
+
+.navbar:not(.expanded) > :last-child, .navbar:not(.expanded) nav > :last-child { -webkit-margin-end: auto; margin-inline-end: auto; }
+
+.navbar hr { align-self: stretch; }
+
+.navbar nav ul[role="list"] {
+ display: flex;
+ flex-flow: row;
+ gap: var(--rhythm)
+ }
+
+.navbar nav ul[role="list"] * { flex-shrink: 0 }
+
+.navbar nav ul[role="list"] {
+ -webkit-padding-start: 0;
+ padding-inline-start: 0;
+ }
+
+.navbar a {
+ font-weight: bold;
+ text-decoration: none;
+ padding-inline: .2em;
+ }
+
+.navbar a:hover, .navbar a:focus {
+ text-decoration: underline;
+ }
+
+.navbar [aria-current=page] {
+ position: relative;
+ }
+
+.navbar [aria-current=page]::after {
+ width: 100%;
+ height: 6px;
+ content: "";
+ display: block;
+ position: absolute;
+ bottom: calc(-1 * var(--gap));
+ background: currentcolor;
+ }
+
+.navbar.expanded [aria-current=page]::after {
+ width: 6px;
+ height: 100%;
+ position: absolute;
+ left: calc(-1 * var(--gap));
+ top: 0;
+ }
+
+.permalink-anchor {
+ display: none
+}
+
+*:hover > .permalink-anchor {
+ display: initial
+}
+
+button.iconbutton {
+ border: none;
+ background: none;
+ color: currentcolor;
+ padding: 0;
+ line-height: var(--rhythm);
+ font-size: 24px;
+ width: 24px;
+ height: 24px;
+ display: inline-block;
+ text-align: center;
+ border-radius: 50%;
+ transition: font-weight .2s ease-in-out
+}
+
+button.iconbutton:hover, button.iconbutton:focus-visible {
+ outline: 1px solid var(--accent);
+ outline-offset: 6px;
+ }
+
+button.iconbutton:active {
+ outline-offset: 3px;
+ background: none;
+ }
+
+button.iconbutton[aria-pressed=true] {
+ box-shadow: none;
+ transform: none;
+ }
+
+[role="tablist"] {
+ display: flex;
+ gap: .5ch;
+ scrollbar-width: thin;
+}
+
+[role="tab"][role="tab"] {
+ all: initial;
+
+ font-family: var(--secondary-font);
+
+ padding: 0 calc(var(--rhythm) / 4);
+ margin: 0;
+ min-height: var(--rhythm);
+ bottom: -1px;
+ position: relative;
+
+ color: var(--fg);
+ border: solid var(--graphical-fg);
+ border-width: 1px;
+ background: var(--interactive-bg);
+
+ border-start-start-radius: .4em;
+ border-start-end-radius: .4em
+}
+
+[role="tab"][role="tab"]:active, [role="tab"][role="tab"][aria-selected="true"] {
+ background: var(--box-bg);
+ -webkit-border-after: 1px solid transparent;
+ border-block-end: 1px solid transparent;
+ }
+
+[role="tab"][role="tab"]:hover {
+ background-color: var(--box-bg);
+ box-shadow: none;
+ }
+
+[role="tab"][role="tab"]:focus-visible {
+ box-shadow: none;
+ color: var(--accent);
+ text-decoration: underline;
+ }
+
+[role="tabpanel"] {
+ /* SEE components/box.css */
+
+ -webkit-margin-before: 0;
+
+ margin-block-start: 0;
+ border-start-start-radius: 0;
+ border-start-end-radius: 0;
+ z-index: 1;
+}
+
+[role="menu"] {
+ /* SEE components/box.css */
+ position: absolute;
+
+ z-index: 10;
+
+ padding: calc(var(--gap) / 2) 0;
+ margin: 1px 0 0 0;
+
+ display: flex;
+ flex-flow: column nowrap;
+}
+
+[role=menuitem] {
+ padding: 0 calc(var(--gap) / 2);
+
+ display: block;
+
+ text-decoration: none;
+ border-radius: 0;
+
+ color: var(--fg)
+}
+
+[role=menuitem]:focus, [role=menuitem]:active {
+ background: var(--accent);
+ color: var(--bg);
+ }
+
+[role=listbox] {
+ list-style: none
+}
+
+[role=listbox] [role=option] {
+ margin-inline: calc(-1 * var(--gap));
+ padding-inline: var(--gap);
+ }
+
+[role=listbox] [role=option][aria-selected=true] {
+ background: var(--interactive-bg);
+ }
+
+[role=listbox] .active[role=option] {
+ --temporary-bg: var(--accent);
+ --temporary-fg: var(--bg);
+ --temporary-accent: parent-var(--muted-accent);
+ --temporary-muted-accent: parent-var(--box-bg);
+
+ background: var(--temporary-bg);
+ color: var(--temporary-fg)
+ }
+
+[role=listbox] .active[role=option] > * {
+ --bg: var(--temporary-bg);
+ --fg: var(--temporary-fg);
+ --accent: var(--temporary-accent);
+ --muted-accent: var(--temporary-muted-accent);
+ }
+
+[aria-orientation="vertical"] {
+ flex-direction: column;
+ width: -moz-fit-content;
+ width: fit-content;
+ text-align: center;
+}
+
+.plain {
+ --box-bg: var(--plain-bg);
+ --accent: var(--plain-fg);
+ --graphical-fg: var(--plain-graphical-fg);
+}
+
+.info {
+ --box-bg: var(--info-bg);
+ --accent: var(--info-fg);
+ --graphical-fg: var(--info-graphical-fg);
+}
+
+.ok {
+ --box-bg: var(--ok-bg);
+ --accent: var(--ok-fg);
+ --graphical-fg: var(--ok-graphical-fg);
+}
+
+.warn {
+ --box-bg: var(--warn-bg);
+ --accent: var(--warn-fg);
+ --graphical-fg: var(--warn-graphical-fg);
+}
+
+.bad {
+ --box-bg: var(--bad-bg);
+ --accent: var(--bad-fg);
+ --graphical-fg: var(--bad-graphical-fg);
+}
+
+.color {
+ color: var(--accent);
+}
+
+.bg {
+ background: var(--box-bg);
+}
+
+.border {
+ border-style: solid;
+ border-color: var(--graphical-fg);
+}
+
+:root {
+ /* Colors */
+ --fg: var(--gray-12); /* Text. */
+ --muted-fg: var(--gray-10); /* Secondary text color. Will be
+ used with a background of --c-bg and --c-bg-2 -- check contrast! */
+ --faded-fg: var(--gray-6); /* Disabled text color. */
+ --graphical-fg: var(--plain-graphical-fg); /* Graphical elements. Will not
+ be used as a text color. */
+
+ --plain-fg: var(--blue-10);
+ --info-fg: var(--blue-11);
+ --ok-fg: var(--green-11);
+ --bad-fg: var(--red-11);
+ --warn-fg: var(--yellow-11);
+
+ --plain-graphical-fg: var(--gray-6);
+ --info-graphical-fg: var(--blue-6);
+ --ok-graphical-fg: var(--green-6);
+ --bad-graphical-fg: var(--red-6);
+ --warn-graphical-fg: var(--yellow-6);
+
+ --bg: var(--gray-0); /* Page background. */
+ --box-bg: var(--plain-bg); /* Background for blocks: cards, admonitions etc. */
+ --interactive-bg: var(--gray-4); /* Background for interactive elements */
+
+ --plain-bg: var(--gray-1);
+ --info-bg: var(--blue-1);
+ --ok-bg: var(--green-1);
+ --bad-bg: var(--red-1);
+ --warn-bg: var(--yellow-1);
+
+ --accent: var(--blue-10); /* Accent color. Will be used *as a text color* with a
+ background of --c-bg and --c-bg-2 -- check contrast! */
+ --muted-accent: var(--blue-7); /* Muted accent color. Will not be used for text. */
+
+ /* Lengths */
+ --rhythm: 1.4rem; /* Vertical rhythm, line height. */
+ --line-length: 40rem; /* Maximum line length for prose. */
+ --border-radius: .2rem;
+
+ /* Fonts */
+ --main-font: 'Source Sans 3', 'Source Sans Pro', -apple-system, system-ui, sans-serif;
+ --secondary-font: var(--main-font); /* Headings etc. */
+ --mono-font: 'M Plus Code Latin', monospace, monospace; /* monospace twice stops browsers from
+ shrinking this */
+
+ /* Density */
+ --density: 1;
+
+ /* Width */
+ --full-width: 100vw;
+
+ /* Do not set these. */
+ --eff-line-length: /* Effective line length for prose. */
+ min(
+ calc( var(--full-width) - (2 * var(--rhythm)) ),
+ var(--line-length)
+ );
+
+ --gutter-width: /* Width of spaces at each side of page content. */
+ calc(
+ (
+ var(--full-width) /* Viewport width */
+ - var(--eff-line-length) /* minus line width */
+ ) / 2); /* Divide by 2: there are two page margins */
+}
+
+@media (prefers-color-scheme: dark) {
+ :root:not(.-no-dark-theme) {
+ --fg: var(--gray-0);
+ --muted-fg: var(--gray-2);
+ --faded-fg: var(--gray-7);
+
+ --plain-bg: var(--gray-11);
+ --info-bg: var(--blue-12);
+ --ok-bg: var(--green-12);
+ --bad-bg: var(--red-12);
+ --warn-bg: var(--yellow-12);
+
+ --plain-faded-fg: var(--blue-6);
+ --info-faded-fg: var(--blue-6);
+ --ok-faded-fg: var(--green-6);
+ --bad-faded-fg: var(--red-6);
+ --warn-faded-fg: var(--yellow-6);
+
+ --bg: var(--gray-12);
+ --box-bg: var(--gray-10);
+ --interactive-bg: var(--gray-8);
+
+ --plain-fg: (--blue-3);
+ --info-fg: var(--blue-3);
+ --ok-fg: var(--green-3);
+ --bad-fg: var(--red-3);
+ --warn-fg: var(--yellow-3);
+
+ --accent: var(--blue-3);
+ --muted-accent: var(--blue-5);
+ }
+}
+
+* {
+ --gap: calc(var(--rhythm) * var(--density));
+ accent-color: var(--accent);
+}
+
+.textcolumns {
+ --col-width: 30ch;
+ column-width: var(--col-width);
+ column-gap: var(--gap);
+ margin-block: var(--gap)
+}
+
+.textcolumns :first-child { -webkit-margin-before: 0 !important; margin-block-start: 0 !important }
+
+.text-align\:center {
+ text-align: center;
+}
+
+.center {
+ display: grid;
+ place-items: center;
+}
+
+/**/
+
+.container {
+ max-inline-size: var(--eff-line-length);
+ margin-inline: auto;
+}
+
+.fullbleed {
+ position: relative;
+ width: var(--full-width);
+ left: 50%;
+ transform: translateX(calc(-.5 * var(--full-width)));
+
+ border-radius: 0;
+ border-inline: none;
+}
+
+.fullscreen {
+ height: 100vh;
+
+ position: relative;
+ width: 100vw;
+ left: 50%;
+ transform: translateX(-50vw);
+
+ border-radius: 0;
+ border-inline: none;
+}
+
+.width\:100\% { width:100%; max-width: 100% }
+
+.height\:100\% { height:100%; max-height: 100% }
+
+/**/
+
+/* margin-trim had better be implemented soon */
+
+:is(
+ body,
+ .box,
+ [role=menu],
+ .sidebar-layout > header,
+ [role=tabpanel],
+ figure,
+ details,
+ dialog,
+ aside,
+ fieldset,
+ dd,
+ td,
+ th
+)>:first-child:first-child:first-child:first-child,
+ :is(
+ body,
+ .box,
+ [role=menu],
+ .sidebar-layout > header,
+ [role=tabpanel],
+ figure,
+ details,
+ dialog,
+ aside,
+ fieldset,
+ dd,
+ td,
+ th
+)>:first-child>:first-child:first-child:first-child,
+ :is(
+ body,
+ .box,
+ [role=menu],
+ .sidebar-layout > header,
+ [role=tabpanel],
+ figure,
+ details,
+ dialog,
+ aside,
+ fieldset,
+ dd,
+ td,
+ th
+)>:first-child>:first-child>:first-child:first-child,
+ :is(
+ body,
+ .box,
+ [role=menu],
+ .sidebar-layout > header,
+ [role=tabpanel],
+ figure,
+ details,
+ dialog,
+ aside,
+ fieldset,
+ dd,
+ td,
+ th
+)>:first-child>:first-child>:first-child>:first-child { -webkit-margin-before: 0; margin-block-start: 0; }
+
+:is(
+ body,
+ .box,
+ [role=menu],
+ .sidebar-layout > header,
+ [role=tabpanel],
+ figure,
+ details,
+ dialog,
+ aside,
+ fieldset,
+ dd,
+ td,
+ th
+)>:last-child:last-child:last-child:last-child,
+ :is(
+ body,
+ .box,
+ [role=menu],
+ .sidebar-layout > header,
+ [role=tabpanel],
+ figure,
+ details,
+ dialog,
+ aside,
+ fieldset,
+ dd,
+ td,
+ th
+)>:last-child>:last-child:last-child:last-child,
+ :is(
+ body,
+ .box,
+ [role=menu],
+ .sidebar-layout > header,
+ [role=tabpanel],
+ figure,
+ details,
+ dialog,
+ aside,
+ fieldset,
+ dd,
+ td,
+ th
+)>:last-child>:last-child>:last-child:last-child,
+ :is(
+ body,
+ .box,
+ [role=menu],
+ .sidebar-layout > header,
+ [role=tabpanel],
+ figure,
+ details,
+ dialog,
+ aside,
+ fieldset,
+ dd,
+ td,
+ th
+)>:last-child>:last-child>:last-child>:last-child { -webkit-margin-after: 0; margin-block-end: 0; }
+
+/**/
+
+.padding { padding-inline: var(--gap) }
+
+.padding-block { padding-block: var(--gap) }
+
+.padding-block-start { -webkit-padding-before: var(--gap); padding-block-start: var(--gap) }
+
+.padding-block-end { -webkit-padding-after: var(--gap); padding-block-end: var(--gap) }
+
+.padding-inline { padding-inline: var(--gap) }
+
+.padding-inline-start { -webkit-padding-start: var(--gap); padding-inline-start: var(--gap) }
+
+.padding-inline-end { -webkit-padding-start: var(--gap); padding-inline-start: var(--gap) }
+
+.margin { margin: var(--gap) }
+
+.margin-block { margin-block: var(--gap) }
+
+.margin-block-start { -webkit-margin-before: var(--gap); margin-block-start: var(--gap) }
+
+.margin-block-end { -webkit-margin-after: var(--gap); margin-block-end: var(--gap) }
+
+.margin-inline { margin-inline: var(--gap) }
+
+.margin-inline-start { -webkit-margin-start: var(--gap); margin-inline-start: var(--gap) }
+
+.margin-inline-end { -webkit-margin-end: var(--gap); margin-inline-end: var(--gap) }
+
+.flow-gap > :not(:last-child) {
+ margin-bottom: 1em;
+ }
+
+/**/
+
+.inline { display: inline }
+
+.block { display: block }
+
+.contents { display: contents }
+
+.table {
+ display: table;
+ width: 100%;
+ margin: 0;
+}
+
+.row, .rows > * {
+ display: table-row
+}
+
+.row:not(:last-child):not([specificity-hack]) > *, .rows > *:not(:last-child):not([specificity-hack]) > * {
+ margin-bottom: var(--gap);
+ }
+
+.row > *:not([specificity-hack]), .rows > * > *:not([specificity-hack]) {
+ display: table-cell;
+ vertical-align: top;
+ }
+
+.row > * + *:not([specificity-hack]), :is(.rows > *) > * + *:not([specificity-hack]) {
+ -webkit-margin-start: var(--gap);
+ margin-inline-start: var(--gap);
+ display: inline-block;
+ }
+
+/**/
+
+.big {
+ font-size: 1.4em;
+ line-height: calc(1.5 * var(--rhythm));
+}
+
+/**/
+
+.fixed { position: fixed }
+
+.sticky { position: sticky }
+
+.top { top: 0 }
+
+.right { right: 0 }
+
+.bottom { bottom: 0 }
+
+.left { left: 0 }
+
+.float\:left { float: left }
+
+.float\:right { float: right }
+
+.overflow\:auto { overflow: auto }
+
+.overflow\:scroll { overflow: scroll }
+
+.airy { --density: 3; }
+
+.spacious { --density: 2; }
+
+.dense { --density: 1; }
+
+.crowded { --density: .5; }
+
+.packed { --density: 0; }
+
+.autodensity {
+ --density: 1
+}
+
+@media (min-width: 768px) {
+
+.autodensity { --density: 2
+}}
+
+@media (min-width: 1024px) {
+
+.autodensity { --density: 3
+}}
+
+.vh, v-h {
+ clip: rect(0 0 0 0);
+ -webkit-clip-path: inset(50%);
+ clip-path: inset(50%);
+ block-size: 1px;
+ inline-size: 1px;
+ overflow: hidden;
+ white-space: nowrap;
+}
+
+.all\:initial {
+ all: initial;
+}
+
+.bold { font-weight: bold }
+
+.italic {
+ font-style: italic
+}
+
+.italic em, .italic cite, .italic dfn, .italic var, .italic i, .italic address {
+ font-style: normal;
+ }
+
+.allcaps {
+ text-transform: uppercase;
+ letter-spacing: .1rem;
+}
+
+.primary-font { font-family: var(--primary-font) }
+
+.secondary-font { font-family: var(--secondary-font) }
+
+.display-font { font-family: var(--display-font) }
+
+.mono-font, .monospace { font-family: var(--mono-font) }
+
+.massivetext {
+ font-size: calc(.13 * var(--eff-line-length));
+ line-height: 1em;
+ letter-spacing: 0;
+}
+
+.aestheticbreak {
+ display: block;
+ margin: 0;
+ padding: 0;
+ height: calc(.5 * var(--gap));
+}
+
+.f-row {
+ display: flex;
+ flex-direction: row;
+ gap: var(--gap)
+}
+
+.f-row > * { margin: 0 }
+
+.f-col {
+ display: flex;
+ flex-direction: column;
+ gap: var(--gap)
+}
+
+.f-col > * { margin: 0 }
+
+.f-switch {
+ display: flex;
+ flex-wrap: wrap;
+ gap: var(--gap);
+ --f-switch-threshold: 55ch
+}
+
+.f-switch > * {
+ margin: 0;
+
+ flex-grow: 1;
+ flex-basis: calc((var(--f-switch-threshold) - 100%) * 999);
+ }
+
+.justify-content\:start { justify-content: start }
+
+.justify-content\:end { justify-content: end }
+
+.justify-content\:baseline { justify-content: baseline }
+
+.justify-content\:center { justify-content: center }
+
+.justify-content\:stretch { justify-content: stretch }
+
+.justify-content\:space-between { justify-content: space-between }
+
+.justify-content\:space-around { justify-content: space-around }
+
+.justify-content\:space-evenly { justify-content: space-evenly }
+
+.align-items\:start { align-items: start }
+
+.align-items\:end { align-items: end }
+
+.align-items\:baseline { align-items: baseline }
+
+.align-items\:center { align-items: center }
+
+.align-items\:stretch { align-items: stretch }
+
+.align-self\:start { align-self: start }
+
+.align-self\:end { align-self: end }
+
+.align-self\:baseline { align-self: baseline }
+
+.align-self\:center { align-self: center }
+
+.align-self\:stretch { align-self: stretch }
+
+.flex-grow\:0 { flex-grow: 0 }
+
+.flex-grow\:1 { flex-grow: 1 }
+
+.flex-grow\:2 { flex-grow: 2 }
+
+.flex-grow\:3 { flex-grow: 3 }
+
+.flex-grow\:4 { flex-grow: 4 }
+
+.flex-grow\:5 { flex-grow: 5 }
+
+.flex-grow\:6 { flex-grow: 6 }
+
+.flex-grow\:7 { flex-grow: 7 }
+
+.flex-grow\:8 { flex-grow: 8 }
+
+.flex-grow\:9 { flex-grow: 9 }
+
+.flex-grow\:10 { flex-grow: 10 }
+
+.flex-grow\:11 { flex-grow: 11 }
+
+.flex-grow\:12 { flex-grow: 12 }
+
+.flex-wrap\:wrap { flex-wrap: wrap }
+
+.flex-wrap\:nowrap { flex-wrap: nowrap }
+
+.grid {
+ display: grid;
+ grid-auto-columns: var(--grid-col-width, 1fr);
+ grid-auto-rows: var(--grid-row-width, auto);
+ gap: var(--gap)
+}
+
+.grid > * { margin: 0 }
+
+.grid-even-rows { --grid-row-width: 1fr; }
+
+.grid-variable-cols { --grid-column-width: auto; }
+
+[data-cols^="1 " ] { grid-column-start: 1 }
+
+[data-cols$=" 1" ] { grid-column-end: 2 }
+
+[data-cols="1" ] { grid-column: 1 }
+
+[data-cols^="2 " ] { grid-column-start: 2 }
+
+[data-cols$=" 2" ] { grid-column-end: 3 }
+
+[data-cols="2" ] { grid-column: 2 }
+
+[data-cols^="3 " ] { grid-column-start: 3 }
+
+[data-cols$=" 3" ] { grid-column-end: 4 }
+
+[data-cols="3" ] { grid-column: 3 }
+
+[data-cols^="4 " ] { grid-column-start: 4 }
+
+[data-cols$=" 4" ] { grid-column-end: 5 }
+
+[data-cols="4" ] { grid-column: 4 }
+
+[data-cols^="5 " ] { grid-column-start: 5 }
+
+[data-cols$=" 5" ] { grid-column-end: 6 }
+
+[data-cols="5" ] { grid-column: 5 }
+
+[data-cols^="6 " ] { grid-column-start: 6 }
+
+[data-cols$=" 6" ] { grid-column-end: 7 }
+
+[data-cols="6" ] { grid-column: 6 }
+
+[data-cols^="7 " ] { grid-column-start: 7 }
+
+[data-cols$=" 7" ] { grid-column-end: 8 }
+
+[data-cols="7" ] { grid-column: 7 }
+
+[data-cols^="8 " ] { grid-column-start: 8 }
+
+[data-cols$=" 8" ] { grid-column-end: 9 }
+
+[data-cols="8" ] { grid-column: 8 }
+
+[data-cols^="9 " ] { grid-column-start: 9 }
+
+[data-cols$=" 9" ] { grid-column-end: 10 }
+
+[data-cols="9" ] { grid-column: 9 }
+
+[data-cols^="10 "] { grid-column-start: 10 }
+
+[data-cols$=" 10"] { grid-column-end: 11 }
+
+[data-cols="10"] { grid-column: 10 }
+
+[data-cols^="11 "] { grid-column-start: 11 }
+
+[data-cols$=" 11"] { grid-column-end: 12 }
+
+[data-cols="11"] { grid-column: 11 }
+
+[data-cols^="12 "] { grid-column-start: 12 }
+
+[data-cols$=" 12"] { grid-column-end: 13 }
+
+[data-cols="12"] { grid-column: 12 }
+
+[data-rows^="1 " ] { grid-row-start: 1 }
+
+[data-rows$=" 1" ] { grid-row-end: 2 }
+
+[data-rows="1" ] { grid-row: 1 }
+
+[data-rows^="2 " ] { grid-row-start: 2 }
+
+[data-rows$=" 2" ] { grid-row-end: 3 }
+
+[data-rows="2" ] { grid-row: 2 }
+
+[data-rows^="3 " ] { grid-row-start: 3 }
+
+[data-rows$=" 3" ] { grid-row-end: 4 }
+
+[data-rows="3" ] { grid-row: 3 }
+
+[data-rows^="4 " ] { grid-row-start: 4 }
+
+[data-rows$=" 4" ] { grid-row-end: 5 }
+
+[data-rows="4" ] { grid-row: 4 }
+
+[data-rows^="5 " ] { grid-row-start: 5 }
+
+[data-rows$=" 5" ] { grid-row-end: 6 }
+
+[data-rows="5" ] { grid-row: 5 }
+
+[data-rows^="6 " ] { grid-row-start: 6 }
+
+[data-rows$=" 6" ] { grid-row-end: 7 }
+
+[data-rows="6" ] { grid-row: 6 }
+
+[data-rows^="7 " ] { grid-row-start: 7 }
+
+[data-rows$=" 7" ] { grid-row-end: 8 }
+
+[data-rows="7" ] { grid-row: 7 }
+
+[data-rows^="8 " ] { grid-row-start: 8 }
+
+[data-rows$=" 8" ] { grid-row-end: 9 }
+
+[data-rows="8" ] { grid-row: 8 }
+
+[data-rows^="9 " ] { grid-row-start: 9 }
+
+[data-rows$=" 9" ] { grid-row-end: 10 }
+
+[data-rows="9" ] { grid-row: 9 }
+
+[data-rows^="10 "] { grid-row-start: 10 }
+
+[data-rows$=" 10"] { grid-row-end: 11 }
+
+[data-rows="10"] { grid-row: 10 }
+
+[data-rows^="11 "] { grid-row-start: 11 }
+
+[data-rows$=" 11"] { grid-row-end: 12 }
+
+[data-rows="11"] { grid-row: 11 }
+
+[data-rows^="12 "] { grid-row-start: 12 }
+
+[data-rows$=" 12"] { grid-row-end: 13 }
+
+[data-rows="12"] { grid-row: 12 }
+
+@media (max-width: 768px) {
+ [data-cols\@s^="1 " ] { grid-column-start: 1 } [data-cols\@s$=" 1" ] { grid-column-end: 2 } [data-cols\@s="1" ] { grid-column: 1 }
+ [data-cols\@s^="2 " ] { grid-column-start: 2 } [data-cols\@s$=" 2" ] { grid-column-end: 3 } [data-cols\@s="2" ] { grid-column: 2 }
+ [data-cols\@s^="3 " ] { grid-column-start: 3 } [data-cols\@s$=" 3" ] { grid-column-end: 4 } [data-cols\@s="3" ] { grid-column: 3 }
+ [data-cols\@s^="4 " ] { grid-column-start: 4 } [data-cols\@s$=" 4" ] { grid-column-end: 5 } [data-cols\@s="4" ] { grid-column: 4 }
+ [data-cols\@s^="5 " ] { grid-column-start: 5 } [data-cols\@s$=" 5" ] { grid-column-end: 6 } [data-cols\@s="5" ] { grid-column: 5 }
+ [data-cols\@s^="6 " ] { grid-column-start: 6 } [data-cols\@s$=" 6" ] { grid-column-end: 7 } [data-cols\@s="6" ] { grid-column: 6 }
+ [data-cols\@s^="7 " ] { grid-column-start: 7 } [data-cols\@s$=" 7" ] { grid-column-end: 8 } [data-cols\@s="7" ] { grid-column: 7 }
+ [data-cols\@s^="8 " ] { grid-column-start: 8 } [data-cols\@s$=" 8" ] { grid-column-end: 9 } [data-cols\@s="8" ] { grid-column: 8 }
+ [data-cols\@s^="9 " ] { grid-column-start: 9 } [data-cols\@s$=" 9" ] { grid-column-end: 10 } [data-cols\@s="9" ] { grid-column: 9 }
+ [data-cols\@s^="10 "] { grid-column-start: 10 } [data-cols\@s$=" 10"] { grid-column-end: 11 } [data-cols\@s="10"] { grid-column: 10 }
+ [data-cols\@s^="11 "] { grid-column-start: 11 } [data-cols\@s$=" 11"] { grid-column-end: 12 } [data-cols\@s="11"] { grid-column: 11 }
+ [data-cols\@s^="12 "] { grid-column-start: 12 } [data-cols\@s$=" 12"] { grid-column-end: 13 } [data-cols\@s="12"] { grid-column: 12 }
+
+ [data-rows\@s^="1 " ] { grid-row-start: 1 } [data-rows\@s$=" 1" ] { grid-row-end: 2 } [data-rows\@s="1" ] { grid-row: 1 }
+ [data-rows\@s^="2 " ] { grid-row-start: 2 } [data-rows\@s$=" 2" ] { grid-row-end: 3 } [data-rows\@s="2" ] { grid-row: 2 }
+ [data-rows\@s^="3 " ] { grid-row-start: 3 } [data-rows\@s$=" 3" ] { grid-row-end: 4 } [data-rows\@s="3" ] { grid-row: 3 }
+ [data-rows\@s^="4 " ] { grid-row-start: 4 } [data-rows\@s$=" 4" ] { grid-row-end: 5 } [data-rows\@s="4" ] { grid-row: 4 }
+ [data-rows\@s^="5 " ] { grid-row-start: 5 } [data-rows\@s$=" 5" ] { grid-row-end: 6 } [data-rows\@s="5" ] { grid-row: 5 }
+ [data-rows\@s^="6 " ] { grid-row-start: 6 } [data-rows\@s$=" 6" ] { grid-row-end: 7 } [data-rows\@s="6" ] { grid-row: 6 }
+ [data-rows\@s^="7 " ] { grid-row-start: 7 } [data-rows\@s$=" 7" ] { grid-row-end: 8 } [data-rows\@s="7" ] { grid-row: 7 }
+ [data-rows\@s^="8 " ] { grid-row-start: 8 } [data-rows\@s$=" 8" ] { grid-row-end: 9 } [data-rows\@s="8" ] { grid-row: 8 }
+ [data-rows\@s^="9 " ] { grid-row-start: 9 } [data-rows\@s$=" 9" ] { grid-row-end: 10 } [data-rows\@s="9" ] { grid-row: 9 }
+ [data-rows\@s^="10 "] { grid-row-start: 10 } [data-rows\@s$=" 10"] { grid-row-end: 11 } [data-rows\@s="10"] { grid-row: 10 }
+ [data-rows\@s^="11 "] { grid-row-start: 11 } [data-rows\@s$=" 11"] { grid-row-end: 12 } [data-rows\@s="11"] { grid-row: 11 }
+ [data-rows\@s^="12 "] { grid-row-start: 12 } [data-rows\@s$=" 12"] { grid-row-end: 13 } [data-rows\@s="12"] { grid-row: 12 }
+}
+
+@media (min-width: 1024px) {
+ [data-cols\@l^="1 " ] { grid-column-start: 1 } [data-cols\@l$=" 1" ] { grid-column-end: 2 } [data-cols\@l="1" ] { grid-column: 1 }
+ [data-cols\@l^="2 " ] { grid-column-start: 2 } [data-cols\@l$=" 2" ] { grid-column-end: 3 } [data-cols\@l="2" ] { grid-column: 2 }
+ [data-cols\@l^="3 " ] { grid-column-start: 3 } [data-cols\@l$=" 3" ] { grid-column-end: 4 } [data-cols\@l="3" ] { grid-column: 3 }
+ [data-cols\@l^="4 " ] { grid-column-start: 4 } [data-cols\@l$=" 4" ] { grid-column-end: 5 } [data-cols\@l="4" ] { grid-column: 4 }
+ [data-cols\@l^="5 " ] { grid-column-start: 5 } [data-cols\@l$=" 5" ] { grid-column-end: 6 } [data-cols\@l="5" ] { grid-column: 5 }
+ [data-cols\@l^="6 " ] { grid-column-start: 6 } [data-cols\@l$=" 6" ] { grid-column-end: 7 } [data-cols\@l="6" ] { grid-column: 6 }
+ [data-cols\@l^="7 " ] { grid-column-start: 7 } [data-cols\@l$=" 7" ] { grid-column-end: 8 } [data-cols\@l="7" ] { grid-column: 7 }
+ [data-cols\@l^="8 " ] { grid-column-start: 8 } [data-cols\@l$=" 8" ] { grid-column-end: 9 } [data-cols\@l="8" ] { grid-column: 8 }
+ [data-cols\@l^="9 " ] { grid-column-start: 9 } [data-cols\@l$=" 9" ] { grid-column-end: 10 } [data-cols\@l="9" ] { grid-column: 9 }
+ [data-cols\@l^="10 "] { grid-column-start: 10 } [data-cols\@l$=" 10"] { grid-column-end: 11 } [data-cols\@l="10"] { grid-column: 10 }
+ [data-cols\@l^="11 "] { grid-column-start: 11 } [data-cols\@l$=" 11"] { grid-column-end: 12 } [data-cols\@l="11"] { grid-column: 11 }
+ [data-cols\@l^="12 "] { grid-column-start: 12 } [data-cols\@l$=" 12"] { grid-column-end: 13 } [data-cols\@l="12"] { grid-column: 12 }
+
+ [data-rows\@l^="1 " ] { grid-row-start: 1 } [data-rows\@l$=" 1" ] { grid-row-end: 2 } [data-rows\@l="1" ] { grid-row: 1 }
+ [data-rows\@l^="2 " ] { grid-row-start: 2 } [data-rows\@l$=" 2" ] { grid-row-end: 3 } [data-rows\@l="2" ] { grid-row: 2 }
+ [data-rows\@l^="3 " ] { grid-row-start: 3 } [data-rows\@l$=" 3" ] { grid-row-end: 4 } [data-rows\@l="3" ] { grid-row: 3 }
+ [data-rows\@l^="4 " ] { grid-row-start: 4 } [data-rows\@l$=" 4" ] { grid-row-end: 5 } [data-rows\@l="4" ] { grid-row: 4 }
+ [data-rows\@l^="5 " ] { grid-row-start: 5 } [data-rows\@l$=" 5" ] { grid-row-end: 6 } [data-rows\@l="5" ] { grid-row: 5 }
+ [data-rows\@l^="6 " ] { grid-row-start: 6 } [data-rows\@l$=" 6" ] { grid-row-end: 7 } [data-rows\@l="6" ] { grid-row: 6 }
+ [data-rows\@l^="7 " ] { grid-row-start: 7 } [data-rows\@l$=" 7" ] { grid-row-end: 8 } [data-rows\@l="7" ] { grid-row: 7 }
+ [data-rows\@l^="8 " ] { grid-row-start: 8 } [data-rows\@l$=" 8" ] { grid-row-end: 9 } [data-rows\@l="8" ] { grid-row: 8 }
+ [data-rows\@l^="9 " ] { grid-row-start: 9 } [data-rows\@l$=" 9" ] { grid-row-end: 10 } [data-rows\@l="9" ] { grid-row: 9 }
+ [data-rows\@l^="10 "] { grid-row-start: 10 } [data-rows\@l$=" 10"] { grid-row-end: 11 } [data-rows\@l="10"] { grid-row: 10 }
+ [data-rows\@l^="11 "] { grid-row-start: 11 } [data-rows\@l$=" 11"] { grid-row-end: 12 } [data-rows\@l="11"] { grid-row: 11 }
+ [data-rows\@l^="12 "] { grid-row-start: 12 } [data-rows\@l$=" 12"] { grid-row-end: 13 } [data-rows\@l="12"] { grid-row: 12 }
+}
diff --git a/releases/_artifacts/v1.0.6/missing.min.css b/releases/_artifacts/v1.0.6/missing.min.css
new file mode 100644
index 0000000..fd2770c
--- /dev/null
+++ b/releases/_artifacts/v1.0.6/missing.min.css
@@ -0,0 +1,126 @@
+@keyframes bg{0%{background:0 0}}*,::after,::before{box-sizing:border-box;background-repeat:no-repeat}::after,::before{text-decoration:inherit;vertical-align:inherit}:root{cursor:default;overflow-wrap:break-word;-webkit-tap-highlight-color:transparent;text-size-adjust:none;-webkit-text-size-adjust:none}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}audio,canvas,iframe,img,svg,video{vertical-align:middle}svg:not([fill]){fill:currentColor}table{border-collapse:collapse;border-color:currentColor;text-indent:0;font-variant-numeric:tabular-nums;font:inherit}body,button,input,select,textarea{margin:0}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}fieldset{border:1px solid #a0a0a0;position:relative;padding:var(--gap);margin:var(--gap) 0;width:100%;border-radius:var(--border-radius);border:1px solid var(--graphical-fg)}progress{vertical-align:baseline}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-inner-spin-button,::-webkit-outer-spin-button{block-size:auto}::-webkit-input-placeholder{color:inherit;opacity:.54}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}[hidden],datalist{display:none!important}:focus-visible{outline:.2em solid var(--accent);z-index:32}body:focus-visible,html:focus-visible,iframe:focus-visible{outline:0}:target{outline:.2em solid var(--fg);z-index:2}details>summary:first-of-type{display:list-item}[aria-busy=true]{cursor:progress}[aria-disabled=true],[disabled]{cursor:not-allowed}:root{--gray-0: #f8fafb;--gray-1: #f2f4f6;--gray-2: #ebedef;--gray-3: #e0e4e5;--gray-4: #d1d6d8;--gray-5: #b1b6b9;--gray-6: #979b9d;--gray-7: #7e8282;--gray-8: #666968;--gray-9: #50514f;--gray-10: #3a3a37;--gray-11: #252521;--gray-12: #121210;--red-0: #fff5f5;--red-1: #ffe3e3;--red-2: #ffc9c9;--red-3: #ffa8a8;--red-4: #ff8787;--red-5: #ff6b6b;--red-6: #fa5252;--red-7: #f03e3e;--red-8: #e03131;--red-9: #c92a2a;--red-10: #b02525;--red-11: #962020;--red-12: #7d1a1a;--pink-0: #fff0f6;--pink-1: #ffdeeb;--pink-2: #fcc2d7;--pink-3: #faa2c1;--pink-4: #f783ac;--pink-5: #f06595;--pink-6: #e64980;--pink-7: #d6336c;--pink-8: #c2255c;--pink-9: #a61e4d;--pink-10: #8c1941;--pink-11: #731536;--pink-12: #59102a;--purple-0: #f8f0fc;--purple-1: #f3d9fa;--purple-2: #eebefa;--purple-3: #e599f7;--purple-4: #da77f2;--purple-5: #cc5de8;--purple-6: #be4bdb;--purple-7: #ae3ec9;--purple-8: #9c36b5;--purple-9: #862e9c;--purple-10: #702682;--purple-11: #5a1e69;--purple-12: #44174f;--violet-0: #f3f0ff;--violet-1: #e5dbff;--violet-2: #d0bfff;--violet-3: #b197fc;--violet-4: #9775fa;--violet-5: #845ef7;--violet-6: #7950f2;--violet-7: #7048e8;--violet-8: #6741d9;--violet-9: #5f3dc4;--violet-10: #5235ab;--violet-11: #462d91;--violet-12: #3a2578;--indigo-0: #edf2ff;--indigo-1: #dbe4ff;--indigo-2: #bac8ff;--indigo-3: #91a7ff;--indigo-4: #748ffc;--indigo-5: #5c7cfa;--indigo-6: #4c6ef5;--indigo-7: #4263eb;--indigo-8: #3b5bdb;--indigo-9: #364fc7;--indigo-10: #2f44ad;--indigo-11: #283a94;--indigo-12: #21307a;--blue-0: #e7f5ff;--blue-1: #d0ebff;--blue-2: #a5d8ff;--blue-3: #74c0fc;--blue-4: #4dabf7;--blue-5: #339af0;--blue-6: #228be6;--blue-7: #1c7ed6;--blue-8: #1971c2;--blue-9: #1864ab;--blue-10: #145591;--blue-11: #114678;--blue-12: #0d375e;--cyan-0: #e3fafc;--cyan-1: #c5f6fa;--cyan-2: #99e9f2;--cyan-3: #66d9e8;--cyan-4: #3bc9db;--cyan-5: #22b8cf;--cyan-6: #15aabf;--cyan-7: #1098ad;--cyan-8: #0c8599;--cyan-9: #0b7285;--cyan-10: #095c6b;--cyan-11: #074652;--cyan-12: #053038;--teal-0: #e6fcf5;--teal-1: #c3fae8;--teal-2: #96f2d7;--teal-3: #63e6be;--teal-4: #38d9a9;--teal-5: #20c997;--teal-6: #12b886;--teal-7: #0ca678;--teal-8: #099268;--teal-9: #087f5b;--teal-10: #066649;--teal-11: #054d37;--teal-12: #033325;--green-0: #ebfbee;--green-1: #d3f9d8;--green-2: #b2f2bb;--green-3: #8ce99a;--green-4: #69db7c;--green-5: #51cf66;--green-6: #40c057;--green-7: #37b24d;--green-8: #2f9e44;--green-9: #2b8a3e;--green-10: #237032;--green-11: #1b5727;--green-12: #133d1b;--lime-0: #f4fce3;--lime-1: #e9fac8;--lime-2: #d8f5a2;--lime-3: #c0eb75;--lime-4: #a9e34b;--lime-5: #94d82d;--lime-6: #82c91e;--lime-7: #74b816;--lime-8: #66a80f;--lime-9: #5c940d;--lime-10: #4c7a0b;--lime-11: #3c6109;--lime-12: #2c4706;--yellow-0: #fff9db;--yellow-1: #fff3bf;--yellow-2: #ffec99;--yellow-3: #ffe066;--yellow-4: #ffd43b;--yellow-5: #fcc419;--yellow-6: #fab005;--yellow-7: #f59f00;--yellow-8: #f08c00;--yellow-9: #e67700;--yellow-10: #b35c00;--yellow-11: #804200;--yellow-12: #663500;--orange-0: #fff4e6;--orange-1: #ffe8cc;--orange-2: #ffd8a8;--orange-3: #ffc078;--orange-4: #ffa94d;--orange-5: #ff922b;--orange-6: #fd7e14;--orange-7: #f76707;--orange-8: #e8590c;--orange-9: #d9480f;--orange-10: #bf400d;--orange-11: #99330b;--orange-12: #802b09;--choco-0: #fff8dc;--choco-1: #fce1bc;--choco-2: #f7ca9e;--choco-3: #f1b280;--choco-4: #e99b62;--choco-5: #df8545;--choco-6: #d46e25;--choco-7: #bd5f1b;--choco-8: #a45117;--choco-9: #8a4513;--choco-10: #703a13;--choco-11: #572f12;--choco-12: #3d210d;--brown-0: #faf4eb;--brown-1: #ede0d1;--brown-2: #e0cab7;--brown-3: #d3b79e;--brown-4: #c5a285;--brown-5: #b78f6d;--brown-6: #a87c56;--brown-7: #956b47;--brown-8: #825b3a;--brown-9: #6f4b2d;--brown-10:#5e3a21;--brown-11:#4e2b15;--brown-12: #422412;--sand-0: #f8fafb;--sand-1: #e6e4dc;--sand-2: #d5cfbd;--sand-3: #c2b9a0;--sand-4: #aea58c;--sand-5: #9a9178;--sand-6: #867c65;--sand-7: #736a53;--sand-8: #5f5746;--sand-9: #4b4639;--sand-10:#38352d;--sand-11:#252521;--sand-12: #121210;--camo-0: #f9fbe7;--camo-1: #e8ed9c;--camo-2: #d2df4e;--camo-3: #c2ce34;--camo-4: #b5bb2e;--camo-5: #a7a827;--camo-6: #999621;--camo-7: #8c851c;--camo-8: #7e7416;--camo-9: #6d6414;--camo-10: #5d5411;--camo-11: #4d460e;--camo-12: #36300a;--jungle-0: #ecfeb0;--jungle-1: #def39a;--jungle-2: #d0e884;--jungle-3: #c2dd6e;--jungle-4: #b5d15b;--jungle-5: #a8c648;--jungle-6: #9bbb36;--jungle-7: #8fb024;--jungle-8: #84a513;--jungle-9: #7a9908;--jungle-10: #658006;--jungle-11: #516605;--jungle-12: #3d4d04}html{font-family:var(--main-font);line-height:var(--rhythm);background:var(--bg);color:var(--fg);scroll-padding-block-start:calc(4*var(--gap))}footer,header,section+section{margin-block:calc(2*var(--gap))}aside.big,nav a{color:var(--accent)}nav a{text-decoration:none}aside h1,aside h2,aside h3,aside h4,aside h5,aside h6{font-size:1em;text-transform:none;letter-spacing:none}aside.big{background:0 0;border:0;-webkit-border-start:1px solid var(--muted-fg);border-inline-start:1px solid var(--muted-fg);border-radius:0;padding:0;-webkit-padding-start:var(--rhythm);padding-inline-start:var(--rhythm);font-style:italic}.\<h1\>,.\<h2\>,.\<h3\>,.\<h4\>,.\<h5\>,.\<h6\>,h1,h2,h3,h4,h5,h6{-webkit-margin-after:var(--gap);margin-block-end:var(--gap);font-family:var(--secondary-font);-webkit-margin-before:calc(2*var(--gap));margin-block-start:calc(2*var(--gap));position:relative}.\<h1\>,.\<h2\>,h1,h2{font-size:2em;text-transform:none;line-height:calc(2*var(--rhythm));letter-spacing:0}.\<h2\>,h2{font-size:1.6em;line-height:calc(1.5*var(--rhythm))}.\<h3\>,.\<h4\>,.\<h5\>,.\<h6\>,h3,h4,h5,h6{font-size:1.17em;line-height:calc(1*var(--rhythm))}.\<h4\>,.\<h5\>,.\<h6\>,h4,h5,h6{font-size:1em;text-transform:none;letter-spacing:0;-webkit-margin-before:var(--gap);margin-block-start:var(--gap)}h1+h2,h1:first-child,h2+h3,h2:first-child,h3+h4,h3:first-child,h4+h5,h4:first-child,h5+h6,h5:first-child,h6:first-child{-webkit-margin-before:var(--gap);margin-block-start:var(--gap)}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{outline:0}h1:target::before,h2:target::before,h3:target::before,h4:target::before,h5:target::before,h6:target::before{content:"";display:block;position:absolute;left:-.5em;width:4px;height:100%;background:var(--accent)}header{-webkit-border-after:1px solid var(--graphical-fg);border-block-end:1px solid var(--graphical-fg)}dt,footer,header{font-family:var(--secondary-font)}footer{-webkit-border-before:1px solid var(--graphical-fg);border-block-start:1px solid var(--graphical-fg)}body>footer,body>header,main+footer{padding:var(--rhythm) calc((100% - var(--eff-line-length))/2)}address{--density: 0}dl,hr,p{margin-block:var(--gap)}hr{color:inherit;margin-inline:0;flex:0 1 0px;-webkit-border-start:1px solid var(--accent);border-inline-start:1px solid var(--accent);block-size:auto;-webkit-border-before:1px solid var(--accent);border-block-start:1px solid var(--accent);-webkit-border-after:none;border-block-end:none;-webkit-border-end:none;border-inline-end:none}blockquote,pre{line-height:var(--rhythm)}pre{font-family:var(--mono-font);tab-size:2;margin:var(--gap) 0;overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--accent) transparent;font-size:.9em}blockquote{margin-inline:0 var(--gap);padding-inline:var(--gap) 0;margin-block:var(--gap);font-size:1.1em;font-style:italic;-webkit-border-start:1px solid var(--graphical-fg);border-inline-start:1px solid var(--graphical-fg);color:var(--muted-fg)}.italic address,.italic cite,.italic dfn,.italic em,.italic i,.italic var,blockquote address,blockquote cite,blockquote dfn,blockquote em,blockquote i,blockquote var,q address,q cite,q dfn,q em,q i,q var{font-style:normal}blockquote footer{text-align:right;text-align:end}ol,ul{-webkit-padding-start:var(--rhythm);padding-inline-start:var(--rhythm)}ol ol,ol ul,ul ol,ul ul{-webkit-padding-start:var(--gap);padding-inline-start:var(--gap)}ol[role=list],ol[role=listbox],ul[role=list],ul[role=listbox]{-webkit-padding-start:0;padding-inline-start:0;list-style:none}ol{list-style:decimal}dt{font-weight:700}dd{-webkit-margin-start:var(--rhythm);margin-inline-start:var(--rhythm)}li::marker{font-family:var(--secondary-font)}figure{max-width:100%;margin-inline:0}figcaption{margin-block:var(--gap);font-family:var(--secondary-font);color:var(--muted-fg)}main{max-inline-size:var(--eff-line-length);inline-size:100%;margin-inline:auto}main:first-child{padding-top:var(--gap)}.\<a\>,a{color:var(--link-fg, var(--accent));font-family:var(--secondary-font);border-radius:var(--border-radius);outline-offset:1px;background:0 0;border:0;font-size:1em;-webkit-text-decoration:1px dashed underline;text-decoration:1px dashed underline}.list-of-links :is(a,.\<a\>){text-decoration:none}:is(a,.\<a\>):focus,:is(a,.\<a\>):hover{-webkit-text-decoration:2px solid underline;text-decoration:2px solid underline;cursor:pointer;outline:0}small[role=note]{display:block;float:inline-end;clear:inline-end;--sidenote-width: 20ch;max-inline-size:var(--sidenote-width);padding-inline:1.5ch 1ch;-webkit-margin-end:calc(1em - var(--sidenote-width));margin-inline-end:calc(1em - var(--sidenote-width));-webkit-margin-after:var(--rhythm);margin-block-end:var(--rhythm);font-family:var(--secondary-font);background:var(--bg);border:1px solid transparent;transition:transform .1s ease-in-out}small[role=note]:focus-within,small[role=note]:hover{border:1px solid var(--graphical-fg);border-radius:var(--border-radius);transform:translateX(calc(0px - var(--sidenote-width) + min(var(--gutter-width),var(--sidenote-width))))}.\<small\>,kbd kbd,small{font-size:.8em}del,s{color:var(--bad-fg)}caption,q{font-style:italic}time{font-variant-numeric:tabular-nums}code,kbd,samp{font-family:var(--mono-font);font-style:normal}ins,samp{color:var(--ok-fg)}kbd kbd{display:inline-block;padding:0 .3em;line-height:1.1em;background:var(--interactive-bg);border:1px outset var(--graphical-fg);border-block-end-width:3px;border-radius:var(--border-radius)}sub{vertical-align:bottom}sub,sup{line-height:1}mark{background:var(--warn-bg);color:var(--warn-fg)}ins{background:var(--ok-bg)}del{background:var(--bad-bg)}audio,embed,iframe,img,object,video{max-inline-size:100%;inline-size:max-content;block-size:auto}caption{text-align:start;font-family:var(--secondary-font)}tbody{border-block:1px solid var(--faded-fg)}select[multiple],sup,td,th{vertical-align:top}td:not(:last-child),th:not(:last-child){-webkit-padding-end:var(--rhythm);padding-inline-end:var(--rhythm)}th{font-family:var(--secondary-font);text-align:start}input{display:block}label input:not([specificity-hack]){display:inline;padding-block:0}.\<button\>,button,input::file-selector-button,input[type=button],input[type=reset],input[type=submit]{display:inline-block;padding:0 calc(var(--rhythm)/4);vertical-align:middle;box-sizing:border-box;font-size:.8rem;line-height:1.125em;font-family:var(--secondary-font);min-height:var(--rhythm);background:var(--interactive-bg);border:1px solid var(--muted-fg);box-shadow:0 2px 4px -2px var(--fg);border-radius:var(--border-radius);color:var(--fg);text-decoration:none;display:inline-flex;place-items:center}:is(button,input[type="submit"],input[type="reset"],input[type="button"],input::file-selector-button,.\<button\>):focus-visible,:is(button,input[type="submit"],input[type="reset"],input[type="button"],input::file-selector-button,.\<button\>):hover{filter:brightness(1.1);box-shadow:0 3px 6px -2px var(--fg);text-decoration:none}:is(button,input[type="submit"],input[type="reset"],input[type="button"],input::file-selector-button,.\<button\>):active{box-shadow:none}:is(button,input[type="submit"],input[type="reset"],input[type="button"],input::file-selector-button,.\<button\>):where([aria-pressed="true"], [aria-expanded="true"]){box-shadow:0 2px 4px -1px var(--fg) inset;background:var(--pressed-interactive-bg)}[disabled]:is(button,input[type="submit"],input[type="reset"],input[type="button"],input::file-selector-button,.\<button\>){color:var(--muted-fg);box-shadow:none}strong>:is(button,input[type="submit"],input[type="reset"],input[type="button"],input::file-selector-button,.\<button\>){background:var(--accent);color:var(--bg);border:0;font-weight:700}strong>[disabled]:is(button,input[type="submit"],input[type="reset"],input[type="button"],input::file-selector-button,.\<button\>){color:var(--muted-accent)}.big:is(button,input[type="submit"],input[type="reset"],input[type="button"],input::file-selector-button,.\<button\>){min-block-size:calc(1.5*var(--rhythm));font-size:1rem;padding-inline:calc(.5*var(--rhythm));line-height:var(--rhythm)}input:not([type]),input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{padding:calc(var(--rhythm)/4);font-size:1rem;line-height:inherit;font-family:var(--main-font);background:var(--bg);color:var(--fg);border:1px solid var(--graphical-fg);border-radius:var(--border-radius);vertical-align:top}:is(input:not([type]),input[type="text"],input[type="search"],input[type="tel"],input[type="url"],input[type="email"],input[type="password"],input[type="date"],input[type="month"],input[type="week"],input[type="time"],input[type="datetime"],input[type="datetime-local"],input[type="number"],select,textarea):focus-visible{border:1px solid var(--accent)}:is(input:not([type]),input[type="text"],input[type="search"],input[type="tel"],input[type="url"],input[type="email"],input[type="password"],input[type="date"],input[type="month"],input[type="week"],input[type="time"],input[type="datetime"],input[type="datetime-local"],input[type="number"],select,textarea)::placeholder{color:var(--muted-fg);opacity:1;text-align:end}input[type=range]{width:100%;padding:calc(var(--gap)/4)}input[type=color]{padding:0;margin:0;height:calc(1.5*var(--rhythm));border:0;background:0 0}input[type=file]{padding:calc(var(--gap)/4) 0;font:inherit;line-height:calc(var(--rhythm)/2)}input[type=file]::file-selector-button{margin-block:.1em 0;-webkit-margin-end:1ch;margin-inline-end:1ch}optgroup::before{color:var(--muted-fg);font-style:normal}label[for]{display:block;padding-block:calc(var(--gap)/4)}fieldset>legend+*{-webkit-margin-before:0;margin-block-start:0}details:not(specificity-hack){-webkit-padding-before:0;padding-block-start:0}details:not(specificity-hack):not([open]){-webkit-padding-after:0;padding-block-end:0}summary{margin:calc(0px - var(--gap));margin-bottom:0;padding-inline:var(--gap);font-family:var(--secondary-font);font-weight:700;cursor:pointer}summary:active,summary:focus-visible{filter:brightness(.8);outline:0}dialog{inline-inset:0;block-size:-moz-fit-content;block-size:fit-content;inline-size:-moz-fit-content;inline-size:fit-content;margin:auto!important;background-color:var(--bg);color:var(--fg)}dialog[open]::backdrop{display:block;background:#000;opacity:.4;animation:bg 2s}dialog:not([open]){display:none}.box,.sidebar-layout>header,[role=menu],[role=tabpanel],aside,details,dialog,figure{margin:var(--gap) 0;padding:var(--gap);overflow:clip;border-radius:var(--border-radius);background:var(--box-bg);border:1px solid var(--graphical-fg)}.titlebar{margin-inline:calc(0px - var(--gap));-webkit-margin-after:calc(0px - var(--gap));margin-block-end:calc(0px - var(--gap));padding-inline:var(--gap);font:inherit;font-family:var(--secondary-font);font-weight:700;translate:0 calc(-1px - var(--gap));background:var(--graphical-fg);color:var(--bg)}.sub-title,sub-title{display:block;font-weight:400;color:var(--muted-fg)}.tool-bar,[role=toolbar]{display:flex;flex-flow:row wrap;gap:calc(var(--gap)/2)}.tool-bar>*,[role=toolbar]>*{margin:0}.sidebar-layout header li{margin-block:calc(.5*var(--gap))}.breadcrumbs[aria-label] [aria-current=page],.sidebar-layout header a{font-weight:700}@media (min-width:75ch){.sidebar-layout{display:grid;grid-template-columns:25ch auto;inset:0}.sidebar-layout>header{border-block:none;-webkit-border-start:none;border-inline-start:none;margin:0}.sidebar-layout>:nth-child(2){overflow:auto;--full-width: calc(100vw - 25ch);margin-top:var(--gap)}}.breadcrumbs[aria-label]{font-family:var(--secondary-font)}.breadcrumbs[aria-label] ol,.breadcrumbs[aria-label] ul{list-style:none;-webkit-padding-start:0;padding-inline-start:0}.breadcrumbs[aria-label] li{display:inline}:is(.breadcrumbs[aria-label] li)+li::before{content:' / ';display:inline}.chip,.navbar,chip{font-family:var(--secondary-font);background:var(--box-bg)}.chip,chip{border:1px solid var(--accent);border-radius:calc(var(--rhythm)/2);padding-inline:calc(var(--rhythm)/2)}.navbar{padding:var(--rhythm);-webkit-border-after:1px solid var(--accent);border-block-end:1px solid var(--accent);overflow-x:auto;scrollbar-width:thin;position:sticky;z-index:5;top:0;left:0;right:0;display:flex;flex-flow:row;align-items:center;gap:var(--gap)}.navbar.expanded{flex-flow:column;align-items:start;max-height:90vh;overflow-y:auto}.navbar.expanded ul[role=list]{flex-flow:column}.navbar *{flex-shrink:0;margin-block:0}.navbar:not(.expanded) nav>:first-child,.navbar:not(.expanded)>:first-child{-webkit-margin-start:auto;margin-inline-start:auto}.navbar:not(.expanded) nav>:last-child,.navbar:not(.expanded)>:last-child{-webkit-margin-end:auto;margin-inline-end:auto}.navbar hr{align-self:stretch}.navbar nav ul[role=list]{display:flex;flex-flow:row;gap:var(--rhythm);-webkit-padding-start:0;padding-inline-start:0}.navbar nav ul[role=list] *{flex-shrink:0}.navbar a{font-weight:700;text-decoration:none;padding-inline:.2em}.navbar a:focus,.navbar a:hover{text-decoration:underline}.navbar [aria-current=page]{position:relative}.navbar [aria-current=page]::after{width:100%;height:6px;content:"";display:block;position:absolute;bottom:calc(-1*var(--gap));background:currentcolor}.navbar.expanded [aria-current=page]::after{width:6px;height:100%;position:absolute;left:calc(-1*var(--gap));top:0}.permalink-anchor{display:none}:hover>.permalink-anchor{display:initial}button.iconbutton{border:0;background:0 0;color:currentcolor;padding:0;line-height:var(--rhythm);font-size:24px;width:24px;height:24px;display:inline-block;text-align:center;border-radius:50%;transition:font-weight .2s ease-in-out}button.iconbutton:focus-visible,button.iconbutton:hover{outline:1px solid var(--accent);outline-offset:6px}button.iconbutton:active{outline-offset:3px;background:0 0}button.iconbutton[aria-pressed=true]{box-shadow:none;transform:none}[role=tablist]{display:flex;gap:.5ch;scrollbar-width:thin}[role=tab][role=tab]{all:initial;font-family:var(--secondary-font);padding:0 calc(var(--rhythm)/4);margin:0;min-height:var(--rhythm);bottom:-1px;position:relative;color:var(--fg);border:solid var(--graphical-fg);border-width:1px;background:var(--interactive-bg);border-start-start-radius:.4em;border-start-end-radius:.4em}[role=tab][role=tab]:active,[role=tab][role=tab][aria-selected=true]{background:var(--box-bg);-webkit-border-after:1px solid transparent;border-block-end:1px solid transparent}[role=tab][role=tab]:hover{background-color:var(--box-bg);box-shadow:none}[role=tab][role=tab]:focus-visible{box-shadow:none;color:var(--accent);text-decoration:underline}[role=tabpanel]{-webkit-margin-before:0;margin-block-start:0;border-start-start-radius:0;border-start-end-radius:0;z-index:1}[role=menu]{position:absolute;z-index:10;padding:calc(var(--gap)/2) 0;margin:1px 0 0;display:flex;flex-flow:column nowrap}[role=menuitem]{padding:0 calc(var(--gap)/2);display:block;text-decoration:none;border-radius:0;color:var(--fg)}[role=menuitem]:active,[role=menuitem]:focus{background:var(--accent);color:var(--bg)}[role=listbox]{list-style:none}[role=listbox] [role=option]{margin-inline:calc(-1*var(--gap));padding-inline:var(--gap)}[role=listbox] [role=option][aria-selected=true]{background:var(--interactive-bg)}[role=listbox] .active[role=option]{--temporary-bg: var(--accent);--temporary-fg: var(--bg);--temporary-accent: parent-var(--muted-accent);--temporary-muted-accent: parent-var(--box-bg);background:var(--temporary-bg);color:var(--temporary-fg)}[role=listbox] .active[role=option]>*{--bg: var(--temporary-bg);--fg: var(--temporary-fg);--accent: var(--temporary-accent);--muted-accent: var(--temporary-muted-accent)}[aria-orientation=vertical]{flex-direction:column;width:-moz-fit-content;width:fit-content;text-align:center}.plain{--box-bg: var(--plain-bg);--accent: var(--plain-fg);--graphical-fg: var(--plain-graphical-fg)}.info{--box-bg: var(--info-bg);--accent: var(--info-fg);--graphical-fg: var(--info-graphical-fg)}.ok{--box-bg: var(--ok-bg);--accent: var(--ok-fg);--graphical-fg: var(--ok-graphical-fg)}.warn{--box-bg: var(--warn-bg);--accent: var(--warn-fg);--graphical-fg: var(--warn-graphical-fg)}.bad{--box-bg: var(--bad-bg);--accent: var(--bad-fg);--graphical-fg: var(--bad-graphical-fg)}.color{color:var(--accent)}.bg{background:var(--box-bg)}.border{border-style:solid;border-color:var(--graphical-fg)}:root{--fg: var(--gray-12);--muted-fg: var(--gray-10);--faded-fg: var(--gray-6);--graphical-fg: var(--plain-graphical-fg);--plain-fg: var(--blue-10);--info-fg: var(--blue-11);--ok-fg: var(--green-11);--bad-fg: var(--red-11);--warn-fg: var(--yellow-11);--plain-graphical-fg: var(--gray-6);--info-graphical-fg: var(--blue-6);--ok-graphical-fg: var(--green-6);--bad-graphical-fg: var(--red-6);--warn-graphical-fg: var(--yellow-6);--bg: var(--gray-0);--box-bg: var(--plain-bg);--interactive-bg: var(--gray-4);--plain-bg: var(--gray-1);--info-bg: var(--blue-1);--ok-bg: var(--green-1);--bad-bg: var(--red-1);--warn-bg: var(--yellow-1);--accent: var(--blue-10);--muted-accent: var(--blue-7);--rhythm: 1.4rem;--line-length: 40rem;--border-radius: .2rem;--main-font: 'Source Sans 3', 'Source Sans Pro', -apple-system, system-ui, sans-serif;--secondary-font: var(--main-font);--mono-font: 'M Plus Code Latin', monospace, monospace;--density: 1;--full-width: 100vw;--eff-line-length: /* Effective line length for prose. */
+ min(
+ calc( var(--full-width) - (2 * var(--rhythm)) ),
+ var(--line-length)
+ );--gutter-width: /* Width of spaces at each side of page content. */
+ calc(
+ (
+ var(--full-width) /* Viewport width */
+ - var(--eff-line-length) /* minus line width */
+ ) / 2)}@media (prefers-color-scheme:dark){:root:not(.-no-dark-theme){--fg: var(--gray-0);--muted-fg: var(--gray-2);--faded-fg: var(--gray-7);--plain-bg: var(--gray-11);--info-bg: var(--blue-12);--ok-bg: var(--green-12);--bad-bg: var(--red-12);--warn-bg: var(--yellow-12);--plain-faded-fg: var(--blue-6);--info-faded-fg: var(--blue-6);--ok-faded-fg: var(--green-6);--bad-faded-fg: var(--red-6);--warn-faded-fg: var(--yellow-6);--bg: var(--gray-12);--box-bg: var(--gray-10);--interactive-bg: var(--gray-8);--plain-fg: (--blue-3);--info-fg: var(--blue-3);--ok-fg: var(--green-3);--bad-fg: var(--red-3);--warn-fg: var(--yellow-3);--accent: var(--blue-3);--muted-accent: var(--blue-5)}}*{--gap: calc(var(--rhythm) * var(--density));accent-color:var(--accent)}.textcolumns{--col-width: 30ch;column-width:var(--col-width);column-gap:var(--gap);margin-block:var(--gap)}.textcolumns :first-child{-webkit-margin-before:0!important;margin-block-start:0!important}.text-align\:center{text-align:center}.center{display:grid;place-items:center}.container{max-inline-size:var(--eff-line-length);margin-inline:auto}.fullbleed,.fullscreen{position:relative;left:50%;border-radius:0;border-inline:none}.fullbleed{width:var(--full-width);transform:translateX(calc(-.5*var(--full-width)))}.fullscreen{height:100vh;width:100vw;transform:translateX(-50vw)}.width\:100\%{width:100%;max-width:100%}.height\:100\%{height:100%;max-height:100%}:is(
+ body,
+ .box,
+ [role=menu],
+ .sidebar-layout > header,
+ [role=tabpanel],
+ figure,
+ details,
+ dialog,
+ aside,
+ fieldset,
+ dd,
+ td,
+ th
+)>:first-child:first-child:first-child:first-child,:is(
+ body,
+ .box,
+ [role=menu],
+ .sidebar-layout > header,
+ [role=tabpanel],
+ figure,
+ details,
+ dialog,
+ aside,
+ fieldset,
+ dd,
+ td,
+ th
+)>:first-child>:first-child:first-child:first-child,:is(
+ body,
+ .box,
+ [role=menu],
+ .sidebar-layout > header,
+ [role=tabpanel],
+ figure,
+ details,
+ dialog,
+ aside,
+ fieldset,
+ dd,
+ td,
+ th
+)>:first-child>:first-child>:first-child:first-child,:is(
+ body,
+ .box,
+ [role=menu],
+ .sidebar-layout > header,
+ [role=tabpanel],
+ figure,
+ details,
+ dialog,
+ aside,
+ fieldset,
+ dd,
+ td,
+ th
+)>:first-child>:first-child>:first-child>:first-child{-webkit-margin-before:0;margin-block-start:0}:is(
+ body,
+ .box,
+ [role=menu],
+ .sidebar-layout > header,
+ [role=tabpanel],
+ figure,
+ details,
+ dialog,
+ aside,
+ fieldset,
+ dd,
+ td,
+ th
+)>:last-child:last-child:last-child:last-child,:is(
+ body,
+ .box,
+ [role=menu],
+ .sidebar-layout > header,
+ [role=tabpanel],
+ figure,
+ details,
+ dialog,
+ aside,
+ fieldset,
+ dd,
+ td,
+ th
+)>:last-child>:last-child:last-child:last-child,:is(
+ body,
+ .box,
+ [role=menu],
+ .sidebar-layout > header,
+ [role=tabpanel],
+ figure,
+ details,
+ dialog,
+ aside,
+ fieldset,
+ dd,
+ td,
+ th
+)>:last-child>:last-child>:last-child:last-child,:is(
+ body,
+ .box,
+ [role=menu],
+ .sidebar-layout > header,
+ [role=tabpanel],
+ figure,
+ details,
+ dialog,
+ aside,
+ fieldset,
+ dd,
+ td,
+ th
+)>:last-child>:last-child>:last-child>:last-child{-webkit-margin-after:0;margin-block-end:0}.padding{padding-inline:var(--gap)}.padding-block{padding-block:var(--gap)}.padding-block-start{-webkit-padding-before:var(--gap);padding-block-start:var(--gap)}.padding-block-end{-webkit-padding-after:var(--gap);padding-block-end:var(--gap)}.padding-inline{padding-inline:var(--gap)}.padding-inline-end,.padding-inline-start{-webkit-padding-start:var(--gap);padding-inline-start:var(--gap)}.margin{margin:var(--gap)}.margin-block{margin-block:var(--gap)}.margin-block-start{-webkit-margin-before:var(--gap);margin-block-start:var(--gap)}.margin-block-end{-webkit-margin-after:var(--gap);margin-block-end:var(--gap)}.margin-inline{margin-inline:var(--gap)}.margin-inline-start{-webkit-margin-start:var(--gap);margin-inline-start:var(--gap)}.margin-inline-end{-webkit-margin-end:var(--gap);margin-inline-end:var(--gap)}.flow-gap>:not(:last-child){margin-bottom:1em}.inline{display:inline}.block{display:block}.contents{display:contents}.table{display:table;width:100%;margin:0}.row,.rows>*{display:table-row}.row:not(:last-child):not([specificity-hack])>*,.rows>:not(:last-child):not([specificity-hack])>*{margin-bottom:var(--gap)}.row>:not([specificity-hack]),.rows>*>:not([specificity-hack]){display:table-cell;vertical-align:top}.row>*+:not([specificity-hack]),:is(.rows > *)>*+:not([specificity-hack]){-webkit-margin-start:var(--gap);margin-inline-start:var(--gap);display:inline-block}.big{font-size:1.4em;line-height:calc(1.5*var(--rhythm))}.fixed{position:fixed}.sticky{position:sticky}.top{top:0}.right{right:0}.bottom{bottom:0}.left{left:0}.float\:left{float:left}.float\:right{float:right}.overflow\:auto{overflow:auto}.overflow\:scroll{overflow:scroll}.airy{--density: 3}.spacious{--density: 2}.dense{--density: 1}.crowded{--density: .5}.packed{--density: 0}.autodensity{--density: 1
+}@media (min-width:768px){.autodensity{--density: 2
+}}@media (min-width:1024px){.autodensity{--density: 3
+}}.vh,v-h{clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);block-size:1px;inline-size:1px;overflow:hidden;white-space:nowrap}.all\:initial{all:initial}.bold{font-weight:700}.italic{font-style:italic}.allcaps{text-transform:uppercase;letter-spacing:.1rem}.primary-font{font-family:var(--primary-font)}.secondary-font{font-family:var(--secondary-font)}.display-font{font-family:var(--display-font)}.mono-font,.monospace{font-family:var(--mono-font)}.massivetext{font-size:calc(.13*var(--eff-line-length));line-height:1em;letter-spacing:0}.aestheticbreak{display:block;margin:0;padding:0;height:calc(.5*var(--gap))}.f-row{display:flex;flex-direction:row;gap:var(--gap)}.f-row>*{margin:0}.f-col{display:flex;flex-direction:column;gap:var(--gap)}.f-col>*{margin:0}.f-switch{display:flex;flex-wrap:wrap;gap:var(--gap);--f-switch-threshold: 55ch
+}.f-switch>*{margin:0;flex-grow:1;flex-basis:calc((var(--f-switch-threshold) - 100%)*999)}.justify-content\:start{justify-content:start}.justify-content\:end{justify-content:end}.justify-content\:baseline{justify-content:baseline}.justify-content\:center{justify-content:center}.justify-content\:stretch{justify-content:stretch}.justify-content\:space-between{justify-content:space-between}.justify-content\:space-around{justify-content:space-around}.justify-content\:space-evenly{justify-content:space-evenly}.align-items\:start{align-items:start}.align-items\:end{align-items:end}.align-items\:baseline{align-items:baseline}.align-items\:center{align-items:center}.align-items\:stretch{align-items:stretch}.align-self\:start{align-self:start}.align-self\:end{align-self:end}.align-self\:baseline{align-self:baseline}.align-self\:center{align-self:center}.align-self\:stretch{align-self:stretch}.flex-grow\:0{flex-grow:0}.flex-grow\:1{flex-grow:1}.flex-grow\:2{flex-grow:2}.flex-grow\:3{flex-grow:3}.flex-grow\:4{flex-grow:4}.flex-grow\:5{flex-grow:5}.flex-grow\:6{flex-grow:6}.flex-grow\:7{flex-grow:7}.flex-grow\:8{flex-grow:8}.flex-grow\:9{flex-grow:9}.flex-grow\:10{flex-grow:10}.flex-grow\:11{flex-grow:11}.flex-grow\:12{flex-grow:12}.flex-wrap\:wrap{flex-wrap:wrap}.flex-wrap\:nowrap{flex-wrap:nowrap}.grid{display:grid;grid-auto-columns:var(--grid-col-width, 1fr);grid-auto-rows:var(--grid-row-width, auto);gap:var(--gap)}.grid>*{margin:0}.grid-even-rows{--grid-row-width: 1fr}.grid-variable-cols{--grid-column-width: auto}[data-cols^="1 "]{grid-column-start:1}[data-cols$=" 1"]{grid-column-end:2}[data-cols="1"]{grid-column:1}[data-cols^="2 "]{grid-column-start:2}[data-cols$=" 2"]{grid-column-end:3}[data-cols="2"]{grid-column:2}[data-cols^="3 "]{grid-column-start:3}[data-cols$=" 3"]{grid-column-end:4}[data-cols="3"]{grid-column:3}[data-cols^="4 "]{grid-column-start:4}[data-cols$=" 4"]{grid-column-end:5}[data-cols="4"]{grid-column:4}[data-cols^="5 "]{grid-column-start:5}[data-cols$=" 5"]{grid-column-end:6}[data-cols="5"]{grid-column:5}[data-cols^="6 "]{grid-column-start:6}[data-cols$=" 6"]{grid-column-end:7}[data-cols="6"]{grid-column:6}[data-cols^="7 "]{grid-column-start:7}[data-cols$=" 7"]{grid-column-end:8}[data-cols="7"]{grid-column:7}[data-cols^="8 "]{grid-column-start:8}[data-cols$=" 8"]{grid-column-end:9}[data-cols="8"]{grid-column:8}[data-cols^="9 "]{grid-column-start:9}[data-cols$=" 9"]{grid-column-end:10}[data-cols="9"]{grid-column:9}[data-cols^="10 "]{grid-column-start:10}[data-cols$=" 10"]{grid-column-end:11}[data-cols="10"]{grid-column:10}[data-cols^="11 "]{grid-column-start:11}[data-cols$=" 11"]{grid-column-end:12}[data-cols="11"]{grid-column:11}[data-cols^="12 "]{grid-column-start:12}[data-cols$=" 12"]{grid-column-end:13}[data-cols="12"]{grid-column:12}[data-rows^="1 "]{grid-row-start:1}[data-rows$=" 1"]{grid-row-end:2}[data-rows="1"]{grid-row:1}[data-rows^="2 "]{grid-row-start:2}[data-rows$=" 2"]{grid-row-end:3}[data-rows="2"]{grid-row:2}[data-rows^="3 "]{grid-row-start:3}[data-rows$=" 3"]{grid-row-end:4}[data-rows="3"]{grid-row:3}[data-rows^="4 "]{grid-row-start:4}[data-rows$=" 4"]{grid-row-end:5}[data-rows="4"]{grid-row:4}[data-rows^="5 "]{grid-row-start:5}[data-rows$=" 5"]{grid-row-end:6}[data-rows="5"]{grid-row:5}[data-rows^="6 "]{grid-row-start:6}[data-rows$=" 6"]{grid-row-end:7}[data-rows="6"]{grid-row:6}[data-rows^="7 "]{grid-row-start:7}[data-rows$=" 7"]{grid-row-end:8}[data-rows="7"]{grid-row:7}[data-rows^="8 "]{grid-row-start:8}[data-rows$=" 8"]{grid-row-end:9}[data-rows="8"]{grid-row:8}[data-rows^="9 "]{grid-row-start:9}[data-rows$=" 9"]{grid-row-end:10}[data-rows="9"]{grid-row:9}[data-rows^="10 "]{grid-row-start:10}[data-rows$=" 10"]{grid-row-end:11}[data-rows="10"]{grid-row:10}[data-rows^="11 "]{grid-row-start:11}[data-rows$=" 11"]{grid-row-end:12}[data-rows="11"]{grid-row:11}[data-rows^="12 "]{grid-row-start:12}[data-rows$=" 12"]{grid-row-end:13}[data-rows="12"]{grid-row:12}@media (max-width:768px){[data-cols\@s^="1 "]{grid-column-start:1}[data-cols\@s$=" 1"]{grid-column-end:2}[data-cols\@s="1"]{grid-column:1}[data-cols\@s^="2 "]{grid-column-start:2}[data-cols\@s$=" 2"]{grid-column-end:3}[data-cols\@s="2"]{grid-column:2}[data-cols\@s^="3 "]{grid-column-start:3}[data-cols\@s$=" 3"]{grid-column-end:4}[data-cols\@s="3"]{grid-column:3}[data-cols\@s^="4 "]{grid-column-start:4}[data-cols\@s$=" 4"]{grid-column-end:5}[data-cols\@s="4"]{grid-column:4}[data-cols\@s^="5 "]{grid-column-start:5}[data-cols\@s$=" 5"]{grid-column-end:6}[data-cols\@s="5"]{grid-column:5}[data-cols\@s^="6 "]{grid-column-start:6}[data-cols\@s$=" 6"]{grid-column-end:7}[data-cols\@s="6"]{grid-column:6}[data-cols\@s^="7 "]{grid-column-start:7}[data-cols\@s$=" 7"]{grid-column-end:8}[data-cols\@s="7"]{grid-column:7}[data-cols\@s^="8 "]{grid-column-start:8}[data-cols\@s$=" 8"]{grid-column-end:9}[data-cols\@s="8"]{grid-column:8}[data-cols\@s^="9 "]{grid-column-start:9}[data-cols\@s$=" 9"]{grid-column-end:10}[data-cols\@s="9"]{grid-column:9}[data-cols\@s^="10 "]{grid-column-start:10}[data-cols\@s$=" 10"]{grid-column-end:11}[data-cols\@s="10"]{grid-column:10}[data-cols\@s^="11 "]{grid-column-start:11}[data-cols\@s$=" 11"]{grid-column-end:12}[data-cols\@s="11"]{grid-column:11}[data-cols\@s^="12 "]{grid-column-start:12}[data-cols\@s$=" 12"]{grid-column-end:13}[data-cols\@s="12"]{grid-column:12}[data-rows\@s^="1 "]{grid-row-start:1}[data-rows\@s$=" 1"]{grid-row-end:2}[data-rows\@s="1"]{grid-row:1}[data-rows\@s^="2 "]{grid-row-start:2}[data-rows\@s$=" 2"]{grid-row-end:3}[data-rows\@s="2"]{grid-row:2}[data-rows\@s^="3 "]{grid-row-start:3}[data-rows\@s$=" 3"]{grid-row-end:4}[data-rows\@s="3"]{grid-row:3}[data-rows\@s^="4 "]{grid-row-start:4}[data-rows\@s$=" 4"]{grid-row-end:5}[data-rows\@s="4"]{grid-row:4}[data-rows\@s^="5 "]{grid-row-start:5}[data-rows\@s$=" 5"]{grid-row-end:6}[data-rows\@s="5"]{grid-row:5}[data-rows\@s^="6 "]{grid-row-start:6}[data-rows\@s$=" 6"]{grid-row-end:7}[data-rows\@s="6"]{grid-row:6}[data-rows\@s^="7 "]{grid-row-start:7}[data-rows\@s$=" 7"]{grid-row-end:8}[data-rows\@s="7"]{grid-row:7}[data-rows\@s^="8 "]{grid-row-start:8}[data-rows\@s$=" 8"]{grid-row-end:9}[data-rows\@s="8"]{grid-row:8}[data-rows\@s^="9 "]{grid-row-start:9}[data-rows\@s$=" 9"]{grid-row-end:10}[data-rows\@s="9"]{grid-row:9}[data-rows\@s^="10 "]{grid-row-start:10}[data-rows\@s$=" 10"]{grid-row-end:11}[data-rows\@s="10"]{grid-row:10}[data-rows\@s^="11 "]{grid-row-start:11}[data-rows\@s$=" 11"]{grid-row-end:12}[data-rows\@s="11"]{grid-row:11}[data-rows\@s^="12 "]{grid-row-start:12}[data-rows\@s$=" 12"]{grid-row-end:13}[data-rows\@s="12"]{grid-row:12}}@media (min-width:1024px){[data-cols\@l^="1 "]{grid-column-start:1}[data-cols\@l$=" 1"]{grid-column-end:2}[data-cols\@l="1"]{grid-column:1}[data-cols\@l^="2 "]{grid-column-start:2}[data-cols\@l$=" 2"]{grid-column-end:3}[data-cols\@l="2"]{grid-column:2}[data-cols\@l^="3 "]{grid-column-start:3}[data-cols\@l$=" 3"]{grid-column-end:4}[data-cols\@l="3"]{grid-column:3}[data-cols\@l^="4 "]{grid-column-start:4}[data-cols\@l$=" 4"]{grid-column-end:5}[data-cols\@l="4"]{grid-column:4}[data-cols\@l^="5 "]{grid-column-start:5}[data-cols\@l$=" 5"]{grid-column-end:6}[data-cols\@l="5"]{grid-column:5}[data-cols\@l^="6 "]{grid-column-start:6}[data-cols\@l$=" 6"]{grid-column-end:7}[data-cols\@l="6"]{grid-column:6}[data-cols\@l^="7 "]{grid-column-start:7}[data-cols\@l$=" 7"]{grid-column-end:8}[data-cols\@l="7"]{grid-column:7}[data-cols\@l^="8 "]{grid-column-start:8}[data-cols\@l$=" 8"]{grid-column-end:9}[data-cols\@l="8"]{grid-column:8}[data-cols\@l^="9 "]{grid-column-start:9}[data-cols\@l$=" 9"]{grid-column-end:10}[data-cols\@l="9"]{grid-column:9}[data-cols\@l^="10 "]{grid-column-start:10}[data-cols\@l$=" 10"]{grid-column-end:11}[data-cols\@l="10"]{grid-column:10}[data-cols\@l^="11 "]{grid-column-start:11}[data-cols\@l$=" 11"]{grid-column-end:12}[data-cols\@l="11"]{grid-column:11}[data-cols\@l^="12 "]{grid-column-start:12}[data-cols\@l$=" 12"]{grid-column-end:13}[data-cols\@l="12"]{grid-column:12}[data-rows\@l^="1 "]{grid-row-start:1}[data-rows\@l$=" 1"]{grid-row-end:2}[data-rows\@l="1"]{grid-row:1}[data-rows\@l^="2 "]{grid-row-start:2}[data-rows\@l$=" 2"]{grid-row-end:3}[data-rows\@l="2"]{grid-row:2}[data-rows\@l^="3 "]{grid-row-start:3}[data-rows\@l$=" 3"]{grid-row-end:4}[data-rows\@l="3"]{grid-row:3}[data-rows\@l^="4 "]{grid-row-start:4}[data-rows\@l$=" 4"]{grid-row-end:5}[data-rows\@l="4"]{grid-row:4}[data-rows\@l^="5 "]{grid-row-start:5}[data-rows\@l$=" 5"]{grid-row-end:6}[data-rows\@l="5"]{grid-row:5}[data-rows\@l^="6 "]{grid-row-start:6}[data-rows\@l$=" 6"]{grid-row-end:7}[data-rows\@l="6"]{grid-row:6}[data-rows\@l^="7 "]{grid-row-start:7}[data-rows\@l$=" 7"]{grid-row-end:8}[data-rows\@l="7"]{grid-row:7}[data-rows\@l^="8 "]{grid-row-start:8}[data-rows\@l$=" 8"]{grid-row-end:9}[data-rows\@l="8"]{grid-row:8}[data-rows\@l^="9 "]{grid-row-start:9}[data-rows\@l$=" 9"]{grid-row-end:10}[data-rows\@l="9"]{grid-row:9}[data-rows\@l^="10 "]{grid-row-start:10}[data-rows\@l$=" 10"]{grid-row-end:11}[data-rows\@l="10"]{grid-row:10}[data-rows\@l^="11 "]{grid-row-start:11}[data-rows\@l$=" 11"]{grid-row-end:12}[data-rows\@l="11"]{grid-row:11}[data-rows\@l^="12 "]{grid-row-start:12}[data-rows\@l$=" 12"]{grid-row-end:13}[data-rows\@l="12"]{grid-row:12}} \ No newline at end of file
diff --git a/src/aria.css b/src/aria.css
index 278645e..1083daa 100644
--- a/src/aria.css
+++ b/src/aria.css
@@ -13,32 +13,31 @@
padding: 0 calc(var(--rhythm) / 4);
margin: 0;
min-height: var(--rhythm);
+ bottom: -1px;
+ position: relative;
color: var(--fg);
border: solid var(--graphical-fg);
- border-width: 1px 1px 0 1px;
- border-block-end-color: transparent;
+ border-width: 1px;
background: var(--interactive-bg);
-
+
border-start-start-radius: .4em;
border-start-end-radius: .4em;
&:active, &[aria-selected="true"] {
- transform: none;
- bottom: -1px;
- position: relative;
background: var(--box-bg);
- border-block-end: 1px solid var(--box-bg);
+ border-block-end: 1px solid transparent;
}
&:hover {
background-color: var(--box-bg);
+ box-shadow: none;
}
- &:focus {
- background-color: var(--box-bg);
- border-color: var(--accent);
- outline: 1px solid var(--accent);
+ &:focus-visible {
+ box-shadow: none;
+ color: var(--accent);
+ text-decoration: underline;
}
}
diff --git a/src/main.css b/src/main.css
index 15e4e7a..8f1362a 100644
--- a/src/main.css
+++ b/src/main.css
@@ -228,6 +228,7 @@ dl {
}
dt {
font-weight: bold;
+ font-family: var(--secondary-font);
}
dd {
@@ -278,19 +279,16 @@ a, .\<a\> {
background: none;
border: none;
font-size: 1em;
+ text-decoration: 1px dashed underline;
@nest .list-of-links & {
text-decoration: none;
}
&:hover, &:focus {
- text-decoration: none;
- outline: 1px solid;
- transition: outline-offset .1s ease-in-out;
- }
-
- &:active {
- outline-offset: 0;
+ text-decoration: 2px solid underline;
+ cursor: pointer;
+ outline: none;
}
}
@@ -482,7 +480,8 @@ input::file-selector-button,
display: inline-block;
padding: 0 calc(var(--rhythm) / 4);
vertical-align: middle;
-
+ box-sizing: border-box;
+
font-size: .8rem;
line-height: 1.125em;
font-family: var(--secondary-font);
@@ -491,7 +490,7 @@ input::file-selector-button,
background: var(--interactive-bg);
color: var(--fg);
border: 1px solid var(--muted-fg);
- box-sizing: border-box;
+ box-shadow: 0 2px 4px -2px var(--fg);
border-radius: var(--border-radius);
/* a-specific resets */
@@ -502,22 +501,24 @@ input::file-selector-button,
&:hover, &:focus-visible {
filter: brightness(1.1);
+ box-shadow: 0 3px 6px -2px var(--fg);
/* a-specific resets */
text-decoration: none;
}
&:active {
- filter: brightness(.8);
+ box-shadow: none;
}
- &[aria-pressed="true"], &[aria-expanded="true"] {
- box-shadow: 0 .05em var(--accent) inset;
+ &:where([aria-pressed="true"], [aria-expanded="true"]) {
+ box-shadow: 0 2px 4px -1px var(--fg) inset;
background: var(--pressed-interactive-bg);
}
&[disabled] {
color: var(--muted-fg);
+ box-shadow: none;
}
@nest strong > & {