diff --git a/.eleventy.js b/.eleventy.js
index 5639f06c..df8c0433 100644
--- a/.eleventy.js
+++ b/.eleventy.js
@@ -71,7 +71,6 @@ module.exports = function (eleventyConfig) {
eleventyConfig.addPassthroughCopy("src/android-launchericon-72-72.png");
eleventyConfig.addPassthroughCopy("src/keybase.txt");
eleventyConfig.addPassthroughCopy("src/manifest.json");
- eleventyConfig.addPassthroughCopy("src/site.webmanifest");
eleventyConfig.addPassthroughCopy("src/sw.js");
eleventyConfig.addPassthroughCopy("src/_headers");
eleventyConfig.addPassthroughCopy("src/js/**");
diff --git a/docs/credits/credits/index.html b/docs/credits/credits/index.html
index c6f6b733..7cc0e1e7 100644
--- a/docs/credits/credits/index.html
+++ b/docs/credits/credits/index.html
@@ -101,8 +101,8 @@
Fonts #--font-family-heading: 'Pirata One', cursive;
}
Icons #
-
A custom icon component (icon-component.js) is used to render icons as web components with Font Awesome as the preferred icon library.
- <fa-icon type="brands" name="github" size="md"></fa-icon>
+Font Awesome is the preferred icon library, loaded via its kit script and used directly as inline icon markup.
+ <i class="fa-solid fa-github"></i>
Plugins #
- eleventy-plugin-inclusive-language to check for inclusive language
diff --git a/docs/css/containers.css b/docs/css/containers.css
index 2c9c593f..3dbfb909 100644
--- a/docs/css/containers.css
+++ b/docs/css/containers.css
@@ -1,82 +1,2 @@
-@charset "UTF-8";
-/* Markdown container blocks — loaded only on pages with containers: true */
-/* Grid row for adjacent card blocks */
-.cards-row {
- display: flex;
- flex-wrap: wrap;
- flex-direction: row;
- gap: var(--space-lg, 1.5rem);
-}
-
-/* Semantic prose section with spacing */
-.prose-section:nth-child(2) {
- margin-top: 0;
-}
-
-/* Card container in prose context — extends base .card with spacing for markdown content */
-.prose-section .card,
-section .card {
- margin-bottom: var(--space-lg, 1.5rem);
-}
-
-/* Ensure headings inside cards have correct spacing */
-.card h2,
-.card h3,
-.card h4 {
- margin-top: 0;
- margin-bottom: var(--space-sm, 0.75rem);
-}
-
-.card > h3 {
- margin-bottom: var(--space-md, 1rem);
- padding-bottom: var(--space-md, 1rem);
- border-bottom: var(--border-thin, 2px) solid var(--earth-sand);
-}
-
-.card p:last-child,
-.card ul:last-child,
-.card ol:last-child {
- margin-bottom: 0;
-}
-
-.prose-section .card-shadow {
- background: var(--earth-cream);
- border: none;
- border-radius: var(--radius-lg, 16px);
- padding: var(--space-md, 1.5rem);
- box-shadow: 10px 10px 0 var(--shadow-heavy);
-}
-
-.prose-section .card-shadow > h3 {
- margin-bottom: var(--space-md, 1rem);
- padding-bottom: var(--space-md, 1rem);
- border-bottom: var(--border-thin, 2px) solid var(--earth-brown);
-}
-
-.prose-section .card-basic {
- background: var(--earth-sand);
- border: 4px solid var(--earth-brown);
- border-radius: var(--radius-lg, 16px);
- padding: var(--space-md, 1.5rem);
- box-shadow: 6px 6px 0 var(--shadow-heavy);
- transition: transform 0.3s;
-}
-
-.prose-section .card-basic > h3 {
- margin-bottom: var(--space-md, 1rem);
- padding-bottom: var(--space-md, 1rem);
- border-bottom: var(--border-thin, 2px) solid var(--earth-brown);
-}
-
-blockquote {
- font-size: clamp(1rem, 1.5vw, 1.1rem);
- line-height: 1.6;
- font-weight: 600;
- color: var(--text-primary);
- margin: var(--space-lg, 1.5rem);
- padding: var(--space-lg, 1.5rem);
- background: var(--earth-sand-light);
- border-left: var(--border-medium) solid var(--accent-coral);
-}
-
-/*# sourceMappingURL=containers.css.map */
+.cards-row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;gap:var(--space-lg,1.5rem)}.prose-section:nth-child(2){margin-top:0}.prose-section .card,section .card{margin-bottom:var(--space-lg,1.5rem)}.card h2,.card h3,.card h4{margin-bottom:var(--space-sm,.75rem);margin-top:0}.card>h3{border-bottom:var(--border-thin,2px) solid var(--earth-sand);margin-bottom:var(--space-md,1rem);padding-bottom:var(--space-md,1rem)}.card ol:last-child,.card p:last-child,.card ul:last-child{margin-bottom:0}.prose-section .card-shadow{background:var(--earth-cream);border:none;border-radius:var(--radius-lg,16px);-webkit-box-shadow:10px 10px 0 var(--shadow-heavy);box-shadow:10px 10px 0 var(--shadow-heavy);padding:var(--space-md,1.5rem)}.prose-section .card-shadow>h3{border-bottom:var(--border-thin,2px) solid var(--earth-brown);margin-bottom:var(--space-md,1rem);padding-bottom:var(--space-md,1rem)}.prose-section .card-basic{background:var(--earth-sand);border:4px solid var(--earth-brown);border-radius:var(--radius-lg,16px);-webkit-box-shadow:6px 6px 0 var(--shadow-heavy);box-shadow:6px 6px 0 var(--shadow-heavy);padding:var(--space-md,1.5rem);-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.prose-section .card-basic>h3{border-bottom:var(--border-thin,2px) solid var(--earth-brown);margin-bottom:var(--space-md,1rem);padding-bottom:var(--space-md,1rem)}.prose-section blockquote{background:var(--earth-sand-light);border-left:var(--border-medium) solid var(--accent-coral);color:var(--text-primary);font-size:clamp(1rem,1.5vw,1.1rem);font-weight:600;line-height:1.6;margin:var(--space-lg,1.5rem);padding:var(--space-lg,1.5rem)}
+/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zYXNzL2NvbnRhaW5lcnMuc2NzcyIsImNvbnRhaW5lcnMuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLFdBQ0UsbUJBQUEsQ0FBQSxtQkFBQSxDQUFBLFlBQUEsQ0FDQSxrQkFBQSxDQUFBLGNBQUEsQ0FDQSw2QkFBQSxDQUFBLDRCQUFBLENBQUEsc0JBQUEsQ0FBQSxrQkFBQSxDQUNBLDBCQ0NGLENEWUEsNEJBQ0UsWUNSRixDRFlBLG1DQUVFLG9DQ1JGLENEWUEsMkJBSUUsb0NBQUEsQ0FEQSxZQ1BGLENEVUEsU0FHRSw0REFBQSxDQUZBLGtDQUFBLENBQ0EsbUNDTkYsQ0RVQSwyREFHRSxlQ1BGLENEU0EsNEJBQ0UsNkJBQUEsQ0FDQSxXQUFBLENBQ0EsbUNBQUEsQ0FFQSxrREFBQSxDQUFBLDBDQUFBLENBREEsOEJDTEYsQ0RRQSwrQkFHRSw2REFBQSxDQUZBLGtDQUFBLENBQ0EsbUNDSkYsQ0RPQSwyQkFDRSw0QkFBQSxDQUNBLG1DQUFBLENBQ0EsbUNBQUEsQ0FFQSxnREFBQSxDQUFBLHdDQUFBLENBREEsOEJBQUEsQ0FFQSx3Q0FBQSxDQUFBLGdDQUFBLENBQUEsd0JBQUEsQ0FBQSw4Q0NKRixDRE1BLDhCQUdFLDZEQUFBLENBRkEsa0NBQUEsQ0FDQSxtQ0NGRixDRE1BLDBCQU9FLGtDQUFBLENBQ0EsMERBQUEsQ0FKQSx5QkFBQSxDQUhBLGtDQUFBLENBRUEsZUFBQSxDQURBLGVBQUEsQ0FHQSw2QkFBQSxDQUNBLDhCQ0RGIiwiZmlsZSI6ImNvbnRhaW5lcnMuY3NzIn0= */
\ No newline at end of file
diff --git a/docs/css/markdown.css b/docs/css/markdown.css
index 576fc100..957ddb3d 100644
--- a/docs/css/markdown.css
+++ b/docs/css/markdown.css
@@ -1,24 +1,2 @@
-pre {
- background-color: var(--earth-cream);
- padding: var(--space-md, 1rem);
- border-radius: var(--radius-md, 12px);
-}
-
-section h2 {
- margin-top: var(--space-lg, 2rem) !important;
-}
-
-section h3 {
- margin-bottom: var(--space-md, 1rem) !important;
-}
-
-section ul,
-section ol {
- margin-bottom: var(--space-md, 1rem) !important;
-}
-
-.card > h2::after {
- display: none;
-}
-
-/*# sourceMappingURL=markdown.css.map */
+pre{background-color:var(--earth-cream);border-radius:var(--radius-md,12px);padding:var(--space-md,1rem)}section h2{margin-top:var(--space-lg,2rem)!important}section h3,section ol,section ul{margin-bottom:var(--space-md,1rem)!important}.card>h2:after{display:none}
+/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zYXNzL21hcmtkb3duLnNjc3MiLCJtYXJrZG93bi5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsSUFDRSxtQ0FBQSxDQUVBLG1DQUFBLENBREEsNEJDRUYsQ0RFQSxXQUNFLHlDQ0NGLENESUEsaUNBRUUsNENDR0YsQ0RBRSxlQUNFLFlDR0oiLCJmaWxlIjoibWFya2Rvd24uY3NzIn0= */
\ No newline at end of file
diff --git a/docs/css/print.css b/docs/css/print.css
index 8822d634..ea157f8b 100644
--- a/docs/css/print.css
+++ b/docs/css/print.css
@@ -1,196 +1,2 @@
-/**
- ** Print stylesheet for Resume
- ** Copyright 2008-2024 Adam J. Jolicoeur
- ** https://www.adamjolicoeur.com
-**/
-@media print {
- body {
- font: 12pt "Times New Roman", Times, serif;
- line-height: 1.3;
- background: #fff !important;
- color: #000;
- }
- header,
- #header,
- footer,
- #footer,
- aside,
- nav,
- form,
- iframe,
- .menu,
- .hero,
- .adslot {
- display: none;
- }
- #navigation,
- #footer {
- display: none !important;
- }
- main,
- content {
- display: block !important;
- max-width: 8.5in !important;
- width: 100%;
- margin: 0;
- float: none;
- }
- section,
- .section-hero {
- padding: 0 !important;
- margin: 0 !important;
- margin-top: 16px !important;
- }
- .row {
- display: block !important;
- }
- .col-md-6 {
- width: 100% !important;
- }
- .mt-4, .mt-3, .mt-2 {
- margin-top: 2pt !important;
- }
- .mb-4, .mb-3, .mb-2 {
- margin-bottom: 2pt !important;
- }
- .my-4, .my-3, .my-2 {
- margin-top: 0 !important;
- margin-bottom: 0 !important;
- }
- .py-4, .py-3, .py-2 {
- padding-top: 0 !important;
- padding-bottom: 0 !important;
- }
- .pb-4, .pb-3, .pb-2 {
- padding-bottom: 2pt !important;
- }
- * {
- background-image: none !important;
- }
- img,
- svg {
- display: none !important;
- }
- table,
- img,
- svg {
- break-inside: avoid;
- }
- .text-bg-light {
- background-color: transparent !important;
- }
- .row-badges {
- display: none !important;
- }
- .hide-on-print {
- display: none !important;
- }
- .print {
- display: block !important;
- }
- h1,
- .h1,
- .text-h1 {
- font-size: 22pt;
- break-before: always;
- text-shadow: none;
- font-family: "Times New Roman", Times, serif;
- }
- h2,
- .h2,
- .text-h2 {
- font-size: 19pt;
- margin-top: 16px;
- margin-bottom: 8px;
- font-family: "Times New Roman", Times, serif !important;
- }
- h2::after,
- .h2::after,
- .text-h2::after {
- display: none;
- }
- h3,
- .h3,
- .text-h3 {
- font-size: 17pt;
- margin-top: 16px;
- margin-bottom: 8px;
- font-family: "Times New Roman", Times, serif !important;
- }
- h4,
- .h4,
- .text-h4 {
- font-size: 14pt;
- margin-top: 16px;
- margin-bottom: 8px;
- font-family: "Times New Roman", Times, serif !important;
- }
- h5,
- .h5,
- .text-h5 {
- font-size: 12pt;
- margin-top: 16px;
- margin-bottom: 8px;
- font-family: "Times New Roman", Times, serif !important;
- }
- p,
- .paragraph {
- font-size: 12pt;
- margin-bottom: 8px;
- font-family: "Times New Roman", Times, serif !important;
- }
- /* Defining all page breaks */
- blockquote {
- page-break-inside: avoid;
- }
- h1,
- h2,
- h3,
- h4,
- h5,
- h6 {
- page-break-after: avoid;
- page-break-inside: avoid;
- }
- img {
- page-break-inside: avoid;
- page-break-after: avoid;
- }
- table,
- pre {
- page-break-inside: avoid;
- }
- ul,
- ol,
- dl {
- page-break-before: avoid;
- }
- /* Displaying link color and link behavior */
- a {
- page-break-inside: avoid;
- }
- a,
- a:link,
- a:visited {
- background: transparent;
- color: #520;
- font-weight: bold;
- text-decoration: underline;
- text-align: left;
- }
- .badge {
- border-color: #000 !important;
- color: #000 !important;
- background: transparent !important;
- }
- .card {
- background: transparent !important;
- border-color: transparent !important;
- padding: 0 !important;
- box-shadow: none !important;
- transition: none !important;
- transform: none !important;
- }
-}
-
-/*# sourceMappingURL=print.css.map */
+@media print{body{background:#fff!important;color:#000;font:12pt Times New Roman,Times,serif;line-height:1.3}#footer,#header,.adslot,.hero,.menu,aside,footer,form,header,iframe,nav{display:none}#footer,#navigation{display:none!important}content,main{display:block!important;float:none;margin:0;max-width:8.5in!important;width:100%}.section-hero,section{margin:16px 0 0!important;padding:0!important}.row{display:block!important}.col-md-6{width:100%!important}.mt-2,.mt-3,.mt-4{margin-top:2pt!important}.mb-2,.mb-3,.mb-4{margin-bottom:2pt!important}.my-2,.my-3,.my-4{margin-bottom:0!important;margin-top:0!important}.py-2,.py-3,.py-4{padding-bottom:0!important;padding-top:0!important}.pb-2,.pb-3,.pb-4{padding-bottom:2pt!important}*{background-image:none!important}img,svg{display:none!important}img,svg,table{-webkit-column-break-inside:avoid;-moz-column-break-inside:avoid;break-inside:avoid}.text-bg-light{background-color:transparent!important}.hide-on-print,.row-badges{display:none!important}.print{display:block!important}.h1,.text-h1,h1{font-size:22pt;-webkit-column-break-before:always;-moz-column-break-before:always;break-before:always;font-family:Times New Roman,Times,serif;text-shadow:none}.h2,.text-h2,h2{font-family:Times New Roman,Times,serif!important;font-size:19pt;margin-bottom:8px;margin-top:16px}.h2:after,.text-h2:after,h2:after{display:none}.h3,.text-h3,h3{font-size:17pt}.h3,.h4,.text-h3,.text-h4,h3,h4{font-family:Times New Roman,Times,serif!important;margin-bottom:8px;margin-top:16px}.h4,.text-h4,h4{font-size:14pt}.h5,.text-h5,h5{margin-top:16px}.h5,.paragraph,.text-h5,h5,p{font-family:Times New Roman,Times,serif!important;font-size:12pt;margin-bottom:8px}blockquote{page-break-inside:avoid}h1,h2,h3,h4,h5,h6,img{page-break-after:avoid}h1,h2,h3,h4,h5,h6,img,pre,table{page-break-inside:avoid}dl,ol,ul{page-break-before:avoid}a{page-break-inside:avoid}a,a:link,a:visited{background:transparent;color:#520;font-weight:700;text-align:left;text-decoration:underline}.badge{border-color:#000!important;color:#000!important}.badge,.card{background:transparent!important}.card{border-color:transparent!important;-webkit-box-shadow:none!important;box-shadow:none!important;padding:0!important;-webkit-transform:none!important;transform:none!important;-webkit-transition:none!important;transition:none!important}}
+/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zYXNzL3ByaW50LnNjc3MiLCJwcmludC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsYUFDRSxLQUdFLHlCQUFBLENBQ0EsVUFBQSxDQUhBLHFDQUFBLENBQ0EsZUNHRixDRENBLHdFQVdFLFlDQ0YsQ0RDQSxvQkFFRSxzQkNDRixDRENBLGFBRUUsdUJBQUEsQ0FJQSxVQUFBLENBREEsUUFBQSxDQUZBLHlCQUFBLENBQ0EsVUNHRixDRENBLHNCQUlFLHlCQUFBLENBRkEsbUJDR0YsQ0RDQSxLQUNFLHVCQ0NGLENEQ0EsVUFDRSxvQkNDRixDRENBLGtCQUNFLHdCQ0NGLENEQ0Esa0JBQ0UsMkJDQ0YsQ0RDQSxrQkFFRSx5QkFBQSxDQURBLHNCQ0VGLENEQ0Esa0JBRUUsMEJBQUEsQ0FEQSx1QkNFRixDRENBLGtCQUNFLDRCQ0NGLENEQ0EsRUFDRSwrQkNDRixDRENBLFFBRUUsc0JDQ0YsQ0RDQSxjQUdFLGlDQUFBLENBQUEsOEJBQUEsQ0FBQSxrQkNDRixDRENBLGVBQ0Usc0NDQ0YsQ0RJQSwyQkFDRSxzQkNDRixDRENBLE9BQ0UsdUJDQ0YsQ0RDQSxnQkFHRSxjQUFBLENBQ0Esa0NBQUEsQ0FBQSwrQkFBQSxDQUFBLG1CQUFBLENBRUEsdUNBQUEsQ0FEQSxnQkNFRixDRENBLGdCQU1FLGlEQUFBLENBSEEsY0FBQSxDQUVBLGlCQUFBLENBREEsZUNHRixDRENBLGtDQUdFLFlDQ0YsQ0RDQSxnQkFHRSxjQ0lGLENEQ0EsZ0NBRkUsaURBQUEsQ0FEQSxpQkFBQSxDQURBLGVDV0YsQ0RQQSxnQkFHRSxjQ0lGLENEQ0EsZ0JBSUUsZUNHRixDRENBLDZCQUZFLGlEQUFBLENBSEEsY0FBQSxDQUVBLGlCQ1FGLENER0EsV0FDRSx1QkNBRixDRFdBLHNCQUhFLHNCQ0tGLENERUEsZ0NBTkUsdUJDUUYsQ0RFQSxTQUdFLHVCQ0FGLENESUEsRUFDRSx1QkNERixDREdBLG1CQUdFLHNCQUFBLENBQ0EsVUFBQSxDQUNBLGVBQUEsQ0FFQSxlQUFBLENBREEseUJDQUYsQ0RnQkEsT0FDRSwyQkFBQSxDQUNBLG9CQ2JGLENEZ0JBLGFBRkUsZ0NDTkYsQ0RRQSxNQUVFLGtDQUFBLENBRUEsaUNBQUEsQ0FBQSx5QkFBQSxDQURBLG1CQUFBLENBR0EsZ0NBQUEsQ0FBQSx3QkFBQSxDQURBLGlDQUFBLENBQUEseUJDYkYsQ0FDRiIsImZpbGUiOiJwcmludC5jc3MifQ== */
\ No newline at end of file
diff --git a/docs/css/prism.css b/docs/css/prism.css
index 0ace8b1d..8d6c8d95 100644
--- a/docs/css/prism.css
+++ b/docs/css/prism.css
@@ -1,154 +1,2 @@
-/* PrismJS 1.29.0
-https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript+markdown+scss&plugins=show-language+toolbar */
-code[class*=language-], pre[class*=language-] {
- color: #000;
- background: 0 0;
- text-shadow: 0 1px #fff;
- font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;
- font-size: 1em;
- text-align: left;
- white-space: pre;
- word-spacing: normal;
- word-break: normal;
- word-wrap: normal;
- line-height: 1.5;
- tab-size: 4;
- hyphens: none;
-}
-
-code[class*=language-] ::selection, code[class*=language-]::selection, pre[class*=language-] ::selection, pre[class*=language-]::selection {
- text-shadow: none;
- background: #b3d4fc;
-}
-
-code[class*=language-] ::selection, code[class*=language-]::selection, pre[class*=language-] ::selection, pre[class*=language-]::selection {
- text-shadow: none;
- background: #b3d4fc;
-}
-
-@media print {
- code[class*=language-], pre[class*=language-] {
- text-shadow: none;
- }
-}
-pre[class*=language-] {
- padding: 1em;
- margin: 0.5em 0;
- overflow: auto;
-}
-
-:not(pre) > code[class*=language-], pre[class*=language-] {
- background: #f5f2f0;
-}
-
-:not(pre) > code[class*=language-] {
- padding: 0.1em;
- border-radius: 0.3em;
- white-space: normal;
-}
-
-.token.cdata, .token.comment, .token.doctype, .token.prolog {
- color: #708090;
-}
-
-.token.punctuation {
- color: #999;
-}
-
-.token.namespace {
- opacity: 0.7;
-}
-
-.token.boolean, .token.constant, .token.deleted, .token.number, .token.property, .token.symbol, .token.tag {
- color: #905;
-}
-
-.token.attr-name, .token.builtin, .token.char, .token.inserted, .token.selector, .token.string {
- color: #690;
-}
-
-.language-css .token.string, .style .token.string, .token.entity, .token.operator, .token.url {
- color: #9a6e3a;
- background: hsla(0, 0%, 100%, 0.5);
-}
-
-.token.atrule, .token.attr-value, .token.keyword {
- color: #07a;
-}
-
-.token.class-name, .token.function {
- color: #dd4a68;
-}
-
-.token.important, .token.regex, .token.variable {
- color: #e90;
-}
-
-.token.bold, .token.important {
- font-weight: 700;
-}
-
-.token.italic {
- font-style: italic;
-}
-
-.token.entity {
- cursor: help;
-}
-
-div.code-toolbar {
- position: relative;
-}
-
-div.code-toolbar > .toolbar {
- position: absolute;
- z-index: 10;
- top: 0.3em;
- right: 0.2em;
- transition: opacity 0.3s ease-in-out;
- opacity: 0;
-}
-
-div.code-toolbar:hover > .toolbar {
- opacity: 1;
-}
-
-div.code-toolbar:focus-within > .toolbar {
- opacity: 1;
-}
-
-div.code-toolbar > .toolbar > .toolbar-item {
- display: inline-block;
-}
-
-div.code-toolbar > .toolbar > .toolbar-item > a {
- cursor: pointer;
-}
-
-div.code-toolbar > .toolbar > .toolbar-item > button {
- background: 0 0;
- border: 0;
- color: inherit;
- font: inherit;
- line-height: normal;
- overflow: visible;
- padding: 0;
- user-select: none;
-}
-
-div.code-toolbar > .toolbar > .toolbar-item > a, div.code-toolbar > .toolbar > .toolbar-item > button, div.code-toolbar > .toolbar > .toolbar-item > span {
- color: #bbb;
- font-size: 0.8em;
- padding: 0 0.5em;
- background: #f5f2f0;
- background: rgba(224, 224, 224, 0.2);
- box-shadow: 0 2px 0 0 rgba(0, 0, 0, 0.2);
- border-radius: 0.5em;
-}
-
-div.code-toolbar > .toolbar > .toolbar-item > a:focus, div.code-toolbar > .toolbar > .toolbar-item > a:hover, div.code-toolbar > .toolbar > .toolbar-item > button:focus, div.code-toolbar > .toolbar > .toolbar-item > button:hover, div.code-toolbar > .toolbar > .toolbar-item > span:focus, div.code-toolbar > .toolbar > .toolbar-item > span:hover {
- color: inherit;
- text-decoration: none;
-}
-
-/*# sourceMappingURL=prism.css.map */
+code[class*=language-],pre[class*=language-]{background:0 0;color:#000;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;text-shadow:0 1px #fff;white-space:pre;word-break:normal;word-spacing:normal;word-wrap:normal;-ms-hyphens:none;hyphens:none;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{background:#b3d4fc;text-shadow:none}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{background:#b3d4fc;text-shadow:none}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{margin:.5em 0;overflow:auto;padding:1em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{border-radius:.3em;padding:.1em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{background:hsla(0,0%,100%,.5);color:#9a6e3a}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}div.code-toolbar{position:relative}div.code-toolbar>.toolbar{opacity:0;position:absolute;right:.2em;top:.3em;-webkit-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;z-index:10}div.code-toolbar:hover>.toolbar{opacity:1}div.code-toolbar:focus-within>.toolbar{opacity:1}div.code-toolbar>.toolbar>.toolbar-item{display:inline-block}div.code-toolbar>.toolbar>.toolbar-item>a{cursor:pointer}div.code-toolbar>.toolbar>.toolbar-item>button{background:0 0;border:0;color:inherit;font:inherit;line-height:normal;overflow:visible;padding:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.code-toolbar>.toolbar>.toolbar-item>a,div.code-toolbar>.toolbar>.toolbar-item>button,div.code-toolbar>.toolbar>.toolbar-item>span{background:#f5f2f0;background:hsla(0,0%,88%,.2);border-radius:.5em;-webkit-box-shadow:0 2px 0 0 rgba(0,0,0,.2);box-shadow:0 2px 0 0 rgba(0,0,0,.2);color:#bbb;font-size:.8em;padding:0 .5em}div.code-toolbar>.toolbar>.toolbar-item>a:focus,div.code-toolbar>.toolbar>.toolbar-item>a:hover,div.code-toolbar>.toolbar>.toolbar-item>button:focus,div.code-toolbar>.toolbar>.toolbar-item>button:hover,div.code-toolbar>.toolbar>.toolbar-item>span:focus,div.code-toolbar>.toolbar>.toolbar-item>span:hover{color:inherit;text-decoration:none}
+/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zYXNzL3ByaXNtLnNjc3MiLCJwcmlzbS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsNkNBQTRELGNBQUEsQ0FBWCxVQUFBLENBQWlELDZEQUFBLENBQWtFLGFBQUEsQ0FBYyxlQUFBLENBQXZHLHNCQUFBLENBQXVILGVBQUEsQ0FBb0MsaUJBQUEsQ0FBcEIsbUJBQUEsQ0FBc0MsZ0JBQUEsQ0FBNEMsZ0JBQUEsQ0FBQSxZQUFBLENBQTNCLGVBQUEsQ0FBZ0IsZUFBQSxDQUFBLGFBQUEsQ0FBQSxVQ2N6UixDRGRxZSw0SkFBaUssa0JBQUEsQ0FBakIsZ0JDd0JybkIsQ0R4QnFlLHdJQUFpSyxrQkFBQSxDQUFqQixnQkN3QnJuQixDRHhCeXBCLGFBQWEsNkNBQWlELGdCQzZCcnRCLENBQ0YsQ0Q5Qnl1QixzQkFBb0MsYUFBQSxDQUFjLGFBQUEsQ0FBMUIsV0NtQ2p3QixDRG5DeXlCLHVEQUEyRCxrQkN1Q3AyQixDRHZDdTNCLGlDQUFnRCxrQkFBQSxDQUFiLFlBQUEsQ0FBZ0Msa0JDNkMxN0IsQ0Q3QzY4Qix5REFBeUQsYUNpRHRnQyxDRGpEb2hDLG1CQUFtQixVQ3FEdmlDLENEckRrakMsaUJBQWlCLFVDeURua0MsQ0R6RDhrQyxxR0FBcUcsVUM2RG5yQyxDRDdEOHJDLDBGQUEwRixVQ2lFeHhDLENEakVteUMsMEZBQXdHLDZCQUFBLENBQWQsYUNzRTczQyxDRHRFNDZDLCtDQUErQyxVQzBFMzlDLENEMUVzK0Msa0NBQWtDLGFDOEV4Z0QsQ0Q5RXNoRCw4Q0FBOEMsVUNrRnBrRCxDRGxGK2tELDZCQUE2QixlQ3NGNW1ELENEdEY0bkQsY0FBYyxpQkMwRjFvRCxDRDFGNHBELGNBQWMsV0M4RjFxRCxDRDdGQSxpQkFBaUIsaUJDaUdqQixDRGpHbUMsMEJBQThHLFNBQUEsQ0FBcEYsaUJBQUEsQ0FBc0MsVUFBQSxDQUFULFFBQUEsQ0FBb0IsMENBQUEsQ0FBQSxrQ0FBQSxDQUEvQixVQzBHL0UsQ0QxRzJKLGdDQUFnQyxTQzhHM0wsQ0Q5R3FNLHVDQUF1QyxTQ2tINU8sQ0RsSHNQLHdDQUF3QyxvQkNzSDlSLENEdEhtVCwwQ0FBMEMsY0MwSDdWLENEMUg0VywrQ0FBK0MsY0FBQSxDQUFlLFFBQUEsQ0FBUyxhQUFBLENBQWMsWUFBQSxDQUFhLGtCQUFBLENBQW1CLGdCQUFBLENBQWlCLFNBQUEsQ0FBVSx3QkFBQSxDQUFBLHFCQUFBLENBQUEsb0JBQUEsQ0FBQSxnQkNxSTVmLENEckk2Z0Isc0lBQStLLGtCQUFBLENBQW1CLDRCQUFBLENBQW9FLGtCQUFBLENBQXBDLDJDQUFBLENBQUEsbUNBQUEsQ0FBNUYsVUFBQSxDQUFXLGNBQUEsQ0FBZSxjQytJN3FCLENEL0lzeUIsZ1RBQWdULGFBQUEsQ0FBYyxvQkNvSnBtQyIsImZpbGUiOiJwcmlzbS5jc3MifQ== */
\ No newline at end of file
diff --git a/docs/css/slides.css b/docs/css/slides.css
index 5da54723..187b5105 100644
--- a/docs/css/slides.css
+++ b/docs/css/slides.css
@@ -1,63 +1,2 @@
-/*
-** Based on the CodePen from Chirs Coyier
-** https://codepen.io/chriscoyier/pen/XwbNwX
-*/
-.slider {
- text-align: center;
- overflow: hidden;
-}
-
-.slides {
- display: flex;
- overflow-x: auto;
- scroll-snap-type: x mandatory;
- scroll-behavior: smooth;
- -webkit-overflow-scrolling: touch;
-}
-
-.slides::-webkit-scrollbar {
- width: 16px;
-}
-
-.slides::-webkit-scrollbar-thumb {
- background: var(--earth-sage);
- border-radius: 2rem;
- border: 2px solid transparent;
- background-clip: content-box;
-}
-
-.slides::-webkit-scrollbar-track {
- background: transparent;
- padding: 0 2px;
- border-radius: 2rem;
- border: 1px solid transparent;
-}
-
-.slides > div {
- scroll-snap-align: start;
- flex-shrink: 0;
- width: 300px;
- height: 300px;
- margin-right: 50px;
- border-radius: 10px;
- background: transparent;
- transform-origin: center center;
- transform: scale(1);
- transition: transform 0.5s;
- position: relative;
- display: flex;
- justify-content: center;
- align-items: center;
- font-size: 100px;
-}
-
-.carousel img {
- object-fit: cover;
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
-}
-
-/*# sourceMappingURL=slides.css.map */
+.slider{overflow:hidden;text-align:center}.slides{display:-webkit-box;display:-ms-flexbox;display:flex;overflow-x:auto;scroll-behavior:smooth;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.slides::-webkit-scrollbar{width:16px}.slides::-webkit-scrollbar-thumb{background:var(--earth-sage);background-clip:content-box;border:2px solid transparent;border-radius:2rem}.slides::-webkit-scrollbar-track{background:transparent;border:1px solid transparent;border-radius:2rem;padding:0 2px}.slides>div{scroll-snap-align:start;-ms-flex-negative:0;background:transparent;border-radius:10px;display:-webkit-box;display:-ms-flexbox;display:flex;flex-shrink:0;height:300px;margin-right:50px;position:relative;-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:center center;transform-origin:center center;-webkit-transition:-webkit-transform .5s;transition:-webkit-transform .5s;transition:transform .5s;transition:transform .5s,-webkit-transform .5s;width:300px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:100px}.carousel img{height:100%;left:0;-o-object-fit:cover;object-fit:cover;position:absolute;top:0;width:100%}
+/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zYXNzL3NsaWRlcy5zY3NzIiwic2xpZGVzLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxRQUdFLGVBQUEsQ0FEQSxpQkNBRixDRElBLFFBQ0UsbUJBQUEsQ0FBQSxtQkFBQSxDQUFBLFlBQUEsQ0FFQSxlQUFBLENBR0Esc0JBQUEsQ0FGQSxnQ0FBQSxDQUFBLDRCQUFBLENBR0EsZ0NDSEYsQ0RLQSwyQkFDRSxVQ0ZGLENESUEsaUNBQ0UsNEJBQUEsQ0FHQSwyQkFBQSxDQURBLDRCQUFBLENBREEsa0JDQ0YsQ0RHQSxpQ0FDRSxzQkFBQSxDQUdBLDRCQUFBLENBREEsa0JBQUEsQ0FEQSxhQ0VGLENERUEsWUFDRSx1QkFBQSxDQUNBLG1CQUFBLENBS0Esc0JBQUEsQ0FEQSxrQkFBQSxDQU9BLG1CQUFBLENBQUEsbUJBQUEsQ0FBQSxZQUFBLENBWEEsYUFBQSxDQUVBLFlBQUEsQ0FDQSxpQkFBQSxDQU1BLGlCQUFBLENBRkEsMEJBQUEsQ0FBQSxrQkFBQSxDQURBLHNDQUFBLENBQUEsOEJBQUEsQ0FFQSx3Q0FBQSxDQUFBLGdDQUFBLENBQUEsd0JBQUEsQ0FBQSw4Q0FBQSxDQVBBLFdBQUEsQ0FXQSx1QkFBQSxDQUFBLG9CQUFBLENBQUEsc0JBQUEsQ0FDQSx3QkFBQSxDQUFBLHFCQUFBLENBQUEsa0JBQUEsQ0FDQSxlQ0FGLENERUEsY0FNRSxXQUFBLENBRkEsTUFBQSxDQUhBLG1CQUFBLENBQUEsZ0JBQUEsQ0FDQSxpQkFBQSxDQUNBLEtBQUEsQ0FFQSxVQ0VGIiwiZmlsZSI6InNsaWRlcy5jc3MifQ== */
\ No newline at end of file
diff --git a/docs/css/style.css b/docs/css/style.css
index 74e16b42..1b88aebf 100644
--- a/docs/css/style.css
+++ b/docs/css/style.css
@@ -1,1798 +1,2 @@
-@charset "UTF-8";
-/**
- ** Copyright 2008-2025 Adam J. Jolicoeur
- ** https://www.adamjolicoeur.com
-**/
-:root {
- /* Font Families */
- --font-family-sans:
- 'Inter', system-ui, -apple-system, blinkmacsystemfont, 'Segoe UI', roboto,
- 'Helvetica Neue', arial, sans-serif;
- --font-family-serif: 'Playfair Display', serif;
- --font-family-mono: 'Fira Code', 'Courier New', courier, monospace;
- --font-family-heading: 'Pirata One', cursive;
- /* Colors */
- --white: #f0f0f0;
- --black: #010101;
- --earth-dark: #2d1f12;
- --earth-brown: #4a3426;
- --earth-sage: #5a6b4f;
- --earth-sand: #c9b89a;
- --earth-cream: #f5f1e8;
- --accent-coral: #d35f3d;
- --accent-coral-dark: #b34a2d;
- --text-primary: #2d1f12;
- --text-secondary: #4a3426;
- --text-muted: #6b5d52;
- --shadow: rgb(45, 31, 18, 15%);
- --shadow-heavy: rgb(45, 31, 18, 25%);
- --shadow-light: rgb(45, 31, 18, 8%);
- --bg-canvas: var(--earth-cream);
- --border-brown: var(--earth-brown);
- /* Font Sizes */
- --font-size-xs: 0.75rem;
- --font-size-sm: 0.875rem;
- --font-size-md: 1rem;
- --font-size-lg: 1.125rem;
- --font-size-xl: 1.25rem;
- --font-size-2xl: 1.5rem;
- --font-size-3xl: 2rem;
- --font-size-4xl: 2.5rem;
- --font-size-5xl: 3rem;
- --font-size-6xl: 4rem;
- /* Spacing */
- --space-2xs: 0.25rem;
- --space-xs: 0.5rem;
- --space-sm: 0.75rem;
- --space-md: 1rem;
- --space-lg: 1.5rem;
- --space-xl: 2rem;
- --space-2xl: 3rem;
- --space-3xl: 6rem;
- /* Border radius */
- --radius-sm: 8px;
- --radius-md: 12px;
- --radius-lg: 16px;
- --radius-xl: 20px;
- --radius-pill: 50px;
- /* Borders */
- --border-thin: 2px;
- --border-medium: 4px;
- --border-thick: 6px;
- --border-extra-thick: 8px;
-}
-
-* {
- margin: 0;
- padding: 0;
- box-sizing: border-box;
-}
-
-/* Focus visible styles for keyboard navigation */
-*:focus-visible {
- outline: var(--border-thin) solid var(--accent-coral);
- outline-offset: 2px;
-}
-
-html {
- scroll-behavior: smooth;
-}
-
-body {
- font-family: var(--font-family-sans);
- background: linear-gradient(135deg, var(--earth-cream) 0%, #e8dcc8 100%);
- color: var(--text-primary);
- line-height: 1.6;
- min-height: 100vh;
- position: relative;
-}
-
-html::-webkit-scrollbar,
-::-webkit-scrollbar {
- width: 16px;
-}
-
-html::-webkit-scrollbar-thumb,
-::-webkit-scrollbar-thumb {
- background: linear-gradient(var(--accent-coral-dark), var(--accent-coral));
- border-radius: 2rem;
- border: 2px solid transparent;
- background-clip: content-box;
-}
-
-html::-webkit-scrollbar-track,
-::-webkit-scrollbar-track {
- background: transparent;
- padding: 0 2px;
- border-radius: 2rem;
- border: 1px solid var(--earth-sage);
-}
-
-/* Styles for users who prefer reduced motion */
-@media (prefers-reduced-motion: reduce) {
- .animated-element {
- animation: none; /* Disable animations */
- transition: none; /* Disable transitions */
- /* You can also provide alternative, less motion-intensive styles here */
- /* For example, for a hover effect, you might change opacity instead of scaling */
- opacity: 1; /* Ensure element is visible if animation was for visibility */
- }
- /* You can also target specific elements or properties */
- body {
- scroll-behavior: auto; /* Disable smooth scrolling if enabled */
- }
- *,
- *::before,
- *::after {
- animation-duration: 0.01ms !important;
- animation-iteration-count: 1 !important;
- transition-duration: 0.01ms !important;
- }
-}
-.display-none,
-.d-none {
- display: none !important;
-}
-
-/* Hero Section */
-.hero {
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- padding: 6rem 2rem;
- text-align: center;
- max-width: 900px;
- margin: 0 auto;
-}
-
-.rounded {
- border-radius: var(--radius-xl, 20px) !important;
-}
-
-.circle {
- border-radius: 999px !important;
- padding: 1rem !important;
-}
-
-/* Work Highlights */
-.fade-in {
- opacity: 0;
- visibility: hidden;
- transition: opacity 0.5s ease-in, visibility 0s linear 0.5s; /* 0.5s for opacity transition, 0s visibility transition after 0.5s delay */
-}
-
-.fade-in.show {
- opacity: 1;
- visibility: visible;
- transition-delay: 0s; /* Override the delay for fade-in */
-}
-
-.show {
- opacity: 1;
- visibility: visible;
- transition-delay: 0s;
-}
-
-.hide {
- opacity: 0;
- visibility: hidden;
- transition: opacity 0.5s ease-in, visibility 0s linear 0.5s; /* 0.5s for opacity transition, 0s visibility transition after 0.5s delay */
-}
-
-.hide-on-screen {
- display: none !important;
-}
-
-/* Responsive */
-@media (width <= 768px) {
- .hero h1 {
- font-size: var(--font-size-5xl, 3rem);
- }
- .no-wrap {
- flex-wrap: wrap !important;
- }
- .hide-on-mobile {
- display: none !important;
- }
- .work-grid {
- grid-template-columns: 1fr;
- }
- .callouts-grid {
- grid-template-columns: 1fr;
- }
- h2 {
- font-size: var(--font-size-3xl, 2rem);
- }
-}
-figcaption {
- font-size: var(--font-size-sm, 0.875rem);
- line-height: 1.4;
- color: var(--text-secondary);
- text-align: center;
- font-style: italic;
-}
-
-/* stylint-disable */
-/*
-** Arrow animations from https://codepen.io/postor/pen/vYpNYg
-*/
-.arrows {
- width: 60px;
- height: 72px;
- position: absolute;
- left: 50%;
- margin-left: -30px;
- bottom: 20px;
-}
-
-.arrows path {
- stroke: #bfe7fa;
- fill: transparent;
- stroke-width: 1px;
- animation: arrow 2s infinite;
-}
-
-@keyframes arrow {
- 0% {
- opacity: 0;
- }
- 40% {
- opacity: 1;
- }
- 80% {
- opacity: 0;
- }
- 100% {
- opacity: 0;
- }
-}
-@keyframes arrow /*Safari and Chrome*/ {
- 0% {
- opacity: 0;
- }
- 40% {
- opacity: 1;
- }
- 80% {
- opacity: 0;
- }
- 100% {
- opacity: 0;
- }
-}
-.arrows path.a1 {
- animation-delay: -1s;
- /* Safari 和 Chrome */
-}
-
-.arrows path.a2 {
- animation-delay: -0.5s;
- /* Safari 和 Chrome */
-}
-
-.arrows path.a3 {
- animation-delay: 0s;
- /* Safari 和 Chrome */
-}
-
-.pirata-one-regular {
- font-family: "Pirata One", system-ui;
- font-weight: 400;
- font-style: normal;
-}
-
-.inter-400 {
- font-family: Inter, sans-serif;
- font-optical-sizing: auto;
- font-weight: 400;
- font-style: normal;
-}
-
-.inter-500 {
- font-family: Inter, sans-serif;
- font-optical-sizing: auto;
- font-weight: 500;
- font-style: normal;
-}
-
-.inter-600 {
- font-family: Inter, sans-serif;
- font-optical-sizing: auto;
- font-weight: 600;
- font-style: normal;
-}
-
-.inter-700 {
- font-family: Inter, sans-serif;
- font-optical-sizing: auto;
- font-weight: 700;
- font-style: normal;
-}
-
-.inter-800 {
- font-family: Inter, sans-serif;
- font-optical-sizing: auto;
- font-weight: 800;
- font-style: normal;
-}
-
-.inter-900 {
- font-family: Inter, sans-serif;
- font-optical-sizing: auto;
- font-weight: 900;
- font-style: normal;
-}
-
-.playfair-display-400 {
- font-family: "Playfair Display", serif;
- font-optical-sizing: auto;
- font-weight: 400;
- font-style: normal;
-}
-
-.playfair-display-500 {
- font-family: "Playfair Display", serif;
- font-optical-sizing: auto;
- font-weight: 500;
- font-style: normal;
-}
-
-.playfair-display-600 {
- font-family: "Playfair Display", serif;
- font-optical-sizing: auto;
- font-weight: 600;
- font-style: normal;
-}
-
-.playfair-display-700 {
- font-family: "Playfair Display", serif;
- font-optical-sizing: auto;
- font-weight: 700;
- font-style: normal;
-}
-
-.playfair-display-800 {
- font-family: "Playfair Display", serif;
- font-optical-sizing: auto;
- font-weight: 800;
- font-style: normal;
-}
-
-.playfair-display-900 {
- font-family: "Playfair Display", serif;
- font-optical-sizing: auto;
- font-weight: 900;
- font-style: normal;
-}
-
-/* Heading 1 */
-h1,
-.text-h1 {
- font-family: "Pirata One", cursive;
- font-size: clamp(2.5rem, 8vw, 5rem);
- color: var(--text-primary);
- line-height: 1.2;
- letter-spacing: 2px;
- text-shadow: 3px 3px 0 var(--accent-coral);
-}
-
-.text-display {
- font-family: "Pirata One", cursive;
- font-size: clamp(3rem, 10vw, 6rem);
- color: var(--text-primary);
- line-height: 1.1;
- letter-spacing: 2px;
- text-shadow: 3px 3px 0 var(--accent-coral);
-}
-
-.hero h1 {
- font-family: var(--font-family-heading);
- color: var(--text-primary);
- margin-bottom: 1rem;
- text-shadow: 3px 3px 0 var(--accent-coral);
- letter-spacing: 2px;
- line-height: 1.2;
-}
-
-/* Heading 2 */
-h2,
-.text-h2 {
- font-family: "Playfair Display", serif;
- font-size: clamp(2rem, 5vw, 3rem);
- color: var(--text-primary);
- line-height: 1.3;
- font-weight: 700;
- margin-bottom: var(--space-md, 1.5rem);
-}
-
-.text-h2.no-underline::after {
- display: none;
- margin-bottom: var(--space-2xs, 0.25rem);
-}
-
-h2::after,
-.text-h2::after {
- content: "";
- display: block;
- width: 100px;
- height: 5px;
- background: var(--accent-coral);
- margin: 1rem auto;
- border: 3px solid var(--earth-brown);
-}
-
-/* Heading 3 */
-h3,
-.text-h3 {
- font-family: "Playfair Display", serif;
- font-size: clamp(1.5rem, 3vw, 2rem);
- color: var(--text-primary);
- line-height: 1.3;
- font-weight: 600;
-}
-
-/* Heading 4 */
-h4,
-.text-h4 {
- font-family: "Playfair Display", serif;
- font-size: clamp(1.25rem, 2.5vw, 1.5rem);
- color: var(--text-primary);
- line-height: 1.4;
- font-weight: 600;
-}
-
-/* Heading 5 */
-h5,
-.text-h5 {
- font-family: Inter, sans-serif;
- font-size: clamp(1.1rem, 2vw, 1.25rem);
- color: var(--text-primary);
- line-height: 1.4;
- font-weight: 700;
-}
-
-/* Heading 6 */
-h6,
-.text-h6 {
- font-family: Inter, sans-serif;
- font-size: 1rem;
- color: var(--text-primary);
- line-height: 1.4;
- font-weight: 700;
- text-transform: uppercase;
- letter-spacing: 0.5px;
-}
-
-/* Body text sizes */
-.text-body-lg {
- font-size: clamp(1.1rem, 1.5vw, 1.25rem) !important;
- line-height: 1.7 !important;
-}
-
-p,
-.text-body {
- font-size: clamp(0.95rem, 1.5vw, 1rem);
- line-height: 1.7;
- color: var(--text-primary);
- padding-bottom: var(--space-xs, 0.5rem);
-}
-
-p:last-child,
-.text-body:last-child {
- margin-bottom: 0;
-}
-
-.hero p {
- font-size: clamp(1.1rem, 2vw, 1.25rem);
- color: var(--earth-brown);
- max-width: 720px;
- margin: 0 auto;
-}
-
-.card-body p:first-of-type,
-.card-body .text-body:first-of-type {
- margin-top: var(--space-md, 16px);
-}
-
-.text-body-sm {
- font-size: clamp(0.85rem, 1.2vw, 0.9rem);
- line-height: 1.6;
-}
-
-.text-caption {
- font-size: clamp(var(--space-sm), 1vw, 0.85rem);
- line-height: 1.5;
- color: var(--text-muted);
-}
-
-.text-callout {
- font-size: clamp(1rem, 1.5vw, 1.1rem);
- line-height: 1.6;
- font-weight: 600;
- color: var(--text-primary);
- margin: var(--space-lg, 1.5rem);
- padding: var(--space-lg, 1.5rem);
- background: var(--earth-sand-light);
- border-left: var(--border-medium) solid var(--accent-coral);
-}
-
-code,
-.code {
- font-family: var(--font-family-mono);
- font-size: clamp(0.85rem, 1vw, 0.9rem);
-}
-
-code.code-inline,
-.code.code-inline {
- background: var(--earth-sand);
- padding: 0.1rem 0.3rem;
- border-radius: var(--radius-sm);
-}
-
-.code-block {
- display: block;
- background: var(--earth-sand);
- padding: 1rem;
- border-radius: var(--radius-md);
- font-size: clamp(0.85rem, 1vw, 0.9rem);
- overflow-x: auto;
- border: var(--border-thin) solid var(--earth-sage);
-}
-
-/* Text utilities */
-.text-muted {
- color: var(--text-muted);
-}
-
-.text-secondary {
- color: var(--text-secondary);
-}
-
-.text-accent {
- color: var(--accent-coral);
-}
-
-.text-semibold {
- font-weight: 600;
-}
-
-.text-bold {
- font-weight: 700;
-}
-
-.text-center {
- text-align: center;
-}
-
-/* Lead paragraph */
-.lead,
-.text-lead {
- font-size: clamp(1.1rem, 2vw, 1.35rem);
- line-height: 1.7;
- color: var(--text-secondary);
-}
-
-/* Links */
-a,
-.link {
- color: var(--earth-sage);
- border-bottom: 1px solid var(--earth-sage);
- text-decoration: none;
- transition: all 0.2s;
- font-weight: var(--font-weight-semibold, 600);
-}
-
-a:hover,
-a:focus,
-.link:hover,
-.link:focus {
- color: var(--earth-brown);
- border-bottom-color: var(--earth-brown);
-}
-
-.link-brackets {
- margin-left: var(--space-md) !important;
-}
-.link-brackets::after {
- content: "]";
- position: absolute;
- margin-left: 0.2rem;
- color: var(--earth-sage);
- transition: all 0.2s;
-}
-.link-brackets::before {
- content: "[";
- position: absolute;
- margin-left: -0.8rem;
- color: var(--earth-sage);
- transition: all 0.2s;
-}
-.link-brackets:hover::after, .link-brackets:hover::before, .link-brackets:focus::after, .link-brackets:focus::before {
- color: var(--accent-coral);
-}
-
-/* Blockquote */
-blockquote,
-.blockquote {
- border-left: var(--border-thin) solid var(--earth-brown);
- padding-left: var(--space-md, 1rem);
- margin: var(--space-lg, 1.5rem) 0;
- font-style: italic;
- color: var(--text-secondary);
-}
-
-.mb-1 {
- margin-bottom: var(--space-2xs) !important;
-}
-
-.mb-2 {
- margin-bottom: var(--space-xs) !important;
-}
-
-.mb-3 {
- margin-bottom: var(--space-sm) !important;
-}
-
-.mb-4 {
- margin-bottom: var(--space-md) !important;
-}
-
-.mb-5 {
- margin-bottom: var(--space-xl) !important;
-}
-
-.mt-1 {
- margin-top: var(--space-2xs) !important;
-}
-
-.mt-2 {
- margin-top: var(--space-xs) !important;
-}
-
-.mt-3 {
- margin-top: var(--space-sm) !important;
-}
-
-.mt-4 {
- margin-top: var(--space-md) !important;
-}
-
-.mt-5 {
- margin-top: var(--space-xl) !important;
-}
-
-.ml-1 {
- margin-left: var(--space-2xs) !important;
-}
-
-.ml-2 {
- margin-left: var(--space-xs) !important;
-}
-
-.ml-3 {
- margin-left: var(--space-sm) !important;
-}
-
-.ml-4 {
- margin-left: var(--space-md) !important;
-}
-
-.ml-5 {
- margin-left: var(--space-xl) !important;
-}
-
-.mr-1 {
- margin-right: var(--space-2xs) !important;
-}
-
-.mr-2 {
- margin-right: var(--space-xs) !important;
-}
-
-.mr-3 {
- margin-right: var(--space-sm) !important;
-}
-
-.mr-4 {
- margin-right: var(--space-md) !important;
-}
-
-.mr-5 {
- margin-right: var(--space-xl) !important;
-}
-
-.p-1 {
- padding: var(--space-2xs) !important;
-}
-
-.p-2 {
- padding: var(--space-xs) !important;
-}
-
-.p-3 {
- padding: var(--space-sm) !important;
-}
-
-.p-4 {
- padding: var(--space-md) !important;
-}
-
-.p-5 {
- padding: var(--space-xl) !important;
-}
-
-.pt-1 {
- padding-top: var(--space-2xs) !important;
-}
-
-.pt-2 {
- padding-top: var(--space-xs) !important;
-}
-
-.pt-3 {
- padding-top: var(--space-sm) !important;
-}
-
-.pt-4 {
- padding-top: var(--space-md) !important;
-}
-
-.pt-5 {
- padding-top: var(--space-xl) !important;
-}
-
-.pb-1 {
- padding-bottom: var(--space-2xs) !important;
-}
-
-.pb-2 {
- padding-bottom: var(--space-xs) !important;
-}
-
-.pb-3 {
- padding-bottom: var(--space-sm) !important;
-}
-
-.pb-4 {
- padding-bottom: var(--space-md) !important;
-}
-
-.pb-5 {
- padding-bottom: var(--space-xl) !important;
-}
-
-.pl-1 {
- padding-left: var(--space-2xs) !important;
-}
-
-.pl-2 {
- padding-left: var(--space-xs) !important;
-}
-
-.pl-3 {
- padding-left: var(--space-sm) !important;
-}
-
-.pl-4 {
- padding-left: var(--space-md) !important;
-}
-
-.pl-5 {
- padding-left: var(--space-xl) !important;
-}
-
-.pr-1 {
- padding-right: var(--space-2xs) !important;
-}
-
-.pr-2 {
- padding-right: var(--space-xs) !important;
-}
-
-.pr-3 {
- padding-right: var(--space-sm) !important;
-}
-
-.pr-4 {
- padding-right: var(--space-md) !important;
-}
-
-.pr-5 {
- padding-right: var(--space-xl) !important;
-}
-
-/* Section Styles */
-section {
- max-width: 1200px;
- margin: 0 auto;
- padding: var(--space-3xl, 6rem) var(--space-lg, 2rem);
-}
-
-.justify-content-center {
- justify-content: center !important;
-}
-
-.justify-content-between {
- justify-content: space-between !important;
-}
-
-.justify-content-around {
- justify-content: space-around !important;
-}
-
-.justify-content-end {
- justify-content: flex-end !important;
-}
-
-.row {
- display: flex;
- flex-wrap: wrap;
- gap: var(--space-lg, 2rem);
-}
-
-@media (width >= 768px) {
- .row {
- gap: var(--space-sm, 0.5rem);
- }
-}
-@media (width >= 768px) {
- .card-body .row {
- gap: 0;
- }
-}
-.button-row {
- gap: 1rem;
-}
-
-.no-wrap {
- flex-wrap: nowrap;
-}
-
-.d-flex {
- display: flex;
-}
-
-.flex-column {
- flex-direction: column;
-}
-
-.align-items-center {
- align-items: center;
-}
-
-.work-grid {
- display: grid;
- gap: var(--space-lg, 2rem);
- grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
- margin-bottom: var(--space-lg, 2rem);
-}
-
-.divider {
- display: block;
- width: 50%;
- height: var(--space-md, 1.5rem);
- background: var(--accent-coral);
- border: var(--border-medium, 4px) outset var(--earth-dark);
- margin: 0 auto;
-}
-
-.divider.vertical {
- width: var(--space-2xs, 0.25rem);
- height: 100%;
- background: var(--earth-dark);
- border-radius: var(--radius-sm);
- border: none !important;
- margin: 0;
-}
-
-ul,
-ol,
-.card-body ul,
-.card-body ol,
-ul.list, ol.list {
- margin-left: var(--space-lg) !important;
- padding-left: var(--space-md) !important;
-}
-
-.highlight-block {
- display: flex;
- flex-direction: row;
- align-items: center;
- justify-content: center;
-}
-
-.header-highlight {
- text-align: center;
- margin: var(--space-md) auto;
- padding: var(--space-md);
- width: 100%;
-}
-
-/* Navigation */
-nav {
- position: fixed;
- top: 2rem;
- left: 50%;
- transform: translateX(-50%);
- z-index: 1000;
- background: rgba(245, 241, 232, 0.5);
- backdrop-filter: blur(24px);
- filter: url("#lensFilter") saturate(120%) brightness(1.15);
- border: var(--border-medium, 4px) solid var(--earth-brown);
- border-radius: 50px;
- padding: var(--space-sm) 2rem;
- box-shadow: 0 8px 24px var(--shadow-heavy);
-}
-
-.main-nav {
- position: sticky;
- top: 2rem;
- margin: 0 auto;
- width: fit-content;
- transform: none !important;
- left: 0;
- right: 0;
-}
-
-nav ul {
- list-style: none;
- display: flex;
- justify-content: center;
- gap: 2rem;
- margin-left: 0 !important;
- padding-left: 0 !important;
-}
-
-nav a {
- text-decoration: none;
- color: var(--text-primary);
- font-weight: 500;
- font-size: 0.95rem;
- transition: color 0.3s;
- padding: var(--space-2xs) var(--space-xs, 0.5rem);
- border-bottom: none;
-}
-
-nav a:hover,
-nav a:focus {
- color: var(--accent-coral);
- outline: var(--border-thin) solid var(--accent-coral);
- outline-offset: 2px;
-}
-
-nav a.active {
- color: var(--accent-coral);
-}
-
-nav a.sub-page {
- outline: var(--border-thin) solid var(--text-secondary);
- outline-offset: 2px;
-}
-
-nav a.sub-page:hover {
- outline-color: var(--accent-coral);
-}
-
-@media (width <= 768px) {
- nav {
- top: var(--space-sm, 1rem) !important;
- padding: var(--space-xs, 0.5rem) var(--space-sm, 1rem) !important;
- margin: 0 auto !important;
- }
- nav ul {
- gap: var(--space-sm, 1rem);
- }
-}
-/* Footer */
-footer {
- background: var(--earth-dark);
- color: var(--earth-cream);
- padding: var(--space-2xl, 3rem) var(--space-xl, 2rem);
- margin-top: var(--space-3xl, 6rem);
- border-top: var(--border-extra-thick, 8px) solid var(--earth-brown);
- box-shadow: 0 -10px 30px var(--shadow);
-}
-
-.footer-content {
- max-width: 1200px;
- margin: 0 auto;
- display: grid;
- grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
- gap: 3rem;
-}
-
-.footer-section h3 {
- font-family: "Playfair Display", serif;
- color: var(--accent-coral);
- margin-bottom: var(--space-md, 1rem);
- font-size: clamp(1.2rem, 2vw, 1.5rem);
-}
-
-.footer-section h4 {
- font-family: "Playfair Display", serif;
- color: rgba(255, 255, 255, 0.5) !important;
- margin-bottom: var(--space-md, 1rem);
- font-size: clamp(1.1rem, 1.25vw, 1.125rem);
-}
-
-.footer-section p,
-.footer-section li {
- color: var(--earth-cream);
- line-height: 1.6;
- margin-bottom: var(--space-xs, 0.5rem);
-}
-
-.footer-section ul {
- list-style: none;
- padding: 0;
-}
-
-.footer-section li {
- margin-bottom: var(--space-xs, 0.5rem);
-}
-
-.footer-bottom {
- text-align: center;
- margin-top: var(--space-2xl, 3rem);
- padding-top: var(--space-xl, 2rem);
- border-top: var(--border-medium, 4px) solid var(--earth-brown);
- color: var(--earth-sand);
-}
-
-.footer-bottom p {
- margin: 0;
- font-size: var(--font-size-sm);
- color: var(--earth-cream);
-}
-
-.footer-section a,
-.footer-bottom a {
- color: var(--earth-cream);
- text-decoration: underline;
-}
-
-.footer-section a:hover,
-.footer-bottom a:hover {
- color: var(--accent-coral);
-}
-
-/* Badge */
-.badge {
- display: inline-block;
- padding: var(--space-2xs, 0.25rem) var(--space-sm, 0.75rem);
- font-size: 0.85rem;
- font-weight: 600;
- background: var(--earth-sage);
- color: var(--earth-cream);
- border: var(--border-thin, 2px) solid var(--earth-brown);
- border-radius: var(--radius-pill);
-}
-
-.badge-accent {
- background: var(--accent-coral-dark);
-}
-
-.badge-outline {
- background: transparent;
- color: inherit;
-}
-
-.badges, .row-badges {
- display: flex;
- gap: var(--space-2xs, 0.25rem);
- flex-wrap: wrap;
-}
-
-/* Base button styles */
-.btn {
- display: inline-block;
- padding: var(--space-sm, 0.75rem) var(--space-lg, 1.5rem);
- font-family: var(--font-family-sans);
- font-size: var(--font-size-md, 1rem);
- font-weight: 600;
- text-decoration: none;
- border-radius: var(--radius-md, 12px);
- transition: all 0.2s;
- cursor: pointer;
- border: none;
- text-align: center;
-}
-
-.btn:hover,
-.btn:focus {
- transform: translate(2px, 2px);
- box-shadow: 2px 2px 0 var(--earth-brown);
-}
-
-/* Primary button */
-.btn-primary {
- background: var(--accent-coral-dark);
- color: var(--white);
- border: var(--border-medium, 4px) solid var(--earth-brown);
- box-shadow: 4px 4px 0 var(--earth-brown);
-}
-
-.btn-primary:hover,
-.btn-primary:focus {
- background: var(--accent-coral-dark);
- color: var(--white);
-}
-
-/* Secondary button */
-.btn-secondary {
- background: var(--earth-cream);
- color: var(--text-primary);
- border: var(--border-medium, 4px) solid var(--earth-brown);
- box-shadow: 4px 4px 0 var(--earth-sage);
-}
-
-.btn-secondary:hover,
-.btn-secondary:focus {
- background: var(--earth-sand);
- color: var(--text-primary);
- transform: translate(2px, 2px);
- box-shadow: 2px 2px 0 var(--earth-sage);
- outline: var(--border-thin) solid var(--earth-dark);
-}
-
-/* Outline button */
-.btn-outline {
- background: rgba(255, 255, 255, 0.5) !important;
- backdrop-filter: blur(24px);
- filter: url("#lensFilter") saturate(120%) brightness(1.15);
- color: var(--text-primary) !important;
- border: var(--border-medium, 4px) solid var(--earth-brown) !important;
- box-shadow: none !important;
-}
-
-.btn-outline:hover,
-.btn-outline:focus {
- color: var(--earth-cream);
- text-decoration: underline;
-}
-
-/* Button sizes */
-.btn-sm {
- padding: var(--space-xs, 0.5rem) var(--space-md, 1rem) !important;
- font-size: 0.9rem !important;
- border-width: var(--border-thin) !important;
-}
-
-.btn-lg {
- padding: var(--space-md, 1rem) var(--space-xl, 2rem) !important;
- font-size: 1.1rem !important;
-}
-
-/* Skip to main content link */
-.skip-link {
- position: absolute;
- top: -100px;
- left: 0;
- background: var(--accent-coral);
- color: var(--white);
- padding: var(--space-sm, 0.75rem) var(--space-lg, 1.5rem);
- text-decoration: none;
- font-weight: 600;
- border: var(--border-medium, 4px) solid var(--earth-brown);
- z-index: 2000;
- clip: rect(0, 0, 0, 0);
- overflow: hidden;
-}
-
-.skip-link:focus {
- top: 1rem;
- left: 1rem;
- clip: auto;
- overflow: visible;
-}
-
-.social-links {
- display: flex;
- gap: 1rem;
- flex-wrap: wrap;
-}
-
-.social-link {
- display: inline-block;
- padding: var(--space-xs, 0.5rem) var(--space-md, 1rem);
- background: var(--earth-sage);
- color: var(--white);
- text-decoration: none !important;
- border: var(--border-medium, 4px) solid var(--earth-sand);
- border-radius: 8px;
- font-weight: 500;
- transition: all 0.3s;
- font-size: 0.95rem;
-}
-
-.social-link:hover,
-.social-link:focus {
- background: var(--accent-coral);
- transform: translateY(-2px);
- color: var(--white) !important;
-}
-
-/* Base card */
-.card {
- background: var(--earth-cream);
- border: var(--border-thick, 6px) solid var(--earth-brown);
- border-radius: var(--radius-xl, 20px);
- padding: var(--space-lg, 1.5rem);
- box-shadow: 8px 8px 0 var(--shadow-heavy);
- transition: transform 0.3s, box-shadow 0.3s;
-}
-
-.card:hover,
-.card:focus-within {
- transform: translateY(-5px);
- box-shadow: 12px 12px 0 var(--shadow-heavy);
-}
-
-/* Card with layered shadow */
-.card-layered {
- background: var(--earth-cream);
- border: var(--border-thick, 6px) solid var(--earth-brown);
- border-radius: var(--radius-xl, 20px);
- padding: var(--space-xl, 2rem);
- box-shadow: 12px 12px 0 var(--earth-sage), 12px 12px 0 5px var(--earth-brown);
-}
-
-/* Card with only shadow */
-.card-shadow {
- background: var(--earth-cream);
- border: none;
- border-radius: var(--radius-lg, 16px);
- padding: var(--space-md, 1.5rem);
- box-shadow: 10px 10px 0 var(--shadow-heavy);
-}
-
-/* Card with accent shadow */
-.card-accent {
- background: var(--earth-cream);
- border: var(--border-extra-thick, 8px) solid var(--earth-brown);
- border-radius: var(--radius-xl, 20px);
- overflow: hidden;
- box-shadow: 16px 16px 0 var(--accent-coral), 16px 16px 0 6px var(--earth-brown);
-}
-
-/* Simple card (minimal shadow) */
-.card-flex {
- display: flex;
- flex-direction: column;
-}
-
-.card-flex p {
- flex: 1 0;
-}
-
-.card-with-columns .row {
- display: flex;
- align-items: flex-start;
- gap: var(--space-md, 1rem);
- align-self: stretch;
-}
-.card-with-columns .column {
- display: flex;
- align-items: flex-start;
- flex: 1 0 0;
- align-self: stretch;
-}
-
-/* Card header */
-.card-header {
- margin-bottom: var(--space-md, 1rem);
- padding-bottom: var(--space-md, 1rem);
- border-bottom: var(--border-thin, 2px) solid var(--earth-sand);
-}
-
-/* Card body */
-.card-body {
- margin-bottom: var(--space-md);
-}
-
-.card-body img {
- object-fit: cover;
- width: 100%;
-}
-
-@media (width >= 768px) {
- .img-thumbnail {
- max-width: 50%;
- }
-}
-.card-body:last-child {
- margin-bottom: 0;
-}
-
-/* Card footer */
-.card-footer {
- margin-top: var(--space-md, 1rem);
- padding-top: var(--space-md, 1rem);
- border-top: var(--border-thin, 2px) solid var(--earth-sand);
-}
-
-.showcase-content {
- padding: var(--space-lg, 2rem);
-}
-
-.showcase-content h3 {
- font-family: var(--font-family-serif);
- font-size: clamp(1.3rem, 2.5vw, 1.8rem);
- color: var(--text-primary);
- margin-bottom: var(--space-sm, 1rem);
-}
-
-.showcase-content p {
- color: var(--text-secondary);
- margin-bottom: var(--space-md, 1.5rem);
- font-size: clamp(0.95rem, 1.5vw, 1rem);
-}
-
-.showcase-small {
- background: var(--earth-sand);
- border: 4px solid var(--earth-brown);
- border-radius: var(--radius-lg, 16px);
- padding: var(--space-md, 1.5rem);
- box-shadow: 6px 6px 0 var(--shadow-heavy);
- transition: transform 0.3s;
-}
-
-.showcase-small:hover,
-.showcase-small:focus-within {
- transform: translateY(-4px);
-}
-
-.showcase-small h4 {
- font-family: var(--font-family-serif);
- font-size: clamp(1.1rem, 2vw, 1.3rem);
- color: var(--text-primary);
- margin-bottom: var(--space-xs, 0.5rem);
-}
-
-.showcase-small p {
- color: var(--text-secondary);
- font-size: clamp(0.9rem, 1.5vw, 0.95rem);
-}
-
-/* About Section */
-.about-card {
- background: var(--earth-cream);
- border: var(--border-thick, 6px) solid var(--earth-brown);
- padding: var(--space-2xl, 3rem);
- border-radius: var(--border-radius-xl, 20px);
- box-shadow: 12px 12px 0 var(--earth-sage), 12px 12px 0 5px var(--earth-brown);
- margin: 0 auto;
-}
-
-@media (width <= 768px) {
- .about-card {
- box-shadow: 6px 6px 0 var(--earth-sage), 6px 6px 0 4px var(--earth-brown);
- padding: var(--space-md, 1rem);
- }
- .about-grid {
- grid-template-columns: 1fr !important;
- }
-}
-.about-card p {
- font-size: clamp(1rem, 1.5vw, 1.1rem);
- line-height: 1.8;
- color: var(--text-primary);
- margin-bottom: var(--space-lg, 1.5rem);
-}
-
-.about-card p:last-child {
- margin-bottom: 0;
-}
-
-.about-grid {
- display: grid;
- grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
- gap: var(--space-xl, 2rem);
- margin-top: var(--space-xl, 2rem);
-}
-
-.showcase-large {
- background: var(--earth-cream);
- border: var(--border-thick, 6px) solid var(--earth-brown);
- border-radius: var(--radius-xl, 20px);
- overflow: hidden;
- box-shadow: 12px 12px 0 var(--accent-coral), 12px 12px 0 6px var(--earth-brown);
- transition: transform 0.3s;
-}
-
-@media (width <= 768px) {
- .showcase-large {
- box-shadow: 6px 6px 0 var(--accent-coral), 6px 6px 0 4px var(--earth-brown);
- }
-}
-.showcase-large:hover,
-.showcase-large:focus-within {
- transform: translateY(-8px);
-}
-
-.showcase-image {
- width: 100%;
- height: 300px;
- background: linear-gradient(135deg, var(--earth-sage) 0%, var(--earth-sand) 100%);
- display: flex;
- align-items: center;
- justify-content: center;
- padding: var(--space-md, 1rem);
- font-size: var(--font-size-5xl, 3rem);
- color: var(--earth-cream);
- border-bottom: var(--border-thick, 6px) solid var(--earth-brown);
- object-fit: contain;
-}
-
-.showcase-image-dark {
- background: linear-gradient(135deg, var(--black) 0%, var(--earth-dark) 100%);
-}
-
-/* Small Projects */
-.small-showcase-cards {
- grid-column: 1/-1;
- display: grid;
- grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
- gap: var(--space-md, 1.5rem);
- margin-top: var(--space-sm, 1rem);
-}
-
-/* Callouts */
-.callouts-grid {
- display: grid;
- grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
- gap: 2rem;
- margin-top: 2rem;
-}
-
-.callout {
- display: flex;
- flex-direction: column;
- align-items: flex-end;
- justify-content: space-between;
- background: var(--earth-cream);
- border: var(--border-thick, 6px) solid var(--accent-coral-dark);
- padding: 2rem;
- border-radius: var(--radius-xl, 20px);
- box-shadow: 8px 8px 0 var(--shadow-heavy);
- position: relative;
- transition: transform 0.3s, box-shadow 0.3s;
-}
-
-.callout:hover,
-.callout:focus-within {
- transform: translateY(-5px);
- box-shadow: 12px 12px 0 var(--shadow-heavy);
-}
-
-.callout::before {
- content: '"';
- font-family: var(--font-family-serif);
- font-size: var(--font-size-6xl, 4rem);
- color: var(--accent-coral);
- position: absolute;
- top: 10px;
- left: 20px;
- line-height: 1;
-}
-
-.callout-text {
- font-style: italic;
- margin-bottom: var(--space-md, 1.5rem);
- padding-top: var(--space-sm, 1rem);
- color: var(--text-primary);
-}
-
-.callout-author {
- font-weight: 600;
- color: var(--text-primary);
- display: block;
-}
-
-.callout-role {
- font-size: var(--font-size-sm, 0.9rem);
- color: var(--text-secondary);
-}
-
-.card-image {
- display: flex;
- flex-direction: column;
- align-items: flex-start;
- background: var(--bg-canvas, #f5f1e8);
- border-radius: var(--radius-xl, 20px);
- padding: var(--space-lg, 1.5rem);
- border: var(--border-medium, 4px) solid var(--border-border, #4a3426);
- box-shadow: 6px 6px 0 0 var(--shadow-light, rgba(45, 31, 18, 0.08));
- transition: transform 0.3s, box-shadow 0.3s;
-}
-
-.card-image .image-top {
- display: flex;
- flex-direction: column;
- align-items: flex-start;
- align-self: stretch;
- border-bottom: var(--border-medium) solid var(--border-brown, #4a3426);
- background: var(--bg-canvas, #f5f1e8);
- border: var(--border-extra-thick, 8px) solid #000000;
- border-radius: var(--radius-lg, 16px);
- box-shadow: 0 0 12px var(--shadow-heavy, rgba(45, 31, 18, 0.25));
- margin-bottom: var(--space-xs, 0.5rem);
- max-height: 300px;
- object-fit: cover;
-}
-
-.card-image .card-content {
- display: flex;
- flex-direction: column;
- align-items: start;
- align-self: stretch;
- padding: var(--space-md) var(--space-xl) var(--space-xl) var(--space-xl);
-}
-
-.card-image > .card-body {
- display: flex;
- flex-direction: column;
- align-items: flex-start;
- justify-content: space-between;
- height: 100%;
-}
-
-h3.two-line-header {
- min-height: 82px;
- height: 82px;
-}
-
-/* stylelint-disable */
-.gallery {
- --size: 100px;
- display: grid;
- grid-template-columns: repeat(6, var(--size));
- grid-auto-rows: var(--size);
- margin-bottom: var(--size);
- place-items: start center;
- gap: 5px;
-}
-.gallery:has(:hover) picture:not(:hover), .gallery:has(:focus) picture:not(:focus) {
- filter: brightness(0.5) contrast(0.5);
-}
-.gallery picture {
- object-fit: cover;
- width: calc(var(--size) * 2);
- height: calc(var(--size) * 2);
- clip-path: path("M90,10 C100,0 100,0 110,10 190,90 190,90 190,90 200,100 200,100 190,110 190,110 110,190 110,190 100,200 100,200 90,190 90,190 10,110 10,110 0,100 0,100 10,90Z");
- transition: clip-path 0.25s, filter 0.75s;
- grid-column: auto/span 2;
- border-radius: 5px;
-}
-.gallery picture:nth-child(5n-1) {
- grid-column: 2/span 2;
-}
-.gallery picture:hover, .gallery picture:focus {
- clip-path: path("M0,0 C0,0 200,0 200,0 200,0 200,100 200,100 200,100 200,200 200,200 200,200 100,200 100,200 100,200 100,200 0,200 0,200 0,100 0,100 0,100 0,100 0,100Z");
- z-index: 1;
- transition: clip-path 0.25s, filter 0.25s;
-}
-.gallery picture:focus {
- outline: 1px dashed black;
- outline-offset: -5px;
-}
-
-/* Carousel */
-.carousel > input {
- width: 1px;
- height: 1px;
- clip: rect(1px, 1px, 1px, 1px);
- clip-path: inset(50%);
- margin: -1px;
- overflow: hidden;
- padding: 0;
- position: absolute;
-}
-.carousel > input:nth-of-type(15):checked ~ .carousel__slides .carousel__slide:first-of-type {
- margin-left: -1400%;
-}
-.carousel > input:nth-of-type(14):checked ~ .carousel__slides .carousel__slide:first-of-type {
- margin-left: -1300%;
-}
-.carousel > input:nth-of-type(13):checked ~ .carousel__slides .carousel__slide:first-of-type {
- margin-left: -1200%;
-}
-.carousel > input:nth-of-type(12):checked ~ .carousel__slides .carousel__slide:first-of-type {
- margin-left: -1100%;
-}
-.carousel > input:nth-of-type(11):checked ~ .carousel__slides .carousel__slide:first-of-type {
- margin-left: -1000%;
-}
-.carousel > input:nth-of-type(10):checked ~ .carousel__slides .carousel__slide:first-of-type {
- margin-left: -900%;
-}
-.carousel > input:nth-of-type(9):checked ~ .carousel__slides .carousel__slide:first-of-type {
- margin-left: -800%;
-}
-.carousel > input:nth-of-type(8):checked ~ .carousel__slides .carousel__slide:first-of-type {
- margin-left: -700%;
-}
-.carousel > input:nth-of-type(7):checked ~ .carousel__slides .carousel__slide:first-of-type {
- margin-left: -600%;
-}
-.carousel > input:nth-of-type(6):checked ~ .carousel__slides .carousel__slide:first-of-type {
- margin-left: -500%;
-}
-.carousel > input:nth-of-type(5):checked ~ .carousel__slides .carousel__slide:first-of-type {
- margin-left: -400%;
-}
-.carousel > input:nth-of-type(4):checked ~ .carousel__slides .carousel__slide:first-of-type {
- margin-left: -300%;
-}
-.carousel > input:nth-of-type(3):checked ~ .carousel__slides .carousel__slide:first-of-type {
- margin-left: -200%;
-}
-.carousel > input:nth-of-type(2):checked ~ .carousel__slides .carousel__slide:first-of-type {
- margin-left: -100%;
-}
-.carousel > input:nth-of-type(1):checked ~ .carousel__slides .carousel__slide:first-of-type {
- margin-left: 0%;
-}
-.carousel > input:nth-of-type(1):checked ~ .carousel__thumbnails li:nth-of-type(1) {
- box-shadow: 0 0 0 5px rgba(0, 0, 255, 0.5);
-}
-.carousel > input:nth-of-type(2):checked ~ .carousel__thumbnails li:nth-of-type(2) {
- box-shadow: 0 0 0 5px rgba(0, 0, 255, 0.5);
-}
-.carousel > input:nth-of-type(3):checked ~ .carousel__thumbnails li:nth-of-type(3) {
- box-shadow: 0 0 0 5px rgba(0, 0, 255, 0.5);
-}
-.carousel > input:nth-of-type(4):checked ~ .carousel__thumbnails li:nth-of-type(4) {
- box-shadow: 0 0 0 5px rgba(0, 0, 255, 0.5);
-}
-.carousel > input:nth-of-type(5):checked ~ .carousel__thumbnails li:nth-of-type(5) {
- box-shadow: 0 0 0 5px rgba(0, 0, 255, 0.5);
-}
-.carousel > input:nth-of-type(6):checked ~ .carousel__thumbnails li:nth-of-type(6) {
- box-shadow: 0 0 0 5px rgba(0, 0, 255, 0.5);
-}
-.carousel > input:nth-of-type(7):checked ~ .carousel__thumbnails li:nth-of-type(7) {
- box-shadow: 0 0 0 5px rgba(0, 0, 255, 0.5);
-}
-.carousel > input:nth-of-type(8):checked ~ .carousel__thumbnails li:nth-of-type(8) {
- box-shadow: 0 0 0 5px rgba(0, 0, 255, 0.5);
-}
-.carousel > input:nth-of-type(9):checked ~ .carousel__thumbnails li:nth-of-type(9) {
- box-shadow: 0 0 0 5px rgba(0, 0, 255, 0.5);
-}
-.carousel > input:nth-of-type(10):checked ~ .carousel__thumbnails li:nth-of-type(10) {
- box-shadow: 0 0 0 5px rgba(0, 0, 255, 0.5);
-}
-.carousel > input:nth-of-type(11):checked ~ .carousel__thumbnails li:nth-of-type(11) {
- box-shadow: 0 0 0 5px rgba(0, 0, 255, 0.5);
-}
-.carousel > input:nth-of-type(12):checked ~ .carousel__thumbnails li:nth-of-type(12) {
- box-shadow: 0 0 0 5px rgba(0, 0, 255, 0.5);
-}
-.carousel > input:nth-of-type(13):checked ~ .carousel__thumbnails li:nth-of-type(13) {
- box-shadow: 0 0 0 5px rgba(0, 0, 255, 0.5);
-}
-.carousel > input:nth-of-type(14):checked ~ .carousel__thumbnails li:nth-of-type(14) {
- box-shadow: 0 0 0 5px rgba(0, 0, 255, 0.5);
-}
-.carousel > input:nth-of-type(15):checked ~ .carousel__thumbnails li:nth-of-type(15) {
- box-shadow: 0 0 0 5px rgba(0, 0, 255, 0.5);
-}
-
-.carousel__slides {
- position: relative;
- z-index: 1;
- padding: 0;
- margin: 0;
- overflow: hidden;
- white-space: nowrap;
- box-sizing: border-box;
- display: flex;
-}
-
-.carousel__slide {
- position: relative;
- display: block;
- flex: 1 0 100%;
- width: 100%;
- height: 100%;
- overflow: hidden;
- transition: all 300ms ease-out;
- vertical-align: top;
- box-sizing: border-box;
- white-space: normal;
-}
-.carousel__slide figure {
- display: flex;
- flex-direction: column;
- margin: 0;
-}
-.carousel__slide div {
- position: relative;
-}
-.carousel__slide div::before {
- display: block;
- content: "";
- width: 100%;
- padding-top: 66.6666666667%;
-}
-.carousel__slide div > img {
- position: absolute;
- inset: 0;
- width: 100%;
- height: 100%;
-}
-.carousel__slide div {
- width: 100%;
-}
-.carousel__slide img {
- display: block;
- flex: 1 1 auto;
- object-fit: cover;
-}
-.carousel__slide figcaption {
- align-self: center;
- padding: 20px 20px 0;
- flex: 0 0 auto;
- width: 25%;
- min-width: 150px;
-}
-.carousel__slide .credit {
- margin-top: 1rem;
- color: rgba(0, 0, 0, 0.5);
- display: block;
-}
-.carousel__slide.scrollable {
- overflow-y: scroll;
-}
-
-.carousel__thumbnails {
- list-style: none;
- padding: 0;
- display: flex;
- margin: 0 -10px;
-}
-.carousel__slides + .carousel__thumbnails {
- margin-top: 20px;
-}
-.carousel__thumbnails li {
- flex: 1 1 auto;
- max-width: calc(16.6666666667% - 20px);
- margin: 0 10px;
- transition: all 300ms ease-in-out;
-}
-.carousel__thumbnails label {
- display: block;
- position: relative;
-}
-.carousel__thumbnails label::before {
- display: block;
- content: "";
- width: 100%;
- padding-top: 100%;
-}
-.carousel__thumbnails label > img {
- position: absolute;
- inset: 0;
- width: 100%;
- height: 100%;
-}
-.carousel__thumbnails label:hover, .carousel__thumbnails label:focus {
- cursor: pointer;
-}
-.carousel__thumbnails label:hover img, .carousel__thumbnails label:focus img {
- box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25);
- transition: all 300ms ease-in-out;
-}
-.carousel__thumbnails img {
- display: block;
- width: 100%;
- height: 100%;
- object-fit: cover;
-}
-
-/* stylelint-enable */
-/* stylint-enable */
-
-/*# sourceMappingURL=style.css.map */
+:root{--font-family-sans:"Inter",system-ui,-apple-system,blinkmacsystemfont,"Segoe UI",roboto,"Helvetica Neue",arial,sans-serif;--font-family-serif:"Playfair Display",serif;--font-family-mono:"Fira Code","Courier New",courier,monospace;--font-family-heading:"Pirata One",cursive;--white:#f0f0f0;--black:#010101;--earth-dark:#2d1f12;--earth-brown:#4a3426;--earth-sage:#5a6b4f;--earth-sand:#c9b89a;--earth-sand-light:#e2d8c8;--earth-cream:#f5f1e8;--accent-coral:#d35f3d;--accent-coral-dark:#b34a2d;--text-primary:#2d1f12;--text-secondary:#4a3426;--text-muted:#6b5d52;--shadow:rgba(45,31,18,.15);--shadow-heavy:rgba(45,31,18,.25);--shadow-light:rgba(45,31,18,.08);--bg-canvas:var(--earth-cream);--border-brown:var(--earth-brown);--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:2rem;--font-size-4xl:2.5rem;--font-size-5xl:3rem;--font-size-6xl:4rem;--space-2xs:0.25rem;--space-xs:0.5rem;--space-sm:0.75rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:6rem;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-pill:50px;--border-thin:2px;--border-medium:4px;--border-thick:6px;--border-extra-thick:8px}*{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0}:focus-visible{outline:var(--border-thin) solid var(--accent-coral);outline-offset:2px}html{scroll-behavior:smooth}body{background:linear-gradient(135deg,var(--earth-cream) 0,#e8dcc8 100%);color:var(--text-primary);font-family:var(--font-family-sans);line-height:1.6;min-height:100vh;position:relative}::-webkit-scrollbar,html::-webkit-scrollbar{width:16px}::-webkit-scrollbar-thumb,html::-webkit-scrollbar-thumb{background:linear-gradient(var(--accent-coral-dark),var(--accent-coral));background-clip:content-box;border:2px solid transparent;border-radius:2rem}::-webkit-scrollbar-track,html::-webkit-scrollbar-track{background:transparent;border:1px solid var(--earth-sage);border-radius:2rem;padding:0 2px}@media (prefers-reduced-motion:reduce){.animated-element{-webkit-animation:none;animation:none;opacity:1;-webkit-transition:none;transition:none}body{scroll-behavior:auto}*,:after,:before{-webkit-animation-duration:.01ms!important;animation-duration:.01ms!important;-webkit-animation-iteration-count:1!important;animation-iteration-count:1!important;-webkit-transition-duration:.01ms!important;transition-duration:.01ms!important}}.d-none,.display-none{display:none!important}.hero{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin:0 auto;max-width:900px;padding:6rem 2rem;text-align:center}.rounded{border-radius:var(--radius-xl,20px)!important}.circle{border-radius:999px!important;padding:1rem!important}.fade-in{opacity:0;-webkit-transition:opacity .5s ease-in,visibility 0s linear .5s;transition:opacity .5s ease-in,visibility 0s linear .5s;visibility:hidden}.fade-in.show,.show{opacity:1;-webkit-transition-delay:0s;transition-delay:0s;visibility:visible}.hide{opacity:0;-webkit-transition:opacity .5s ease-in,visibility 0s linear .5s;transition:opacity .5s ease-in,visibility 0s linear .5s;visibility:hidden}.hide-on-screen{display:none!important}@media (width <= 768px){.hero h1{font-size:var(--font-size-5xl,3rem)}.no-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.hide-on-mobile{display:none!important}.callouts-grid,.work-grid{grid-template-columns:1fr}h2{font-size:var(--font-size-3xl,2rem)}}figcaption{color:var(--text-secondary);font-size:var(--font-size-sm,.875rem);font-style:italic;line-height:1.4;text-align:center}.arrows{bottom:20px;height:72px;left:50%;margin-left:-30px;position:absolute;width:60px}.arrows path{-webkit-animation:arrow 2s infinite;animation:arrow 2s infinite;fill:transparent;stroke:#bfe7fa;stroke-width:1px}@-webkit-keyframes arrow{0%{opacity:0}40%{opacity:1}80%{opacity:0}to{opacity:0}}@keyframes arrow{0%{opacity:0}40%{opacity:1}80%{opacity:0}to{opacity:0}}.arrows path.a1{-webkit-animation-delay:-1s;animation-delay:-1s}.arrows path.a2{-webkit-animation-delay:-.5s;animation-delay:-.5s}.arrows path.a3{-webkit-animation-delay:0s;animation-delay:0s}.pirata-one-regular{font-family:Pirata One,system-ui;font-style:normal;font-weight:400}.inter-400{font-optical-sizing:auto;font-style:normal;font-weight:400}.inter-400,.inter-500{font-family:Inter,sans-serif}.inter-500{font-optical-sizing:auto;font-style:normal;font-weight:500}.inter-600{font-optical-sizing:auto;font-style:normal;font-weight:600}.inter-600,.inter-700{font-family:Inter,sans-serif}.inter-700{font-optical-sizing:auto;font-style:normal;font-weight:700}.inter-800{font-optical-sizing:auto;font-style:normal;font-weight:800}.inter-800,.inter-900{font-family:Inter,sans-serif}.inter-900{font-optical-sizing:auto;font-style:normal;font-weight:900}.playfair-display-400{font-family:Playfair Display,serif;font-optical-sizing:auto;font-style:normal;font-weight:400}.playfair-display-500{font-family:Playfair Display,serif;font-optical-sizing:auto;font-style:normal;font-weight:500}.playfair-display-600{font-family:Playfair Display,serif;font-optical-sizing:auto;font-style:normal;font-weight:600}.playfair-display-700{font-family:Playfair Display,serif;font-optical-sizing:auto;font-style:normal;font-weight:700}.playfair-display-800{font-family:Playfair Display,serif;font-optical-sizing:auto;font-style:normal;font-weight:800}.playfair-display-900{font-family:Playfair Display,serif;font-optical-sizing:auto;font-style:normal;font-weight:900}.text-h1,h1{font-size:clamp(2.5rem,8vw,5rem);line-height:1.2}.text-display,.text-h1,h1{color:var(--text-primary);font-family:Pirata One,cursive;letter-spacing:2px;text-shadow:3px 3px 0 var(--accent-coral)}.text-display{font-size:clamp(3rem,10vw,6rem);line-height:1.1}.hero h1{font-family:var(--font-family-heading);letter-spacing:2px;line-height:1.2;margin-bottom:1rem;text-shadow:3px 3px 0 var(--accent-coral)}.hero h1,.text-h2,h2{color:var(--text-primary)}.text-h2,h2{font-family:Playfair Display,serif;font-size:clamp(2rem,5vw,3rem);font-weight:700;line-height:1.3;margin-bottom:var(--space-md,1.5rem)}.text-h2.no-underline:after{display:none;margin-bottom:var(--space-2xs,.25rem)}.text-h2:after,h2:after{background:var(--accent-coral);border:3px solid var(--earth-brown);content:"";display:block;height:5px;margin:1rem auto;width:100px}.text-h3,h3{font-size:clamp(1.5rem,3vw,2rem);line-height:1.3}.text-h3,.text-h4,h3,h4{color:var(--text-primary);font-family:Playfair Display,serif;font-weight:600}.text-h4,h4{font-size:clamp(1.25rem,2.5vw,1.5rem);line-height:1.4}.text-h5,h5{font-size:clamp(1.1rem,2vw,1.25rem)}.text-h5,.text-h6,h5,h6{color:var(--text-primary);font-family:Inter,sans-serif;font-weight:700;line-height:1.4}.text-h6,h6{font-size:1rem;letter-spacing:.5px;text-transform:uppercase}.text-body-lg{font-size:clamp(1.1rem,1.5vw,1.25rem)!important;line-height:1.7!important}.text-body,p{color:var(--text-primary);font-size:clamp(.95rem,1.5vw,1rem);line-height:1.7;padding-bottom:var(--space-xs,.5rem)}.text-body:last-child,p:last-child{margin-bottom:0}.hero p{color:var(--earth-brown);font-size:clamp(1.1rem,2vw,1.25rem);margin:0 auto;max-width:720px}.card-body .text-body:first-of-type,.card-body p:first-of-type{margin-top:var(--space-md,16px)}.text-body-sm{font-size:clamp(.85rem,1.2vw,.9rem);line-height:1.6}.text-caption{color:var(--text-muted);font-size:clamp(var(--space-sm),1vw,.85rem);line-height:1.5}.text-callout{background:var(--earth-sand-light);border-left:var(--border-medium) solid var(--accent-coral);color:var(--text-primary);font-size:clamp(1rem,1.5vw,1.1rem);font-weight:600;line-height:1.6;margin:var(--space-lg,1.5rem);padding:var(--space-lg,1.5rem)}.code,code{font-family:var(--font-family-mono);font-size:clamp(.85rem,1vw,.9rem)}.code.code-inline,code.code-inline{background:var(--earth-sand);border-radius:var(--radius-sm);padding:.1rem .3rem}.code-block{background:var(--earth-sand);border:var(--border-thin) solid var(--earth-sage);border-radius:var(--radius-md);display:block;font-size:clamp(.85rem,1vw,.9rem);overflow-x:auto;padding:1rem}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.text-accent{color:var(--accent-coral)}.text-semibold{font-weight:600}.text-bold{font-weight:700}.text-center{text-align:center}.lead,.text-lead{color:var(--text-secondary);font-size:clamp(1.1rem,2vw,1.35rem);line-height:1.7}.link,a{border-bottom:1px solid var(--earth-sage);color:var(--earth-sage);font-weight:var(--font-weight-semibold,600);text-decoration:none;-webkit-transition:all .2s;transition:all .2s}.link:focus,.link:hover,a:focus,a:hover{border-bottom-color:var(--earth-brown);color:var(--earth-brown)}.link-brackets{margin-left:var(--space-md)!important}.link-brackets:after{content:"]";margin-left:.2rem}.link-brackets:after,.link-brackets:before{color:var(--earth-sage);position:absolute;-webkit-transition:all .2s;transition:all .2s}.link-brackets:before{content:"[";margin-left:-.8rem}.link-brackets:focus:after,.link-brackets:focus:before,.link-brackets:hover:after,.link-brackets:hover:before{color:var(--accent-coral)}.blockquote,blockquote{border-left:var(--border-thin) solid var(--earth-brown);color:var(--text-secondary);font-style:italic;margin:var(--space-lg,1.5rem) 0;padding-left:var(--space-md,1rem)}.mb-1{margin-bottom:var(--space-2xs)!important}.mb-2{margin-bottom:var(--space-xs)!important}.mb-3{margin-bottom:var(--space-sm)!important}.mb-4{margin-bottom:var(--space-md)!important}.mb-5{margin-bottom:var(--space-xl)!important}.mt-1{margin-top:var(--space-2xs)!important}.mt-2{margin-top:var(--space-xs)!important}.mt-3{margin-top:var(--space-sm)!important}.mt-4{margin-top:var(--space-md)!important}.mt-5{margin-top:var(--space-xl)!important}.ml-1{margin-left:var(--space-2xs)!important}.ml-2{margin-left:var(--space-xs)!important}.ml-3{margin-left:var(--space-sm)!important}.ml-4{margin-left:var(--space-md)!important}.ml-5{margin-left:var(--space-xl)!important}.mr-1{margin-right:var(--space-2xs)!important}.mr-2{margin-right:var(--space-xs)!important}.mr-3{margin-right:var(--space-sm)!important}.mr-4{margin-right:var(--space-md)!important}.mr-5{margin-right:var(--space-xl)!important}.p-1{padding:var(--space-2xs)!important}.p-2{padding:var(--space-xs)!important}.p-3{padding:var(--space-sm)!important}.p-4{padding:var(--space-md)!important}.p-5{padding:var(--space-xl)!important}.pt-1{padding-top:var(--space-2xs)!important}.pt-2{padding-top:var(--space-xs)!important}.pt-3{padding-top:var(--space-sm)!important}.pt-4{padding-top:var(--space-md)!important}.pt-5{padding-top:var(--space-xl)!important}.pb-1{padding-bottom:var(--space-2xs)!important}.pb-2{padding-bottom:var(--space-xs)!important}.pb-3{padding-bottom:var(--space-sm)!important}.pb-4{padding-bottom:var(--space-md)!important}.pb-5{padding-bottom:var(--space-xl)!important}.pl-1{padding-left:var(--space-2xs)!important}.pl-2{padding-left:var(--space-xs)!important}.pl-3{padding-left:var(--space-sm)!important}.pl-4{padding-left:var(--space-md)!important}.pl-5{padding-left:var(--space-xl)!important}.pr-1{padding-right:var(--space-2xs)!important}.pr-2{padding-right:var(--space-xs)!important}.pr-3{padding-right:var(--space-sm)!important}.pr-4{padding-right:var(--space-md)!important}.pr-5{padding-right:var(--space-xl)!important}section{margin:0 auto;max-width:1200px;padding:var(--space-3xl,6rem) var(--space-lg,2rem)}.justify-content-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.justify-content-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:var(--space-lg,2rem)}@media (width >= 768px){.row{gap:var(--space-sm,.5rem)}.card-body .row{gap:0}}.button-row{gap:1rem}.no-wrap{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.d-flex{display:-webkit-box;display:-ms-flexbox;display:flex}.flex-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.align-items-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.work-grid{display:grid;gap:var(--space-lg,2rem);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:var(--space-lg,2rem)}.divider{background:var(--accent-coral);border:var(--border-medium,4px) outset var(--earth-dark);display:block;height:var(--space-md,1.5rem);margin:0 auto;width:50%}.divider.vertical{background:var(--earth-dark);border:none!important;border-radius:var(--radius-sm);height:100%;margin:0;width:var(--space-2xs,.25rem)}.card-body ol,.card-body ul,ol,ol.list,ul,ul.list{margin-left:var(--space-lg)!important;padding-left:var(--space-md)!important}.highlight-block{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.header-highlight{margin:var(--space-md) auto;padding:var(--space-md);text-align:center;width:100%}nav{backdrop-filter:blur(24px);background:rgba(245,241,232,.5);border:var(--border-medium,4px) solid var(--earth-brown);border-radius:50px;-webkit-box-shadow:0 8px 24px var(--shadow-heavy);box-shadow:0 8px 24px var(--shadow-heavy);-webkit-filter:url(#lensFilter) saturate(120%) brightness(1.15);filter:url(#lensFilter) saturate(120%) brightness(1.15);left:50%;padding:var(--space-sm) 2rem;position:fixed;top:2rem;-webkit-transform:translateX(-50%);transform:translateX(-50%);z-index:1000}.main-nav{left:0;margin:0 auto;position:sticky;right:0;top:2rem;-webkit-transform:none!important;transform:none!important;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}nav ul{display:-webkit-box;display:-ms-flexbox;display:flex;list-style:none;-webkit-box-pack:center;-ms-flex-pack:center;gap:2rem;justify-content:center;margin-left:0!important;padding-left:0!important}nav a{border-bottom:none;color:var(--text-primary);font-size:.95rem;font-weight:500;padding:var(--space-2xs) var(--space-xs,.5rem);text-decoration:none;-webkit-transition:color .3s;transition:color .3s}nav a:focus,nav a:hover{outline:var(--border-thin) solid var(--accent-coral);outline-offset:2px}nav a.active,nav a:focus,nav a:hover{color:var(--accent-coral)}nav a.sub-page{outline:var(--border-thin) solid var(--text-secondary);outline-offset:2px}nav a.sub-page:hover{outline-color:var(--accent-coral)}@media (width <= 768px){nav{margin:0 auto!important;padding:var(--space-xs,.5rem) var(--space-sm,1rem)!important;top:var(--space-sm,1rem)!important}nav ul{gap:var(--space-sm,1rem)}}footer{background:var(--earth-dark);border-top:var(--border-extra-thick,8px) solid var(--earth-brown);-webkit-box-shadow:0 -10px 30px var(--shadow);box-shadow:0 -10px 30px var(--shadow);color:var(--earth-cream);margin-top:var(--space-3xl,6rem);padding:var(--space-2xl,3rem) var(--space-xl,2rem)}.footer-content{display:grid;gap:3rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin:0 auto;max-width:1200px}.footer-section h3{color:var(--accent-coral);font-size:clamp(1.2rem,2vw,1.5rem)}.footer-section h3,.footer-section h4{font-family:Playfair Display,serif;margin-bottom:var(--space-md,1rem)}.footer-section h4{color:hsla(0,0%,100%,.5)!important;font-size:clamp(1.1rem,1.25vw,1.125rem)}.footer-section li,.footer-section p{color:var(--earth-cream);line-height:1.6;margin-bottom:var(--space-xs,.5rem)}.footer-section ul{list-style:none;padding:0}.footer-section li{margin-bottom:var(--space-xs,.5rem)}.footer-bottom{border-top:var(--border-medium,4px) solid var(--earth-brown);color:var(--earth-sand);margin-top:var(--space-2xl,3rem);padding-top:var(--space-xl,2rem);text-align:center}.footer-bottom p{color:var(--earth-cream);font-size:var(--font-size-sm);margin:0}.footer-bottom a,.footer-section a{color:var(--earth-cream);text-decoration:underline}.footer-bottom a:hover,.footer-section a:hover{color:var(--accent-coral)}.badge{background:var(--earth-sage);border:var(--border-thin,2px) solid var(--earth-brown);border-radius:var(--radius-pill);color:var(--earth-cream);display:inline-block;font-size:.85rem;font-weight:600;padding:var(--space-2xs,.25rem) var(--space-sm,.75rem)}.badge-accent{background:var(--accent-coral-dark)}.badge-outline{background:transparent;color:inherit}.badges,.row-badges{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:var(--space-2xs,.25rem)}.btn{border:none;border-radius:var(--radius-md,12px);cursor:pointer;display:inline-block;font-family:var(--font-family-sans);font-size:var(--font-size-md,1rem);font-weight:600;padding:var(--space-sm,.75rem) var(--space-lg,1.5rem);text-align:center;text-decoration:none;-webkit-transition:all .2s;transition:all .2s}.btn:focus,.btn:hover{-webkit-box-shadow:2px 2px 0 var(--earth-brown);box-shadow:2px 2px 0 var(--earth-brown);-webkit-transform:translate(2px,2px);transform:translate(2px,2px)}.btn-primary{border:var(--border-medium,4px) solid var(--earth-brown);-webkit-box-shadow:4px 4px 0 var(--earth-brown);box-shadow:4px 4px 0 var(--earth-brown)}.btn-primary,.btn-primary:focus,.btn-primary:hover{background:var(--accent-coral-dark);color:var(--white)}.btn-secondary{background:var(--earth-cream);border:var(--border-medium,4px) solid var(--earth-brown);-webkit-box-shadow:4px 4px 0 var(--earth-sage);box-shadow:4px 4px 0 var(--earth-sage);color:var(--text-primary)}.btn-secondary:focus,.btn-secondary:hover{background:var(--earth-sand);-webkit-box-shadow:2px 2px 0 var(--earth-sage);box-shadow:2px 2px 0 var(--earth-sage);color:var(--text-primary);outline:var(--border-thin) solid var(--earth-dark);-webkit-transform:translate(2px,2px);transform:translate(2px,2px)}.btn-outline{backdrop-filter:blur(24px);background:hsla(0,0%,100%,.5)!important;border:var(--border-medium,4px) solid var(--earth-brown)!important;-webkit-box-shadow:none!important;box-shadow:none!important;color:var(--text-primary)!important;-webkit-filter:url(#lensFilter) saturate(120%) brightness(1.15);filter:url(#lensFilter) saturate(120%) brightness(1.15)}.btn-outline:focus,.btn-outline:hover{color:var(--earth-cream);text-decoration:underline}.btn-sm{border-width:var(--border-thin)!important;font-size:.9rem!important;padding:var(--space-xs,.5rem) var(--space-md,1rem)!important}.btn-lg{font-size:1.1rem!important;padding:var(--space-md,1rem) var(--space-xl,2rem)!important}.skip-link{background:var(--accent-coral);border:var(--border-medium,4px) solid var(--earth-brown);color:var(--white);font-weight:600;left:0;padding:var(--space-sm,.75rem) var(--space-lg,1.5rem);position:absolute;text-decoration:none;top:-100px;z-index:2000;clip:rect(0,0,0,0);overflow:hidden}.skip-link:focus{left:1rem;top:1rem;clip:auto;overflow:visible}.social-links{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:1rem}.social-link{background:var(--earth-sage);border:var(--border-medium,4px) solid var(--earth-sand);border-radius:8px;color:var(--white);display:inline-block;font-size:.95rem;font-weight:500;padding:var(--space-xs,.5rem) var(--space-md,1rem);text-decoration:none!important;-webkit-transition:all .3s;transition:all .3s}.social-link:focus,.social-link:hover{background:var(--accent-coral);color:var(--white)!important;-webkit-transform:translateY(-2px);transform:translateY(-2px)}.about-card,.card,.card-accent,.card-layered,.showcase-large{background:var(--earth-cream);border:var(--card-border-width,var(--border-thick,6px)) solid var(--card-border-color,var(--earth-brown));border-radius:var(--radius-xl,20px)}.about-card,.card-accent,.card-layered,.showcase-large{-webkit-box-shadow:var(--card-shadow-offset,12px) var(--card-shadow-offset,12px) 0 var(--card-shadow-color,var(--earth-sage)),var(--card-shadow-offset,12px) var(--card-shadow-offset,12px) 0 var(--card-shadow-ring-width,5px) var(--earth-brown);box-shadow:var(--card-shadow-offset,12px) var(--card-shadow-offset,12px) 0 var(--card-shadow-color,var(--earth-sage)),var(--card-shadow-offset,12px) var(--card-shadow-offset,12px) 0 var(--card-shadow-ring-width,5px) var(--earth-brown)}@media (width <= 768px){.about-card,.showcase-large{--card-shadow-offset:6px;--card-shadow-ring-width:4px}}.card{-webkit-box-shadow:8px 8px 0 var(--shadow-heavy);box-shadow:8px 8px 0 var(--shadow-heavy);padding:var(--space-lg,1.5rem);-webkit-transition:-webkit-transform .3s,-webkit-box-shadow .3s;transition:-webkit-transform .3s,-webkit-box-shadow .3s;transition:transform .3s,box-shadow .3s;transition:transform .3s,box-shadow .3s,-webkit-transform .3s,-webkit-box-shadow .3s}.card:focus-within,.card:hover{-webkit-box-shadow:12px 12px 0 var(--shadow-heavy);box-shadow:12px 12px 0 var(--shadow-heavy);-webkit-transform:translateY(-5px);transform:translateY(-5px)}.card-layered{padding:var(--space-xl,2rem)}.card-shadow{background:var(--earth-cream);border:none;border-radius:var(--radius-lg,16px);-webkit-box-shadow:10px 10px 0 var(--shadow-heavy);box-shadow:10px 10px 0 var(--shadow-heavy);padding:var(--space-md,1.5rem)}.card-accent{--card-border-width:var(--border-extra-thick,8px);--card-shadow-offset:16px;--card-shadow-color:var(--accent-coral);--card-shadow-ring-width:6px;overflow:hidden}.card-flex{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.card-flex p{-webkit-box-flex:1;-ms-flex:1 0;flex:1 0}.card-with-columns .row{gap:var(--space-md,1rem);-ms-flex-item-align:stretch}.card-with-columns .column,.card-with-columns .row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;align-self:stretch}.card-with-columns .column{-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0;-ms-flex-item-align:stretch}.card-header{border-bottom:var(--border-thin,2px) solid var(--earth-sand);margin-bottom:var(--space-md,1rem);padding-bottom:var(--space-md,1rem)}.card-body{margin-bottom:var(--space-md)}.card-body img{-o-object-fit:cover;object-fit:cover;width:100%}@media (width >= 768px){.img-thumbnail{max-width:50%}}.card-body:last-child{margin-bottom:0}.card-footer{border-top:var(--border-thin,2px) solid var(--earth-sand);margin-top:var(--space-md,1rem);padding-top:var(--space-md,1rem)}.showcase-content{padding:var(--space-lg,2rem)}.showcase-content h3{color:var(--text-primary);font-family:var(--font-family-serif);font-size:clamp(1.3rem,2.5vw,1.8rem);margin-bottom:var(--space-sm,1rem)}.showcase-content p{color:var(--text-secondary);font-size:clamp(.95rem,1.5vw,1rem);margin-bottom:var(--space-md,1.5rem)}.showcase-small{background:var(--earth-sand);border:4px solid var(--earth-brown);border-radius:var(--radius-lg,16px);-webkit-box-shadow:6px 6px 0 var(--shadow-heavy);box-shadow:6px 6px 0 var(--shadow-heavy);padding:var(--space-md,1.5rem);-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.showcase-small:focus-within,.showcase-small:hover{-webkit-transform:translateY(-4px);transform:translateY(-4px)}.showcase-small h4{color:var(--text-primary);font-family:var(--font-family-serif);font-size:clamp(1.1rem,2vw,1.3rem);margin-bottom:var(--space-xs,.5rem)}.showcase-small p{color:var(--text-secondary);font-size:clamp(.9rem,1.5vw,.95rem)}.about-card{margin:0 auto;padding:var(--space-2xl,3rem)}@media (width <= 768px){.about-card{padding:var(--space-md,1rem)}.about-grid{grid-template-columns:1fr!important}}.about-card p{color:var(--text-primary);font-size:clamp(1rem,1.5vw,1.1rem);line-height:1.8;margin-bottom:var(--space-lg,1.5rem)}.about-card p:last-child{margin-bottom:0}.about-grid{display:grid;gap:var(--space-xl,2rem);grid-template-columns:repeat(auto-fit,minmax(350px,1fr));margin-top:var(--space-xl,2rem)}.showcase-large{--card-shadow-color:var(--accent-coral);--card-shadow-ring-width:6px;overflow:hidden;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.showcase-large:focus-within,.showcase-large:hover{-webkit-transform:translateY(-8px);transform:translateY(-8px)}.showcase-image{background:linear-gradient(135deg,var(--earth-sage) 0,var(--earth-sand) 100%);display:-webkit-box;display:-ms-flexbox;display:flex;height:300px;width:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;border-bottom:var(--border-thick,6px) solid var(--earth-brown);color:var(--earth-cream);font-size:var(--font-size-5xl,3rem);justify-content:center;-o-object-fit:contain;object-fit:contain;padding:var(--space-md,1rem)}.showcase-image-dark{background:linear-gradient(135deg,var(--black) 0,var(--earth-dark) 100%)}.small-showcase-cards{display:grid;gap:var(--space-md,1.5rem);grid-column:1/-1;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-top:var(--space-sm,1rem)}.callouts-grid{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-top:2rem}.callout{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;-webkit-box-pack:justify;-ms-flex-pack:justify;background:var(--earth-cream);border:var(--border-thick,6px) solid var(--accent-coral-dark);border-radius:var(--radius-xl,20px);-webkit-box-shadow:8px 8px 0 var(--shadow-heavy);box-shadow:8px 8px 0 var(--shadow-heavy);justify-content:space-between;padding:2rem;position:relative;-webkit-transition:-webkit-transform .3s,-webkit-box-shadow .3s;transition:-webkit-transform .3s,-webkit-box-shadow .3s;transition:transform .3s,box-shadow .3s;transition:transform .3s,box-shadow .3s,-webkit-transform .3s,-webkit-box-shadow .3s}.callout:focus-within,.callout:hover{-webkit-box-shadow:12px 12px 0 var(--shadow-heavy);box-shadow:12px 12px 0 var(--shadow-heavy);-webkit-transform:translateY(-5px);transform:translateY(-5px)}.callout:before{color:var(--accent-coral);content:'"';font-family:var(--font-family-serif);font-size:var(--font-size-6xl,4rem);left:20px;line-height:1;position:absolute;top:10px}.callout-text{color:var(--text-primary);font-style:italic;margin-bottom:var(--space-md,1.5rem);padding-top:var(--space-sm,1rem)}.callout-author{color:var(--text-primary);display:block;font-weight:600}.callout-role{color:var(--text-secondary);font-size:var(--font-size-sm,.9rem)}.card-image{border:var(--border-medium,4px) solid var(--border-border,#4a3426);border-radius:var(--radius-xl,20px);-webkit-box-shadow:6px 6px 0 0 var(--shadow-light,rgba(45,31,18,.08));box-shadow:6px 6px 0 0 var(--shadow-light,rgba(45,31,18,.08));padding:var(--space-lg,1.5rem);-webkit-transition:-webkit-transform .3s,-webkit-box-shadow .3s;transition:-webkit-transform .3s,-webkit-box-shadow .3s;transition:transform .3s,box-shadow .3s;transition:transform .3s,box-shadow .3s,-webkit-transform .3s,-webkit-box-shadow .3s}.card-image,.card-image .image-top{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;background:var(--bg-canvas,#f5f1e8)}.card-image .image-top{-ms-flex-item-align:stretch;align-self:stretch;border-bottom:var(--border-medium) solid var(--border-brown,#4a3426);border:var(--border-extra-thick,8px) solid #000;border-radius:var(--radius-lg,16px);-webkit-box-shadow:0 0 12px var(--shadow-heavy,rgba(45,31,18,.25));box-shadow:0 0 12px var(--shadow-heavy,rgba(45,31,18,.25));margin-bottom:var(--space-xs,.5rem);max-height:300px;-o-object-fit:cover;object-fit:cover}.card-image .card-content{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:start;-ms-flex-item-align:stretch;align-self:stretch;padding:var(--space-md) var(--space-xl) var(--space-xl) var(--space-xl)}.card-image .card-content,.card-image>.card-body{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-box-align:start}.card-image>.card-body{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:justify;-ms-flex-pack:justify;height:100%;justify-content:space-between}h3.two-line-header{height:82px;min-height:82px}.gallery{--size:100px;display:grid;gap:5px;grid-auto-rows:var(--size);grid-template-columns:repeat(6,var(--size));margin-bottom:var(--size);place-items:start center}.gallery:has(:focus) picture:not(:focus),.gallery:has(:hover) picture:not(:hover){-webkit-filter:brightness(.5) contrast(.5);filter:brightness(.5) contrast(.5)}.gallery picture{border-radius:5px;clip-path:path("M90,10 C100,0 100,0 110,10 190,90 190,90 190,90 200,100 200,100 190,110 190,110 110,190 110,190 100,200 100,200 90,190 90,190 10,110 10,110 0,100 0,100 10,90Z");grid-column:auto/span 2;height:calc(var(--size)*2);-o-object-fit:cover;object-fit:cover;-webkit-transition:clip-path .25s,-webkit-filter .75s;transition:clip-path .25s,-webkit-filter .75s;transition:clip-path .25s,filter .75s;transition:clip-path .25s,filter .75s,-webkit-filter .75s;width:calc(var(--size)*2)}.gallery picture:nth-child(5n-1){grid-column:2/span 2}.gallery picture:focus,.gallery picture:hover{clip-path:path("M0,0 C0,0 200,0 200,0 200,0 200,100 200,100 200,100 200,200 200,200 200,200 100,200 100,200 100,200 100,200 0,200 0,200 0,100 0,100 0,100 0,100 0,100Z");-webkit-transition:clip-path .25s,-webkit-filter .25s;transition:clip-path .25s,-webkit-filter .25s;transition:clip-path .25s,filter .25s;transition:clip-path .25s,filter .25s,-webkit-filter .25s;z-index:1}.gallery picture:focus{outline:1px dashed #000;outline-offset:-5px}.carousel>input{height:1px;width:1px;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);margin:-1px;overflow:hidden;padding:0;position:absolute}.carousel>input:nth-of-type(15):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-1400%}.carousel>input:nth-of-type(14):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-1300%}.carousel>input:nth-of-type(13):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-1200%}.carousel>input:nth-of-type(12):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-1100%}.carousel>input:nth-of-type(11):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-1000%}.carousel>input:nth-of-type(10):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-900%}.carousel>input:nth-of-type(9):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-800%}.carousel>input:nth-of-type(8):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-700%}.carousel>input:nth-of-type(7):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-600%}.carousel>input:nth-of-type(6):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-500%}.carousel>input:nth-of-type(5):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-400%}.carousel>input:nth-of-type(4):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-300%}.carousel>input:nth-of-type(3):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-200%}.carousel>input:nth-of-type(2):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-100%}.carousel>input:first-of-type:checked~.carousel__slides .carousel__slide:first-of-type{margin-left:0}.carousel>input:first-of-type:checked~.carousel__thumbnails li:first-of-type,.carousel>input:nth-of-type(10):checked~.carousel__thumbnails li:nth-of-type(10),.carousel>input:nth-of-type(11):checked~.carousel__thumbnails li:nth-of-type(11),.carousel>input:nth-of-type(12):checked~.carousel__thumbnails li:nth-of-type(12),.carousel>input:nth-of-type(13):checked~.carousel__thumbnails li:nth-of-type(13),.carousel>input:nth-of-type(14):checked~.carousel__thumbnails li:nth-of-type(14),.carousel>input:nth-of-type(15):checked~.carousel__thumbnails li:nth-of-type(15),.carousel>input:nth-of-type(2):checked~.carousel__thumbnails li:nth-of-type(2),.carousel>input:nth-of-type(3):checked~.carousel__thumbnails li:nth-of-type(3),.carousel>input:nth-of-type(4):checked~.carousel__thumbnails li:nth-of-type(4),.carousel>input:nth-of-type(5):checked~.carousel__thumbnails li:nth-of-type(5),.carousel>input:nth-of-type(6):checked~.carousel__thumbnails li:nth-of-type(6),.carousel>input:nth-of-type(7):checked~.carousel__thumbnails li:nth-of-type(7),.carousel>input:nth-of-type(8):checked~.carousel__thumbnails li:nth-of-type(8),.carousel>input:nth-of-type(9):checked~.carousel__thumbnails li:nth-of-type(9){-webkit-box-shadow:0 0 0 5px rgba(0,0,255,.5);box-shadow:0 0 0 5px rgba(0,0,255,.5)}.carousel__slides{display:-webkit-box;display:-ms-flexbox;display:flex;margin:0;padding:0;white-space:nowrap;z-index:1}.carousel__slide,.carousel__slides{-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;position:relative}.carousel__slide{display:block;-webkit-box-flex:1;-ms-flex:1 0 100%;flex:1 0 100%;height:100%;-webkit-transition:all .3s ease-out;transition:all .3s ease-out;vertical-align:top;white-space:normal;width:100%}.carousel__slide figure{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin:0}.carousel__slide div{position:relative}.carousel__slide div:before{content:"";display:block;padding-top:66.6666666667%;width:100%}.carousel__slide div>img{height:100%;inset:0;position:absolute;width:100%}.carousel__slide div{width:100%}.carousel__slide img{display:block;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;-o-object-fit:cover;object-fit:cover}.carousel__slide figcaption{-ms-flex-item-align:center;align-self:center;padding:20px 20px 0;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;min-width:150px;width:25%}.carousel__slide .credit{color:rgba(0,0,0,.5);display:block;margin-top:1rem}.carousel__slide.scrollable{overflow-y:scroll}.carousel__thumbnails{display:-webkit-box;display:-ms-flexbox;display:flex;list-style:none;margin:0 -10px;padding:0}.carousel__slides+.carousel__thumbnails{margin-top:20px}.carousel__thumbnails li{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;margin:0 10px;max-width:calc(16.66667% - 20px);-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.carousel__thumbnails label{display:block;position:relative}.carousel__thumbnails label:before{content:"";display:block;padding-top:100%;width:100%}.carousel__thumbnails label>img{height:100%;inset:0;position:absolute;width:100%}.carousel__thumbnails label:focus,.carousel__thumbnails label:hover{cursor:pointer}.carousel__thumbnails label:focus img,.carousel__thumbnails label:hover img{-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.25);box-shadow:0 0 0 1px rgba(0,0,0,.25);-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.carousel__thumbnails img{display:block;height:100%;-o-object-fit:cover;object-fit:cover;width:100%}
+/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zYXNzL192YXJpYWJsZXMuc2NzcyIsInN0eWxlLmNzcyIsIi4uLy4uL3NyYy9zYXNzL3N0eWxlLnNjc3MiLCIuLi8uLi9zcmMvc2Fzcy9fYW5pbWF0aW9ucy5zY3NzIiwiLi4vLi4vc3JjL3Nhc3MvX2ZvbnRzLnNjc3MiLCIuLi8uLi9zcmMvc2Fzcy9fdHlwb2dyYXBoeS5zY3NzIiwiLi4vLi4vc3JjL3Nhc3MvX3NwYWNpbmcuc2NzcyIsIi4uLy4uL3NyYy9zYXNzL19sYXlvdXQuc2NzcyIsIi4uLy4uL3NyYy9zYXNzL19saXN0cy5zY3NzIiwiLi4vLi4vc3JjL3Nhc3MvX2hpZ2hsaWdodC5zY3NzIiwiLi4vLi4vc3JjL3Nhc3MvX25hdmlnYXRpb24uc2NzcyIsIi4uLy4uL3NyYy9zYXNzL19mb290ZXIuc2NzcyIsIi4uLy4uL3NyYy9zYXNzL19iYWRnZS5zY3NzIiwiLi4vLi4vc3JjL3Nhc3MvX2J1dHRvbnMuc2NzcyIsIi4uLy4uL3NyYy9zYXNzL19jYXJkcy5zY3NzIiwiLi4vLi4vc3JjL3Nhc3MvX2dhbGxlcnkuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSxNQUVFLHlIQUFBLENBR0EsNENBQUEsQ0FDQSw4REFBQSxDQUNBLDBDQUFBLENBR0EsZUFBQSxDQUNBLGVBQUEsQ0FDQSxvQkFBQSxDQUNBLHFCQUFBLENBQ0Esb0JBQUEsQ0FDQSxvQkFBQSxDQUNBLDBCQUFBLENBQ0EscUJBQUEsQ0FDQSxzQkFBQSxDQUNBLDJCQUFBLENBQ0Esc0JBQUEsQ0FDQSx3QkFBQSxDQUNBLG9CQUFBLENBQ0EsMkJBQUEsQ0FDQSxpQ0FBQSxDQUNBLGlDQUFBLENBRUEsOEJBQUEsQ0FDQSxpQ0FBQSxDQUdBLHNCQUFBLENBQ0EsdUJBQUEsQ0FDQSxtQkFBQSxDQUNBLHVCQUFBLENBQ0Esc0JBQUEsQ0FDQSxzQkFBQSxDQUNBLG9CQUFBLENBQ0Esc0JBQUEsQ0FDQSxvQkFBQSxDQUNBLG9CQUFBLENBR0EsbUJBQUEsQ0FDQSxpQkFB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LDBCQUFBLENBQUEsa0JKaVlKLENJL1hFLHNCQUNFLFdBQUEsQ0FFQSxrQko0WEosQ0l4WEUsOEdBSUUseUJKdVhKLENJbFhBLHVCQUVFLHVEQUFBLENBSUEsMkJBQUEsQ0FEQSxpQkFBQSxDQURBLCtCQUFBLENBREEsaUNKeVhGLENLL21CQSxNQUNFLHdDTGtuQkYsQ0tobkJBLE1BQ0UsdUNMbW5CRixDS2puQkEsTUFDRSx1Q0xvbkJGLENLbG5CQSxNQUNFLHVDTHFuQkYsQ0tubkJBLE1BQ0UsdUNMc25CRixDS3BuQkEsTUFDRSxxQ0x1bkJGLENLcm5CQSxNQUNFLG9DTHduQkYsQ0t0bkJBLE1BQ0Usb0NMeW5CRixDS3ZuQkEsTUFDRSxvQ0wwbkJGLENLeG5CQSxNQUNFLG9DTDJuQkYsQ0t6bkJBLE1BQ0Usc0NMNG5CRixDSzFuQkEsTUFDRSxxQ0w2bkJGLENLM25CQSxNQUNFLHFDTDhuQkYsQ0s1bkJBLE1BQ0UscUNMK25CRixDSzduQkEsTUFDRSxxQ0xnb0JGLENLOW5CQSxNQUNFLHVDTGlvQkYsQ0svbkJBLE1BQ0Usc0NMa29CRixDS2hvQkEsTUFDRSxzQ0xtb0JGLENLam9CQSxNQUNFLHNDTG9vQkYsQ0tsb0JBLE1BQ0Usc0NMcW9CRixDS25vQkEsS0FDRSxrQ0xzb0JGLENLcG9CQSxLQUNFLGlDTHVvQkYsQ0tyb0JBLEtBQ0UsaUNMd29CRixDS3RvQkEsS0FDRSxpQ0x5b0JGLENLdm9CQSxLQUNFLGlDTDBvQkYsQ0t4b0JBLE1BQ0Usc0NMMm9CRixDS3pvQkEsTUFDRSxxQ0w0b0JGLENLMW9CQSxNQUNFLHFDTDZvQkYsQ0szb0JBLE1BQ0UscUNMOG9CRixDSzVvQkEsTUFDRSxxQ0wrb0JGLENLN29CQSxNQUNFLHlDTGdwQkYsQ0s5b0JBLE1BQ0Usd0NMaXBCRixDSy9vQkEsTUFDRSx3Q0xrcEJGLENLaHBCQSxNQUNFLHdDTG1wQkYsQ0tqcEJBLE1BQ0Usd0NMb3BCRixDS2xwQkEsTUFDRSx1Q0xxcEJGLENLbnBCQSxNQUNFLHNDTHNwQkYsQ0twcEJBLE1BQ0Usc0NMdXBCRixDS3JwQkEsTUFDRSxzQ0x3cEJGLENLdHBCQSxNQUNFLHNDTHlwQkYsQ0t2cEJBLE1BQ0Usd0NMMHBCRixDS3hwQkEsTUFDRSx1Q0wycEJGLENLenBCQSxNQUNFLHVDTDRwQkYsQ0sxcEJBLE1BQ0UsdUNMNnBCRixDSzNwQkEsTUFDRSx1Q0w4cEJGLENNOXhCQSxRQUVFLGFBQUEsQ0FEQSxnQkFBQSxDQUVBLGtETmt5QkYsQ00veEJBLHdCQUNFLGlDQUFBLENBQUEsOEJBQUEsQ0FBQSxnQ05reUJGLENNaHlCQSx5QkFDRSxrQ0FBQSxDQUFBLCtCQUFBLENBQUEsdUNObXlCRixDTWp5QkEsd0JBQ0Usa0NBQUEsQ0FBQSxzQ05veUJGLENNbHlCQSxxQkFDRSw4QkFBQSxDQUFBLDJCQUFBLENBQUEsa0NOcXlCRixDTW55QkEsS0FDRSxtQkFBQSxDQUFBLG1CQUFBLENBQUEsWUFBQSxDQUNBLGtCQUFBLENBQUEsY0FBQSxDQUNBLHdCTnN5QkYsQ01weUJBLHdCQUNFLEtBQ0UseUJOdXlCRixDTW55QkEsZ0JBQ0UsS051eUJGLENBSkYsQ01oeUJBLFlBQ0UsUU51eUJGLENNcnlCQSxTQUNFLG9CQUFBLENBQUEsZ0JOd3lCRixDTXR5QkEsUUFDRSxtQkE3Q0ssQ0E2Q0wsbUJBN0NLLENBNkNMLFlOeXlCRixDTXZ5QkEsYUFDRSwyQkEvQ08sQ0ErQ1AsNEJBL0NPLENBK0NQLHlCQS9DTyxDQStDUCxxQk4weUJGLENNeHlCQSxvQkFDRSx3QkFqRE8sQ0FpRFAscUJBakRPLENBaURQLGtCTjJ5QkYsQ016eUJBLFdBQ0UsWUFBQSxDQUNBLHdCQUFBLENBQ0Esd0RBQUEsQ0FDQSxrQ040eUJGLENNMXlCQSxTQUlFLDhCQUFBLENBQ0Esd0RBQUEsQ0FKQSxhQUFBLENBRUEsNkJBQUEsQ0FHQSxhQUFBLENBSkEsU05pekJGLENNM3lCQSxrQkFHRSw0QkFBQSxDQUVBLHFCQUFBLENBREEsOEJBQUEsQ0FGQSxXQUFBLENBSUEsUUFBQSxDQUxBLDZCTm16QkYsQ092M0JBLGtEQUtFLHFDQUFBLENBQ0Esc0NQMDNCRixDUWg0QkEsaUJBQ0UsbUJBQUEsQ0FBQSxtQkFBQSxDQUFBLFlBQUEsQ0FDQSw2QkFBQSxDQUFBLDRCQUFBLENBQUEsc0JBQUEsQ0FBQSxrQkFBQSxDQUNBLHdCQUFBLENBQUEscUJBQUEsQ0FBQSxrQkFBQSxDQUNBLHVCQUFBLENBQUEsb0JBQUEsQ0FBQSxzQlJtNEJGLENRajRCQSxrQkFFRSwyQkFBQSxDQUNBLHVCQUFBLENBRkEsaUJBQUEsQ0FHQSxVUm80QkYsQ1M3NEJBLElBT0UsMEJBQUEsQ0FEQSwrQkFBQSxDQUdBLHdEQUFBLENBQ0Esa0JBQUEsQ0FFQSxpREFBQSxDQUFBLHlDQUFBLENBSkEsK0RBQUEsQ0FBQSx1REFBQSxDQUxBLFFBQUEsQ0FRQSw0QkFBQSxDQVZBLGNBQUEsQ0FDQSxRQUFBLENBRUEsa0NBQUEsQ0FBQSwwQkFBQSxDQUNBLFlUdzVCRixDUy80QkEsVUFNRSxNQUFBLENBSEEsYUFBQSxDQUZBLGVBQUEsQ0FNQSxPQUFBLENBTEEsUUFBQSxDQUdBLGdDQUFBLENBQUEsd0JBQUEsQ0FEQSx5QkFBQSxDQUFBLHNCQUFBLENBQUEsaUJUcTVCRixDUy80QkEsT0FFRSxtQkFBQSxDQUFBLG1CQUFBLENBQUEsWUFBQSxDQURBLGVBQUEsQ0FFQSx1QkFBQSxDQUFBLG9CQUFBLENBQ0EsUUFBQSxDQURBLHNCQUFBLENBRUEsdUJBQUEsQ0FDQSx3QlRrNUJGLENTLzRCQSxNQU9FLGtCQUFBLENBTEEseUJBQUEsQ0FFQSxnQkFBQSxDQURBLGVBQUEsQ0FHQSw4Q0FBQSxDQUxBLG9CQUFBLENBSUEsNEJBQUEsQ0FBQSxvQlRvNUJGLENTLzRCQSx3QkFHRSxvREFBQSxDQUNBLGtCVGs1QkYsQ1NoNUJBLHFDQUpFLHlCVHc1QkYsQ1NqNUJBLGVBQ0Usc0RBQUEsQ0FDQSxrQlRvNUJGLENTbDVCQSxxQkFDRSxpQ1RxNUJGLENTbDVCQSx3QkFDSSxJQUdBLHVCQUFBLENBREEsNERBQUEsQ0FEQSxrQ1R1NUJGLENTaDVCQSxPQUNFLHdCVGs1QkYsQ0FDRixDVXo5QkEsT0FDRSw0QkFBQSxDQUlBLGlFQUFBLENBQ0EsNkNBQUEsQ0FBQSxxQ0FBQSxDQUpBLHdCQUFBLENBRUEsZ0NBQUEsQ0FEQSxrRFYrOUJGLENVejlCQSxnQkFHRSxZQUFBLENBRUEsUUFBQSxDQURBLHdEQUFBLENBRkEsYUFBQSxDQURBLGdCVmcrQkYsQ1V6OUJBLG1CQUVFLHlCQUFBLENBRUEsa0NWNDlCRixDVTE5QkEsc0NBTEUsa0NBQUEsQ0FFQSxrQ1ZvK0JGLENVaitCQSxtQkFFRSxrQ0FBQSxDQUVBLHVDVjY5QkYsQ1UzOUJBLHFDQUVFLHdCQUFBLENBQ0EsZUFBQSxDQUNBLG1DVjg5QkYsQ1U1OUJBLG1CQUNFLGVBQUEsQ0FDQSxTVis5QkYsQ1U3OUJBLG1CQUNFLG1DVmcrQkYsQ1U5OUJBLGVBSUUsNERBQUEsQ0FDQSx1QkFBQSxDQUhBLGdDQUFBLENBQ0EsZ0NBQUEsQ0FGQSxpQlZxK0JGLENVLzlCQSxpQkFHRSx3QkFBQSxDQURBLDZCQUFBLENBREEsUVZvK0JGLENVaCtCQSxtQ0FFRSx3QkFBQSxDQUNBLHlCVm0rQkYsQ1VqK0JBLCtDQUVFLHlCVm8rQkYsQ1dqaUNBLE9BS0UsNEJBQUEsQ0FFQSxzREFBQSxDQUNBLGdDQUFBLENBRkEsd0JBQUEsQ0FMQSxvQkFBQSxDQUVBLGdCQUFBLENBQ0EsZUFBQSxDQUZBLHNEWDJpQ0YsQ1dsaUNBLGNBQ0UsbUNYcWlDRixDV2xpQ0EsZUFDRSxzQkFBQSxDQUNBLGFYcWlDRixDV25pQ0Esb0JBQ0UsbUJBQUEsQ0FBQSxtQkFBQSxDQUFBLFlBQUEsQ0FFQSxrQkFBQSxDQUFBLGNBQUEsQ0FEQSwyQlh1aUNGLENZNWpDQSxLQVVFLFdBQUEsQ0FIQSxtQ0FBQSxDQUVBLGNBQUEsQ0FSQSxvQkFBQSxDQUVBLG1DQUFBLENBQ0Esa0NBQUEsQ0FDQSxlQUFBLENBSEEscURBQUEsQ0FTQSxpQkFBQSxDQUxBLG9CQUFBLENBRUEsMEJBQUEsQ0FBQSxrQlpta0NGLENZOWpDQSxzQkFHRSwrQ0FBQSxDQUFBLHVDQUFBLENBREEsb0NBQUEsQ0FBQSw0Qlpra0NGLENZMWpDQSxhQUdFLHdEQUFBLENBQ0EsK0NBQUEsQ0FBQSx1Q1o4akNGLENZM2pDQSxtREFORSxtQ0FBQSxDQUNBLGtCWnNrQ0YsQ1l2akNBLGVBQ0UsNkJBQUEsQ0FFQSx3REFBQSxDQUNBLDhDQUFBLENBQUEsc0NBQUEsQ0FGQSx5Qlo2akNGLENZeGpDQSwwQ0FFRSw0QkFBQSxDQUdBLDhDQUFBLENBQUEsc0NBQUEsQ0FGQSx5QkFBQSxDQUdBLGtEQUFBLENBRkEsb0NBQUEsQ0FBQSw0Qlo2akNGLENZcmpDQSxhQUVFLDBCQUFBLENBREEsdUNBQUEsQ0FJQSxrRUFBQSxDQUNBLGlDQUFBLENBQUEseUJBQUEsQ0FGQSxtQ0FBQSxDQURBLCtEQUFBLENBQUEsdURaNGpDRixDWXRqQ0Esc0NBRUUsd0JBQUEsQ0FDQSx5Qlp5akNGLENZbGpDQSxRQUdFLHlDQUFBLENBREEseUJBQUEsQ0FEQSw0RFp3akNGLENZbmpDQSxRQUVFLDBCQUFBLENBREEsMkRadWpDRixDWWxqQ0EsV0FJRSw4QkFBQSxDQUtBLHdEQUFBLENBSkEsa0JBQUEsQ0FHQSxlQUFBLENBTEEsTUFBQSxDQUdBLHFEQUFBLENBTEEsaUJBQUEsQ0FNQSxvQkFBQSxDQUxBLFVBQUEsQ0FRQSxZQUFBLENBQ0Esa0JBQUEsQ0FDQSxlWnNqQ0YsQ1luakNBLGlCQUVFLFNBQUEsQ0FEQSxRQUFBLENBRUEsU0FBQSxDQUNBLGdCWnNqQ0YsQ1luakNBLGNBQ0UsbUJBQUEsQ0FBQSxtQkFBQSxDQUFBLFlBQUEsQ0FFQSxrQkFBQSxDQUFBLGNBQUEsQ0FEQSxRWnVqQ0YsQ1luakNBLGFBR0UsNEJBQUEsQ0FHQSx1REFBQSxDQUNBLGlCQUFBLENBSEEsa0JBQUEsQ0FIQSxvQkFBQSxDQVNBLGdCQUFBLENBRkEsZUFBQSxDQU5BLGtEQUFBLENBR0EsOEJBQUEsQ0FJQSwwQkFBQSxDQUFBLGtCWnVqQ0YsQ1luakNBLHNDQUVFLDhCQUFBLENBS0EsNEJBQUEsQ0FKQSxrQ0FBQSxDQUFBLDBCWnVqQ0YsQ2F6ckNBLDZEQUtFLDZCQUFBLENBQ0EseUdBQUEsQ0FDQSxtQ2Jpc0NGLENhenJDQSx1REFJRSxrUEFDRSxDQURGLDBPYmlzQ0YsQ2EzckNBLHdCQUNFLDRCQUVFLHdCQUFBLENBQ0EsNEJiK3JDRixDQUNGLENhNXJDQSxNQUVFLGdEQUFBLENBQUEsd0NBQUEsQ0FEQSw4QkFBQSxDQUVBLCtEQUNFLENBREYsdURBQ0UsQ0FERix1Q0FDRSxDQURGLG9GYjhyQ0YsQ2F6ckNBLCtCQUdFLGtEQUFBLENBQUEsMENBQUEsQ0FEQSxrQ0FBQSxDQUFBLDBCYjZyQ0YsQ2F4ckNBLGNBQ0UsNEJiNHJDRixDYXhyQ0EsYUFDRSw2QkFBQSxDQUNBLFdBQUEsQ0FDQSxtQ0FBQSxDQUVBLGtEQUFBLENBQUEsMENBQUEsQ0FEQSw4QmI2ckNGLENheHJDQSxhQUNFLGlEQUFBLENBQ0EseUJBQUEsQ0FDQSx1Q0FBQSxDQUNBLDRCQUFBLENBRUEsZWIyckNGLENhdnJDQSxXQUNFLG1CQUFBLENBQUEsbUJBQUEsQ0FBQSxZQUFBLENBQ0EsMkJBQUEsQ0FBQSw0QkFBQSxDQUFBLHlCQUFBLENBQUEscUJiMnJDRixDYXpyQ0EsYUFDRSxrQkFBQSxDQUFBLFlBQUEsQ0FBQSxRYjRyQ0YsQ2F4ckNFLHdCQUdFLHdCQUFBLENBQ0EsMkJiMnJDSixDYXpyQ0UsbURBTEUsbUJBQUEsQ0FBQSxtQkFBQSxDQUFBLFlBQUEsQ0FDQSx1QkFBQSxDQUFBLG9CQUFBLENBQUEsc0JBQUEsQ0FFQSxrQmJpc0NKLENhL3JDRSwyQkFHRSxrQkFBQSxDQUFBLGdCQUFBLENBQUEsVUFBQSxDQUNBLDJCYjJyQ0osQ2F0ckNBLGFBR0UsNERBQUEsQ0FGQSxrQ0FBQSxDQUNBLG1DYjJyQ0YsQ2F0ckNBLFdBQ0UsNkJiMHJDRixDYXhyQ0EsZUFDRSxtQkFBQSxDQUFBLGdCQUFBLENBQ0EsVWIyckNGLENheHJDQSx3QkFDRSxlQUNFLGFiMnJDRixDQUNGLENheHJDQSxzQkFDRSxlYjByQ0YsQ2F0ckNBLGFBR0UseURBQUEsQ0FGQSwrQkFBQSxDQUNBLGdDYjJyQ0YsQ2F2ckNBLGtCQUNFLDRCYjByQ0YsQ2F2ckNBLHFCQUdFLHlCQUFBLENBRkEsb0NBQUEsQ0FDQSxvQ0FBQSxDQUVBLGtDYjByQ0YsQ2F2ckNBLG9CQUNFLDJCQUFBLENBRUEsa0NBQUEsQ0FEQSxvQ2IyckNGLENheHJDQSxnQkFDRSw0QkFBQSxDQUNBLG1DQUFBLENBQ0EsbUNBQUEsQ0FFQSxnREFBQSxDQUFBLHdDQUFBLENBREEsOEJBQUEsQ0FFQSx3Q0FBQSxDQUFBLGdDQUFBLENBQUEsd0JBQUEsQ0FBQSw4Q2IyckNGLENheHJDQSxtREFFRSxrQ0FBQSxDQUFBLDBCYjJyQ0YsQ2F4ckNBLG1CQUdFLHlCQUFBLENBRkEsb0NBQUEsQ0FDQSxrQ0FBQSxDQUVBLG1DYjJyQ0YsQ2F4ckNBLGtCQUNFLDJCQUFBLENBQ0EsbUNiMnJDRixDYXZyQ0EsWUFFRSxhQUFBLENBREEsNkJiNHJDRixDYXpyQ0Esd0JBQ0UsWUFDRSw0QmI0ckNGLENhMXJDQSxZQUNFLG1DYjRyQ0YsQ0FDRixDYXpyQ0EsY0FHRSx5QkFBQSxDQUZBLGtDQUFBLENBQ0EsZUFBQSxDQUVBLG9DYjJyQ0YsQ2F4ckNBLHlCQUNFLGViMnJDRixDYXpyQ0EsWUFDRSxZQUFBLENBRUEsd0JBQUEsQ0FEQSx3REFBQSxDQUVBLCtCYjRyQ0YsQ2F6ckNBLGdCQUNFLHVDQUFBLENBQ0EsNEJBQUEsQ0FFQSxlQUFBLENBQ0Esd0NBQUEsQ0FBQSxnQ0FBQSxDQUFBLHdCQUFBLENBQUEsOENiMnJDRixDYXhyQ0EsbURBRUUsa0NBQUEsQ0FBQSwwQmIyckNGLENheHJDQSxnQkFHRSw2RUFBQSxDQUtBLG1CQUFBLENBQUEsbUJBQUEsQ0FBQSxZQUFBLENBTkEsWUFBQSxDQURBLFVBQUEsQ0FRQSx3QkFBQSxDQUFBLHFCQUFBLENBQUEsa0JBQUEsQ0FDQSx1QkFBQSxDQUFBLG9CQUFBLENBSUEsOERBQUEsQ0FEQSx3QkFBQSxDQURBLG1DQUFBLENBRkEsc0JBQUEsQ0FLQSxxQkFBQSxDQUFBLGtCQUFBLENBSkEsNEJiMnJDRixDYXJyQ0EscUJBQ0Usd0Vid3JDRixDYXByQ0Esc0JBRUUsWUFBQSxDQUVBLDBCQUFBLENBSEEsZ0JBQUEsQ0FFQSx3REFBQSxDQUVBLCtCYndyQ0YsQ2FwckNBLGVBQ0UsWUFBQSxDQUVBLFFBQUEsQ0FEQSx3REFBQSxDQUVBLGVid3JDRixDYXJyQ0EsU0FDRSxtQkFBQSxDQUFBLG1CQUFBLENBQUEsWUFBQSxDQUNBLDJCQUFBLENBQUEsNEJBQUEsQ0FBQSx5QkFBQSxDQUFBLHFCQUFBLENBQ0EscUJBQUEsQ0FBQSxrQkFBQSxDQUFBLG9CQUFBLENBQ0Esd0JBQUEsQ0FBQSxxQkFBQSxDQUNBLDZCQUFBLENBQ0EsNkRBQUEsQ0FFQSxtQ0FBQSxDQUNBLGdEQUFBLENBQUEsd0NBQUEsQ0FMQSw2QkFBQSxDQUdBLFlBQUEsQ0FHQSxpQkFBQSxDQUNBLCtEQUNFLENBREYsdURBQ0UsQ0FERix1Q0FDRSxDQURGLG9GYndyQ0YsQ2FuckNBLHFDQUdFLGtEQUFBLENBQUEsMENBQUEsQ0FEQSxrQ0FBQSxDQUFBLDBCYnVyQ0YsQ2FuckNBLGdCQUlFLHlCQUFBLENBSEEsV0FBQSxDQUNBLG9DQUFBLENBQ0EsbUNBQUEsQ0FJQSxTQUFBLENBQ0EsYUFBQSxDQUhBLGlCQUFBLENBQ0EsUWJ3ckNGLENhbnJDQSxjQUlFLHlCQUFBLENBSEEsaUJBQUEsQ0FDQSxvQ0FBQSxDQUNBLGdDYnVyQ0YsQ2FuckNBLGdCQUVFLHlCQUFBLENBQ0EsYUFBQSxDQUZBLGVid3JDRixDYW5yQ0EsY0FFRSwyQkFBQSxDQURBLG1DYnVyQ0YsQ2FuckNBLFlBT0Usa0VBQUEsQ0FGQSxtQ0FBQSxDQUdBLHFFQUFBLENBQUEsNkRBQUEsQ0FGQSw4QkFBQSxDQUdBLCtEQUNFLENBREYsdURBQ0UsQ0FERix1Q0FDRSxDQURGLG9GYnNyQ0YsQ2FsckNBLG1DQVpFLG1CQUFBLENBQUEsbUJBQUEsQ0FBQSxZQUFBLENBQ0EsMkJBQUEsQ0FBQSw0QkFBQSxDQUFBLHlCQUFBLENBQUEscUJBQUEsQ0FDQSx1QkFBQSxDQUFBLG9CQUFBLENBQUEsc0JBQUEsQ0FDQSxtQ2Iwc0NGLENhanNDQSx1QkFJRSwyQkFBQSxDQUFBLGtCQUFBLENBQ0Esb0VBQUEsQ0FFQSwrQ0FBQSxDQUNBLG1DQUFBLENBQ0Esa0VBQUEsQ0FBQSwwREFBQSxDQUNBLG1DQUFBLENBQ0EsZ0JBQUEsQ0FDQSxtQkFBQSxDQUFBLGdCYnFyQ0YsQ2FuckNBLDBCQUVFLHlCQUFBLENBQUEscUJBQUEsQ0FDQSxvQkFBQSxDQUFBLGlCQUFBLENBQ0EsMkJBQUEsQ0FBQSxrQkFBQSxDQUNBLHVFYnNyQ0YsQ2FwckNBLGlEQU5FLG1CQUFBLENBQUEsbUJBQUEsQ0FBQSxZQUFBLENBQ0EsMkJBQUEsQ0FBQSw0QkFBQSxDQUNBLHVCYmdzQ0YsQ2E1ckNBLHVCQUVFLHlCQUFBLENBQUEscUJBQUEsQ0FDQSxvQkFBQSxDQUFBLHNCQUFBLENBQ0Esd0JBQUEsQ0FBQSxxQkFBQSxDQUNBLFdBQUEsQ0FEQSw2QmJ3ckNGLENhcHJDQSxtQkFFRSxXQUFBLENBREEsZWJ3ckNGLENjdGhEQSxTQUNFLFlBQUEsQ0FFQSxZQUFBLENBS0EsT0FBQSxDQUhBLDBCQUFBLENBREEsMkNBQUEsQ0FFQSx5QkFBQSxDQUNBLHdCZDBoREYsQ2N2aERFLGtGQUVFLDBDQUFBLENBQUEsa0Nkd2hESixDY3JoREUsaUJBV0UsaUJBQUEsQ0FQQSxnTEFBQSxDQU1BLHVCQUFBLENBUEEsMEJBQUEsQ0FGQSxtQkFBQSxDQUFBLGdCQUFBLENBTUEscURBQ0UsQ0FERiw2Q0FDRSxDQURGLHFDQUNFLENBREYseURBQ0UsQ0FORix5QmQ0aERKLENjamhESSxpQ0FDRSxvQmRtaEROLENjaGhESSw4Q0FFRSx3S0FBQSxDQUlBLHFEQUNFLENBREYsNkNBQ0UsQ0FERixxQ0FDRSxDQURGLHlEQUNFLENBRkYsU2RnaEROLENjMWdESSx1QkFDRSx1QkFBQSxDQUNBLG1CZDRnRE4sQ2N4K0NFLGdCQUVFLFVBQUEsQ0FEQSxTQUFBLENBRUEsMEJBQUEsQ0FDQSxvQkFBQSxDQUNBLFdBQUEsQ0FDQSxlQUFBLENBQ0EsU0FBQSxDQUNBLGlCZDQrQ0osQ2MxK0NJLHlGQUdFLGtCZDArQ04sQ2N4K0NJLHlGQUdFLGtCZHcrQ04sQ2N0K0NJLHlGQUdFLGtCZHMrQ04sQ2NwK0NJLHlGQUdFLGtCZG8rQ04sQ2NsK0NJLHlGQUdFLGtCZGsrQ04sQ2NoK0NJLHlGQUdFLGlCZGcrQ04sQ2M5OUNJLHdGQUdFLGlCZDg5Q04sQ2M1OUNJLHdGQUdFLGlCZDQ5Q04sQ2MxOUNJLHdGQUdFLGlCZDA5Q04sQ2N4OUNJLHdGQUdFLGlCZHc5Q04sQ2N0OUNJLHdGQUdFLGlCZHM5Q04sQ2NwOUNJLHdGQUdFLGlCZG85Q04sQ2NsOUNJLHdGQUdFLGlCZGs5Q04sQ2NoOUNJLHdGQUdFLGlCZGc5Q04sQ2M5OENJLHVGQUdFLGFkODhDTixDY2o2Q0ksMnFDQUNFLDZDQUFBLENBQUEscUNkNjhDTixDY3g4Q0Esa0JBUUUsbUJBQUEsQ0FBQSxtQkFBQSxDQUFBLFlBQUEsQ0FKQSxRQUFBLENBREEsU0FBQSxDQUdBLGtCQUFBLENBSkEsU2RpOUNGLENjeDhDQSxtQ0FKRSw2QkFBQSxDQUFBLHFCQUFBLENBRkEsZUFBQSxDQUpBLGlCZCs5Q0YsQ2NyOUNBLGlCQUVFLGFBQUEsQ0FDQSxrQkFBQSxDQUFBLGlCQUFBLENBQUEsYUFBQSxDQUVBLFdBQUEsQ0FFQSxtQ0FBQSxDQUFBLDJCQUFBLENBQ0Esa0JBQUEsQ0FFQSxrQkFBQSxDQU5BLFVkaTlDRixDY3o4Q0Usd0JBQ0UsbUJBQUEsQ0FBQSxtQkFBQSxDQUFBLFlBQUEsQ0FDQSwyQkFBQSxDQUFBLDRCQUFBLENBQUEseUJBQUEsQ0FBQSxxQkFBQSxDQUNBLFFkMjhDSixDY3g4Q0UscUJBaE1BLGlCZDJvREYsQ2N6b0RFLDRCQUVFLFVBQUEsQ0FEQSxhQUFBLENBR0EsMEJBQUEsQ0FEQSxVZDRvREosQ2N4b0RFLHlCQUlFLFdBQUEsQ0FGQSxPQUFBLENBREEsaUJBQUEsQ0FFQSxVZDJvREosQ2N2OUNFLHFCQUdFLFVkdTlDSixDY3A5Q0UscUJBQ0UsYUFBQSxDQUNBLGtCQUFBLENBQUEsaUJBQUEsQ0FBQSxhQUFBLENBQ0EsbUJBQUEsQ0FBQSxnQmRzOUNKLENjbjlDRSw0QkFDRSwwQkFBQSxDQUFBLGlCQUFBLENBQ0EsbUJBQUEsQ0FDQSxrQkFBQSxDQUFBLGlCQUFBLENBQUEsYUFBQSxDQUVBLGVBQUEsQ0FEQSxTZHM5Q0osQ2NsOUNFLHlCQUVFLG9CQUFBLENBQ0EsYUFBQSxDQUZBLGVkczlDSixDY2o5Q0UsNEJBQ0UsaUJkbTlDSixDYy84Q0Esc0JBR0UsbUJBQUEsQ0FBQSxtQkFBQSxDQUFBLFlBQUEsQ0FGQSxlQUFBLENBR0EsY0FBQSxDQUZBLFNkbzlDRixDY2g5Q0Usd0NBQ0UsZWRrOUNKLENjLzhDRSx5QkFDRSxrQkFBQSxDQUFBLGlCQUFBLENBQUEsYUFBQSxDQUVBLGFBQUEsQ0FEQSxnQ0FBQSxDQUVBLHNDQUFBLENBQUEsOEJkaTlDSixDYzk4Q0UsNEJBQ0UsYUFBQSxDQWpQRixpQmRrc0RGLENjaHNERSxtQ0FFRSxVQUFBLENBREEsYUFBQSxDQUdBLGdCQUFBLENBREEsVWRtc0RKLENjL3JERSxnQ0FJRSxXQUFBLENBRkEsT0FBQSxDQURBLGlCQUFBLENBRUEsVWRrc0RKLENjMTlDSSxvRUFFRSxjZDI5Q04sQ2N6OUNNLDRFQUNFLDRDQUFBLENBQUEsb0NBQUEsQ0FDQSxzQ0FBQSxDQUFBLDhCZDI5Q1IsQ2N0OUNFLDBCQUNFLGFBQUEsQ0FFQSxXQUFBLENBQ0EsbUJBQUEsQ0FBQSxnQkFBQSxDQUZBLFVkMDlDSiIsImZpbGUiOiJzdHlsZS5jc3MifQ== */
\ No newline at end of file
diff --git a/docs/css/style.css.map b/docs/css/style.css.map
index 6326d779..50d16743 100644
--- a/docs/css/style.css.map
+++ b/docs/css/style.css.map
@@ -1 +1 @@
-{"version":3,"sourceRoot":"","sources":["../../src/sass/style.scss","../../src/sass/_variables.scss","../../src/sass/_animations.scss","../../src/sass/_fonts.scss","../../src/sass/_typography.scss","../../src/sass/_spacing.scss","../../src/sass/_layout.scss","../../src/sass/_lists.scss","../../src/sass/_highlight.scss","../../src/sass/_navigation.scss","../../src/sass/_footer.scss","../../src/sass/_badge.scss","../../src/sass/_buttons.scss","../../src/sass/_cards.scss","../../src/sass/_gallery.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;ACSA;AACE;EACA;AAAA;AAAA;EAGA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;;;ADhEF;EACE;EACA;EACA;;;AAGF;AACA;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;;;AAEF;AAAA;EAEE;EACA;EACA;EACA;;;AAEF;AAAA;EAEE;EACA;EACA;EACA;;;AAGF;AACA;EACE;IACE;IACA;AAEA;AAEA;IACA;;AAGF;EACA;IACE;;EAEF;AAAA;AAAA;IAGE;IACA;IACA;;;AAGJ;AAAA;EAEE;;;AAGF;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAEF;EACE;EACA;;;AAGF;AACA;EACE;EACA;EACA,YACE,iDAC2B;;;AAE/B;EACE;EACA;EACA;;;AAGF;EAEE;EACA;EACA;;;AAEF;EACE;EACA;EACA,YACE,iDAC2B;;;AAE/B;EACE;;;AAGF;AACA;EACE;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;;AAGF;AEpKA;AAAA;AAAA;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AAGF;EACE;IAAI;;EACJ;IAAK;;EACL;IAAK;;EACL;IAAM;;;AAGR;EACE;IAAI;;EACJ;IAAK;;EACL;IAAK;;EACL;IAAM;;;AAGR;EACE;AAED;;;AAGD;EACE;AAED;;;AAGD;EACE;AAED;;;AC/CD;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AC7EF;AACA;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EAEA;EACA;EACA;EACA;EACA;;;AAGF;AACA;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;;;AAEF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AACA;AAAA;EAEE;EACA;EACA;EACA;EACA;;;AAGF;AACA;AAAA;EAEE;EACA;EACA;EACA;EACA;;;AAGF;AACA;AAAA;EAEE;EACA;EACA;EACA;EACA;;;AAGF;AACA;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;;;AAEF;AAAA;EAEE;;;AAEF;EACE;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;;;AAEF;AAAA;EAEE;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AACA;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;AACA;AAAA;EAEE;EACA;EACA;;;AAGF;AACA;AAAA;EAEE;EACA;EACA;EACA;EACA;;;AAEF;AAAA;AAAA;AAAA;EAIE;EACA;;;AAEF;EACE;;AACA;EACE;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;;AAEF;EAIE;;;AAIJ;AACA;AAAA;EAEE;EACA;EACA;EACA;EACA;;;ACzPF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;ACjIF;AACA;EACE;EACA;EACA;;;AAGF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;IACE;;;AAGJ;EACE;IACE;;;AAGJ;EACE;;;AAEF;EACE;;;AAEF;EACE,SA7CK;;;AA+CP;EACE,gBA/CO;;;AAiDT;EACE,aAjDO;;;AAmDT;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;;ACzEF;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;;;ACNF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;ACVF;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAGF;EACI;IACA;IACA;IACA;;EAKF;IACE;;;ACvEJ;AACA;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;AAAA;EAEE;EACA;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;AAAA;EAEE;EACA;;;AAEF;AAAA;EAEE;;;AC9DF;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;EACA;;;ACvBF;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;AAAA;EAEE;EACA;;;AAMF;AACA;EACE;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;;;AAMF;AACA;EACE;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;;;AAKF;AACA;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;;;AAMF;AACA;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EAIA;;;AC3IF;AACA;EACE;EACA;EACA;EACA;EACA;EACA,YACE;;;AAIJ;AAAA;EAEE;EACA;;;AAGF;AACA;EACE;EACA;EACA;EACA;EACA,YACE;;;AAIJ;AACA;EACE;EACA;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;EACA;EACA,YACE;;;AAIJ;AACA;EACE;EACA;;;AAEF;EACE;;;AAIA;EACE;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;;;AAIJ;AACA;EACE;EACA;EACA;;;AAGF;AACA;EACE;;;AAEF;EACE;EACA;;;AAGF;EACE;IACE;;;AAIJ;EACE;;;AAGF;AACA;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;AACA;EACE;EACA;EACA;EACA;EACA,YACE;EAEF;;;AAEF;EACE;IACE,YACE;IAEF;;EAEF;IACE;;;AAIJ;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAEF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA,YACE;EAEF;;;AAEF;EACE;IACE,YACE;;;AAKN;AAAA;EAEE;;;AAGF;EACE;EACA;EACA;EAKA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;;;AAGF;AACA;EACE;EACA;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;;;AAIJ;AAAA;EAEE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;;;AAGJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;ACxVF;AACA;EACE;EAEA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;;AAGF;EACE;EACA;EACA;EACA;EAGA,YACE;EAEF;EACA;;AAEA;EACE;;AAGF;EAEE;EAGA;EACA,YACE;;AAIJ;EACE;EACA;;;AAKN;AA+BE;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAGE;;AAEF;EAGE;;AAEF;EAGE;;AAEF;EAGE;;AAEF;EAGE;;AAEF;EAGE;;AAEF;EAGE;;AAEF;EAGE;;AAEF;EAGE;;AAEF;EAGE;;AAEF;EAGE;;AAEF;EAGE;;AAEF;EAGE;;AAEF;EAGE;;AAEF;EAGE;;AAGF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;;AAKN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EAhMA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAmLF;EAGE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;;AAIJ;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EAjPF;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAuOA;EAEE;;AAEA;EACE;EACA;;AAKN;EACE;EACA;EACA;EACA;;;AAGJ;AdvIA","file":"style.css"}
\ No newline at end of file
+{"version":3,"sourceRoot":"","sources":["../../src/sass/style.scss","../../src/sass/_variables.scss","../../src/sass/_animations.scss","../../src/sass/_fonts.scss","../../src/sass/_typography.scss","../../src/sass/_spacing.scss","../../src/sass/_layout.scss","../../src/sass/_lists.scss","../../src/sass/_highlight.scss","../../src/sass/_navigation.scss","../../src/sass/_footer.scss","../../src/sass/_badge.scss","../../src/sass/_buttons.scss","../../src/sass/_cards.scss","../../src/sass/_gallery.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;ACSA;AACE;EACA;AAAA;AAAA;EAGA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;;;ADjEF;EACE;EACA;EACA;;;AAGF;AACA;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;;;AAEF;AAAA;EAEE;EACA;EACA;EACA;;;AAEF;AAAA;EAEE;EACA;EACA;EACA;;;AAGF;AACA;EACE;IACE;IACA;AAEA;AAEA;IACA;;AAGF;EACA;IACE;;EAEF;AAAA;AAAA;IAGE;IACA;IACA;;;AAGJ;AAAA;EAEE;;;AAGF;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAEF;EACE;EACA;;;AAGF;AACA;EACE;EACA;EACA,YACE,iDAC2B;;;AAE/B;EACE;EACA;EACA;;;AAGF;EAEE;EACA;EACA;;;AAEF;EACE;EACA;EACA,YACE,iDAC2B;;;AAE/B;EACE;;;AAGF;AACA;EACE;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;;AAGF;AEpKA;AAAA;AAAA;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AAGF;EACE;IAAI;;EACJ;IAAK;;EACL;IAAK;;EACL;IAAM;;;AAGR;EACE;IAAI;;EACJ;IAAK;;EACL;IAAK;;EACL;IAAM;;;AAGR;EACE;AAED;;;AAGD;EACE;AAED;;;AAGD;EACE;AAED;;;AC/CD;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AC7EF;AACA;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EAEA;EACA;EACA;EACA;EACA;;;AAGF;AACA;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;;;AAEF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AACA;AAAA;EAEE;EACA;EACA;EACA;EACA;;;AAGF;AACA;AAAA;EAEE;EACA;EACA;EACA;EACA;;;AAGF;AACA;AAAA;EAEE;EACA;EACA;EACA;EACA;;;AAGF;AACA;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;;;AAEF;AAAA;EAEE;;;AAEF;EACE;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;;;AAEF;AAAA;EAEE;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AACA;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;AACA;AAAA;EAEE;EACA;EACA;;;AAGF;AACA;AAAA;EAEE;EACA;EACA;EACA;EACA;;;AAEF;AAAA;AAAA;AAAA;EAIE;EACA;;;AAEF;EACE;;AACA;EACE;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;;AAEF;EAIE;;;AAIJ;AACA;AAAA;EAEE;EACA;EACA;EACA;EACA;;;ACzPF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;ACjIF;AACA;EACE;EACA;EACA;;;AAGF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;IACE;;;AAGJ;EACE;IACE;;;AAGJ;EACE;;;AAEF;EACE;;;AAEF;EACE,SA7CK;;;AA+CP;EACE,gBA/CO;;;AAiDT;EACE,aAjDO;;;AAmDT;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;;ACzEF;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;;;ACNF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;ACVF;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAGF;EACI;IACA;IACA;IACA;;EAKF;IACE;;;ACvEJ;AACA;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;AAAA;EAEE;EACA;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;AAAA;EAEE;EACA;;;AAEF;AAAA;EAEE;;;AC9DF;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;EACA;;;ACvBF;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;AAAA;EAEE;EACA;;;AAMF;AACA;EACE;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;;;AAMF;AACA;EACE;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;;;AAKF;AACA;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;;;AAMF;AACA;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EAIA;;;AC3IF;AAAA;AAAA;AAAA;AAAA;AAKA;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;EACA;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAKA;AAAA;AAAA;AAAA;EAIE,YACE;;;AAIJ;AACA;EACE;AAAA;IAEE;IACA;;;AAIJ;EACE;EACA;EACA,YACE;;;AAIJ;AAAA;EAEE;EACA;;;AAGF;AACA;EACE;;;AAGF;AACA;EACE;EACA;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;EACA;EAEA;;;AAGF;AACA;EACE;EACA;;;AAEF;EACE;;;AAIA;EACE;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;;;AAIJ;AACA;EACE;EACA;EACA;;;AAGF;AACA;EACE;;;AAEF;EACE;EACA;;;AAGF;EACE;IACE;;;AAIJ;EACE;;;AAGF;AACA;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;AACA;EACE;EACA;;;AAEF;EACE;IACE;;EAEF;IACE;;;AAIJ;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAEF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EAEA;EACA;;;AAGF;AAAA;EAEE;;;AAGF;EACE;EACA;EACA;EAKA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;;;AAGF;AACA;EACE;EACA;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;;;AAIJ;AAAA;EAEE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;;;AAGJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AChWF;AACA;EACE;EAEA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;;AAGF;EACE;EACA;EACA;EACA;EAGA,YACE;EAEF;EACA;;AAEA;EACE;;AAGF;EAEE;EAGA;EACA,YACE;;AAIJ;EACE;EACA;;;AAKN;AA+BE;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAGE;;AAEF;EAGE;;AAEF;EAGE;;AAEF;EAGE;;AAEF;EAGE;;AAEF;EAGE;;AAEF;EAGE;;AAEF;EAGE;;AAEF;EAGE;;AAEF;EAGE;;AAEF;EAGE;;AAEF;EAGE;;AAEF;EAGE;;AAEF;EAGE;;AAEF;EAGE;;AAGF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;;AAKN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EAhMA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAmLF;EAGE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;;AAIJ;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EAjPF;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAuOA;EAEE;;AAEA;EACE;EACA;;AAKN;EACE;EACA;EACA;EACA;;;AAGJ;AdvIA","file":"style.css"}
\ No newline at end of file
diff --git a/docs/feed.json b/docs/feed.json
index 4581fb5e..4d3e3d1f 100644
--- a/docs/feed.json
+++ b/docs/feed.json
@@ -26,36 +26,36 @@
"url": ""
},
"items": [
- {
- "id": "/credits/open-source/",
- "url": "/credits/open-source/",
- "title": "Open Source",
- "date_published": "2026-05-27T15:59:21Z",
- "date": "2026-05-27T15:59:21Z"
- }
- ,
- {
- "id": "/credits/credits/",
- "url": "/credits/credits/",
- "title": "Credits",
- "date_published": "2026-05-27T15:59:21Z",
- "date": "2026-05-27T15:59:21Z"
- }
- ,
{
"id": "/reference/",
"url": "/reference/",
"title": "Reference links",
- "date_published": "2026-05-20T11:47:07Z",
- "date": "2026-05-20T11:47:07Z"
+ "date_published": "2026-06-28T13:02:06Z",
+ "date": "2026-06-28T13:02:06Z"
}
,
{
"id": "/archives/town-selectman.html",
"url": "/archives/town-selectman.html",
"title": "Archived",
- "date_published": "2026-05-20T11:47:07Z",
- "date": "2026-05-20T11:47:07Z"
+ "date_published": "2026-06-28T13:02:06Z",
+ "date": "2026-06-28T13:02:06Z"
+ }
+ ,
+ {
+ "id": "/credits/open-source/",
+ "url": "/credits/open-source/",
+ "title": "Open Source",
+ "date_published": "2026-05-27T16:02:20Z",
+ "date": "2026-05-27T16:02:20Z"
+ }
+ ,
+ {
+ "id": "/credits/credits/",
+ "url": "/credits/credits/",
+ "title": "Credits",
+ "date_published": "2026-05-27T16:02:20Z",
+ "date": "2026-05-27T16:02:20Z"
}
,
{
@@ -302,24 +302,24 @@
"id": "/development/prototypes/",
"url": "/development/prototypes/",
"title": "Prototypes",
- "date_published": "2025-01-20T21:13:03Z",
- "date": "2025-01-20T21:13:03Z"
+ "date_published": "2025-03-15T19:44:39Z",
+ "date": "2025-03-15T19:44:39Z"
}
,
{
"id": "/development/examples/",
"url": "/development/examples/",
"title": "codepen examples",
- "date_published": "2025-01-20T21:13:03Z",
- "date": "2025-01-20T21:13:03Z"
+ "date_published": "2025-03-15T19:44:39Z",
+ "date": "2025-03-15T19:44:39Z"
}
,
{
"id": "/development/code/",
"url": "/development/code/",
"title": "redesign",
- "date_published": "2025-01-20T21:13:03Z",
- "date": "2025-01-20T21:13:03Z"
+ "date_published": "2025-03-15T19:44:39Z",
+ "date": "2025-03-15T19:44:39Z"
}
]
diff --git a/docs/js/icon-component.js b/docs/js/icon-component.js
deleted file mode 100644
index 9378d935..00000000
--- a/docs/js/icon-component.js
+++ /dev/null
@@ -1,131 +0,0 @@
-// Code created using prompts in Claude
-class IconComponent extends HTMLElement {
- static get observedAttributes() {
- return ['name', 'size', 'color'];
- }
-
- // Size mapping
- static sizes = {
- xs: '0.5rem',
- sm: '.75rem',
- md: '1rem',
- lg: '1.5rem',
- xl: '2rem'
- };
-
- // Color mapping
- static colors = {
- current: 'currentColor',
- primary: 'var(--sl-color-neutral-700)',
- secondary: 'var(--sl-color-neutral-500)',
- success: '#16a34a',
- danger: '#dc2626',
- warning: '#ca8a04'
- };
-
- // connectedCallback() {
- // // Load Font Awesome if not already loaded
- // if (!document.querySelector('#font-awesome-css')) {
- // const link = document.createElement('link');
- // link.id = 'font-awesome-css';
- // link.rel = 'stylesheet';
- // link.href = '/css/fontawesome.css';
- // document.head.appendChild(link);
- // }
- // this.render();
- // }
-
- attributeChangedCallback() {
- this.render();
- }
-
- render() {
- const name = this.getAttribute('name') || 'star';
- const size = this.getAttribute('size') || 'md';
- const color = this.getAttribute('color') || 'current';
- const type = this.getAttribute('type') || 'sharp';
- const weight = this.getAttribute('weight') || 'regular';
-
- const fontSize = IconComponent.sizes[size];
- const iconColor = IconComponent.colors[color];
-
- this.innerHTML = ''; // Clear existing content
-
- // Set component styles
- // this.style.display = 'inline-block';
- this.style.width = fontSize;
- this.style.height = fontSize;
- this.style.color = iconColor;
-
- // Create the icon element
- const icon = document.createElement('i');
- icon.className = `fa-${type} fa-${weight} fa-${name}`;
- icon.style.fontSize = fontSize;
- icon.setAttribute('aria-hidden', 'true');
-
- this.appendChild(icon);
- }
-}
-
-// Register the custom element
-customElements.define('fa-icon', IconComponent);
-//
-
-// Icon Duo for fa-duotone icons
-class IconDuo extends HTMLElement {
- static get observedAttributes() {
- return ['name', 'size', 'color'];
- }
- // Size mapping
- static sizes = {
- xs: '0.5rem',
- sm: '.75rem',
- md: '1rem',
- lg: '1.5rem',
- xl: '2rem'
- };
- // Color mapping
- static colors = {
- current: 'currentColor',
- primary: 'var(--sl-color-neutral-700)',
- secondary: 'var(--sl-color-neutral-500)',
- success: '#16a34a',
- danger: '#dc2626',
- warning: '#ca8a04'
- };
- attributeChangedCallback() {
- this.render();
- }
-
- render() {
- const name = this.getAttribute('name') || 'star';
- const size = this.getAttribute('size') || 'md';
- const color = this.getAttribute('color') || 'current';
- const weight = this.getAttribute('weight') || 'solid';
-
- const fontSize = IconComponent.sizes[size];
- const iconColor = IconComponent.colors[color];
-
- this.innerHTML = ''; // Clear existing content
-
- // Set component styles
- // this.style.display = 'inline-block';
- this.style.width = fontSize;
- this.style.height = fontSize;
- this.style.color = iconColor;
-
- // Create the icon element
- const icon = document.createElement('i');
- icon.className = `fa-sharp-duotone fa-${weight} fa-${name}`;
- icon.style.fontSize = fontSize;
- icon.setAttribute('aria-hidden', 'true');
-
- this.appendChild(icon);
- }
-}
-
-customElements.define('icon-duo', IconDuo);
-
-//
-// Add a custom color to the duotone icon by adding a style attribute with either --fa-primary-color or --fa-secondary-color
-// h3{margin-bottom:var(--space-md,1rem);padding-bottom:var(--space-md,1rem);border-bottom:var(--border-thin,2px) solid var(--earth-sand)}.card p:last-child,.card ul:last-child,.card ol:last-child{margin-bottom:0}.prose-section .card-shadow{background:var(--earth-cream);border-radius:var(--radius-lg,16px);padding:var(--space-md,1.5rem);box-shadow:10px 10px 0 var(--shadow-heavy);border:none}.prose-section .card-shadow>h3{margin-bottom:var(--space-md,1rem);padding-bottom:var(--space-md,1rem);border-bottom:var(--border-thin,2px) solid var(--earth-brown)}.prose-section .card-basic{background:var(--earth-sand);border:4px solid var(--earth-brown);border-radius:var(--radius-lg,16px);padding:var(--space-md,1.5rem);box-shadow:6px 6px 0 var(--shadow-heavy);transition:transform .3s}.prose-section .card-basic>h3{margin-bottom:var(--space-md,1rem);padding-bottom:var(--space-md,1rem);border-bottom:var(--border-thin,2px) solid var(--earth-brown)}blockquote{color:var(--text-primary);margin:var(--space-lg,1.5rem);padding:var(--space-lg,1.5rem);background:var(--earth-sand-light);border-left:var(--border-medium) solid var(--accent-coral);font-size:max(1rem,min(1.5vw,1.1rem));font-weight:600;line-height:1.6}
\ No newline at end of file
+.cards-row{gap:var(--space-lg,1.5rem);-ms-flex-flow:wrap;flex-flow:wrap;display:-ms-flexbox;display:flex}.prose-section:nth-child(2){margin-top:0}.prose-section .card,section .card{margin-bottom:var(--space-lg,1.5rem)}.card h2,.card h3,.card h4{margin-top:0;margin-bottom:var(--space-sm,.75rem)}.card>h3{margin-bottom:var(--space-md,1rem);padding-bottom:var(--space-md,1rem);border-bottom:var(--border-thin,2px) solid var(--earth-sand)}.card p:last-child,.card ul:last-child,.card ol:last-child{margin-bottom:0}.prose-section .card-shadow{background:var(--earth-cream);border-radius:var(--radius-lg,16px);padding:var(--space-md,1.5rem);box-shadow:10px 10px 0 var(--shadow-heavy);border:none}.prose-section .card-shadow>h3{margin-bottom:var(--space-md,1rem);padding-bottom:var(--space-md,1rem);border-bottom:var(--border-thin,2px) solid var(--earth-brown)}.prose-section .card-basic{background:var(--earth-sand);border:4px solid var(--earth-brown);border-radius:var(--radius-lg,16px);padding:var(--space-md,1.5rem);box-shadow:6px 6px 0 var(--shadow-heavy);transition:transform .3s}.prose-section .card-basic>h3{margin-bottom:var(--space-md,1rem);padding-bottom:var(--space-md,1rem);border-bottom:var(--border-thin,2px) solid var(--earth-brown)}.prose-section blockquote{color:var(--text-primary);margin:var(--space-lg,1.5rem);padding:var(--space-lg,1.5rem);background:var(--earth-sand-light);border-left:var(--border-medium) solid var(--accent-coral);font-size:max(1rem,min(1.5vw,1.1rem));font-weight:600;line-height:1.6}
\ No newline at end of file
diff --git a/docs/sass/style.css b/docs/sass/style.css
index ed4557cf..8c3cad21 100644
--- a/docs/sass/style.css
+++ b/docs/sass/style.css
@@ -1 +1 @@
-:root{--font-family-sans:"Inter", system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", roboto, "Helvetica Neue", arial, sans-serif;--font-family-serif:"Playfair Display", serif;--font-family-mono:"Fira Code", "Courier New", courier, monospace;--font-family-heading:"Pirata One", cursive;--white:#f0f0f0;--black:#010101;--earth-dark:#2d1f12;--earth-brown:#4a3426;--earth-sage:#5a6b4f;--earth-sand:#c9b89a;--earth-cream:#f5f1e8;--accent-coral:#d35f3d;--accent-coral-dark:#b34a2d;--text-primary:#2d1f12;--text-secondary:#4a3426;--text-muted:#6b5d52;--shadow:rgba(45,31,18,.15);--shadow-heavy:rgba(45,31,18,.25);--shadow-light:rgba(45,31,18,.08);--bg-canvas:var(--earth-cream);--border-brown:var(--earth-brown);--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:2rem;--font-size-4xl:2.5rem;--font-size-5xl:3rem;--font-size-6xl:4rem;--space-2xs:.25rem;--space-xs:.5rem;--space-sm:.75rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:6rem;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-pill:50px;--border-thin:2px;--border-medium:4px;--border-thick:6px;--border-extra-thick:8px}*{box-sizing:border-box;margin:0;padding:0}:focus-visible{outline:var(--border-thin) solid var(--accent-coral);outline-offset:2px}html{scroll-behavior:smooth}body{font-family:var(--font-family-sans);background:linear-gradient(135deg, var(--earth-cream) 0%, #e8dcc8 100%);color:var(--text-primary);min-height:100vh;line-height:1.6;position:relative}html::-webkit-scrollbar{width:16px}::-webkit-scrollbar{width:16px}html::-webkit-scrollbar-thumb{background:linear-gradient(var(--accent-coral-dark), var(--accent-coral));background-clip:content-box;border:2px solid transparent;border-radius:2rem}::-webkit-scrollbar-thumb{background:linear-gradient(var(--accent-coral-dark), var(--accent-coral));background-clip:content-box;border:2px solid transparent;border-radius:2rem}html::-webkit-scrollbar-track{border:1px solid var(--earth-sage);background:0 0;border-radius:2rem;padding:0 2px}::-webkit-scrollbar-track{border:1px solid var(--earth-sage);background:0 0;border-radius:2rem;padding:0 2px}@media (prefers-reduced-motion:reduce){.animated-element{opacity:1;transition:none;animation:none}body{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.display-none,.d-none{display:none!important}.hero{text-align:center;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;max-width:900px;margin:0 auto;padding:6rem 2rem;display:-ms-flexbox;display:flex}.rounded{border-radius:var(--radius-xl,20px)!important}.circle{border-radius:999px!important;padding:1rem!important}.fade-in{opacity:0;visibility:hidden;transition:opacity .5s ease-in,visibility 0s linear .5s}.fade-in.show,.show{opacity:1;visibility:visible;transition-delay:0s}.hide{opacity:0;visibility:hidden;transition:opacity .5s ease-in,visibility 0s linear .5s}.hide-on-screen{display:none!important}@media (max-width:768px){.hero h1{font-size:var(--font-size-5xl,3rem)}.no-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.hide-on-mobile{display:none!important}.work-grid,.callouts-grid{grid-template-columns:1fr}h2{font-size:var(--font-size-3xl,2rem)}}figcaption{font-size:var(--font-size-sm,.875rem);color:var(--text-secondary);text-align:center;font-style:italic;line-height:1.4}.arrows{width:60px;height:72px;margin-left:-30px;position:absolute;bottom:20px;left:50%}.arrows path{stroke:#bfe7fa;fill:transparent;stroke-width:1px;animation:2s infinite arrow}@keyframes arrow{0%{opacity:0}40%{opacity:1}80%{opacity:0}to{opacity:0}}.arrows path.a1{animation-delay:-1s}.arrows path.a2{animation-delay:-.5s}.arrows path.a3{animation-delay:0s}.pirata-one-regular{font-family:Pirata One,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue;font-style:normal;font-weight:400}.inter-400{font-optical-sizing:auto;font-family:Inter,sans-serif;font-style:normal;font-weight:400}.inter-500{font-optical-sizing:auto;font-family:Inter,sans-serif;font-style:normal;font-weight:500}.inter-600{font-optical-sizing:auto;font-family:Inter,sans-serif;font-style:normal;font-weight:600}.inter-700{font-optical-sizing:auto;font-family:Inter,sans-serif;font-style:normal;font-weight:700}.inter-800{font-optical-sizing:auto;font-family:Inter,sans-serif;font-style:normal;font-weight:800}.inter-900{font-optical-sizing:auto;font-family:Inter,sans-serif;font-style:normal;font-weight:900}.playfair-display-400{font-optical-sizing:auto;font-family:Playfair Display,serif;font-style:normal;font-weight:400}.playfair-display-500{font-optical-sizing:auto;font-family:Playfair Display,serif;font-style:normal;font-weight:500}.playfair-display-600{font-optical-sizing:auto;font-family:Playfair Display,serif;font-style:normal;font-weight:600}.playfair-display-700{font-optical-sizing:auto;font-family:Playfair Display,serif;font-style:normal;font-weight:700}.playfair-display-800{font-optical-sizing:auto;font-family:Playfair Display,serif;font-style:normal;font-weight:800}.playfair-display-900{font-optical-sizing:auto;font-family:Playfair Display,serif;font-style:normal;font-weight:900}h1,.text-h1{color:var(--text-primary);letter-spacing:2px;text-shadow:3px 3px 0 var(--accent-coral);font-family:Pirata One,cursive;font-size:max(2.5rem,min(8vw,5rem));line-height:1.2}.text-display{color:var(--text-primary);letter-spacing:2px;text-shadow:3px 3px 0 var(--accent-coral);font-family:Pirata One,cursive;font-size:max(3rem,min(10vw,6rem));line-height:1.1}.hero h1{font-family:var(--font-family-heading);color:var(--text-primary);text-shadow:3px 3px 0 var(--accent-coral);letter-spacing:2px;margin-bottom:1rem;line-height:1.2}h2,.text-h2{color:var(--text-primary);margin-bottom:var(--space-md,1.5rem);font-family:Playfair Display,serif;font-size:max(2rem,min(5vw,3rem));font-weight:700;line-height:1.3}.text-h2.no-underline:after{margin-bottom:var(--space-2xs,.25rem);display:none}h2:after,.text-h2:after{content:"";background:var(--accent-coral);border:3px solid var(--earth-brown);width:100px;height:5px;margin:1rem auto;display:block}h3,.text-h3{color:var(--text-primary);font-family:Playfair Display,serif;font-size:max(1.5rem,min(3vw,2rem));font-weight:600;line-height:1.3}h4,.text-h4{color:var(--text-primary);font-family:Playfair Display,serif;font-size:max(1.25rem,min(2.5vw,1.5rem));font-weight:600;line-height:1.4}h5,.text-h5{color:var(--text-primary);font-family:Inter,sans-serif;font-size:max(1.1rem,min(2vw,1.25rem));font-weight:700;line-height:1.4}h6,.text-h6{color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px;font-family:Inter,sans-serif;font-size:1rem;font-weight:700;line-height:1.4}.text-body-lg{font-size:max(1.1rem,min(1.5vw,1.25rem))!important;line-height:1.7!important}p,.text-body{color:var(--text-primary);padding-bottom:var(--space-xs,.5rem);font-size:max(.95rem,min(1.5vw,1rem));line-height:1.7}p:last-child,.text-body:last-child{margin-bottom:0}.hero p{color:var(--earth-brown);max-width:720px;margin:0 auto;font-size:max(1.1rem,min(2vw,1.25rem))}.card-body p:first-of-type,.card-body .text-body:first-of-type{margin-top:var(--space-md,16px)}.text-body-sm{font-size:max(.85rem,min(1.2vw,.9rem));line-height:1.6}.text-caption{font-size:clamp(var(--space-sm), 1vw, .85rem);color:var(--text-muted);line-height:1.5}.text-callout{color:var(--text-primary);margin:var(--space-lg,1.5rem);padding:var(--space-lg,1.5rem);background:var(--earth-sand-light);border-left:var(--border-medium) solid var(--accent-coral);font-size:max(1rem,min(1.5vw,1.1rem));font-weight:600;line-height:1.6}code,.code{font-family:var(--font-family-mono);font-size:max(.85rem,min(1vw,.9rem))}code.code-inline,.code.code-inline{background:var(--earth-sand);border-radius:var(--radius-sm);padding:.1rem .3rem}.code-block{background:var(--earth-sand);border-radius:var(--radius-md);border:var(--border-thin) solid var(--earth-sage);padding:1rem;font-size:max(.85rem,min(1vw,.9rem));display:block;overflow-x:auto}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.text-accent{color:var(--accent-coral)}.text-semibold{font-weight:600}.text-bold{font-weight:700}.text-center{text-align:center}.lead,.text-lead{color:var(--text-secondary);font-size:max(1.1rem,min(2vw,1.35rem));line-height:1.7}a,.link{color:var(--earth-sage);border-bottom:1px solid var(--earth-sage);font-weight:var(--font-weight-semibold,600);text-decoration:none;transition:all .2s}a:hover,a:focus,.link:hover,.link:focus{color:var(--earth-brown);border-bottom-color:var(--earth-brown)}.link-brackets{margin-left:var(--space-md)!important}.link-brackets:after{content:"]";color:var(--earth-sage);margin-left:.2rem;transition:all .2s;position:absolute}.link-brackets:before{content:"[";color:var(--earth-sage);margin-left:-.8rem;transition:all .2s;position:absolute}.link-brackets:hover:after,.link-brackets:hover:before,.link-brackets:focus:after,.link-brackets:focus:before{color:var(--accent-coral)}blockquote,.blockquote{border-left:var(--border-thin) solid var(--earth-brown);padding-left:var(--space-md,1rem);margin:var(--space-lg,1.5rem) 0;color:var(--text-secondary);font-style:italic}.mb-1{margin-bottom:var(--space-2xs)!important}.mb-2{margin-bottom:var(--space-xs)!important}.mb-3{margin-bottom:var(--space-sm)!important}.mb-4{margin-bottom:var(--space-md)!important}.mb-5{margin-bottom:var(--space-xl)!important}.mt-1{margin-top:var(--space-2xs)!important}.mt-2{margin-top:var(--space-xs)!important}.mt-3{margin-top:var(--space-sm)!important}.mt-4{margin-top:var(--space-md)!important}.mt-5{margin-top:var(--space-xl)!important}.ml-1{margin-left:var(--space-2xs)!important}.ml-2{margin-left:var(--space-xs)!important}.ml-3{margin-left:var(--space-sm)!important}.ml-4{margin-left:var(--space-md)!important}.ml-5{margin-left:var(--space-xl)!important}.mr-1{margin-right:var(--space-2xs)!important}.mr-2{margin-right:var(--space-xs)!important}.mr-3{margin-right:var(--space-sm)!important}.mr-4{margin-right:var(--space-md)!important}.mr-5{margin-right:var(--space-xl)!important}.p-1{padding:var(--space-2xs)!important}.p-2{padding:var(--space-xs)!important}.p-3{padding:var(--space-sm)!important}.p-4{padding:var(--space-md)!important}.p-5{padding:var(--space-xl)!important}.pt-1{padding-top:var(--space-2xs)!important}.pt-2{padding-top:var(--space-xs)!important}.pt-3{padding-top:var(--space-sm)!important}.pt-4{padding-top:var(--space-md)!important}.pt-5{padding-top:var(--space-xl)!important}.pb-1{padding-bottom:var(--space-2xs)!important}.pb-2{padding-bottom:var(--space-xs)!important}.pb-3{padding-bottom:var(--space-sm)!important}.pb-4{padding-bottom:var(--space-md)!important}.pb-5{padding-bottom:var(--space-xl)!important}.pl-1{padding-left:var(--space-2xs)!important}.pl-2{padding-left:var(--space-xs)!important}.pl-3{padding-left:var(--space-sm)!important}.pl-4{padding-left:var(--space-md)!important}.pl-5{padding-left:var(--space-xl)!important}.pr-1{padding-right:var(--space-2xs)!important}.pr-2{padding-right:var(--space-xs)!important}.pr-3{padding-right:var(--space-sm)!important}.pr-4{padding-right:var(--space-md)!important}.pr-5{padding-right:var(--space-xl)!important}section{max-width:1200px;padding:var(--space-3xl,6rem) var(--space-lg,2rem);margin:0 auto}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.row{gap:var(--space-lg,2rem);-ms-flex-wrap:wrap;flex-wrap:wrap;display:-ms-flexbox;display:flex}@media (min-width:768px){.row{gap:var(--space-sm,.5rem)}.card-body .row{gap:0}}.button-row{gap:1rem}.no-wrap{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.d-flex{display:-ms-flexbox;display:flex}.flex-column{-ms-flex-direction:column;flex-direction:column}.align-items-center{-ms-flex-align:center;align-items:center}.work-grid{gap:var(--space-lg,2rem);margin-bottom:var(--space-lg,2rem);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}.divider{width:50%;height:var(--space-md,1.5rem);background:var(--accent-coral);border:var(--border-medium,4px) outset var(--earth-dark);margin:0 auto;display:block}.divider.vertical{width:var(--space-2xs,.25rem);background:var(--earth-dark);border-radius:var(--radius-sm);height:100%;margin:0;border:none!important}ul,ol,.card-body ul,.card-body ol,ul.list,ol.list{margin-left:var(--space-lg)!important;padding-left:var(--space-md)!important}.highlight-block{-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex}.header-highlight{text-align:center;margin:var(--space-md) auto;padding:var(--space-md);width:100%}nav{z-index:1000;backdrop-filter:blur(24px);filter:url(#lensFilter)saturate(120%)brightness(1.15);border:var(--border-medium,4px) solid var(--earth-brown);padding:var(--space-sm) 2rem;box-shadow:0 8px 24px var(--shadow-heavy);background:rgba(245,241,232,.5);border-radius:50px;position:fixed;top:2rem;left:50%;transform:translate(-50%)}.main-nav{width:fit-content;margin:0 auto;position:sticky;top:2rem;left:0;right:0;transform:none!important}nav ul{-ms-flex-pack:center;justify-content:center;gap:2rem;list-style:none;display:-ms-flexbox;display:flex;margin-left:0!important;padding-left:0!important}nav a{color:var(--text-primary);padding:var(--space-2xs) var(--space-xs,.5rem);border-bottom:none;font-size:.95rem;font-weight:500;text-decoration:none;transition:color .3s}nav a:hover,nav a:focus{color:var(--accent-coral);outline:var(--border-thin) solid var(--accent-coral);outline-offset:2px}nav a.active{color:var(--accent-coral)}nav a.sub-page{outline:var(--border-thin) solid var(--text-secondary);outline-offset:2px}nav a.sub-page:hover{outline-color:var(--accent-coral)}@media (max-width:768px){nav{top:var(--space-sm,1rem)!important;padding:var(--space-xs,.5rem) var(--space-sm,1rem)!important;margin:0 auto!important}nav ul{gap:var(--space-sm,1rem)}}footer{background:var(--earth-dark);color:var(--earth-cream);padding:var(--space-2xl,3rem) var(--space-xl,2rem);margin-top:var(--space-3xl,6rem);border-top:var(--border-extra-thick,8px) solid var(--earth-brown);box-shadow:0 -10px 30px var(--shadow)}.footer-content{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:3rem;max-width:1200px;margin:0 auto;display:grid}.footer-section h3{color:var(--accent-coral);margin-bottom:var(--space-md,1rem);font-family:Playfair Display,serif;font-size:max(1.2rem,min(2vw,1.5rem))}.footer-section h4{margin-bottom:var(--space-md,1rem);font-family:Playfair Display,serif;font-size:max(1.1rem,min(1.25vw,1.125rem));color:rgba(255,255,255,.5)!important}.footer-section p,.footer-section li{color:var(--earth-cream);margin-bottom:var(--space-xs,.5rem);line-height:1.6}.footer-section ul{padding:0;list-style:none}.footer-section li{margin-bottom:var(--space-xs,.5rem)}.footer-bottom{text-align:center;margin-top:var(--space-2xl,3rem);padding-top:var(--space-xl,2rem);border-top:var(--border-medium,4px) solid var(--earth-brown);color:var(--earth-sand)}.footer-bottom p{font-size:var(--font-size-sm);color:var(--earth-cream);margin:0}.footer-section a,.footer-bottom a{color:var(--earth-cream);text-decoration:underline}.footer-section a:hover,.footer-bottom a:hover{color:var(--accent-coral)}.badge{padding:var(--space-2xs,.25rem) var(--space-sm,.75rem);background:var(--earth-sage);color:var(--earth-cream);border:var(--border-thin,2px) solid var(--earth-brown);border-radius:var(--radius-pill);font-size:.85rem;font-weight:600;display:inline-block}.badge-accent{background:var(--accent-coral-dark)}.badge-outline{color:inherit;background:0 0}.badges,.row-badges{gap:var(--space-2xs,.25rem);-ms-flex-wrap:wrap;flex-wrap:wrap;display:-ms-flexbox;display:flex}.btn{padding:var(--space-sm,.75rem) var(--space-lg,1.5rem);font-family:var(--font-family-sans);font-size:var(--font-size-md,1rem);border-radius:var(--radius-md,12px);cursor:pointer;text-align:center;border:none;font-weight:600;text-decoration:none;transition:all .2s;display:inline-block}.btn:hover,.btn:focus{box-shadow:2px 2px 0 var(--earth-brown);transform:translate(2px,2px)}.btn-primary{background:var(--accent-coral-dark);color:var(--white);border:var(--border-medium,4px) solid var(--earth-brown);box-shadow:4px 4px 0 var(--earth-brown)}.btn-primary:hover,.btn-primary:focus{background:var(--accent-coral-dark);color:var(--white)}.btn-secondary{background:var(--earth-cream);color:var(--text-primary);border:var(--border-medium,4px) solid var(--earth-brown);box-shadow:4px 4px 0 var(--earth-sage)}.btn-secondary:hover,.btn-secondary:focus{background:var(--earth-sand);color:var(--text-primary);box-shadow:2px 2px 0 var(--earth-sage);outline:var(--border-thin) solid var(--earth-dark);transform:translate(2px,2px)}.btn-outline{backdrop-filter:blur(24px);filter:url(#lensFilter)saturate(120%)brightness(1.15);color:var(--text-primary)!important;border:var(--border-medium,4px) solid var(--earth-brown)!important;box-shadow:none!important;background:rgba(255,255,255,.5)!important}.btn-outline:hover,.btn-outline:focus{color:var(--earth-cream);text-decoration:underline}.btn-sm{padding:var(--space-xs,.5rem) var(--space-md,1rem)!important;border-width:var(--border-thin)!important;font-size:.9rem!important}.btn-lg{padding:var(--space-md,1rem) var(--space-xl,2rem)!important;font-size:1.1rem!important}.skip-link{background:var(--accent-coral);color:var(--white);padding:var(--space-sm,.75rem) var(--space-lg,1.5rem);border:var(--border-medium,4px) solid var(--earth-brown);z-index:2000;clip:rect(0, 0, 0, 0);font-weight:600;text-decoration:none;position:absolute;top:-100px;left:0;overflow:hidden}.skip-link:focus{clip:auto;top:1rem;left:1rem;overflow:visible}.social-links{-ms-flex-wrap:wrap;flex-wrap:wrap;gap:1rem;display:-ms-flexbox;display:flex}.social-link{padding:var(--space-xs,.5rem) var(--space-md,1rem);background:var(--earth-sage);color:var(--white);border:var(--border-medium,4px) solid var(--earth-sand);border-radius:8px;font-size:.95rem;font-weight:500;transition:all .3s;display:inline-block;text-decoration:none!important}.social-link:hover,.social-link:focus{background:var(--accent-coral);transform:translateY(-2px);color:var(--white)!important}.card{background:var(--earth-cream);border:var(--border-thick,6px) solid var(--earth-brown);border-radius:var(--radius-xl,20px);padding:var(--space-lg,1.5rem);box-shadow:8px 8px 0 var(--shadow-heavy);transition:transform .3s,box-shadow .3s}.card:hover{box-shadow:12px 12px 0 var(--shadow-heavy);transform:translateY(-5px)}.card:focus-within{box-shadow:12px 12px 0 var(--shadow-heavy);transform:translateY(-5px)}.card-layered{background:var(--earth-cream);border:var(--border-thick,6px) solid var(--earth-brown);border-radius:var(--radius-xl,20px);padding:var(--space-xl,2rem);box-shadow:12px 12px 0 var(--earth-sage), 12px 12px 0 5px var(--earth-brown)}.card-shadow{background:var(--earth-cream);border-radius:var(--radius-lg,16px);padding:var(--space-md,1.5rem);box-shadow:10px 10px 0 var(--shadow-heavy);border:none}.card-accent{background:var(--earth-cream);border:var(--border-extra-thick,8px) solid var(--earth-brown);border-radius:var(--radius-xl,20px);box-shadow:16px 16px 0 var(--accent-coral), 16px 16px 0 6px var(--earth-brown);overflow:hidden}.card-flex{-ms-flex-direction:column;flex-direction:column;display:-ms-flexbox;display:flex}.card-flex p{-ms-flex:1 0;flex:1 0}.card-with-columns .row{-ms-flex-align:start;align-items:flex-start;gap:var(--space-md,1rem);-ms-flex-item-align:stretch;align-self:stretch;display:-ms-flexbox;display:flex}.card-with-columns .column{-ms-flex:1 0 0;flex:1 0 0;-ms-flex-item-align:stretch;align-self:stretch;-ms-flex-align:start;align-items:flex-start;display:-ms-flexbox;display:flex}.card-header{margin-bottom:var(--space-md,1rem);padding-bottom:var(--space-md,1rem);border-bottom:var(--border-thin,2px) solid var(--earth-sand)}.card-body{margin-bottom:var(--space-md)}.card-body img{object-fit:cover;width:100%}@media (min-width:768px){.img-thumbnail{max-width:50%}}.card-body:last-child{margin-bottom:0}.card-footer{margin-top:var(--space-md,1rem);padding-top:var(--space-md,1rem);border-top:var(--border-thin,2px) solid var(--earth-sand)}.showcase-content{padding:var(--space-lg,2rem)}.showcase-content h3{font-family:var(--font-family-serif);color:var(--text-primary);margin-bottom:var(--space-sm,1rem);font-size:max(1.3rem,min(2.5vw,1.8rem))}.showcase-content p{color:var(--text-secondary);margin-bottom:var(--space-md,1.5rem);font-size:max(.95rem,min(1.5vw,1rem))}.showcase-small{background:var(--earth-sand);border:4px solid var(--earth-brown);border-radius:var(--radius-lg,16px);padding:var(--space-md,1.5rem);box-shadow:6px 6px 0 var(--shadow-heavy);transition:transform .3s}.showcase-small:hover{transform:translateY(-4px)}.showcase-small:focus-within{transform:translateY(-4px)}.showcase-small h4{font-family:var(--font-family-serif);color:var(--text-primary);margin-bottom:var(--space-xs,.5rem);font-size:max(1.1rem,min(2vw,1.3rem))}.showcase-small p{color:var(--text-secondary);font-size:max(.9rem,min(1.5vw,.95rem))}.about-card{background:var(--earth-cream);border:var(--border-thick,6px) solid var(--earth-brown);padding:var(--space-2xl,3rem);border-radius:var(--border-radius-xl,20px);box-shadow:12px 12px 0 var(--earth-sage), 12px 12px 0 5px var(--earth-brown);margin:0 auto}@media (max-width:768px){.about-card{box-shadow:6px 6px 0 var(--earth-sage), 6px 6px 0 4px var(--earth-brown);padding:var(--space-md,1rem)}.about-grid{grid-template-columns:1fr!important}}.about-card p{color:var(--text-primary);margin-bottom:var(--space-lg,1.5rem);font-size:max(1rem,min(1.5vw,1.1rem));line-height:1.8}.about-card p:last-child{margin-bottom:0}.about-grid{gap:var(--space-xl,2rem);margin-top:var(--space-xl,2rem);grid-template-columns:repeat(auto-fit,minmax(350px,1fr));display:grid}.showcase-large{background:var(--earth-cream);border:var(--border-thick,6px) solid var(--earth-brown);border-radius:var(--radius-xl,20px);box-shadow:12px 12px 0 var(--accent-coral), 12px 12px 0 6px var(--earth-brown);transition:transform .3s;overflow:hidden}@media (max-width:768px){.showcase-large{box-shadow:6px 6px 0 var(--accent-coral), 6px 6px 0 4px var(--earth-brown)}}.showcase-large:hover{transform:translateY(-8px)}.showcase-large:focus-within{transform:translateY(-8px)}.showcase-image{background:linear-gradient(135deg, var(--earth-sage) 0%, var(--earth-sand) 100%);width:100%;height:300px;padding:var(--space-md,1rem);font-size:var(--font-size-5xl,3rem);color:var(--earth-cream);border-bottom:var(--border-thick,6px) solid var(--earth-brown);object-fit:contain;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex}.showcase-image-dark{background:linear-gradient(135deg, var(--black) 0%, var(--earth-dark) 100%)}.small-showcase-cards{gap:var(--space-md,1.5rem);margin-top:var(--space-sm,1rem);grid-column:1/-1;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));display:grid}.callouts-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;margin-top:2rem;display:grid}.callout{background:var(--earth-cream);border:var(--border-thick,6px) solid var(--accent-coral-dark);border-radius:var(--radius-xl,20px);box-shadow:8px 8px 0 var(--shadow-heavy);-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:end;align-items:flex-end;padding:2rem;transition:transform .3s,box-shadow .3s;display:-ms-flexbox;display:flex;position:relative}.callout:hover{box-shadow:12px 12px 0 var(--shadow-heavy);transform:translateY(-5px)}.callout:focus-within{box-shadow:12px 12px 0 var(--shadow-heavy);transform:translateY(-5px)}.callout:before{content:"\"";font-family:var(--font-family-serif);font-size:var(--font-size-6xl,4rem);color:var(--accent-coral);line-height:1;position:absolute;top:10px;left:20px}.callout-text{margin-bottom:var(--space-md,1.5rem);padding-top:var(--space-sm,1rem);color:var(--text-primary);font-style:italic}.callout-author{color:var(--text-primary);font-weight:600;display:block}.callout-role{font-size:var(--font-size-sm,.9rem);color:var(--text-secondary)}.card-image{background:var(--bg-canvas,#f5f1e8);border-radius:var(--radius-xl,20px);padding:var(--space-lg,1.5rem);border:var(--border-medium,4px) solid var(--border-border,#4a3426);box-shadow:6px 6px 0 0 var(--shadow-light,rgba(45,31,18,.08));-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;transition:transform .3s,box-shadow .3s;display:-ms-flexbox;display:flex}.card-image .image-top{border-bottom:var(--border-medium) solid var(--border-brown,#4a3426);background:var(--bg-canvas,#f5f1e8);border:var(--border-extra-thick,8px) solid #000;border-radius:var(--radius-lg,16px);box-shadow:0 0 12px var(--shadow-heavy,rgba(45,31,18,.25));margin-bottom:var(--space-xs,.5rem);object-fit:cover;-ms-flex-direction:column;flex-direction:column;-ms-flex-item-align:stretch;align-self:stretch;-ms-flex-align:start;align-items:flex-start;max-height:300px;display:-ms-flexbox;display:flex}.card-image .card-content{padding:var(--space-md) var(--space-xl) var(--space-xl) var(--space-xl);-ms-flex-direction:column;flex-direction:column;-ms-flex-item-align:stretch;align-self:stretch;-ms-flex-align:start;align-items:start;display:-ms-flexbox;display:flex}.card-image>.card-body{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:start;align-items:flex-start;height:100%;display:-ms-flexbox;display:flex}h3.two-line-header{height:82px;min-height:82px}.gallery{--size:100px;grid-template-columns:repeat(6, var(--size));grid-auto-rows:var(--size);margin-bottom:var(--size);-ms-flex-align:start;align-items:start;justify-items:center;gap:5px;display:grid}.gallery:has(:hover) picture:not(:hover){filter:brightness(.5)contrast(.5)}.gallery:has(:focus) picture:not(:focus){filter:brightness(.5)contrast(.5)}.gallery picture{object-fit:cover;width:calc(var(--size) * 2);height:calc(var(--size) * 2);clip-path:path("M90,10 C100,0 100,0 110,10 190,90 190,90 190,90 200,100 200,100 190,110 190,110 110,190 110,190 100,200 100,200 90,190 90,190 10,110 10,110 0,100 0,100 10,90Z");border-radius:5px;grid-column:auto/span 2;transition:clip-path .25s,filter .75s}.gallery picture:nth-child(5n-1){grid-column:2/span 2}.gallery picture:hover,.gallery picture:focus{clip-path:path("M0,0 C0,0 200,0 200,0 200,0 200,100 200,100 200,100 200,200 200,200 200,200 100,200 100,200 100,200 100,200 0,200 0,200 0,100 0,100 0,100 0,100 0,100Z");z-index:1;transition:clip-path .25s,filter .25s}.gallery picture:focus{outline-offset:-5px;outline:1px dashed #000}.carousel>input{clip:rect(1px, 1px, 1px, 1px);clip-path:inset(50%);width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.carousel>input:nth-of-type(15):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-1400%}.carousel>input:nth-of-type(14):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-1300%}.carousel>input:nth-of-type(13):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-1200%}.carousel>input:nth-of-type(12):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-1100%}.carousel>input:nth-of-type(11):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-1000%}.carousel>input:nth-of-type(10):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-900%}.carousel>input:nth-of-type(9):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-800%}.carousel>input:nth-of-type(8):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-700%}.carousel>input:nth-of-type(7):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-600%}.carousel>input:nth-of-type(6):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-500%}.carousel>input:nth-of-type(5):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-400%}.carousel>input:nth-of-type(4):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-300%}.carousel>input:nth-of-type(3):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-200%}.carousel>input:nth-of-type(2):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-100%}.carousel>input:first-of-type:checked~.carousel__slides .carousel__slide:first-of-type{margin-left:0%}.carousel>input:first-of-type:checked~.carousel__thumbnails li:first-of-type,.carousel>input:nth-of-type(2):checked~.carousel__thumbnails li:nth-of-type(2),.carousel>input:nth-of-type(3):checked~.carousel__thumbnails li:nth-of-type(3),.carousel>input:nth-of-type(4):checked~.carousel__thumbnails li:nth-of-type(4),.carousel>input:nth-of-type(5):checked~.carousel__thumbnails li:nth-of-type(5),.carousel>input:nth-of-type(6):checked~.carousel__thumbnails li:nth-of-type(6),.carousel>input:nth-of-type(7):checked~.carousel__thumbnails li:nth-of-type(7),.carousel>input:nth-of-type(8):checked~.carousel__thumbnails li:nth-of-type(8),.carousel>input:nth-of-type(9):checked~.carousel__thumbnails li:nth-of-type(9),.carousel>input:nth-of-type(10):checked~.carousel__thumbnails li:nth-of-type(10),.carousel>input:nth-of-type(11):checked~.carousel__thumbnails li:nth-of-type(11),.carousel>input:nth-of-type(12):checked~.carousel__thumbnails li:nth-of-type(12),.carousel>input:nth-of-type(13):checked~.carousel__thumbnails li:nth-of-type(13),.carousel>input:nth-of-type(14):checked~.carousel__thumbnails li:nth-of-type(14),.carousel>input:nth-of-type(15):checked~.carousel__thumbnails li:nth-of-type(15){box-shadow:0 0 0 5px rgba(0,0,255,.5)}.carousel__slides{z-index:1;white-space:nowrap;box-sizing:border-box;margin:0;padding:0;display:-ms-flexbox;display:flex;position:relative;overflow:hidden}.carousel__slide{vertical-align:top;box-sizing:border-box;white-space:normal;-ms-flex:1 0 100%;flex:1 0 100%;width:100%;height:100%;transition:all .3s ease-out;display:block;position:relative;overflow:hidden}.carousel__slide figure{-ms-flex-direction:column;flex-direction:column;margin:0;display:-ms-flexbox;display:flex}.carousel__slide div{position:relative}.carousel__slide div:before{content:"";width:100%;padding-top:66.6667%;display:block}.carousel__slide div>img{width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.carousel__slide div{width:100%}.carousel__slide img{object-fit:cover;-ms-flex:auto;flex:auto;display:block}.carousel__slide figcaption{-ms-flex:none;flex:none;-ms-flex-item-align:center;align-self:center;width:25%;min-width:150px;padding:20px 20px 0}.carousel__slide .credit{color:rgba(0,0,0,.5);margin-top:1rem;display:block}.carousel__slide.scrollable{overflow-y:scroll}.carousel__thumbnails{margin:0 -10px;padding:0;list-style:none;display:-ms-flexbox;display:flex}.carousel__slides+.carousel__thumbnails{margin-top:20px}.carousel__thumbnails li{-ms-flex:auto;flex:auto;max-width:calc(16.6667% - 20px);margin:0 10px;transition:all .3s ease-in-out}.carousel__thumbnails label{display:block;position:relative}.carousel__thumbnails label:before{content:"";width:100%;padding-top:100%;display:block}.carousel__thumbnails label>img{width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.carousel__thumbnails label:hover,.carousel__thumbnails label:focus{cursor:pointer}.carousel__thumbnails label:hover img,.carousel__thumbnails label:focus img{transition:all .3s ease-in-out;box-shadow:0 0 0 1px rgba(0,0,0,.25)}.carousel__thumbnails img{object-fit:cover;width:100%;height:100%;display:block}
\ No newline at end of file
+:root{--font-family-sans:"Inter", system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", roboto, "Helvetica Neue", arial, sans-serif;--font-family-serif:"Playfair Display", serif;--font-family-mono:"Fira Code", "Courier New", courier, monospace;--font-family-heading:"Pirata One", cursive;--white:#f0f0f0;--black:#010101;--earth-dark:#2d1f12;--earth-brown:#4a3426;--earth-sage:#5a6b4f;--earth-sand:#c9b89a;--earth-sand-light:#e2d8c8;--earth-cream:#f5f1e8;--accent-coral:#d35f3d;--accent-coral-dark:#b34a2d;--text-primary:#2d1f12;--text-secondary:#4a3426;--text-muted:#6b5d52;--shadow:rgba(45,31,18,.15);--shadow-heavy:rgba(45,31,18,.25);--shadow-light:rgba(45,31,18,.08);--bg-canvas:var(--earth-cream);--border-brown:var(--earth-brown);--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:2rem;--font-size-4xl:2.5rem;--font-size-5xl:3rem;--font-size-6xl:4rem;--space-2xs:.25rem;--space-xs:.5rem;--space-sm:.75rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:6rem;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-pill:50px;--border-thin:2px;--border-medium:4px;--border-thick:6px;--border-extra-thick:8px}*{box-sizing:border-box;margin:0;padding:0}:focus-visible{outline:var(--border-thin) solid var(--accent-coral);outline-offset:2px}html{scroll-behavior:smooth}body{font-family:var(--font-family-sans);background:linear-gradient(135deg, var(--earth-cream) 0%, #e8dcc8 100%);color:var(--text-primary);min-height:100vh;line-height:1.6;position:relative}html::-webkit-scrollbar{width:16px}::-webkit-scrollbar{width:16px}html::-webkit-scrollbar-thumb{background:linear-gradient(var(--accent-coral-dark), var(--accent-coral));background-clip:content-box;border:2px solid transparent;border-radius:2rem}::-webkit-scrollbar-thumb{background:linear-gradient(var(--accent-coral-dark), var(--accent-coral));background-clip:content-box;border:2px solid transparent;border-radius:2rem}html::-webkit-scrollbar-track{border:1px solid var(--earth-sage);background:0 0;border-radius:2rem;padding:0 2px}::-webkit-scrollbar-track{border:1px solid var(--earth-sage);background:0 0;border-radius:2rem;padding:0 2px}@media (prefers-reduced-motion:reduce){.animated-element{opacity:1;transition:none;animation:none}body{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.display-none,.d-none{display:none!important}.hero{text-align:center;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;max-width:900px;margin:0 auto;padding:6rem 2rem;display:-ms-flexbox;display:flex}.rounded{border-radius:var(--radius-xl,20px)!important}.circle{border-radius:999px!important;padding:1rem!important}.fade-in{opacity:0;visibility:hidden;transition:opacity .5s ease-in,visibility 0s linear .5s}.fade-in.show,.show{opacity:1;visibility:visible;transition-delay:0s}.hide{opacity:0;visibility:hidden;transition:opacity .5s ease-in,visibility 0s linear .5s}.hide-on-screen{display:none!important}@media (max-width:768px){.hero h1{font-size:var(--font-size-5xl,3rem)}.no-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.hide-on-mobile{display:none!important}.work-grid,.callouts-grid{grid-template-columns:1fr}h2{font-size:var(--font-size-3xl,2rem)}}figcaption{font-size:var(--font-size-sm,.875rem);color:var(--text-secondary);text-align:center;font-style:italic;line-height:1.4}.arrows{width:60px;height:72px;margin-left:-30px;position:absolute;bottom:20px;left:50%}.arrows path{stroke:#bfe7fa;fill:transparent;stroke-width:1px;animation:2s infinite arrow}@keyframes arrow{0%{opacity:0}40%{opacity:1}80%{opacity:0}to{opacity:0}}.arrows path.a1{animation-delay:-1s}.arrows path.a2{animation-delay:-.5s}.arrows path.a3{animation-delay:0s}.pirata-one-regular{font-family:Pirata One,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue;font-style:normal;font-weight:400}.inter-400{font-optical-sizing:auto;font-family:Inter,sans-serif;font-style:normal;font-weight:400}.inter-500{font-optical-sizing:auto;font-family:Inter,sans-serif;font-style:normal;font-weight:500}.inter-600{font-optical-sizing:auto;font-family:Inter,sans-serif;font-style:normal;font-weight:600}.inter-700{font-optical-sizing:auto;font-family:Inter,sans-serif;font-style:normal;font-weight:700}.inter-800{font-optical-sizing:auto;font-family:Inter,sans-serif;font-style:normal;font-weight:800}.inter-900{font-optical-sizing:auto;font-family:Inter,sans-serif;font-style:normal;font-weight:900}.playfair-display-400{font-optical-sizing:auto;font-family:Playfair Display,serif;font-style:normal;font-weight:400}.playfair-display-500{font-optical-sizing:auto;font-family:Playfair Display,serif;font-style:normal;font-weight:500}.playfair-display-600{font-optical-sizing:auto;font-family:Playfair Display,serif;font-style:normal;font-weight:600}.playfair-display-700{font-optical-sizing:auto;font-family:Playfair Display,serif;font-style:normal;font-weight:700}.playfair-display-800{font-optical-sizing:auto;font-family:Playfair Display,serif;font-style:normal;font-weight:800}.playfair-display-900{font-optical-sizing:auto;font-family:Playfair Display,serif;font-style:normal;font-weight:900}h1,.text-h1{color:var(--text-primary);letter-spacing:2px;text-shadow:3px 3px 0 var(--accent-coral);font-family:Pirata One,cursive;font-size:max(2.5rem,min(8vw,5rem));line-height:1.2}.text-display{color:var(--text-primary);letter-spacing:2px;text-shadow:3px 3px 0 var(--accent-coral);font-family:Pirata One,cursive;font-size:max(3rem,min(10vw,6rem));line-height:1.1}.hero h1{font-family:var(--font-family-heading);color:var(--text-primary);text-shadow:3px 3px 0 var(--accent-coral);letter-spacing:2px;margin-bottom:1rem;line-height:1.2}h2,.text-h2{color:var(--text-primary);margin-bottom:var(--space-md,1.5rem);font-family:Playfair Display,serif;font-size:max(2rem,min(5vw,3rem));font-weight:700;line-height:1.3}.text-h2.no-underline:after{margin-bottom:var(--space-2xs,.25rem);display:none}h2:after,.text-h2:after{content:"";background:var(--accent-coral);border:3px solid var(--earth-brown);width:100px;height:5px;margin:1rem auto;display:block}h3,.text-h3{color:var(--text-primary);font-family:Playfair Display,serif;font-size:max(1.5rem,min(3vw,2rem));font-weight:600;line-height:1.3}h4,.text-h4{color:var(--text-primary);font-family:Playfair Display,serif;font-size:max(1.25rem,min(2.5vw,1.5rem));font-weight:600;line-height:1.4}h5,.text-h5{color:var(--text-primary);font-family:Inter,sans-serif;font-size:max(1.1rem,min(2vw,1.25rem));font-weight:700;line-height:1.4}h6,.text-h6{color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px;font-family:Inter,sans-serif;font-size:1rem;font-weight:700;line-height:1.4}.text-body-lg{font-size:max(1.1rem,min(1.5vw,1.25rem))!important;line-height:1.7!important}p,.text-body{color:var(--text-primary);padding-bottom:var(--space-xs,.5rem);font-size:max(.95rem,min(1.5vw,1rem));line-height:1.7}p:last-child,.text-body:last-child{margin-bottom:0}.hero p{color:var(--earth-brown);max-width:720px;margin:0 auto;font-size:max(1.1rem,min(2vw,1.25rem))}.card-body p:first-of-type,.card-body .text-body:first-of-type{margin-top:var(--space-md,16px)}.text-body-sm{font-size:max(.85rem,min(1.2vw,.9rem));line-height:1.6}.text-caption{font-size:clamp(var(--space-sm), 1vw, .85rem);color:var(--text-muted);line-height:1.5}.text-callout{color:var(--text-primary);margin:var(--space-lg,1.5rem);padding:var(--space-lg,1.5rem);background:var(--earth-sand-light);border-left:var(--border-medium) solid var(--accent-coral);font-size:max(1rem,min(1.5vw,1.1rem));font-weight:600;line-height:1.6}code,.code{font-family:var(--font-family-mono);font-size:max(.85rem,min(1vw,.9rem))}code.code-inline,.code.code-inline{background:var(--earth-sand);border-radius:var(--radius-sm);padding:.1rem .3rem}.code-block{background:var(--earth-sand);border-radius:var(--radius-md);border:var(--border-thin) solid var(--earth-sage);padding:1rem;font-size:max(.85rem,min(1vw,.9rem));display:block;overflow-x:auto}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.text-accent{color:var(--accent-coral)}.text-semibold{font-weight:600}.text-bold{font-weight:700}.text-center{text-align:center}.lead,.text-lead{color:var(--text-secondary);font-size:max(1.1rem,min(2vw,1.35rem));line-height:1.7}a,.link{color:var(--earth-sage);border-bottom:1px solid var(--earth-sage);font-weight:var(--font-weight-semibold,600);text-decoration:none;transition:all .2s}a:hover,a:focus,.link:hover,.link:focus{color:var(--earth-brown);border-bottom-color:var(--earth-brown)}.link-brackets{margin-left:var(--space-md)!important}.link-brackets:after{content:"]";color:var(--earth-sage);margin-left:.2rem;transition:all .2s;position:absolute}.link-brackets:before{content:"[";color:var(--earth-sage);margin-left:-.8rem;transition:all .2s;position:absolute}.link-brackets:hover:after,.link-brackets:hover:before,.link-brackets:focus:after,.link-brackets:focus:before{color:var(--accent-coral)}blockquote,.blockquote{border-left:var(--border-thin) solid var(--earth-brown);padding-left:var(--space-md,1rem);margin:var(--space-lg,1.5rem) 0;color:var(--text-secondary);font-style:italic}.mb-1{margin-bottom:var(--space-2xs)!important}.mb-2{margin-bottom:var(--space-xs)!important}.mb-3{margin-bottom:var(--space-sm)!important}.mb-4{margin-bottom:var(--space-md)!important}.mb-5{margin-bottom:var(--space-xl)!important}.mt-1{margin-top:var(--space-2xs)!important}.mt-2{margin-top:var(--space-xs)!important}.mt-3{margin-top:var(--space-sm)!important}.mt-4{margin-top:var(--space-md)!important}.mt-5{margin-top:var(--space-xl)!important}.ml-1{margin-left:var(--space-2xs)!important}.ml-2{margin-left:var(--space-xs)!important}.ml-3{margin-left:var(--space-sm)!important}.ml-4{margin-left:var(--space-md)!important}.ml-5{margin-left:var(--space-xl)!important}.mr-1{margin-right:var(--space-2xs)!important}.mr-2{margin-right:var(--space-xs)!important}.mr-3{margin-right:var(--space-sm)!important}.mr-4{margin-right:var(--space-md)!important}.mr-5{margin-right:var(--space-xl)!important}.p-1{padding:var(--space-2xs)!important}.p-2{padding:var(--space-xs)!important}.p-3{padding:var(--space-sm)!important}.p-4{padding:var(--space-md)!important}.p-5{padding:var(--space-xl)!important}.pt-1{padding-top:var(--space-2xs)!important}.pt-2{padding-top:var(--space-xs)!important}.pt-3{padding-top:var(--space-sm)!important}.pt-4{padding-top:var(--space-md)!important}.pt-5{padding-top:var(--space-xl)!important}.pb-1{padding-bottom:var(--space-2xs)!important}.pb-2{padding-bottom:var(--space-xs)!important}.pb-3{padding-bottom:var(--space-sm)!important}.pb-4{padding-bottom:var(--space-md)!important}.pb-5{padding-bottom:var(--space-xl)!important}.pl-1{padding-left:var(--space-2xs)!important}.pl-2{padding-left:var(--space-xs)!important}.pl-3{padding-left:var(--space-sm)!important}.pl-4{padding-left:var(--space-md)!important}.pl-5{padding-left:var(--space-xl)!important}.pr-1{padding-right:var(--space-2xs)!important}.pr-2{padding-right:var(--space-xs)!important}.pr-3{padding-right:var(--space-sm)!important}.pr-4{padding-right:var(--space-md)!important}.pr-5{padding-right:var(--space-xl)!important}section{max-width:1200px;padding:var(--space-3xl,6rem) var(--space-lg,2rem);margin:0 auto}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.row{gap:var(--space-lg,2rem);-ms-flex-wrap:wrap;flex-wrap:wrap;display:-ms-flexbox;display:flex}@media (min-width:768px){.row{gap:var(--space-sm,.5rem)}.card-body .row{gap:0}}.button-row{gap:1rem}.no-wrap{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.d-flex{display:-ms-flexbox;display:flex}.flex-column{-ms-flex-direction:column;flex-direction:column}.align-items-center{-ms-flex-align:center;align-items:center}.work-grid{gap:var(--space-lg,2rem);margin-bottom:var(--space-lg,2rem);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}.divider{width:50%;height:var(--space-md,1.5rem);background:var(--accent-coral);border:var(--border-medium,4px) outset var(--earth-dark);margin:0 auto;display:block}.divider.vertical{width:var(--space-2xs,.25rem);background:var(--earth-dark);border-radius:var(--radius-sm);height:100%;margin:0;border:none!important}ul,ol,.card-body ul,.card-body ol,ul.list,ol.list{margin-left:var(--space-lg)!important;padding-left:var(--space-md)!important}.highlight-block{-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex}.header-highlight{text-align:center;margin:var(--space-md) auto;padding:var(--space-md);width:100%}nav{z-index:1000;backdrop-filter:blur(24px);filter:url(#lensFilter)saturate(120%)brightness(1.15);border:var(--border-medium,4px) solid var(--earth-brown);padding:var(--space-sm) 2rem;box-shadow:0 8px 24px var(--shadow-heavy);background:rgba(245,241,232,.5);border-radius:50px;position:fixed;top:2rem;left:50%;transform:translate(-50%)}.main-nav{width:fit-content;margin:0 auto;position:sticky;top:2rem;left:0;right:0;transform:none!important}nav ul{-ms-flex-pack:center;justify-content:center;gap:2rem;list-style:none;display:-ms-flexbox;display:flex;margin-left:0!important;padding-left:0!important}nav a{color:var(--text-primary);padding:var(--space-2xs) var(--space-xs,.5rem);border-bottom:none;font-size:.95rem;font-weight:500;text-decoration:none;transition:color .3s}nav a:hover,nav a:focus{color:var(--accent-coral);outline:var(--border-thin) solid var(--accent-coral);outline-offset:2px}nav a.active{color:var(--accent-coral)}nav a.sub-page{outline:var(--border-thin) solid var(--text-secondary);outline-offset:2px}nav a.sub-page:hover{outline-color:var(--accent-coral)}@media (max-width:768px){nav{top:var(--space-sm,1rem)!important;padding:var(--space-xs,.5rem) var(--space-sm,1rem)!important;margin:0 auto!important}nav ul{gap:var(--space-sm,1rem)}}footer{background:var(--earth-dark);color:var(--earth-cream);padding:var(--space-2xl,3rem) var(--space-xl,2rem);margin-top:var(--space-3xl,6rem);border-top:var(--border-extra-thick,8px) solid var(--earth-brown);box-shadow:0 -10px 30px var(--shadow)}.footer-content{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:3rem;max-width:1200px;margin:0 auto;display:grid}.footer-section h3{color:var(--accent-coral);margin-bottom:var(--space-md,1rem);font-family:Playfair Display,serif;font-size:max(1.2rem,min(2vw,1.5rem))}.footer-section h4{margin-bottom:var(--space-md,1rem);font-family:Playfair Display,serif;font-size:max(1.1rem,min(1.25vw,1.125rem));color:rgba(255,255,255,.5)!important}.footer-section p,.footer-section li{color:var(--earth-cream);margin-bottom:var(--space-xs,.5rem);line-height:1.6}.footer-section ul{padding:0;list-style:none}.footer-section li{margin-bottom:var(--space-xs,.5rem)}.footer-bottom{text-align:center;margin-top:var(--space-2xl,3rem);padding-top:var(--space-xl,2rem);border-top:var(--border-medium,4px) solid var(--earth-brown);color:var(--earth-sand)}.footer-bottom p{font-size:var(--font-size-sm);color:var(--earth-cream);margin:0}.footer-section a,.footer-bottom a{color:var(--earth-cream);text-decoration:underline}.footer-section a:hover,.footer-bottom a:hover{color:var(--accent-coral)}.badge{padding:var(--space-2xs,.25rem) var(--space-sm,.75rem);background:var(--earth-sage);color:var(--earth-cream);border:var(--border-thin,2px) solid var(--earth-brown);border-radius:var(--radius-pill);font-size:.85rem;font-weight:600;display:inline-block}.badge-accent{background:var(--accent-coral-dark)}.badge-outline{color:inherit;background:0 0}.badges,.row-badges{gap:var(--space-2xs,.25rem);-ms-flex-wrap:wrap;flex-wrap:wrap;display:-ms-flexbox;display:flex}.btn{padding:var(--space-sm,.75rem) var(--space-lg,1.5rem);font-family:var(--font-family-sans);font-size:var(--font-size-md,1rem);border-radius:var(--radius-md,12px);cursor:pointer;text-align:center;border:none;font-weight:600;text-decoration:none;transition:all .2s;display:inline-block}.btn:hover,.btn:focus{box-shadow:2px 2px 0 var(--earth-brown);transform:translate(2px,2px)}.btn-primary{background:var(--accent-coral-dark);color:var(--white);border:var(--border-medium,4px) solid var(--earth-brown);box-shadow:4px 4px 0 var(--earth-brown)}.btn-primary:hover,.btn-primary:focus{background:var(--accent-coral-dark);color:var(--white)}.btn-secondary{background:var(--earth-cream);color:var(--text-primary);border:var(--border-medium,4px) solid var(--earth-brown);box-shadow:4px 4px 0 var(--earth-sage)}.btn-secondary:hover,.btn-secondary:focus{background:var(--earth-sand);color:var(--text-primary);box-shadow:2px 2px 0 var(--earth-sage);outline:var(--border-thin) solid var(--earth-dark);transform:translate(2px,2px)}.btn-outline{backdrop-filter:blur(24px);filter:url(#lensFilter)saturate(120%)brightness(1.15);color:var(--text-primary)!important;border:var(--border-medium,4px) solid var(--earth-brown)!important;box-shadow:none!important;background:rgba(255,255,255,.5)!important}.btn-outline:hover,.btn-outline:focus{color:var(--earth-cream);text-decoration:underline}.btn-sm{padding:var(--space-xs,.5rem) var(--space-md,1rem)!important;border-width:var(--border-thin)!important;font-size:.9rem!important}.btn-lg{padding:var(--space-md,1rem) var(--space-xl,2rem)!important;font-size:1.1rem!important}.skip-link{background:var(--accent-coral);color:var(--white);padding:var(--space-sm,.75rem) var(--space-lg,1.5rem);border:var(--border-medium,4px) solid var(--earth-brown);z-index:2000;clip:rect(0, 0, 0, 0);font-weight:600;text-decoration:none;position:absolute;top:-100px;left:0;overflow:hidden}.skip-link:focus{clip:auto;top:1rem;left:1rem;overflow:visible}.social-links{-ms-flex-wrap:wrap;flex-wrap:wrap;gap:1rem;display:-ms-flexbox;display:flex}.social-link{padding:var(--space-xs,.5rem) var(--space-md,1rem);background:var(--earth-sage);color:var(--white);border:var(--border-medium,4px) solid var(--earth-sand);border-radius:8px;font-size:.95rem;font-weight:500;transition:all .3s;display:inline-block;text-decoration:none!important}.social-link:hover,.social-link:focus{background:var(--accent-coral);transform:translateY(-2px);color:var(--white)!important}.card,.card-layered,.card-accent,.about-card,.showcase-large{background:var(--earth-cream);border:var(--card-border-width,var(--border-thick,6px)) solid var(--card-border-color,var(--earth-brown));border-radius:var(--radius-xl,20px)}.card-layered,.card-accent,.about-card,.showcase-large{box-shadow:var(--card-shadow-offset,12px) var(--card-shadow-offset,12px) 0 var(--card-shadow-color,var(--earth-sage)), var(--card-shadow-offset,12px) var(--card-shadow-offset,12px) 0 var(--card-shadow-ring-width,5px) var(--earth-brown)}@media (max-width:768px){.about-card,.showcase-large{--card-shadow-offset:6px;--card-shadow-ring-width:4px}}.card{padding:var(--space-lg,1.5rem);box-shadow:8px 8px 0 var(--shadow-heavy);transition:transform .3s,box-shadow .3s}.card:hover{box-shadow:12px 12px 0 var(--shadow-heavy);transform:translateY(-5px)}.card:focus-within{box-shadow:12px 12px 0 var(--shadow-heavy);transform:translateY(-5px)}.card-layered{padding:var(--space-xl,2rem)}.card-shadow{background:var(--earth-cream);border-radius:var(--radius-lg,16px);padding:var(--space-md,1.5rem);box-shadow:10px 10px 0 var(--shadow-heavy);border:none}.card-accent{--card-border-width:var(--border-extra-thick,8px);--card-shadow-offset:16px;--card-shadow-color:var(--accent-coral);--card-shadow-ring-width:6px;overflow:hidden}.card-flex{-ms-flex-direction:column;flex-direction:column;display:-ms-flexbox;display:flex}.card-flex p{-ms-flex:1 0;flex:1 0}.card-with-columns .row{-ms-flex-align:start;align-items:flex-start;gap:var(--space-md,1rem);-ms-flex-item-align:stretch;align-self:stretch;display:-ms-flexbox;display:flex}.card-with-columns .column{-ms-flex:1 0 0;flex:1 0 0;-ms-flex-item-align:stretch;align-self:stretch;-ms-flex-align:start;align-items:flex-start;display:-ms-flexbox;display:flex}.card-header{margin-bottom:var(--space-md,1rem);padding-bottom:var(--space-md,1rem);border-bottom:var(--border-thin,2px) solid var(--earth-sand)}.card-body{margin-bottom:var(--space-md)}.card-body img{object-fit:cover;width:100%}@media (min-width:768px){.img-thumbnail{max-width:50%}}.card-body:last-child{margin-bottom:0}.card-footer{margin-top:var(--space-md,1rem);padding-top:var(--space-md,1rem);border-top:var(--border-thin,2px) solid var(--earth-sand)}.showcase-content{padding:var(--space-lg,2rem)}.showcase-content h3{font-family:var(--font-family-serif);color:var(--text-primary);margin-bottom:var(--space-sm,1rem);font-size:max(1.3rem,min(2.5vw,1.8rem))}.showcase-content p{color:var(--text-secondary);margin-bottom:var(--space-md,1.5rem);font-size:max(.95rem,min(1.5vw,1rem))}.showcase-small{background:var(--earth-sand);border:4px solid var(--earth-brown);border-radius:var(--radius-lg,16px);padding:var(--space-md,1.5rem);box-shadow:6px 6px 0 var(--shadow-heavy);transition:transform .3s}.showcase-small:hover{transform:translateY(-4px)}.showcase-small:focus-within{transform:translateY(-4px)}.showcase-small h4{font-family:var(--font-family-serif);color:var(--text-primary);margin-bottom:var(--space-xs,.5rem);font-size:max(1.1rem,min(2vw,1.3rem))}.showcase-small p{color:var(--text-secondary);font-size:max(.9rem,min(1.5vw,.95rem))}.about-card{padding:var(--space-2xl,3rem);margin:0 auto}@media (max-width:768px){.about-card{padding:var(--space-md,1rem)}.about-grid{grid-template-columns:1fr!important}}.about-card p{color:var(--text-primary);margin-bottom:var(--space-lg,1.5rem);font-size:max(1rem,min(1.5vw,1.1rem));line-height:1.8}.about-card p:last-child{margin-bottom:0}.about-grid{gap:var(--space-xl,2rem);margin-top:var(--space-xl,2rem);grid-template-columns:repeat(auto-fit,minmax(350px,1fr));display:grid}.showcase-large{--card-shadow-color:var(--accent-coral);--card-shadow-ring-width:6px;transition:transform .3s;overflow:hidden}.showcase-large:hover{transform:translateY(-8px)}.showcase-large:focus-within{transform:translateY(-8px)}.showcase-image{background:linear-gradient(135deg, var(--earth-sage) 0%, var(--earth-sand) 100%);width:100%;height:300px;padding:var(--space-md,1rem);font-size:var(--font-size-5xl,3rem);color:var(--earth-cream);border-bottom:var(--border-thick,6px) solid var(--earth-brown);object-fit:contain;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex}.showcase-image-dark{background:linear-gradient(135deg, var(--black) 0%, var(--earth-dark) 100%)}.small-showcase-cards{gap:var(--space-md,1.5rem);margin-top:var(--space-sm,1rem);grid-column:1/-1;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));display:grid}.callouts-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;margin-top:2rem;display:grid}.callout{background:var(--earth-cream);border:var(--border-thick,6px) solid var(--accent-coral-dark);border-radius:var(--radius-xl,20px);box-shadow:8px 8px 0 var(--shadow-heavy);-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:end;align-items:flex-end;padding:2rem;transition:transform .3s,box-shadow .3s;display:-ms-flexbox;display:flex;position:relative}.callout:hover{box-shadow:12px 12px 0 var(--shadow-heavy);transform:translateY(-5px)}.callout:focus-within{box-shadow:12px 12px 0 var(--shadow-heavy);transform:translateY(-5px)}.callout:before{content:"\"";font-family:var(--font-family-serif);font-size:var(--font-size-6xl,4rem);color:var(--accent-coral);line-height:1;position:absolute;top:10px;left:20px}.callout-text{margin-bottom:var(--space-md,1.5rem);padding-top:var(--space-sm,1rem);color:var(--text-primary);font-style:italic}.callout-author{color:var(--text-primary);font-weight:600;display:block}.callout-role{font-size:var(--font-size-sm,.9rem);color:var(--text-secondary)}.card-image{background:var(--bg-canvas,#f5f1e8);border-radius:var(--radius-xl,20px);padding:var(--space-lg,1.5rem);border:var(--border-medium,4px) solid var(--border-border,#4a3426);box-shadow:6px 6px 0 0 var(--shadow-light,rgba(45,31,18,.08));-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;transition:transform .3s,box-shadow .3s;display:-ms-flexbox;display:flex}.card-image .image-top{border-bottom:var(--border-medium) solid var(--border-brown,#4a3426);background:var(--bg-canvas,#f5f1e8);border:var(--border-extra-thick,8px) solid #000;border-radius:var(--radius-lg,16px);box-shadow:0 0 12px var(--shadow-heavy,rgba(45,31,18,.25));margin-bottom:var(--space-xs,.5rem);object-fit:cover;-ms-flex-direction:column;flex-direction:column;-ms-flex-item-align:stretch;align-self:stretch;-ms-flex-align:start;align-items:flex-start;max-height:300px;display:-ms-flexbox;display:flex}.card-image .card-content{padding:var(--space-md) var(--space-xl) var(--space-xl) var(--space-xl);-ms-flex-direction:column;flex-direction:column;-ms-flex-item-align:stretch;align-self:stretch;-ms-flex-align:start;align-items:start;display:-ms-flexbox;display:flex}.card-image>.card-body{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:start;align-items:flex-start;height:100%;display:-ms-flexbox;display:flex}h3.two-line-header{height:82px;min-height:82px}.gallery{--size:100px;grid-template-columns:repeat(6, var(--size));grid-auto-rows:var(--size);margin-bottom:var(--size);-ms-flex-align:start;align-items:start;justify-items:center;gap:5px;display:grid}.gallery:has(:hover) picture:not(:hover){filter:brightness(.5)contrast(.5)}.gallery:has(:focus) picture:not(:focus){filter:brightness(.5)contrast(.5)}.gallery picture{object-fit:cover;width:calc(var(--size) * 2);height:calc(var(--size) * 2);clip-path:path("M90,10 C100,0 100,0 110,10 190,90 190,90 190,90 200,100 200,100 190,110 190,110 110,190 110,190 100,200 100,200 90,190 90,190 10,110 10,110 0,100 0,100 10,90Z");border-radius:5px;grid-column:auto/span 2;transition:clip-path .25s,filter .75s}.gallery picture:nth-child(5n-1){grid-column:2/span 2}.gallery picture:hover,.gallery picture:focus{clip-path:path("M0,0 C0,0 200,0 200,0 200,0 200,100 200,100 200,100 200,200 200,200 200,200 100,200 100,200 100,200 100,200 0,200 0,200 0,100 0,100 0,100 0,100 0,100Z");z-index:1;transition:clip-path .25s,filter .25s}.gallery picture:focus{outline-offset:-5px;outline:1px dashed #000}.carousel>input{clip:rect(1px, 1px, 1px, 1px);clip-path:inset(50%);width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.carousel>input:nth-of-type(15):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-1400%}.carousel>input:nth-of-type(14):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-1300%}.carousel>input:nth-of-type(13):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-1200%}.carousel>input:nth-of-type(12):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-1100%}.carousel>input:nth-of-type(11):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-1000%}.carousel>input:nth-of-type(10):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-900%}.carousel>input:nth-of-type(9):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-800%}.carousel>input:nth-of-type(8):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-700%}.carousel>input:nth-of-type(7):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-600%}.carousel>input:nth-of-type(6):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-500%}.carousel>input:nth-of-type(5):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-400%}.carousel>input:nth-of-type(4):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-300%}.carousel>input:nth-of-type(3):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-200%}.carousel>input:nth-of-type(2):checked~.carousel__slides .carousel__slide:first-of-type{margin-left:-100%}.carousel>input:first-of-type:checked~.carousel__slides .carousel__slide:first-of-type{margin-left:0%}.carousel>input:first-of-type:checked~.carousel__thumbnails li:first-of-type,.carousel>input:nth-of-type(2):checked~.carousel__thumbnails li:nth-of-type(2),.carousel>input:nth-of-type(3):checked~.carousel__thumbnails li:nth-of-type(3),.carousel>input:nth-of-type(4):checked~.carousel__thumbnails li:nth-of-type(4),.carousel>input:nth-of-type(5):checked~.carousel__thumbnails li:nth-of-type(5),.carousel>input:nth-of-type(6):checked~.carousel__thumbnails li:nth-of-type(6),.carousel>input:nth-of-type(7):checked~.carousel__thumbnails li:nth-of-type(7),.carousel>input:nth-of-type(8):checked~.carousel__thumbnails li:nth-of-type(8),.carousel>input:nth-of-type(9):checked~.carousel__thumbnails li:nth-of-type(9),.carousel>input:nth-of-type(10):checked~.carousel__thumbnails li:nth-of-type(10),.carousel>input:nth-of-type(11):checked~.carousel__thumbnails li:nth-of-type(11),.carousel>input:nth-of-type(12):checked~.carousel__thumbnails li:nth-of-type(12),.carousel>input:nth-of-type(13):checked~.carousel__thumbnails li:nth-of-type(13),.carousel>input:nth-of-type(14):checked~.carousel__thumbnails li:nth-of-type(14),.carousel>input:nth-of-type(15):checked~.carousel__thumbnails li:nth-of-type(15){box-shadow:0 0 0 5px rgba(0,0,255,.5)}.carousel__slides{z-index:1;white-space:nowrap;box-sizing:border-box;margin:0;padding:0;display:-ms-flexbox;display:flex;position:relative;overflow:hidden}.carousel__slide{vertical-align:top;box-sizing:border-box;white-space:normal;-ms-flex:1 0 100%;flex:1 0 100%;width:100%;height:100%;transition:all .3s ease-out;display:block;position:relative;overflow:hidden}.carousel__slide figure{-ms-flex-direction:column;flex-direction:column;margin:0;display:-ms-flexbox;display:flex}.carousel__slide div{position:relative}.carousel__slide div:before{content:"";width:100%;padding-top:66.6667%;display:block}.carousel__slide div>img{width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.carousel__slide div{width:100%}.carousel__slide img{object-fit:cover;-ms-flex:auto;flex:auto;display:block}.carousel__slide figcaption{-ms-flex:none;flex:none;-ms-flex-item-align:center;align-self:center;width:25%;min-width:150px;padding:20px 20px 0}.carousel__slide .credit{color:rgba(0,0,0,.5);margin-top:1rem;display:block}.carousel__slide.scrollable{overflow-y:scroll}.carousel__thumbnails{margin:0 -10px;padding:0;list-style:none;display:-ms-flexbox;display:flex}.carousel__slides+.carousel__thumbnails{margin-top:20px}.carousel__thumbnails li{-ms-flex:auto;flex:auto;max-width:calc(16.6667% - 20px);margin:0 10px;transition:all .3s ease-in-out}.carousel__thumbnails label{display:block;position:relative}.carousel__thumbnails label:before{content:"";width:100%;padding-top:100%;display:block}.carousel__thumbnails label>img{width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.carousel__thumbnails label:hover,.carousel__thumbnails label:focus{cursor:pointer}.carousel__thumbnails label:hover img,.carousel__thumbnails label:focus img{transition:all .3s ease-in-out;box-shadow:0 0 0 1px rgba(0,0,0,.25)}.carousel__thumbnails img{object-fit:cover;width:100%;height:100%;display:block}
\ No newline at end of file
diff --git a/docs/site.webmanifest b/docs/site.webmanifest
deleted file mode 100644
index e3807b0e..00000000
--- a/docs/site.webmanifest
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "short_name": "jolicoeur",
- "name": "AdamJolicoeur.com",
- "icons": [
- {
- "src": "/android-launchericon-72-72.png",
- "type": "image/png",
- "sizes": "72x72"
- }
- ],
- "theme_color": "#ffffff",
- "background_color": "#ffffff",
- "display": "standalone",
- "scope": "/"
-}
diff --git a/docs/sitemap.xml b/docs/sitemap.xml
index ca5b9d85..537373de 100644
--- a/docs/sitemap.xml
+++ b/docs/sitemap.xml
@@ -3,17 +3,17 @@
https://www.adamjolicoeur.com/development/code/
- 2025-01-20T21:13:03.000Z
+ 2025-03-15T19:44:39.000Z
https://www.adamjolicoeur.com/development/examples/
- 2025-01-20T21:13:03.000Z
+ 2025-03-15T19:44:39.000Z
https://www.adamjolicoeur.com/development/prototypes/
- 2025-01-20T21:13:03.000Z
+ 2025-03-15T19:44:39.000Z
@@ -167,33 +167,33 @@
- https://www.adamjolicoeur.com/404.html
- 2026-05-20T11:47:07.577Z
+ https://www.adamjolicoeur.com/credits/credits/
+ 2026-05-27T16:02:20.000Z
- https://www.adamjolicoeur.com/
- 2026-05-20T11:47:07.765Z
+ https://www.adamjolicoeur.com/credits/open-source/
+ 2026-05-27T16:02:20.000Z
- https://www.adamjolicoeur.com/archives/town-selectman.html
- 2026-05-20T11:47:07.768Z
+ https://www.adamjolicoeur.com/404.html
+ 2026-06-28T13:02:05.479Z
- https://www.adamjolicoeur.com/reference/
- 2026-05-20T11:47:07.770Z
+ https://www.adamjolicoeur.com/
+ 2026-06-28T13:02:06.428Z
- https://www.adamjolicoeur.com/credits/credits/
- 2026-05-27T15:59:21.860Z
+ https://www.adamjolicoeur.com/archives/town-selectman.html
+ 2026-06-28T13:02:06.436Z
- https://www.adamjolicoeur.com/credits/open-source/
- 2026-05-27T15:59:21.862Z
+ https://www.adamjolicoeur.com/reference/
+ 2026-06-28T13:02:06.445Z
diff --git a/docs/sw.js b/docs/sw.js
index a7c46a98..c27f6c44 100755
--- a/docs/sw.js
+++ b/docs/sw.js
@@ -1,6 +1,4 @@
-importScripts(
- 'https://storage.googleapis.com/workbox-cdn/releases/7.3.0/workbox-sw.js'
-);
+importScripts('/workbox-v7.4.1/workbox-sw.js');
// This is your Service Worker, you can put any of your custom Service Worker
// code in this file, above the `precacheAndRoute` line.
@@ -57,4 +55,4 @@ const updateName = async (event) => {
await self.widgets.updateByInstanceId(event.instanceId, payload);
}
-workbox.precaching.precacheAndRoute(self.__WB_MANIFEST || []);
+workbox.precaching.precacheAndRoute([{"revision":"174183e900e3d4c365584b2298abdf38","url":"sitemap.xml"},{"revision":"68b329da9893e34099c7d8ad5cb9c940","url":"robots.txt"},{"revision":"bf1b1eafbf32cd649582c296e3c1e410","url":"keybase.txt"},{"revision":"04e480f115c0ed31cb416611be4d51f0","url":"index.html"},{"revision":"b9f35d5aa796c926f5f83735569af340","url":"icon-512.png"},{"revision":"80f557e066b1bf1cf6b4024dc7d8c196","url":"icon-32.png"},{"revision":"9c0c1ba1a9b18361b13951c04d9f0601","url":"icon-192.png"},{"revision":"f86e8f687b00070596c88e22c3cf0d89","url":"icon-180.png"},{"revision":"2a0efdd4e7d1c56fac653dacb258ab94","url":"icon-16.png"},{"revision":"f3c974f5cf7ce654dec9b07bba5e5d29","url":"cache-polyfill.js"},{"revision":"5e770c9f96c102f5ee78d6221ee4bb37","url":"android-launchericon-72-72.png"},{"revision":"6e2fcb738c641cf953675fa6c4a606d6","url":"404.html"},{"revision":"ccf2159f562d8303148a7342cedc10c5","url":"year-in-review/2025/index.html"},{"revision":"0f2229e267997ed77dff87c8074b15cf","url":"uses/index.html"},{"revision":"a928103cd18c0e7b40071f882caa0af8","url":"sass/style.css"},{"revision":"669d49df2d6df8154fe2c6387c8931d5","url":"sass/slides.css"},{"revision":"332dfc6843ef01d55b0495da18172305","url":"sass/prism.css"},{"revision":"f6d02b1f173059e19875104e40aced77","url":"sass/print.css"},{"revision":"0474ac8abc69e4049c8aeabcf1ea2a8b","url":"sass/markdown.css"},{"revision":"7fb2629ca8999899d1fb5c39efcb661b","url":"sass/containers.css"},{"revision":"a1a9522fb230f7d345a5ca469817aa40","url":"reference/index.html"},{"revision":"d4a8a286699dcc9d5946756b052677af","url":"presentations/index.html"},{"revision":"b98937210c95e0c77bb5d994b5045f77","url":"presentations/portfolio/index.html"},{"revision":"15b21d17d06aaff6a142201053307f3b","url":"presentations/color-picker/index.html"},{"revision":"c7c778e11ee4573bc63f7eb719fbaff7","url":"portfolio/index.html"},{"revision":"9b48518e883f72c162cbd05bae30f3a0","url":"js/prism.js"},{"revision":"5ec8925b1046f3fdf33cd12241668261","url":"development/index.html"},{"revision":"5a4d868f553fec95d7b3e01609e6381d","url":"development/timetracker/index.html"},{"revision":"bb14de9d21a0e02206d6482068d3050c","url":"development/prototypes/index.html"},{"revision":"56ccf9fd2ba8fdd57301930e740a6ec2","url":"development/examples/index.html"},{"revision":"db27c81ef432ae9bbe238fc9e6bbe4c1","url":"development/code/index.html"},{"revision":"089668c82443af99d9a4191a88bb7c2a","url":"development/archparser/index.html"},{"revision":"fd6d3efd9c8a286ce622092ee41de8cf","url":"designs/task-it/index.html"},{"revision":"5adfc983a9b001a6dba29c41c8afe809","url":"designs/dashboard-analytics/index.html"},{"revision":"e0327bb561128b4cc3f41006b54b85ea","url":"designs/customer-engagement/index.html"},{"revision":"5b4554417a5aa0ba9c2bb6b3259906d1","url":"designs/component-library/index.html"},{"revision":"9f0825a669ee2a858cd1e498c77116fc","url":"designs/alm/index.html"},{"revision":"14650fc4cd6d161c359eac4250632298","url":"css/style.css"},{"revision":"dba19d6042f3a7d77ff774ed6d14525c","url":"css/slides.css"},{"revision":"ab47bf02c43117c1eddcb5b320071e39","url":"css/prism.css"},{"revision":"e5d2e980a0e99296fc58c34e5cfc7c61","url":"css/print.css"},{"revision":"076e4a616ba834aa93a8a4e897e5bb68","url":"css/markdown.css"},{"revision":"63ee6a95454eda7d79d88e7084f0654d","url":"css/containers.css"},{"revision":"69301d6301f273bcc57f779c57786046","url":"credits/open-source/index.html"},{"revision":"82a54c23ed9be40f72c4912a5963fa41","url":"credits/credits/index.html"},{"revision":"7f78196c41123b095a94fdee54235a56","url":"case-studies/index.html"},{"revision":"fba2c1ced998365d36abae78a603a1ef","url":"case-studies/soccertracker/index.html"},{"revision":"298f0371a7ca64d9107bf93b9ddda387","url":"case-studies/color-picker/index.html"},{"revision":"a554edd15479158c1f6fc332554ac5f6","url":"assets/img/timetracker-weekly-report.webp"},{"revision":"5b7c2c048cba923e77dec9b988d1374c","url":"assets/img/timetracker-weekly-report-thumb.webp"},{"revision":"fb7a81d32639c2b6ab48b48e90e591bd","url":"assets/img/timetracker-tone-standup.webp"},{"revision":"8fa00dfde111924a2f80235b53e9d5d5","url":"assets/img/timetracker-tone-standup-thumb.webp"},{"revision":"186617d749caeba721de5e4c2fe80b8b","url":"assets/img/timetracker-tone-retro.webp"},{"revision":"b415eb31a528752e093316ee60b7bd41","url":"assets/img/timetracker-tone-retro-thumb.webp"},{"revision":"0db80338a4503475f311347f1d04bd81","url":"assets/img/timetracker-tone-client.webp"},{"revision":"94c33e1e68c31c2725047f8271d15410","url":"assets/img/timetracker-tone-client-thumb.webp"},{"revision":"1bd4b9ae567252a9e0a14430a4d4ffdb","url":"assets/img/timetracker-start.webp"},{"revision":"d0e7c57d7178ed02d485cf174e11885b","url":"assets/img/timetracker-start-thumb.webp"},{"revision":"c4b5f323d98a3a5631834c98cb2f6e66","url":"assets/img/timetracker-loading-state.webp"},{"revision":"2f319a319aeb5b78f7c273b444c93183","url":"assets/img/timetracker-loading-state-thumb.webp"},{"revision":"16d202459315a8949bd3712fc083a0d2","url":"assets/img/timetracker-loading-state-screen.webp"},{"revision":"7f749352f5788e8d5531c3936b4db0a8","url":"assets/img/timetracker-loading-state-screen-thumb.webp"},{"revision":"66e242f202c124d0125e72afd0604207","url":"assets/img/timetracker-generated-summary.webp"},{"revision":"2fa7960fe260de1712231f8e91e53f86","url":"assets/img/timetracker-generated-summary-thumb.webp"},{"revision":"7a2354bd990f20478981c6f09a529a04","url":"assets/img/thumbnail_RHDM.webp"},{"revision":"47342aff1a249a2e0ebd6725afbb0e02","url":"assets/img/thumbnail_RHDM-thumb.webp"},{"revision":"e911ae355cc243ed420785f5651696a2","url":"assets/img/thumbnail_PatternFly.webp"},{"revision":"74695c97d44769fac58ab96168ceac61","url":"assets/img/thumbnail_PatternFly-thumb.webp"},{"revision":"97958dfa36296de585d2ecd3b49ececa","url":"assets/img/theproxyguy-membership-card-patreon.webp"},{"revision":"1e2cc81056f7bfc062627b62f41ac8d6","url":"assets/img/theproxyguy-membership-card-patreon-thumb.webp"},{"revision":"742457e5f67c034b1521b207ba61dce7","url":"assets/img/taskstat-screenshot-settings.webp"},{"revision":"3363ddffb5099f18c626280e28ad284f","url":"assets/img/taskstat-screenshot-settings-thumb.webp"},{"revision":"836b22b2563cf3aaf4a482da8ab093f6","url":"assets/img/taskstat-screenshot-list.webp"},{"revision":"595d608dfc592687d2bab469bc72f0fa","url":"assets/img/taskstat-screenshot-list-thumb.webp"},{"revision":"69d522ab71e7564c1a9a2e8156c023d5","url":"assets/img/taskstat-screenshot-details.webp"},{"revision":"bd68672fa475f6f2b0337416877f0077","url":"assets/img/taskstat-screenshot-details-thumb.webp"},{"revision":"8ccc64badd6e5d58fdd6e98ac1bc8ca4","url":"assets/img/taskstat-screenshot-dashboard.webp"},{"revision":"feee9cb3200de55412cd90d09d4cc758","url":"assets/img/taskstat-screenshot-dashboard-thumb.webp"},{"revision":"aab85ddf44ffa3e3226fda20f012eec0","url":"assets/img/task-it_user-survey.webp"},{"revision":"5831c18645ae169a7f81f2f8684f3eba","url":"assets/img/task-it_user-survey-thumb.webp"},{"revision":"25b1e84cbe6385caed8a720162dcbbb4","url":"assets/img/task-it_user-states.webp"},{"revision":"90cc88a7ca02603455d35e3b73ef376d","url":"assets/img/task-it_user-states-thumb.webp"},{"revision":"12955eaedbaa4ded12204a07a4ca088e","url":"assets/img/task-it_user-flow.webp"},{"revision":"0cbc1998385fd7c0375cc68eb268fb8f","url":"assets/img/task-it_user-flow-thumb.webp"},{"revision":"f1fc93ce0624c46efa82e8edd442ac6a","url":"assets/img/task-it_task-details_wireframe.webp"},{"revision":"b7626c38be2437a240927c2feb7e1d14","url":"assets/img/task-it_task-details_wireframe-thumb.webp"},{"revision":"97ff6a1f881c0f106c4b45eca3a3f18e","url":"assets/img/task-it_task-details_mockup4.webp"},{"revision":"e9798f70d424a29655c0ec577829eae2","url":"assets/img/task-it_task-details_mockup4-thumb.webp"},{"revision":"e83acfeb83e57f1fceefb1b0b6ea7389","url":"assets/img/task-it_task-details_mockup3.webp"},{"revision":"0edb4e930a93395291b7a7d074b9e05d","url":"assets/img/task-it_task-details_mockup3-thumb.webp"},{"revision":"cdb7226d2bfe4832c23bb783559cb162","url":"assets/img/task-it_task-details_mockup2.webp"},{"revision":"97d3fde7c23c4a7cfc6fd9b4ee21fe4f","url":"assets/img/task-it_task-details_mockup2-thumb.webp"},{"revision":"b728f2cc6553d903f704ff37f5ebd45c","url":"assets/img/task-it_task-details_mockup1.webp"},{"revision":"ce3835098ca55aae0c99f2d212bbee75","url":"assets/img/task-it_task-details_mockup1-thumb.webp"},{"revision":"54df988b366f417aee52ca54d81bf473","url":"assets/img/task-it_product.webp"},{"revision":"2788e0046c3a081e22211da021589c70","url":"assets/img/task-it_product-thumb.webp"},{"revision":"06d9bd55302bfdd80073d802c42be242","url":"assets/img/task-it_intro.webp"},{"revision":"459407b7b5a0c8943c16c4eb3bb6a028","url":"assets/img/task-it_intro-thumb.webp"},{"revision":"25f0caf6a27b65ecce597b98d1a5109f","url":"assets/img/task-it_flow-success.webp"},{"revision":"38091038a3c886f6b9f80bc75940ce7c","url":"assets/img/task-it_flow-success-thumb.webp"},{"revision":"fd5ee4dcd504bb92110c34dd175d6aa8","url":"assets/img/task-it_flow-errors-general.webp"},{"revision":"ea9f700c458a1c4cdaf4ad4c70671bdd","url":"assets/img/task-it_flow-errors-general-thumb.webp"},{"revision":"c724ef6cd473b10f6e2f00996c6149bf","url":"assets/img/task-it_flow-errors-forms.webp"},{"revision":"9afe61286c92642c72773f6ce3fd8da2","url":"assets/img/task-it_flow-errors-forms-thumb.webp"},{"revision":"ce482c2f227787404d86e8c37f5803e2","url":"assets/img/social_template.webp"},{"revision":"0c98b2cd208d6390a9ad843957098712","url":"assets/img/social_template-thumb.webp"},{"revision":"39cb862b3953c9db7f64c49acfad1e46","url":"assets/img/soccergametracker-substitutionsummary.webp"},{"revision":"24a3bec19ed92ed363528f23701e402c","url":"assets/img/soccergametracker-substitutionsummary-thumb.webp"},{"revision":"1062a8fc9f7233e6136ee84a037f8923","url":"assets/img/soccergametracker-substituteprompt.webp"},{"revision":"7e406b49d2d3143b36a87c92a46d4ffa","url":"assets/img/soccergametracker-substituteprompt-thumb.webp"},{"revision":"093aafb1e94ec1ccb979f679766a0009","url":"assets/img/soccergametracker-startgame.webp"},{"revision":"22b5d1acfa6b7ec0aa1b09f14bf93c12","url":"assets/img/soccergametracker-startgame-thumb.webp"},{"revision":"ea2b8854f559794298c1636af1dd4d7c","url":"assets/img/soccergametracker-secondhalfsummary.webp"},{"revision":"270e4c35b63d882676b82672a5eab885","url":"assets/img/soccergametracker-secondhalfsummary-thumb.webp"},{"revision":"25c8ca9c2bee8dd71ef1e72c19de691e","url":"assets/img/soccergametracker-roster.webp"},{"revision":"408ed6668c1bc9ad201d3a3f2781758f","url":"assets/img/soccergametracker-roster-thumb.webp"},{"revision":"2fa5770b304caf498a5ec92ea5892370","url":"assets/img/soccergametracker-playerstats02.webp"},{"revision":"fd1ace0059ef6838741333ffad80bbed","url":"assets/img/soccergametracker-playerstats02-thumb.webp"},{"revision":"5bef776a1763e1b2a35468d7244bf85b","url":"assets/img/soccergametracker-playerstats01.webp"},{"revision":"f6e2c461686b7bc3967f2db107657bcb","url":"assets/img/soccergametracker-playerstats01-thumb.webp"},{"revision":"0f592694c112a2da0b9294fc1c1e0e3d","url":"assets/img/soccergametracker-phone-summary.webp"},{"revision":"82f4ae2c74a198dfc252164b8b398f3d","url":"assets/img/soccergametracker-phone-summary-thumb.webp"},{"revision":"b192123e7df641faed582dac33dcc15c","url":"assets/img/soccergametracker-phone-subs-03.webp"},{"revision":"c3dce3bbb41f6eab0ef8340129672ea0","url":"assets/img/soccergametracker-phone-subs-03-thumb.webp"},{"revision":"a5e457ebfe9ce6bb43822edd0c78d891","url":"assets/img/soccergametracker-phone-subs-02.webp"},{"revision":"3364ae4674fad6666af387a09b1af08f","url":"assets/img/soccergametracker-phone-subs-02-thumb.webp"},{"revision":"56fcf131f4f797a76871e58484fe84c0","url":"assets/img/soccergametracker-phone-subs-01.webp"},{"revision":"3f38d866ff6075a0480b0c8d81e7c1e8","url":"assets/img/soccergametracker-phone-subs-01-thumb.webp"},{"revision":"d5b8eae6fe93c90dce4149a7945a4961","url":"assets/img/soccergametracker-phone-rosters.webp"},{"revision":"b483fb5a6f3558fa9583b4c1b07f7767","url":"assets/img/soccergametracker-phone-rosters-thumb.webp"},{"revision":"a2717bd9761b76970fff72ba016f027e","url":"assets/img/soccergametracker-phone-newgame.webp"},{"revision":"5c00a07dc4e0613b4c48c684b0a093f1","url":"assets/img/soccergametracker-phone-newgame-thumb.webp"},{"revision":"12feaa0afc8d5983363238a2cbd429dc","url":"assets/img/soccergametracker-phone-livegame.webp"},{"revision":"77ca192ff880f54ed50f5ae97a046e78","url":"assets/img/soccergametracker-phone-livegame-thumb.webp"},{"revision":"40699182f9c81bb8386976d8329d8738","url":"assets/img/soccergametracker-phone-history.webp"},{"revision":"12db7bf6ea3b5f148645b2f932c87c63","url":"assets/img/soccergametracker-phone-history-thumb.webp"},{"revision":"ccc26d62fb6e0df9ebeeb73bc3f15579","url":"assets/img/soccergametracker-phone-history-details.webp"},{"revision":"58cfb8900e6671fb0154ed013cf95e85","url":"assets/img/soccergametracker-phone-history-details-thumb.webp"},{"revision":"f28e5b095d2eb9b265ee54b31d398083","url":"assets/img/soccergametracker-newgame.webp"},{"revision":"122b9610e9b57eaaaa52e1075321e003","url":"assets/img/soccergametracker-newgame-thumb.webp"},{"revision":"d47f758d002e1e05ef66763b2df7de61","url":"assets/img/soccergametracker-history02.webp"},{"revision":"b62eccdf42e39465a1536a81f26aa1fe","url":"assets/img/soccergametracker-history02-thumb.webp"},{"revision":"048799ab588b26da5ff8cfe0c6ebb468","url":"assets/img/soccergametracker-history.webp"},{"revision":"18a00b82f95f6ecfefda45435686c761","url":"assets/img/soccergametracker-history-thumb.webp"},{"revision":"21614ffe3988ed4b5a79f0daf4ee9f9e","url":"assets/img/soccergametracker-halftime.webp"},{"revision":"585f4736958a32fa6ace9565396d0cb8","url":"assets/img/soccergametracker-halftime-thumb.webp"},{"revision":"6f110f50359959a7ed3c032b75aa2aaf","url":"assets/img/soccergametracker-goalassignment.webp"},{"revision":"e5de355ebc7aa7d6ef570322a53b881e","url":"assets/img/soccergametracker-goalassignment-thumb.webp"},{"revision":"aed3dc0e2cf301bbb77daec6a24bd8d2","url":"assets/img/soccergametracker-gamedetails.webp"},{"revision":"cdb8c6f6852a66417d5e6e06052d95d3","url":"assets/img/soccergametracker-gamedetails-thumb.webp"},{"revision":"cb88f26757bb9a7a7b44062bf3dafab4","url":"assets/img/soccergametracker-firsthalfsummary.webp"},{"revision":"f6f5bb02dc1a1ac6e7329b3b0da003d9","url":"assets/img/soccergametracker-firsthalfsummary-thumb.webp"},{"revision":"bd864aad3a649b36516aed3a929a2fff","url":"assets/img/soccergametracker-endgame.webp"},{"revision":"8dce5d6f9384f28cc0b32bea7cd39443","url":"assets/img/soccergametracker-endgame-thumb.webp"},{"revision":"55ccb2c5bf71dc7e72247b77028caed4","url":"assets/img/soccergametracker-addnewplayer.webp"},{"revision":"5d5c29af73e634aa6cce276dd3b19bea","url":"assets/img/soccergametracker-addnewplayer-thumb.webp"},{"revision":"9f8cfe9c2be3b7f730b05635c6c50246","url":"assets/img/soccergametracker- ingamesummary.webp"},{"revision":"682b5f90dc56d88c62ae532788d4b31f","url":"assets/img/soccergametracker- ingamesummary-thumb.webp"},{"revision":"df76a4fc60a02b85fa69c5db1017ae96","url":"assets/img/screenshot-try_openshift.webp"},{"revision":"73a3a039a2c095b12c26d96af2f70b4b","url":"assets/img/screenshot-try_openshift-thumb.webp"},{"revision":"15533d48a081b5b957608fdf4d3fae92","url":"assets/img/screenshot-patternflyorg.webp"},{"revision":"e4dc17adf226adfe1db4a1362c6c6c53","url":"assets/img/screenshot-patternflyorg-thumb.webp"},{"revision":"196d0c092863bad1fff8fcac8c1a124c","url":"assets/img/screenshot-kubevirtio2.webp"},{"revision":"9d89247c1e21c4083db0daa00b7274ff","url":"assets/img/screenshot-kubevirtio2-thumb.webp"},{"revision":"8ad6fd8ff89213ce25f83a7a74c71400","url":"assets/img/screenshot-kubevirtio.webp"},{"revision":"03991435c0de2418b5aa7968a84016cb","url":"assets/img/screenshot-kubevirtio-thumb.webp"},{"revision":"df400a9363d70f03611c7d501010088f","url":"assets/img/screenshot-kubevirtio-mobile.webp"},{"revision":"538604c6ef6f0accd6e54728006b3eb0","url":"assets/img/screenshot-kubevirtio-mobile-thumb.webp"},{"revision":"92fa09a9c79e9267d761be12cc9bbf52","url":"assets/img/rh_integration.webp"},{"revision":"90a27e33062e0d0ae811814da8b996d0","url":"assets/img/rh_integration-thumb.webp"},{"revision":"7570bb5ca79951ef7ef8ba78a5c8371d","url":"assets/img/portfolio8.webp"},{"revision":"6be552369711e2cb858465265f161592","url":"assets/img/portfolio8-thumb.webp"},{"revision":"43336abb4d4a111e13052f45cbcdc1e0","url":"assets/img/portfolio7.webp"},{"revision":"d7bbd36092287ab08c1da094487e02f2","url":"assets/img/portfolio7-thumb.webp"},{"revision":"11c183180cce749fb0069f1964f4c021","url":"assets/img/portfolio6.webp"},{"revision":"49eebfe17360ab09ab97dc886d4c5e1c","url":"assets/img/portfolio6-thumb.webp"},{"revision":"0a30bba10c0abbf914592a105836350c","url":"assets/img/portfolio5.webp"},{"revision":"5f731fe83e2d5789b61e5dd1e79ece49","url":"assets/img/portfolio5-thumb.webp"},{"revision":"32f36e70b31b1834fc8f3a80719a95bd","url":"assets/img/portfolio4.webp"},{"revision":"d1eaaafd7ed0064f8e6c0e31c08955e0","url":"assets/img/portfolio4-thumb.webp"},{"revision":"846ac04a48788cf36d7f6634fa59d333","url":"assets/img/portfolio3.webp"},{"revision":"5eb23594433b04ea12eddc05b77de9fd","url":"assets/img/portfolio3-thumb.webp"},{"revision":"c29889f4fca47323eb4a8e65de22b259","url":"assets/img/portfolio2.webp"},{"revision":"3032bb55a2ec5f0dced98db8cfa0230f","url":"assets/img/portfolio2-thumb.webp"},{"revision":"f5a3d9d03f57a409426499565020a41b","url":"assets/img/portfolio2-5.webp"},{"revision":"8ae0dd2774339b0020f37d6bf0cb7596","url":"assets/img/portfolio2-5-thumb.webp"},{"revision":"f256eded7782da157ed156600772cf26","url":"assets/img/portfolio14.webp"},{"revision":"2b3ffee9232c49c80e863a97387b9d08","url":"assets/img/portfolio14-thumb.webp"},{"revision":"d65d2d81de42e0b82e19cd29a5888192","url":"assets/img/portfolio13.webp"},{"revision":"8bd96dfbdd93125e423128e666c6d55f","url":"assets/img/portfolio13-thumb.webp"},{"revision":"0dfdd429be6efca8877ea059fe3ceebf","url":"assets/img/portfolio12.webp"},{"revision":"425d64886d3880558a250bd1adb8fb33","url":"assets/img/portfolio12-thumb.webp"},{"revision":"11242bfbab21a6a90afa4b71f62bbfaa","url":"assets/img/portfolio11.webp"},{"revision":"e7626db47388099c6af6349026398c79","url":"assets/img/portfolio11-thumb.webp"},{"revision":"0cfbaed59674e72bfb8e6f7b08cdc077","url":"assets/img/portfolio10.webp"},{"revision":"856dada5ecb0b1ad9e8ea713beea4e84","url":"assets/img/portfolio10-thumb.webp"},{"revision":"87464b168510102f4f0d7e14c01bf190","url":"assets/img/portfolio1.webp"},{"revision":"e56e79ee5afcc0df53f5de32ff1ceb09","url":"assets/img/portfolio1-thumb.webp"},{"revision":"7360096b18e7d1f89a66d50672035804","url":"assets/img/portfolio0.webp"},{"revision":"cdf46010a44d19622a4d7333e1425feb","url":"assets/img/portfolio0-thumb.webp"},{"revision":"c9eafc05dc16e232519504f23492efcd","url":"assets/img/navbar-logo.webp"},{"revision":"273e283b319534485caeee039f123415","url":"assets/img/navbar-logo-thumb.webp"},{"revision":"c62b2d43cea163553c271ab6f9a5db9c","url":"assets/img/icon.webp"},{"revision":"1826d4996e96faf5a88566ef91d714f3","url":"assets/img/icon-thumb.webp"},{"revision":"c62b2d43cea163553c271ab6f9a5db9c","url":"assets/img/icon-512.webp"},{"revision":"1826d4996e96faf5a88566ef91d714f3","url":"assets/img/icon-512-thumb.webp"},{"revision":"bce015258f98a4f95fbda457859db7f2","url":"assets/img/icon-32.webp"},{"revision":"4a91b036a202b8e2a29c1b60907bd415","url":"assets/img/icon-32-thumb.webp"},{"revision":"057d98801fc03d65baaea0047c98c74e","url":"assets/img/icon-256.webp"},{"revision":"86956a974ddbcf23e7326cda668be17d","url":"assets/img/icon-256-thumb.webp"},{"revision":"d395e0a1a07948f23ca61f5b77774cc3","url":"assets/img/icon-192.webp"},{"revision":"17a5ab3ee79e102ef81e10163d1d63f5","url":"assets/img/icon-192-thumb.webp"},{"revision":"4ecf764dbb5066aca71d468d90b25322","url":"assets/img/icon-180.webp"},{"revision":"bbf757bf37e52ee21db4bf86eba59f63","url":"assets/img/icon-180-thumb.webp"},{"revision":"9ca53cc308de7c30a70aa23148c6c461","url":"assets/img/icon-16.webp"},{"revision":"c5bedc124e3721ed5d40b4a77ef5026b","url":"assets/img/icon-16-thumb.webp"},{"revision":"3830aee687988a363775107696c6e3d8","url":"assets/img/headshot.webp"},{"revision":"9555b76029dc1f47d8b321cf7881a7ab","url":"assets/img/headshot-thumb.webp"},{"revision":"54b0d648b08b80d09565809d47e647fd","url":"assets/img/headshot-hires.webp"},{"revision":"5f74b985f6f4746fad3394d4710a96c9","url":"assets/img/headshot-hires-thumb.webp"},{"revision":"e50c6ed7d86d6887f70e577ebc961305","url":"assets/img/fabric8-package.webp"},{"revision":"b7e58602dc4ef9bab71ffadf0de0094e","url":"assets/img/fabric8-package-thumb.webp"},{"revision":"ea52c8ad2e516b92a8874e465ef3c7c4","url":"assets/img/dashboard_minimal.webp"},{"revision":"b7ab806c347bc3f6d5df0785b7087982","url":"assets/img/dashboard_minimal-thumb.webp"},{"revision":"6feac75443e59e71a4b4ea977cda9f61","url":"assets/img/curved-lines@2x.webp"},{"revision":"1f025eaa42c982e1adaf0a8e2bf996b0","url":"assets/img/curved-lines@2x-thumb.webp"},{"revision":"17257af0402ee2bb41dc29f5a18d0787","url":"assets/img/colorPicker5.webp"},{"revision":"36e153f7e9f1552a2f7f448af4a9df6c","url":"assets/img/colorPicker5-thumb.webp"},{"revision":"a516b6ecc01a78670d80b5ae8cbc6d82","url":"assets/img/colorPicker4.webp"},{"revision":"311b14b91cc4fb424807f43799fa5e98","url":"assets/img/colorPicker4-thumb.webp"},{"revision":"d5d5e71f0bed2f22f76d717644cfe6fe","url":"assets/img/colorPicker3.webp"},{"revision":"ded1b9058af5a15163d4f828ed962641","url":"assets/img/colorPicker3-thumb.webp"},{"revision":"af0010b14ab44f9d81e41fb5519dd787","url":"assets/img/colorPicker2.webp"},{"revision":"812e791f3d78c54c63b8b16e79cd122c","url":"assets/img/colorPicker2-thumb.webp"},{"revision":"d73e99bab804356c862b9fc340c8d7b2","url":"assets/img/colorPicker1.webp"},{"revision":"72e26e5b794910d93d1dc4406bcc8252","url":"assets/img/colorPicker1-thumb.webp"},{"revision":"dc0e2333709ca7563fce6b742880852f","url":"assets/img/colorPicker0.webp"},{"revision":"22f25a9cb5cbee2e888eeea8456fd93e","url":"assets/img/colorPicker0-thumb.webp"},{"revision":"b9721d6b8b8970fd19a082d95293902d","url":"assets/img/colorPicker-logo.webp"},{"revision":"6a88a0d2651a5fa13908576725f0a1c2","url":"assets/img/colorPicker-logo-thumb.webp"},{"revision":"5141b7c72c2d92e481ca9c21406137ab","url":"assets/img/colorPalette02.webp"},{"revision":"add6199afd9681558b83a618061d94ef","url":"assets/img/colorPalette02-thumb.webp"},{"revision":"1208df405ed7b224278b02f7bac71f27","url":"assets/img/colorPalette01.webp"},{"revision":"cc9039ad86847d5ad2608b61ffb436b6","url":"assets/img/colorPalette01-thumb.webp"},{"revision":"272e426dbe2f4095849f539f4b4caccb","url":"assets/img/colorPalette.webp"},{"revision":"53bd526c030174e75bffbbfd9f6c7429","url":"assets/img/colorPalette-thumb.webp"},{"revision":"1a36fda5b92d2162ccd249dc01540333","url":"assets/img/avatar.webp"},{"revision":"04ab878b9cff127bec70bc1c64f24e7f","url":"assets/img/avatar-thumb.webp"},{"revision":"aac5c008eb12374d6d038ab5c20441e9","url":"assets/img/avatar-hires.webp"},{"revision":"3e1632af753edbeb05bb0410047c74be","url":"assets/img/avatar-hires-thumb.webp"},{"revision":"9eae032d416d302c99878f65df7d594f","url":"assets/img/archparser_template-creator.webp"},{"revision":"13204cd38474962b4fb13a10af6a013e","url":"assets/img/archparser_template-creator-thumb.webp"},{"revision":"1ea67d3d5c578da6c5abf2028b393fc8","url":"assets/img/archparser_template-creator-loaded.webp"},{"revision":"d11eca34c10ee1bfdca30103b6c563e7","url":"assets/img/archparser_template-creator-loaded-thumb.webp"},{"revision":"7e564783ec89e09da2046fdd3ce99084","url":"assets/img/archparser_filtering.webp"},{"revision":"9ceb90661bac1462ef86101efcac0808","url":"assets/img/archparser_filtering-thumb.webp"},{"revision":"e02548efe023d67caa80a4789a01efc7","url":"assets/img/archparser_export.webp"},{"revision":"0a9a26b73ab18cb68335c0e343548a1c","url":"assets/img/archparser_export-thumb.webp"},{"revision":"4ff3335abf2106dd75654774652de72b","url":"assets/img/archparser_drawing-set-details.webp"},{"revision":"e6c52fbe00c9b99c41fdc692e77f1627","url":"assets/img/archparser_drawing-set-details-thumb.webp"},{"revision":"43ca7f394f9194a6001a3ac594c16d3f","url":"assets/img/archparser_drawing-list.webp"},{"revision":"bd4c34bf6604754168110b24c4a398a1","url":"assets/img/archparser_drawing-list-thumb.webp"},{"revision":"78762991b7fd838bd3d561013bdec99a","url":"assets/img/archparser_drawing-details.webp"},{"revision":"260a3a6c2455697acafcf5aef009c0c5","url":"assets/img/archparser_drawing-details-thumb.webp"},{"revision":"0c11fba09203fab86b8142d5ecdc43b1","url":"assets/img/archparser_desktop_2.webp"},{"revision":"c8a58459e1657892552774f2b273c07c","url":"assets/img/archparser_desktop_2-thumb.webp"},{"revision":"90524f3d3c911984e069f21b5a89e935","url":"assets/img/archparser_desktop_1.webp"},{"revision":"c69451a4cf8efa17305eceded4612465","url":"assets/img/archparser_desktop_1-thumb.webp"},{"revision":"c3ed2b9fe36f12e56cf0dba0c00cd7fb","url":"assets/img/archparser_desktop_0.webp"},{"revision":"76d0f03e35e4d482c596f6a56c10ab77","url":"assets/img/archparser_desktop_0-thumb.webp"},{"revision":"67a14ffa594911421af6466d35ca310d","url":"assets/img/archparser_dashboard2.webp"},{"revision":"a2ce7f2e356e3c57abbdd79eb744dc39","url":"assets/img/archparser_dashboard2-thumb.webp"},{"revision":"3552ad539e3f3f3e8b752b1c80fc75b6","url":"assets/img/archparser_dashboard1.webp"},{"revision":"da530adeca400d428a9cd20d8c383c67","url":"assets/img/archparser_dashboard1-thumb.webp"},{"revision":"182d719f704464d1e3355d18e17b5f77","url":"assets/img/android-launchericon-72-72.webp"},{"revision":"5228df6fa1740653cbd301215254610b","url":"assets/img/android-launchericon-72-72-thumb.webp"},{"revision":"c62b2d43cea163553c271ab6f9a5db9c","url":"assets/img/android-launchericon-512-512.webp"},{"revision":"1826d4996e96faf5a88566ef91d714f3","url":"assets/img/android-launchericon-512-512-thumb.webp"},{"revision":"360e0ca76504da1d6cf3f7c00ee2cbb4","url":"assets/img/android-launchericon-48-48.webp"},{"revision":"1dc8986e1d0f058da734f6daf9a2a65e","url":"assets/img/android-launchericon-48-48-thumb.webp"},{"revision":"d395e0a1a07948f23ca61f5b77774cc3","url":"assets/img/android-launchericon-192-192.webp"},{"revision":"17a5ab3ee79e102ef81e10163d1d63f5","url":"assets/img/android-launchericon-192-192-thumb.webp"},{"revision":"d04a09a8d8145ffed14bfbc8a4c00f10","url":"assets/img/ajolicoeur_wordcloud_writing.webp"},{"revision":"4b1a296031a7ec99c02f8488ad957ffe","url":"assets/img/ajolicoeur_wordcloud_writing-thumb.webp"},{"revision":"0abeab5dcff2c3676f46186d4033c252","url":"assets/img/ajolicoeur_wordcloud.webp"},{"revision":"2d696a1f6f69dbcec3ad1e80a3c2d67a","url":"assets/img/ajolicoeur_wordcloud-thumb.webp"},{"revision":"710d860b89cdc83289512b9f16242de5","url":"assets/img/adamj-github.webp"},{"revision":"af5faaa1112edf542cda17e8167d6f13","url":"assets/img/adamj-github-thumb.webp"},{"revision":"319dae8e43de4e95b6f4320cfd9b7099","url":"assets/img/adam-j.webp"},{"revision":"5214446a385513f5e5061d3877f8ede7","url":"assets/img/adam-j-thumb.webp"},{"revision":"2fe50a62ceed5e12399144d9bd73169d","url":"assets/img/Timetrak.webp"},{"revision":"c0e88831e0dbb6e3c46bd0d7c77debee","url":"assets/img/Timetrak-thumb.webp"},{"revision":"3af619d28c891a713ae129bf5eef317b","url":"assets/img/TimeTrackerPro-1920x1080.webp"},{"revision":"e0a9bc110bf0e715d51e28cf9fb0e3ae","url":"assets/img/TimeTrackerPro-1920x1080-thumb.webp"},{"revision":"9f57204931cf30c63a860313571368f0","url":"assets/img/TheMagicCollection-icon-light.webp"},{"revision":"3d875ec2b7b17176fb5c99789a7a50d9","url":"assets/img/TheMagicCollection-icon-light-thumb.webp"},{"revision":"317c66ca0ddfc78dbb653912a7fd93f7","url":"assets/img/TheMagicCollection-icon-dark.webp"},{"revision":"4a60ae9a9f83f273ca065d4c86d2f0e2","url":"assets/img/TheMagicCollection-icon-dark-thumb.webp"},{"revision":"67fa19db9600f3f49138e7a70acd653d","url":"assets/img/TaskStat_Tinted.webp"},{"revision":"b9cb8765b277ee699b533332719a25d9","url":"assets/img/TaskStat_Tinted-thumb.webp"},{"revision":"46aa1797d8ea81b53ae4a60795070a2b","url":"assets/img/TaskStat_Default.webp"},{"revision":"cf654b8a56b590a1d1a766952a957894","url":"assets/img/TaskStat_Default-thumb.webp"},{"revision":"5032c83a01940d912a486c684b90b88f","url":"assets/img/TaskStat_Dark.webp"},{"revision":"084df8edb245ea60c692df90bc1aa069","url":"assets/img/TaskStat_Dark-thumb.webp"},{"revision":"f7bafadf62c4750319b225c342460475","url":"assets/img/TLG2012.webp"},{"revision":"2383cbde9b69ce33de90a8795f5378e4","url":"assets/img/TLG2012-thumb.webp"},{"revision":"6e8f13e5693e4e42fa7ac4c841f11841","url":"assets/img/Storybook-GettingStarted.webp"},{"revision":"fe190c4a545b13c565ba27b7bc1033d4","url":"assets/img/Storybook-GettingStarted-thumb.webp"},{"revision":"c8423d88345b8eeb38a9780740ff290a","url":"assets/img/Sitemap_alpha.webp"},{"revision":"ce4b331615b15f0a3bee3f6165b1856d","url":"assets/img/Sitemap_alpha-thumb.webp"},{"revision":"41ad2368af9a2427a4ca2e53a584c5cb","url":"assets/img/Screenshot_charts.webp"},{"revision":"fcee433e2bb9a1d201e2b4287ae795b9","url":"assets/img/Screenshot_charts-thumb.webp"},{"revision":"3c599b13093c355ecdae68590c33ac26","url":"assets/img/Scouters.webp"},{"revision":"174e6dae382b58aae17472214666ee9a","url":"assets/img/Scouters-thumb.webp"},{"revision":"aad3018b7741d98491b6b58cb2b88feb","url":"assets/img/SC_logo_cloud2.webp"},{"revision":"80ab29e4473a3b5e1bfd0ea9ff028ce9","url":"assets/img/SC_logo_cloud2-thumb.webp"},{"revision":"af13f791c0eb6593d7a24f7f134446ae","url":"assets/img/SC_logo_cloud.webp"},{"revision":"808de57760b15603349620c143b01903","url":"assets/img/SC_logo_cloud-thumb.webp"},{"revision":"cf418139b5fb0dfec2df23eee0cd9c57","url":"assets/img/SC_demo.webp"},{"revision":"fb81145afefc1704a1ff707f27db1b45","url":"assets/img/SC_demo-thumb.webp"},{"revision":"a24864136287441f6d60a118bbc82853","url":"assets/img/RHDManual_Home.webp"},{"revision":"129468c15bb33e0561a378af2f367d62","url":"assets/img/RHDManual_Home-thumb.webp"},{"revision":"0888385eac9865f4dae2fd4c88516b9b","url":"assets/img/RHDManual_DesignResources.webp"},{"revision":"8741f30ea31175a5603a1ed21a45d8c3","url":"assets/img/RHDManual_DesignResources-thumb.webp"},{"revision":"63a99404d9881981fb74666e9d8797db","url":"assets/img/RHDManual_CreateArticles.webp"},{"revision":"78a08d7ff0717df57b429c2550f8a242","url":"assets/img/RHDManual_CreateArticles-thumb.webp"},{"revision":"3e8a5f9a2ddfadfea1733d61d7f5af34","url":"assets/img/OSIO-laptop-screen-1200.webp"},{"revision":"60994a3d98a89b81697b96b8b51f67b8","url":"assets/img/OSIO-laptop-screen-1200-thumb.webp"},{"revision":"010b9e7f2c3fbf86cdb12d349becc003","url":"assets/img/LightColors.webp"},{"revision":"00af04d4efb90e9d68123abd8b404239","url":"assets/img/LightColors-thumb.webp"},{"revision":"5bc91e190efed3ab24e1b269b4f68100","url":"assets/img/Jolicoeur_iOS.webp"},{"revision":"211d68312e3679a4611ad30cf864c814","url":"assets/img/Jolicoeur_iOS-thumb.webp"},{"revision":"df552a9cb2abc9730f37762d625a541d","url":"assets/img/Dashboardwireframe.webp"},{"revision":"8a50dbbf47fcb0a69a1ce425d8a0e302","url":"assets/img/Dashboardwireframe-thumb.webp"},{"revision":"cf3536dfac28462c000debb44c90c6f6","url":"assets/img/DarkColors.webp"},{"revision":"f6ace4955d415d17add752fe3645d979","url":"assets/img/DarkColors-thumb.webp"},{"revision":"4726abae8fe9ba5ead703a4860617959","url":"assets/img/CEA_wireframe_first.webp"},{"revision":"0dd77ece98b33351957899ebaecb84eb","url":"assets/img/CEA_wireframe_first-thumb.webp"},{"revision":"10cff4c88902eb7fb095d560ebe08656","url":"assets/img/CEA_Settings.webp"},{"revision":"3664367535e022b298c8bf6bbdbbffc1","url":"assets/img/CEA_Settings-thumb.webp"},{"revision":"34f0f0d7bc803f3cd6faf6cb0dc39225","url":"assets/img/CEA_Palette.webp"},{"revision":"6b3e5d1ab141c2ad819e377f4821422a","url":"assets/img/CEA_Palette-thumb.webp"},{"revision":"6b3ccbc3f3f413bf62753ac7c969964a","url":"assets/img/CEA_Navigation.webp"},{"revision":"c532e6b816e46658a38b397ba088445e","url":"assets/img/CEA_Navigation-thumb.webp"},{"revision":"aaad0b2d435ade2ec9cda576ea4142d8","url":"assets/img/CEA_Engagement.webp"},{"revision":"66ac4c66baccd03d9fbd0cedfb3b7598","url":"assets/img/CEA_Engagement-thumb.webp"},{"revision":"f0ffeeb9e7b285246b88f5f2ca9df038","url":"assets/img/CEA_Dashboard_fix.webp"},{"revision":"a4b972ec6c684809656744d8dd62d8e6","url":"assets/img/CEA_Dashboard_fix-thumb.webp"},{"revision":"c3f56cedb2cf5394e6fed82e7613caba","url":"assets/img/CEA_Dashboard.webp"},{"revision":"ed6c72c7ad1f6f5671f93ce316511cca","url":"assets/img/CEA_Dashboard-thumb.webp"},{"revision":"02fd80f0cdf881953d8e73fe2d5e4ee5","url":"assets/img/CEA_ClientDetail.webp"},{"revision":"fc473a8e11b5c02479a21fd350be5255","url":"assets/img/CEA_ClientDetail-thumb.webp"},{"revision":"d7cea3ab5ca61c495309fc293962e0c9","url":"assets/img/CEA_AssetExamples.webp"},{"revision":"1aa9dd2de2cebf72313733745e7b05f9","url":"assets/img/CEA_AssetExamples-thumb.webp"},{"revision":"adf60e7d3a0b9f753879631e69029cf3","url":"assets/img/CAS-Typography.webp"},{"revision":"8765be50ca0df38f5848f5279a863257","url":"assets/img/CAS-Typography-thumb.webp"},{"revision":"6d1a3c3096fc4cdcb5b9bd39c391956b","url":"assets/img/CAS-TextInputs.webp"},{"revision":"7d1863ea8aece00e1083c60204591309","url":"assets/img/CAS-TextInputs-thumb.webp"},{"revision":"d94f76e20fc6476dec7a7ef6492a0409","url":"assets/img/CAS-Table-Component.webp"},{"revision":"4550e54dd441bc9ceaf91cf01ad59935","url":"assets/img/CAS-Table-Component-thumb.webp"},{"revision":"bd0e2fd78e0039db0dbf99f42b353b31","url":"assets/img/CAS-SpacingSizing.webp"},{"revision":"215e8c83cf2099d1d23de00dd1d9db86","url":"assets/img/CAS-SpacingSizing-thumb.webp"},{"revision":"418910b5b68d458d75abf85f162912c8","url":"assets/img/CAS-Icons.webp"},{"revision":"0d219367cf5e7c921caaf7df76ec60b6","url":"assets/img/CAS-Icons-thumb.webp"},{"revision":"e6bd2045862159025593e402df49d7a4","url":"assets/img/CAS-Foreground-Light.webp"},{"revision":"666f5e15c3b2f398101ae2ac42269735","url":"assets/img/CAS-Foreground-Light-thumb.webp"},{"revision":"d3f003045df4396221549a4692c0120f","url":"assets/img/CAS-Foreground-Dark.webp"},{"revision":"d2428d176e3acbacb950c7a7c2e79a4e","url":"assets/img/CAS-Foreground-Dark-thumb.webp"},{"revision":"806bb3ad0ca68993cfb31fcac0487245","url":"assets/img/CAS-DropdownExamples.webp"},{"revision":"42f932585fcf01fb57e5cdfeae2ea0eb","url":"assets/img/CAS-DropdownExamples-thumb.webp"},{"revision":"5853e66bb82f46cec1a5e46757760339","url":"assets/img/CAS-ColorPalette.webp"},{"revision":"9f43f6e10dc11bb3a6445b553805b2f9","url":"assets/img/CAS-ColorPalette-thumb.webp"},{"revision":"c62ad87675d9f81b43f31a3b9d38f3a4","url":"assets/img/CAS-Cards.webp"},{"revision":"2c534735535164eb5e61e0e8bcca5031","url":"assets/img/CAS-Cards-thumb.webp"},{"revision":"2ebc94f65e8dc2f0fa431b75748c0833","url":"assets/img/CAS-ButtonExamples.webp"},{"revision":"ac68c3c0a09bc8a3e12d5269d4949f10","url":"assets/img/CAS-ButtonExamples-thumb.webp"},{"revision":"b5063a109a0b597a6208c030cb2de23e","url":"assets/img/AdamJolicoeur_dot_com.webp"},{"revision":"a868bf90f3bbdc3c44c47a8f953e887e","url":"assets/img/AdamJolicoeur_dot_com-thumb.webp"},{"revision":"c27ba3c061ebf387f9a341a86cb4184a","url":"assets/img/AdamJolicoeur_dot_com-minimal.webp"},{"revision":"cf1bc28847a4e7fbe752d2440642a282","url":"assets/img/AdamJolicoeur_dot_com-minimal-thumb.webp"},{"revision":"b71fa97efce4679de124df270f035013","url":"assets/img/ALM_workflow.webp"},{"revision":"755f8c5038a7146767790551bca98bd1","url":"assets/img/ALM_workflow-thumb.webp"},{"revision":"801d46e1fd02938b100bf1ee970a4239","url":"assets/img/ALM_wireframe.webp"},{"revision":"cb2a35fb98857a8d86db346128f72916","url":"assets/img/ALM_wireframe-thumb.webp"},{"revision":"8c9ff5c4b809bbaa3039959ca701a9f8","url":"assets/img/ALM_step3.webp"},{"revision":"b884074bbdb4a23c47fa6a3a427afcf1","url":"assets/img/ALM_step3-thumb.webp"},{"revision":"da1dd79707014450d07779a1ee5882fa","url":"assets/img/ALM_step2.webp"},{"revision":"b5a1d25be3b51c2d4a1dce9595fe53cc","url":"assets/img/ALM_step2-thumb.webp"},{"revision":"c8d4961cb79dd3c742e99bb9554a2b17","url":"assets/img/ALM_step1.webp"},{"revision":"4aefd7692611d52ca7ed593d60e4ad78","url":"assets/img/ALM_step1-thumb.webp"},{"revision":"ea08d9e2896de73786bacf2f2093d735","url":"assets/img/ALM_planner.webp"},{"revision":"e927157eac95fa3d1b5f04751b0217c0","url":"assets/img/ALM_planner-thumb.webp"},{"revision":"9e9ac4c97d57417093cb1ed019282851","url":"assets/img/404_lost_tree.webp"},{"revision":"3017430f1bb7266f7833291cdc19c6ab","url":"assets/img/404_lost_tree-thumb.webp"},{"revision":"20e08660153a3f7e3f0088c579751b51","url":"assets/img/2025-chatgpt-trophy.webp"},{"revision":"9d9db767fa1ebb66ca5d63dbc1089894","url":"assets/img/2025-chatgpt-trophy-thumb.webp"},{"revision":"da91e835ced244ccda3b852cb69a8aee","url":"assets/img/2025-chatgpt-still.webp"},{"revision":"8823c8a692ed160dd06d2e8d2fea9b74","url":"assets/img/2025-chatgpt-still-thumb.webp"},{"revision":"1cb637ff184f8408dd67b1f06709b7f7","url":"assets/img/2025-chatgpt-sticker.webp"},{"revision":"f69254bcd1ee8ffeefb7f561dc908089","url":"assets/img/2025-chatgpt-sticker-thumb.webp"},{"revision":"7d58965881d5c818a7064bd487c52642","url":"assets/img/2025-chatgpt-badges.webp"},{"revision":"498bdcc52d700a5fe56bd0382acd81ef","url":"assets/img/2025-chatgpt-badges-thumb.webp"},{"revision":"0da0716592e17e18015f112429a38975","url":"archives/town-selectman.html"},{"revision":"7853f46e5580212fc541cfb3ac37bce2","url":"archives/index.html"},{"revision":"397dde773f1e4f2119b09860056948bf","url":"apps/timetracker.html"},{"revision":"44721ab68105b818df960338e1f9e75e","url":"apps/taskstat.html"},{"revision":"ca009a182458b4d1dcb8785a9624a579","url":"apps/taskstat-privacy.html"},{"revision":"56226b46076c1c282d343db8ec39ef39","url":"apps/support.html"},{"revision":"4993d5e6d29b4d3daa5585a9693d2b13","url":"apps/soccer.html"},{"revision":"2843afbcd6857c6a712635b8b9074307","url":"apps/privacy.html"},{"revision":"88b55995b620b68f78044aeec0205759","url":"apps/moonsilver.html"},{"revision":"4aec1976ba7e39fffa810f5e5e53a647","url":"apps/magiccollection.html"},{"revision":"e47c0d081d97a5f82d14d910747ed6ea","url":"apps/index.html"},{"revision":"d794979357e8163a01a880bd7727f8c1","url":"apps/gamesandthings.html"},{"revision":"ff7a40d22f8f399f18b8040e221c76ed","url":"about/resume/index.html"},{"revision":"dd19d3f0f824ae9fef42b73fefa9674c","url":"about/adam/index.html"}] || []);
diff --git a/package.json b/package.json
index 52d8bff7..112d0683 100644
--- a/package.json
+++ b/package.json
@@ -16,7 +16,6 @@
"webhint": "hint http://localhost:8081",
"stylelint": "npx stylelint '**/*.scss'",
"stylelint:fix": "npx stylelint --fix `src/sass/style.scss`",
- "webawesome": "cp -R node_modules/@awesome.me/webawesome/dist/webawesome.js src/js",
"watch:sass": "sass --no-source-map --watch src/sass:docs/css",
"watch:eleventy": "eleventy --serve --port=8081",
"build:sass-nomap": "sass --no-source-map src/sass/style.scss docs/css/style.css",
@@ -43,23 +42,19 @@
},
"devDependencies": {
"@11ty/eleventy": "3.1.5",
- "@11ty/eleventy-activity-feed": "2.0.0",
"@11ty/eleventy-img": "6.0.4",
"@11ty/eleventy-navigation": "1.0.5",
"@11ty/eleventy-plugin-inclusive-language": "1.0.3",
"@11ty/eleventy-plugin-rss": "3.0.0",
"@11ty/eleventy-plugin-syntaxhighlight": "5.0.2",
- "@11ty/import": "1.0.19",
"@hint/hint-axe": "4.4.21",
"autoprefixer": "10.4.27",
"cross-env": "10.1.0",
"cssnano": "7.1.4",
- "dotenv": "17.4.1",
"eleventy-plugin-dropcap": "1.1.0",
"eleventy-plugin-toc": "1.1.5",
"emoji-regex": "10.6.0",
"hint": "7.1.13",
- "luxon": "3.7.2",
"markdown-it": "14.1.1",
"markdown-it-anchor": "9.2.0",
"markdown-it-eleventy-img": "0.10.2",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 1730daca..36cca0e6 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -4,6 +4,11 @@ settings:
autoInstallPeers: true
excludeLinksFromLockfile: false
+overrides:
+ tar: 7.5.13
+ tar-fs: 3.1.2
+ ws: 8.20.0
+
importers:
.:
@@ -24,9 +29,6 @@ importers:
'@11ty/eleventy':
specifier: 3.1.5
version: 3.1.5
- '@11ty/eleventy-activity-feed':
- specifier: 2.0.0
- version: 2.0.0
'@11ty/eleventy-img':
specifier: 6.0.4
version: 6.0.4
@@ -42,9 +44,6 @@ importers:
'@11ty/eleventy-plugin-syntaxhighlight':
specifier: 5.0.2
version: 5.0.2
- '@11ty/import':
- specifier: 1.0.19
- version: 1.0.19
'@hint/hint-axe':
specifier: 4.4.21
version: 4.4.21(encoding@0.1.13)(hint@7.1.13(canvas@2.11.2(encoding@0.1.13))(encoding@0.1.13)(typescript@6.0.2))
@@ -57,9 +56,6 @@ importers:
cssnano:
specifier: 7.1.4
version: 7.1.4(postcss@8.5.9)
- dotenv:
- specifier: 17.4.1
- version: 17.4.1
eleventy-plugin-dropcap:
specifier: 1.1.0
version: 1.1.0
@@ -72,9 +68,6 @@ importers:
hint:
specifier: 7.1.13
version: 7.1.13(canvas@2.11.2(encoding@0.1.13))(encoding@0.1.13)(typescript@6.0.2)
- luxon:
- specifier: 3.7.2
- version: 3.7.2
markdown-it:
specifier: 14.1.1
version: 14.1.1
@@ -117,9 +110,6 @@ packages:
'@11ty/dependency-tree@4.0.2':
resolution: {integrity: sha512-RTF6VTZHatYf7fSZBUN3RKwiUeJh5dhWV61gDPrHhQF2/gzruAkYz8yXuvGLx3w3ZBKreGrR+MfYpSVkdbdbLA==}
- '@11ty/eleventy-activity-feed@2.0.0':
- resolution: {integrity: sha512-DG9MQOHcalntx7YJojxGUHuMk2hLFYj2dUwMStAZgegzYfSnWUx/oU8U5TsSIqFqaAZhL6g7sACP7rWCYGpRgw==}
-
'@11ty/eleventy-dev-server@2.0.8':
resolution: {integrity: sha512-15oC5M1DQlCaOMUq4limKRYmWiGecDaGwryr7fTE/oM9Ix8siqMvWi+I8VjsfrGr+iViDvWcH/TVI6D12d93mA==}
engines: {node: '>=18'}
@@ -151,9 +141,6 @@ packages:
'@11ty/eleventy-plugin-inclusive-language@1.0.3':
resolution: {integrity: sha512-hQ+kD04aPphK2VYZZ3zqpOSwtvoFxLxxmi+5SVTvlqeQlWQ0SYA57Dg3W0Nj2LdshlYf6gwdGQq34O/MlyolYw==}
- '@11ty/eleventy-plugin-rss@2.0.4':
- resolution: {integrity: sha512-LF60sGVlxGTryQe3hTifuzrwF8R7XbrNsM2xfcDcNMSliLN4kmB+7zvoLRySRx0AQDjqhPTAeeeT0ra6/9zHUQ==}
-
'@11ty/eleventy-plugin-rss@3.0.0':
resolution: {integrity: sha512-kKW4DcR57xAyRx0e8gNhKh56ahHVEaAj8/TuXQDnw+B46ig2bWADJAlyj/GdV37IG5ja9dZ4SgKZrs/CHz6YWQ==}
@@ -169,11 +156,6 @@ packages:
engines: {node: '>=18'}
hasBin: true
- '@11ty/import@1.0.19':
- resolution: {integrity: sha512-cr+LzA15IKUbEQJC6htMbZ0DmqMnUwkqPbRUV/DzNmgp4sYYeFNkp8Rqz9lLpTQomt+SvHFFXrctoFa1VwyTCw==}
- engines: {node: '>=18'}
- hasBin: true
-
'@11ty/lodash-custom@4.17.21':
resolution: {integrity: sha512-Mqt6im1xpb1Ykn3nbcCovWXK3ggywRJa+IXIdoz4wIIK+cvozADH63lexcuPpGS/gJ6/m2JxyyXDyupkMr5DHw==}
engines: {node: '>=14'}
@@ -1251,6 +1233,10 @@ packages:
resolution: {integrity: sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==}
engines: {node: '>=18'}
+ '@isaacs/fs-minipass@4.0.1':
+ resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==}
+ engines: {node: '>=18.0.0'}
+
'@jridgewell/gen-mapping@0.3.13':
resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
@@ -1286,9 +1272,6 @@ packages:
'@mdn/browser-compat-data@5.7.6':
resolution: {integrity: sha512-7xdrMX0Wk7grrTZQwAoy1GkvPMFoizStUoL+VmtUkAxegbCCec+3FKwOM6yc/uGU5+BEczQHXAlWiqvM8JeENg==}
- '@mixmark-io/domino@2.2.0':
- resolution: {integrity: sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw==}
-
'@nodelib/fs.scandir@2.1.5':
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
engines: {node: '>= 8'}
@@ -1400,11 +1383,6 @@ packages:
'@popperjs/core@2.11.8':
resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==}
- '@prettier/sync@0.6.1':
- resolution: {integrity: sha512-yF9G8vK/LYUTF3Cijd7VC9La3b20F20/J/fgoR4H0B8JGOWnZVZX6+I6+vODPosjmMcpdlUV+gUqJQZp3kLOcw==}
- peerDependencies:
- prettier: '*'
-
'@rgrove/parse-xml@4.2.0':
resolution: {integrity: sha512-UuBOt7BOsKVOkFXRe4Ypd/lADuNIfqJXv8GvHqtXaTYXPPKkj2nS2zPllVsrtRjcomDhIJVBnZwfmlI222WH8g==}
engines: {node: '>=14.0.0'}
@@ -1840,6 +1818,14 @@ packages:
resolution: {integrity: sha512-byD6KPdvo72y/wj2T/4zGEvvlis+PsZsn/yPS3pEO+sFpcrqRpX/TJCxvVaEsNeMrfQbCr7w163YqoD9IYwHXw==}
engines: {node: '>=4'}
+ b4a@1.8.1:
+ resolution: {integrity: sha512-aiqre1Nr0B/6DgE2N5vwTc+2/oQZ4Wh1t4NznYY4E00y8LCt6NqdRv81so00oo27D8MVKTpUa/MwUUtBLXCoDw==}
+ peerDependencies:
+ react-native-b4a: '*'
+ peerDependenciesMeta:
+ react-native-b4a:
+ optional: true
+
babel-plugin-polyfill-corejs2@0.4.17:
resolution: {integrity: sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==}
peerDependencies:
@@ -1862,6 +1848,47 @@ packages:
resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==}
engines: {node: 18 || 20 || >=22}
+ bare-events@2.9.1:
+ resolution: {integrity: sha512-Z0oHEHAFDZkffN8Qc39zNZjQlMDkPJRyyyZieU1VH7u8c5S+qHZ2S8ixdKIAxEjfHO7FJxXmJWgteOghVanIsg==}
+ peerDependencies:
+ bare-abort-controller: '*'
+ peerDependenciesMeta:
+ bare-abort-controller:
+ optional: true
+
+ bare-fs@4.7.2:
+ resolution: {integrity: sha512-aTvMFUWkBmjzKtEQMDGGDNF8bkfpD5N1b/FCwt7A3wrU4t1o/e/85Wzkluh6JlODCjqVESYCkQCdTXqZ9G7VFg==}
+ engines: {bare: '>=1.16.0'}
+ peerDependencies:
+ bare-buffer: '*'
+ peerDependenciesMeta:
+ bare-buffer:
+ optional: true
+
+ bare-os@3.9.2:
+ resolution: {integrity: sha512-h530JsrkYi8518ZfR57GHaLoI5YzXkGGEV0Y+mf4KYPBn4OnNajiznwkDq7FgE+Vnmyss9Utnzi44y7sowiAXA==}
+ engines: {bare: '>=1.14.0'}
+
+ bare-path@3.0.1:
+ resolution: {integrity: sha512-ghj2DSK/2e99a1anTVPCV4m4YIYtrbXhfM7V3D7XZLOTsybnYyaJloymGqssQc8l/or0UoDyRtNQkmkEF/ysgQ==}
+
+ bare-stream@2.13.3:
+ resolution: {integrity: sha512-Kc+brLqvEqGkjyfiwJmImAOqLZL7OsoLKuavx+hJjgVV3nLTOjloJyPMFxjUPerGGHrNH0fLU06jjykMLWrERQ==}
+ peerDependencies:
+ bare-abort-controller: '*'
+ bare-buffer: '*'
+ bare-events: '*'
+ peerDependenciesMeta:
+ bare-abort-controller:
+ optional: true
+ bare-buffer:
+ optional: true
+ bare-events:
+ optional: true
+
+ bare-url@2.4.5:
+ resolution: {integrity: sha512-K+y9xF1tN+CdPu4qWwr0QiK1Al07eFPGYK5M2pDXcmHdMdgC/tT/bpmMe1hrmRHaidKLkXrC+cRNYf3XVDUhSQ==}
+
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
@@ -2009,12 +2036,9 @@ packages:
resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
engines: {node: '>= 14.16.0'}
- chownr@1.1.4:
- resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==}
-
- chownr@2.0.0:
- resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
- engines: {node: '>=10'}
+ chownr@3.0.0:
+ resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==}
+ engines: {node: '>=18'}
ci-info@2.0.0:
resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==}
@@ -2360,10 +2384,6 @@ packages:
resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==}
engines: {node: '>=8'}
- dotenv@17.4.1:
- resolution: {integrity: sha512-k8DaKGP6r1G30Lx8V4+pCsLzKr8vLmV2paqEj1Y55GdAgJuIqpRp5FfajGF8KtwMxCz9qJc6wUIJnm053d/WCw==}
- engines: {node: '>=12'}
-
dunder-proto@1.0.1:
resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
engines: {node: '>= 0.4'}
@@ -2542,6 +2562,9 @@ packages:
eventemitter3@4.0.7:
resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
+ events-universal@1.0.1:
+ resolution: {integrity: sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==}
+
events@3.3.0:
resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
engines: {node: '>=0.8.x'}
@@ -2562,6 +2585,9 @@ packages:
fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
+ fast-fifo@1.3.2:
+ resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==}
+
fast-glob@3.3.3:
resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
engines: {node: '>=8.6.0'}
@@ -2575,17 +2601,10 @@ packages:
fast-uri@3.1.0:
resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==}
- fast-xml-builder@1.1.4:
- resolution: {integrity: sha512-f2jhpN4Eccy0/Uz9csxh3Nu6q4ErKxf0XIsasomfOihuSUa3/xw6w8dnOtCDgEItQFJG8KyXPzQXzcODDrrbOg==}
-
fast-xml-parser@4.5.6:
resolution: {integrity: sha512-Yd4vkROfJf8AuJrDIVMVmYfULKmIJszVsMv7Vo71aocsKgFxpdlpSHXSaInvyYfgw2PRuObQSW2GFpVMUjxu9A==}
hasBin: true
- fast-xml-parser@5.5.11:
- resolution: {integrity: sha512-QL0eb0YbSTVWF6tTf1+LEMSgtCEjBYPpnAjoLC8SscESlAjXEIRJ7cHtLG0pLeDFaZLa4VKZLArtA/60ZS7vyA==}
- hasBin: true
-
fastest-levenshtein@1.0.16:
resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==}
engines: {node: '>= 4.9.1'}
@@ -2660,9 +2679,6 @@ packages:
resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==}
engines: {node: '>= 0.8'}
- fs-constants@1.0.0:
- resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==}
-
fs-extra@11.3.4:
resolution: {integrity: sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==}
engines: {node: '>=14.14'}
@@ -2671,10 +2687,6 @@ packages:
resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==}
engines: {node: '>=10'}
- fs-minipass@2.1.0:
- resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
- engines: {node: '>= 8'}
-
fs-minipass@3.0.3:
resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
@@ -2741,10 +2753,6 @@ packages:
resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==}
engines: {node: '>= 0.4'}
- github-publish@6.0.0:
- resolution: {integrity: sha512-l2qCwt0QoAUH0Fgq05VQ2UZKCBOq/v3gogl0XViMf25Cn+7A9206uJ0cfnLUxVBq74IsziGc/jJFkiUDpJYVUg==}
- engines: {node: '>=18.17.0'}
-
glob-parent@5.1.2:
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
engines: {node: '>= 6'}
@@ -3501,9 +3509,6 @@ packages:
resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
- make-synchronized@0.8.0:
- resolution: {integrity: sha512-DZu4lwc0ffoFz581BSQa/BJl+1ZqIkoRQ+VejMlH0VrP4E86StAODnZujZ4sepumQj8rcP7wUnUBGM8Gu+zKUA==}
-
map-age-cleaner@0.1.3:
resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==}
engines: {node: '>=6'}
@@ -3666,13 +3671,9 @@ packages:
resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
engines: {node: '>= 8'}
- mkdirp-classic@0.5.3:
- resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==}
-
- mkdirp@1.0.4:
- resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
- engines: {node: '>=10'}
- hasBin: true
+ minizlib@3.1.0:
+ resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==}
+ engines: {node: '>= 18'}
moo@0.5.2:
resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==}
@@ -3923,10 +3924,6 @@ packages:
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
engines: {node: '>=8'}
- path-expression-matcher@1.4.0:
- resolution: {integrity: sha512-s4DQMxIdhj3jLFWd9LxHOplj4p9yQ4ffMGowFf3cpEgrrJjEhN0V5nxw4Ye1EViAGDoL4/1AeO6qHpqYPOzE4Q==}
- engines: {node: '>=14.0.0'}
-
path-is-absolute@1.0.1:
resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
engines: {node: '>=0.10.0'}
@@ -3996,10 +3993,6 @@ packages:
please-upgrade-node@3.2.0:
resolution: {integrity: sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==}
- pony-cause@2.1.11:
- resolution: {integrity: sha512-M7LhCsdNbNgiLYiP4WjsfLUuFmCfnjdF6jKe2R9NKl4WFN+HZPGHJZ9lnLP7f9ZnKe3U9nuWD0szirmj+migUg==}
- engines: {node: '>=12.0.0'}
-
possible-typed-array-names@1.1.0:
resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==}
engines: {node: '>= 0.4'}
@@ -4272,11 +4265,6 @@ packages:
resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==}
engines: {node: '>=4'}
- prettier@3.8.1:
- resolution: {integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==}
- engines: {node: '>=14'}
- hasBin: true
-
pretty-bytes@5.6.0:
resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==}
engines: {node: '>=6'}
@@ -4695,6 +4683,9 @@ packages:
resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==}
engines: {node: '>= 0.4'}
+ streamx@2.28.0:
+ resolution: {integrity: sha512-1Yowhzjf0ivGMrTIkY9hav5TxobO9qIVqUE41fiCGMGgc3CLlf4MY+9AHmZqBWgDTue0fY9zWjYFVyf6Diuobw==}
+
string-width@4.2.3:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
@@ -4762,15 +4753,9 @@ packages:
resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
engines: {node: '>=0.10.0'}
- striptags@3.2.0:
- resolution: {integrity: sha512-g45ZOGzHDMe2bdYMdIvdAfCQkCTDMGBazSw1ypMowwGIee7ZQ5dU0rBJ8Jqgl+jAKIv4dbeE1jscZq9wid1Tkw==}
-
strnum@1.1.2:
resolution: {integrity: sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==}
- strnum@2.2.3:
- resolution: {integrity: sha512-oKx6RUCuHfT3oyVjtnrmn19H1SiCqgJSg+54XqURKp5aCMbrXrhLjRN9TjuwMjiYstZ0MzDrHqkGZ5dFTKd+zg==}
-
strtok3@6.3.0:
resolution: {integrity: sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==}
engines: {node: '>=10'}
@@ -4865,17 +4850,18 @@ packages:
resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==}
engines: {node: '>=10.0.0'}
- tar-fs@2.1.1:
- resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==}
+ tar-fs@3.1.2:
+ resolution: {integrity: sha512-QGxxTxxyleAdyM3kpFs14ymbYmNFrfY+pHj7Z8FgtbZ7w2//VAgLMac7sT6nRpIHjppXO2AwwEOg0bPFVRcmXw==}
- tar-stream@2.2.0:
- resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==}
- engines: {node: '>=6'}
+ tar-stream@3.2.0:
+ resolution: {integrity: sha512-ojzvCvVaNp6aOTFmG7jaRD0meowIAuPc3cMMhSgKiVWws1GyHbGd/xvnyuRKcKlMpt3qvxx6r0hreCNITP9hIg==}
- tar@6.2.1:
- resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==}
- engines: {node: '>=10'}
- deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
+ tar@7.5.13:
+ resolution: {integrity: sha512-tOG/7GyXpFevhXVh8jOPJrmtRpOTsYqUIkVdVooZYJS/z8WhfQUX8RJILmeuJNinGAMSu1veBr4asSHFt5/hng==}
+ engines: {node: '>=18'}
+
+ teex@1.0.1:
+ resolution: {integrity: sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==}
temp-dir@2.0.0:
resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==}
@@ -4890,6 +4876,9 @@ packages:
engines: {node: '>=10'}
hasBin: true
+ text-decoder@1.2.7:
+ resolution: {integrity: sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==}
+
text-table@0.2.0:
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
@@ -4949,10 +4938,6 @@ packages:
peerDependencies:
typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
- turndown@https://codeload.github.com/zachleat/fork-turndown/tar.gz/7c2b27875713d37d3eb079c001ecc0b2502539d2:
- resolution: {gitHosted: true, tarball: https://codeload.github.com/zachleat/fork-turndown/tar.gz/7c2b27875713d37d3eb079c001ecc0b2502539d2}
- version: 7.2.0
-
type-check@0.4.0:
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
engines: {node: '>= 0.8.0'}
@@ -5002,10 +4987,6 @@ packages:
undici-types@7.18.2:
resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==}
- undici@6.24.1:
- resolution: {integrity: sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA==}
- engines: {node: '>=18.17'}
-
undici@7.24.7:
resolution: {integrity: sha512-H/nlJ/h0ggGC+uRL3ovD+G0i4bqhvsDOpbDv7At5eFLlj2b41L8QliGbnl2H7SnDiYhENphh1tQFJZf+MyfLsQ==}
engines: {node: '>=20.18.1'}
@@ -5252,18 +5233,6 @@ packages:
utf-8-validate:
optional: true
- ws@8.5.0:
- resolution: {integrity: sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==}
- engines: {node: '>=10.0.0'}
- peerDependencies:
- bufferutil: ^4.0.1
- utf-8-validate: ^5.0.2
- peerDependenciesMeta:
- bufferutil:
- optional: true
- utf-8-validate:
- optional: true
-
xdg-basedir@4.0.0:
resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==}
engines: {node: '>=8'}
@@ -5285,6 +5254,10 @@ packages:
yallist@4.0.0:
resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
+ yallist@5.0.0:
+ resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==}
+ engines: {node: '>=18'}
+
yaml@2.8.3:
resolution: {integrity: sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==}
engines: {node: '>= 14.6'}
@@ -5314,13 +5287,6 @@ snapshots:
dependencies:
'@11ty/eleventy-utils': 2.0.7
- '@11ty/eleventy-activity-feed@2.0.0':
- dependencies:
- '@11ty/eleventy-plugin-rss': 2.0.4
- '@11ty/import': 1.0.19
- transitivePeerDependencies:
- - supports-color
-
'@11ty/eleventy-dev-server@2.0.8':
dependencies:
'@11ty/eleventy-utils': 2.0.7
@@ -5403,15 +5369,6 @@ snapshots:
dependencies:
chalk: 4.1.2
- '@11ty/eleventy-plugin-rss@2.0.4':
- dependencies:
- '@11ty/eleventy-utils': 2.0.7
- '@11ty/posthtml-urls': 1.0.3
- debug: 4.4.3
- posthtml: 0.16.7
- transitivePeerDependencies:
- - supports-color
-
'@11ty/eleventy-plugin-rss@3.0.0':
dependencies:
'@11ty/eleventy-utils': 2.0.7
@@ -5467,27 +5424,6 @@ snapshots:
- supports-color
- utf-8-validate
- '@11ty/import@1.0.19':
- dependencies:
- '@11ty/eleventy-fetch': 5.1.2
- '@11ty/eleventy-utils': 2.0.7
- '@11ty/posthtml-urls': 1.0.3
- '@prettier/sync': 0.6.1(prettier@3.8.1)
- '@sindresorhus/slugify': 2.2.1
- dotenv: 17.4.1
- entities: 7.0.1
- fast-xml-parser: 5.5.11
- filesize: 10.1.6
- github-publish: 6.0.0
- js-yaml: 4.1.1
- kleur: 4.1.5
- posthtml: 0.16.7
- prettier: 3.8.1
- striptags: 3.2.0
- turndown: https://codeload.github.com/zachleat/fork-turndown/tar.gz/7c2b27875713d37d3eb079c001ecc0b2502539d2
- transitivePeerDependencies:
- - supports-color
-
'@11ty/lodash-custom@4.17.21': {}
'@11ty/posthtml-urls@1.0.3':
@@ -6246,8 +6182,11 @@ snapshots:
'@hint/hint-axe': 4.4.21(encoding@0.1.13)(hint@7.1.13(canvas@2.11.2(encoding@0.1.13))(encoding@0.1.13)(typescript@6.0.2))
hint: 7.1.13(canvas@2.11.2(encoding@0.1.13))(encoding@0.1.13)(typescript@6.0.2)
transitivePeerDependencies:
+ - bare-abort-controller
+ - bare-buffer
- bufferutil
- encoding
+ - react-native-b4a
- supports-color
- utf-8-validate
optional: true
@@ -6290,9 +6229,12 @@ snapshots:
'@hint/parser-webpack-config': 2.1.42(encoding@0.1.13)(hint@7.1.13(canvas@2.11.2(encoding@0.1.13))(encoding@0.1.13)(typescript@6.0.2))
hint: 7.1.13(canvas@2.11.2(encoding@0.1.13))(encoding@0.1.13)(typescript@6.0.2)
transitivePeerDependencies:
+ - bare-abort-controller
+ - bare-buffer
- bufferutil
- canvas
- encoding
+ - react-native-b4a
- supports-color
- typescript
- utf-8-validate
@@ -6312,8 +6254,11 @@ snapshots:
'@hint/parser-manifest': 2.3.20(encoding@0.1.13)(hint@7.1.13(canvas@2.11.2(encoding@0.1.13))(encoding@0.1.13)(typescript@6.0.2))
hint: 7.1.13(canvas@2.11.2(encoding@0.1.13))(encoding@0.1.13)(typescript@6.0.2)
transitivePeerDependencies:
+ - bare-abort-controller
+ - bare-buffer
- bufferutil
- encoding
+ - react-native-b4a
- supports-color
- utf-8-validate
optional: true
@@ -6363,9 +6308,12 @@ snapshots:
'@hint/parser-javascript': 3.1.25(hint@7.1.13(canvas@2.11.2(encoding@0.1.13))(encoding@0.1.13)(typescript@6.0.2))
hint: 7.1.13(canvas@2.11.2(encoding@0.1.13))(encoding@0.1.13)(typescript@6.0.2)
transitivePeerDependencies:
+ - bare-abort-controller
+ - bare-buffer
- bufferutil
- canvas
- encoding
+ - react-native-b4a
- supports-color
- utf-8-validate
optional: true
@@ -6424,8 +6372,11 @@ snapshots:
lockfile: 1.0.4
puppeteer-core: 13.7.0(encoding@0.1.13)
transitivePeerDependencies:
+ - bare-abort-controller
+ - bare-buffer
- bufferutil
- encoding
+ - react-native-b4a
- supports-color
- utf-8-validate
optional: true
@@ -7281,6 +7232,10 @@ snapshots:
'@isaacs/cliui@9.0.0': {}
+ '@isaacs/fs-minipass@4.0.1':
+ dependencies:
+ minipass: 7.1.3
+
'@jridgewell/gen-mapping@0.3.13':
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
@@ -7323,7 +7278,7 @@ snapshots:
npmlog: 5.0.1
rimraf: 3.0.2
semver: 7.7.4
- tar: 6.2.1
+ tar: 7.5.13
transitivePeerDependencies:
- encoding
- supports-color
@@ -7332,8 +7287,6 @@ snapshots:
'@mdn/browser-compat-data@5.7.6':
optional: true
- '@mixmark-io/domino@2.2.0': {}
-
'@nodelib/fs.scandir@2.1.5':
dependencies:
'@nodelib/fs.stat': 2.0.5
@@ -7416,11 +7369,6 @@ snapshots:
'@popperjs/core@2.11.8': {}
- '@prettier/sync@0.6.1(prettier@3.8.1)':
- dependencies:
- make-synchronized: 0.8.0
- prettier: 3.8.1
-
'@rgrove/parse-xml@4.2.0': {}
'@rollup/plugin-babel@6.1.0(@babel/core@7.29.7)(rollup@4.60.4)':
@@ -7793,6 +7741,9 @@ snapshots:
axe-core@4.11.2: {}
+ b4a@1.8.1:
+ optional: true
+
babel-plugin-polyfill-corejs2@0.4.17(@babel/core@7.29.7):
dependencies:
'@babel/compat-data': 7.29.7
@@ -7821,6 +7772,45 @@ snapshots:
balanced-match@4.0.4: {}
+ bare-events@2.9.1:
+ optional: true
+
+ bare-fs@4.7.2:
+ dependencies:
+ bare-events: 2.9.1
+ bare-path: 3.0.1
+ bare-stream: 2.13.3(bare-events@2.9.1)
+ bare-url: 2.4.5
+ fast-fifo: 1.3.2
+ transitivePeerDependencies:
+ - bare-abort-controller
+ - react-native-b4a
+ optional: true
+
+ bare-os@3.9.2:
+ optional: true
+
+ bare-path@3.0.1:
+ dependencies:
+ bare-os: 3.9.2
+ optional: true
+
+ bare-stream@2.13.3(bare-events@2.9.1):
+ dependencies:
+ b4a: 1.8.1
+ streamx: 2.28.0
+ teex: 1.0.1
+ optionalDependencies:
+ bare-events: 2.9.1
+ transitivePeerDependencies:
+ - react-native-b4a
+ optional: true
+
+ bare-url@2.4.5:
+ dependencies:
+ bare-path: 3.0.1
+ optional: true
+
base64-js@1.5.1: {}
baseline-browser-mapping@2.10.17: {}
@@ -7922,7 +7912,7 @@ snapshots:
minipass-pipeline: 1.2.4
p-map: 4.0.0
ssri: 10.0.6
- tar: 6.2.1
+ tar: 7.5.13
unique-filename: 3.0.0
cacheable-lookup@5.0.4:
@@ -8047,10 +8037,7 @@ snapshots:
dependencies:
readdirp: 4.1.2
- chownr@1.1.4:
- optional: true
-
- chownr@2.0.0: {}
+ chownr@3.0.0: {}
ci-info@2.0.0: {}
@@ -8424,8 +8411,6 @@ snapshots:
dependencies:
is-obj: 2.0.0
- dotenv@17.4.1: {}
-
dunder-proto@1.0.1:
dependencies:
call-bind-apply-helpers: 1.0.2
@@ -8623,6 +8608,13 @@ snapshots:
eventemitter3@4.0.7: {}
+ events-universal@1.0.1:
+ dependencies:
+ bare-events: 2.9.1
+ transitivePeerDependencies:
+ - bare-abort-controller
+ optional: true
+
events@3.3.0: {}
execa@4.1.0:
@@ -8654,6 +8646,9 @@ snapshots:
fast-deep-equal@3.1.3: {}
+ fast-fifo@1.3.2:
+ optional: true
+
fast-glob@3.3.3:
dependencies:
'@nodelib/fs.stat': 2.0.5
@@ -8668,20 +8663,10 @@ snapshots:
fast-uri@3.1.0: {}
- fast-xml-builder@1.1.4:
- dependencies:
- path-expression-matcher: 1.4.0
-
fast-xml-parser@4.5.6:
dependencies:
strnum: 1.1.2
- fast-xml-parser@5.5.11:
- dependencies:
- fast-xml-builder: 1.1.4
- path-expression-matcher: 1.4.0
- strnum: 2.2.3
-
fastest-levenshtein@1.0.16: {}
fastq@1.20.1:
@@ -8771,9 +8756,6 @@ snapshots:
fresh@2.0.0: {}
- fs-constants@1.0.0:
- optional: true
-
fs-extra@11.3.4:
dependencies:
graceful-fs: 4.2.11
@@ -8787,10 +8769,6 @@ snapshots:
jsonfile: 6.2.0
universalify: 2.0.1
- fs-minipass@2.1.0:
- dependencies:
- minipass: 3.3.6
-
fs-minipass@3.0.3:
dependencies:
minipass: 7.1.3
@@ -8868,11 +8846,6 @@ snapshots:
es-errors: 1.3.0
get-intrinsic: 1.3.0
- github-publish@6.0.0:
- dependencies:
- pony-cause: 2.1.11
- undici: 6.24.1
-
glob-parent@5.1.2:
dependencies:
is-glob: 4.0.3
@@ -9051,9 +9024,12 @@ snapshots:
'@hint/configuration-development': 8.3.20(canvas@2.11.2(encoding@0.1.13))(encoding@0.1.13)(hint@7.1.13(canvas@2.11.2(encoding@0.1.13))(encoding@0.1.13)(typescript@6.0.2))(typescript@6.0.2)
'@hint/configuration-web-recommended': 8.2.24(canvas@2.11.2(encoding@0.1.13))(encoding@0.1.13)(hint@7.1.13(canvas@2.11.2(encoding@0.1.13))(encoding@0.1.13)(typescript@6.0.2))
transitivePeerDependencies:
+ - bare-abort-controller
+ - bare-buffer
- bufferutil
- canvas
- encoding
+ - react-native-b4a
- supports-color
- typescript
- utf-8-validate
@@ -9643,8 +9619,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- make-synchronized@0.8.0: {}
-
map-age-cleaner@0.1.3:
dependencies:
p-defer: 1.0.0
@@ -9797,10 +9771,9 @@ snapshots:
minipass: 3.3.6
yallist: 4.0.0
- mkdirp-classic@0.5.3:
- optional: true
-
- mkdirp@1.0.4: {}
+ minizlib@3.1.0:
+ dependencies:
+ minipass: 7.1.3
moo@0.5.2: {}
@@ -10076,8 +10049,6 @@ snapshots:
path-exists@4.0.0:
optional: true
- path-expression-matcher@1.4.0: {}
-
path-is-absolute@1.0.1: {}
path-key@2.0.1: {}
@@ -10128,8 +10099,6 @@ snapshots:
dependencies:
semver-compare: 1.0.0
- pony-cause@2.1.11: {}
-
possible-typed-array-names@1.1.0: {}
postcss-calc@10.1.1(postcss@8.5.9):
@@ -10382,8 +10351,6 @@ snapshots:
prepend-http@2.0.0: {}
- prettier@3.8.1: {}
-
pretty-bytes@5.6.0: {}
pretty-hrtime@1.0.3: {}
@@ -10436,12 +10403,15 @@ snapshots:
progress: 2.0.3
proxy-from-env: 1.1.0
rimraf: 3.0.2
- tar-fs: 2.1.1
+ tar-fs: 3.1.2
unbzip2-stream: 1.4.3
- ws: 8.5.0
+ ws: 8.20.0
transitivePeerDependencies:
+ - bare-abort-controller
+ - bare-buffer
- bufferutil
- encoding
+ - react-native-b4a
- supports-color
- utf-8-validate
optional: true
@@ -10893,6 +10863,16 @@ snapshots:
es-errors: 1.3.0
internal-slot: 1.1.0
+ streamx@2.28.0:
+ dependencies:
+ events-universal: 1.0.1
+ fast-fifo: 1.3.2
+ text-decoder: 1.2.7
+ transitivePeerDependencies:
+ - bare-abort-controller
+ - react-native-b4a
+ optional: true
+
string-width@4.2.3:
dependencies:
emoji-regex: 8.0.0
@@ -10984,12 +10964,8 @@ snapshots:
strip-json-comments@2.0.1: {}
- striptags@3.2.0: {}
-
strnum@1.1.2: {}
- strnum@2.2.3: {}
-
strtok3@6.3.0:
dependencies:
'@tokenizer/token': 0.3.0
@@ -11127,31 +11103,46 @@ snapshots:
string-width: 4.2.3
strip-ansi: 6.0.1
- tar-fs@2.1.1:
+ tar-fs@3.1.2:
dependencies:
- chownr: 1.1.4
- mkdirp-classic: 0.5.3
pump: 3.0.4
- tar-stream: 2.2.0
+ tar-stream: 3.2.0
+ optionalDependencies:
+ bare-fs: 4.7.2
+ bare-path: 3.0.1
+ transitivePeerDependencies:
+ - bare-abort-controller
+ - bare-buffer
+ - react-native-b4a
optional: true
- tar-stream@2.2.0:
+ tar-stream@3.2.0:
dependencies:
- bl: 4.1.0
- end-of-stream: 1.4.5
- fs-constants: 1.0.0
- inherits: 2.0.4
- readable-stream: 3.6.2
+ b4a: 1.8.1
+ bare-fs: 4.7.2
+ fast-fifo: 1.3.2
+ streamx: 2.28.0
+ transitivePeerDependencies:
+ - bare-abort-controller
+ - bare-buffer
+ - react-native-b4a
optional: true
- tar@6.2.1:
+ tar@7.5.13:
dependencies:
- chownr: 2.0.0
- fs-minipass: 2.1.0
- minipass: 5.0.0
- minizlib: 2.1.2
- mkdirp: 1.0.4
- yallist: 4.0.0
+ '@isaacs/fs-minipass': 4.0.1
+ chownr: 3.0.0
+ minipass: 7.1.3
+ minizlib: 3.1.0
+ yallist: 5.0.0
+
+ teex@1.0.1:
+ dependencies:
+ streamx: 2.28.0
+ transitivePeerDependencies:
+ - bare-abort-controller
+ - react-native-b4a
+ optional: true
temp-dir@2.0.0: {}
@@ -11169,6 +11160,13 @@ snapshots:
commander: 2.20.3
source-map-support: 0.5.21
+ text-decoder@1.2.7:
+ dependencies:
+ b4a: 1.8.1
+ transitivePeerDependencies:
+ - react-native-b4a
+ optional: true
+
text-table@0.2.0:
optional: true
@@ -11231,10 +11229,6 @@ snapshots:
typescript: 6.0.2
optional: true
- turndown@https://codeload.github.com/zachleat/fork-turndown/tar.gz/7c2b27875713d37d3eb079c001ecc0b2502539d2:
- dependencies:
- '@mixmark-io/domino': 2.2.0
-
type-check@0.4.0:
dependencies:
prelude-ls: 1.2.1
@@ -11300,8 +11294,6 @@ snapshots:
undici-types@7.18.2: {}
- undici@6.24.1: {}
-
undici@7.24.7: {}
unicode-canonical-property-names-ecmascript@2.0.1: {}
@@ -11635,9 +11627,6 @@ snapshots:
ws@8.20.0: {}
- ws@8.5.0:
- optional: true
-
xdg-basedir@4.0.0: {}
xml-name-validator@4.0.0:
@@ -11652,6 +11641,8 @@ snapshots:
yallist@4.0.0: {}
+ yallist@5.0.0: {}
+
yaml@2.8.3: {}
yargs-parser@21.1.1: {}
diff --git a/src/js/icon-component.js b/src/js/icon-component.js
deleted file mode 100644
index 9378d935..00000000
--- a/src/js/icon-component.js
+++ /dev/null
@@ -1,131 +0,0 @@
-// Code created using prompts in Claude
-class IconComponent extends HTMLElement {
- static get observedAttributes() {
- return ['name', 'size', 'color'];
- }
-
- // Size mapping
- static sizes = {
- xs: '0.5rem',
- sm: '.75rem',
- md: '1rem',
- lg: '1.5rem',
- xl: '2rem'
- };
-
- // Color mapping
- static colors = {
- current: 'currentColor',
- primary: 'var(--sl-color-neutral-700)',
- secondary: 'var(--sl-color-neutral-500)',
- success: '#16a34a',
- danger: '#dc2626',
- warning: '#ca8a04'
- };
-
- // connectedCallback() {
- // // Load Font Awesome if not already loaded
- // if (!document.querySelector('#font-awesome-css')) {
- // const link = document.createElement('link');
- // link.id = 'font-awesome-css';
- // link.rel = 'stylesheet';
- // link.href = '/css/fontawesome.css';
- // document.head.appendChild(link);
- // }
- // this.render();
- // }
-
- attributeChangedCallback() {
- this.render();
- }
-
- render() {
- const name = this.getAttribute('name') || 'star';
- const size = this.getAttribute('size') || 'md';
- const color = this.getAttribute('color') || 'current';
- const type = this.getAttribute('type') || 'sharp';
- const weight = this.getAttribute('weight') || 'regular';
-
- const fontSize = IconComponent.sizes[size];
- const iconColor = IconComponent.colors[color];
-
- this.innerHTML = ''; // Clear existing content
-
- // Set component styles
- // this.style.display = 'inline-block';
- this.style.width = fontSize;
- this.style.height = fontSize;
- this.style.color = iconColor;
-
- // Create the icon element
- const icon = document.createElement('i');
- icon.className = `fa-${type} fa-${weight} fa-${name}`;
- icon.style.fontSize = fontSize;
- icon.setAttribute('aria-hidden', 'true');
-
- this.appendChild(icon);
- }
-}
-
-// Register the custom element
-customElements.define('fa-icon', IconComponent);
-//
-
-// Icon Duo for fa-duotone icons
-class IconDuo extends HTMLElement {
- static get observedAttributes() {
- return ['name', 'size', 'color'];
- }
- // Size mapping
- static sizes = {
- xs: '0.5rem',
- sm: '.75rem',
- md: '1rem',
- lg: '1.5rem',
- xl: '2rem'
- };
- // Color mapping
- static colors = {
- current: 'currentColor',
- primary: 'var(--sl-color-neutral-700)',
- secondary: 'var(--sl-color-neutral-500)',
- success: '#16a34a',
- danger: '#dc2626',
- warning: '#ca8a04'
- };
- attributeChangedCallback() {
- this.render();
- }
-
- render() {
- const name = this.getAttribute('name') || 'star';
- const size = this.getAttribute('size') || 'md';
- const color = this.getAttribute('color') || 'current';
- const weight = this.getAttribute('weight') || 'solid';
-
- const fontSize = IconComponent.sizes[size];
- const iconColor = IconComponent.colors[color];
-
- this.innerHTML = ''; // Clear existing content
-
- // Set component styles
- // this.style.display = 'inline-block';
- this.style.width = fontSize;
- this.style.height = fontSize;
- this.style.color = iconColor;
-
- // Create the icon element
- const icon = document.createElement('i');
- icon.className = `fa-sharp-duotone fa-${weight} fa-${name}`;
- icon.style.fontSize = fontSize;
- icon.setAttribute('aria-hidden', 'true');
-
- this.appendChild(icon);
- }
-}
-
-customElements.define('icon-duo', IconDuo);
-
-//
-// Add a custom color to the duotone icon by adding a style attribute with either --fa-primary-color or --fa-secondary-color
-//
+
```
## Plugins
diff --git a/src/sass/_cards.scss b/src/sass/_cards.scss
index 2bb40f96..c7d4af1b 100644
--- a/src/sass/_cards.scss
+++ b/src/sass/_cards.scss
@@ -1,8 +1,42 @@
-/* Base card */
-.card {
+/*
+ * Bordered-card base: earth-cream fill, thick brown border, xl radius.
+ * Shared by .card, .card-layered, .card-accent, .about-card and .showcase-large;
+ * each overrides --card-border-width/--card-border-color as needed.
+ */
+.card,
+.card-layered,
+.card-accent,
+.about-card,
+.showcase-large {
background: var(--earth-cream);
- border: var(--border-thick, 6px) solid var(--earth-brown);
+ border: var(--card-border-width, var(--border-thick, 6px)) solid var(--card-border-color, var(--earth-brown));
border-radius: var(--radius-xl, 20px);
+}
+
+/*
+ * Double-ring shadow recipe (offset shadow + bordered ring behind it).
+ * Shared by .card-layered, .card-accent, .about-card and .showcase-large;
+ * each overrides --card-shadow-offset/-color/-ring-width as needed.
+ */
+.card-layered,
+.card-accent,
+.about-card,
+.showcase-large {
+ box-shadow:
+ var(--card-shadow-offset, 12px) var(--card-shadow-offset, 12px) 0 var(--card-shadow-color, var(--earth-sage)),
+ var(--card-shadow-offset, 12px) var(--card-shadow-offset, 12px) 0 var(--card-shadow-ring-width, 5px) var(--earth-brown);
+}
+
+/* Scaled-down shadow on mobile, shared by .about-card and .showcase-large */
+@media (width <= 768px) {
+ .about-card,
+ .showcase-large {
+ --card-shadow-offset: 6px;
+ --card-shadow-ring-width: 4px;
+ }
+}
+
+.card {
padding: var(--space-lg, 1.5rem);
box-shadow: 8px 8px 0 var(--shadow-heavy);
transition:
@@ -18,13 +52,7 @@
/* Card with layered shadow */
.card-layered {
- background: var(--earth-cream);
- border: var(--border-thick, 6px) solid var(--earth-brown);
- border-radius: var(--radius-xl, 20px);
padding: var(--space-xl, 2rem);
- box-shadow:
- 12px 12px 0 var(--earth-sage),
- 12px 12px 0 5px var(--earth-brown);
}
/* Card with only shadow */
@@ -38,13 +66,12 @@
/* Card with accent shadow */
.card-accent {
- background: var(--earth-cream);
- border: var(--border-extra-thick, 8px) solid var(--earth-brown);
- border-radius: var(--radius-xl, 20px);
+ --card-border-width: var(--border-extra-thick, 8px);
+ --card-shadow-offset: 16px;
+ --card-shadow-color: var(--accent-coral);
+ --card-shadow-ring-width: 6px;
+
overflow: hidden;
- box-shadow:
- 16px 16px 0 var(--accent-coral),
- 16px 16px 0 6px var(--earth-brown);
}
/* Simple card (minimal shadow) */
@@ -148,20 +175,11 @@
/* About Section */
.about-card {
- background: var(--earth-cream);
- border: var(--border-thick, 6px) solid var(--earth-brown);
padding: var(--space-2xl, 3rem);
- border-radius: var(--radius-xl, 20px);
- box-shadow:
- 12px 12px 0 var(--earth-sage),
- 12px 12px 0 5px var(--earth-brown);
margin: 0 auto;
}
@media (width <= 768px) {
.about-card {
- box-shadow:
- 6px 6px 0 var(--earth-sage),
- 6px 6px 0 4px var(--earth-brown);
padding: var(--space-md, 1rem);
}
.about-grid {
@@ -187,22 +205,12 @@
}
.showcase-large {
- background: var(--earth-cream);
- border: var(--border-thick, 6px) solid var(--earth-brown);
- border-radius: var(--radius-xl, 20px);
+ --card-shadow-color: var(--accent-coral);
+ --card-shadow-ring-width: 6px;
+
overflow: hidden;
- box-shadow:
- 12px 12px 0 var(--accent-coral),
- 12px 12px 0 6px var(--earth-brown);
transition: transform 0.3s;
}
-@media (width <= 768px) {
- .showcase-large {
- box-shadow:
- 6px 6px 0 var(--accent-coral),
- 6px 6px 0 4px var(--earth-brown);
- }
-}
.showcase-large:hover,
.showcase-large:focus-within {
diff --git a/src/site.webmanifest b/src/site.webmanifest
deleted file mode 100644
index e3807b0e..00000000
--- a/src/site.webmanifest
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "short_name": "jolicoeur",
- "name": "AdamJolicoeur.com",
- "icons": [
- {
- "src": "/android-launchericon-72-72.png",
- "type": "image/png",
- "sizes": "72x72"
- }
- ],
- "theme_color": "#ffffff",
- "background_color": "#ffffff",
- "display": "standalone",
- "scope": "/"
-}