summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--css/style.css353
-rw-r--r--docs/archive/assets/chroma-dark-s4ssx3zwz2w418zx7pkrqlwqmywgvahl.css8
-rw-r--r--docs/archive/assets/chroma-light-yfrfnk1zyqm9dc67gaa5y67s0a6x40ji.css8
-rw-r--r--docs/archive/assets/font-j47xx20z5d89qpsl95nnbipkg6d25m6y.css4
-rw-r--r--docs/archive/assets/main-lmdn1rci18371fnrcqrwga636ip08irz.css4
-rw-r--r--docs/archive/assets/nixtamal-logo-gmxzsw8388sf9paq05xws7an4hnl4nx0.svg26
-rw-r--r--docs/archive/changelog.html471
-rw-r--r--docs/archive/community.html118
-rw-r--r--docs/archive/cookbook.html127
-rw-r--r--docs/archive/cookbook_pinning-codeberg-inputs-in-nix.html153
-rw-r--r--docs/archive/cookbook_pinning-darcs-hub-inputs-using-htmlq.html133
-rw-r--r--docs/archive/cookbook_pinning-fossil-inputs-in-nix.html141
-rw-r--r--docs/archive/cookbook_pinning-gitlab-inputs-in-nix.html157
-rw-r--r--docs/archive/cookbook_pinning-inputs-with-mirrors-in-nix.html183
-rw-r--r--docs/archive/cookbook_pinning-microsoft-github-inputs-in-nix.html154
-rw-r--r--docs/archive/cookbook_setting-hash-algorithm-to-blake3-in-nix.html179
-rw-r--r--docs/archive/faqs.html469
-rw-r--r--docs/archive/funding.html107
-rw-r--r--docs/archive/index.html1109
-rw-r--r--docs/archive/install.html238
-rw-r--r--docs/archive/manpage.html119
-rw-r--r--docs/archive/manpage_nixtamal-manifest.5.html1361
-rw-r--r--docs/archive/manpage_nixtamal.1.html416
-rw-r--r--docs/archive/organized/assets/chroma-dark-s4ssx3zwz2w418zx7pkrqlwqmywgvahl.css8
-rw-r--r--docs/archive/organized/assets/chroma-light-yfrfnk1zyqm9dc67gaa5y67s0a6x40ji.css8
-rw-r--r--docs/archive/organized/assets/font-j47xx20z5d89qpsl95nnbipkg6d25m6y.css4
-rw-r--r--docs/archive/organized/assets/main-lmdn1rci18371fnrcqrwga636ip08irz.css4
-rw-r--r--docs/archive/organized/assets/nixtamal-logo-gmxzsw8388sf9paq05xws7an4hnl4nx0.svg26
-rw-r--r--docs/archive/organized/changelog/changelog.md41
-rw-r--r--docs/archive/organized/community/community.md21
-rw-r--r--docs/archive/organized/cookbook/cookbook.md17
-rw-r--r--docs/archive/organized/cookbook/pinning-codeberg-inputs-in-nix/pinning-codeberg-inputs-in-nix.md23
-rw-r--r--docs/archive/organized/cookbook/pinning-darcs-hub-inputs-using-htmlq/pinning-darcs-hub-inputs-using-htmlq.md19
-rw-r--r--docs/archive/organized/cookbook/pinning-fossil-inputs-in-nix/pinning-fossil-inputs-in-nix.md19
-rw-r--r--docs/archive/organized/cookbook/pinning-gitlab-inputs-in-nix/pinning-gitlab-inputs-in-nix.md25
-rw-r--r--docs/archive/organized/cookbook/pinning-inputs-with-mirrors-in-nix/pinning-inputs-with-mirrors-in-nix.md17
-rw-r--r--docs/archive/organized/cookbook/pinning-microsoft-github-inputs-in-nix/pinning-microsoft-github-inputs-in-nix.md25
-rw-r--r--docs/archive/organized/cookbook/setting-hash-algorithm-to-blake3-in-nix/setting-hash-algorithm-to-blake3-in-nix.md23
-rw-r--r--docs/archive/organized/faqs/faqs.md135
-rw-r--r--docs/archive/organized/funding/funding.md17
-rw-r--r--docs/archive/organized/home/home.md19
-rw-r--r--docs/archive/organized/index.md56
-rw-r--r--docs/archive/organized/install/install.md19
-rw-r--r--docs/archive/organized/manpage/manpage.md19
-rw-r--r--docs/archive/organized/manpage/nixtamal-manifest.5/nixtamal-manifest.5.md269
-rw-r--r--docs/archive/organized/manpage/nixtamal.1/nixtamal.1.md55
-rw-r--r--docs/archive/organized/real-world-showcase/real-world-showcase.md17
-rw-r--r--docs/archive/organized/roadmap/roadmap.md17
-rw-r--r--docs/archive/real-world-showcase.html182
-rw-r--r--docs/archive/roadmap.html161
-rw-r--r--docs/archive/structure.json10285
-rw-r--r--docs/inventory.md43
-rw-r--r--docs/migration-mapping.md53
-rw-r--r--docs/plan.md140
-rw-r--r--docs/project-summary.md131
-rw-r--r--index.html186
-rw-r--r--js/parallax.js61
-rw-r--r--js/webgl-bg.js190
-rw-r--r--scripts/create_inventory.py178
-rw-r--r--scripts/organize_archive.py90
-rw-r--r--scripts/spider.py192
-rwxr-xr-xscripts/test.sh111
-rw-r--r--shaders/fragment.glsl16
-rw-r--r--shaders/vertex.glsl20
64 files changed, 18979 insertions, 1 deletions
diff --git a/css/style.css b/css/style.css
new file mode 100644
index 0000000..cf0805c
--- /dev/null
+++ b/css/style.css
@@ -0,0 +1,353 @@
+/* CSS Custom Properties for Theming */
+:root {
+ --primary-color: #2563eb;
+ --secondary-color: #64748b;
+ --accent-color: #f59e0b;
+ --text-color: #1f2937;
+ --bg-color: #ffffff;
+ --bg-secondary: #f8fafc;
+ --border-color: #e2e8f0;
+ --shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
+ --font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
+ --font-size-base: 16px;
+ --line-height: 1.6;
+ --spacing-xs: 0.5rem;
+ --spacing-sm: 0.75rem;
+ --spacing-md: 1rem;
+ --spacing-lg: 1.5rem;
+ --spacing-xl: 2rem;
+ --max-width: 1200px;
+ --header-height: 60px;
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ --text-color: #f1f5f9;
+ --bg-color: #0f172a;
+ --bg-secondary: #1e293b;
+ --border-color: #334155;
+ --shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
+ }
+}
+
+/* Reset and Base Styles */
+* {
+ box-sizing: border-box;
+ margin: 0;
+ padding: 0;
+}
+
+html {
+ scroll-behavior: smooth;
+}
+
+body {
+ font-family: var(--font-family);
+ font-size: var(--font-size-base);
+ line-height: var(--line-height);
+ color: var(--text-color);
+ background-color: var(--bg-color);
+}
+
+/* Typography */
+h1, h2, h3, h4, h5, h6 {
+ margin-bottom: var(--spacing-md);
+ font-weight: 600;
+}
+
+h1 { font-size: 2.5rem; }
+h2 { font-size: 2rem; }
+h3 { font-size: 1.5rem; }
+h4 { font-size: 1.25rem; }
+
+p {
+ margin-bottom: var(--spacing-md);
+}
+
+a {
+ color: var(--primary-color);
+ text-decoration: none;
+ transition: color 0.2s ease;
+}
+
+a:hover {
+ color: var(--accent-color);
+}
+
+code {
+ background-color: var(--bg-secondary);
+ padding: 0.125rem 0.25rem;
+ border-radius: 4px;
+ font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
+ font-size: 0.875rem;
+}
+
+pre {
+ background-color: var(--bg-secondary);
+ padding: var(--spacing-md);
+ border-radius: 8px;
+ overflow-x: auto;
+ margin: var(--spacing-md) 0;
+}
+
+pre code {
+ background: none;
+ padding: 0;
+}
+
+.cta-button {
+ display: inline-block;
+ background-color: var(--primary-color);
+ color: white;
+ padding: var(--spacing-sm) var(--spacing-md);
+ border-radius: 6px;
+ font-weight: 600;
+ transition: background-color 0.2s ease;
+}
+
+.cta-button:hover {
+ background-color: #1d4ed8;
+}
+
+/* Layout */
+.container {
+ max-width: var(--max-width);
+ margin: 0 auto;
+ padding: 0 var(--spacing-md);
+}
+
+/* Header and Navigation */
+header {
+ position: sticky;
+ top: 0;
+ background-color: var(--bg-color);
+ border-bottom: 1px solid var(--border-color);
+ z-index: 100;
+ height: var(--header-height);
+}
+
+nav {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ height: 100%;
+ padding: 0 var(--spacing-md);
+}
+
+.logo {
+ font-size: 1.5rem;
+ font-weight: bold;
+ color: var(--primary-color);
+}
+
+.nav-links {
+ display: flex;
+ list-style: none;
+ gap: var(--spacing-lg);
+}
+
+.nav-links a {
+ padding: var(--spacing-sm);
+ transition: all 0.2s ease;
+}
+
+.nav-links a:hover,
+.nav-links a.active {
+ color: var(--accent-color);
+ border-bottom: 2px solid var(--accent-color);
+}
+
+/* Mobile Navigation */
+.mobile-menu-toggle {
+ display: none;
+ background: none;
+ border: none;
+ font-size: 1.5rem;
+ cursor: pointer;
+}
+
+#mobile-menu {
+ display: none;
+}
+
+#mobile-menu:checked ~ .nav-links {
+ display: flex;
+ flex-direction: column;
+ position: absolute;
+ top: var(--header-height);
+ left: 0;
+ right: 0;
+ background-color: var(--bg-color);
+ border-top: 1px solid var(--border-color);
+ padding: var(--spacing-md);
+}
+
+/* Main Content */
+main {
+ padding-top: var(--spacing-xl);
+}
+
+section {
+ padding: var(--spacing-xl) 0;
+ border-bottom: 1px solid var(--border-color);
+}
+
+section:last-of-type {
+ border-bottom: none;
+}
+
+/* Hero Section */
+.hero {
+ text-align: center;
+ background-color: var(--bg-secondary);
+ padding: var(--spacing-xl) 0;
+}
+
+.hero h1 {
+ margin-bottom: var(--spacing-md);
+}
+
+.hero p {
+ font-size: 1.25rem;
+ margin-bottom: var(--spacing-lg);
+}
+
+/* Content Sections */
+.content-section {
+ display: grid;
+ grid-template-columns: 1fr;
+ gap: var(--spacing-lg);
+}
+
+@media (min-width: 768px) {
+ .content-section {
+ grid-template-columns: 1fr 2fr;
+ }
+}
+
+.sidebar {
+ background-color: var(--bg-secondary);
+ padding: var(--spacing-lg);
+ border-radius: 8px;
+}
+
+.main-content {
+ padding-left: var(--spacing-lg);
+}
+
+/* Features Grid */
+.features {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
+ gap: var(--spacing-lg);
+ margin-top: var(--spacing-lg);
+}
+
+.feature-card {
+ background-color: var(--bg-secondary);
+ padding: var(--spacing-lg);
+ border-radius: 8px;
+ box-shadow: var(--shadow);
+}
+
+.feature-card h3 {
+ color: var(--primary-color);
+ margin-bottom: var(--spacing-sm);
+}
+
+/* Footer */
+footer {
+ background-color: var(--bg-secondary);
+ padding: var(--spacing-xl) 0;
+ text-align: center;
+ border-top: 1px solid var(--border-color);
+}
+
+/* Responsive Design */
+@media (max-width: 768px) {
+ .nav-links {
+ display: none;
+ }
+
+ .mobile-menu-toggle {
+ display: block;
+ }
+
+ #mobile-menu:checked ~ .nav-links {
+ display: flex;
+ }
+}
+
+ h1 { font-size: 2rem; }
+ h2 { font-size: 1.75rem; }
+
+ .container {
+ padding: 0 var(--spacing-sm);
+ }
+
+ section {
+ padding: var(--spacing-lg) 0;
+ }
+}
+
+@media (max-width: 480px) {
+ .hero h1 {
+ font-size: 1.75rem;
+ }
+
+ .features {
+ grid-template-columns: 1fr;
+ }
+}
+
+/* Parallax Styles */
+[data-speed] {
+ will-change: transform;
+ backface-visibility: hidden;
+ transform: translateZ(0);
+}
+
+@media (max-width: 768px) {
+ [data-speed] {
+ will-change: auto;
+ transform: none !important;
+ }
+}
+
+/* WebGL Background Canvas */
+#webgl-bg {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100vw;
+ height: 100vh;
+ z-index: -1;
+ pointer-events: none;
+}
+
+/* Accessibility */
+@media (prefers-reduced-motion: reduce) {
+ html {
+ scroll-behavior: auto;
+ }
+
+ * {
+ transition: none;
+ }
+
+ [data-speed] {
+ will-change: auto;
+ }
+}
+
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ white-space: nowrap;
+ border: 0;
+} \ No newline at end of file
diff --git a/docs/archive/assets/chroma-dark-s4ssx3zwz2w418zx7pkrqlwqmywgvahl.css b/docs/archive/assets/chroma-dark-s4ssx3zwz2w418zx7pkrqlwqmywgvahl.css
new file mode 100644
index 0000000..4c21b9a
--- /dev/null
+++ b/docs/archive/assets/chroma-dark-s4ssx3zwz2w418zx7pkrqlwqmywgvahl.css
@@ -0,0 +1,8 @@
+/*!
+SPDX-FileCopyrightText: 2021–2026 toastal <https://toast.al/contact/>
+SPDX-License-Identifier: MPL-2.0
+
+sugilite256, an 8-bit color scheme wiþ extra purple
+Support ð project: https://toast.al/funding
+*/
+.chroma .err,pre.code .err{color:#eee;background-color:red}.chroma .k,pre.code .k,.chroma .kd,pre.code .kd,.chroma .kn,pre.code .kn,.chroma .kp,pre.code .kp,.chroma .kr,pre.code .kr,.chroma .kr,pre.code .kr{color:#875fff;font-weight:700}.chroma .na,pre.code .na{color:#af87ff}.chroma .nt,pre.code .nt{color:#af5fff}.chroma .bp,pre.code .bp,.chroma .p,pre.code .p{color:#b2b2b2}.chroma .ld,pre.code .ld{color:#87afff}.chroma .s,pre.code .s,.chroma .sa,pre.code .sa,.chroma .sb,pre.code .sb{color:#ffafaf}.chroma .sc,pre.code .sc{color:#d700af}.chroma .sd,pre.code .sd,.chroma .s2,pre.code .s2,.chroma .se,pre.code .se,.chroma .sh,pre.code .sh,.chroma .si,pre.code .si,.chroma .sr,pre.code .sr{color:#ffafaf}.chroma .ss,pre.code .ss{color:#d70087;font-weight:700}.chroma .m,pre.code .m,.chroma .mb,pre.code .mb,.chroma .mf,pre.code .mf,.chroma .mh,pre.code .mh,.chroma .mi,pre.code .mi,.chroma .il,pre.code .il,.chroma .mo,pre.code .mo{color:#87afff}.chroma .nc,pre.code .nc{color:#d7afff}.chroma .kt,pre.code .kt{color:#d787ff}.chroma .n,pre.code .n{color:#af87ff}.chroma .nl,pre.code .nl{color:#d70087;font-weight:700}.chroma .nn,pre.code .nn{color:#d787ff}.chroma .nb,pre.code .nb{color:#d70087;font-weight:700}.chroma .o,pre.code .o{color:#875fd7}.chroma .gp,pre.code .gp{color:#af87ff;-webkit-user-select:none;user-select:none}.chroma .go,pre.code .go{color:#ff87af}.chroma .cl,pre.code .cl{color:#b2b2b2}.chroma .c,pre.code .c,.chroma .ch,pre.code .ch,.chroma .cm,pre.code .cm,.chroma .c1,pre.code .c1,.chroma .cs,pre.code .cs{color:#8a8a8a}.chroma .cp,pre.code .cp,.chroma .cpf,pre.code .cpf{color:#ff5fd7}.chroma .gh,pre.code .gh,.chroma .gs,pre.code .gs{font-weight:700}.chroma .gu,pre.code .gu{font-style:italic}.chroma .gl,pre.code .gl{text-decoration-line:underline} \ No newline at end of file
diff --git a/docs/archive/assets/chroma-light-yfrfnk1zyqm9dc67gaa5y67s0a6x40ji.css b/docs/archive/assets/chroma-light-yfrfnk1zyqm9dc67gaa5y67s0a6x40ji.css
new file mode 100644
index 0000000..847f694
--- /dev/null
+++ b/docs/archive/assets/chroma-light-yfrfnk1zyqm9dc67gaa5y67s0a6x40ji.css
@@ -0,0 +1,8 @@
+/*!
+SPDX-FileCopyrightText: 2021–2026 toastal <https://toast.al/contact/>
+SPDX-License-Identifier: MPL-2.0
+
+sugilite256, an 8-bit color scheme wiþ extra purple
+Support ð project: https://toast.al/funding
+*/
+.chroma .err,pre.code .err{color:#000;background-color:red}.chroma .k,pre.code .k,.chroma .kd,pre.code .kd,.chroma .kn,pre.code .kn,.chroma .kp,pre.code .kp,.chroma .kr,pre.code .kr,.chroma .kr,pre.code .kr{color:#5f00d7;font-weight:700}.chroma .na,pre.code .na{color:#5f00af}.chroma .nt,pre.code .nt{color:#5f005f}.chroma .bp,pre.code .bp,.chroma .p,pre.code .p{color:#444}.chroma .ld,pre.code .ld{color:#5f87ff}.chroma .s,pre.code .s,.chroma .sa,pre.code .sa,.chroma .sb,pre.code .sb{color:#af5f5f}.chroma .sc,pre.code .sc{color:#af00d7}.chroma .sd,pre.code .sd,.chroma .s2,pre.code .s2,.chroma .se,pre.code .se,.chroma .sh,pre.code .sh,.chroma .si,pre.code .si,.chroma .sr,pre.code .sr{color:#af5f5f}.chroma .ss,pre.code .ss{color:#af005f;font-weight:700}.chroma .m,pre.code .m,.chroma .mb,pre.code .mb,.chroma .mf,pre.code .mf,.chroma .mh,pre.code .mh,.chroma .mi,pre.code .mi,.chroma .il,pre.code .il,.chroma .mo,pre.code .mo{color:#5f87ff}.chroma .nc,pre.code .nc{color:#5f0087}.chroma .kt,pre.code .kt{color:#8700af}.chroma .n,pre.code .n{color:#5f00af}.chroma .nl,pre.code .nl{color:#af005f;font-weight:700}.chroma .nn,pre.code .nn{color:#8700af}.chroma .nb,pre.code .nb{color:#af005f;font-weight:700}.chroma .o,pre.code .o{color:#5f00ff}.chroma .gp,pre.code .gp{color:#5f00af;-webkit-user-select:none;user-select:none}.chroma .go,pre.code .go{color:#d700d7}.chroma .cl,pre.code .cl{color:#444}.chroma .c,pre.code .c,.chroma .ch,pre.code .ch,.chroma .cm,pre.code .cm,.chroma .c1,pre.code .c1,.chroma .cs,pre.code .cs{color:#6c6c6c}.chroma .cp,pre.code .cp,.chroma .cpf,pre.code .cpf{color:#af00d7}.chroma .gh,pre.code .gh,.chroma .gs,pre.code .gs{font-weight:700}.chroma .gu,pre.code .gu{font-style:italic}.chroma .gl,pre.code .gl{text-decoration-line:underline} \ No newline at end of file
diff --git a/docs/archive/assets/font-j47xx20z5d89qpsl95nnbipkg6d25m6y.css b/docs/archive/assets/font-j47xx20z5d89qpsl95nnbipkg6d25m6y.css
new file mode 100644
index 0000000..afbfdcd
--- /dev/null
+++ b/docs/archive/assets/font-j47xx20z5d89qpsl95nnbipkg6d25m6y.css
@@ -0,0 +1,4 @@
+/*!
+ * SPDX-FileCopyrightText: 2026 toastal <https://toast.al/contact/>
+ * SPDX-License-Identifier: MPL-2.0 */
+@font-face{font-family:League Mono;font-style:normal;font-weight:100 900;font-stretch:50 200;src:local(LeagueMono-VF),local(League Mono VF),url(/asset/league-mono/LeagueMono-VF.woff2)format("woff2-variations")}:root{--font-mono:"League Mono", monospace;--font-body:"League Mono", system-ui, sans-serif;--font-display:"League Mono", serif} \ No newline at end of file
diff --git a/docs/archive/assets/main-lmdn1rci18371fnrcqrwga636ip08irz.css b/docs/archive/assets/main-lmdn1rci18371fnrcqrwga636ip08irz.css
new file mode 100644
index 0000000..8fe6271
--- /dev/null
+++ b/docs/archive/assets/main-lmdn1rci18371fnrcqrwga636ip08irz.css
@@ -0,0 +1,4 @@
+/*!
+ * SPDX-FileCopyrightText: 2025–2026 toastal <https://toast.al/contact/>
+ * SPDX-License-Identifier: MPL-2.0 */
+:root{--font-size-base:1rem;--line-height-ratio:1.6;--scale-ratio:1.2;--size-rhyðm-unit:calc(var(--font-size-base) * var(--line-height-ratio));--font-size--2:.694444rem;--line-height--2:2.304;--font-size--1:.833333rem;--line-height--1:1.92;--font-size-0:1rem;--line-height-0:1.6;--font-size-1:1.2rem;--line-height-1:2.66667;--font-size-2:1.44rem;--line-height-2:2.22222;--font-size-3:1.728rem;--line-height-3:1.85185;--font-size-4:2.0736rem;--line-height-4:2.31481;--font-size-5:2.48832rem;--line-height-5:1.92901;--size-rhyðm-0_25:calc(var(--size-rhyðm-unit) * .25);--size-rhyðm-0_5:calc(var(--size-rhyðm-unit) * .5);--size-rhyðm-0_75:calc(var(--size-rhyðm-unit) * .75);--size-rhyðm-1:calc(var(--size-rhyðm-unit) * 1);--size-rhyðm-1_5:calc(var(--size-rhyðm-unit) * 1.5);--size-rhyðm-2:calc(var(--size-rhyðm-unit) * 2)}html{font-size:100%}body{font-size:var(--font-size-base);line-height:var(--line-height-0);text-rendering:optimizelegibility}h1{font-size:var(--font-size-5);line-height:var(--line-height-5);margin-block:var(--size-rhyðm-2) var(--size-rhyðm-1)}h2{font-size:var(--font-size-4);line-height:var(--line-height-4);margin-block:var(--size-rhyðm-2) var(--size-rhyðm-1)}h3{font-size:var(--font-size-3);line-height:var(--line-height-3);margin-block:var(--size-rhyðm-1_5) var(--size-rhyðm-0_75)}h4{font-size:var(--font-size-2);line-height:var(--line-height-2);margin-block:var(--size-rhyðm-1_5) var(--size-rhyðm-0_5)}h5{font-size:var(--font-size-1);line-height:var(--line-height-1);margin-block:var(--size-rhyðm-1) var(--size-rhyðm-0_5)}h6{font-size:var(--font-size-0);line-height:var(--line-height-0);margin-block:var(--size-rhyðm-1) var(--size-rhyðm-0_5);font-weight:600}p,ul,ol,dl,pre,blockquote,figure,table{margin-block:var(--size-rhyðm-1)}p+p{margin-top:var(--size-rhyðm-1)}li{margin-block:var(--size-rhyðm-0_25)}hr{margin-block:var(--size-rhyðm-2);border:0;border-top:1px solid}callout,figcaption,small,code,pre{font-size:var(--font-size--1);line-height:var(--line-height--1)}pre{padding:var(--size-rhyðm-1);overflow-x:auto}embed,iframe,img,video,svg{max-width:100%;height:auto;margin-block:var(--size-rhyðm-1);display:block}:root[data-debug~=rhyðm]{background-image:repeating-linear-gradient(to bottom, color-mix(in oklab, currentColor 15%, transparent), color-mix(in oklab, currentColor 15%, transparent) 1px, transparent 1px, transparent var(--size-rhyðm-unit));background-size:100% var(--size-rhyðm-unit)}:root[data-debug~=rhyðm-half]{background-image:repeating-linear-gradient(to bottom, color-mix(in oklab, currentColor 10%, transparent), color-mix(in oklab, currentColor 10%, transparent) 1px, transparent 1px, transparent calc(var(--size-rhyðm-unit) / 2))}:root{--page-pad:clamp(1.4rem, 3vw, 3.2rem)}html,body{block-size:100%}body{margin:0}:where(callout,canvas,img,picture,video,svg){display:block}:where(canvas,code,img,kbd,picture,pre,samp,svg,table,var,video){max-inline-size:100%}.DocWrapper{flex-flow:column;display:flex}.Main{flex-grow:1}.Main,.Banner,.Footer{padding:calc(.75*var(--page-pad)) var(--page-pad)}.Headline :first-child{margin-block-start:0}pre,.table-wrapper,.Callout,.Callout-title,.Quoteblock{margin-inline:calc(-.375*var(--page-pad));inline-size:calc(100% + .75*var(--page-pad))}.table-wrapper{overflow:auto}pre,.Callout,.Callout-title,.Quoteblock{padding:calc(.375*var(--page-pad)) calc(.75*var(--page-pad))}.Callout:has(.Callout-title){padding-block-start:0}.Callout-title{margin-inline:calc(-.75*var(--page-pad));inline-size:calc(100% + 1.5*var(--page-pad))}@media screen and (width>=51em){@supports (display:grid){.DocWrapper{row-gap:var(--page-pad);column-gap:calc(var(--page-pad)*1.5);grid-template-rows:minmax(max-content,1fr) min-content;grid-template-columns:minmax(1.6rem,1fr) minmax(6rem,8rem) minmax(0,65rem) minmax(1.6rem,1fr);display:grid}.Main,.Banner,.Footer{padding-inline:0}.Banner-wrapper{grid-area:1/2/3/3}.Banner{position:sticky;top:0}.Main{grid-row:1/2}.Footer{grid-row:2/3}.Main,Footer{grid-column:3/4}.Navigation{text-align:end}}}*,:before,:after{box-sizing:border-box}:where(:root){--color-bg:Canvas;--color-text:CanvasText;--color-code-bg:color-mix(in lab, Canvas 95%, CanvasText 5%);--font-mono:"League Mono", monospace;--font-body:"League Mono", system-ui, sans-serif;--font-display:"League Mono", serif;font-family:var(--font-body);tab-size:3}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-variant-ligatures:common-ligatures;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%;hanging-punctuation:force-end;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:where(input,button,textarea,select){font:inherit}:where(code,kbd,pre,samp,var){font-variant-ligatures:none;text-transform:none;-webkit-hyphens:none;hyphens:none}abbr[title]{-webkit-text-decoration-color:color-mix(in lab, currentColor, transparent);text-decoration-color:color-mix(in lab, currentColor, transparent)}code,kbd,pre,samp,var,.Callout{background-color:var(--color-code-bg)}code,kbd,pre,samp,var{font-family:var(--font-mono)}code,kbd,samp,var{padding-block:.125em;padding-inline:.25em}h1 code,h1 kbd,h1 samp,h1 var,h2 code,h2 kbd,h2 samp,h2 var,h3 code,h3 kbd,h3 samp,h3 var,h4 code,h4 kbd,h4 samp,h4 var,h5 code,h5 kbd,h5 samp,h5 var,h6 code,h6 kbd,h6 samp,h6 var{font-family:var(--font-body)}h1 a.toc-backref,h2 a.toc-backref,h3 a.toc-backref,h4 a.toc-backref,h5 a.toc-backref,h6 a.toc-backref{color:inherit}h1{font-weight:800;font-stretch:150%}h1:first-letter{letter-spacing:-.04375em;font-stretch:200%}h3{font-weight:250}caption,dt,summary{inline-size:100%;font-weight:600}caption,.Callout-title{background:var(--color-text);color:var(--color