diff --git a/.nvmrc b/.nvmrc
index 28d6ff1c..7cef2a09 100644
--- a/.nvmrc
+++ b/.nvmrc
@@ -1 +1 @@
-v25.1.0
+v25.2.1
diff --git a/docs/css/print.css b/docs/css/print.css
deleted file mode 100644
index c8f05ada..00000000
--- a/docs/css/print.css
+++ /dev/null
@@ -1,194 +0,0 @@
-/**
- ** 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;
- }
-}
diff --git a/docs/css/prism.css b/docs/css/prism.css
deleted file mode 100644
index 7e563775..00000000
--- a/docs/css/prism.css
+++ /dev/null
@@ -1,152 +0,0 @@
-/* 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;
-}
diff --git a/docs/css/style.css b/docs/css/style.css
index 7f7e3459..a09680e3 100644
--- a/docs/css/style.css
+++ b/docs/css/style.css
@@ -1,1662 +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%);
- /* 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;
-}
-
-/* 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);
- }
-}
-/* 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);
- font-size: 6rem;
- 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);
-}
-
-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);
-}
-
-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;
-}
-
-.row {
- display: flex;
- flex-wrap: wrap;
- gap: var(--space-lg, 2rem);
-}
-
-@media (width >= 768px) {
- .row {
- gap: var(--space-xs, 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 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);
-}
-
-pre {
- background-color: var(--earth-cream);
- padding: var(--space-md, 1rem);
- border-radius: var(--radius-md, 12px);
-}
-
-/* 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;
- margin: 0;
-}
-.carousel__slide div {
- position: relative;
- width: 100%;
-}
-.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 img {
- display: block;
- flex: 1 1 auto;
- object-fit: cover;
-}
-.carousel__slide figcaption {
- align-self: flex-end;
- 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-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);--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}@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)}}.arrows{bottom:20px;height:72px;left:50%;margin-left:-30px;position:absolute;width:60px}.arrows path{stroke:#bfe7fa;fill:transparent;stroke-width:1px;-webkit-animation:arrow 2s infinite;animation:arrow 2s infinite}@-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);font-size:6rem;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)}.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}.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-xs,.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:hsla(42,39%,94%,.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-family:Playfair Display,serif;font-size:clamp(1.2rem,2vw,1.5rem);margin-bottom:var(--space-md,1rem)}.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)}.card{background:var(--earth-cream);border:var(--border-thick,6px) solid var(--earth-brown);border-radius:var(--radius-xl,20px);-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{border:var(--border-thick,6px) solid var(--earth-brown);border-radius:var(--radius-xl,20px);-webkit-box-shadow:12px 12px 0 var(--earth-sage),12px 12px 0 5px var(--earth-brown);box-shadow:12px 12px 0 var(--earth-sage),12px 12px 0 5px var(--earth-brown);padding:var(--space-xl,2rem)}.card-layered,.card-shadow{background:var(--earth-cream)}.card-shadow{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{background:var(--earth-cream);border:var(--border-extra-thick,8px) solid var(--earth-brown);border-radius:var(--radius-xl,20px);-webkit-box-shadow:16px 16px 0 var(--accent-coral),16px 16px 0 6px var(--earth-brown);box-shadow:16px 16px 0 var(--accent-coral),16px 16px 0 6px var(--earth-brown);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{background:var(--earth-cream);border:var(--border-thick,6px) solid var(--earth-brown);border-radius:var(--border-radius-xl,20px);-webkit-box-shadow:12px 12px 0 var(--earth-sage),12px 12px 0 5px var(--earth-brown);box-shadow:12px 12px 0 var(--earth-sage),12px 12px 0 5px var(--earth-brown);margin:0 auto;padding:var(--space-2xl,3rem)}@media (width <= 768px){.about-card{-webkit-box-shadow:6px 6px 0 var(--earth-sage),6px 6px 0 4px var(--earth-brown);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);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{background:var(--earth-cream);border:var(--border-thick,6px) solid var(--earth-brown);border-radius:var(--radius-xl,20px);-webkit-box-shadow:12px 12px 0 var(--accent-coral),12px 12px 0 6px var(--earth-brown);box-shadow:12px 12px 0 var(--accent-coral),12px 12px 0 6px var(--earth-brown);overflow:hidden;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}@media (width <= 768px){.showcase-large{-webkit-box-shadow:6px 6px 0 var(--accent-coral),6px 6px 0 4px var(--earth-brown);box-shadow:6px 6px 0 var(--accent-coral),6px 6px 0 4px var(--earth-brown)}}.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)}pre{background-color:var(--earth-cream);border-radius:var(--radius-md,12px);padding:var(--space-md,1rem)}.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;margin:0}.carousel__slide div{position:relative;width:100%}.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 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:end;align-self:flex-end;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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zYXNzL192YXJpYWJsZXMuc2NzcyIsInN0eWxlLmNzcyIsIi4uLy4uL3NyYy9zYXNzL3N0eWxlLnNjc3MiLCIuLi8uLi9zcmMvc2Fzcy9fYW5pbWF0aW9ucy5zY3NzIiwiLi4vLi4vc3JjL3Nhc3MvX2ZvbnRzLnNjc3MiLCIuLi8uLi9zcmMvc2Fzcy9fdHlwb2dyYXBoeS5zY3NzIiwiLi4vLi4vc3JjL3Nhc3MvX3NwYWNpbmcuc2NzcyIsIi4uLy4uL3NyYy9zYXNzL19sYXlvdXQuc2NzcyIsIi4uLy4uL3NyYy9zYXNzL19saXN0cy5zY3NzIiwiLi4vLi4vc3JjL3Nhc3MvX2hpZ2hsaWdodC5zY3NzIiwiLi4vLi4vc3JjL3Nhc3MvX25hdmlnYXRpb24uc2NzcyIsIi4uLy4uL3NyYy9zYXNzL19mb290ZXIuc2NzcyIsIi4uLy4uL3NyYy9zYXNzL19iYWRnZS5zY3NzIiwiLi4vLi4vc3JjL3Nhc3MvX2J1dHRvbnMuc2NzcyIsIi4uLy4uL3NyYy9zYXNzL19jYXJkcy5zY3NzIiwiLi4vLi4vc3JjL3Nhc3MvX21hcmtkb3duLnNjc3MiLCIuLi8uLi9zcmMvc2Fzcy9fZ2FsbGVyeS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE1BRUUseUhBQUEsQ0FDQSw0Q0FBQSxDQUNBLDhEQUFBLENBQ0EsMENBQUEsQ0FHQSxlQUFBLENBQ0EsZUFBQSxDQUNBLG9CQUFBLENBQ0EscUJBQUEsQ0FDQSxvQkFBQSxDQUNBLG9CQUFBLENBQ0EscUJBQUEsQ0FDQSxzQkFBQSxDQUNBLDJCQUFBLENBQ0Esc0JBQUEsQ0FDQSx3QkFBQSxDQUNBLG9CQUFBLENBQ0EsMkJBQUEsQ0FDQSxpQ0FBQSxDQUNBLGlDQUFBLENBR0Esc0JBQUEsQ0FDQSx1QkFBQSxDQUNBLG1CQUFBLENBQ0EsdUJBQUEsQ0FDQSxzQkFBQSxDQUNBLHNCQUFBLENBQ0Esb0JBQUEsQ0FDQSxzQkFBQSxDQUNBLG9CQUFBLENBQ0Esb0JBQUEsQ0FHQSxtQkFBQSxDQUNBLGlCQUFB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RSxvQ0xrakJGLENLaGpCQSxNQUNFLHNDTG1qQkYsQ0tqakJBLE1BQ0UscUNMb2pCRixDS2xqQkEsTUFDRSxxQ0xxakJGLENLbmpCQSxNQUNFLHFDTHNqQkYsQ0twakJBLE1BQ0UscUNMdWpCRixDS3JqQkEsTUFDRSx1Q0x3akJGLENLdGpCQSxNQUNFLHNDTHlqQkYsQ0t2akJBLE1BQ0Usc0NMMGpCRixDS3hqQkEsTUFDRSxzQ0wyakJGLENLempCQSxNQUNFLHNDTDRqQkYsQ0sxakJBLEtBQ0Usa0NMNmpCRixDSzNqQkEsS0FDRSxpQ0w4akJGLENLNWpCQSxLQUNFLGlDTCtqQkYsQ0s3akJBLEtBQ0UsaUNMZ2tCRixDSzlqQkEsS0FDRSxpQ0xpa0JGLENLL2pCQSxNQUNFLHNDTGtrQkYsQ0toa0JBLE1BQ0UscUNMbWtCRixDS2prQkEsTUFDRSxxQ0xva0JGLENLbGtCQSxNQUNFLHFDTHFrQkYsQ0tua0JBLE1BQ0UscUNMc2tCRixDS3BrQkEsTUFDRSx5Q0x1a0JGLENLcmtCQSxNQUNFLHdDTHdrQkYsQ0t0a0JBLE1BQ0Usd0NMeWtCRixDS3ZrQkEsTUFDRSx3Q0wwa0JGLENLeGtCQSxNQUNFLHdDTDJrQkYsQ0t6a0JBLE1BQ0UsdUNMNGtCRixDSzFrQkEsTUFDRSxzQ0w2a0JGLENLM2tCQSxNQUNFLHNDTDhrQkYsQ0s1a0JBLE1BQ0Usc0NMK2tCRixDSzdrQkEsTUFDRSxzQ0xnbEJGLENLOWtCQSxNQUNFLHdDTGlsQkYsQ0sva0JBLE1BQ0UsdUNMa2xCRixDS2hsQkEsTUFDRSx1Q0xtbEJGLENLamxCQSxNQUNFLHVDTG9sQkYsQ0tsbEJBLE1BQ0UsdUNMcWxCRixDTXJ0QkEsUUFFRSxhQUFBLENBREEsZ0JBQUEsQ0FFQSxrRE55dEJGLENNdHRCQSx3QkFDRSxpQ0FBQSxDQUFBLDhCQUFBLENBQUEsZ0NOeXRCRixDTXZ0QkEsS0FDRSxtQkFBQSxDQUFBLG1CQUFBLENBQUEsWUFBQSxDQUNBLGtCQUFBLENBQUEsY0FBQSxDQUNBLHdCTjB0QkYsQ014dEJBLHdCQUNFLEtBQ0UseUJOMnRCRixDTXZ0QkEs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 */
\ No newline at end of file
diff --git a/docs/feed.json b/docs/feed.json
index 46f9b0dd..8472b00a 100644
--- a/docs/feed.json
+++ b/docs/feed.json
@@ -27,99 +27,99 @@
},
"items": [
{
- "id": "/designs/task-it/",
- "url": "/designs/task-it/",
- "title": "Task-It!",
- "date_published": "2025-11-25T21:06:32Z",
- "date": "2025-11-25T21:06:32Z"
- }
- ,
- {
- "id": "/designs/customer-engagement/",
- "url": "/designs/customer-engagement/",
- "title": "Customer Engagement App",
- "date_published": "2025-11-25T21:06:32Z",
- "date": "2025-11-25T21:06:32Z"
- }
- ,
- {
- "id": "/designs/component-library/",
- "url": "/designs/component-library/",
- "title": "Component Library",
- "date_published": "2025-11-25T21:06:32Z",
- "date": "2025-11-25T21:06:32Z"
+ "id": "/presentations/portfolio/",
+ "url": "/presentations/portfolio/",
+ "title": "Portfolio",
+ "date_published": "2025-11-26T17:47:39Z",
+ "date": "2025-11-26T17:47:39Z"
}
,
{
- "id": "/designs/alm/",
- "url": "/designs/alm/",
- "title": "Application Lifecycle Management",
- "date_published": "2025-11-25T21:06:32Z",
- "date": "2025-11-25T21:06:32Z"
+ "id": "/presentations/color-picker/",
+ "url": "/presentations/color-picker/",
+ "title": "Color Picker",
+ "date_published": "2025-11-26T17:47:39Z",
+ "date": "2025-11-26T17:47:39Z"
}
,
{
"id": "/presentations/",
"url": "/presentations/",
"title": "Presentations",
- "date_published": "2025-11-25T20:56:41Z",
- "date": "2025-11-25T20:56:41Z"
+ "date_published": "2025-11-26T17:47:39Z",
+ "date": "2025-11-26T17:47:39Z"
}
,
{
"id": "/portfolio/",
"url": "/portfolio/",
"title": "My Work",
- "date_published": "2025-11-25T20:56:41Z",
- "date": "2025-11-25T20:56:41Z"
+ "date_published": "2025-11-26T17:47:39Z",
+ "date": "2025-11-26T17:47:39Z"
+ }
+ ,
+ {
+ "id": "/designs/task-it/",
+ "url": "/designs/task-it/",
+ "title": "Task-It!",
+ "date_published": "2025-11-26T17:47:39Z",
+ "date": "2025-11-26T17:47:39Z"
}
,
{
"id": "/designs/dashboard-analytics/",
"url": "/designs/dashboard-analytics/",
"title": "Dashboard Analytics",
- "date_published": "2025-11-25T20:56:41Z",
- "date": "2025-11-25T20:56:41Z"
+ "date_published": "2025-11-26T17:47:39Z",
+ "date": "2025-11-26T17:47:39Z"
}
,
{
- "id": "/credits/",
- "url": "/credits/",
- "title": "Credits",
- "date_published": "2025-11-18T20:30:02Z",
- "date": "2025-11-18T20:30:02Z"
+ "id": "/designs/customer-engagement/",
+ "url": "/designs/customer-engagement/",
+ "title": "Customer Engagement App",
+ "date_published": "2025-11-26T17:47:39Z",
+ "date": "2025-11-26T17:47:39Z"
}
,
{
- "id": "/presentations/portfolio/",
- "url": "/presentations/portfolio/",
- "title": "Portfolio",
- "date_published": "2025-11-18T19:18:40Z",
- "date": "2025-11-18T19:18:40Z"
+ "id": "/designs/component-library/",
+ "url": "/designs/component-library/",
+ "title": "Component Library",
+ "date_published": "2025-11-26T17:47:39Z",
+ "date": "2025-11-26T17:47:39Z"
}
,
{
- "id": "/presentations/color-picker/",
- "url": "/presentations/color-picker/",
- "title": "Color Picker",
- "date_published": "2025-11-18T19:18:40Z",
- "date": "2025-11-18T19:18:40Z"
+ "id": "/designs/alm/",
+ "url": "/designs/alm/",
+ "title": "Application Lifecycle Management",
+ "date_published": "2025-11-26T17:47:39Z",
+ "date": "2025-11-26T17:47:39Z"
+ }
+ ,
+ {
+ "id": "/credits/",
+ "url": "/credits/",
+ "title": "Credits",
+ "date_published": "2025-11-26T17:47:39Z",
+ "date": "2025-11-26T17:47:39Z"
}
,
{
"id": "/about/resume/",
"url": "/about/resume/",
"title": "Adam J. Jolicoeur",
- "date_published": "2025-11-18T16:15:09Z",
- "date": "2025-11-18T16:15:09Z"
+ "date_published": "2025-11-26T17:47:39Z",
+ "date": "2025-11-26T17:47:39Z"
}
,
{
"id": "/about/adam/",
"url": "/about/adam/",
"title": "About",
- "date_published": "2025-11-18T16:15:09Z",
- "date": "2025-11-18T16:15:09Z"
+ "date_published": "2025-11-26T17:47:39Z",
+ "date": "2025-11-26T17:47:39Z"
}
,
{
diff --git a/docs/sitemap.xml b/docs/sitemap.xml
index ef2e67a0..26b88ba2 100644
--- a/docs/sitemap.xml
+++ b/docs/sitemap.xml
@@ -43,72 +43,72 @@
https://www.adamjolicoeur.com/about/adam/
- 2025-11-18T16:15:09.000Z
+ 2025-11-26T17:47:39.000Z
https://www.adamjolicoeur.com/about/resume/
- 2025-11-18T16:15:09.000Z
+ 2025-11-26T17:47:39.000Z
- https://www.adamjolicoeur.com/presentations/color-picker/
- 2025-11-18T19:18:40.000Z
+ https://www.adamjolicoeur.com/credits/
+ 2025-11-26T17:47:39.000Z
- https://www.adamjolicoeur.com/presentations/portfolio/
- 2025-11-18T19:18:40.000Z
+ https://www.adamjolicoeur.com/designs/alm/
+ 2025-11-26T17:47:39.000Z
- https://www.adamjolicoeur.com/credits/
- 2025-11-18T20:30:02.000Z
+ https://www.adamjolicoeur.com/designs/component-library/
+ 2025-11-26T17:47:39.000Z
- https://www.adamjolicoeur.com/404.html
- 2025-11-25T00:21:12.412Z
+ https://www.adamjolicoeur.com/designs/customer-engagement/
+ 2025-11-26T17:47:39.000Z
- https://www.adamjolicoeur.com/
- 2025-11-25T00:23:04.881Z
+ https://www.adamjolicoeur.com/designs/dashboard-analytics/
+ 2025-11-26T17:47:39.000Z
- https://www.adamjolicoeur.com/designs/dashboard-analytics/
- 2025-11-25T20:56:41.000Z
+ https://www.adamjolicoeur.com/designs/task-it/
+ 2025-11-26T17:47:39.000Z
https://www.adamjolicoeur.com/portfolio/
- 2025-11-25T20:56:41.000Z
+ 2025-11-26T17:47:39.000Z
https://www.adamjolicoeur.com/presentations/
- 2025-11-25T20:56:41.000Z
+ 2025-11-26T17:47:39.000Z
- https://www.adamjolicoeur.com/designs/alm/
- 2025-11-25T21:06:32.000Z
+ https://www.adamjolicoeur.com/presentations/color-picker/
+ 2025-11-26T17:47:39.000Z
- https://www.adamjolicoeur.com/designs/component-library/
- 2025-11-25T21:06:32.000Z
+ https://www.adamjolicoeur.com/presentations/portfolio/
+ 2025-11-26T17:47:39.000Z
- https://www.adamjolicoeur.com/designs/customer-engagement/
- 2025-11-25T21:06:32.000Z
+ https://www.adamjolicoeur.com/404.html
+ 2025-11-26T17:49:37.616Z
- https://www.adamjolicoeur.com/designs/task-it/
- 2025-11-25T21:06:32.000Z
+ https://www.adamjolicoeur.com/
+ 2025-11-26T17:49:37.649Z
diff --git a/package-lock.json b/package-lock.json
index 1cc8c302..d603406f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -44,7 +44,7 @@
"stylelint-order": "^7.0.0"
},
"engines": {
- "node": "22"
+ "node": "25.x"
}
},
"node_modules/@11ty/dependency-tree": {
diff --git a/package.json b/package.json
index a805e95b..9b60ba55 100644
--- a/package.json
+++ b/package.json
@@ -8,7 +8,7 @@
"licenseUrl": "https://github.com/adamj/adamj.github.io/blob/main/LICENSE",
"main": "index.js",
"engines": {
- "node": "22"
+ "node": "25.x"
},
"scripts": {
"clean": "rm -rf docs",