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",