@@ -570,6 +591,29 @@
+
+
+
+
+
+
+
+
diff --git a/public/categories/index.xml b/public/categories/index.xml
index 989e8ed..c33ea03 100644
--- a/public/categories/index.xml
+++ b/public/categories/index.xml
@@ -5,7 +5,7 @@
http://localhost:1313/categories/
Recent content in Categories on Ash Marlow
Hugo -- gohugo.io
-
en-gb
+
en
© 2026
diff --git a/public/css/main.bundle.min.9ad45a110b860f64037f0ac4bcec699ac86f9d98a9b33e37551c11ad228f0505a2d41b9e6606a0536060efe4034905ed57b1c3153a94af326c0eb0b92a05642e.css b/public/css/main.bundle.min.9ad45a110b860f64037f0ac4bcec699ac86f9d98a9b33e37551c11ad228f0505a2d41b9e6606a0536060efe4034905ed57b1c3153a94af326c0eb0b92a05642e.css
new file mode 100644
index 0000000..b4269e7
--- /dev/null
+++ b/public/css/main.bundle.min.9ad45a110b860f64037f0ac4bcec699ac86f9d98a9b33e37551c11ad228f0505a2d41b9e6606a0536060efe4034905ed57b1c3153a94af326c0eb0b92a05642e.css
@@ -0,0 +1,178 @@
+:root{--color-neutral:255, 255, 255;--color-neutral-50:249, 250, 251;--color-neutral-100:243, 244, 246;--color-neutral-200:229, 231, 235;--color-neutral-300:209, 213, 219;--color-neutral-400:156, 163, 175;--color-neutral-500:107, 114, 128;--color-neutral-600:75, 85, 99;--color-neutral-700:55, 65, 81;--color-neutral-800:31, 41, 55;--color-neutral-900:17, 24, 39;--color-primary-50:248, 250, 252;--color-primary-100:241, 245, 249;--color-primary-200:226, 232, 240;--color-primary-300:203, 213, 225;--color-primary-400:148, 163, 184;--color-primary-500:100, 116, 139;--color-primary-600:71, 85, 105;--color-primary-700:51, 65, 85;--color-primary-800:30, 41, 59;--color-primary-900:15, 23, 42;--color-secondary-50:249, 250, 251;--color-secondary-100:243, 244, 246;--color-secondary-200:229, 231, 235;--color-secondary-300:209, 213, 219;--color-secondary-400:156, 163, 175;--color-secondary-500:107, 114, 128;--color-secondary-600:75, 85, 99;--color-secondary-700:55, 65, 81;--color-secondary-800:31, 41, 55;--color-secondary-900:17, 24, 39}/*!tailwindcss v4.2.1 | MIT License | https://tailwindcss.com*//*!Blowfish | MIT License | https://github.com/nunocoracao/blowfish*/@layer properties;@layer theme,base,components,utilities;@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
+ "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
+ "Courier New", monospace;--spacing:0.25rem;--container-2xs:18rem;--container-md:28rem;--container-xl:36rem;--container-3xl:48rem;--container-7xl:80rem;--text-xs:0.75rem;--text-xs--line-height:calc(1 / 0.75);--text-sm:0.875rem;--text-sm--line-height:calc(1.25 / 0.875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-tight:-0.025em;--tracking-normal:0em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-md:0.375rem;--radius-lg:0.5rem;--radius-xl:0.75rem;--radius-2xl:1rem;--ease-in:cubic-bezier(0.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, 0.2, 1);--ease-in-out:cubic-bezier(0.4, 0, 0.2, 1);--animate-pulse:pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;--blur-sm:8px;--blur-xl:24px;--blur-2xl:40px;--aspect-video:16 / 9;--default-transition-duration:150ms;--default-transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::after,::before,::backdrop,::file-selector-button{box-sizing:border-box;margin:0;padding:0;border:0 solid}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;tab-size:4;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea,::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;border-radius:0;background-color:initial;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports(not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::placeholder{color:currentcolor;@supports(color:color-mix(in lab,red,red)){color: color-mix(in oklab,currentcolor 50%,transparent);}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]),::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.\!visible{visibility:visible!important}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border-width:0}.\!absolute{position:absolute!important}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.-start-6{inset-inline-start:calc(var(--spacing) * -6)}.start{inset-inline-start:var(--spacing)}.start-\[calc\(max\(-50vw\,-800px\)\+50\%\)\]{inset-inline-start:calc(max(-50vw,-800px) + 50%)}.end{inset-inline-end:var(--spacing)}.end-6{inset-inline-end:calc(var(--spacing) * 6)}.end-8{inset-inline-end:calc(var(--spacing) * 8)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:calc(1/2 * 100%)}.top-5{top:calc(var(--spacing) * 5)}.top-20{top:calc(var(--spacing) * 20)}.top-full{top:100%}.right-0{right:calc(var(--spacing) * 0)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-6{bottom:calc(var(--spacing) * 6)}.bottom-24{bottom:calc(var(--spacing) * 24)}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:calc(1/2 * 100%)}.-z-10{z-index:calc(10 * -1)}.z-2{z-index:2}.z-10{z-index:10}.z-50{z-index:50}.z-80{z-index:80}.z-100{z-index:100}.z-500{z-index:500}.z-\[1\]{z-index:1}.z-\[999\]{z-index:999}.z-\[1040\]{z-index:1040}.z-\[1070\]{z-index:1070}.z-\[1080\]{z-index:1080}.order-first{order:-9999}.float-left{float:left}.container{width:100%;@media(width >= 640px){max-width: 640px;}@media(width >= 853px){max-width: 853px;}@media(width >= 1024px){max-width: 1024px;}@media(width >= 1280px){max-width: 1280px;}@media(width >= 1536px){max-width: 1536px;}}.\!-m-px{margin:-1px!important}.m-0{margin:calc(var(--spacing) * 0)}.m-1{margin:calc(var(--spacing) * 1)}.m-2{margin:calc(var(--spacing) * 2)}.m-300{margin:calc(var(--spacing) * 300)}.m-auto{margin:auto}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.mx-1{margin-inline:calc(var(--spacing) * 1)}.mx-\[3px\]{margin-inline:3px}.mx-\[15\%\]{margin-inline:15%}.mx-auto{margin-inline:auto}.my-0{margin-block:calc(var(--spacing) * 0)}.my-3{margin-block:calc(var(--spacing) * 3)}.-ms-5{margin-inline-start:calc(var(--spacing) * -5)}.ms-0{margin-inline-start:calc(var(--spacing) * 0)}.ms-2{margin-inline-start:calc(var(--spacing) * 2)}.ms-6{margin-inline-start:calc(var(--spacing) * 6)}.ms-7{margin-inline-start:calc(var(--spacing) * 7)}.ms-auto{margin-inline-start:auto}.-me-48{margin-inline-end:calc(var(--spacing) * -48)}.me-1{margin-inline-end:calc(var(--spacing) * 1)}.me-2{margin-inline-end:calc(var(--spacing) * 2)}.me-4{margin-inline-end:calc(var(--spacing) * 4)}.me-6{margin-inline-end:calc(var(--spacing) * 6)}.prose{color:var(--tw-prose-body);max-width:65ch; :where(p):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 1.25em; margin-bottom: 1.25em; } :where([class~="lead"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-lead); font-size: 1.25em; line-height: 1.6; margin-top: 1.2em; margin-bottom: 1.2em; } :where(a):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-links); text-decoration: none; font-weight: 500; text-decoration-color: rgba(var(--color-primary-300), 1); &:hover { color: rgba(var(--color-primary-600), 1); text-decoration: none; border-radius: 0.09rem; } } :where(strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-bold); font-weight: 600; } :where(a strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit; } :where(blockquote strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit; } :where(thead th strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit; } :where(ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: decimal; margin-top: 1.25em; margin-bottom: 1.25em; padding-inline-start: 1.625em; } :where(ol[type="A"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: upper-alpha; } :where(ol[type="a"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: lower-alpha; } :where(ol[type="A" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: upper-alpha; } :where(ol[type="a" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: lower-alpha; } :where(ol[type="I"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: upper-roman; } :where(ol[type="i"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: lower-roman; } :where(ol[type="I" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: upper-roman; } :where(ol[type="i" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: lower-roman; } :where(ol[type="1"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: decimal; } :where(ul):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: disc; margin-top: 1.25em; margin-bottom: 1.25em; padding-inline-start: 1.625em; } :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *))::marker { font-weight: 400; color: var(--tw-prose-counters); } :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *))::marker { color: var(--tw-prose-bullets); } :where(dt):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-headings); font-weight: 600; margin-top: 1.25em; } :where(hr):not(:where([class~="not-prose"],[class~="not-prose"] *)) { border-color: var(--tw-prose-hr); border-top-width: 1px; margin-top: 3em; margin-bottom: 3em; border: 0.8px solid rgba(var(--color-neutral-300), 1); } :where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-weight: 500; font-style: italic; color: var(--tw-prose-quotes); border-inline-start-width: 0.25rem; border-inline-start-color: var(--tw-prose-quote-borders); quotes: "\201C""\201D""\2018""\2019"; margin-top: 1.6em; margin-bottom: 1.6em; padding-inline-start: 1em; } :where(blockquote p:first-of-type):not(:where([class~="not-prose"],[class~="not-prose"] *))::before { content: open-quote; } :where(blockquote p:last-of-type):not(:where([class~="not-prose"],[class~="not-prose"] *))::after { content: close-quote; } :where(h1):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-headings); font-weight: 800; font-size: 2.25em; margin-top: 0; margin-bottom: 0.8888889em; line-height: 1.1111111; } :where(h1 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-weight: 900; color: inherit; } :where(h2):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-headings); font-weight: 700; font-size: 1.5em; margin-top: 2em; margin-bottom: 1em; line-height: 1.3333333; } :where(h2 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-weight: 800; color: inherit; } :where(h3):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-headings); font-weight: 600; font-size: 1.25em; margin-top: 1.6em; margin-bottom: 0.6em; line-height: 1.6; } :where(h3 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-weight: 700; color: inherit; } :where(h4):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-headings); font-weight: 600; margin-top: 1.5em; margin-bottom: 0.5em; line-height: 1.5; } :where(h4 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-weight: 700; color: inherit; } :where(img):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 2em; margin-bottom: 2em; } :where(picture):not(:where([class~="not-prose"],[class~="not-prose"] *)) { display: block; margin-top: 2em; margin-bottom: 2em; } :where(video):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 2em; margin-bottom: 2em; } :where(kbd):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-weight: 600; font-family: inherit; color: var(--tw-prose-kbd); box-shadow: 0 0 0 1px var(--tw-prose-kbd-shadows), 0 3px 0 var(--tw-prose-kbd-shadows); font-size: 0.9rem; border-radius: 0.25rem; padding-top: 0.1875em; padding-inline-end: 0.375em; padding-bottom: 0.1875em; padding-inline-start: 0.375em; background-color: rgba(var(--color-neutral-200), 1); padding: 0.1rem 0.4rem; } :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-code); font-weight: 600; font-size: 0.875em; padding-top: 3px; padding-bottom: 3px; padding-left: 5px; padding-right: 5px; border-radius: 0.25rem; } :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *))::before { content: "`"; display: none; } :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *))::after { content: "`"; display: none; } :where(a code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-code); } :where(h1 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit; } :where(h2 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit; font-size: 0.875em; } :where(h3 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit; font-size: 0.9em; } :where(h4 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit; } :where(blockquote code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit; } :where(thead th code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit; } :where(pre):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-pre-code); background-color: var(--tw-prose-pre-bg); overflow-x: auto; font-weight: 400; font-size: 0.875em; line-height: 1.7142857; margin-top: 1.7142857em; margin-bottom: 1.7142857em; border-radius: 0.375rem; padding-top: 0.8571429em; padding-inline-end: 1.1428571em; padding-bottom: 0.8571429em; padding-inline-start: 1.1428571em; } :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { background-color: transparent; border-width: 0; border-radius: 0; padding: 0; font-weight: inherit; color: inherit; font-size: inherit; font-family: inherit; line-height: inherit; } :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *))::before { content: none; } :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *))::after { content: none; } :where(table):not(:where([class~="not-prose"],[class~="not-prose"] *)) { width: 100%; table-layout: auto; margin-top: 2em; margin-bottom: 2em; font-size: 0.875em; line-height: 1.7142857; } :where(thead):not(:where([class~="not-prose"],[class~="not-prose"] *)) { border-bottom-width: 1px; border-bottom-color: var(--tw-prose-th-borders); } :where(thead th):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-headings); font-weight: 600; vertical-align: bottom; padding-inline-end: 0.5714286em; padding-bottom: 0.5714286em; padding-inline-start: 0.5714286em; } :where(tbody tr):not(:where([class~="not-prose"],[class~="not-prose"] *)) { border-bottom-width: 1px; border-bottom-color: var(--tw-prose-td-borders); } :where(tbody tr:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { border-bottom-width: 0; } :where(tbody td):not(:where([class~="not-prose"],[class~="not-prose"] *)) { vertical-align: baseline; } :where(tfoot):not(:where([class~="not-prose"],[class~="not-prose"] *)) { border-top-width: 1px; border-top-color: var(--tw-prose-th-borders); } :where(tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)) { vertical-align: top; } :where(th, td):not(:where([class~="not-prose"],[class~="not-prose"] *)) { text-align: start; } :where(figure > *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0; margin-bottom: 0; } :where(figcaption):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-captions); font-size: 0.875em; line-height: 1.4285714; margin-top: 0.8571429em; } --tw-prose-body: rgba(var(--color-neutral-700), 1);--tw-prose-headings:rgba(var(--color-neutral-800), 1);--tw-prose-lead:rgba(var(--color-neutral-500), 1);--tw-prose-links:rgba(var(--color-primary-600), 1);--tw-prose-bold:inherit;--tw-prose-counters:rgba(var(--color-neutral-800), 1);--tw-prose-bullets:rgba(var(--color-neutral-500), 1);--tw-prose-hr:oklch(92.8% 0.006 264.531);--tw-prose-quotes:rgba(var(--color-neutral-700), 1);--tw-prose-quote-borders:rgba(var(--color-primary-500), 1);--tw-prose-captions:rgba(var(--color-neutral-500), 1);--tw-prose-kbd:oklch(21% 0.034 264.665);--tw-prose-kbd-shadows:color-mix(in oklab, oklch(21% 0.034 264.665) 10%, transparent);--tw-prose-code:rgba(var(--color-secondary-700), 1);--tw-prose-pre-code:rgba(var(--color-neutral-700), 1);--tw-prose-pre-bg:rgba(var(--color-neutral-50), 1);--tw-prose-th-borders:rgba(var(--color-neutral-500), 1);--tw-prose-td-borders:rgba(var(--color-neutral-300), 1);--tw-prose-invert-body:rgba(var(--color-neutral-300), 1);--tw-prose-invert-headings:rgba(var(--color-neutral-50), 1);--tw-prose-invert-lead:rgba(var(--color-neutral-500), 1);--tw-prose-invert-links:rgba(var(--color-primary-400), 1);--tw-prose-invert-bold:rgba(var(--color-neutral), 1);--tw-prose-invert-counters:rgba(var(--color-neutral-400), 1);--tw-prose-invert-bullets:rgba(var(--color-neutral-600), 1);--tw-prose-invert-hr:oklch(37.3% 0.034 259.733);--tw-prose-invert-quotes:rgba(var(--color-neutral-200), 1);--tw-prose-invert-quote-borders:rgba(var(--color-primary-600), 1);--tw-prose-invert-captions:rgba(var(--color-neutral-400), 1);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:rgb(255 255 255 / 10%);--tw-prose-invert-code:rgba(var(--color-secondary-400), 1);--tw-prose-invert-pre-code:rgba(var(--color-neutral-200), 1);--tw-prose-invert-pre-bg:rgba(var(--color-neutral-700), 1);--tw-prose-invert-th-borders:rgba(var(--color-neutral-500), 1);--tw-prose-invert-td-borders:rgba(var(--color-neutral-700), 1);font-size:1rem;line-height:1.75; :where(picture > img):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0; margin-bottom: 0; } :where(li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0.5em; margin-bottom: 0.5em; } :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-inline-start: 0.375em; } :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-inline-start: 0.375em; } :where(.prose > ul > li p):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0.75em; margin-bottom: 0.75em; } :where(.prose > ul > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 1.25em; } :where(.prose > ul > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-bottom: 1.25em; } :where(.prose > ol > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 1.25em; } :where(.prose > ol > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-bottom: 1.25em; } :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0.75em; margin-bottom: 0.75em; } :where(dl):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 1.25em; margin-bottom: 1.25em; } :where(dd):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0.5em; padding-inline-start: 1.625em; } :where(hr + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0; } :where(h2 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0; } :where(h3 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0; } :where(h4 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0; } :where(thead th:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-inline-start: 0; } :where(thead th:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-inline-end: 0; } :where(tbody td, tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-top: 0.5714286em; padding-inline-end: 0.5714286em; padding-bottom: 0.5714286em; padding-inline-start: 0.5714286em; } :where(tbody td:first-child, tfoot td:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-inline-start: 0; } :where(tbody td:last-child, tfoot td:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-inline-end: 0; } :where(figure):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 2em; margin-bottom: 2em; } :where(.prose > :first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0; } :where(.prose > :last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-bottom: 0; } :where(mark):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: rgba(var(--color-neutral-800), 1); background-color: rgba(var(--color-primary-600), 1); padding: 0.1rem 0.2rem; border-radius: 0.25rem; } :where(p):not(:where([class~="not-prose"],[class~="not-prose"] *))::before { display: none; } :where(p):not(:where([class~="not-prose"],[class~="not-prose"] *))::after { display: none; } :where(a.active):not(:where([class~="not-prose"],[class~="not-prose"] *)) { text-decoration-color: rgba(var(--color-primary-600), 1); } :where(p.active):not(:where([class~="not-prose"],[class~="not-prose"] *)) { text-decoration-color: rgba(var(--color-primary-600), 1); }}.\!mt-0{margin-top:calc(var(--spacing) * 0)!important}.-mt-\[2px\]{margin-top:calc(2px * -1)}.-mt-\[15px\]{margin-top:calc(15px * -1)}.mt-0{margin-top:calc(var(--spacing) * 0)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mt-16{margin-top:calc(var(--spacing) * 16)}.mt-20{margin-top:calc(var(--spacing) * 20)}.mt-\[0\.5rem\]{margin-top:.5rem}.-mr-\[100\%\]{margin-right:calc(100% * -1)}.mr-0{margin-right:calc(var(--spacing) * 0)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-3{margin-right:calc(var(--spacing) * 3)}.mr-5{margin-right:calc(var(--spacing) * 5)}.\!mb-0{margin-bottom:calc(var(--spacing) * 0)!important}.\!mb-9{margin-bottom:calc(var(--spacing) * 9)!important}.-mb-1{margin-bottom:calc(var(--spacing) * -1)}.mb-0{margin-bottom:calc(var(--spacing) * 0)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.mb-12{margin-bottom:calc(var(--spacing) * 12)}.mb-16{margin-bottom:calc(var(--spacing) * 16)}.mb-20{margin-bottom:calc(var(--spacing) * 20)}.mb-\[2px\]{margin-bottom:2px}.ml-0{margin-left:calc(var(--spacing) * 0)}.ml-2{margin-left:calc(var(--spacing) * 2)}.box-border{box-sizing:border-box}.box-content{box-sizing:content-box}.scrollbar{&::-webkit-scrollbar-track { background-color:var(--scrollbar-track); border-radius:var(--scrollbar-track-radius); } &::-webkit-scrollbar-thumb { background-color:var(--scrollbar-thumb); border-radius:var(--scrollbar-thumb-radius); } &::-webkit-scrollbar-corner { background-color:var(--scrollbar-corner); border-radius:var(--scrollbar-corner-radius); } @supports (-moz-appearance:none) { scrollbar-width:auto; scrollbar-color:var(--scrollbar-thumb,initial) var(--scrollbar-track,initial); } &::-webkit-scrollbar { display:block; width:var(--scrollbar-width,16px); height:var(--scrollbar-height,16px); }}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.line-clamp-5{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5}.\!block{display:block!important}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.table-cell{display:table-cell}.aspect-\[4\/3\]{aspect-ratio:4/3}.aspect-auto{aspect-ratio:auto}.aspect-square{aspect-ratio:1/1}.aspect-video{aspect-ratio:var(--aspect-video)}.size-1{width:calc(var(--spacing) * 1);height:calc(var(--spacing) * 1)}.\!h-px{height:1px!important}.h-0{height:calc(var(--spacing) * 0)}.h-1\/2{height:calc(1/2 * 100%)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-24{height:calc(var(--spacing) * 24)}.h-36{height:calc(var(--spacing) * 36)}.h-40{height:calc(var(--spacing) * 40)}.h-48{height:calc(var(--spacing) * 48)}.h-84{height:calc(var(--spacing) * 84)}.h-\[3px\]{height:3px}.h-\[150px\]{height:150px}.h-\[800px\]{height:800px}.h-\[1000px\]{height:1e3px}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.max-h-3{max-height:calc(var(--spacing) * 3)}.max-h-20{max-height:calc(var(--spacing) * 20)}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-\[130px\]{min-height:130px}.min-h-\[148px\]{min-height:148px}.min-h-full{min-height:100%}.\!w-px{width:1px!important}.w-0{width:calc(var(--spacing) * 0)}.w-2{width:calc(var(--spacing) * 2)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-16{width:calc(var(--spacing) * 16)}.w-24{width:calc(var(--spacing) * 24)}.w-36{width:calc(var(--spacing) * 36)}.w-80{width:calc(var(--spacing) * 80)}.w-\[15\%\]{width:15%}.w-\[30px\]{width:30px}.w-auto{width:auto}.w-full{width:100%}.w-max{width:max-content}.w-screen{width:100vw}.max-w-3xl{max-width:var(--container-3xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-20{max-width:calc(var(--spacing) * 20)}.max-w-48{max-width:calc(var(--spacing) * 48)}.max-w-\[200px\]{max-width:200px}.max-w-\[267px\]{max-width:267px}.max-w-\[1600px\]{max-width:1600px}.max-w-\[calc\(100\%-1rem\)\]{max-width:calc(100% - 1rem)}.max-w-fit{max-width:fit-content}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-prose{max-width:65ch}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-\[1\.8rem\]{min-width:1.8rem}.min-w-\[30px\]{min-width:30px}.min-w-\[220px\]{min-width:220px}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-auto{flex:auto}.flex-initial{flex:0 auto}.flex-none{flex:none}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-auto{flex-basis:auto}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-8{--tw-translate-y:calc(var(--spacing) * -8);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-0{--tw-translate-y:calc(var(--spacing) * 0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-4{--tw-translate-y:calc(var(--spacing) * 4);translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-0{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-\[1\.02\]{scale:1.02}.-rotate-90{rotate:calc(90deg * -1)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.transform\!{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)!important}.transform-none{transform:none}.animate-pulse{animation:var(--animate-pulse)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-pan-y{--tw-pan-y:pan-y;touch-action:var(--tw-pan-x,)var(--tw-pan-y,)var(--tw-pinch-zoom,)}.touch-none{touch-action:none}.resize{resize:both}.list-none{list-style-type:none}.appearance-none{appearance:none}.grid-rows-\[0fr\]{grid-template-rows:0fr}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing) * 1)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.space-y-2{ :where(& > :not(:last-child)) { --tw-space-y-reverse: 0; margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse)); margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse))); }}.space-y-3{ :where(& > :not(:last-child)) { --tw-space-y-reverse: 0; margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse)); margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse))); }}.space-y-5{ :where(& > :not(:last-child)) { --tw-space-y-reverse: 0; margin-block-start: calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse)); margin-block-end: calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse))); }}.space-y-6{ :where(& > :not(:last-child)) { --tw-space-y-reverse: 0; margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse)); margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse))); }}.space-y-10{ :where(& > :not(:last-child)) { --tw-space-y-reverse: 0; margin-block-start: calc(calc(var(--spacing) * 10) * var(--tw-space-y-reverse)); margin-block-end: calc(calc(var(--spacing) * 10) * calc(1 - var(--tw-space-y-reverse))); }}.gap-x-5{column-gap:calc(var(--spacing) * 5)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.space-x-2{ :where(& > :not(:last-child)) { --tw-space-x-reverse: 0; margin-inline-start: calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse)); margin-inline-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse))); }}.space-x-3{ :where(& > :not(:last-child)) { --tw-space-x-reverse: 0; margin-inline-start: calc(calc(var(--spacing) * 3) * var(--tw-space-x-reverse)); margin-inline-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-x-reverse))); }}.space-x-5{ :where(& > :not(:last-child)) { --tw-space-x-reverse: 0; margin-inline-start: calc(calc(var(--spacing) * 5) * var(--tw-space-x-reverse)); margin-inline-end: calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-x-reverse))); }}.place-self-center{place-self:center}.self-center{align-self:center}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\!overflow-hidden{overflow:hidden!important}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.scroll-smooth{scroll-behavior:smooth}.\!rounded-md{border-radius:var(--radius-md)!important}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\[50\%\]{border-radius:50%}.rounded-full{border-radius:calc(infinity * 1px)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-s-\[0\.25rem\]{border-start-start-radius:.25rem;border-end-start-radius:.25rem}.rounded-e-\[0\.25rem\]{border-start-end-radius:.25rem;border-end-end-radius:.25rem}.rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.rounded-t-md{border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.rounded-b-lg{border-bottom-right-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.\!border-0{border-style:var(--tw-border-style)!important;border-width:0!important}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-y-\[10px\]{border-block-style:var(--tw-border-style);border-block-width:10px}.border-s-0{border-inline-start-style:var(--tw-border-style);border-inline-start-width:0}.border-s-1{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-s-2{border-inline-start-style:var(--tw-border-style);border-inline-start-width:2px}.border-s-\[0\.125rem\]{border-inline-start-style:var(--tw-border-style);border-inline-start-width:.125rem}.border-e-0{border-inline-end-style:var(--tw-border-style);border-inline-end-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-dotted{--tw-border-style:dotted;border-style:dotted}.border-none{--tw-border-style:none;border-style:none}.border-solid{--tw-border-style:solid;border-style:solid}.border-neutral-100{border-color:rgba(var(--color-neutral-100),1)}.border-neutral-200{border-color:rgba(var(--color-neutral-200),1)}.border-neutral-300{border-color:rgba(var(--color-neutral-300),1)}.border-primary-400{border-color:rgba(var(--color-primary-400),1)}.border-primary-500{border-color:rgba(var(--color-primary-500),1)}.border-secondary-500{border-color:rgba(var(--color-secondary-500),1)}.border-transparent{border-color:transparent}.prose-invert{--tw-prose-body:var(--tw-prose-invert-body);--tw-prose-headings:var(--tw-prose-invert-headings);--tw-prose-lead:var(--tw-prose-invert-lead);--tw-prose-links:var(--tw-prose-invert-links);--tw-prose-bold:var(--tw-prose-invert-bold);--tw-prose-counters:var(--tw-prose-invert-counters);--tw-prose-bullets:var(--tw-prose-invert-bullets);--tw-prose-hr:var(--tw-prose-invert-hr);--tw-prose-quotes:var(--tw-prose-invert-quotes);--tw-prose-quote-borders:var(--tw-prose-invert-quote-borders);--tw-prose-captions:var(--tw-prose-invert-captions);--tw-prose-kbd:var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows:var(--tw-prose-invert-kbd-shadows);--tw-prose-code:var(--tw-prose-invert-code);--tw-prose-pre-code:var(--tw-prose-invert-pre-code);--tw-prose-pre-bg:var(--tw-prose-invert-pre-bg);--tw-prose-th-borders:var(--tw-prose-invert-th-borders);--tw-prose-td-borders:var(--tw-prose-invert-td-borders); :where(a):not(:where([class~="not-prose"],[class~="not-prose"] *)) { text-decoration-color: rgba(var(--color-neutral-600), 1); &:hover { color: rgba(var(--color-primary-400), 1); } } :where(kbd):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: rgba(var(--color-neutral-200), 1); background-color: rgba(var(--color-neutral-700), 1); } :where(mark):not(:where([class~="not-prose"],[class~="not-prose"] *)) { background-color: rgba(var(--color-primary-400), 1); } :where(code:not(pre code)):not(:where([class~="not-prose"],[class~="not-prose"] *)) { background-color: color-mix(in oklab, oklch(21% 0.006 285.885) 70%, transparent); } :where(a.active):not(:where([class~="not-prose"],[class~="not-prose"] *)) { text-decoration-color: rgba(var(--color-primary-400), 1); } :where(p.active):not(:where([class~="not-prose"],[class~="not-prose"] *)) { text-decoration-color: rgba(var(--color-primary-400), 1); } :where(hr):not(:where([class~="not-prose"],[class~="not-prose"] *)) { border: 0.8px solid rgba(var(--color-neutral-500), 1); }}.bg-\[\#6d6d6d\]{background-color:#6d6d6d}.bg-black{background-color:#000}.bg-neutral{background-color:rgba(var(--color-neutral),1)}.bg-neutral-50{background-color:rgba(var(--color-neutral-50),1)}.bg-neutral-50\/97{background-color:color-mix(in srgb,rgba(rgba(var(--color-neutral-50),1),1) 97%,transparent);@supports(color:color-mix(in lab,red,red)){background-color: color-mix(in oklab,rgba(var(--color-neutral-50),1) 97%,transparent);}}.bg-neutral-100{background-color:rgba(var(--color-neutral-100),1)}.bg-neutral-100\/75{background-color:color-mix(in srgb,rgba(rgba(var(--color-neutral-100),1),1) 75%,transparent);@supports(color:color-mix(in lab,red,red)){background-color: color-mix(in oklab,rgba(var(--color-neutral-100),1) 75%,transparent);}}.bg-neutral-300{background-color:rgba(var(--color-neutral-300),1)}.bg-neutral-500\/50{background-color:color-mix(in srgb,rgba(rgba(var(--color-neutral-500),1),1) 50%,transparent);@supports(color:color-mix(in lab,red,red)){background-color: color-mix(in oklab,rgba(var(--color-neutral-500),1) 50%,transparent);}}.bg-neutral-900{background-color:rgba(var(--color-neutral-900),1)}.bg-neutral\/25{background-color:color-mix(in srgb,rgba(rgba(var(--color-neutral),1),1) 25%,transparent);@supports(color:color-mix(in lab,red,red)){background-color: color-mix(in oklab,rgba(var(--color-neutral),1) 25%,transparent);}}.bg-neutral\/50{background-color:color-mix(in srgb,rgba(rgba(var(--color-neutral),1),1) 50%,transparent);@supports(color:color-mix(in lab,red,red)){background-color: color-mix(in oklab,rgba(var(--color-neutral),1) 50%,transparent);}}.bg-primary-100{background-color:rgba(var(--color-primary-100),1)}.bg-primary-200{background-color:rgba(var(--color-primary-200),1)}.bg-primary-200\/80{background-color:color-mix(in srgb,rgba(rgba(var(--color-primary-200),1),1) 80%,transparent);@supports(color:color-mix(in lab,red,red)){background-color: color-mix(in oklab,rgba(var(--color-primary-200),1) 80%,transparent);}}.bg-primary-500{background-color:rgba(var(--color-primary-500),1)}.bg-primary-600{background-color:rgba(var(--color-primary-600),1)}.bg-transparent{background-color:initial}.bg-white{background-color:#fff}.bg-linear-60{--tw-gradient-position:60deg;@supports(background-image:linear-gradient(in lab,red,red)){--tw-gradient-position: 60deg in oklab;}background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-t{--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-none{background-image:none}.from-neutral{--tw-gradient-from:rgba(var(--color-neutral), 1);--tw-gradient-stops:var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-primary-500{--tw-gradient-from:rgba(var(--color-primary-500), 1);--tw-gradient-stops:var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-60\%{--tw-gradient-from-position:60%}.to-neutral{--tw-gradient-to:rgba(var(--color-neutral), 1);--tw-gradient-stops:var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-neutral-100{--tw-gradient-to:rgba(var(--color-neutral-100), 1);--tw-gradient-stops:var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-secondary-600{--tw-gradient-to:rgba(var(--color-secondary-600), 1);--tw-gradient-stops:var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.bg-clip-padding{background-clip:padding-box}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.object-fill{object-fit:fill}.object-scale-down{object-fit:scale-down}.object-left{object-position:left}.\!p-0{padding:calc(var(--spacing) * 0)!important}.p-0{padding:calc(var(--spacing) * 0)}.p-1{padding:calc(var(--spacing) * 1)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.px-0{padding-inline:calc(var(--spacing) * 0)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-\[0\.4rem\]{padding-inline:.4rem}.px-\[30px\]{padding-inline:30px}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-20{padding-block:calc(var(--spacing) * 20)}.py-\[0\.4rem\]{padding-block:.4rem}.py-\[1px\]{padding-block:1px}.ps-2{padding-inline-start:calc(var(--spacing) * 2)}.ps-5{padding-inline-start:calc(var(--spacing) * 5)}.pe-2{padding-inline-end:calc(var(--spacing) * 2)}.pe-3{padding-inline-end:calc(var(--spacing) * 3)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-8{padding-top:calc(var(--spacing) * 8)}.pt-16{padding-top:calc(var(--spacing) * 16)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-32{padding-bottom:calc(var(--spacing) * 32)}.pl-0{padding-left:calc(var(--spacing) * 0)}.text-center{text-align:center}.text-end{text-align:end}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.-indent-\[999px\]{text-indent:calc(999px * -1)}.align-bottom{vertical-align:bottom}.align-middle{vertical-align:middle}.align-text-bottom{vertical-align:text-bottom}.align-top{vertical-align:top}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.6rem\]{font-size:.6rem}.leading-3{--tw-leading:calc(var(--spacing) * 3);line-height:calc(var(--spacing) * 3)}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-7{--tw-leading:calc(var(--spacing) * 7);line-height:calc(var(--spacing) * 7)}.leading-\[1\.6\]{--tw-leading:1.6;line-height:1.6}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.text-wrap{text-wrap:wrap}.break-normal{overflow-wrap:normal;word-break:normal}.break-words{overflow-wrap:break-word}.\!whitespace-nowrap{white-space:nowrap!important}.whitespace-normal{white-space:normal}.\!text-neutral{color:rgba(var(--color-neutral),1)!important}.text-inherit{color:inherit}.text-neutral-50{color:rgba(var(--color-neutral-50),1)}.text-neutral-200{color:rgba(var(--color-neutral-200),1)}.text-neutral-300{color:rgba(var(--color-neutral-300),1)}.text-neutral-400{color:rgba(var(--color-neutral-400),1)}.text-neutral-500{color:rgba(var(--color-neutral-500),1)}.text-neutral-600{color:rgba(var(--color-neutral-600),1)}.text-neutral-700{color:rgba(var(--color-neutral-700),1)}.text-neutral-800{color:rgba(var(--color-neutral-800),1)}.text-neutral-900{color:rgba(var(--color-neutral-900),1)}.text-primary-100{color:rgba(var(--color-primary-100),1)}.text-primary-300{color:rgba(var(--color-primary-300),1)}.text-primary-400{color:rgba(var(--color-primary-400),1)}.text-primary-500{color:rgba(var(--color-primary-500),1)}.text-primary-600{color:rgba(var(--color-primary-600),1)}.text-primary-700{color:rgba(var(--color-primary-700),1)}.text-primary-800{color:rgba(var(--color-primary-800),1)}.text-transparent{color:transparent}.text-white{color:#fff}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.\!no-underline{text-decoration-line:none!important}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.decoration-neutral-300{text-decoration-color:rgba(var(--color-neutral-300),1)}.decoration-primary-500{text-decoration-color:rgba(var(--color-primary-500),1)}.underline-offset-auto{text-underline-offset:auto}.\!opacity-0{opacity:0%!important}.\!opacity-100{opacity:100%!important}.opacity-0{opacity:0%}.opacity-30{opacity:30%}.opacity-50{opacity:50%}.opacity-60{opacity:60%}.opacity-65{opacity:65%}.opacity-100{opacity:100%}.mix-blend-multiply{mix-blend-mode:multiply}.mix-blend-normal{mix-blend-mode:normal}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / 0.25));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-primary-500{--tw-ring-color:rgba(var(--color-primary-500), 1)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.blur\!{--tw-blur:blur(8px) !important;filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)!important}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter\!{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)!important}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-2xl{--tw-backdrop-blur:blur(var(--blur-2xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-brightness-112{--tw-backdrop-brightness:brightness(112%);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-saturate-220{--tw-backdrop-saturate:saturate(220%);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[grid-template-rows\]{transition-property:grid-template-rows;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[height\]{transition-property:height;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[opacity\,visibility\]{transition-property:opacity,visibility;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[transform\,_opacity\]{transition-property:transform,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:150ms;transition-duration:150ms}.duration-200{--tw-duration:200ms;transition-duration:200ms}.duration-300{--tw-duration:300ms;transition-duration:300ms}.duration-\[350ms\]{--tw-duration:350ms;transition-duration:350ms}.duration-\[600ms\]{--tw-duration:600ms;transition-duration:600ms}.ease-\[cubic-bezier\(0\,0\,0\.15\,1\)\,_cubic-bezier\(0\,0\,0\.15\,1\)\]{--tw-ease:cubic-bezier(0,0,0.15,1), cubic-bezier(0,0,0.15,1);transition-timing-function:cubic-bezier(0,0,.15,1),cubic-bezier(0,0,.15,1)}.ease-\[cubic-bezier\(0\.25\,0\.1\,0\.25\,1\.0\)\]{--tw-ease:cubic-bezier(0.25,0.1,0.25,1.0);transition-timing-function:cubic-bezier(.25,.1,.25,1)}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;user-select:none}.\!\[clip\:rect\(0\,0\,0\,0\)\]{clip:rect(0,0,0,0)!important}.group-open\:rotate-0{&:is(:where(.group):is([open],:popover-open,:open) *) { rotate:0deg; }}.group-focus-within\:visible{&:is(:where(.group):focus-within *) { visibility:visible; }}.group-focus-within\:opacity-100{&:is(:where(.group):focus-within *) { opacity:100%; }}.group-hover\:visible{&:is(:where(.group):hover *) { @media (hover:hover) { visibility:visible; } }}.group-hover\:scale-110{&:is(:where(.group):hover *) { @media (hover:hover) { --tw-scale-x:110%; --tw-scale-y:110%; --tw-scale-z:110%; scale:var(--tw-scale-x) var(--tw-scale-y); } }}.group-hover\:text-primary-500{&:is(:where(.group):hover *) { @media (hover:hover) { color:rgba(var(--color-primary-500),1); } }}.group-hover\:opacity-100{&:is(:where(.group):hover *) { @media (hover:hover) { opacity:100%; } }}.group-hover\:ring-2{&:is(:where(.group):hover *) { @media (hover:hover) { --tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); } }}.group-hover\:ring-primary-500{&:is(:where(.group):hover *) { @media (hover:hover) { --tw-ring-color:rgba(var(--color-primary-500),1); } }}.group-data-\[twe-input-focused\]\:border-x-0{&:is(:where(.group)[data-twe-input-focused] *) { border-inline-style:var(--tw-border-style); border-inline-width:0px; }}.group-data-\[twe-input-focused\]\:border-s-0{&:is(:where(.group)[data-twe-input-focused] *) { border-inline-start-style:var(--tw-border-style); border-inline-start-width:0px; }}.group-data-\[twe-input-focused\]\:border-e-0{&:is(:where(.group)[data-twe-input-focused] *) { border-inline-end-style:var(--tw-border-style); border-inline-end-width:0px; }}.group-data-\[twe-input-focused\]\:border-t{&:is(:where(.group)[data-twe-input-focused] *) { border-top-style:var(--tw-border-style); border-top-width:1px; }}.group-data-\[twe-input-focused\]\:border-solid{&:is(:where(.group)[data-twe-input-focused] *) { --tw-border-style:solid; border-style:solid; }}.group-data-\[twe-input-focused\]\:border-white{&:is(:where(.group)[data-twe-input-focused] *) { border-color:#fff; }}.group-data-\[twe-input-focused\]\:border-t-transparent{&:is(:where(.group)[data-twe-input-focused] *) { border-top-color:transparent; }}.group-data-\[twe-input-focused\]\:shadow-white{&:is(:where(.group)[data-twe-input-focused] *) { --tw-shadow-color:#fff; @supports (color:color-mix(in lab,red,red)) { --tw-shadow-color:color-mix(in oklab,#fff var(--tw-shadow-alpha),transparent); } }}.group-data-\[twe-input-state-active\]\:border-x-0{&:is(:where(.group)[data-twe-input-state-active] *) { border-inline-style:var(--tw-border-style); border-inline-width:0px; }}.group-data-\[twe-input-state-active\]\:border-s-0{&:is(:where(.group)[data-twe-input-state-active] *) { border-inline-start-style:var(--tw-border-style); border-inline-start-width:0px; }}.group-data-\[twe-input-state-active\]\:border-e-0{&:is(:where(.group)[data-twe-input-state-active] *) { border-inline-end-style:var(--tw-border-style); border-inline-end-width:0px; }}.group-data-\[twe-input-state-active\]\:border-t{&:is(:where(.group)[data-twe-input-state-active] *) { border-top-style:var(--tw-border-style); border-top-width:1px; }}.group-data-\[twe-input-state-active\]\:border-solid{&:is(:where(.group)[data-twe-input-state-active] *) { --tw-border-style:solid; border-style:solid; }}.group-data-\[twe-input-state-active\]\:border-t-transparent{&:is(:where(.group)[data-twe-input-state-active] *) { border-top-color:transparent; }}.peer-checked\:visible{&:is(:where(.peer):checked ~ *) { visibility:visible; }}.peer-checked\:opacity-100{&:is(:where(.peer):checked ~ *) { opacity:100%; }}.peer-checked\/full\:grid-rows-\[1fr\]{&:is(:where(.peer\/full):checked ~ *) { grid-template-rows:1fr; }}.before\:absolute{&::before { content:var(--tw-content); position:absolute; }}.before\:inset-0{&::before { content:var(--tw-content); inset:calc(var(--spacing) * 0); }}.after\:clear-both{&::after { content:var(--tw-content); clear:both; }}.after\:block{&::after { content:var(--tw-content); display:block; }}.after\:content-\[\'\'\]{&::after { --tw-content:''; content:var(--tw-content); }}.first\:mt-8{&:first-child { margin-top:calc(var(--spacing) * 8); }}.empty\:hidden{&:empty { display:none; }}.hover\:border-transparent{&:hover { @media (hover:hover) { border-color:transparent; } }}.hover\:\!bg-primary-500{&:hover { @media (hover:hover) { background-color:rgba(var(--color-primary-500),1)!important; } }}.hover\:bg-neutral-200{&:hover { @media (hover:hover) { background-color:rgba(var(--color-neutral-200),1); } }}.hover\:bg-primary-100{&:hover { @media (hover:hover) { background-color:rgba(var(--color-primary-100),1); } }}.hover\:bg-primary-500{&:hover { @media (hover:hover) { background-color:rgba(var(--color-primary-500),1); } }}.hover\:bg-primary-600{&:hover { @media (hover:hover) { background-color:rgba(var(--color-primary-600),1); } }}.hover\:text-neutral{&:hover { @media (hover:hover) { color:rgba(var(--color-neutral),1); } }}.hover\:text-neutral-700{&:hover { @media (hover:hover) { color:rgba(var(--color-neutral-700),1); } }}.hover\:text-primary-400{&:hover { @media (hover:hover) { color:rgba(var(--color-primary-400),1); } }}.hover\:text-primary-500{&:hover { @media (hover:hover) { color:rgba(var(--color-primary-500),1); } }}.hover\:text-primary-600{&:hover { @media (hover:hover) { color:rgba(var(--color-primary-600),1); } }}.hover\:text-primary-700{&:hover { @media (hover:hover) { color:rgba(var(--color-primary-700),1); } }}.hover\:no-underline{&:hover { @media (hover:hover) { text-decoration-line:none; } }}.hover\:underline{&:hover { @media (hover:hover) { text-decoration-line:underline; } }}.hover\:decoration-primary-400{&:hover { @media (hover:hover) { text-decoration-color:rgba(var(--color-primary-400),1); } }}.hover\:decoration-2{&:hover { @media (hover:hover) { text-decoration-thickness:2px; } }}.hover\:underline-offset-2{&:hover { @media (hover:hover) { text-underline-offset:2px; } }}.hover\:opacity-90{&:hover { @media (hover:hover) { opacity:90%; } }}.hover\:outline-none{&:hover { @media (hover:hover) { --tw-outline-style:none; outline-style:none; } }}.focus\:translate-y-0{&:focus { --tw-translate-y:calc(var(--spacing) * 0); translate:var(--tw-translate-x) var(--tw-translate-y); }}.focus\:border-primary-500{&:focus { border-color:rgba(var(--color-primary-500),1); }}.focus\:bg-primary-100{&:focus { background-color:rgba(var(--color-primary-100),1); }}.focus\:no-underline{&:focus { text-decoration-line:none; }}.focus\:opacity-90{&:focus { opacity:90%; }}.focus\:ring-primary-500{&:focus { --tw-ring-color:rgba(var(--color-primary-500),1); }}.focus\:outline-2{&:focus { outline-style:var(--tw-outline-style); outline-width:2px; }}.focus\:outline-transparent{&:focus { outline-color:transparent; }}.focus\:outline-dotted{&:focus { --tw-outline-style:dotted; outline-style:dotted; }}.focus\:outline-none{&:focus { --tw-outline-style:none; outline-style:none; }}.data-\[popper-reference-hidden\]\:hidden{&[data-popper-reference-hidden] { display: none; }}.data-\[twe-carousel-fade\]\:z-0{&[data-twe-carousel-fade] { z-index: 0; }}.data-\[twe-carousel-fade\]\:z-\[1\]{&[data-twe-carousel-fade] { z-index: 1; }}.data-\[twe-carousel-fade\]\:opacity-0{&[data-twe-carousel-fade] { opacity: 0%; }}.data-\[twe-carousel-fade\]\:opacity-100{&[data-twe-carousel-fade] { opacity: 100%; }}.data-\[twe-carousel-fade\]\:delay-600{&[data-twe-carousel-fade] { transition-delay: 600ms; }}.data-\[twe-carousel-fade\]\:duration-\[600ms\]{&[data-twe-carousel-fade] { --tw-duration: 600ms; transition-duration: 600ms; }}.motion-reduce\:transition-none{@media(prefers-reduced-motion:reduce){transition-property: none;}}.sm\:me-7{@media(width >= 640px){margin-inline-end: calc(var(--spacing) * 7);}}.sm\:mt-16{@media(width >= 640px){margin-top: calc(var(--spacing) * 16);}}.sm\:mb-0{@media(width >= 640px){margin-bottom: calc(var(--spacing) * 0);}}.sm\:w-1\/2{@media(width >= 640px){width: calc(1 / 2 * 100%);}}.sm\:grid-cols-2{@media(width >= 640px){grid-template-columns: repeat(2,minmax(0,1fr));}}.sm\:flex-row{@media(width >= 640px){flex-direction: row;}}.sm\:overflow-hidden{@media(width >= 640px){overflow: hidden;}}.sm\:p-6{@media(width >= 640px){padding: calc(var(--spacing) * 6);}}.sm\:px-6{@media(width >= 640px){padding-inline: calc(var(--spacing) * 6);}}.sm\:px-14{@media(width >= 640px){padding-inline: calc(var(--spacing) * 14);}}.sm\:py-24{@media(width >= 640px){padding-block: calc(var(--spacing) * 24);}}.sm\:text-lg{@media(width >= 640px){font-size: var(--text-lg); line-height: var(--tw-leading,var(--text-lg--line-height));}}.sm\:last\:me-0{@media(width >= 640px){&:last-child{margin-inline-end:calc(var(--spacing) * 0)}}}.md\:-me-16{@media(width >= 853px){margin-inline-end: calc(var(--spacing) * -16);}}.md\:mt-0{@media(width >= 853px){margin-top: calc(var(--spacing) * 0);}}.md\:mr-7{@media(width >= 853px){margin-right: calc(var(--spacing) * 7);}}.md\:flex{@media(width >= 853px){display: flex;}}.md\:hidden{@media(width >= 853px){display: none;}}.md\:h-56{@media(width >= 853px){height: calc(var(--spacing) * 56);}}.md\:h-\[200px\]{@media(width >= 853px){height: 200px;}}.md\:w-1\/3{@media(width >= 853px){width: calc(1 / 3 * 100%);}}.md\:w-auto{@media(width >= 853px){width: auto;}}.md\:grid-cols-3{@media(width >= 853px){grid-template-columns: repeat(3,minmax(0,1fr));}}.md\:flex-row{@media(width >= 853px){flex-direction: row;}}.md\:justify-start{@media(width >= 853px){justify-content: flex-start;}}.md\:p-\[10vh\]{@media(width >= 853px){padding: 10vh;}}.md\:px-24{@media(width >= 853px){padding-inline: calc(var(--spacing) * 24);}}.lg\:absolute{@media(width >= 1024px){position: absolute;}}.lg\:relative{@media(width >= 1024px){position: relative;}}.lg\:sticky{@media(width >= 1024px){position: sticky;}}.lg\:top-10{@media(width >= 1024px){top: calc(var(--spacing) * 10);}}.lg\:top-\[140px\]{@media(width >= 1024px){top: 140px;}}.lg\:order-last{@media(width >= 1024px){order: 9999;}}.lg\:m-0{@media(width >= 1024px){margin: calc(var(--spacing) * 0);}}.lg\:mx-0{@media(width >= 1024px){margin-inline: calc(var(--spacing) * 0);}}.lg\:mx-auto{@media(width >= 1024px){margin-inline: auto;}}.lg\:ms-auto{@media(width >= 1024px){margin-inline-start: auto;}}.lg\:mt-0{@media(width >= 1024px){margin-top: calc(var(--spacing) * 0);}}.lg\:block{@media(width >= 1024px){display: block;}}.lg\:grid{@media(width >= 1024px){display: grid;}}.lg\:hidden{@media(width >= 1024px){display: none;}}.lg\:h-72{@media(width >= 1024px){height: calc(var(--spacing) * 72);}}.lg\:h-full{@media(width >= 1024px){height: 100%;}}.lg\:w-1\/4{@media(width >= 1024px){width: calc(1 / 4 * 100%);}}.lg\:w-auto{@media(width >= 1024px){width: auto;}}.lg\:max-w-2xs{@media(width >= 1024px){max-width: var(--container-2xs);}}.lg\:max-w-7xl{@media(width >= 1024px){max-width: var(--container-7xl);}}.lg\:max-w-none{@media(width >= 1024px){max-width: none;}}.lg\:grid-flow-col-dense{@media(width >= 1024px){grid-auto-flow: column dense;}}.lg\:grid-cols-2{@media(width >= 1024px){grid-template-columns: repeat(2,minmax(0,1fr));}}.lg\:flex-row{@media(width >= 1024px){flex-direction: row;}}.lg\:gap-24{@media(width >= 1024px){gap: calc(var(--spacing) * 24);}}.lg\:p-\[12vh\]{@media(width >= 1024px){padding: 12vh;}}.lg\:px-0{@media(width >= 1024px){padding-inline: calc(var(--spacing) * 0);}}.lg\:px-8{@media(width >= 1024px){padding-inline: calc(var(--spacing) * 8);}}.lg\:px-32{@media(width >= 1024px){padding-inline: calc(var(--spacing) * 32);}}.lg\:py-16{@media(width >= 1024px){padding-block: calc(var(--spacing) * 16);}}.lg\:py-32{@media(width >= 1024px){padding-block: calc(var(--spacing) * 32);}}.lg\:ps-8{@media(width >= 1024px){padding-inline-start: calc(var(--spacing) * 8);}}.xl\:w-1\/4{@media(width >= 1280px){width: calc(1 / 4 * 100%);}}.xl\:grid-cols-4{@media(width >= 1280px){grid-template-columns: repeat(4,minmax(0,1fr));}}.\32 xl\:grid-cols-5{@media(width >= 1536px){grid-template-columns: repeat(5,minmax(0,1fr));}}.ltr\:-ml-12{&:where(:dir(ltr),[dir="ltr"],[dir="ltr"] *) { margin-left:calc(var(--spacing) * -12); }}.ltr\:block{&:where(:dir(ltr),[dir="ltr"],[dir="ltr"] *) { display:block; }}.ltr\:hidden{&:where(:dir(ltr),[dir="ltr"],[dir="ltr"] *) { display:none; }}.rtl\:-mr-\[79px\]{&:where(:dir(rtl),[dir="rtl"],[dir="rtl"] *) { margin-right:calc(79px * -1); }}.rtl\:block{&:where(:dir(rtl),[dir="rtl"],[dir="rtl"] *) { display:block; }}.rtl\:hidden{&:where(:dir(rtl),[dir="rtl"],[dir="rtl"] *) { display:none; }}.rtl\:rotate-180{&:where(:dir(rtl),[dir="rtl"],[dir="rtl"] *) { rotate:180deg; }}.dark\:block{&:is(.dark *) { display:block; }}.dark\:flex{&:is(.dark *) { display:flex; }}.dark\:hidden{&:is(.dark *) { display:none; }}.dark\:border-neutral-400{&:is(.dark *) { border-color:rgba(var(--color-neutral-400),1); }}.dark\:border-neutral-600{&:is(.dark *) { border-color:rgba(var(--color-neutral-600),1); }}.dark\:border-neutral-700{&:is(.dark *) { border-color:rgba(var(--color-neutral-700),1); }}.dark\:border-primary-300{&:is(.dark *) { border-color:rgba(var(--color-primary-300),1); }}.dark\:border-primary-600{&:is(.dark *) { border-color:rgba(var(--color-primary-600),1); }}.dark\:border-white\/10{&:is(.dark *) { border-color:color-mix(in oklab,#fff 10%,transparent); }}.dark\:prose-invert{&:is(.dark *) { --tw-prose-body:var(--tw-prose-invert-body); --tw-prose-headings:var(--tw-prose-invert-headings); --tw-prose-lead:var(--tw-prose-invert-lead); --tw-prose-links:var(--tw-prose-invert-links); --tw-prose-bold:var(--tw-prose-invert-bold); --tw-prose-counters:var(--tw-prose-invert-counters); --tw-prose-bullets:var(--tw-prose-invert-bullets); --tw-prose-hr:var(--tw-prose-invert-hr); --tw-prose-quotes:var(--tw-prose-invert-quotes); --tw-prose-quote-borders:var(--tw-prose-invert-quote-borders); --tw-prose-captions:var(--tw-prose-invert-captions); --tw-prose-kbd:var(--tw-prose-invert-kbd); --tw-prose-kbd-shadows:var(--tw-prose-invert-kbd-shadows); --tw-prose-code:var(--tw-prose-invert-code); --tw-prose-pre-code:var(--tw-prose-invert-pre-code); --tw-prose-pre-bg:var(--tw-prose-invert-pre-bg); --tw-prose-th-borders:var(--tw-prose-invert-th-borders); --tw-prose-td-borders:var(--tw-prose-invert-td-borders);:where(a):not(:where([class~="not-prose"],[class~="not-prose"] *)) { text-decoration-color:rgba(var(--color-neutral-600),1); &:hover { color:rgba(var(--color-primary-400),1); } }:where(kbd):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color:rgba(var(--color-neutral-200),1); background-color:rgba(var(--color-neutral-700),1); }:where(mark):not(:where([class~="not-prose"],[class~="not-prose"] *)) { background-color:rgba(var(--color-primary-400),1); }:where(code:not(pre code)):not(:where([class~="not-prose"],[class~="not-prose"] *)) { background-color:color-mix(in oklab,oklch(21% 0.006 285.885) 70%,transparent); }:where(a.active):not(:where([class~="not-prose"],[class~="not-prose"] *)) { text-decoration-color:rgba(var(--color-primary-400),1); }:where(p.active):not(:where([class~="not-prose"],[class~="not-prose"] *)) { text-decoration-color:rgba(var(--color-primary-400),1); }:where(hr):not(:where([class~="not-prose"],[class~="not-prose"] *)) { border:0.8px solid rgba(var(--color-neutral-500),1); } }}.dark\:bg-neutral-100{&:is(.dark *) { background-color:rgba(var(--color-neutral-100),1); }}.dark\:bg-neutral-400{&:is(.dark *) { background-color:rgba(var(--color-neutral-400),1); }}.dark\:bg-neutral-600{&:is(.dark *) { background-color:rgba(var(--color-neutral-600),1); }}.dark\:bg-neutral-700{&:is(.dark *) { background-color:rgba(var(--color-neutral-700),1); }}.dark\:bg-neutral-800{&:is(.dark *) { background-color:rgba(var(--color-neutral-800),1); }}.dark\:bg-neutral-800\/25{&:is(.dark *) { background-color:color-mix(in srgb,rgba(rgba(var(--color-neutral-800),1),1) 25%,transparent); @supports (color:color-mix(in lab,red,red)) { background-color:color-mix(in oklab,rgba(var(--color-neutral-800),1) 25%,transparent); } }}.dark\:bg-neutral-800\/50{&:is(.dark *) { background-color:color-mix(in srgb,rgba(rgba(var(--color-neutral-800),1),1) 50%,transparent); @supports (color:color-mix(in lab,red,red)) { background-color:color-mix(in oklab,rgba(var(--color-neutral-800),1) 50%,transparent); } }}.dark\:bg-neutral-800\/60{&:is(.dark *) { background-color:color-mix(in srgb,rgba(rgba(var(--color-neutral-800),1),1) 60%,transparent); @supports (color:color-mix(in lab,red,red)) { background-color:color-mix(in oklab,rgba(var(--color-neutral-800),1) 60%,transparent); } }}.dark\:bg-neutral-900{&:is(.dark *) { background-color:rgba(var(--color-neutral-900),1); }}.dark\:bg-neutral-900\/50{&:is(.dark *) { background-color:color-mix(in srgb,rgba(rgba(var(--color-neutral-900),1),1) 50%,transparent); @supports (color:color-mix(in lab,red,red)) { background-color:color-mix(in oklab,rgba(var(--color-neutral-900),1) 50%,transparent); } }}.dark\:bg-neutral-900\/99{&:is(.dark *) { background-color:color-mix(in srgb,rgba(rgba(var(--color-neutral-900),1),1) 99%,transparent); @supports (color:color-mix(in lab,red,red)) { background-color:color-mix(in oklab,rgba(var(--color-neutral-900),1) 99%,transparent); } }}.dark\:bg-primary-300{&:is(.dark *) { background-color:rgba(var(--color-primary-300),1); }}.dark\:bg-primary-400{&:is(.dark *) { background-color:rgba(var(--color-primary-400),1); }}.dark\:bg-primary-800{&:is(.dark *) { background-color:rgba(var(--color-primary-800),1); }}.dark\:bg-primary-800\/30{&:is(.dark *) { background-color:color-mix(in srgb,rgba(rgba(var(--color-primary-800),1),1) 30%,transparent); @supports (color:color-mix(in lab,red,red)) { background-color:color-mix(in oklab,rgba(var(--color-primary-800),1) 30%,transparent); } }}.dark\:bg-primary-900{&:is(.dark *) { background-color:rgba(var(--color-primary-900),1); }}.dark\:from-neutral-800{&:is(.dark *) { --tw-gradient-from:rgba(var(--color-neutral-800),1); --tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position)); }}.dark\:from-primary-600{&:is(.dark *) { --tw-gradient-from:rgba(var(--color-primary-600),1); --tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position)); }}.dark\:to-neutral-800{&:is(.dark *) { --tw-gradient-to:rgba(var(--color-neutral-800),1); --tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position)); }}.dark\:to-secondary-800{&:is(.dark *) { --tw-gradient-to:rgba(var(--color-secondary-800),1); --tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position)); }}.dark\:text-neutral{&:is(.dark *) { color:rgba(var(--color-neutral),1); }}.dark\:text-neutral-100{&:is(.dark *) { color:rgba(var(--color-neutral-100),1); }}.dark\:text-neutral-200{&:is(.dark *) { color:rgba(var(--color-neutral-200),1); }}.dark\:text-neutral-300{&:is(.dark *) { color:rgba(var(--color-neutral-300),1); }}.dark\:text-neutral-400{&:is(.dark *) { color:rgba(var(--color-neutral-400),1); }}.dark\:text-neutral-500{&:is(.dark *) { color:rgba(var(--color-neutral-500),1); }}.dark\:text-neutral-700{&:is(.dark *) { color:rgba(var(--color-neutral-700),1); }}.dark\:text-neutral-800{&:is(.dark *) { color:rgba(var(--color-neutral-800),1); }}.dark\:text-neutral-900{&:is(.dark *) { color:rgba(var(--color-neutral-900),1); }}.dark\:text-primary-200{&:is(.dark *) { color:rgba(var(--color-primary-200),1); }}.dark\:text-primary-400{&:is(.dark *) { color:rgba(var(--color-primary-400),1); }}.dark\:text-white{&:is(.dark *) { color:#fff; }}.dark\:opacity-60{&:is(.dark *) { opacity:60%; }}.dark\:backdrop-brightness-95{&:is(.dark *) { --tw-backdrop-brightness:brightness(95%); -webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); }}.dark\:backdrop-saturate-180{&:is(.dark *) { --tw-backdrop-saturate:saturate(180%); -webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); }}.dark\:hover\:\!bg-primary-700{&:is(.dark *) { &:hover { @media (hover:hover) { background-color:rgba(var(--color-primary-700),1)!important; } } }}.dark\:hover\:bg-neutral-700{&:is(.dark *) { &:hover { @media (hover:hover) { background-color:rgba(var(--color-neutral-700),1); } } }}.dark\:hover\:bg-primary-400{&:is(.dark *) { &:hover { @media (hover:hover) { background-color:rgba(var(--color-primary-400),1); } } }}.dark\:hover\:bg-primary-900{&:is(.dark *) { &:hover { @media (hover:hover) { background-color:rgba(var(--color-primary-900),1); } } }}.dark\:hover\:text-neutral-200{&:is(.dark *) { &:hover { @media (hover:hover) { color:rgba(var(--color-neutral-200),1); } } }}.dark\:hover\:text-neutral-800{&:is(.dark *) { &:hover { @media (hover:hover) { color:rgba(var(--color-neutral-800),1); } } }}.dark\:hover\:text-primary-400{&:is(.dark *) { &:hover { @media (hover:hover) { color:rgba(var(--color-primary-400),1); } } }}.dark\:focus\:bg-primary-900{&:is(.dark *) { &:focus { background-color:rgba(var(--color-primary-900),1); } }}.print\:hidden{@media print{display: none;}}.\[\&_\.translation_\.menuhide_span\]\:text-sm\!{& .translation .menuhide span { font-size: var(--text-sm) !important; line-height: var(--tw-leading, var(--text-sm--line-height)) !important; }}.\[\&_\.translation_button_\.icon\]\:text-4xl\!{& .translation button .icon { font-size: var(--text-4xl) !important; line-height: var(--tw-leading, var(--text-4xl--line-height)) !important; }}.\[\&_\.translation_button_span\]\:text-base\!{& .translation button span { font-size: var(--text-base) !important; line-height: var(--tw-leading, var(--text-base--line-height)) !important; }}.\[\&_span\]\:text-2xl{& span { font-size: var(--text-2xl); line-height: var(--tw-leading, var(--text-2xl--line-height)); }}}@layer utilities{.highlight-wrapper{position:relative;z-index:0;display:block;overflow:hidden;border-radius:var(--radius-md);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);margin-top:1.7142857em;margin-bottom:1.7142857em}.highlight-wrapper pre,.highlight-wrapper table,.highlight-wrapper div{margin-top:0;margin-bottom:0}.highlight-wrapper:has(.codeblock-title) pre{border-radius:0}.codeblock-title{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--color-neutral-200),1);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);&:is(.dark *) { border-color:rgba(var(--color-neutral-800),1); } background-color:#fff;&:is(.dark *) { background-color:#0d1117; }}.chroma .lntd,.chroma .lntd pre{margin:calc(var(--spacing) * 0);--tw-border-style:none;border-style:none;padding:calc(var(--spacing) * 0);vertical-align:top}.chroma .lntable{display:block;width:auto;overflow:hidden;padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 3);font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));border-spacing:0}.chroma .hl{margin-inline:calc(var(--spacing) * -4);display:block;width:auto;padding-inline:calc(var(--spacing) * 4)}.chroma .lntd .hl{margin:calc(var(--spacing) * 0);padding:calc(var(--spacing) * 0)}.chroma:not(:is(table *))>code{display:block;min-width:max-content}html:not(.dark){.bg { background-color: #fff; } .chroma { background-color: #fff; } .chroma .err { color: #f6f8fa; background-color: #82071e; } .chroma .lnlinks { outline: none; text-decoration: none; color: inherit; } .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } .chroma .lntable { border-spacing: 0; } .chroma .hl { background-color: #e5e5e5; } .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em; color: #7f7f7f; } .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em; color: #7f7f7f; } .chroma .line { display: flex; } .chroma .k { color: #cf222e; } .chroma .kc { color: #cf222e; } .chroma .kd { color: #cf222e; } .chroma .kn { color: #cf222e; } .chroma .kp { color: #cf222e; } .chroma .kr { color: #cf222e; } .chroma .kt { color: #cf222e; } .chroma .na { color: #1f2328; } .chroma .nc { color: #1f2328; } .chroma .no { color: #0550ae; } .chroma .nd { color: #0550ae; } .chroma .ni { color: #6639ba; } .chroma .nl { color: #900; font-weight: bold; } .chroma .nn { color: #24292e; } .chroma .nx { color: #1f2328; } .chroma .nt { color: #0550ae; } .chroma .nb { color: #6639ba; } .chroma .bp { color: #6a737d; } .chroma .nv { color: #953800; } .chroma .vc { color: #953800; } .chroma .vg { color: #953800; } .chroma .vi { color: #953800; } .chroma .vm { color: #953800; } .chroma .nf { color: #6639ba; } .chroma .fm { color: #6639ba; } .chroma .s { color: #0a3069; } .chroma .sa { color: #0a3069; } .chroma .sb { color: #0a3069; } .chroma .sc { color: #0a3069; } .chroma .dl { color: #0a3069; } .chroma .sd { color: #0a3069; } .chroma .s2 { color: #0a3069; } .chroma .se { color: #0a3069; } .chroma .sh { color: #0a3069; } .chroma .si { color: #0a3069; } .chroma .sx { color: #0a3069; } .chroma .sr { color: #0a3069; } .chroma .s1 { color: #0a3069; } .chroma .ss { color: #032f62; } .chroma .m { color: #0550ae; } .chroma .mb { color: #0550ae; } .chroma .mf { color: #0550ae; } .chroma .mh { color: #0550ae; } .chroma .mi { color: #0550ae; } .chroma .il { color: #0550ae; } .chroma .mo { color: #0550ae; } .chroma .o { color: #0550ae; } .chroma .ow { color: #0550ae; } .chroma .p { color: #1f2328; } .chroma .c { color: #57606a; } .chroma .ch { color: #57606a; } .chroma .cm { color: #57606a; } .chroma .c1 { color: #57606a; } .chroma .cs { color: #57606a; } .chroma .cp { color: #57606a; } .chroma .cpf { color: #57606a; } .chroma .gd { color: #82071e; background-color: #ffebe9; } .chroma .ge { color: #1f2328; } .chroma .gi { color: #116329; background-color: #dafbe1; } .chroma .go { color: #1f2328; } .chroma .gl { text-decoration: underline; } .chroma .w { color: #fff; }}html.dark{.bg { color: #e6edf3; background-color: #0d1117; } .chroma { color: #e6edf3; background-color: #0d1117; } .chroma .err { color: #f85149; } .chroma .lnlinks { outline: none; text-decoration: none; color: inherit; } .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } .chroma .lntable { border-spacing: 0; } .chroma .hl { background-color: #333; } .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em; color: #737679; } .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em; color: #6e7681; } .chroma .line { display: flex; } .chroma .k { color: #ff7b72; } .chroma .kc { color: #79c0ff; } .chroma .kd { color: #ff7b72; } .chroma .kn { color: #ff7b72; } .chroma .kp { color: #79c0ff; } .chroma .kr { color: #ff7b72; } .chroma .kt { color: #ff7b72; } .chroma .nc { color: #f0883e; font-weight: bold; } .chroma .no { color: #79c0ff; font-weight: bold; } .chroma .nd { color: #d2a8ff; font-weight: bold; } .chroma .ni { color: #ffa657; } .chroma .ne { color: #f0883e; font-weight: bold; } .chroma .nl { color: #79c0ff; font-weight: bold; } .chroma .nn { color: #ff7b72; } .chroma .py { color: #79c0ff; } .chroma .nt { color: #7ee787; } .chroma .nv { color: #79c0ff; } .chroma .vc { color: #79c0ff; } .chroma .vg { color: #79c0ff; } .chroma .vi { color: #79c0ff; } .chroma .vm { color: #79c0ff; } .chroma .nf { color: #d2a8ff; font-weight: bold; } .chroma .fm { color: #d2a8ff; font-weight: bold; } .chroma .l { color: #a5d6ff; } .chroma .ld { color: #79c0ff; } .chroma .s { color: #a5d6ff; } .chroma .sa { color: #79c0ff; } .chroma .sb { color: #a5d6ff; } .chroma .sc { color: #a5d6ff; } .chroma .dl { color: #79c0ff; } .chroma .sd { color: #a5d6ff; } .chroma .s2 { color: #a5d6ff; } .chroma .se { color: #79c0ff; } .chroma .sh { color: #79c0ff; } .chroma .si { color: #a5d6ff; } .chroma .sx { color: #a5d6ff; } .chroma .sr { color: #79c0ff; } .chroma .s1 { color: #a5d6ff; } .chroma .ss { color: #a5d6ff; } .chroma .m { color: #a5d6ff; } .chroma .mb { color: #a5d6ff; } .chroma .mf { color: #a5d6ff; } .chroma .mh { color: #a5d6ff; } .chroma .mi { color: #a5d6ff; } .chroma .il { color: #a5d6ff; } .chroma .mo { color: #a5d6ff; } .chroma .o { color: #ff7b72; font-weight: bold; } .chroma .ow { color: #ff7b72; font-weight: bold; } .chroma .c { color: #8b949e; font-style: italic; } .chroma .ch { color: #8b949e; font-style: italic; } .chroma .cm { color: #8b949e; font-style: italic; } .chroma .c1 { color: #8b949e; font-style: italic; } .chroma .cs { color: #8b949e; font-weight: bold; font-style: italic; } .chroma .cp { color: #8b949e; font-weight: bold; font-style: italic; } .chroma .cpf { color: #8b949e; font-weight: bold; font-style: italic; } .chroma .gd { color: #ffa198; background-color: #490202; } .chroma .ge { font-style: italic; } .chroma .gr { color: #ffa198; } .chroma .gh { color: #79c0ff; font-weight: bold; } .chroma .gi { color: #56d364; background-color: #0f5323; } .chroma .go { color: #8b949e; } .chroma .gp { color: #8b949e; } .chroma .gs { font-weight: bold; } .chroma .gu { color: #79c0ff; } .chroma .gt { color: #ff7b72; } .chroma .gl { text-decoration: underline; } .chroma .w { color: #6e7681; }}}@layer utilities{.tab__button.tab--active{border-bottom:2px solid rgb(var(--color-primary-500))}.tab__panel{display:none}.tab__panel.tab--active{display:block}}#zen-mode-button{cursor:pointer}.zen-mode{position:relative}body.zen-mode-enable{ #bmc-wbtn, .author { display: none !important; }}.gist-container .gist{h1 { margin-bottom: calc(var(--spacing) * 4); } .gist-file { border: 1px solid rgb(var(--color-neutral-300)); border-radius: 8px; overflow: hidden; } .gist-meta { background-color: white; color: rgb(var(--color-neutral-600)); border-radius: 0 0 8px 8px; } .gist-meta a { color: rgb(var(--color-primary-600)); } .highlight tr { border-bottom: none; } .gist-file .file { margin-top: 0; margin-bottom: 0; } .dark & { .gist-file { border-color: rgb(var(--color-neutral-800)); } .gist-data { background-color: rgb(var(--color-neutral-900)); border-bottom: 1px solid rgb(var(--color-neutral-800)); } .gist-meta { background-color: rgb(26, 26, 26); color: rgb(var(--color-neutral-400)); } .gist-meta a { color: rgb(var(--color-primary-400)); } .blob-wrapper { filter: invert(0.9) hue-rotate(180deg); background-color: #fff; } .gist-data { background: rgb(26, 26, 26); color: rgb(var(--color-neutral-100)); } }}.a11y-panel-enter-active{animation:slideInFromTop .3s cubic-bezier(.4,0,.2,1)forwards}.a11y-panel-leave-active{animation:slideOutToTop .3s cubic-bezier(.4,0,.2,1)forwards}.ios-toggle{position:relative;width:42px;height:24px;background:#e5e5e5;border-radius:12px;cursor:pointer;transition:background-color .3s ease;pointer-events:auto}.ios-toggle input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;z-index:1}.ios-toggle::after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border-radius:50%;transition:transform .3s ease,background-color .3s ease;box-shadow:0 1px 3px rgba(0,0,0,.2);z-index:0}.ios-toggle input:checked+.toggle-track::after{transform:translateX(18px)}.ios-toggle input:checked+.toggle-track{background:rgba(var(--color-primary-500),1)}.ios-toggle input:checked~.ios-toggle-ball{transform:translateX(18px)}.ios-toggle.is-checked{background:rgba(var(--color-primary-500),1)}.ios-toggle:has(input:checked){background:rgba(var(--color-primary-500),1)}.ios-toggle:has(input:checked)::after{transform:translateX(18px)}.dark .ios-toggle{background:#404040}.dark .ios-toggle::after{background:#f5f5f5}@layer components{:root{--adm-note-border:oklch(68.5% 0.169 237.323);--adm-note-bg:oklch(97.7% 0.013 236.62);--adm-note-text:oklch(39.1% 0.09 240.876);--adm-tip-border:oklch(69.6% 0.17 162.48);--adm-tip-bg:oklch(97.9% 0.021 166.113);--adm-tip-text:oklch(37.8% 0.077 168.94);--adm-important-border:oklch(62.7% 0.265 303.9);--adm-important-bg:oklch(97.7% 0.014 308.299);--adm-important-text:oklch(38.1% 0.176 304.987);--adm-warning-border:oklch(70.5% 0.213 47.604);--adm-warning-bg:oklch(98% 0.016 73.684);--adm-warning-text:oklch(40.8% 0.123 38.172);--adm-caution-border:oklch(63.7% 0.237 25.331);--adm-caution-bg:oklch(97.1% 0.013 17.38);--adm-caution-text:oklch(39.6% 0.141 25.723);--adm-abstract-border:oklch(71.5% 0.143 215.221);--adm-abstract-bg:oklch(98.4% 0.019 200.873);--adm-abstract-text:oklch(39.8% 0.07 227.392);--adm-bug-border:oklch(64.5% 0.246 16.439);--adm-bug-bg:oklch(96.9% 0.015 12.422);--adm-bug-text:oklch(41% 0.159 10.272);--adm-danger-border:oklch(63.7% 0.237 25.331);--adm-danger-bg:oklch(97.1% 0.013 17.38);--adm-danger-text:oklch(39.6% 0.141 25.723);--adm-example-border:oklch(55.8% 0.288 302.321);--adm-example-bg:oklch(97.7% 0.014 308.299);--adm-example-text:oklch(38.1% 0.176 304.987);--adm-failure-border:oklch(65.6% 0.241 354.308);--adm-failure-bg:oklch(97.1% 0.014 343.198);--adm-failure-text:oklch(40.8% 0.153 2.432);--adm-info-border:oklch(62.3% 0.214 259.815);--adm-info-bg:oklch(97% 0.014 254.604);--adm-info-text:oklch(37.9% 0.146 265.522);--adm-question-border:oklch(76.9% 0.188 70.08);--adm-question-bg:oklch(98.7% 0.022 95.277);--adm-question-text:oklch(41.4% 0.112 45.904);--adm-quote-border:oklch(55.1% 0.027 264.364);--adm-quote-bg:oklch(98.5% 0.002 247.839);--adm-quote-text:oklch(27.8% 0.033 256.848);--adm-success-border:oklch(69.6% 0.17 162.48);--adm-success-bg:oklch(97.9% 0.021 166.113);--adm-success-text:oklch(37.8% 0.077 168.94);--adm-todo-border:oklch(68.5% 0.169 237.323);--adm-todo-bg:oklch(97.7% 0.013 236.62);--adm-todo-text:oklch(44.3% 0.11 240.79)}html.dark{--adm-note-bg:color-mix(in srgb, oklch(44.3% 0.11 240.79), #0f0f0f 50%);--adm-note-text:oklch(95.1% 0.026 236.824);--adm-tip-bg:color-mix(in srgb, oklch(43.2% 0.095 166.913), #0f0f0f 50%);--adm-tip-text:oklch(95% 0.052 163.051);--adm-important-bg:color-mix(in srgb, oklch(43.8% 0.218 303.724), #0f0f0f 50%);--adm-important-text:oklch(94.6% 0.033 307.174);--adm-warning-bg:color-mix(in srgb, oklch(47% 0.157 37.304), #0f0f0f 45%);--adm-warning-text:oklch(95.4% 0.038 75.164);--adm-caution-bg:color-mix(in srgb, oklch(44.4% 0.177 26.899), #0f0f0f 45%);--adm-caution-text:oklch(93.6% 0.032 17.717);--adm-abstract-bg:color-mix(in srgb, oklch(45% 0.085 224.283), #0f0f0f 50%);--adm-abstract-text:oklch(95.6% 0.045 203.388);--adm-bug-bg:color-mix(in srgb, oklch(45.5% 0.188 13.697), #0f0f0f 50%);--adm-bug-text:oklch(94.1% 0.03 12.58);--adm-danger-bg:color-mix(in srgb, oklch(44.4% 0.177 26.899), #0f0f0f 45%);--adm-danger-text:oklch(93.6% 0.032 17.717);--adm-example-bg:color-mix(in srgb, oklch(43.8% 0.218 303.724), #0f0f0f 50%);--adm-example-text:oklch(94.6% 0.033 307.174);--adm-failure-bg:color-mix(in srgb, oklch(45.9% 0.187 3.815), #0f0f0f 50%);--adm-failure-text:oklch(94.8% 0.028 342.258);--adm-info-bg:color-mix(in srgb, oklch(42.4% 0.199 265.638), #0f0f0f 50%);--adm-info-text:oklch(93.2% 0.032 255.585);--adm-question-bg:color-mix(in srgb, oklch(47.3% 0.137 46.201), #0f0f0f 50%);--adm-question-text:oklch(96.2% 0.059 95.617);--adm-quote-bg:color-mix(in srgb, oklch(27.8% 0.033 256.848), #0f0f0f 50%);--adm-quote-text:oklch(96.7% 0.003 264.542);--adm-success-bg:color-mix(in srgb, oklch(43.2% 0.095 166.913), #0f0f0f 50%);--adm-success-text:oklch(95% 0.052 163.051);--adm-todo-bg:color-mix(in srgb, oklch(44.3% 0.11 240.79), #0f0f0f 50%);--adm-todo-text:oklch(95.1% 0.026 236.824)}.admonition-content>:first-child{margin-top:0!important}.admonition-content>:last-child{margin-bottom:0!important}.admonition-content pre{margin-block:0!important}.admonition[data-type=note]{border-color:var(--adm-note-border);background-color:var(--adm-note-bg);color:var(--adm-note-text)}.admonition[data-type=tip]{border-color:var(--adm-tip-border);background-color:var(--adm-tip-bg);color:var(--adm-tip-text)}.admonition[data-type=important]{border-color:var(--adm-important-border);background-color:var(--adm-important-bg);color:var(--adm-important-text)}.admonition[data-type=warning]{border-color:var(--adm-warning-border);background-color:var(--adm-warning-bg);color:var(--adm-warning-text)}.admonition[data-type=caution]{border-color:var(--adm-caution-border);background-color:var(--adm-caution-bg);color:var(--adm-caution-text)}.admonition[data-type=abstract]{border-color:var(--adm-abstract-border);background-color:var(--adm-abstract-bg);color:var(--adm-abstract-text)}.admonition[data-type=bug]{border-color:var(--adm-bug-border);background-color:var(--adm-bug-bg);color:var(--adm-bug-text)}.admonition[data-type=danger]{border-color:var(--adm-danger-border);background-color:var(--adm-danger-bg);color:var(--adm-danger-text)}.admonition[data-type=example]{border-color:var(--adm-example-border);background-color:var(--adm-example-bg);color:var(--adm-example-text)}.admonition[data-type=failure]{border-color:var(--adm-failure-border);background-color:var(--adm-failure-bg);color:var(--adm-failure-text)}.admonition[data-type=info]{border-color:var(--adm-info-border);background-color:var(--adm-info-bg);color:var(--adm-info-text)}.admonition[data-type=question]{border-color:var(--adm-question-border);background-color:var(--adm-question-bg);color:var(--adm-question-text)}.admonition[data-type=quote]{border-color:var(--adm-quote-border);background-color:var(--adm-quote-bg);color:var(--adm-quote-text)}.admonition[data-type=success]{border-color:var(--adm-success-border);background-color:var(--adm-success-bg);color:var(--adm-success-text)}.admonition[data-type=todo]{border-color:var(--adm-todo-border);background-color:var(--adm-todo-bg);color:var(--adm-todo-text)}}html:not(.dark){color-scheme:light}html.dark{color-scheme:dark}body a,body button{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}button,[role=button]{cursor:pointer}.icon svg{height:1em;width:1em}.logo svg{height:5rem;width:5rem}#search-query::-webkit-search-cancel-button,#search-query::-webkit-search-decoration,#search-query::-webkit-search-results-button,#search-query::-webkit-search-results-decoration{display:none}.prose blockquote{&:where(:dir(rtl),[dir="rtl"],[dir="rtl"] *) { border-right-style:var(--tw-border-style); border-right-width:4px; } &:where(:dir(rtl),[dir="rtl"],[dir="rtl"] *) { border-left-style:var(--tw-border-style); border-left-width:0px; } &:where(:dir(rtl),[dir="rtl"],[dir="rtl"] *) { padding-right:calc(var(--spacing) * 4); }}.prose ul>li,.prose ol>li{&:where(:dir(rtl),[dir="rtl"],[dir="rtl"] *) { margin-right:calc(var(--spacing) * 7); } &:where(:dir(rtl),[dir="rtl"],[dir="rtl"] *) { padding-right:calc(var(--spacing) * 2); } &:where(:dir(rtl),[dir="rtl"],[dir="rtl"] *) { padding-left:calc(var(--spacing) * 0); }}.prose ol>li:before,.prose ul>li:before{&:where(:dir(rtl),[dir="rtl"],[dir="rtl"] *) { right:calc(var(--spacing) * 1); } &:where(:dir(rtl),[dir="rtl"],[dir="rtl"] *) { left:auto; }}.prose thead td:first-child,.prose thead th:first-child{&:where(:dir(rtl),[dir="rtl"],[dir="rtl"] *) { padding-right:calc(var(--spacing) * 0); }}.prose thead td:last-child,.prose thead th:last-child{&:where(:dir(rtl),[dir="rtl"],[dir="rtl"] *) { padding-left:calc(var(--spacing) * 0); }}.prose div.min-w-0.max-w-prose>*:first-child{margin-top:calc(var(--spacing) * 3)}#TOCView{max-height:calc(100vh - 150px);min-height:0;overflow-x:hidden}.toc ul,.toc li{list-style-type:none;padding-inline:calc(var(--spacing) * 0);--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.toc ul ul{&:where(:dir(ltr),[dir="ltr"],[dir="ltr"] *) { padding-left:calc(var(--spacing) * 4); } &:where(:dir(rtl),[dir="rtl"],[dir="rtl"] *) { padding-right:calc(var(--spacing) * 4); }}.toc a{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal);color:rgba(var(--color-neutral-700),1);&:is(.dark *) { color:rgba(var(--color-neutral-300),1); }}.toc ul>li{&:where(:dir(rtl),[dir="rtl"],[dir="rtl"] *) { margin-right:calc(var(--spacing) * 0); }}.highlight{position:relative;z-index:0}.highlight-wrapper:hover>.copy-button{visibility:visible}.copy-button{visibility:hidden;position:absolute;top:calc(var(--spacing) * 0);right:calc(var(--spacing) * 0);z-index:10;width:calc(var(--spacing) * 20);cursor:pointer;text-overflow:ellipsis;overflow:hidden;border-top-right-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md);background-color:rgba(var(--color-neutral-200),1);padding-block:calc(var(--spacing) * 1);font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));white-space:nowrap;color:rgba(var(--color-neutral-700),1);opacity:90%;&:is(.dark *) { background-color:rgba(var(--color-neutral-600),1); } &:is(.dark *) { color:rgba(var(--color-neutral-200),1); }}.copy-button:hover,.copy-button:focus,.copy-button:active,.copy-button:active:hover{background-color:rgba(var(--color-primary-100),1);&:is(.dark *) { background-color:rgba(var(--color-primary-600),1); }}.copy-textarea{position:absolute;z-index:calc(10 * -1);opacity:5%}.katex-display{overflow:auto hidden}.katex-display{padding:1em;width:calc(100% - 1em)}table{display:block;overflow:auto}code{word-wrap:break-word;overflow-wrap:break-word}a{word-break:break-word;word-wrap:break-word;overflow-wrap:break-word}.prose-invert .highlight pre>code{background-color:unset}pre{text-align:left}.single_hero_round{max-height:50vh;object-fit:cover}.single_hero_background{width:calc(100% + 1px);z-index:-10}.hero_gradient{width:100%;height:100%}.thumbnail_card{min-width:300px;height:200px}.thumbnail_card_related{height:150px}.thumbnail{width:300px;min-height:180px}@media(width < 853px){.thumbnail{width:100%}}.thumbnail-shadow{box-shadow:5px 5px 20px 1px rgba(0,0,0,.3)}@media(width < 853px){.width-patch{width:80vw}}@media(width >= 853px){.width-patch{width:65ch}}.anchor{display:block;position:relative;top:-150px;height:0;visibility:hidden}[id^=fn],[id^=fnref]{scroll-margin-top:145px}#main-content{scroll-margin-top:-125px}@media(width >= 640px){.article{flex-wrap:wrap}}@media(width >= 853px){.article{flex-wrap:nowrap}}.medium-zoom-image--opened{z-index:100}@layer utilities{.bf-border-color{border-color:rgba(var(--color-neutral-300),1);&:is(.dark *) { border-color:rgba(var(--color-neutral-700),1); }}.bf-border-color-hover{&:hover { @media (hover:hover) { border-color:rgba(var(--color-primary-600),1); } } &:is(.dark *) { &:hover { @media (hover:hover) { border-color:rgba(var(--color-primary-400),1); } } }}.bf-icon-color-hover{&:hover { @media (hover:hover) { color:rgba(var(--color-primary-600),1); } } &:is(.dark *) { &:hover { @media (hover:hover) { color:rgba(var(--color-primary-400),1); } } }}.bf-scrollbar{&::-webkit-scrollbar-track { background-color:var(--scrollbar-track); border-radius:var(--scrollbar-track-radius); } &::-webkit-scrollbar-thumb { background-color:var(--scrollbar-thumb); border-radius:var(--scrollbar-thumb-radius); } &::-webkit-scrollbar-corner { background-color:var(--scrollbar-corner); border-radius:var(--scrollbar-corner-radius); } @supports (-moz-appearance:none) { scrollbar-width:thin; scrollbar-color:var(--scrollbar-thumb,initial) var(--scrollbar-track,initial); } &::-webkit-scrollbar { display:block; width:8px; height:8px; } --scrollbar-thumb:oklch(70.8% 0 0);--scrollbar-track:oklch(92.2% 0 0);&:is(.dark *) { --scrollbar-thumb:oklch(43.9% 0 0); } &:is(.dark *) { --scrollbar-track:oklch(26.9% 0 0); }}}body:has(#mobile-menu-toggle:checked){overflow:hidden}@media(min-width:853px){body:has(#mobile-menu-toggle:checked){overflow:visible}}#bmc-wbtn{z-index:50!important}.nested-menu{position:relative}.menuhide{position:absolute;z-index:1000;white-space:nowrap;opacity:0;visibility:hidden;transition:visibility .3s,opacity .3s ease-in-out}.nested-menu:hover .menuhide,.nested-menu:focus-within .menuhide{opacity:1;visibility:visible}.active{text-decoration-line:underline;text-decoration-thickness:3px;text-underline-offset:4px}@layer base{input:where([type=text]),input:where(:not([type])),input:where([type=email]),input:where([type=url]),input:where([type=password]),input:where([type=number]),input:where([type=date]),input:where([type=datetime-local]),input:where([type=month]),input:where([type=search]),input:where([type=tel]),input:where([type=time]),input:where([type=week]),select:where([multiple]),textarea,select{appearance:none;background-color:#fff;border-color:oklch(55.1% .027 264.364);border-width:1px;border-radius:0;padding-top:.5rem;padding-right:.75rem;padding-bottom:.5rem;padding-left:.75rem;font-size:1rem;line-height:1.5rem;--tw-shadow:0 0 #0000;&:focus { outline:2px solid transparent; outline-offset:2px; --tw-ring-inset:var(--tw-empty,); --tw-ring-offset-width:0px; --tw-ring-offset-color:#fff; --tw-ring-color:oklch(54.6% 0.245 262.881); --tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); border-color:oklch(54.6% 0.245 262.881); }}input::placeholder,textarea::placeholder{color:oklch(55.1% .027 264.364);opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em}::-webkit-date-and-time-value{text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;print-color-adjust:exact}select:where([multiple]),select:where([size]:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;padding-right:.75rem;print-color-adjust:unset}input:where([type=checkbox]),input:where([type=radio]){appearance:none;padding:0;print-color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:oklch(54.6% .245 262.881);background-color:#fff;border-color:oklch(55.1% .027 264.364);border-width:1px;--tw-shadow:0 0 #0000}input:where([type=checkbox]){border-radius:0}input:where([type=radio]){border-radius:100%}input:where([type=checkbox]):focus,input:where([type=radio]):focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% 0.245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}input:where([type=checkbox]):checked,input:where([type=radio]):checked{border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}input:where([type=checkbox]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e");@media(forced-colors:active){appearance: auto;}}input:where([type=radio]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e");@media(forced-colors:active){appearance: auto;}}input:where([type=checkbox]):checked:hover,input:where([type=checkbox]):checked:focus,input:where([type=radio]):checked:hover,input:where([type=radio]):checked:focus{border-color:transparent;background-color:currentColor}input:where([type=checkbox]):indeterminate{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat;@media(forced-colors:active){appearance: auto;}}input:where([type=checkbox]):indeterminate:hover,input:where([type=checkbox]):indeterminate:focus{border-color:transparent;background-color:currentColor}input:where([type=file]){background:unset;border-color:inherit;border-width:0;border-radius:0;padding:0;font-size:unset;line-height:inherit}input:where([type=file]):focus{outline:1px solid ButtonText;outline:1px auto -webkit-focus-ring-color}}@layer base{*{@supports(-moz-appearance:none){scrollbar-color: initial; scrollbar-width: initial;}}}@property --tw-translate-x{syntax: "*";
+ inherits: false;
+ initial-value: 0;
+}@property --tw-translate-y{syntax: "*";
+ inherits: false;
+ initial-value: 0;
+}@property --tw-translate-z{syntax: "*";
+ inherits: false;
+ initial-value: 0;
+}@property --tw-scale-x{syntax: "*";
+ inherits: false;
+ initial-value: 1;
+}@property --tw-scale-y{syntax: "*";
+ inherits: false;
+ initial-value: 1;
+}@property --tw-scale-z{syntax: "*";
+ inherits: false;
+ initial-value: 1;
+}@property --tw-rotate-x{syntax: "*";
+ inherits: false;
+}@property --tw-rotate-y{syntax: "*";
+ inherits: false;
+}@property --tw-rotate-z{syntax: "*";
+ inherits: false;
+}@property --tw-skew-x{syntax: "*";
+ inherits: false;
+}@property --tw-skew-y{syntax: "*";
+ inherits: false;
+}@property --tw-pan-x{syntax: "*";
+ inherits: false;
+}@property --tw-pan-y{syntax: "*";
+ inherits: false;
+}@property --tw-pinch-zoom{syntax: "*";
+ inherits: false;
+}@property --tw-space-y-reverse{syntax: "*";
+ inherits: false;
+ initial-value: 0;
+}@property --tw-space-x-reverse{syntax: "*";
+ inherits: false;
+ initial-value: 0;
+}@property --tw-border-style{syntax: "*";
+ inherits: false;
+ initial-value: solid;
+}@property --tw-gradient-position{syntax: "*";
+ inherits: false;
+}@property --tw-gradient-from{syntax: "
";
+ inherits: false;
+ initial-value: #0000;
+}@property --tw-gradient-via{syntax: "";
+ inherits: false;
+ initial-value: #0000;
+}@property --tw-gradient-to{syntax: "";
+ inherits: false;
+ initial-value: #0000;
+}@property --tw-gradient-stops{syntax: "*";
+ inherits: false;
+}@property --tw-gradient-via-stops{syntax: "*";
+ inherits: false;
+}@property --tw-gradient-from-position{syntax: "";
+ inherits: false;
+ initial-value: 0%;
+}@property --tw-gradient-via-position{syntax: "";
+ inherits: false;
+ initial-value: 50%;
+}@property --tw-gradient-to-position{syntax: "";
+ inherits: false;
+ initial-value: 100%;
+}@property --tw-leading{syntax: "*";
+ inherits: false;
+}@property --tw-font-weight{syntax: "*";
+ inherits: false;
+}@property --tw-tracking{syntax: "*";
+ inherits: false;
+}@property --tw-ordinal{syntax: "*";
+ inherits: false;
+}@property --tw-slashed-zero{syntax: "*";
+ inherits: false;
+}@property --tw-numeric-figure{syntax: "*";
+ inherits: false;
+}@property --tw-numeric-spacing{syntax: "*";
+ inherits: false;
+}@property --tw-numeric-fraction{syntax: "*";
+ inherits: false;
+}@property --tw-shadow{syntax: "*";
+ inherits: false;
+ initial-value: 0 0 #0000;
+}@property --tw-shadow-color{syntax: "*";
+ inherits: false;
+}@property --tw-shadow-alpha{syntax: "";
+ inherits: false;
+ initial-value: 100%;
+}@property --tw-inset-shadow{syntax: "*";
+ inherits: false;
+ initial-value: 0 0 #0000;
+}@property --tw-inset-shadow-color{syntax: "*";
+ inherits: false;
+}@property --tw-inset-shadow-alpha{syntax: "";
+ inherits: false;
+ initial-value: 100%;
+}@property --tw-ring-color{syntax: "*";
+ inherits: false;
+}@property --tw-ring-shadow{syntax: "*";
+ inherits: false;
+ initial-value: 0 0 #0000;
+}@property --tw-inset-ring-color{syntax: "*";
+ inherits: false;
+}@property --tw-inset-ring-shadow{syntax: "*";
+ inherits: false;
+ initial-value: 0 0 #0000;
+}@property --tw-ring-inset{syntax: "*";
+ inherits: false;
+}@property --tw-ring-offset-width{syntax: "";
+ inherits: false;
+ initial-value: 0px;
+}@property --tw-ring-offset-color{syntax: "*";
+ inherits: false;
+ initial-value: #fff;
+}@property --tw-ring-offset-shadow{syntax: "*";
+ inherits: false;
+ initial-value: 0 0 #0000;
+}@property --tw-outline-style{syntax: "*";
+ inherits: false;
+ initial-value: solid;
+}@property --tw-blur{syntax: "*";
+ inherits: false;
+}@property --tw-brightness{syntax: "*";
+ inherits: false;
+}@property --tw-contrast{syntax: "*";
+ inherits: false;
+}@property --tw-grayscale{syntax: "*";
+ inherits: false;
+}@property --tw-hue-rotate{syntax: "*";
+ inherits: false;
+}@property --tw-invert{syntax: "*";
+ inherits: false;
+}@property --tw-opacity{syntax: "*";
+ inherits: false;
+}@property --tw-saturate{syntax: "*";
+ inherits: false;
+}@property --tw-sepia{syntax: "*";
+ inherits: false;
+}@property --tw-drop-shadow{syntax: "*";
+ inherits: false;
+}@property --tw-drop-shadow-color{syntax: "*";
+ inherits: false;
+}@property --tw-drop-shadow-alpha{syntax: "";
+ inherits: false;
+ initial-value: 100%;
+}@property --tw-drop-shadow-size{syntax: "*";
+ inherits: false;
+}@property --tw-backdrop-blur{syntax: "*";
+ inherits: false;
+}@property --tw-backdrop-brightness{syntax: "*";
+ inherits: false;
+}@property --tw-backdrop-contrast{syntax: "*";
+ inherits: false;
+}@property --tw-backdrop-grayscale{syntax: "*";
+ inherits: false;
+}@property --tw-backdrop-hue-rotate{syntax: "*";
+ inherits: false;
+}@property --tw-backdrop-invert{syntax: "*";
+ inherits: false;
+}@property --tw-backdrop-opacity{syntax: "*";
+ inherits: false;
+}@property --tw-backdrop-saturate{syntax: "*";
+ inherits: false;
+}@property --tw-backdrop-sepia{syntax: "*";
+ inherits: false;
+}@property --tw-duration{syntax: "*";
+ inherits: false;
+}@property --tw-ease{syntax: "*";
+ inherits: false;
+}@property --tw-content{syntax: "*";
+ initial-value: "";
+ inherits: false;
+}@keyframes pulse{50%{opacity:.5}}@layer properties{@supports((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::before,::after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-pan-x:initial;--tw-pan-y:initial;--tw-pinch-zoom:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}}}.medium-zoom-overlay{position:fixed;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .3s;will-change:opacity}.medium-zoom--opened .medium-zoom-overlay{cursor:pointer;cursor:zoom-out;opacity:1}.medium-zoom-image{cursor:pointer;cursor:zoom-in;transition:transform .3s cubic-bezier(.2,0,.2,1)!important}.medium-zoom-image--hidden{visibility:hidden}.medium-zoom-image--opened{position:relative;cursor:pointer;cursor:zoom-out;will-change:transform}
\ No newline at end of file
diff --git a/public/css/main.bundle.min.d5ab693a59d933c3e555e18b03fbc524893ba68810b890563fdec0a4dccc3fa7a33af2e1fd94c6f83b4183ee6852619bbb9cb24e2288ddee439580f8a18cedca.css b/public/css/main.bundle.min.d5ab693a59d933c3e555e18b03fbc524893ba68810b890563fdec0a4dccc3fa7a33af2e1fd94c6f83b4183ee6852619bbb9cb24e2288ddee439580f8a18cedca.css
new file mode 100644
index 0000000..13d35f6
--- /dev/null
+++ b/public/css/main.bundle.min.d5ab693a59d933c3e555e18b03fbc524893ba68810b890563fdec0a4dccc3fa7a33af2e1fd94c6f83b4183ee6852619bbb9cb24e2288ddee439580f8a18cedca.css
@@ -0,0 +1,178 @@
+:root{--color-neutral:255, 255, 255;--color-neutral-50:203, 255, 227;--color-neutral-100:126, 255, 186;--color-neutral-200:49, 255, 145;--color-neutral-300:0, 228, 106;--color-neutral-400:0, 152, 71;--color-neutral-500:0, 75, 35;--color-neutral-600:0, 50, 23;--color-neutral-700:0, 24, 11;--color-neutral-800:0, 24, 11;--color-neutral-900:0, 0, 0;--color-primary-50:255, 255, 255;--color-primary-100:236, 255, 227;--color-primary-200:184, 255, 150;--color-primary-300:132, 255, 74;--color-primary-400:80, 252, 0;--color-primary-500:56, 176, 0;--color-primary-600:48, 151, 0;--color-primary-700:40, 125, 0;--color-primary-800:40, 125, 0;--color-primary-900:7, 23, 0;--color-secondary-50:255, 255, 255;--color-secondary-100:239, 248, 252;--color-secondary-200:173, 220, 242;--color-secondary-300:107, 192, 231;--color-secondary-400:41, 164, 220;--color-secondary-500:26, 117, 159;--color-secondary-600:22, 101, 137;--color-secondary-700:19, 85, 115;--color-secondary-800:19, 85, 115;--color-secondary-900:4, 20, 28}/*!tailwindcss v4.2.1 | MIT License | https://tailwindcss.com*//*!Blowfish | MIT License | https://github.com/nunocoracao/blowfish*/@layer properties;@layer theme,base,components,utilities;@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
+ "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
+ "Courier New", monospace;--spacing:0.25rem;--container-2xs:18rem;--container-md:28rem;--container-xl:36rem;--container-3xl:48rem;--container-7xl:80rem;--text-xs:0.75rem;--text-xs--line-height:calc(1 / 0.75);--text-sm:0.875rem;--text-sm--line-height:calc(1.25 / 0.875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-tight:-0.025em;--tracking-normal:0em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-md:0.375rem;--radius-lg:0.5rem;--radius-xl:0.75rem;--radius-2xl:1rem;--ease-in:cubic-bezier(0.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, 0.2, 1);--ease-in-out:cubic-bezier(0.4, 0, 0.2, 1);--animate-pulse:pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;--blur-sm:8px;--blur-xl:24px;--blur-2xl:40px;--aspect-video:16 / 9;--default-transition-duration:150ms;--default-transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::after,::before,::backdrop,::file-selector-button{box-sizing:border-box;margin:0;padding:0;border:0 solid}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;tab-size:4;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea,::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;border-radius:0;background-color:initial;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports(not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::placeholder{color:currentcolor;@supports(color:color-mix(in lab,red,red)){color: color-mix(in oklab,currentcolor 50%,transparent);}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]),::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.\!visible{visibility:visible!important}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border-width:0}.\!absolute{position:absolute!important}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.-start-6{inset-inline-start:calc(var(--spacing) * -6)}.start{inset-inline-start:var(--spacing)}.start-\[calc\(max\(-50vw\,-800px\)\+50\%\)\]{inset-inline-start:calc(max(-50vw,-800px) + 50%)}.end{inset-inline-end:var(--spacing)}.end-6{inset-inline-end:calc(var(--spacing) * 6)}.end-8{inset-inline-end:calc(var(--spacing) * 8)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:calc(1/2 * 100%)}.top-5{top:calc(var(--spacing) * 5)}.top-20{top:calc(var(--spacing) * 20)}.top-full{top:100%}.right-0{right:calc(var(--spacing) * 0)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-6{bottom:calc(var(--spacing) * 6)}.bottom-24{bottom:calc(var(--spacing) * 24)}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:calc(1/2 * 100%)}.-z-10{z-index:calc(10 * -1)}.z-2{z-index:2}.z-10{z-index:10}.z-50{z-index:50}.z-80{z-index:80}.z-100{z-index:100}.z-500{z-index:500}.z-\[1\]{z-index:1}.z-\[999\]{z-index:999}.z-\[1040\]{z-index:1040}.z-\[1070\]{z-index:1070}.z-\[1080\]{z-index:1080}.order-first{order:-9999}.float-left{float:left}.container{width:100%;@media(width >= 640px){max-width: 640px;}@media(width >= 853px){max-width: 853px;}@media(width >= 1024px){max-width: 1024px;}@media(width >= 1280px){max-width: 1280px;}@media(width >= 1536px){max-width: 1536px;}}.\!-m-px{margin:-1px!important}.m-0{margin:calc(var(--spacing) * 0)}.m-1{margin:calc(var(--spacing) * 1)}.m-2{margin:calc(var(--spacing) * 2)}.m-300{margin:calc(var(--spacing) * 300)}.m-auto{margin:auto}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.mx-1{margin-inline:calc(var(--spacing) * 1)}.mx-\[3px\]{margin-inline:3px}.mx-\[15\%\]{margin-inline:15%}.mx-auto{margin-inline:auto}.my-0{margin-block:calc(var(--spacing) * 0)}.my-3{margin-block:calc(var(--spacing) * 3)}.-ms-5{margin-inline-start:calc(var(--spacing) * -5)}.ms-0{margin-inline-start:calc(var(--spacing) * 0)}.ms-2{margin-inline-start:calc(var(--spacing) * 2)}.ms-6{margin-inline-start:calc(var(--spacing) * 6)}.ms-7{margin-inline-start:calc(var(--spacing) * 7)}.ms-auto{margin-inline-start:auto}.-me-48{margin-inline-end:calc(var(--spacing) * -48)}.me-1{margin-inline-end:calc(var(--spacing) * 1)}.me-2{margin-inline-end:calc(var(--spacing) * 2)}.me-4{margin-inline-end:calc(var(--spacing) * 4)}.me-6{margin-inline-end:calc(var(--spacing) * 6)}.prose{color:var(--tw-prose-body);max-width:65ch; :where(p):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 1.25em; margin-bottom: 1.25em; } :where([class~="lead"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-lead); font-size: 1.25em; line-height: 1.6; margin-top: 1.2em; margin-bottom: 1.2em; } :where(a):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-links); text-decoration: none; font-weight: 500; text-decoration-color: rgba(var(--color-primary-300), 1); &:hover { color: rgba(var(--color-primary-600), 1); text-decoration: none; border-radius: 0.09rem; } } :where(strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-bold); font-weight: 600; } :where(a strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit; } :where(blockquote strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit; } :where(thead th strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit; } :where(ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: decimal; margin-top: 1.25em; margin-bottom: 1.25em; padding-inline-start: 1.625em; } :where(ol[type="A"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: upper-alpha; } :where(ol[type="a"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: lower-alpha; } :where(ol[type="A" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: upper-alpha; } :where(ol[type="a" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: lower-alpha; } :where(ol[type="I"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: upper-roman; } :where(ol[type="i"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: lower-roman; } :where(ol[type="I" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: upper-roman; } :where(ol[type="i" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: lower-roman; } :where(ol[type="1"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: decimal; } :where(ul):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: disc; margin-top: 1.25em; margin-bottom: 1.25em; padding-inline-start: 1.625em; } :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *))::marker { font-weight: 400; color: var(--tw-prose-counters); } :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *))::marker { color: var(--tw-prose-bullets); } :where(dt):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-headings); font-weight: 600; margin-top: 1.25em; } :where(hr):not(:where([class~="not-prose"],[class~="not-prose"] *)) { border-color: var(--tw-prose-hr); border-top-width: 1px; margin-top: 3em; margin-bottom: 3em; border: 0.8px solid rgba(var(--color-neutral-300), 1); } :where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-weight: 500; font-style: italic; color: var(--tw-prose-quotes); border-inline-start-width: 0.25rem; border-inline-start-color: var(--tw-prose-quote-borders); quotes: "\201C""\201D""\2018""\2019"; margin-top: 1.6em; margin-bottom: 1.6em; padding-inline-start: 1em; } :where(blockquote p:first-of-type):not(:where([class~="not-prose"],[class~="not-prose"] *))::before { content: open-quote; } :where(blockquote p:last-of-type):not(:where([class~="not-prose"],[class~="not-prose"] *))::after { content: close-quote; } :where(h1):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-headings); font-weight: 800; font-size: 2.25em; margin-top: 0; margin-bottom: 0.8888889em; line-height: 1.1111111; } :where(h1 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-weight: 900; color: inherit; } :where(h2):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-headings); font-weight: 700; font-size: 1.5em; margin-top: 2em; margin-bottom: 1em; line-height: 1.3333333; } :where(h2 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-weight: 800; color: inherit; } :where(h3):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-headings); font-weight: 600; font-size: 1.25em; margin-top: 1.6em; margin-bottom: 0.6em; line-height: 1.6; } :where(h3 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-weight: 700; color: inherit; } :where(h4):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-headings); font-weight: 600; margin-top: 1.5em; margin-bottom: 0.5em; line-height: 1.5; } :where(h4 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-weight: 700; color: inherit; } :where(img):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 2em; margin-bottom: 2em; } :where(picture):not(:where([class~="not-prose"],[class~="not-prose"] *)) { display: block; margin-top: 2em; margin-bottom: 2em; } :where(video):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 2em; margin-bottom: 2em; } :where(kbd):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-weight: 600; font-family: inherit; color: var(--tw-prose-kbd); box-shadow: 0 0 0 1px var(--tw-prose-kbd-shadows), 0 3px 0 var(--tw-prose-kbd-shadows); font-size: 0.9rem; border-radius: 0.25rem; padding-top: 0.1875em; padding-inline-end: 0.375em; padding-bottom: 0.1875em; padding-inline-start: 0.375em; background-color: rgba(var(--color-neutral-200), 1); padding: 0.1rem 0.4rem; } :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-code); font-weight: 600; font-size: 0.875em; padding-top: 3px; padding-bottom: 3px; padding-left: 5px; padding-right: 5px; border-radius: 0.25rem; } :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *))::before { content: "`"; display: none; } :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *))::after { content: "`"; display: none; } :where(a code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-code); } :where(h1 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit; } :where(h2 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit; font-size: 0.875em; } :where(h3 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit; font-size: 0.9em; } :where(h4 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit; } :where(blockquote code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit; } :where(thead th code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit; } :where(pre):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-pre-code); background-color: var(--tw-prose-pre-bg); overflow-x: auto; font-weight: 400; font-size: 0.875em; line-height: 1.7142857; margin-top: 1.7142857em; margin-bottom: 1.7142857em; border-radius: 0.375rem; padding-top: 0.8571429em; padding-inline-end: 1.1428571em; padding-bottom: 0.8571429em; padding-inline-start: 1.1428571em; } :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { background-color: transparent; border-width: 0; border-radius: 0; padding: 0; font-weight: inherit; color: inherit; font-size: inherit; font-family: inherit; line-height: inherit; } :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *))::before { content: none; } :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *))::after { content: none; } :where(table):not(:where([class~="not-prose"],[class~="not-prose"] *)) { width: 100%; table-layout: auto; margin-top: 2em; margin-bottom: 2em; font-size: 0.875em; line-height: 1.7142857; } :where(thead):not(:where([class~="not-prose"],[class~="not-prose"] *)) { border-bottom-width: 1px; border-bottom-color: var(--tw-prose-th-borders); } :where(thead th):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-headings); font-weight: 600; vertical-align: bottom; padding-inline-end: 0.5714286em; padding-bottom: 0.5714286em; padding-inline-start: 0.5714286em; } :where(tbody tr):not(:where([class~="not-prose"],[class~="not-prose"] *)) { border-bottom-width: 1px; border-bottom-color: var(--tw-prose-td-borders); } :where(tbody tr:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { border-bottom-width: 0; } :where(tbody td):not(:where([class~="not-prose"],[class~="not-prose"] *)) { vertical-align: baseline; } :where(tfoot):not(:where([class~="not-prose"],[class~="not-prose"] *)) { border-top-width: 1px; border-top-color: var(--tw-prose-th-borders); } :where(tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)) { vertical-align: top; } :where(th, td):not(:where([class~="not-prose"],[class~="not-prose"] *)) { text-align: start; } :where(figure > *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0; margin-bottom: 0; } :where(figcaption):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-captions); font-size: 0.875em; line-height: 1.4285714; margin-top: 0.8571429em; } --tw-prose-body: rgba(var(--color-neutral-700), 1);--tw-prose-headings:rgba(var(--color-neutral-800), 1);--tw-prose-lead:rgba(var(--color-neutral-500), 1);--tw-prose-links:rgba(var(--color-primary-600), 1);--tw-prose-bold:inherit;--tw-prose-counters:rgba(var(--color-neutral-800), 1);--tw-prose-bullets:rgba(var(--color-neutral-500), 1);--tw-prose-hr:oklch(92.8% 0.006 264.531);--tw-prose-quotes:rgba(var(--color-neutral-700), 1);--tw-prose-quote-borders:rgba(var(--color-primary-500), 1);--tw-prose-captions:rgba(var(--color-neutral-500), 1);--tw-prose-kbd:oklch(21% 0.034 264.665);--tw-prose-kbd-shadows:color-mix(in oklab, oklch(21% 0.034 264.665) 10%, transparent);--tw-prose-code:rgba(var(--color-secondary-700), 1);--tw-prose-pre-code:rgba(var(--color-neutral-700), 1);--tw-prose-pre-bg:rgba(var(--color-neutral-50), 1);--tw-prose-th-borders:rgba(var(--color-neutral-500), 1);--tw-prose-td-borders:rgba(var(--color-neutral-300), 1);--tw-prose-invert-body:rgba(var(--color-neutral-300), 1);--tw-prose-invert-headings:rgba(var(--color-neutral-50), 1);--tw-prose-invert-lead:rgba(var(--color-neutral-500), 1);--tw-prose-invert-links:rgba(var(--color-primary-400), 1);--tw-prose-invert-bold:rgba(var(--color-neutral), 1);--tw-prose-invert-counters:rgba(var(--color-neutral-400), 1);--tw-prose-invert-bullets:rgba(var(--color-neutral-600), 1);--tw-prose-invert-hr:oklch(37.3% 0.034 259.733);--tw-prose-invert-quotes:rgba(var(--color-neutral-200), 1);--tw-prose-invert-quote-borders:rgba(var(--color-primary-600), 1);--tw-prose-invert-captions:rgba(var(--color-neutral-400), 1);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:rgb(255 255 255 / 10%);--tw-prose-invert-code:rgba(var(--color-secondary-400), 1);--tw-prose-invert-pre-code:rgba(var(--color-neutral-200), 1);--tw-prose-invert-pre-bg:rgba(var(--color-neutral-700), 1);--tw-prose-invert-th-borders:rgba(var(--color-neutral-500), 1);--tw-prose-invert-td-borders:rgba(var(--color-neutral-700), 1);font-size:1rem;line-height:1.75; :where(picture > img):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0; margin-bottom: 0; } :where(li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0.5em; margin-bottom: 0.5em; } :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-inline-start: 0.375em; } :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-inline-start: 0.375em; } :where(.prose > ul > li p):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0.75em; margin-bottom: 0.75em; } :where(.prose > ul > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 1.25em; } :where(.prose > ul > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-bottom: 1.25em; } :where(.prose > ol > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 1.25em; } :where(.prose > ol > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-bottom: 1.25em; } :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0.75em; margin-bottom: 0.75em; } :where(dl):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 1.25em; margin-bottom: 1.25em; } :where(dd):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0.5em; padding-inline-start: 1.625em; } :where(hr + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0; } :where(h2 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0; } :where(h3 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0; } :where(h4 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0; } :where(thead th:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-inline-start: 0; } :where(thead th:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-inline-end: 0; } :where(tbody td, tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-top: 0.5714286em; padding-inline-end: 0.5714286em; padding-bottom: 0.5714286em; padding-inline-start: 0.5714286em; } :where(tbody td:first-child, tfoot td:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-inline-start: 0; } :where(tbody td:last-child, tfoot td:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-inline-end: 0; } :where(figure):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 2em; margin-bottom: 2em; } :where(.prose > :first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0; } :where(.prose > :last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-bottom: 0; } :where(mark):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: rgba(var(--color-neutral-800), 1); background-color: rgba(var(--color-primary-600), 1); padding: 0.1rem 0.2rem; border-radius: 0.25rem; } :where(p):not(:where([class~="not-prose"],[class~="not-prose"] *))::before { display: none; } :where(p):not(:where([class~="not-prose"],[class~="not-prose"] *))::after { display: none; } :where(a.active):not(:where([class~="not-prose"],[class~="not-prose"] *)) { text-decoration-color: rgba(var(--color-primary-600), 1); } :where(p.active):not(:where([class~="not-prose"],[class~="not-prose"] *)) { text-decoration-color: rgba(var(--color-primary-600), 1); }}.\!mt-0{margin-top:calc(var(--spacing) * 0)!important}.-mt-\[2px\]{margin-top:calc(2px * -1)}.-mt-\[15px\]{margin-top:calc(15px * -1)}.mt-0{margin-top:calc(var(--spacing) * 0)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mt-16{margin-top:calc(var(--spacing) * 16)}.mt-20{margin-top:calc(var(--spacing) * 20)}.mt-\[0\.5rem\]{margin-top:.5rem}.-mr-\[100\%\]{margin-right:calc(100% * -1)}.mr-0{margin-right:calc(var(--spacing) * 0)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-3{margin-right:calc(var(--spacing) * 3)}.mr-5{margin-right:calc(var(--spacing) * 5)}.\!mb-0{margin-bottom:calc(var(--spacing) * 0)!important}.\!mb-9{margin-bottom:calc(var(--spacing) * 9)!important}.-mb-1{margin-bottom:calc(var(--spacing) * -1)}.mb-0{margin-bottom:calc(var(--spacing) * 0)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.mb-12{margin-bottom:calc(var(--spacing) * 12)}.mb-16{margin-bottom:calc(var(--spacing) * 16)}.mb-20{margin-bottom:calc(var(--spacing) * 20)}.mb-\[2px\]{margin-bottom:2px}.ml-0{margin-left:calc(var(--spacing) * 0)}.ml-2{margin-left:calc(var(--spacing) * 2)}.box-border{box-sizing:border-box}.box-content{box-sizing:content-box}.scrollbar{&::-webkit-scrollbar-track { background-color:var(--scrollbar-track); border-radius:var(--scrollbar-track-radius); } &::-webkit-scrollbar-thumb { background-color:var(--scrollbar-thumb); border-radius:var(--scrollbar-thumb-radius); } &::-webkit-scrollbar-corner { background-color:var(--scrollbar-corner); border-radius:var(--scrollbar-corner-radius); } @supports (-moz-appearance:none) { scrollbar-width:auto; scrollbar-color:var(--scrollbar-thumb,initial) var(--scrollbar-track,initial); } &::-webkit-scrollbar { display:block; width:var(--scrollbar-width,16px); height:var(--scrollbar-height,16px); }}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.line-clamp-5{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5}.\!block{display:block!important}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.table-cell{display:table-cell}.aspect-\[4\/3\]{aspect-ratio:4/3}.aspect-auto{aspect-ratio:auto}.aspect-square{aspect-ratio:1/1}.aspect-video{aspect-ratio:var(--aspect-video)}.size-1{width:calc(var(--spacing) * 1);height:calc(var(--spacing) * 1)}.\!h-px{height:1px!important}.h-0{height:calc(var(--spacing) * 0)}.h-1\/2{height:calc(1/2 * 100%)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-24{height:calc(var(--spacing) * 24)}.h-36{height:calc(var(--spacing) * 36)}.h-40{height:calc(var(--spacing) * 40)}.h-48{height:calc(var(--spacing) * 48)}.h-84{height:calc(var(--spacing) * 84)}.h-\[3px\]{height:3px}.h-\[150px\]{height:150px}.h-\[800px\]{height:800px}.h-\[1000px\]{height:1e3px}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.max-h-3{max-height:calc(var(--spacing) * 3)}.max-h-20{max-height:calc(var(--spacing) * 20)}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-\[130px\]{min-height:130px}.min-h-\[148px\]{min-height:148px}.min-h-full{min-height:100%}.\!w-px{width:1px!important}.w-0{width:calc(var(--spacing) * 0)}.w-2{width:calc(var(--spacing) * 2)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-16{width:calc(var(--spacing) * 16)}.w-24{width:calc(var(--spacing) * 24)}.w-36{width:calc(var(--spacing) * 36)}.w-80{width:calc(var(--spacing) * 80)}.w-\[15\%\]{width:15%}.w-\[30px\]{width:30px}.w-auto{width:auto}.w-full{width:100%}.w-max{width:max-content}.w-screen{width:100vw}.max-w-3xl{max-width:var(--container-3xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-20{max-width:calc(var(--spacing) * 20)}.max-w-48{max-width:calc(var(--spacing) * 48)}.max-w-\[200px\]{max-width:200px}.max-w-\[267px\]{max-width:267px}.max-w-\[1600px\]{max-width:1600px}.max-w-\[calc\(100\%-1rem\)\]{max-width:calc(100% - 1rem)}.max-w-fit{max-width:fit-content}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-prose{max-width:65ch}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-\[1\.8rem\]{min-width:1.8rem}.min-w-\[30px\]{min-width:30px}.min-w-\[220px\]{min-width:220px}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-auto{flex:auto}.flex-initial{flex:0 auto}.flex-none{flex:none}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-auto{flex-basis:auto}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-8{--tw-translate-y:calc(var(--spacing) * -8);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-0{--tw-translate-y:calc(var(--spacing) * 0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-4{--tw-translate-y:calc(var(--spacing) * 4);translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-0{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-\[1\.02\]{scale:1.02}.-rotate-90{rotate:calc(90deg * -1)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.transform\!{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)!important}.transform-none{transform:none}.animate-pulse{animation:var(--animate-pulse)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-pan-y{--tw-pan-y:pan-y;touch-action:var(--tw-pan-x,)var(--tw-pan-y,)var(--tw-pinch-zoom,)}.touch-none{touch-action:none}.resize{resize:both}.list-none{list-style-type:none}.appearance-none{appearance:none}.grid-rows-\[0fr\]{grid-template-rows:0fr}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing) * 1)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.space-y-2{ :where(& > :not(:last-child)) { --tw-space-y-reverse: 0; margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse)); margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse))); }}.space-y-3{ :where(& > :not(:last-child)) { --tw-space-y-reverse: 0; margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse)); margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse))); }}.space-y-5{ :where(& > :not(:last-child)) { --tw-space-y-reverse: 0; margin-block-start: calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse)); margin-block-end: calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse))); }}.space-y-6{ :where(& > :not(:last-child)) { --tw-space-y-reverse: 0; margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse)); margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse))); }}.space-y-10{ :where(& > :not(:last-child)) { --tw-space-y-reverse: 0; margin-block-start: calc(calc(var(--spacing) * 10) * var(--tw-space-y-reverse)); margin-block-end: calc(calc(var(--spacing) * 10) * calc(1 - var(--tw-space-y-reverse))); }}.gap-x-5{column-gap:calc(var(--spacing) * 5)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.space-x-2{ :where(& > :not(:last-child)) { --tw-space-x-reverse: 0; margin-inline-start: calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse)); margin-inline-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse))); }}.space-x-3{ :where(& > :not(:last-child)) { --tw-space-x-reverse: 0; margin-inline-start: calc(calc(var(--spacing) * 3) * var(--tw-space-x-reverse)); margin-inline-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-x-reverse))); }}.space-x-5{ :where(& > :not(:last-child)) { --tw-space-x-reverse: 0; margin-inline-start: calc(calc(var(--spacing) * 5) * var(--tw-space-x-reverse)); margin-inline-end: calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-x-reverse))); }}.place-self-center{place-self:center}.self-center{align-self:center}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\!overflow-hidden{overflow:hidden!important}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.scroll-smooth{scroll-behavior:smooth}.\!rounded-md{border-radius:var(--radius-md)!important}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\[50\%\]{border-radius:50%}.rounded-full{border-radius:calc(infinity * 1px)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-s-\[0\.25rem\]{border-start-start-radius:.25rem;border-end-start-radius:.25rem}.rounded-e-\[0\.25rem\]{border-start-end-radius:.25rem;border-end-end-radius:.25rem}.rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.rounded-t-md{border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.rounded-b-lg{border-bottom-right-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.\!border-0{border-style:var(--tw-border-style)!important;border-width:0!important}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-y-\[10px\]{border-block-style:var(--tw-border-style);border-block-width:10px}.border-s-0{border-inline-start-style:var(--tw-border-style);border-inline-start-width:0}.border-s-1{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-s-2{border-inline-start-style:var(--tw-border-style);border-inline-start-width:2px}.border-s-\[0\.125rem\]{border-inline-start-style:var(--tw-border-style);border-inline-start-width:.125rem}.border-e-0{border-inline-end-style:var(--tw-border-style);border-inline-end-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-dotted{--tw-border-style:dotted;border-style:dotted}.border-none{--tw-border-style:none;border-style:none}.border-solid{--tw-border-style:solid;border-style:solid}.border-neutral-100{border-color:rgba(var(--color-neutral-100),1)}.border-neutral-200{border-color:rgba(var(--color-neutral-200),1)}.border-neutral-300{border-color:rgba(var(--color-neutral-300),1)}.border-primary-400{border-color:rgba(var(--color-primary-400),1)}.border-primary-500{border-color:rgba(var(--color-primary-500),1)}.border-secondary-500{border-color:rgba(var(--color-secondary-500),1)}.border-transparent{border-color:transparent}.prose-invert{--tw-prose-body:var(--tw-prose-invert-body);--tw-prose-headings:var(--tw-prose-invert-headings);--tw-prose-lead:var(--tw-prose-invert-lead);--tw-prose-links:var(--tw-prose-invert-links);--tw-prose-bold:var(--tw-prose-invert-bold);--tw-prose-counters:var(--tw-prose-invert-counters);--tw-prose-bullets:var(--tw-prose-invert-bullets);--tw-prose-hr:var(--tw-prose-invert-hr);--tw-prose-quotes:var(--tw-prose-invert-quotes);--tw-prose-quote-borders:var(--tw-prose-invert-quote-borders);--tw-prose-captions:var(--tw-prose-invert-captions);--tw-prose-kbd:var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows:var(--tw-prose-invert-kbd-shadows);--tw-prose-code:var(--tw-prose-invert-code);--tw-prose-pre-code:var(--tw-prose-invert-pre-code);--tw-prose-pre-bg:var(--tw-prose-invert-pre-bg);--tw-prose-th-borders:var(--tw-prose-invert-th-borders);--tw-prose-td-borders:var(--tw-prose-invert-td-borders); :where(a):not(:where([class~="not-prose"],[class~="not-prose"] *)) { text-decoration-color: rgba(var(--color-neutral-600), 1); &:hover { color: rgba(var(--color-primary-400), 1); } } :where(kbd):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: rgba(var(--color-neutral-200), 1); background-color: rgba(var(--color-neutral-700), 1); } :where(mark):not(:where([class~="not-prose"],[class~="not-prose"] *)) { background-color: rgba(var(--color-primary-400), 1); } :where(code:not(pre code)):not(:where([class~="not-prose"],[class~="not-prose"] *)) { background-color: color-mix(in oklab, oklch(21% 0.006 285.885) 70%, transparent); } :where(a.active):not(:where([class~="not-prose"],[class~="not-prose"] *)) { text-decoration-color: rgba(var(--color-primary-400), 1); } :where(p.active):not(:where([class~="not-prose"],[class~="not-prose"] *)) { text-decoration-color: rgba(var(--color-primary-400), 1); } :where(hr):not(:where([class~="not-prose"],[class~="not-prose"] *)) { border: 0.8px solid rgba(var(--color-neutral-500), 1); }}.bg-\[\#6d6d6d\]{background-color:#6d6d6d}.bg-black{background-color:#000}.bg-neutral{background-color:rgba(var(--color-neutral),1)}.bg-neutral-50{background-color:rgba(var(--color-neutral-50),1)}.bg-neutral-50\/97{background-color:color-mix(in srgb,rgba(rgba(var(--color-neutral-50),1),1) 97%,transparent);@supports(color:color-mix(in lab,red,red)){background-color: color-mix(in oklab,rgba(var(--color-neutral-50),1) 97%,transparent);}}.bg-neutral-100{background-color:rgba(var(--color-neutral-100),1)}.bg-neutral-100\/75{background-color:color-mix(in srgb,rgba(rgba(var(--color-neutral-100),1),1) 75%,transparent);@supports(color:color-mix(in lab,red,red)){background-color: color-mix(in oklab,rgba(var(--color-neutral-100),1) 75%,transparent);}}.bg-neutral-300{background-color:rgba(var(--color-neutral-300),1)}.bg-neutral-500\/50{background-color:color-mix(in srgb,rgba(rgba(var(--color-neutral-500),1),1) 50%,transparent);@supports(color:color-mix(in lab,red,red)){background-color: color-mix(in oklab,rgba(var(--color-neutral-500),1) 50%,transparent);}}.bg-neutral-900{background-color:rgba(var(--color-neutral-900),1)}.bg-neutral\/25{background-color:color-mix(in srgb,rgba(rgba(var(--color-neutral),1),1) 25%,transparent);@supports(color:color-mix(in lab,red,red)){background-color: color-mix(in oklab,rgba(var(--color-neutral),1) 25%,transparent);}}.bg-neutral\/50{background-color:color-mix(in srgb,rgba(rgba(var(--color-neutral),1),1) 50%,transparent);@supports(color:color-mix(in lab,red,red)){background-color: color-mix(in oklab,rgba(var(--color-neutral),1) 50%,transparent);}}.bg-primary-100{background-color:rgba(var(--color-primary-100),1)}.bg-primary-200{background-color:rgba(var(--color-primary-200),1)}.bg-primary-200\/80{background-color:color-mix(in srgb,rgba(rgba(var(--color-primary-200),1),1) 80%,transparent);@supports(color:color-mix(in lab,red,red)){background-color: color-mix(in oklab,rgba(var(--color-primary-200),1) 80%,transparent);}}.bg-primary-500{background-color:rgba(var(--color-primary-500),1)}.bg-primary-600{background-color:rgba(var(--color-primary-600),1)}.bg-transparent{background-color:initial}.bg-white{background-color:#fff}.bg-linear-60{--tw-gradient-position:60deg;@supports(background-image:linear-gradient(in lab,red,red)){--tw-gradient-position: 60deg in oklab;}background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-t{--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-none{background-image:none}.from-neutral{--tw-gradient-from:rgba(var(--color-neutral), 1);--tw-gradient-stops:var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-primary-500{--tw-gradient-from:rgba(var(--color-primary-500), 1);--tw-gradient-stops:var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-60\%{--tw-gradient-from-position:60%}.to-neutral{--tw-gradient-to:rgba(var(--color-neutral), 1);--tw-gradient-stops:var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-neutral-100{--tw-gradient-to:rgba(var(--color-neutral-100), 1);--tw-gradient-stops:var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-secondary-600{--tw-gradient-to:rgba(var(--color-secondary-600), 1);--tw-gradient-stops:var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.bg-clip-padding{background-clip:padding-box}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.object-fill{object-fit:fill}.object-scale-down{object-fit:scale-down}.object-left{object-position:left}.\!p-0{padding:calc(var(--spacing) * 0)!important}.p-0{padding:calc(var(--spacing) * 0)}.p-1{padding:calc(var(--spacing) * 1)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.px-0{padding-inline:calc(var(--spacing) * 0)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-\[0\.4rem\]{padding-inline:.4rem}.px-\[30px\]{padding-inline:30px}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-20{padding-block:calc(var(--spacing) * 20)}.py-\[0\.4rem\]{padding-block:.4rem}.py-\[1px\]{padding-block:1px}.ps-2{padding-inline-start:calc(var(--spacing) * 2)}.ps-5{padding-inline-start:calc(var(--spacing) * 5)}.pe-2{padding-inline-end:calc(var(--spacing) * 2)}.pe-3{padding-inline-end:calc(var(--spacing) * 3)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-8{padding-top:calc(var(--spacing) * 8)}.pt-16{padding-top:calc(var(--spacing) * 16)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-32{padding-bottom:calc(var(--spacing) * 32)}.pl-0{padding-left:calc(var(--spacing) * 0)}.text-center{text-align:center}.text-end{text-align:end}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.-indent-\[999px\]{text-indent:calc(999px * -1)}.align-bottom{vertical-align:bottom}.align-middle{vertical-align:middle}.align-text-bottom{vertical-align:text-bottom}.align-top{vertical-align:top}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.6rem\]{font-size:.6rem}.leading-3{--tw-leading:calc(var(--spacing) * 3);line-height:calc(var(--spacing) * 3)}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-7{--tw-leading:calc(var(--spacing) * 7);line-height:calc(var(--spacing) * 7)}.leading-\[1\.6\]{--tw-leading:1.6;line-height:1.6}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.text-wrap{text-wrap:wrap}.break-normal{overflow-wrap:normal;word-break:normal}.break-words{overflow-wrap:break-word}.\!whitespace-nowrap{white-space:nowrap!important}.whitespace-normal{white-space:normal}.\!text-neutral{color:rgba(var(--color-neutral),1)!important}.text-inherit{color:inherit}.text-neutral-50{color:rgba(var(--color-neutral-50),1)}.text-neutral-200{color:rgba(var(--color-neutral-200),1)}.text-neutral-300{color:rgba(var(--color-neutral-300),1)}.text-neutral-400{color:rgba(var(--color-neutral-400),1)}.text-neutral-500{color:rgba(var(--color-neutral-500),1)}.text-neutral-600{color:rgba(var(--color-neutral-600),1)}.text-neutral-700{color:rgba(var(--color-neutral-700),1)}.text-neutral-800{color:rgba(var(--color-neutral-800),1)}.text-neutral-900{color:rgba(var(--color-neutral-900),1)}.text-primary-100{color:rgba(var(--color-primary-100),1)}.text-primary-300{color:rgba(var(--color-primary-300),1)}.text-primary-400{color:rgba(var(--color-primary-400),1)}.text-primary-500{color:rgba(var(--color-primary-500),1)}.text-primary-600{color:rgba(var(--color-primary-600),1)}.text-primary-700{color:rgba(var(--color-primary-700),1)}.text-primary-800{color:rgba(var(--color-primary-800),1)}.text-transparent{color:transparent}.text-white{color:#fff}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.\!no-underline{text-decoration-line:none!important}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.decoration-neutral-300{text-decoration-color:rgba(var(--color-neutral-300),1)}.decoration-primary-500{text-decoration-color:rgba(var(--color-primary-500),1)}.underline-offset-auto{text-underline-offset:auto}.\!opacity-0{opacity:0%!important}.\!opacity-100{opacity:100%!important}.opacity-0{opacity:0%}.opacity-30{opacity:30%}.opacity-50{opacity:50%}.opacity-60{opacity:60%}.opacity-65{opacity:65%}.opacity-100{opacity:100%}.mix-blend-multiply{mix-blend-mode:multiply}.mix-blend-normal{mix-blend-mode:normal}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / 0.25));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-primary-500{--tw-ring-color:rgba(var(--color-primary-500), 1)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.blur\!{--tw-blur:blur(8px) !important;filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)!important}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter\!{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)!important}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-2xl{--tw-backdrop-blur:blur(var(--blur-2xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-brightness-112{--tw-backdrop-brightness:brightness(112%);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-saturate-220{--tw-backdrop-saturate:saturate(220%);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[grid-template-rows\]{transition-property:grid-template-rows;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[height\]{transition-property:height;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[opacity\,visibility\]{transition-property:opacity,visibility;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[transform\,_opacity\]{transition-property:transform,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:150ms;transition-duration:150ms}.duration-200{--tw-duration:200ms;transition-duration:200ms}.duration-300{--tw-duration:300ms;transition-duration:300ms}.duration-\[350ms\]{--tw-duration:350ms;transition-duration:350ms}.duration-\[600ms\]{--tw-duration:600ms;transition-duration:600ms}.ease-\[cubic-bezier\(0\,0\,0\.15\,1\)\,_cubic-bezier\(0\,0\,0\.15\,1\)\]{--tw-ease:cubic-bezier(0,0,0.15,1), cubic-bezier(0,0,0.15,1);transition-timing-function:cubic-bezier(0,0,.15,1),cubic-bezier(0,0,.15,1)}.ease-\[cubic-bezier\(0\.25\,0\.1\,0\.25\,1\.0\)\]{--tw-ease:cubic-bezier(0.25,0.1,0.25,1.0);transition-timing-function:cubic-bezier(.25,.1,.25,1)}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;user-select:none}.\!\[clip\:rect\(0\,0\,0\,0\)\]{clip:rect(0,0,0,0)!important}.group-open\:rotate-0{&:is(:where(.group):is([open],:popover-open,:open) *) { rotate:0deg; }}.group-focus-within\:visible{&:is(:where(.group):focus-within *) { visibility:visible; }}.group-focus-within\:opacity-100{&:is(:where(.group):focus-within *) { opacity:100%; }}.group-hover\:visible{&:is(:where(.group):hover *) { @media (hover:hover) { visibility:visible; } }}.group-hover\:scale-110{&:is(:where(.group):hover *) { @media (hover:hover) { --tw-scale-x:110%; --tw-scale-y:110%; --tw-scale-z:110%; scale:var(--tw-scale-x) var(--tw-scale-y); } }}.group-hover\:text-primary-500{&:is(:where(.group):hover *) { @media (hover:hover) { color:rgba(var(--color-primary-500),1); } }}.group-hover\:opacity-100{&:is(:where(.group):hover *) { @media (hover:hover) { opacity:100%; } }}.group-hover\:ring-2{&:is(:where(.group):hover *) { @media (hover:hover) { --tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); } }}.group-hover\:ring-primary-500{&:is(:where(.group):hover *) { @media (hover:hover) { --tw-ring-color:rgba(var(--color-primary-500),1); } }}.group-data-\[twe-input-focused\]\:border-x-0{&:is(:where(.group)[data-twe-input-focused] *) { border-inline-style:var(--tw-border-style); border-inline-width:0px; }}.group-data-\[twe-input-focused\]\:border-s-0{&:is(:where(.group)[data-twe-input-focused] *) { border-inline-start-style:var(--tw-border-style); border-inline-start-width:0px; }}.group-data-\[twe-input-focused\]\:border-e-0{&:is(:where(.group)[data-twe-input-focused] *) { border-inline-end-style:var(--tw-border-style); border-inline-end-width:0px; }}.group-data-\[twe-input-focused\]\:border-t{&:is(:where(.group)[data-twe-input-focused] *) { border-top-style:var(--tw-border-style); border-top-width:1px; }}.group-data-\[twe-input-focused\]\:border-solid{&:is(:where(.group)[data-twe-input-focused] *) { --tw-border-style:solid; border-style:solid; }}.group-data-\[twe-input-focused\]\:border-white{&:is(:where(.group)[data-twe-input-focused] *) { border-color:#fff; }}.group-data-\[twe-input-focused\]\:border-t-transparent{&:is(:where(.group)[data-twe-input-focused] *) { border-top-color:transparent; }}.group-data-\[twe-input-focused\]\:shadow-white{&:is(:where(.group)[data-twe-input-focused] *) { --tw-shadow-color:#fff; @supports (color:color-mix(in lab,red,red)) { --tw-shadow-color:color-mix(in oklab,#fff var(--tw-shadow-alpha),transparent); } }}.group-data-\[twe-input-state-active\]\:border-x-0{&:is(:where(.group)[data-twe-input-state-active] *) { border-inline-style:var(--tw-border-style); border-inline-width:0px; }}.group-data-\[twe-input-state-active\]\:border-s-0{&:is(:where(.group)[data-twe-input-state-active] *) { border-inline-start-style:var(--tw-border-style); border-inline-start-width:0px; }}.group-data-\[twe-input-state-active\]\:border-e-0{&:is(:where(.group)[data-twe-input-state-active] *) { border-inline-end-style:var(--tw-border-style); border-inline-end-width:0px; }}.group-data-\[twe-input-state-active\]\:border-t{&:is(:where(.group)[data-twe-input-state-active] *) { border-top-style:var(--tw-border-style); border-top-width:1px; }}.group-data-\[twe-input-state-active\]\:border-solid{&:is(:where(.group)[data-twe-input-state-active] *) { --tw-border-style:solid; border-style:solid; }}.group-data-\[twe-input-state-active\]\:border-t-transparent{&:is(:where(.group)[data-twe-input-state-active] *) { border-top-color:transparent; }}.peer-checked\:visible{&:is(:where(.peer):checked ~ *) { visibility:visible; }}.peer-checked\:opacity-100{&:is(:where(.peer):checked ~ *) { opacity:100%; }}.peer-checked\/full\:grid-rows-\[1fr\]{&:is(:where(.peer\/full):checked ~ *) { grid-template-rows:1fr; }}.before\:absolute{&::before { content:var(--tw-content); position:absolute; }}.before\:inset-0{&::before { content:var(--tw-content); inset:calc(var(--spacing) * 0); }}.after\:clear-both{&::after { content:var(--tw-content); clear:both; }}.after\:block{&::after { content:var(--tw-content); display:block; }}.after\:content-\[\'\'\]{&::after { --tw-content:''; content:var(--tw-content); }}.first\:mt-8{&:first-child { margin-top:calc(var(--spacing) * 8); }}.empty\:hidden{&:empty { display:none; }}.hover\:border-transparent{&:hover { @media (hover:hover) { border-color:transparent; } }}.hover\:\!bg-primary-500{&:hover { @media (hover:hover) { background-color:rgba(var(--color-primary-500),1)!important; } }}.hover\:bg-neutral-200{&:hover { @media (hover:hover) { background-color:rgba(var(--color-neutral-200),1); } }}.hover\:bg-primary-100{&:hover { @media (hover:hover) { background-color:rgba(var(--color-primary-100),1); } }}.hover\:bg-primary-500{&:hover { @media (hover:hover) { background-color:rgba(var(--color-primary-500),1); } }}.hover\:bg-primary-600{&:hover { @media (hover:hover) { background-color:rgba(var(--color-primary-600),1); } }}.hover\:text-neutral{&:hover { @media (hover:hover) { color:rgba(var(--color-neutral),1); } }}.hover\:text-neutral-700{&:hover { @media (hover:hover) { color:rgba(var(--color-neutral-700),1); } }}.hover\:text-primary-400{&:hover { @media (hover:hover) { color:rgba(var(--color-primary-400),1); } }}.hover\:text-primary-500{&:hover { @media (hover:hover) { color:rgba(var(--color-primary-500),1); } }}.hover\:text-primary-600{&:hover { @media (hover:hover) { color:rgba(var(--color-primary-600),1); } }}.hover\:text-primary-700{&:hover { @media (hover:hover) { color:rgba(var(--color-primary-700),1); } }}.hover\:no-underline{&:hover { @media (hover:hover) { text-decoration-line:none; } }}.hover\:underline{&:hover { @media (hover:hover) { text-decoration-line:underline; } }}.hover\:decoration-primary-400{&:hover { @media (hover:hover) { text-decoration-color:rgba(var(--color-primary-400),1); } }}.hover\:decoration-2{&:hover { @media (hover:hover) { text-decoration-thickness:2px; } }}.hover\:underline-offset-2{&:hover { @media (hover:hover) { text-underline-offset:2px; } }}.hover\:opacity-90{&:hover { @media (hover:hover) { opacity:90%; } }}.hover\:outline-none{&:hover { @media (hover:hover) { --tw-outline-style:none; outline-style:none; } }}.focus\:translate-y-0{&:focus { --tw-translate-y:calc(var(--spacing) * 0); translate:var(--tw-translate-x) var(--tw-translate-y); }}.focus\:border-primary-500{&:focus { border-color:rgba(var(--color-primary-500),1); }}.focus\:bg-primary-100{&:focus { background-color:rgba(var(--color-primary-100),1); }}.focus\:no-underline{&:focus { text-decoration-line:none; }}.focus\:opacity-90{&:focus { opacity:90%; }}.focus\:ring-primary-500{&:focus { --tw-ring-color:rgba(var(--color-primary-500),1); }}.focus\:outline-2{&:focus { outline-style:var(--tw-outline-style); outline-width:2px; }}.focus\:outline-transparent{&:focus { outline-color:transparent; }}.focus\:outline-dotted{&:focus { --tw-outline-style:dotted; outline-style:dotted; }}.focus\:outline-none{&:focus { --tw-outline-style:none; outline-style:none; }}.data-\[popper-reference-hidden\]\:hidden{&[data-popper-reference-hidden] { display: none; }}.data-\[twe-carousel-fade\]\:z-0{&[data-twe-carousel-fade] { z-index: 0; }}.data-\[twe-carousel-fade\]\:z-\[1\]{&[data-twe-carousel-fade] { z-index: 1; }}.data-\[twe-carousel-fade\]\:opacity-0{&[data-twe-carousel-fade] { opacity: 0%; }}.data-\[twe-carousel-fade\]\:opacity-100{&[data-twe-carousel-fade] { opacity: 100%; }}.data-\[twe-carousel-fade\]\:delay-600{&[data-twe-carousel-fade] { transition-delay: 600ms; }}.data-\[twe-carousel-fade\]\:duration-\[600ms\]{&[data-twe-carousel-fade] { --tw-duration: 600ms; transition-duration: 600ms; }}.motion-reduce\:transition-none{@media(prefers-reduced-motion:reduce){transition-property: none;}}.sm\:me-7{@media(width >= 640px){margin-inline-end: calc(var(--spacing) * 7);}}.sm\:mt-16{@media(width >= 640px){margin-top: calc(var(--spacing) * 16);}}.sm\:mb-0{@media(width >= 640px){margin-bottom: calc(var(--spacing) * 0);}}.sm\:w-1\/2{@media(width >= 640px){width: calc(1 / 2 * 100%);}}.sm\:grid-cols-2{@media(width >= 640px){grid-template-columns: repeat(2,minmax(0,1fr));}}.sm\:flex-row{@media(width >= 640px){flex-direction: row;}}.sm\:overflow-hidden{@media(width >= 640px){overflow: hidden;}}.sm\:p-6{@media(width >= 640px){padding: calc(var(--spacing) * 6);}}.sm\:px-6{@media(width >= 640px){padding-inline: calc(var(--spacing) * 6);}}.sm\:px-14{@media(width >= 640px){padding-inline: calc(var(--spacing) * 14);}}.sm\:py-24{@media(width >= 640px){padding-block: calc(var(--spacing) * 24);}}.sm\:text-lg{@media(width >= 640px){font-size: var(--text-lg); line-height: var(--tw-leading,var(--text-lg--line-height));}}.sm\:last\:me-0{@media(width >= 640px){&:last-child{margin-inline-end:calc(var(--spacing) * 0)}}}.md\:-me-16{@media(width >= 853px){margin-inline-end: calc(var(--spacing) * -16);}}.md\:mt-0{@media(width >= 853px){margin-top: calc(var(--spacing) * 0);}}.md\:mr-7{@media(width >= 853px){margin-right: calc(var(--spacing) * 7);}}.md\:flex{@media(width >= 853px){display: flex;}}.md\:hidden{@media(width >= 853px){display: none;}}.md\:h-56{@media(width >= 853px){height: calc(var(--spacing) * 56);}}.md\:h-\[200px\]{@media(width >= 853px){height: 200px;}}.md\:w-1\/3{@media(width >= 853px){width: calc(1 / 3 * 100%);}}.md\:w-auto{@media(width >= 853px){width: auto;}}.md\:grid-cols-3{@media(width >= 853px){grid-template-columns: repeat(3,minmax(0,1fr));}}.md\:flex-row{@media(width >= 853px){flex-direction: row;}}.md\:justify-start{@media(width >= 853px){justify-content: flex-start;}}.md\:p-\[10vh\]{@media(width >= 853px){padding: 10vh;}}.md\:px-24{@media(width >= 853px){padding-inline: calc(var(--spacing) * 24);}}.lg\:absolute{@media(width >= 1024px){position: absolute;}}.lg\:relative{@media(width >= 1024px){position: relative;}}.lg\:sticky{@media(width >= 1024px){position: sticky;}}.lg\:top-10{@media(width >= 1024px){top: calc(var(--spacing) * 10);}}.lg\:top-\[140px\]{@media(width >= 1024px){top: 140px;}}.lg\:order-last{@media(width >= 1024px){order: 9999;}}.lg\:m-0{@media(width >= 1024px){margin: calc(var(--spacing) * 0);}}.lg\:mx-0{@media(width >= 1024px){margin-inline: calc(var(--spacing) * 0);}}.lg\:mx-auto{@media(width >= 1024px){margin-inline: auto;}}.lg\:ms-auto{@media(width >= 1024px){margin-inline-start: auto;}}.lg\:mt-0{@media(width >= 1024px){margin-top: calc(var(--spacing) * 0);}}.lg\:block{@media(width >= 1024px){display: block;}}.lg\:grid{@media(width >= 1024px){display: grid;}}.lg\:hidden{@media(width >= 1024px){display: none;}}.lg\:h-72{@media(width >= 1024px){height: calc(var(--spacing) * 72);}}.lg\:h-full{@media(width >= 1024px){height: 100%;}}.lg\:w-1\/4{@media(width >= 1024px){width: calc(1 / 4 * 100%);}}.lg\:w-auto{@media(width >= 1024px){width: auto;}}.lg\:max-w-2xs{@media(width >= 1024px){max-width: var(--container-2xs);}}.lg\:max-w-7xl{@media(width >= 1024px){max-width: var(--container-7xl);}}.lg\:max-w-none{@media(width >= 1024px){max-width: none;}}.lg\:grid-flow-col-dense{@media(width >= 1024px){grid-auto-flow: column dense;}}.lg\:grid-cols-2{@media(width >= 1024px){grid-template-columns: repeat(2,minmax(0,1fr));}}.lg\:flex-row{@media(width >= 1024px){flex-direction: row;}}.lg\:gap-24{@media(width >= 1024px){gap: calc(var(--spacing) * 24);}}.lg\:p-\[12vh\]{@media(width >= 1024px){padding: 12vh;}}.lg\:px-0{@media(width >= 1024px){padding-inline: calc(var(--spacing) * 0);}}.lg\:px-8{@media(width >= 1024px){padding-inline: calc(var(--spacing) * 8);}}.lg\:px-32{@media(width >= 1024px){padding-inline: calc(var(--spacing) * 32);}}.lg\:py-16{@media(width >= 1024px){padding-block: calc(var(--spacing) * 16);}}.lg\:py-32{@media(width >= 1024px){padding-block: calc(var(--spacing) * 32);}}.lg\:ps-8{@media(width >= 1024px){padding-inline-start: calc(var(--spacing) * 8);}}.xl\:w-1\/4{@media(width >= 1280px){width: calc(1 / 4 * 100%);}}.xl\:grid-cols-4{@media(width >= 1280px){grid-template-columns: repeat(4,minmax(0,1fr));}}.\32 xl\:grid-cols-5{@media(width >= 1536px){grid-template-columns: repeat(5,minmax(0,1fr));}}.ltr\:-ml-12{&:where(:dir(ltr),[dir="ltr"],[dir="ltr"] *) { margin-left:calc(var(--spacing) * -12); }}.ltr\:block{&:where(:dir(ltr),[dir="ltr"],[dir="ltr"] *) { display:block; }}.ltr\:hidden{&:where(:dir(ltr),[dir="ltr"],[dir="ltr"] *) { display:none; }}.rtl\:-mr-\[79px\]{&:where(:dir(rtl),[dir="rtl"],[dir="rtl"] *) { margin-right:calc(79px * -1); }}.rtl\:block{&:where(:dir(rtl),[dir="rtl"],[dir="rtl"] *) { display:block; }}.rtl\:hidden{&:where(:dir(rtl),[dir="rtl"],[dir="rtl"] *) { display:none; }}.rtl\:rotate-180{&:where(:dir(rtl),[dir="rtl"],[dir="rtl"] *) { rotate:180deg; }}.dark\:block{&:is(.dark *) { display:block; }}.dark\:flex{&:is(.dark *) { display:flex; }}.dark\:hidden{&:is(.dark *) { display:none; }}.dark\:border-neutral-400{&:is(.dark *) { border-color:rgba(var(--color-neutral-400),1); }}.dark\:border-neutral-600{&:is(.dark *) { border-color:rgba(var(--color-neutral-600),1); }}.dark\:border-neutral-700{&:is(.dark *) { border-color:rgba(var(--color-neutral-700),1); }}.dark\:border-primary-300{&:is(.dark *) { border-color:rgba(var(--color-primary-300),1); }}.dark\:border-primary-600{&:is(.dark *) { border-color:rgba(var(--color-primary-600),1); }}.dark\:border-white\/10{&:is(.dark *) { border-color:color-mix(in oklab,#fff 10%,transparent); }}.dark\:prose-invert{&:is(.dark *) { --tw-prose-body:var(--tw-prose-invert-body); --tw-prose-headings:var(--tw-prose-invert-headings); --tw-prose-lead:var(--tw-prose-invert-lead); --tw-prose-links:var(--tw-prose-invert-links); --tw-prose-bold:var(--tw-prose-invert-bold); --tw-prose-counters:var(--tw-prose-invert-counters); --tw-prose-bullets:var(--tw-prose-invert-bullets); --tw-prose-hr:var(--tw-prose-invert-hr); --tw-prose-quotes:var(--tw-prose-invert-quotes); --tw-prose-quote-borders:var(--tw-prose-invert-quote-borders); --tw-prose-captions:var(--tw-prose-invert-captions); --tw-prose-kbd:var(--tw-prose-invert-kbd); --tw-prose-kbd-shadows:var(--tw-prose-invert-kbd-shadows); --tw-prose-code:var(--tw-prose-invert-code); --tw-prose-pre-code:var(--tw-prose-invert-pre-code); --tw-prose-pre-bg:var(--tw-prose-invert-pre-bg); --tw-prose-th-borders:var(--tw-prose-invert-th-borders); --tw-prose-td-borders:var(--tw-prose-invert-td-borders);:where(a):not(:where([class~="not-prose"],[class~="not-prose"] *)) { text-decoration-color:rgba(var(--color-neutral-600),1); &:hover { color:rgba(var(--color-primary-400),1); } }:where(kbd):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color:rgba(var(--color-neutral-200),1); background-color:rgba(var(--color-neutral-700),1); }:where(mark):not(:where([class~="not-prose"],[class~="not-prose"] *)) { background-color:rgba(var(--color-primary-400),1); }:where(code:not(pre code)):not(:where([class~="not-prose"],[class~="not-prose"] *)) { background-color:color-mix(in oklab,oklch(21% 0.006 285.885) 70%,transparent); }:where(a.active):not(:where([class~="not-prose"],[class~="not-prose"] *)) { text-decoration-color:rgba(var(--color-primary-400),1); }:where(p.active):not(:where([class~="not-prose"],[class~="not-prose"] *)) { text-decoration-color:rgba(var(--color-primary-400),1); }:where(hr):not(:where([class~="not-prose"],[class~="not-prose"] *)) { border:0.8px solid rgba(var(--color-neutral-500),1); } }}.dark\:bg-neutral-100{&:is(.dark *) { background-color:rgba(var(--color-neutral-100),1); }}.dark\:bg-neutral-400{&:is(.dark *) { background-color:rgba(var(--color-neutral-400),1); }}.dark\:bg-neutral-600{&:is(.dark *) { background-color:rgba(var(--color-neutral-600),1); }}.dark\:bg-neutral-700{&:is(.dark *) { background-color:rgba(var(--color-neutral-700),1); }}.dark\:bg-neutral-800{&:is(.dark *) { background-color:rgba(var(--color-neutral-800),1); }}.dark\:bg-neutral-800\/25{&:is(.dark *) { background-color:color-mix(in srgb,rgba(rgba(var(--color-neutral-800),1),1) 25%,transparent); @supports (color:color-mix(in lab,red,red)) { background-color:color-mix(in oklab,rgba(var(--color-neutral-800),1) 25%,transparent); } }}.dark\:bg-neutral-800\/50{&:is(.dark *) { background-color:color-mix(in srgb,rgba(rgba(var(--color-neutral-800),1),1) 50%,transparent); @supports (color:color-mix(in lab,red,red)) { background-color:color-mix(in oklab,rgba(var(--color-neutral-800),1) 50%,transparent); } }}.dark\:bg-neutral-800\/60{&:is(.dark *) { background-color:color-mix(in srgb,rgba(rgba(var(--color-neutral-800),1),1) 60%,transparent); @supports (color:color-mix(in lab,red,red)) { background-color:color-mix(in oklab,rgba(var(--color-neutral-800),1) 60%,transparent); } }}.dark\:bg-neutral-900{&:is(.dark *) { background-color:rgba(var(--color-neutral-900),1); }}.dark\:bg-neutral-900\/50{&:is(.dark *) { background-color:color-mix(in srgb,rgba(rgba(var(--color-neutral-900),1),1) 50%,transparent); @supports (color:color-mix(in lab,red,red)) { background-color:color-mix(in oklab,rgba(var(--color-neutral-900),1) 50%,transparent); } }}.dark\:bg-neutral-900\/99{&:is(.dark *) { background-color:color-mix(in srgb,rgba(rgba(var(--color-neutral-900),1),1) 99%,transparent); @supports (color:color-mix(in lab,red,red)) { background-color:color-mix(in oklab,rgba(var(--color-neutral-900),1) 99%,transparent); } }}.dark\:bg-primary-300{&:is(.dark *) { background-color:rgba(var(--color-primary-300),1); }}.dark\:bg-primary-400{&:is(.dark *) { background-color:rgba(var(--color-primary-400),1); }}.dark\:bg-primary-800{&:is(.dark *) { background-color:rgba(var(--color-primary-800),1); }}.dark\:bg-primary-800\/30{&:is(.dark *) { background-color:color-mix(in srgb,rgba(rgba(var(--color-primary-800),1),1) 30%,transparent); @supports (color:color-mix(in lab,red,red)) { background-color:color-mix(in oklab,rgba(var(--color-primary-800),1) 30%,transparent); } }}.dark\:bg-primary-900{&:is(.dark *) { background-color:rgba(var(--color-primary-900),1); }}.dark\:from-neutral-800{&:is(.dark *) { --tw-gradient-from:rgba(var(--color-neutral-800),1); --tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position)); }}.dark\:from-primary-600{&:is(.dark *) { --tw-gradient-from:rgba(var(--color-primary-600),1); --tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position)); }}.dark\:to-neutral-800{&:is(.dark *) { --tw-gradient-to:rgba(var(--color-neutral-800),1); --tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position)); }}.dark\:to-secondary-800{&:is(.dark *) { --tw-gradient-to:rgba(var(--color-secondary-800),1); --tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position)); }}.dark\:text-neutral{&:is(.dark *) { color:rgba(var(--color-neutral),1); }}.dark\:text-neutral-100{&:is(.dark *) { color:rgba(var(--color-neutral-100),1); }}.dark\:text-neutral-200{&:is(.dark *) { color:rgba(var(--color-neutral-200),1); }}.dark\:text-neutral-300{&:is(.dark *) { color:rgba(var(--color-neutral-300),1); }}.dark\:text-neutral-400{&:is(.dark *) { color:rgba(var(--color-neutral-400),1); }}.dark\:text-neutral-500{&:is(.dark *) { color:rgba(var(--color-neutral-500),1); }}.dark\:text-neutral-700{&:is(.dark *) { color:rgba(var(--color-neutral-700),1); }}.dark\:text-neutral-800{&:is(.dark *) { color:rgba(var(--color-neutral-800),1); }}.dark\:text-neutral-900{&:is(.dark *) { color:rgba(var(--color-neutral-900),1); }}.dark\:text-primary-200{&:is(.dark *) { color:rgba(var(--color-primary-200),1); }}.dark\:text-primary-400{&:is(.dark *) { color:rgba(var(--color-primary-400),1); }}.dark\:text-white{&:is(.dark *) { color:#fff; }}.dark\:opacity-60{&:is(.dark *) { opacity:60%; }}.dark\:backdrop-brightness-95{&:is(.dark *) { --tw-backdrop-brightness:brightness(95%); -webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); }}.dark\:backdrop-saturate-180{&:is(.dark *) { --tw-backdrop-saturate:saturate(180%); -webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); }}.dark\:hover\:\!bg-primary-700{&:is(.dark *) { &:hover { @media (hover:hover) { background-color:rgba(var(--color-primary-700),1)!important; } } }}.dark\:hover\:bg-neutral-700{&:is(.dark *) { &:hover { @media (hover:hover) { background-color:rgba(var(--color-neutral-700),1); } } }}.dark\:hover\:bg-primary-400{&:is(.dark *) { &:hover { @media (hover:hover) { background-color:rgba(var(--color-primary-400),1); } } }}.dark\:hover\:bg-primary-900{&:is(.dark *) { &:hover { @media (hover:hover) { background-color:rgba(var(--color-primary-900),1); } } }}.dark\:hover\:text-neutral-200{&:is(.dark *) { &:hover { @media (hover:hover) { color:rgba(var(--color-neutral-200),1); } } }}.dark\:hover\:text-neutral-800{&:is(.dark *) { &:hover { @media (hover:hover) { color:rgba(var(--color-neutral-800),1); } } }}.dark\:hover\:text-primary-400{&:is(.dark *) { &:hover { @media (hover:hover) { color:rgba(var(--color-primary-400),1); } } }}.dark\:focus\:bg-primary-900{&:is(.dark *) { &:focus { background-color:rgba(var(--color-primary-900),1); } }}.print\:hidden{@media print{display: none;}}.\[\&_\.translation_\.menuhide_span\]\:text-sm\!{& .translation .menuhide span { font-size: var(--text-sm) !important; line-height: var(--tw-leading, var(--text-sm--line-height)) !important; }}.\[\&_\.translation_button_\.icon\]\:text-4xl\!{& .translation button .icon { font-size: var(--text-4xl) !important; line-height: var(--tw-leading, var(--text-4xl--line-height)) !important; }}.\[\&_\.translation_button_span\]\:text-base\!{& .translation button span { font-size: var(--text-base) !important; line-height: var(--tw-leading, var(--text-base--line-height)) !important; }}.\[\&_span\]\:text-2xl{& span { font-size: var(--text-2xl); line-height: var(--tw-leading, var(--text-2xl--line-height)); }}}@layer utilities{.highlight-wrapper{position:relative;z-index:0;display:block;overflow:hidden;border-radius:var(--radius-md);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);margin-top:1.7142857em;margin-bottom:1.7142857em}.highlight-wrapper pre,.highlight-wrapper table,.highlight-wrapper div{margin-top:0;margin-bottom:0}.highlight-wrapper:has(.codeblock-title) pre{border-radius:0}.codeblock-title{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--color-neutral-200),1);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);&:is(.dark *) { border-color:rgba(var(--color-neutral-800),1); } background-color:#fff;&:is(.dark *) { background-color:#0d1117; }}.chroma .lntd,.chroma .lntd pre{margin:calc(var(--spacing) * 0);--tw-border-style:none;border-style:none;padding:calc(var(--spacing) * 0);vertical-align:top}.chroma .lntable{display:block;width:auto;overflow:hidden;padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 3);font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));border-spacing:0}.chroma .hl{margin-inline:calc(var(--spacing) * -4);display:block;width:auto;padding-inline:calc(var(--spacing) * 4)}.chroma .lntd .hl{margin:calc(var(--spacing) * 0);padding:calc(var(--spacing) * 0)}.chroma:not(:is(table *))>code{display:block;min-width:max-content}html:not(.dark){.bg { background-color: #fff; } .chroma { background-color: #fff; } .chroma .err { color: #f6f8fa; background-color: #82071e; } .chroma .lnlinks { outline: none; text-decoration: none; color: inherit; } .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } .chroma .lntable { border-spacing: 0; } .chroma .hl { background-color: #e5e5e5; } .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em; color: #7f7f7f; } .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em; color: #7f7f7f; } .chroma .line { display: flex; } .chroma .k { color: #cf222e; } .chroma .kc { color: #cf222e; } .chroma .kd { color: #cf222e; } .chroma .kn { color: #cf222e; } .chroma .kp { color: #cf222e; } .chroma .kr { color: #cf222e; } .chroma .kt { color: #cf222e; } .chroma .na { color: #1f2328; } .chroma .nc { color: #1f2328; } .chroma .no { color: #0550ae; } .chroma .nd { color: #0550ae; } .chroma .ni { color: #6639ba; } .chroma .nl { color: #900; font-weight: bold; } .chroma .nn { color: #24292e; } .chroma .nx { color: #1f2328; } .chroma .nt { color: #0550ae; } .chroma .nb { color: #6639ba; } .chroma .bp { color: #6a737d; } .chroma .nv { color: #953800; } .chroma .vc { color: #953800; } .chroma .vg { color: #953800; } .chroma .vi { color: #953800; } .chroma .vm { color: #953800; } .chroma .nf { color: #6639ba; } .chroma .fm { color: #6639ba; } .chroma .s { color: #0a3069; } .chroma .sa { color: #0a3069; } .chroma .sb { color: #0a3069; } .chroma .sc { color: #0a3069; } .chroma .dl { color: #0a3069; } .chroma .sd { color: #0a3069; } .chroma .s2 { color: #0a3069; } .chroma .se { color: #0a3069; } .chroma .sh { color: #0a3069; } .chroma .si { color: #0a3069; } .chroma .sx { color: #0a3069; } .chroma .sr { color: #0a3069; } .chroma .s1 { color: #0a3069; } .chroma .ss { color: #032f62; } .chroma .m { color: #0550ae; } .chroma .mb { color: #0550ae; } .chroma .mf { color: #0550ae; } .chroma .mh { color: #0550ae; } .chroma .mi { color: #0550ae; } .chroma .il { color: #0550ae; } .chroma .mo { color: #0550ae; } .chroma .o { color: #0550ae; } .chroma .ow { color: #0550ae; } .chroma .p { color: #1f2328; } .chroma .c { color: #57606a; } .chroma .ch { color: #57606a; } .chroma .cm { color: #57606a; } .chroma .c1 { color: #57606a; } .chroma .cs { color: #57606a; } .chroma .cp { color: #57606a; } .chroma .cpf { color: #57606a; } .chroma .gd { color: #82071e; background-color: #ffebe9; } .chroma .ge { color: #1f2328; } .chroma .gi { color: #116329; background-color: #dafbe1; } .chroma .go { color: #1f2328; } .chroma .gl { text-decoration: underline; } .chroma .w { color: #fff; }}html.dark{.bg { color: #e6edf3; background-color: #0d1117; } .chroma { color: #e6edf3; background-color: #0d1117; } .chroma .err { color: #f85149; } .chroma .lnlinks { outline: none; text-decoration: none; color: inherit; } .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } .chroma .lntable { border-spacing: 0; } .chroma .hl { background-color: #333; } .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em; color: #737679; } .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em; color: #6e7681; } .chroma .line { display: flex; } .chroma .k { color: #ff7b72; } .chroma .kc { color: #79c0ff; } .chroma .kd { color: #ff7b72; } .chroma .kn { color: #ff7b72; } .chroma .kp { color: #79c0ff; } .chroma .kr { color: #ff7b72; } .chroma .kt { color: #ff7b72; } .chroma .nc { color: #f0883e; font-weight: bold; } .chroma .no { color: #79c0ff; font-weight: bold; } .chroma .nd { color: #d2a8ff; font-weight: bold; } .chroma .ni { color: #ffa657; } .chroma .ne { color: #f0883e; font-weight: bold; } .chroma .nl { color: #79c0ff; font-weight: bold; } .chroma .nn { color: #ff7b72; } .chroma .py { color: #79c0ff; } .chroma .nt { color: #7ee787; } .chroma .nv { color: #79c0ff; } .chroma .vc { color: #79c0ff; } .chroma .vg { color: #79c0ff; } .chroma .vi { color: #79c0ff; } .chroma .vm { color: #79c0ff; } .chroma .nf { color: #d2a8ff; font-weight: bold; } .chroma .fm { color: #d2a8ff; font-weight: bold; } .chroma .l { color: #a5d6ff; } .chroma .ld { color: #79c0ff; } .chroma .s { color: #a5d6ff; } .chroma .sa { color: #79c0ff; } .chroma .sb { color: #a5d6ff; } .chroma .sc { color: #a5d6ff; } .chroma .dl { color: #79c0ff; } .chroma .sd { color: #a5d6ff; } .chroma .s2 { color: #a5d6ff; } .chroma .se { color: #79c0ff; } .chroma .sh { color: #79c0ff; } .chroma .si { color: #a5d6ff; } .chroma .sx { color: #a5d6ff; } .chroma .sr { color: #79c0ff; } .chroma .s1 { color: #a5d6ff; } .chroma .ss { color: #a5d6ff; } .chroma .m { color: #a5d6ff; } .chroma .mb { color: #a5d6ff; } .chroma .mf { color: #a5d6ff; } .chroma .mh { color: #a5d6ff; } .chroma .mi { color: #a5d6ff; } .chroma .il { color: #a5d6ff; } .chroma .mo { color: #a5d6ff; } .chroma .o { color: #ff7b72; font-weight: bold; } .chroma .ow { color: #ff7b72; font-weight: bold; } .chroma .c { color: #8b949e; font-style: italic; } .chroma .ch { color: #8b949e; font-style: italic; } .chroma .cm { color: #8b949e; font-style: italic; } .chroma .c1 { color: #8b949e; font-style: italic; } .chroma .cs { color: #8b949e; font-weight: bold; font-style: italic; } .chroma .cp { color: #8b949e; font-weight: bold; font-style: italic; } .chroma .cpf { color: #8b949e; font-weight: bold; font-style: italic; } .chroma .gd { color: #ffa198; background-color: #490202; } .chroma .ge { font-style: italic; } .chroma .gr { color: #ffa198; } .chroma .gh { color: #79c0ff; font-weight: bold; } .chroma .gi { color: #56d364; background-color: #0f5323; } .chroma .go { color: #8b949e; } .chroma .gp { color: #8b949e; } .chroma .gs { font-weight: bold; } .chroma .gu { color: #79c0ff; } .chroma .gt { color: #ff7b72; } .chroma .gl { text-decoration: underline; } .chroma .w { color: #6e7681; }}}@layer utilities{.tab__button.tab--active{border-bottom:2px solid rgb(var(--color-primary-500))}.tab__panel{display:none}.tab__panel.tab--active{display:block}}#zen-mode-button{cursor:pointer}.zen-mode{position:relative}body.zen-mode-enable{ #bmc-wbtn, .author { display: none !important; }}.gist-container .gist{h1 { margin-bottom: calc(var(--spacing) * 4); } .gist-file { border: 1px solid rgb(var(--color-neutral-300)); border-radius: 8px; overflow: hidden; } .gist-meta { background-color: white; color: rgb(var(--color-neutral-600)); border-radius: 0 0 8px 8px; } .gist-meta a { color: rgb(var(--color-primary-600)); } .highlight tr { border-bottom: none; } .gist-file .file { margin-top: 0; margin-bottom: 0; } .dark & { .gist-file { border-color: rgb(var(--color-neutral-800)); } .gist-data { background-color: rgb(var(--color-neutral-900)); border-bottom: 1px solid rgb(var(--color-neutral-800)); } .gist-meta { background-color: rgb(26, 26, 26); color: rgb(var(--color-neutral-400)); } .gist-meta a { color: rgb(var(--color-primary-400)); } .blob-wrapper { filter: invert(0.9) hue-rotate(180deg); background-color: #fff; } .gist-data { background: rgb(26, 26, 26); color: rgb(var(--color-neutral-100)); } }}.a11y-panel-enter-active{animation:slideInFromTop .3s cubic-bezier(.4,0,.2,1)forwards}.a11y-panel-leave-active{animation:slideOutToTop .3s cubic-bezier(.4,0,.2,1)forwards}.ios-toggle{position:relative;width:42px;height:24px;background:#e5e5e5;border-radius:12px;cursor:pointer;transition:background-color .3s ease;pointer-events:auto}.ios-toggle input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;z-index:1}.ios-toggle::after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border-radius:50%;transition:transform .3s ease,background-color .3s ease;box-shadow:0 1px 3px rgba(0,0,0,.2);z-index:0}.ios-toggle input:checked+.toggle-track::after{transform:translateX(18px)}.ios-toggle input:checked+.toggle-track{background:rgba(var(--color-primary-500),1)}.ios-toggle input:checked~.ios-toggle-ball{transform:translateX(18px)}.ios-toggle.is-checked{background:rgba(var(--color-primary-500),1)}.ios-toggle:has(input:checked){background:rgba(var(--color-primary-500),1)}.ios-toggle:has(input:checked)::after{transform:translateX(18px)}.dark .ios-toggle{background:#404040}.dark .ios-toggle::after{background:#f5f5f5}@layer components{:root{--adm-note-border:oklch(68.5% 0.169 237.323);--adm-note-bg:oklch(97.7% 0.013 236.62);--adm-note-text:oklch(39.1% 0.09 240.876);--adm-tip-border:oklch(69.6% 0.17 162.48);--adm-tip-bg:oklch(97.9% 0.021 166.113);--adm-tip-text:oklch(37.8% 0.077 168.94);--adm-important-border:oklch(62.7% 0.265 303.9);--adm-important-bg:oklch(97.7% 0.014 308.299);--adm-important-text:oklch(38.1% 0.176 304.987);--adm-warning-border:oklch(70.5% 0.213 47.604);--adm-warning-bg:oklch(98% 0.016 73.684);--adm-warning-text:oklch(40.8% 0.123 38.172);--adm-caution-border:oklch(63.7% 0.237 25.331);--adm-caution-bg:oklch(97.1% 0.013 17.38);--adm-caution-text:oklch(39.6% 0.141 25.723);--adm-abstract-border:oklch(71.5% 0.143 215.221);--adm-abstract-bg:oklch(98.4% 0.019 200.873);--adm-abstract-text:oklch(39.8% 0.07 227.392);--adm-bug-border:oklch(64.5% 0.246 16.439);--adm-bug-bg:oklch(96.9% 0.015 12.422);--adm-bug-text:oklch(41% 0.159 10.272);--adm-danger-border:oklch(63.7% 0.237 25.331);--adm-danger-bg:oklch(97.1% 0.013 17.38);--adm-danger-text:oklch(39.6% 0.141 25.723);--adm-example-border:oklch(55.8% 0.288 302.321);--adm-example-bg:oklch(97.7% 0.014 308.299);--adm-example-text:oklch(38.1% 0.176 304.987);--adm-failure-border:oklch(65.6% 0.241 354.308);--adm-failure-bg:oklch(97.1% 0.014 343.198);--adm-failure-text:oklch(40.8% 0.153 2.432);--adm-info-border:oklch(62.3% 0.214 259.815);--adm-info-bg:oklch(97% 0.014 254.604);--adm-info-text:oklch(37.9% 0.146 265.522);--adm-question-border:oklch(76.9% 0.188 70.08);--adm-question-bg:oklch(98.7% 0.022 95.277);--adm-question-text:oklch(41.4% 0.112 45.904);--adm-quote-border:oklch(55.1% 0.027 264.364);--adm-quote-bg:oklch(98.5% 0.002 247.839);--adm-quote-text:oklch(27.8% 0.033 256.848);--adm-success-border:oklch(69.6% 0.17 162.48);--adm-success-bg:oklch(97.9% 0.021 166.113);--adm-success-text:oklch(37.8% 0.077 168.94);--adm-todo-border:oklch(68.5% 0.169 237.323);--adm-todo-bg:oklch(97.7% 0.013 236.62);--adm-todo-text:oklch(44.3% 0.11 240.79)}html.dark{--adm-note-bg:color-mix(in srgb, oklch(44.3% 0.11 240.79), #0f0f0f 50%);--adm-note-text:oklch(95.1% 0.026 236.824);--adm-tip-bg:color-mix(in srgb, oklch(43.2% 0.095 166.913), #0f0f0f 50%);--adm-tip-text:oklch(95% 0.052 163.051);--adm-important-bg:color-mix(in srgb, oklch(43.8% 0.218 303.724), #0f0f0f 50%);--adm-important-text:oklch(94.6% 0.033 307.174);--adm-warning-bg:color-mix(in srgb, oklch(47% 0.157 37.304), #0f0f0f 45%);--adm-warning-text:oklch(95.4% 0.038 75.164);--adm-caution-bg:color-mix(in srgb, oklch(44.4% 0.177 26.899), #0f0f0f 45%);--adm-caution-text:oklch(93.6% 0.032 17.717);--adm-abstract-bg:color-mix(in srgb, oklch(45% 0.085 224.283), #0f0f0f 50%);--adm-abstract-text:oklch(95.6% 0.045 203.388);--adm-bug-bg:color-mix(in srgb, oklch(45.5% 0.188 13.697), #0f0f0f 50%);--adm-bug-text:oklch(94.1% 0.03 12.58);--adm-danger-bg:color-mix(in srgb, oklch(44.4% 0.177 26.899), #0f0f0f 45%);--adm-danger-text:oklch(93.6% 0.032 17.717);--adm-example-bg:color-mix(in srgb, oklch(43.8% 0.218 303.724), #0f0f0f 50%);--adm-example-text:oklch(94.6% 0.033 307.174);--adm-failure-bg:color-mix(in srgb, oklch(45.9% 0.187 3.815), #0f0f0f 50%);--adm-failure-text:oklch(94.8% 0.028 342.258);--adm-info-bg:color-mix(in srgb, oklch(42.4% 0.199 265.638), #0f0f0f 50%);--adm-info-text:oklch(93.2% 0.032 255.585);--adm-question-bg:color-mix(in srgb, oklch(47.3% 0.137 46.201), #0f0f0f 50%);--adm-question-text:oklch(96.2% 0.059 95.617);--adm-quote-bg:color-mix(in srgb, oklch(27.8% 0.033 256.848), #0f0f0f 50%);--adm-quote-text:oklch(96.7% 0.003 264.542);--adm-success-bg:color-mix(in srgb, oklch(43.2% 0.095 166.913), #0f0f0f 50%);--adm-success-text:oklch(95% 0.052 163.051);--adm-todo-bg:color-mix(in srgb, oklch(44.3% 0.11 240.79), #0f0f0f 50%);--adm-todo-text:oklch(95.1% 0.026 236.824)}.admonition-content>:first-child{margin-top:0!important}.admonition-content>:last-child{margin-bottom:0!important}.admonition-content pre{margin-block:0!important}.admonition[data-type=note]{border-color:var(--adm-note-border);background-color:var(--adm-note-bg);color:var(--adm-note-text)}.admonition[data-type=tip]{border-color:var(--adm-tip-border);background-color:var(--adm-tip-bg);color:var(--adm-tip-text)}.admonition[data-type=important]{border-color:var(--adm-important-border);background-color:var(--adm-important-bg);color:var(--adm-important-text)}.admonition[data-type=warning]{border-color:var(--adm-warning-border);background-color:var(--adm-warning-bg);color:var(--adm-warning-text)}.admonition[data-type=caution]{border-color:var(--adm-caution-border);background-color:var(--adm-caution-bg);color:var(--adm-caution-text)}.admonition[data-type=abstract]{border-color:var(--adm-abstract-border);background-color:var(--adm-abstract-bg);color:var(--adm-abstract-text)}.admonition[data-type=bug]{border-color:var(--adm-bug-border);background-color:var(--adm-bug-bg);color:var(--adm-bug-text)}.admonition[data-type=danger]{border-color:var(--adm-danger-border);background-color:var(--adm-danger-bg);color:var(--adm-danger-text)}.admonition[data-type=example]{border-color:var(--adm-example-border);background-color:var(--adm-example-bg);color:var(--adm-example-text)}.admonition[data-type=failure]{border-color:var(--adm-failure-border);background-color:var(--adm-failure-bg);color:var(--adm-failure-text)}.admonition[data-type=info]{border-color:var(--adm-info-border);background-color:var(--adm-info-bg);color:var(--adm-info-text)}.admonition[data-type=question]{border-color:var(--adm-question-border);background-color:var(--adm-question-bg);color:var(--adm-question-text)}.admonition[data-type=quote]{border-color:var(--adm-quote-border);background-color:var(--adm-quote-bg);color:var(--adm-quote-text)}.admonition[data-type=success]{border-color:var(--adm-success-border);background-color:var(--adm-success-bg);color:var(--adm-success-text)}.admonition[data-type=todo]{border-color:var(--adm-todo-border);background-color:var(--adm-todo-bg);color:var(--adm-todo-text)}}html:not(.dark){color-scheme:light}html.dark{color-scheme:dark}body a,body button{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}button,[role=button]{cursor:pointer}.icon svg{height:1em;width:1em}.logo svg{height:5rem;width:5rem}#search-query::-webkit-search-cancel-button,#search-query::-webkit-search-decoration,#search-query::-webkit-search-results-button,#search-query::-webkit-search-results-decoration{display:none}.prose blockquote{&:where(:dir(rtl),[dir="rtl"],[dir="rtl"] *) { border-right-style:var(--tw-border-style); border-right-width:4px; } &:where(:dir(rtl),[dir="rtl"],[dir="rtl"] *) { border-left-style:var(--tw-border-style); border-left-width:0px; } &:where(:dir(rtl),[dir="rtl"],[dir="rtl"] *) { padding-right:calc(var(--spacing) * 4); }}.prose ul>li,.prose ol>li{&:where(:dir(rtl),[dir="rtl"],[dir="rtl"] *) { margin-right:calc(var(--spacing) * 7); } &:where(:dir(rtl),[dir="rtl"],[dir="rtl"] *) { padding-right:calc(var(--spacing) * 2); } &:where(:dir(rtl),[dir="rtl"],[dir="rtl"] *) { padding-left:calc(var(--spacing) * 0); }}.prose ol>li:before,.prose ul>li:before{&:where(:dir(rtl),[dir="rtl"],[dir="rtl"] *) { right:calc(var(--spacing) * 1); } &:where(:dir(rtl),[dir="rtl"],[dir="rtl"] *) { left:auto; }}.prose thead td:first-child,.prose thead th:first-child{&:where(:dir(rtl),[dir="rtl"],[dir="rtl"] *) { padding-right:calc(var(--spacing) * 0); }}.prose thead td:last-child,.prose thead th:last-child{&:where(:dir(rtl),[dir="rtl"],[dir="rtl"] *) { padding-left:calc(var(--spacing) * 0); }}.prose div.min-w-0.max-w-prose>*:first-child{margin-top:calc(var(--spacing) * 3)}#TOCView{max-height:calc(100vh - 150px);min-height:0;overflow-x:hidden}.toc ul,.toc li{list-style-type:none;padding-inline:calc(var(--spacing) * 0);--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.toc ul ul{&:where(:dir(ltr),[dir="ltr"],[dir="ltr"] *) { padding-left:calc(var(--spacing) * 4); } &:where(:dir(rtl),[dir="rtl"],[dir="rtl"] *) { padding-right:calc(var(--spacing) * 4); }}.toc a{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal);color:rgba(var(--color-neutral-700),1);&:is(.dark *) { color:rgba(var(--color-neutral-300),1); }}.toc ul>li{&:where(:dir(rtl),[dir="rtl"],[dir="rtl"] *) { margin-right:calc(var(--spacing) * 0); }}.highlight{position:relative;z-index:0}.highlight-wrapper:hover>.copy-button{visibility:visible}.copy-button{visibility:hidden;position:absolute;top:calc(var(--spacing) * 0);right:calc(var(--spacing) * 0);z-index:10;width:calc(var(--spacing) * 20);cursor:pointer;text-overflow:ellipsis;overflow:hidden;border-top-right-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md);background-color:rgba(var(--color-neutral-200),1);padding-block:calc(var(--spacing) * 1);font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));white-space:nowrap;color:rgba(var(--color-neutral-700),1);opacity:90%;&:is(.dark *) { background-color:rgba(var(--color-neutral-600),1); } &:is(.dark *) { color:rgba(var(--color-neutral-200),1); }}.copy-button:hover,.copy-button:focus,.copy-button:active,.copy-button:active:hover{background-color:rgba(var(--color-primary-100),1);&:is(.dark *) { background-color:rgba(var(--color-primary-600),1); }}.copy-textarea{position:absolute;z-index:calc(10 * -1);opacity:5%}.katex-display{overflow:auto hidden}.katex-display{padding:1em;width:calc(100% - 1em)}table{display:block;overflow:auto}code{word-wrap:break-word;overflow-wrap:break-word}a{word-break:break-word;word-wrap:break-word;overflow-wrap:break-word}.prose-invert .highlight pre>code{background-color:unset}pre{text-align:left}.single_hero_round{max-height:50vh;object-fit:cover}.single_hero_background{width:calc(100% + 1px);z-index:-10}.hero_gradient{width:100%;height:100%}.thumbnail_card{min-width:300px;height:200px}.thumbnail_card_related{height:150px}.thumbnail{width:300px;min-height:180px}@media(width < 853px){.thumbnail{width:100%}}.thumbnail-shadow{box-shadow:5px 5px 20px 1px rgba(0,0,0,.3)}@media(width < 853px){.width-patch{width:80vw}}@media(width >= 853px){.width-patch{width:65ch}}.anchor{display:block;position:relative;top:-150px;height:0;visibility:hidden}[id^=fn],[id^=fnref]{scroll-margin-top:145px}#main-content{scroll-margin-top:-125px}@media(width >= 640px){.article{flex-wrap:wrap}}@media(width >= 853px){.article{flex-wrap:nowrap}}.medium-zoom-image--opened{z-index:100}@layer utilities{.bf-border-color{border-color:rgba(var(--color-neutral-300),1);&:is(.dark *) { border-color:rgba(var(--color-neutral-700),1); }}.bf-border-color-hover{&:hover { @media (hover:hover) { border-color:rgba(var(--color-primary-600),1); } } &:is(.dark *) { &:hover { @media (hover:hover) { border-color:rgba(var(--color-primary-400),1); } } }}.bf-icon-color-hover{&:hover { @media (hover:hover) { color:rgba(var(--color-primary-600),1); } } &:is(.dark *) { &:hover { @media (hover:hover) { color:rgba(var(--color-primary-400),1); } } }}.bf-scrollbar{&::-webkit-scrollbar-track { background-color:var(--scrollbar-track); border-radius:var(--scrollbar-track-radius); } &::-webkit-scrollbar-thumb { background-color:var(--scrollbar-thumb); border-radius:var(--scrollbar-thumb-radius); } &::-webkit-scrollbar-corner { background-color:var(--scrollbar-corner); border-radius:var(--scrollbar-corner-radius); } @supports (-moz-appearance:none) { scrollbar-width:thin; scrollbar-color:var(--scrollbar-thumb,initial) var(--scrollbar-track,initial); } &::-webkit-scrollbar { display:block; width:8px; height:8px; } --scrollbar-thumb:oklch(70.8% 0 0);--scrollbar-track:oklch(92.2% 0 0);&:is(.dark *) { --scrollbar-thumb:oklch(43.9% 0 0); } &:is(.dark *) { --scrollbar-track:oklch(26.9% 0 0); }}}body:has(#mobile-menu-toggle:checked){overflow:hidden}@media(min-width:853px){body:has(#mobile-menu-toggle:checked){overflow:visible}}#bmc-wbtn{z-index:50!important}.nested-menu{position:relative}.menuhide{position:absolute;z-index:1000;white-space:nowrap;opacity:0;visibility:hidden;transition:visibility .3s,opacity .3s ease-in-out}.nested-menu:hover .menuhide,.nested-menu:focus-within .menuhide{opacity:1;visibility:visible}.active{text-decoration-line:underline;text-decoration-thickness:3px;text-underline-offset:4px}@layer base{input:where([type=text]),input:where(:not([type])),input:where([type=email]),input:where([type=url]),input:where([type=password]),input:where([type=number]),input:where([type=date]),input:where([type=datetime-local]),input:where([type=month]),input:where([type=search]),input:where([type=tel]),input:where([type=time]),input:where([type=week]),select:where([multiple]),textarea,select{appearance:none;background-color:#fff;border-color:oklch(55.1% .027 264.364);border-width:1px;border-radius:0;padding-top:.5rem;padding-right:.75rem;padding-bottom:.5rem;padding-left:.75rem;font-size:1rem;line-height:1.5rem;--tw-shadow:0 0 #0000;&:focus { outline:2px solid transparent; outline-offset:2px; --tw-ring-inset:var(--tw-empty,); --tw-ring-offset-width:0px; --tw-ring-offset-color:#fff; --tw-ring-color:oklch(54.6% 0.245 262.881); --tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); border-color:oklch(54.6% 0.245 262.881); }}input::placeholder,textarea::placeholder{color:oklch(55.1% .027 264.364);opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em}::-webkit-date-and-time-value{text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;print-color-adjust:exact}select:where([multiple]),select:where([size]:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;padding-right:.75rem;print-color-adjust:unset}input:where([type=checkbox]),input:where([type=radio]){appearance:none;padding:0;print-color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:oklch(54.6% .245 262.881);background-color:#fff;border-color:oklch(55.1% .027 264.364);border-width:1px;--tw-shadow:0 0 #0000}input:where([type=checkbox]){border-radius:0}input:where([type=radio]){border-radius:100%}input:where([type=checkbox]):focus,input:where([type=radio]):focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% 0.245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}input:where([type=checkbox]):checked,input:where([type=radio]):checked{border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}input:where([type=checkbox]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e");@media(forced-colors:active){appearance: auto;}}input:where([type=radio]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e");@media(forced-colors:active){appearance: auto;}}input:where([type=checkbox]):checked:hover,input:where([type=checkbox]):checked:focus,input:where([type=radio]):checked:hover,input:where([type=radio]):checked:focus{border-color:transparent;background-color:currentColor}input:where([type=checkbox]):indeterminate{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat;@media(forced-colors:active){appearance: auto;}}input:where([type=checkbox]):indeterminate:hover,input:where([type=checkbox]):indeterminate:focus{border-color:transparent;background-color:currentColor}input:where([type=file]){background:unset;border-color:inherit;border-width:0;border-radius:0;padding:0;font-size:unset;line-height:inherit}input:where([type=file]):focus{outline:1px solid ButtonText;outline:1px auto -webkit-focus-ring-color}}@layer base{*{@supports(-moz-appearance:none){scrollbar-color: initial; scrollbar-width: initial;}}}@property --tw-translate-x{syntax: "*";
+ inherits: false;
+ initial-value: 0;
+}@property --tw-translate-y{syntax: "*";
+ inherits: false;
+ initial-value: 0;
+}@property --tw-translate-z{syntax: "*";
+ inherits: false;
+ initial-value: 0;
+}@property --tw-scale-x{syntax: "*";
+ inherits: false;
+ initial-value: 1;
+}@property --tw-scale-y{syntax: "*";
+ inherits: false;
+ initial-value: 1;
+}@property --tw-scale-z{syntax: "*";
+ inherits: false;
+ initial-value: 1;
+}@property --tw-rotate-x{syntax: "*";
+ inherits: false;
+}@property --tw-rotate-y{syntax: "*";
+ inherits: false;
+}@property --tw-rotate-z{syntax: "*";
+ inherits: false;
+}@property --tw-skew-x{syntax: "*";
+ inherits: false;
+}@property --tw-skew-y{syntax: "*";
+ inherits: false;
+}@property --tw-pan-x{syntax: "*";
+ inherits: false;
+}@property --tw-pan-y{syntax: "*";
+ inherits: false;
+}@property --tw-pinch-zoom{syntax: "*";
+ inherits: false;
+}@property --tw-space-y-reverse{syntax: "*";
+ inherits: false;
+ initial-value: 0;
+}@property --tw-space-x-reverse{syntax: "*";
+ inherits: false;
+ initial-value: 0;
+}@property --tw-border-style{syntax: "*";
+ inherits: false;
+ initial-value: solid;
+}@property --tw-gradient-position{syntax: "*";
+ inherits: false;
+}@property --tw-gradient-from{syntax: "";
+ inherits: false;
+ initial-value: #0000;
+}@property --tw-gradient-via{syntax: "";
+ inherits: false;
+ initial-value: #0000;
+}@property --tw-gradient-to{syntax: "";
+ inherits: false;
+ initial-value: #0000;
+}@property --tw-gradient-stops{syntax: "*";
+ inherits: false;
+}@property --tw-gradient-via-stops{syntax: "*";
+ inherits: false;
+}@property --tw-gradient-from-position{syntax: "";
+ inherits: false;
+ initial-value: 0%;
+}@property --tw-gradient-via-position{syntax: "";
+ inherits: false;
+ initial-value: 50%;
+}@property --tw-gradient-to-position{syntax: "";
+ inherits: false;
+ initial-value: 100%;
+}@property --tw-leading{syntax: "*";
+ inherits: false;
+}@property --tw-font-weight{syntax: "*";
+ inherits: false;
+}@property --tw-tracking{syntax: "*";
+ inherits: false;
+}@property --tw-ordinal{syntax: "*";
+ inherits: false;
+}@property --tw-slashed-zero{syntax: "*";
+ inherits: false;
+}@property --tw-numeric-figure{syntax: "*";
+ inherits: false;
+}@property --tw-numeric-spacing{syntax: "*";
+ inherits: false;
+}@property --tw-numeric-fraction{syntax: "*";
+ inherits: false;
+}@property --tw-shadow{syntax: "*";
+ inherits: false;
+ initial-value: 0 0 #0000;
+}@property --tw-shadow-color{syntax: "*";
+ inherits: false;
+}@property --tw-shadow-alpha{syntax: "";
+ inherits: false;
+ initial-value: 100%;
+}@property --tw-inset-shadow{syntax: "*";
+ inherits: false;
+ initial-value: 0 0 #0000;
+}@property --tw-inset-shadow-color{syntax: "*";
+ inherits: false;
+}@property --tw-inset-shadow-alpha{syntax: "";
+ inherits: false;
+ initial-value: 100%;
+}@property --tw-ring-color{syntax: "*";
+ inherits: false;
+}@property --tw-ring-shadow{syntax: "*";
+ inherits: false;
+ initial-value: 0 0 #0000;
+}@property --tw-inset-ring-color{syntax: "*";
+ inherits: false;
+}@property --tw-inset-ring-shadow{syntax: "*";
+ inherits: false;
+ initial-value: 0 0 #0000;
+}@property --tw-ring-inset{syntax: "*";
+ inherits: false;
+}@property --tw-ring-offset-width{syntax: "";
+ inherits: false;
+ initial-value: 0px;
+}@property --tw-ring-offset-color{syntax: "*";
+ inherits: false;
+ initial-value: #fff;
+}@property --tw-ring-offset-shadow{syntax: "*";
+ inherits: false;
+ initial-value: 0 0 #0000;
+}@property --tw-outline-style{syntax: "*";
+ inherits: false;
+ initial-value: solid;
+}@property --tw-blur{syntax: "*";
+ inherits: false;
+}@property --tw-brightness{syntax: "*";
+ inherits: false;
+}@property --tw-contrast{syntax: "*";
+ inherits: false;
+}@property --tw-grayscale{syntax: "*";
+ inherits: false;
+}@property --tw-hue-rotate{syntax: "*";
+ inherits: false;
+}@property --tw-invert{syntax: "*";
+ inherits: false;
+}@property --tw-opacity{syntax: "*";
+ inherits: false;
+}@property --tw-saturate{syntax: "*";
+ inherits: false;
+}@property --tw-sepia{syntax: "*";
+ inherits: false;
+}@property --tw-drop-shadow{syntax: "*";
+ inherits: false;
+}@property --tw-drop-shadow-color{syntax: "*";
+ inherits: false;
+}@property --tw-drop-shadow-alpha{syntax: "";
+ inherits: false;
+ initial-value: 100%;
+}@property --tw-drop-shadow-size{syntax: "*";
+ inherits: false;
+}@property --tw-backdrop-blur{syntax: "*";
+ inherits: false;
+}@property --tw-backdrop-brightness{syntax: "*";
+ inherits: false;
+}@property --tw-backdrop-contrast{syntax: "*";
+ inherits: false;
+}@property --tw-backdrop-grayscale{syntax: "*";
+ inherits: false;
+}@property --tw-backdrop-hue-rotate{syntax: "*";
+ inherits: false;
+}@property --tw-backdrop-invert{syntax: "*";
+ inherits: false;
+}@property --tw-backdrop-opacity{syntax: "*";
+ inherits: false;
+}@property --tw-backdrop-saturate{syntax: "*";
+ inherits: false;
+}@property --tw-backdrop-sepia{syntax: "*";
+ inherits: false;
+}@property --tw-duration{syntax: "*";
+ inherits: false;
+}@property --tw-ease{syntax: "*";
+ inherits: false;
+}@property --tw-content{syntax: "*";
+ initial-value: "";
+ inherits: false;
+}@keyframes pulse{50%{opacity:.5}}@layer properties{@supports((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::before,::after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-pan-x:initial;--tw-pan-y:initial;--tw-pinch-zoom:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}}}.medium-zoom-overlay{position:fixed;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .3s;will-change:opacity}.medium-zoom--opened .medium-zoom-overlay{cursor:pointer;cursor:zoom-out;opacity:1}.medium-zoom-image{cursor:pointer;cursor:zoom-in;transition:transform .3s cubic-bezier(.2,0,.2,1)!important}.medium-zoom-image--hidden{visibility:hidden}.medium-zoom-image--opened{position:relative;cursor:pointer;cursor:zoom-out;will-change:transform}
\ No newline at end of file
diff --git a/public/index.html b/public/index.html
index 6e86cc0..293df74 100644
--- a/public/index.html
+++ b/public/index.html
@@ -1,6 +1,6 @@
-
+
@@ -45,7 +45,7 @@
-
+
@@ -96,8 +96,8 @@
+ href="/css/main.bundle.min.9ad45a110b860f64037f0ac4bcec699ac86f9d98a9b33e37551c11ad228f0505a2d41b9e6606a0536060efe4034905ed57b1c3153a94af326c0eb0b92a05642e.css"
+ integrity="sha512-mtRaEQuGD2QDfwrEvOxpmshvnZipsz43VRwRrSKPBQWi1BueZgagU2Bg7+QDSQXtV7HDFTqUrzJsDrC5KgVkLg==">
@@ -124,6 +124,8 @@
+
+
@@ -134,8 +136,8 @@
defer
type="text/javascript"
id="script-bundle"
- src="/js/main.bundle.min.b61ad3f6e0119d2611a72f3892ca8f75eb1da42ac1f74dafaf32e617ccb970be4b278131f9ad9f2eff9d4bd23e552e7881e2c821970c4bf8f47a2467bca1c933.js"
- integrity="sha512-thrT9uARnSYRpy84ksqPdesdpCrB902vrzLmF8y5cL5LJ4Ex+a2fLv+dS9I+VS54geLIIZcMS/j0eiRnvKHJMw=="
+ src="/js/main.bundle.min.ddce0729419700936e0c03ec6f8766f25d6304e689ec0291bf18dfe90cf581a8b4d2f0136eae2dc6657f37ba9a194c38242716ed05cb312eb90715b367403743.js"
+ integrity="sha512-3c4HKUGXAJNuDAPsb4dm8l1jBOaJ7AKRvxjf6Qz1gai00vATbq4txmV/N7qaGUw4JCcW7QXLMS65BxWzZ0A3Qw=="
data-copy="Copy"
data-copied="Copied">
@@ -204,7 +206,7 @@
"@id": "http://localhost:1313/",
"name": "Ash Marlow",
- "inLanguage": "en-gb",
+ "inLanguage": "en",
"url": "http://localhost:1313/",
"publisher" : {
@@ -260,6 +262,9 @@
+
+
+
Ash Marlow
@@ -276,12 +281,17 @@
href="/about/"
class="flex items-center bf-icon-color-hover"
- aria-label="CV & About"
- title="">
+ aria-label="About"
+ title="Curriculum Vitae">
+
+
+
+
+
- CV & About
+ About
@@ -295,7 +305,12 @@
class="flex items-center bf-icon-color-hover"
aria-label="Blog"
- title="">
+ title="Blogs">
+
+
+
+
+
@@ -309,17 +324,13 @@
-
- Projects
-
-
@@ -420,12 +431,17 @@
-
- CV & About
+
+
+
+
+
+
+ About
@@ -441,7 +457,12 @@
class="flex items-center gap-4 group bf-icon-color-hover text-neutral-700 dark:text-neutral-200">
-
+
+
+
+
+
+
Blog
@@ -453,13 +474,13 @@
- Projects
+
@@ -499,29 +520,18 @@
-
-
+
+
-
-
-
-
+
+
-
-
-
-
-
-
-
-
I am a Software Engineer specializing in the intersection of hardware, security, and automation. My career has evolved from architecting firmware for IoT appliances at Panasonic to securing high-stakes MoD systems with Tanium at Pointwire. Currently, I’m at Nextbase, where I test firmware and cloud systems by building automation frameworks and hardware-in-the-loop (HIL) test environments.
+ I am a Software Engineer specializing in the intersection of hardware, security, and automation. My career has evolved from architecting firmware for IoT appliances at Panasonic to securing high-stakes MoD systems with Tanium at Pointwire. Currently, I’m at Nextbase, where I test firmware and cloud systems by building automation frameworks and hardware-in-the-loop (HIL) test environments.
When I’m not writing scripts or managing my Proxmox server, you’ll usually find me tinkering with my HomeLab setup, playing the piano, or heading out on a day trip with my dog.
Tech Stack & Arsenal
@@ -560,11 +570,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -579,465 +611,29 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- March 13, 2026 · 437 words · 3 mins
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- February 20, 2026 · 482 words · 3 mins
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- February 20, 2026 · 86 words · 1 min
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
@@ -1066,6 +662,29 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/index.json b/public/index.json
index eedd93e..283e361 100644
--- a/public/index.json
+++ b/public/index.json
@@ -1,2 +1,2 @@
-[{"content":"","date":"March 13, 2026","externalUrl":null,"permalink":"/blog/","section":"Blogs","summary":"","title":"Blogs","type":"blog"},{"content":"","date":"March 13, 2026","externalUrl":null,"permalink":"/tags/games/","section":"Tags","summary":"","title":"Games","type":"tags"},{"content":"I am a Software Engineer specializing in the intersection of hardware, security, and automation. My career has evolved from architecting firmware for IoT appliances at Panasonic to securing high-stakes MoD systems with Tanium at Pointwire. Currently, I’m at Nextbase, where I test firmware and cloud systems by building automation frameworks and hardware-in-the-loop (HIL) test environments.\nWhen I’m not writing scripts or managing my Proxmox server, you’ll usually find me tinkering with my HomeLab setup, playing the piano, or heading out on a day trip with my dog.\nTech Stack \u0026amp; Arsenal # Raspberry Pi HIL STM32 / ESP32 Tanium Cloud ","date":"March 13, 2026","externalUrl":null,"permalink":"/","section":"Hi, I'm Ash Marlow","summary":"I am a Software Engineer specializing in the intersection of hardware, security, and automation. My career has evolved from architecting firmware for IoT appliances at Panasonic to securing high-stakes MoD systems with Tanium at Pointwire. Currently, I’m at Nextbase, where I test firmware and cloud systems by building automation frameworks and hardware-in-the-loop (HIL) test environments.\nWhen I’m not writing scripts or managing my Proxmox server, you’ll usually find me tinkering with my HomeLab setup, playing the piano, or heading out on a day trip with my dog.\n","title":"Hi, I'm Ash Marlow","type":"background"},{"content":"My biggest pass time outside of computing is retro game emulation. Most commonly in the form of dedicated emulation handhelds but also diving into console modding and Linux gaming.\nHandheld Emulators # P### owkiddy V90\nA clamshell device with a custom firmware that provides a basic but functional UI. It\u0026rsquo;s limited chipset only really allows for emulating upto the 16 bit era with a few Playstation 1 games just about playable. The screen leaves a lot to be desired by modern standards but when I first got this handheld I absolutely loved it. It\u0026rsquo;s low price and clamshell design make it a great device to throw in a bag without much thought or worry. The buttons are great and it made a great first handheld. Powkiddy is believed to be working on a V2 which I am very excited to see.\nMiyoo Mini + # This is an absolutely amazing device that I still regularly play today. The screen is a bright 480p display, the controls are soft but precise and while small it\u0026rsquo;s surprisingly comfortable to hold (ignoring use of the triggers). The real brilliance behind this device is the open source Onion OS. Adding features such as game switcher, auto save and loading states, custom themes and even a custom boot logo, alongside a £50 price tag makes the Miyoo Mini + a very easy recommendation.\nRetroid Pocket 3+ # This is the console that convinced me to start spending a bit of money on these devices. At £120 and promising the ability to emulate GameCube and PlayStation 2 I was sold. At the time of buying this device I was very impressed with the 720p display and the ability to play the sixth generation consoles (with a lot of tweaks and hacks) but sadly it hasn\u0026rsquo;t aged that well as there are now much better options. The one way that is handheld has improved is the software. As my first android device I wasn\u0026rsquo;t a big fan of the need to occasionally use the touchscreen for system navigation and the need for a frontend app to tie all the emulators together neatly. The options for frontend apps was very limited back then but now that ES-DE has launched on android it\u0026rsquo;s a much nicer experience.\nAnbernic RG35XXSP # A direct clone of the Gameboy advance SP, but with the power to emulate upto Dreamcast and Nintendo 64. This is unfortunately the only handheld I have ever sold. This is an incredibly popular device so I am certainly in the minority but I just couldn\u0026rsquo;t get over the clicky buttons, early software and poor build quality.\nMiyoo Mini V4 # \nThe Miyoo mini is the first handheld I really wanted but due to pricing, high demand and stock shortages it took me a long time to get hold of it. It really does not disappoint. Technically its a worse version of the Miyoo mini +. Its smaller and lacks WIFI but that small, super pocketable size gives it a huge amount of charm. If you are looking for something that can play upto Playstation 1 games, and you can take anywhere in your pocket then this is the device to get.\nConsole Modding # Gameboy # \nI purchased this original Gameboy from Facebook Marketplace. Like a lot of old plastic grey electronics it has horrible yellowing, so I tool this opportunity to clean it up. The Gameboy was stripped down, rubber and plastic components washed and yhe main board was cleaned. The shell was coated in Hydrogen Peroxide and left outside on a sunny day.\n\nThe console was then reassembled and a new screen lens applied to have it looking good as new. As much as I appreciate an original Gameboy, its not really something I would want to play in the modern day. The four AA batteries to power it, the contrast wheel and the fact that my nostalgia really starts at Gameboy color, means its more of a show piece for me.\n","date":"March 13, 2026","externalUrl":null,"permalink":"/blog/retro-handhelds/","section":"Blogs","summary":"Retro handheld collection","title":"Retro Handhelds","type":"blog"},{"content":"","date":"March 13, 2026","externalUrl":null,"permalink":"/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"},{"content":"","date":"March 13, 2026","externalUrl":null,"permalink":"/tags/electronics/","section":"Tags","summary":"","title":"Electronics","type":"tags"},{"content":"","date":"March 13, 2026","externalUrl":null,"permalink":"/projects/","section":"Projects","summary":"","title":"Projects","type":"projects"},{"content":" 📋 Project Highlights # Fabricate Dye Sensitized Solar Cell using Natural Dyes Investigate a variety of different dyes and their effects on cell efficiency Develop cosensitized cells by mixing compatible dyes and comparing their performance For my final year project of my BSc Physics degree, I fabricated solar cells using natural dyes extracted from plants, fruits and vegetables. The motivation being the project was to investigate alternative methods for solar power generation which don\u0026rsquo;t involve conventional silicon as this can be difficult to recycle at end of use.\nBenchmarking a silicon cell # To test the cells that we would be making, a light box was setup. A standard silicon cell was then tested to get an understanding of how much power could reasonably be harnessed from the light source and to give a benchmark to compare results against. Initially the testing of cells was done using a separate voltmeter and ammeter to record the I-V curve created by the cell. This was found to be very inefficient and was difficult to reliably repeat, so I setup a test circuit with an Arduino to record the result.\nExtracting the Dyes # The dyes were extracted from a range of plants, fruits and vegetables all based on success in previous research. The exact extraction method had to vary slightly based on the source of the dye but the base principle involved crushing the source in either water or ethanol and then filtering the solution.\nAnalyzing the Dye # With the dye extracted it was then watered down and analyzed using a spectrometer. This allowed us to see the absorption of the dye over a range of wavelengths. The absorption of the dye in the wavelengths of the sun are one of the most important properties of the dye so testing this at an early stage helped us rule out certain dye sources without making cells for them.\nMaking the Cells # To make the cells, a Titanium dioxide paste was made, and spread thinly onto a sheet of conductive glass. The cell was then heated on a hotplate and left to cool. The extracted dye was then carefully dropped onto the Ti02 with a pipet and left to soak in. The excess dye could then be rinsed off and the cell is left to dry. Finally a small amount of redox electrolyte solution is sandwiched between the Ti02 layer and another sheet of conductive glass, and the pieces are clamped together.\n🏁 Summary \u0026amp; Lessons Learned # Wrap up your project here. What would you do differently next time? This provides that \u0026ldquo;closing\u0026rdquo; feel for a future employer.\n","date":"March 13, 2026","externalUrl":null,"permalink":"/projects/solar-cells/","section":"Projects","summary":"Final year University project making Dye Sensitised Solar Cells.","title":"Solar Cells","type":"projects"},{"content":"","date":"March 13, 2026","externalUrl":null,"permalink":"/tags/university/","section":"Tags","summary":"","title":"University","type":"tags"},{"content":"","date":"February 20, 2026","externalUrl":null,"permalink":"/tags/esp32/","section":"Tags","summary":"","title":"ESP32","type":"tags"},{"content":" 📋 Project Highlights # Goal: Show my running progress on my desk Tech Stack: Python, ESP32, C# Outcome: A clean and simple setup that works reliably For christmas my wife got me a virtual running challenge. I have to run 80km with a smart watch and at the end I get a nice Scooby-Doo medal. The issue is, now that everything requires its own app I forget to open it. My Garmin watch tracks all my running and syncs it to the running app but I wanted a way see my progress, clearly on my desk in the hope it will motivate me to get out and run more.\nI had a waveshare 4.2\u0026quot; eink display in my drawer that ive been looking to find a good use for. A quick search only and I found a python wrapper that can pull data from Garmin connect and suddenly I had all the pieces to put this project together.\nStep 1 - Getting the Garmin Data # I found this brilliant tool online called Python Garmin Connect that allows you to input your Garmin account details and pull specific data from their API. The tool was installed and setup up as a system service on my server and the results servered with a Caddy web server.\nStep 2 - Displaying data on the eink screen # In VS Code I installed platform IO and connected my ESP32. The code was written to connect to wifi, grab the data from the web server and display it to the eink. I gave it a title and a progress bar with percentage to clearly show how much I have completed. I also added a Last Updated time stamp and logic to put the ESP to deep sleep and only update each morning after my typical workout time slot.\nI later decided it made more sense to show todays date at the botton my the page, making it double as a basic daily calender.\nOne of the greatest challenges was my desicion to include an image. An easier option would have been to buy an ESP32 with a micro SD card slot to give me an easier way of storing the image. Wanted to make this work without buying anything new I decided to stream the image from my Caddy server directly ro the display. With some AI magic I had a bash script that would convert any image I gave it to a resized monochrome bitmap suitable for the basic eink display. The great thing about using this approach is it makes changing the image for a different future challenge much easier.\nStep 3 - The case # The case comes from printables and felt like the cleanest option.\n🏁 Summary \u0026amp; Lessons Learned # Wrap up your project here. What would you do differently next time? This provides that \u0026ldquo;closing\u0026rdquo; feel for a future employer.\n","date":"February 20, 2026","externalUrl":null,"permalink":"/projects/garmin-eink/","section":"Projects","summary":"Using an Eink display with an ESP32 to track and motivate me for a virtual running challenge","title":"Garmin Eink","type":"projects"},{"content":"","date":"February 20, 2026","externalUrl":null,"permalink":"/tags/self-hosting/","section":"Tags","summary":"","title":"Self-Hosting","type":"tags"},{"content":" 📋 Project Highlights # Goal: What was the main objective? Tech Stack: Proxmox, Docker, Caddy, etc. Outcome: Did it work? Is it still running? 🚀 The Deep Dive # This is where you write your main paragraphs. You can drop images anywhere using the standard syntax. Thanks to the style block above, they will automatically stay at 50% width.\n🏁 Summary \u0026amp; Lessons Learned # Wrap up your project here. What would you do differently next time? This provides that \u0026ldquo;closing\u0026rdquo; feel for a future employer.\n","date":"February 20, 2026","externalUrl":null,"permalink":"/projects/smart-train/","section":"Projects","summary":"EVERYTHING MUST BE SMART! I take an old Hornby train and make it controllable from Home Assistant","title":"Smart Train","type":"projects"},{"content":"","date":"February 20, 2026","externalUrl":null,"permalink":"/tags/smart-home/","section":"Tags","summary":"","title":"Smart-Home","type":"tags"},{"content":"Testing 123\nA nice test header # Does this webhook work?\nWELL!?\n","date":"February 19, 2026","externalUrl":null,"permalink":"/blog/hello-world/","section":"Blogs","summary":"Welcome to my world.\"","title":"hello world","type":"blog"},{"content":"","externalUrl":null,"permalink":"/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":" Professional Experience # Nextbase June 2025 - Present Software QA Specialist Currently driving software quality by bridging the gap between firmware development and automated validation. * **Automated Testing:** Developed Raspberry Pi-based automation scripts to replace manual verification of dashcam hardware. * **Stability Lead:** Specialized in long-duration stability and stress testing. * **OTA Specialist:** Engineered test cases for Over-The-Air firmware updates. Pointwire June 2024 - June 2025 Technical Consultant Specialized in enterprise endpoint security and infrastructure management. * **Tanium SME:** Certified Operator, Administrator, and Cloud Specialist. * **Government \u0026 Defence:** Maintained SC Clearance to deliver secure deployments on MoD systems. * **Virtualization:** Engineered a Proxmox-based lab environment to simulate customer networks. Panasonic April 2023 - June 2024 Embedded Software Engineer Developed firmware for high-end, IoT-enabled smart home appliances. * **Model-Based Development:** Leveraged Simulink \u0026 Embedded Coder for STM32 microcontrollers. * **Test Automation:** Developed a Python-based automation framework. Education \u0026amp; Credentials # ISTQB Certified Tester (Foundation) - 2026 Tanium Certified Cloud Deployment Specialist - 2024 BSc Physics - University of Bristol (2018 - 2022) ","externalUrl":null,"permalink":"/about/","section":"Hi, I'm Ash Marlow","summary":"Professional Experience # Nextbase June 2025 - Present Software QA Specialist Currently driving software quality by bridging the gap between firmware development and automated validation. * **Automated Testing:** Developed Raspberry Pi-based automation scripts to replace manual verification of dashcam hardware. * **Stability Lead:** Specialized in long-duration stability and stress testing. * **OTA Specialist:** Engineered test cases for Over-The-Air firmware updates. Pointwire June 2024 - June 2025 Technical Consultant Specialized in enterprise endpoint security and infrastructure management. * **Tanium SME:** Certified Operator, Administrator, and Cloud Specialist. * **Government \u0026 Defence:** Maintained SC Clearance to deliver secure deployments on MoD systems. * **Virtualization:** Engineered a Proxmox-based lab environment to simulate customer networks. Panasonic April 2023 - June 2024 Embedded Software Engineer Developed firmware for high-end, IoT-enabled smart home appliances. * **Model-Based Development:** Leveraged Simulink \u0026 Embedded Coder for STM32 microcontrollers. * **Test Automation:** Developed a Python-based automation framework. Education \u0026 Credentials # ISTQB Certified Tester (Foundation) - 2026 Tanium Certified Cloud Deployment Specialist - 2024 BSc Physics - University of Bristol (2018 - 2022) ","title":"Curriculum Vitae","type":"page"}]
\ No newline at end of file
+[{"content":"","date":"13 March 2026","externalUrl":null,"permalink":"/blog/","section":"Blogs","summary":"","title":"Blogs","type":"blog"},{"content":"","date":"13 March 2026","externalUrl":null,"permalink":"/tags/games/","section":"Tags","summary":"","title":"Games","type":"tags"},{"content":"I am a Software Engineer specializing in the intersection of hardware, security, and automation. My career has evolved from architecting firmware for IoT appliances at Panasonic to securing high-stakes MoD systems with Tanium at Pointwire. Currently, I’m at Nextbase, where I test firmware and cloud systems by building automation frameworks and hardware-in-the-loop (HIL) test environments.\nWhen I’m not writing scripts or managing my Proxmox server, you’ll usually find me tinkering with my HomeLab setup, playing the piano, or heading out on a day trip with my dog.\nTech Stack \u0026amp; Arsenal # Raspberry Pi HIL STM32 / ESP32 Tanium Cloud ","date":"13 March 2026","externalUrl":null,"permalink":"/","section":"Hi, I'm Ash Marlow","summary":"","title":"Hi, I'm Ash Marlow","type":"background"},{"content":"My biggest pass time outside of computing is retro game emulation. Most commonly in the form of dedicated emulation handhelds but also diving into console modding and Linux gaming.\nHandheld Emulators # P### owkiddy V90\nA clamshell device with a custom firmware that provides a basic but functional UI. It\u0026rsquo;s limited chipset only really allows for emulating upto the 16 bit era with a few Playstation 1 games just about playable. The screen leaves a lot to be desired by modern standards but when I first got this handheld I absolutely loved it. It\u0026rsquo;s low price and clamshell design make it a great device to throw in a bag without much thought or worry. The buttons are great and it made a great first handheld. Powkiddy is believed to be working on a V2 which I am very excited to see.\nMiyoo Mini + # This is an absolutely amazing device that I still regularly play today. The screen is a bright 480p display, the controls are soft but precise and while small it\u0026rsquo;s surprisingly comfortable to hold (ignoring use of the triggers). The real brilliance behind this device is the open source Onion OS. Adding features such as game switcher, auto save and loading states, custom themes and even a custom boot logo, alongside a £50 price tag makes the Miyoo Mini + a very easy recommendation.\nRetroid Pocket 3+ # This is the console that convinced me to start spending a bit of money on these devices. At £120 and promising the ability to emulate GameCube and PlayStation 2 I was sold. At the time of buying this device I was very impressed with the 720p display and the ability to play the sixth generation consoles (with a lot of tweaks and hacks) but sadly it hasn\u0026rsquo;t aged that well as there are now much better options. The one way that is handheld has improved is the software. As my first android device I wasn\u0026rsquo;t a big fan of the need to occasionally use the touchscreen for system navigation and the need for a frontend app to tie all the emulators together neatly. The options for frontend apps was very limited back then but now that ES-DE has launched on android it\u0026rsquo;s a much nicer experience.\nAnbernic RG35XXSP # A direct clone of the Gameboy advance SP, but with the power to emulate upto Dreamcast and Nintendo 64. This is unfortunately the only handheld I have ever sold. This is an incredibly popular device so I am certainly in the minority but I just couldn\u0026rsquo;t get over the clicky buttons, early software and poor build quality.\nMiyoo Mini V4 # \nThe Miyoo mini is the first handheld I really wanted but due to pricing, high demand and stock shortages it took me a long time to get hold of it. It really does not disappoint. Technically its a worse version of the Miyoo mini +. Its smaller and lacks WIFI but that small, super pocketable size gives it a huge amount of charm. If you are looking for something that can play upto Playstation 1 games, and you can take anywhere in your pocket then this is the device to get.\nConsole Modding # Gameboy # \nI purchased this original Gameboy from Facebook Marketplace. Like a lot of old plastic grey electronics it has horrible yellowing, so I tool this opportunity to clean it up. The Gameboy was stripped down, rubber and plastic components washed and yhe main board was cleaned. The shell was coated in Hydrogen Peroxide and left outside on a sunny day.\n\nThe console was then reassembled and a new screen lens applied to have it looking good as new. As much as I appreciate an original Gameboy, its not really something I would want to play in the modern day. The four AA batteries to power it, the contrast wheel and the fact that my nostalgia really starts at Gameboy color, means its more of a show piece for me.\n","date":"13 March 2026","externalUrl":null,"permalink":"/blog/retro-handhelds/","section":"Blogs","summary":"Retro handheld collection","title":"Retro Handhelds","type":"blog"},{"content":"","date":"13 March 2026","externalUrl":null,"permalink":"/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"},{"content":"","date":"13 March 2026","externalUrl":null,"permalink":"/tags/electronics/","section":"Tags","summary":"","title":"Electronics","type":"tags"},{"content":" 📋 Project Highlights # Fabricate Dye Sensitized Solar Cell using Natural Dyes Investigate a variety of different dyes and their effects on cell efficiency Develop cosensitized cells by mixing compatible dyes and comparing their performance For my final year project of my BSc Physics degree, I fabricated solar cells using natural dyes extracted from plants, fruits and vegetables. The motivation being the project was to investigate alternative methods for solar power generation which don\u0026rsquo;t involve conventional silicon as this can be difficult to recycle at end of use.\nBenchmarking a silicon cell # To test the cells that we would be making, a light box was setup. A standard silicon cell was then tested to get an understanding of how much power could reasonably be harnessed from the light source and to give a benchmark to compare results against. Initially the testing of cells was done using a separate voltmeter and ammeter to record the I-V curve created by the cell. This was found to be very inefficient and was difficult to reliably repeat, so I setup a test circuit with an Arduino to record the result.\nExtracting the Dyes # The dyes were extracted from a range of plants, fruits and vegetables all based on success in previous research. The exact extraction method had to vary slightly based on the source of the dye but the base principle involved crushing the source in either water or ethanol and then filtering the solution.\nAnalyzing the Dye # With the dye extracted it was then watered down and analyzed using a spectrometer. This allowed us to see the absorption of the dye over a range of wavelengths. The absorption of the dye in the wavelengths of the sun are one of the most important properties of the dye so testing this at an early stage helped us rule out certain dye sources without making cells for them.\nMaking the Cells # To make the cells, a Titanium dioxide paste was made, and spread thinly onto a sheet of conductive glass. The cell was then heated on a hotplate and left to cool. The extracted dye was then carefully dropped onto the Ti02 with a pipet and left to soak in. The excess dye could then be rinsed off and the cell is left to dry. Finally a small amount of redox electrolyte solution is sandwiched between the Ti02 layer and another sheet of conductive glass, and the pieces are clamped together.\n🏁 Summary \u0026amp; Lessons Learned # Wrap up your project here. What would you do differently next time? This provides that \u0026ldquo;closing\u0026rdquo; feel for a future employer.\n","date":"13 March 2026","externalUrl":null,"permalink":"/blog/solar-cells/","section":"Blogs","summary":"Final year University project making Dye Sensitised Solar Cells.","title":"Solar Cells","type":"blog"},{"content":"","date":"13 March 2026","externalUrl":null,"permalink":"/tags/university/","section":"Tags","summary":"","title":"University","type":"tags"},{"content":"","date":"20 February 2026","externalUrl":null,"permalink":"/tags/esp32/","section":"Tags","summary":"","title":"ESP32","type":"tags"},{"content":" 📋 Project Highlights # Goal: Show my running progress on my desk Tech Stack: Python, ESP32, C# Outcome: A clean and simple setup that works reliably For christmas my wife got me a virtual running challenge. I have to run 80km with a smart watch and at the end I get a nice Scooby-Doo medal. The issue is, now that everything requires its own app I forget to open it. My Garmin watch tracks all my running and syncs it to the running app but I wanted a way see my progress, clearly on my desk in the hope it will motivate me to get out and run more.\nI had a waveshare 4.2\u0026quot; eink display in my drawer that ive been looking to find a good use for. A quick search only and I found a python wrapper that can pull data from Garmin connect and suddenly I had all the pieces to put this project together.\nStep 1 - Getting the Garmin Data # I found this brilliant tool online called Python Garmin Connect that allows you to input your Garmin account details and pull specific data from their API. The tool was installed and setup up as a system service on my server and the results servered with a Caddy web server.\nStep 2 - Displaying data on the eink screen # In VS Code I installed platform IO and connected my ESP32. The code was written to connect to wifi, grab the data from the web server and display it to the eink. I gave it a title and a progress bar with percentage to clearly show how much I have completed. I also added a Last Updated time stamp and logic to put the ESP to deep sleep and only update each morning after my typical workout time slot.\nI later decided it made more sense to show todays date at the botton my the page, making it double as a basic daily calender.\nOne of the greatest challenges was my desicion to include an image. An easier option would have been to buy an ESP32 with a micro SD card slot to give me an easier way of storing the image. Wanted to make this work without buying anything new I decided to stream the image from my Caddy server directly ro the display. With some AI magic I had a bash script that would convert any image I gave it to a resized monochrome bitmap suitable for the basic eink display. The great thing about using this approach is it makes changing the image for a different future challenge much easier.\nStep 3 - The case # The case comes from printables and felt like the cleanest option.\n🏁 Summary \u0026amp; Lessons Learned # Wrap up your project here. What would you do differently next time? This provides that \u0026ldquo;closing\u0026rdquo; feel for a future employer.\n","date":"20 February 2026","externalUrl":null,"permalink":"/blog/garmin-eink/","section":"Blogs","summary":"Using an Eink display with an ESP32 to track and motivate me for a virtual running challenge","title":"Garmin Eink","type":"blog"},{"content":"","date":"20 February 2026","externalUrl":null,"permalink":"/tags/self-hosting/","section":"Tags","summary":"","title":"Self-Hosting","type":"tags"},{"content":" 📋 Project Highlights # Goal: What was the main objective? Tech Stack: Proxmox, Docker, Caddy, etc. Outcome: Did it work? Is it still running? 🚀 The Deep Dive # This is where you write your main paragraphs. You can drop images anywhere using the standard syntax. Thanks to the style block above, they will automatically stay at 50% width.\n🏁 Summary \u0026amp; Lessons Learned # Wrap up your project here. What would you do differently next time? This provides that \u0026ldquo;closing\u0026rdquo; feel for a future employer.\n","date":"20 February 2026","externalUrl":null,"permalink":"/blog/smart-train/","section":"Blogs","summary":"EVERYTHING MUST BE SMART! I take an old Hornby train and make it controllable from Home Assistant","title":"Smart Train","type":"blog"},{"content":"","date":"20 February 2026","externalUrl":null,"permalink":"/tags/smart-home/","section":"Tags","summary":"","title":"Smart-Home","type":"tags"},{"content":"Testing 123\nA nice test header # Does this webhook work?\nWELL!?\n","date":"19 February 2026","externalUrl":null,"permalink":"/blog/hello-world/","section":"Blogs","summary":"Welcome to my world.\"","title":"hello world","type":"blog"},{"content":"","externalUrl":null,"permalink":"/authors/","section":"Authors","summary":"","title":"Authors","type":"authors"},{"content":"","externalUrl":null,"permalink":"/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":" Professional Experience # Nextbase June 2025 - Present Software QA Specialist Currently driving software quality by bridging the gap between firmware development and automated validation. * **Automated Testing:** Developed Raspberry Pi-based automation scripts to replace manual verification of dashcam hardware. * **Stability Lead:** Specialized in long-duration stability and stress testing. * **OTA Specialist:** Engineered test cases for Over-The-Air firmware updates. Pointwire June 2024 - June 2025 Technical Consultant Specialized in enterprise endpoint security and infrastructure management. * **Tanium SME:** Certified Operator, Administrator, and Cloud Specialist. * **Government \u0026 Defence:** Maintained SC Clearance to deliver secure deployments on MoD systems. * **Virtualization:** Engineered a Proxmox-based lab environment to simulate customer networks. Panasonic April 2023 - June 2024 Embedded Software Engineer Developed firmware for high-end, IoT-enabled smart home appliances. * **Model-Based Development:** Leveraged Simulink \u0026 Embedded Coder for STM32 microcontrollers. * **Test Automation:** Developed a Python-based automation framework. Education \u0026amp; Credentials # ISTQB Certified Tester (Foundation) - 2026 Tanium Certified Cloud Deployment Specialist - 2024 BSc Physics - University of Bristol (2018 - 2022) ","externalUrl":null,"permalink":"/about/","section":"Hi, I'm Ash Marlow","summary":"","title":"Curriculum Vitae","type":"page"},{"content":"","externalUrl":null,"permalink":"/series/","section":"Series","summary":"","title":"Series","type":"series"}]
\ No newline at end of file
diff --git a/public/index.xml b/public/index.xml
index 3af52f7..3cb0b05 100644
--- a/public/index.xml
+++ b/public/index.xml
@@ -5,7 +5,7 @@
http://localhost:1313/
Recent content in Hi, I'm Ash Marlow on Ash Marlow
Hugo -- gohugo.io
-
en-gb
+
en
© 2026
Fri, 13 Mar 2026 22:44:48 +0000
@@ -21,32 +21,32 @@
-
Solar Cells
- http://localhost:1313/projects/solar-cells/
+ http://localhost:1313/blog/solar-cells/
Fri, 13 Mar 2026 22:16:00 +0000
- http://localhost:1313/projects/solar-cells/
+ http://localhost:1313/blog/solar-cells/
Final year University project making Dye Sensitised Solar Cells.
-
+
-
Garmin Eink
- http://localhost:1313/projects/garmin-eink/
+ http://localhost:1313/blog/garmin-eink/
Fri, 20 Feb 2026 15:42:06 +0000
- http://localhost:1313/projects/garmin-eink/
+ http://localhost:1313/blog/garmin-eink/
Using an Eink display with an ESP32 to track and motivate me for a virtual running challenge
-
+
-
Smart Train
- http://localhost:1313/projects/smart-train/
+ http://localhost:1313/blog/smart-train/
Fri, 20 Feb 2026 12:27:11 +0000
- http://localhost:1313/projects/smart-train/
+ http://localhost:1313/blog/smart-train/
EVERYTHING MUST BE SMART! I take an old Hornby train and make it controllable from Home Assistant
-
+
-
@@ -65,7 +65,7 @@
Mon, 01 Jan 0001 00:00:00 +0000
http://localhost:1313/about/
- <h2 class="relative group">Professional Experience
<div id="professional-experience" class="anchor"></div>
<span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
<a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#professional-experience" aria-label="Anchor">#</a>
</span>
</h2>
<ol class="border-s-2 border-primary-500 dark:border-primary-300 list-none">
<li>
<div class="flex">
<div
class="bg-primary-500 dark:bg-primary-300 text-neutral-50 dark:text-neutral-700 min-w-[30px] h-8 text-2xl flex items-center justify-center rounded-full ltr:-ml-12 rtl:-mr-[79px] mt-5">
</div>
<div class="block p-6 rounded-lg shadow-2xl flex-1 ms-6 mb-10 break-words">
<div class="flex justify-between">
<h2 class="mt-0">Nextbase</h2>
<h3 class="">
<span class="flex cursor-pointer">
<span
class="rounded-md border border-primary-400 px-1 py-[1px] text-xs font-normal text-primary-700 dark:border-primary-600 dark:text-primary-400">
June 2025 - Present
</span>
</span>
</h3>
</div>
<h4 class="mt-0">
Software QA Specialist
</h4>
<div class="mb-6">
Currently driving software quality by bridging the gap between firmware development and automated validation.
* **Automated Testing:** Developed Raspberry Pi-based automation scripts to replace manual verification of dashcam hardware.
* **Stability Lead:** Specialized in long-duration stability and stress testing.
* **OTA Specialist:** Engineered test cases for Over-The-Air firmware updates.
</div>
</div>
</div>
</li>
<li>
<div class="flex">
<div
class="bg-primary-500 dark:bg-primary-300 text-neutral-50 dark:text-neutral-700 min-w-[30px] h-8 text-2xl flex items-center justify-center rounded-full ltr:-ml-12 rtl:-mr-[79px] mt-5">
<span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="currentColor" d="M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.7 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0zm0 66.8V444.8C394 378 431.1 230.1 432 141.4L256 66.8l0 0z"/></svg></span>
</div>
<div class="block p-6 rounded-lg shadow-2xl flex-1 ms-6 mb-10 break-words">
<div class="flex justify-between">
<h2 class="mt-0">Pointwire</h2>
<h3 class="">
<span class="flex cursor-pointer">
<span
class="rounded-md border border-primary-400 px-1 py-[1px] text-xs font-normal text-primary-700 dark:border-primary-600 dark:text-primary-400">
June 2024 - June 2025
</span>
</span>
</h3>
</div>
<h4 class="mt-0">
Technical Consultant
</h4>
<div class="mb-6">
Specialized in enterprise endpoint security and infrastructure management.
* **Tanium SME:** Certified Operator, Administrator, and Cloud Specialist.
* **Government & Defence:** Maintained SC Clearance to deliver secure deployments on MoD systems.
* **Virtualization:** Engineered a Proxmox-based lab environment to simulate customer networks.
</div>
</div>
</div>
</li>
<li>
<div class="flex">
<div
class="bg-primary-500 dark:bg-primary-300 text-neutral-50 dark:text-neutral-700 min-w-[30px] h-8 text-2xl flex items-center justify-center rounded-full ltr:-ml-12 rtl:-mr-[79px] mt-5">
<span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512">
<path fill="currentColor" d="M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z"/></svg></span>
</div>
<div class="block p-6 rounded-lg shadow-2xl flex-1 ms-6 mb-10 break-words">
<div class="flex justify-between">
<h2 class="mt-0">Panasonic</h2>
<h3 class="">
<span class="flex cursor-pointer">
<span
class="rounded-md border border-primary-400 px-1 py-[1px] text-xs font-normal text-primary-700 dark:border-primary-600 dark:text-primary-400">
April 2023 - June 2024
</span>
</span>
</h3>
</div>
<h4 class="mt-0">
Embedded Software Engineer
</h4>
<div class="mb-6">
Developed firmware for high-end, IoT-enabled smart home appliances.
* **Model-Based Development:** Leveraged Simulink & Embedded Coder for STM32 microcontrollers.
* **Test Automation:** Developed a Python-based automation framework.
</div>
</div>
</div>
</li>
</ol>
<hr>
<h2 class="relative group">Education & Credentials
<div id="education--credentials" class="anchor"></div>
<span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
<a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#education--credentials" aria-label="Anchor">#</a>
</span>
</h2>
<ul>
<li><strong>ISTQB Certified Tester (Foundation)</strong> - <em>2026</em></li>
<li><strong>Tanium Certified Cloud Deployment Specialist</strong> - <em>2024</em></li>
<li><strong>BSc Physics</strong> - University of Bristol <em>(2018 - 2022)</em></li>
</ul>
+
diff --git a/public/js/background-blur.min.00a57c73ea12f2cab2980c3c3d649e89f6d82f190f74bbe2b67f2f5e39ab7d032ece47086400ca05396758aace13299da49aca43ea643d2625e62c506267a169.js b/public/js/background-blur.min.00a57c73ea12f2cab2980c3c3d649e89f6d82f190f74bbe2b67f2f5e39ab7d032ece47086400ca05396758aace13299da49aca43ea643d2625e62c506267a169.js
new file mode 100644
index 0000000..d43858d
--- /dev/null
+++ b/public/js/background-blur.min.00a57c73ea12f2cab2980c3c3d649e89f6d82f190f74bbe2b67f2f5e39ab7d032ece47086400ca05396758aace13299da49aca43ea643d2625e62c506267a169.js
@@ -0,0 +1 @@
+function setBackgroundBlur(e,t=300,n=!1,s=!1){if(!e){console.error("data-blur-id is null");return}const o=document.getElementById(e);if(!o)return;n?(o.setAttribute("aria-hidden","true"),s?o.style.display="":(o.style.display="none",o.style.opacity="0")):(o.style.display="",o.removeAttribute("aria-hidden"));const i=()=>{if(!n||s){const e=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;o.style.opacity=e/t}};o.setAttribute("role","presentation"),o.setAttribute("tabindex","-1"),window.addEventListener("scroll",i),i()}document.querySelectorAll("script[data-blur-id]").forEach(e=>{const t=e.getAttribute("data-blur-id"),n=Number(e.getAttribute("data-scroll-divisor")||300),s=t==="menu-blur",o=JSON.parse(localStorage.getItem("a11ySettings")||"{}"),i=o.disableBlur||!1;setBackgroundBlur(t,n,i,s)})
\ No newline at end of file
diff --git a/public/js/main.bundle.min.ddce0729419700936e0c03ec6f8766f25d6304e689ec0291bf18dfe90cf581a8b4d2f0136eae2dc6657f37ba9a194c38242716ed05cb312eb90715b367403743.js b/public/js/main.bundle.min.ddce0729419700936e0c03ec6f8766f25d6304e689ec0291bf18dfe90cf581a8b4d2f0136eae2dc6657f37ba9a194c38242716ed05cb312eb90715b367403743.js
new file mode 100644
index 0000000..03474ed
--- /dev/null
+++ b/public/js/main.bundle.min.ddce0729419700936e0c03ec6f8766f25d6304e689ec0291bf18dfe90cf581a8b4d2f0136eae2dc6657f37ba9a194c38242716ed05cb312eb90715b367403743.js
@@ -0,0 +1,16 @@
+function scrollToTop(){const e=document.getElementById("scroll-to-top");window.scrollY>window.innerHeight*.5?(e.classList.remove("translate-y-4","opacity-0"),e.classList.add("translate-y-0","opacity-100")):(e.classList.remove("translate-y-0","opacity-100"),e.classList.add("translate-y-4","opacity-0"))}window.addEventListener("scroll",scrollToTop),window.addEventListener("load",scrollToTop),e=this,t=function(){"use strict";function R(e,t){var n,s=Object.keys(e);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(e),t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)),s}function h(e){for(var t,n=1;n
e.length)&&(t=e.length);for(var n=0,s=new Array(t);n0&&0[0]!==arguments[0]?arguments[0]:{},s=n.getFn,i=0[0]===s?e.getFn:s,o=n.fieldNormWeight,r=0[0]===o?e.fieldNormWeight:o;t(this,a),this.norm=function(){var n=arguments.length>0&&0[0]!==arguments[0]?arguments[0]:1,s=arguments.length>1&&0[0]!==arguments[1]?arguments[1]:3,e=new Map,t=10**s;return{get:function(s){if(o=s.match(ce).length,e.has(o))return e.get(o);var o,a=1/o**(.5*n),i=parseFloat(Math.round(a*t)/t);return e.set(o,i),i},clear:function(){e.clear()}}}(r,3),this.getFn=i,this.isCreated=!1,this.setIndexRecords()}return n(a,[{key:"setSources",value:function(){var e=arguments.length>0&&0[0]!==arguments[0]?arguments[0]:[];this.docs=e}},{key:"setIndexRecords",value:function(){var e=arguments.length>0&&0[0]!==arguments[0]?arguments[0]:[];this.records=e}},{key:"setKeys",value:function(){var t=this,e=arguments.length>0&&0[0]!==arguments[0]?arguments[0]:[];this.keys=e,this._keysMap={},e.forEach(function(e,n){t._keysMap[e.id]=n})}},{key:"create",value:function(){var e=this;!this.isCreated&&this.docs.length&&(this.isCreated=!0,o(this.docs[0])?this.docs.forEach(function(t,n){e._addString(t,n)}):this.docs.forEach(function(t,n){e._addObject(t,n)}),this.norm.clear())}},{key:"add",value:function(e){var t=this.size();o(e)?this._addString(e,t):this._addObject(e,t)}},{key:"removeAt",value:function(e){this.records.splice(e,1);for(var t=e,n=this.size();t2&&0[0]!==arguments[2]?arguments[2]:{},i=o.getFn,r=0[0]===i?e.getFn:i,a=o.fieldNormWeight,c=0[0]===a?e.fieldNormWeight:a,s=new E({getFn:r,fieldNormWeight:c});return s.setKeys(t.map(H)),s.setSources(n),s.create(),s}function p(t){var s,n=arguments.length>1&&0[0]!==arguments[1]?arguments[1]:{},d=n.errors,f=0[0]===d?0:d,l=n.currentLocation,u=0[0]===l?0:l,a=n.expectedLocation,h=0[0]===a?0:a,r=n.distance,c=0[0]===r?e.distance:r,i=n.ignoreLocation,m=0[0]===i?e.ignoreLocation:i,o=f/t.length;return m?o:(s=Math.abs(h-u),c?o+s/c:s?1:o)}a=32;function K(t,n,s){var o,r,f,v,b,w,k,A,H,c=arguments.length>3&&0[0]!==arguments[3]?arguments[3]:{},F=c.location,$=0[0]===F?e.location:F,R=c.distance,C=0[0]===R?e.distance:R,N=c.threshold,V=0[0]===N?e.threshold:N,I=c.findAllMatches,W=0[0]===I?e.findAllMatches:I,P=c.minMatchCharLength,z=0[0]===P?e.minMatchCharLength:P,B=c.includeMatches,D=0[0]===B?e.includeMatches:B,L=c.ignoreLocation,y=0[0]===L?e.ignoreLocation:L;if(n.length>a)throw new Error("Pattern length exceeds max of ".concat(a,"."));for(var _,d=n.length,g=t.length,i=Math.max(0,Math.min($,g)),m=V,h=i,x=z>1||D,S=x?Array(g):[];(_=t.indexOf(n,h))>-1;)if(H=p(n,{currentLocation:_,expectedLocation:i,distance:C,ignoreLocation:y}),m=Math.min(H,m),h=_+d,x)for(b=0;b=T;o-=1)if(v=o-1,A=s[t.charAt(v)],x&&(S[v]=+!!A),u[o]=(u[o+1]<<1|1)&A,l&&(u[o]|=(O[o+1]|O[o])<<1|1|O[o+1]),u[o]&U&&(E=p(n,{errors:l,currentLocation:v,expectedLocation:i,distance:C,ignoreLocation:y}))<=m){if(m=E,(h=v)<=i)break;T=Math.max(1,2*i-h)}if(p(n,{errors:l+1,currentLocation:i,expectedLocation:i,distance:C,ignoreLocation:y})>m)break;O=u}return w={isMatch:h>=0,score:Math.max(.001,E)},x&&(k=function(){for(var i,s=arguments.length>0&&0[0]!==arguments[0]?arguments[0]:[],a=arguments.length>1&&0[0]!==arguments[1]?arguments[1]:e.minMatchCharLength,o=[],t=-1,r=-1,n=0,c=s.length;n=a&&o.push([t,r]),t=-1);return s[n-1]&&n-t>=a&&o.push([t,n-1]),o}(S,z),k.length?D&&(w.indices=k):w.isMatch=!1),w}function ee(e){for(var s,n={},t=0,o=e.length;t1&&0[0]!==arguments[1]?arguments[1]:{},h=o.location,A=0[0]===h?e.location:h,u=o.threshold,E=0[0]===u?e.threshold:u,v=o.distance,F=0[0]===v?e.distance:v,f=o.includeMatches,S=0[0]===f?e.includeMatches:f,g=o.findAllMatches,k=0[0]===g?e.findAllMatches:g,d=o.minMatchCharLength,O=0[0]===d?e.minMatchCharLength:d,y=o.isCaseSensitive,_=0[0]===y?e.isCaseSensitive:y,w=o.ignoreDiacritics,j=0[0]===w?e.ignoreDiacritics:w,b=o.ignoreLocation,C=0[0]===b?e.ignoreLocation:b;if(t(this,s),this.options={location:A,threshold:E,distance:F,includeMatches:S,findAllMatches:k,minMatchCharLength:O,isCaseSensitive:_,ignoreDiacritics:j,ignoreLocation:C},n=_?n:n.toLowerCase(),n=j?m(n):n,this.pattern=n,this.chunks=[],this.pattern.length)if(r=function(e,t){x.chunks.push({pattern:e,alphabet:ee(e),startIndex:t})},i=this.pattern.length,i>a){for(var c=0,p=i%a,M=i-p;c1&&0[0]!==arguments[1]?arguments[1]:{},r=s.location,O=0[0]===r?e.location:r,l=s.threshold,g=0[0]===l?e.threshold:l,u=s.distance,_=0[0]===u?e.distance:u,m=s.includeMatches,j=0[0]===m?e.includeMatches:m,p=s.findAllMatches,v=0[0]===p?e.findAllMatches:p,a=s.minMatchCharLength,b=0[0]===a?e.minMatchCharLength:a,f=s.isCaseSensitive,y=0[0]===f?e.isCaseSensitive:f,h=s.ignoreDiacritics,w=0[0]===h?e.ignoreDiacritics:h,c=s.ignoreLocation,x=0[0]===c?e.ignoreLocation:c;return t(this,o),(d=i.call(this,n))._bitapSearch=new V(n,{location:O,threshold:g,distance:_,includeMatches:j,findAllMatches:v,minMatchCharLength:b,isCaseSensitive:y,ignoreDiacritics:w,ignoreLocation:x}),d}return n(o,[{key:"search",value:function(e){return this._bitapSearch.searchIn(e)}}],[{key:"type",get:function(){return"fuzzy"}},{key:"multiRegex",get:function(){return/^"(.*)"$/}},{key:"singleRegex",get:function(){return/^(.*)$/}}]),o}(c),U=function(e){r(s,e);var o=l(s);function s(e){return t(this,s),o.call(this,e)}return n(s,[{key:"search",value:function(e){for(var t,o,n=0,s=[],i=this.pattern.length;(t=e.indexOf(this.pattern,n))>-1;)n=t+i,s.push([t,n-1]);return o=!!s.length,{isMatch:o,score:o?0:1,indices:s}}}],[{key:"type",get:function(){return"include"}},{key:"multiRegex",get:function(){return/^'"(.*)"$/}},{key:"singleRegex",get:function(){return/^'(.*)$/}}]),s}(c),j=[Z,U,se,Y,X,G,Q,S],I=j.length,te=/ +(?=(?:[^"]*"[^"]*")*[^"]*$)/,ne=new Set([S.type,U.type]),q=function(){function s(n){var o=arguments.length>1&&0[0]!==arguments[1]?arguments[1]:{},a=o.isCaseSensitive,r=0[0]===a?e.isCaseSensitive:a,c=o.ignoreDiacritics,l=0[0]===c?e.ignoreDiacritics:c,d=o.includeMatches,O=0[0]===d?e.includeMatches:d,h=o.minMatchCharLength,v=0[0]===h?e.minMatchCharLength:h,f=o.ignoreLocation,_=0[0]===f?e.ignoreLocation:f,g=o.findAllMatches,b=0[0]===g?e.findAllMatches:g,i=o.location,y=0[0]===i?e.location:i,p=o.threshold,w=0[0]===p?e.threshold:p,u=o.distance,x=0[0]===u?e.distance:u;t(this,s),this.query=null,this.options={isCaseSensitive:r,ignoreDiacritics:l,includeMatches:O,minMatchCharLength:v,findAllMatches:b,ignoreLocation:_,location:y,threshold:w,distance:x},n=r?n:n.toLowerCase(),n=l?m(n):n,this.pattern=n,this.query=function(e){var t=arguments.length>1&&0[0]!==arguments[1]?arguments[1]:{};return e.split("|").map(function(e){for(var a,r,c,l,d=e.trim().split(te).filter(function(e){return e&&!!e.trim()}),s=[],o=0,h=d.length;o2&&0[0]!==arguments[2]?arguments[2]:{}).auto,s=0[0]===n||n;return b(e)||(e=T(e)),function e(n){var r,c,d,u,a=Object.keys(n),l=function(e){return!!e[D]}(n);if(!l&&a.length>1&&!b(n))return e(T(n));if(function(e){return!i(e)&&B(e)&&!b(e)}(n)){if(r=l?n[D]:a[0],c=l?n[le]:n[r],!o(c))throw new Error(function(e){return"Invalid value for key ".concat(e)}(r));return d={keyId:_(r),pattern:c},s&&(d.searcher=w(c,t)),d}return u={children:[],operator:a[0]},a.forEach(function(t){var s=n[t];i(s)&&s.forEach(function(t){u.children.push(e(t))})}),u}(e)}function me(e,t){var n=e.matches;t.matches=[],s(n)&&n.forEach(function(e){if(s(e.indices)&&e.indices.length){var n={indices:e.indices,value:e.value};e.key&&(n.key=e.key.src),e.idx>-1&&(n.refIndex=e.idx),t.matches.push(n)}})}function fe(e,t){t.score=e.score}return u=function(){function a(n){var s=arguments.length>1&&0[0]!==arguments[1]?arguments[1]:{},o=arguments.length>2?arguments[2]:0[0];t(this,a),this.options=h(h({},e),s),this.options.useExtendedSearch,this._keyStore=new pe(this.options.keys),this.setCollection(n,o)}return n(a,[{key:"setCollection",value:function(e,t){if(this._docs=e,t&&!(t instanceof E))throw new Error("Incorrect 'index' type");this._myIndex=t||L(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}},{key:"add",value:function(e){s(e)&&(this._docs.push(e),this._myIndex.add(e))}},{key:"remove",value:function(){for(var t,o=arguments.length>0&&0[0]!==arguments[0]?arguments[0]:function(){return!1},n=[],e=0,s=this._docs.length;e1&&0[0]!==arguments[1]?arguments[1]:{}).limit,i=0[0]===a?-1:a,n=this.options,r=n.includeMatches,c=n.includeScore,l=n.shouldSort,d=n.sortFn,u=n.ignoreFieldNorm,s=o(t)?o(this._docs[0])?this._searchStringList(t):this._searchObjectList(t):this._searchLogical(t);return function(t,n){var s=n.ignoreFieldNorm,o=0[0]===s?e.ignoreFieldNorm:s;t.forEach(function(e){var t=1;e.matches.forEach(function(e){var n=e.key,a=e.norm,s=e.score,i=n?n.weight:null;t*=(0===s&&i?Number.EPSILON:s)**((i||1)*(o?1:a))}),e.score=t})}(s,{ignoreFieldNorm:u}),l&&s.sort(d),$(i)&&i>-1&&(s=s.slice(0,i)),function(t,n){var o=arguments.length>2&&0[0]!==arguments[2]?arguments[2]:{},i=o.includeMatches,r=0[0]===i?e.includeMatches:i,a=o.includeScore,c=0[0]===a?e.includeScore:a,s=[];return r&&s.push(me),c&&s.push(fe),t.map(function(e){var t=e.idx,o={item:n[t],refIndex:t};return s.length&&s.forEach(function(t){t(e,o)}),o})}(s,this._docs,{includeMatches:r,includeScore:c})}},{key:"_searchStringList",value:function(e){var n=w(e,this.options),o=this._myIndex.records,t=[];return o.forEach(function(e){var o=e.v,a=e.i,r=e.n;if(s(o)){var i=n.searchIn(o),c=i.isMatch,l=i.score,d=i.indices;c&&t.push({item:o,idx:a,matches:[{score:l,value:o,norm:r,indices:d}]})}}),t}},{key:"_searchLogical",value:function(e){var n=this,i=he(e,this.options),a=function e(t,s,o){if(!t.children){var c,l=t.keyId,u=t.searcher,i=n._findMatches({key:n._keyStore.get(l),value:n._myIndex.getValueForItemAtKeyId(s,l),searcher:u});return i&&i.length?[{idx:o,item:s,matches:i}]:[]}for(var a=[],r=0,h=t.children.length;r1&&0[0]!==arguments[1]?arguments[1]:{},o=s.getFn,a=0[0]===o?e.getFn:o,i=s.fieldNormWeight,r=0[0]===i?e.fieldNormWeight:i,c=t.keys,l=t.records,n=new E({getFn:a,fieldNormWeight:r});return n.setKeys(c),n.setIndexRecords(l),n},u.config=e,function(){f.push.apply(f,arguments)}(q),u},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Fuse=t();var e,t,fuse,scriptBundle,copyText,copiedText,showButton=document.getElementById("search-button"),showButtonMobile=document.getElementById("search-button-mobile"),hideButton=document.getElementById("close-search-button"),wrapper=document.getElementById("search-wrapper"),modal=document.getElementById("search-modal"),input=document.getElementById("search-query"),output=document.getElementById("search-results"),first=output.firstChild,last=output.lastChild,searchVisible=!1,indexed=!1,hasResults=!1;showButton?showButton.addEventListener("click",displaySearch):null,showButtonMobile?showButtonMobile.addEventListener("click",displaySearch):null,hideButton.addEventListener("click",hideSearch),wrapper.addEventListener("click",hideSearch),modal.addEventListener("click",function(e){return e.stopPropagation(),e.stopImmediatePropagation(),!1}),document.addEventListener("keydown",function(e){if(e.key=="/"){const t=document.activeElement,n=t.tagName,s=n==="INPUT"||n==="TEXTAREA"||t.isContentEditable;!searchVisible&&!s&&(e.preventDefault(),displaySearch())}e.key=="Escape"&&hideSearch(),e.key=="ArrowDown"&&searchVisible&&hasResults&&(e.preventDefault(),document.activeElement==input?first.focus():document.activeElement==last?last.focus():document.activeElement.parentElement.nextSibling.firstElementChild.focus()),e.key=="ArrowUp"&&searchVisible&&hasResults&&(e.preventDefault(),document.activeElement==input?input.focus():document.activeElement==first?input.focus():document.activeElement.parentElement.previousSibling.firstElementChild.focus()),e.key=="Enter"&&searchVisible&&hasResults&&(e.preventDefault(),document.activeElement==input?first.focus():document.activeElement.click())}),input.onkeyup=function(){executeQuery(this.value)};function displaySearch(){indexed||buildIndex(),searchVisible||(document.body.style.overflow="hidden",wrapper.style.visibility="visible",input.focus(),searchVisible=!0)}function hideSearch(){searchVisible&&(document.body.style.overflow="visible",wrapper.style.visibility="hidden",input.value="",output.innerHTML="",document.activeElement.blur(),searchVisible=!1)}function fetchJSON(e,t){var n=new XMLHttpRequest;n.onreadystatechange=function(){if(n.readyState===4&&n.status===200){var e=JSON.parse(n.responseText);t&&t(e)}},n.open("GET",e),n.send()}function buildIndex(){var e=wrapper.getAttribute("data-url"),e=e.replace(/\/?$/,"/");fetchJSON(e+"index.json",function(e){var t={shouldSort:!0,ignoreLocation:!0,threshold:0,includeMatches:!0,keys:[{name:"title",weight:.8},{name:"section",weight:.2},{name:"summary",weight:.6},{name:"content",weight:.4}]};fuse=new Fuse(e,t),indexed=!0})}function executeQuery(e){let n=fuse.search(e),t="";n.length>0?(n.forEach(function(e){var o,i,a=e.item.summary,s=document.createElement("div");s.innerHTML=a,e.item.summary=s.textContent||s.innerText||"",o=e.item.externalUrl?e.item.title+''+e.item.externalUrl+" ":e.item.title,i=e.item.externalUrl?'target="_blank" rel="noopener" href="'+e.item.externalUrl+'"':'href="'+e.item.permalink+'"',t=t+`
+
+
+
+ ${o}
+
+
${e.item.section}· ${e.item.date?e.item.date:""}
+
${e.item.summary}
+
+ →
+ ←
+
+ `}),hasResults=!0):(t="",hasResults=!1),output.innerHTML=t,n.length>0&&(first=output.firstChild.firstElementChild,last=output.lastChild.firstElementChild)}scriptBundle=document.getElementById("script-bundle"),copyText=scriptBundle?.getAttribute("data-copy")||"Copy",copiedText=scriptBundle?.getAttribute("data-copied")||"Copied";function createCopyButton(e){const t=document.createElement("button");t.className="copy-button",t.type="button",t.ariaLabel=copyText,t.innerText=copyText,t.addEventListener("click",()=>copyCodeToClipboard(t,e)),e.insertBefore(t,e.firstChild)}async function copyCodeToClipboard(e,t){const n=getCodeText(t);function s(e,t){const n=document.createElement("textArea");n.contentEditable="true",n.readOnly="false",n.className="copy-textarea",n.value=e,t.insertBefore(n,t.firstChild);const s=document.createRange();s.selectNodeContents(n);const o=window.getSelection();o.removeAllRanges(),o.addRange(s),n.focus(),n.setSelectionRange(0,999999),document.execCommand("copy"),t.removeChild(n)}try{result=await navigator.permissions.query({name:"clipboard-write"}),result.state=="granted"||result.state=="prompt"?await navigator.clipboard.writeText(n):s(n,t)}catch{s(n,t)}finally{e.blur(),e.innerText=copiedText,setTimeout(function(){e.innerText=copyText},2e3)}}function getCodeText(e){const t=e.querySelector(".highlight");if(!t)return"";const n=t.querySelector("code"),s=n?.querySelectorAll(".cl"),o=t?.querySelector(".lntable .lntd:last-child code");if(!n)return"";if(s.length>0){const e=Array.from(s).map(e=>e.textContent.replace(/\n$/,""));return e.join(`
+`)}return o?o.textContent.trim():n.textContent.trim()}window.addEventListener("DOMContentLoaded",e=>{document.querySelectorAll(".highlight-wrapper").forEach(e=>createCopyButton(e))}),document.getElementById("katex-render")&&document.getElementById("katex-render").addEventListener("load",()=>{renderMathInElement(document.body)}),function(){"use strict";var e=[];window.addEventListener("beforeprint",function(){for(var n=document.querySelectorAll("details:not([open])"),t=0;t{let t=atob(e.getAttribute("data-email"));const s=e.getAttribute("data-subject");let n=t.startsWith("mailto:")?t:"mailto:"+t;s&&(n+=(n.includes("?")?"&":"?")+"subject="+encodeURIComponent(s)),e.href=n})}()
\ No newline at end of file
diff --git a/public/me.jpg b/public/me.jpg
new file mode 100644
index 0000000..fe9fc3e
Binary files /dev/null and b/public/me.jpg differ
diff --git a/public/page/1/index.html b/public/page/1/index.html
index de6695d..6c63e57 100644
--- a/public/page/1/index.html
+++ b/public/page/1/index.html
@@ -1,5 +1,5 @@
-
+
http://localhost:1313/
diff --git a/public/projects/garmin-eink/featured_hu_6894c7b80e47f02f.jpg b/public/projects/garmin-eink/featured_hu_6894c7b80e47f02f.jpg
new file mode 100644
index 0000000..826bba1
Binary files /dev/null and b/public/projects/garmin-eink/featured_hu_6894c7b80e47f02f.jpg differ
diff --git a/public/projects/garmin-eink/index.html b/public/projects/garmin-eink/index.html
index 1eb040c..233012c 100644
--- a/public/projects/garmin-eink/index.html
+++ b/public/projects/garmin-eink/index.html
@@ -1,13 +1,13 @@
-
+
@@ -43,7 +43,7 @@
-
+
@@ -95,8 +95,8 @@
+ href="/css/main.bundle.min.9ad45a110b860f64037f0ac4bcec699ac86f9d98a9b33e37551c11ad228f0505a2d41b9e6606a0536060efe4034905ed57b1c3153a94af326c0eb0b92a05642e.css"
+ integrity="sha512-mtRaEQuGD2QDfwrEvOxpmshvnZipsz43VRwRrSKPBQWi1BueZgagU2Bg7+QDSQXtV7HDFTqUrzJsDrC5KgVkLg==">
@@ -123,6 +123,8 @@
+
+
@@ -133,8 +135,8 @@
defer
type="text/javascript"
id="script-bundle"
- src="/js/main.bundle.min.b61ad3f6e0119d2611a72f3892ca8f75eb1da42ac1f74dafaf32e617ccb970be4b278131f9ad9f2eff9d4bd23e552e7881e2c821970c4bf8f47a2467bca1c933.js"
- integrity="sha512-thrT9uARnSYRpy84ksqPdesdpCrB902vrzLmF8y5cL5LJ4Ex+a2fLv+dS9I+VS54geLIIZcMS/j0eiRnvKHJMw=="
+ src="/js/main.bundle.min.ddce0729419700936e0c03ec6f8766f25d6304e689ec0291bf18dfe90cf581a8b4d2f0136eae2dc6657f37ba9a194c38242716ed05cb312eb90715b367403743.js"
+ integrity="sha512-3c4HKUGXAJNuDAPsb4dm8l1jBOaJ7AKRvxjf6Qz1gai00vATbq4txmV/N7qaGUw4JCcW7QXLMS65BxWzZ0A3Qw=="
data-copy="Copy"
data-copied="Copied">
@@ -204,7 +206,7 @@
"name": "Garmin Eink",
"headline": "Garmin Eink",
- "inLanguage": "en-gb",
+ "inLanguage": "en",
"url" : "http://localhost:1313/projects/garmin-eink/",
"author" : {
"@type": "Person",
@@ -269,6 +271,9 @@
+
+
+
Ash Marlow
@@ -285,12 +290,17 @@
href="/about/"
class="flex items-center bf-icon-color-hover"
- aria-label="CV & About"
- title="">
+ aria-label="About"
+ title="Curriculum Vitae">
+
+
+
+
+
- CV & About
+ About
@@ -304,7 +314,12 @@
class="flex items-center bf-icon-color-hover"
aria-label="Blog"
- title="">
+ title="Blogs">
+
+
+
+
+
@@ -318,17 +333,13 @@
-
- Projects
-
-
@@ -429,12 +440,17 @@
-
- CV & About
+
+
+
+
+
+
+ About
@@ -450,7 +466,12 @@
class="flex items-center gap-4 group bf-icon-color-hover text-neutral-700 dark:text-neutral-200">
-
+
+
+
+
+
+
Blog
@@ -462,13 +483,13 @@
- Projects
+
@@ -545,12 +566,8 @@
-
-
-
-
@@ -567,7 +584,7 @@
-
February 20, 2026 · 482 words · 3 mins
+
20 February 2026
@@ -682,7 +699,7 @@
In VS Code I installed platform IO and connected my ESP32. The code was written to connect to wifi, grab the data from the web server and display it to the eink. I gave it a title and a progress bar with percentage to clearly show how much I have completed. I also added a Last Updated time stamp and logic to put the ESP to deep sleep and only update each morning after my typical workout time slot.
-
-
I later decided it made more sense to show todays date at the botton my the page, making it double as a basic daily calender.
One of the greatest challenges was my desicion to include an image. An easier option would have been to buy an ESP32 with a micro SD card slot to give me an easier way of storing the image. Wanted to make this work without buying anything new I decided to stream the image from my Caddy server directly ro the display. With some AI magic I had a bash script that would convert any image I gave it to a resized monochrome bitmap suitable for the basic eink display. The great thing about using this approach is it makes changing the image for a different future challenge much easier.
@@ -715,7 +731,7 @@
Wrap up your project here. What would you do differently next time? This provides that “closing” feel for a future employer.
-
-
@@ -760,7 +775,7 @@
- February 20, 2026
+ 20 February 2026
@@ -776,7 +791,7 @@
- March 13, 2026
+ 13 March 2026
@@ -816,6 +831,29 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/projects/garmin-eink/index.xml b/public/projects/garmin-eink/index.xml
index fbe3739..bf24d36 100644
--- a/public/projects/garmin-eink/index.xml
+++ b/public/projects/garmin-eink/index.xml
@@ -5,7 +5,7 @@
http://localhost:1313/projects/garmin-eink/
Recent content in Garmin Eink on Ash Marlow
Hugo -- gohugo.io
-
en-gb
+
en
© 2026
diff --git a/public/projects/index.html b/public/projects/index.html
index 74a21a0..93a4dda 100644
--- a/public/projects/index.html
+++ b/public/projects/index.html
@@ -1,13 +1,13 @@
-
+
@@ -38,7 +38,7 @@
-
+
@@ -88,8 +88,8 @@
+ href="/css/main.bundle.min.9ad45a110b860f64037f0ac4bcec699ac86f9d98a9b33e37551c11ad228f0505a2d41b9e6606a0536060efe4034905ed57b1c3153a94af326c0eb0b92a05642e.css"
+ integrity="sha512-mtRaEQuGD2QDfwrEvOxpmshvnZipsz43VRwRrSKPBQWi1BueZgagU2Bg7+QDSQXtV7HDFTqUrzJsDrC5KgVkLg==">
@@ -116,6 +116,8 @@
+
+
@@ -126,8 +128,8 @@
defer
type="text/javascript"
id="script-bundle"
- src="/js/main.bundle.min.b61ad3f6e0119d2611a72f3892ca8f75eb1da42ac1f74dafaf32e617ccb970be4b278131f9ad9f2eff9d4bd23e552e7881e2c821970c4bf8f47a2467bca1c933.js"
- integrity="sha512-thrT9uARnSYRpy84ksqPdesdpCrB902vrzLmF8y5cL5LJ4Ex+a2fLv+dS9I+VS54geLIIZcMS/j0eiRnvKHJMw=="
+ src="/js/main.bundle.min.ddce0729419700936e0c03ec6f8766f25d6304e689ec0291bf18dfe90cf581a8b4d2f0136eae2dc6657f37ba9a194c38242716ed05cb312eb90715b367403743.js"
+ integrity="sha512-3c4HKUGXAJNuDAPsb4dm8l1jBOaJ7AKRvxjf6Qz1gai00vATbq4txmV/N7qaGUw4JCcW7QXLMS65BxWzZ0A3Qw=="
data-copy="Copy"
data-copied="Copied">
@@ -197,7 +199,7 @@
"name": "Projects",
"headline": "Projects",
- "inLanguage": "en-gb",
+ "inLanguage": "en",
"url" : "http://localhost:1313/projects/",
"author" : {
"@type": "Person",
@@ -262,6 +264,9 @@
+
+
+
Ash Marlow
@@ -278,12 +283,17 @@
href="/about/"
class="flex items-center bf-icon-color-hover"
- aria-label="CV & About"
- title="">
+ aria-label="About"
+ title="Curriculum Vitae">
+
+
+
+
+
- CV & About
+ About
@@ -297,7 +307,12 @@
class="flex items-center bf-icon-color-hover"
aria-label="Blog"
- title="">
+ title="Blogs">
+
+
+
+
+
@@ -311,17 +326,13 @@
-
- Projects
-
-
@@ -422,12 +433,17 @@
-
- CV & About
+
+
+
+
+
+
+ About
@@ -443,7 +459,12 @@
class="flex items-center gap-4 group bf-icon-color-hover text-neutral-700 dark:text-neutral-200">
-
+
+
+
+
+
+
Blog
@@ -455,13 +476,13 @@
- Projects
+
@@ -626,7 +647,7 @@
-
March 13, 2026 · 437 words · 3 mins
+
13 March 2026
@@ -775,7 +792,7 @@
-
February 20, 2026 · 482 words · 3 mins
+
20 February 2026
@@ -924,7 +937,7 @@
-
February 20, 2026 · 86 words · 1 min
+
20 February 2026
@@ -1052,6 +1061,29 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/projects/index.xml b/public/projects/index.xml
index ccd1ded..83e4787 100644
--- a/public/projects/index.xml
+++ b/public/projects/index.xml
@@ -5,7 +5,7 @@
http://localhost:1313/projects/
Recent content in Projects on Ash Marlow
Hugo -- gohugo.io
-
en-gb
+
en
© 2026
Fri, 13 Mar 2026 22:16:00 +0000
@@ -19,25 +19,5 @@
-
-
-
Garmin Eink
- http://localhost:1313/projects/garmin-eink/
- Fri, 20 Feb 2026 15:42:06 +0000
-
- http://localhost:1313/projects/garmin-eink/
- Using an Eink display with an ESP32 to track and motivate me for a virtual running challenge
-
-
-
-
-
-
Smart Train
- http://localhost:1313/projects/smart-train/
- Fri, 20 Feb 2026 12:27:11 +0000
-
- http://localhost:1313/projects/smart-train/
- EVERYTHING MUST BE SMART! I take an old Hornby train and make it controllable from Home Assistant
-
-
-
diff --git a/public/projects/page/1/index.html b/public/projects/page/1/index.html
index 2f6cc03..fe46de4 100644
--- a/public/projects/page/1/index.html
+++ b/public/projects/page/1/index.html
@@ -1,5 +1,5 @@
-
+
http://localhost:1313/projects/
diff --git a/public/projects/smart-train/featured_hu_57641c76690e886f.png b/public/projects/smart-train/featured_hu_57641c76690e886f.png
new file mode 100644
index 0000000..80284bc
Binary files /dev/null and b/public/projects/smart-train/featured_hu_57641c76690e886f.png differ
diff --git a/public/projects/smart-train/index.html b/public/projects/smart-train/index.html
index 74277c0..a77c238 100644
--- a/public/projects/smart-train/index.html
+++ b/public/projects/smart-train/index.html
@@ -1,13 +1,13 @@
-
+
@@ -43,7 +43,7 @@
-
+
@@ -95,8 +95,8 @@
+ href="/css/main.bundle.min.9ad45a110b860f64037f0ac4bcec699ac86f9d98a9b33e37551c11ad228f0505a2d41b9e6606a0536060efe4034905ed57b1c3153a94af326c0eb0b92a05642e.css"
+ integrity="sha512-mtRaEQuGD2QDfwrEvOxpmshvnZipsz43VRwRrSKPBQWi1BueZgagU2Bg7+QDSQXtV7HDFTqUrzJsDrC5KgVkLg==">
@@ -123,6 +123,8 @@
+
+
@@ -133,8 +135,8 @@
defer
type="text/javascript"
id="script-bundle"
- src="/js/main.bundle.min.b61ad3f6e0119d2611a72f3892ca8f75eb1da42ac1f74dafaf32e617ccb970be4b278131f9ad9f2eff9d4bd23e552e7881e2c821970c4bf8f47a2467bca1c933.js"
- integrity="sha512-thrT9uARnSYRpy84ksqPdesdpCrB902vrzLmF8y5cL5LJ4Ex+a2fLv+dS9I+VS54geLIIZcMS/j0eiRnvKHJMw=="
+ src="/js/main.bundle.min.ddce0729419700936e0c03ec6f8766f25d6304e689ec0291bf18dfe90cf581a8b4d2f0136eae2dc6657f37ba9a194c38242716ed05cb312eb90715b367403743.js"
+ integrity="sha512-3c4HKUGXAJNuDAPsb4dm8l1jBOaJ7AKRvxjf6Qz1gai00vATbq4txmV/N7qaGUw4JCcW7QXLMS65BxWzZ0A3Qw=="
data-copy="Copy"
data-copied="Copied">
@@ -204,7 +206,7 @@
"name": "Smart Train",
"headline": "Smart Train",
"description": "EVERYTHING MUST BE SMART! I take an old Hornby train and make it controllable from Home Assistant",
- "inLanguage": "en-gb",
+ "inLanguage": "en",
"url" : "http://localhost:1313/projects/smart-train/",
"author" : {
"@type": "Person",
@@ -269,6 +271,9 @@
+
+
+
Ash Marlow
@@ -285,12 +290,17 @@
href="/about/"
class="flex items-center bf-icon-color-hover"
- aria-label="CV & About"
- title="">
+ aria-label="About"
+ title="Curriculum Vitae">
+
+
+
+
+
- CV & About
+ About
@@ -304,7 +314,12 @@
class="flex items-center bf-icon-color-hover"
aria-label="Blog"
- title="">
+ title="Blogs">
+
+
+
+
+
@@ -318,17 +333,13 @@
-
- Projects
-
-
@@ -429,12 +440,17 @@
-
- CV & About
+
+
+
+
+
+
+ About
@@ -450,7 +466,12 @@
class="flex items-center gap-4 group bf-icon-color-hover text-neutral-700 dark:text-neutral-200">
-
+
+
+
+
+
+
Blog
@@ -462,13 +483,13 @@
- Projects
+
@@ -545,12 +566,8 @@
-
-
-
-
@@ -567,7 +584,7 @@
-
February 20, 2026 · 86 words · 1 min
+
20 February 2026
@@ -670,7 +687,7 @@
This is where you write your main paragraphs. You can drop images anywhere using the standard syntax. Thanks to the style block above, they will automatically stay at 50% width.
-
-
🏁 Summary & Lessons Learned
@@ -730,7 +746,7 @@
- February 20, 2026
+ 20 February 2026
@@ -770,6 +786,29 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/projects/smart-train/index.xml b/public/projects/smart-train/index.xml
index c4d1739..35b96e7 100644
--- a/public/projects/smart-train/index.xml
+++ b/public/projects/smart-train/index.xml
@@ -5,7 +5,7 @@
http://localhost:1313/projects/smart-train/
Recent content in Smart Train on Ash Marlow
Hugo -- gohugo.io
-
en-gb
+
en
© 2026
diff --git a/public/projects/solar-cells/featured_hu_285ba441a94d881f.jpg b/public/projects/solar-cells/featured_hu_285ba441a94d881f.jpg
new file mode 100644
index 0000000..396b31f
Binary files /dev/null and b/public/projects/solar-cells/featured_hu_285ba441a94d881f.jpg differ
diff --git a/public/projects/solar-cells/index.html b/public/projects/solar-cells/index.html
index e2edc1c..c08dc91 100644
--- a/public/projects/solar-cells/index.html
+++ b/public/projects/solar-cells/index.html
@@ -1,13 +1,13 @@
-
+
@@ -43,7 +43,7 @@
-
+
@@ -95,8 +95,8 @@
+ href="/css/main.bundle.min.9ad45a110b860f64037f0ac4bcec699ac86f9d98a9b33e37551c11ad228f0505a2d41b9e6606a0536060efe4034905ed57b1c3153a94af326c0eb0b92a05642e.css"
+ integrity="sha512-mtRaEQuGD2QDfwrEvOxpmshvnZipsz43VRwRrSKPBQWi1BueZgagU2Bg7+QDSQXtV7HDFTqUrzJsDrC5KgVkLg==">
@@ -123,6 +123,8 @@
+
+
@@ -133,8 +135,8 @@
defer
type="text/javascript"
id="script-bundle"
- src="/js/main.bundle.min.b61ad3f6e0119d2611a72f3892ca8f75eb1da42ac1f74dafaf32e617ccb970be4b278131f9ad9f2eff9d4bd23e552e7881e2c821970c4bf8f47a2467bca1c933.js"
- integrity="sha512-thrT9uARnSYRpy84ksqPdesdpCrB902vrzLmF8y5cL5LJ4Ex+a2fLv+dS9I+VS54geLIIZcMS/j0eiRnvKHJMw=="
+ src="/js/main.bundle.min.ddce0729419700936e0c03ec6f8766f25d6304e689ec0291bf18dfe90cf581a8b4d2f0136eae2dc6657f37ba9a194c38242716ed05cb312eb90715b367403743.js"
+ integrity="sha512-3c4HKUGXAJNuDAPsb4dm8l1jBOaJ7AKRvxjf6Qz1gai00vATbq4txmV/N7qaGUw4JCcW7QXLMS65BxWzZ0A3Qw=="
data-copy="Copy"
data-copied="Copied">
@@ -204,7 +206,7 @@
"name": "Solar Cells",
"headline": "Solar Cells",
- "inLanguage": "en-gb",
+ "inLanguage": "en",
"url" : "http://localhost:1313/projects/solar-cells/",
"author" : {
"@type": "Person",
@@ -269,6 +271,9 @@
+
+
+
Ash Marlow
@@ -285,12 +290,17 @@
href="/about/"
class="flex items-center bf-icon-color-hover"
- aria-label="CV & About"
- title="">
+ aria-label="About"
+ title="Curriculum Vitae">
+
+
+
+
+
- CV & About
+ About
@@ -304,7 +314,12 @@
class="flex items-center bf-icon-color-hover"
aria-label="Blog"
- title="">
+ title="Blogs">
+
+
+
+
+
@@ -318,17 +333,13 @@
-
- Projects
-
-
@@ -429,12 +440,17 @@
-
- CV & About
+
+
+
+
+
+
+ About
@@ -450,7 +466,12 @@
class="flex items-center gap-4 group bf-icon-color-hover text-neutral-700 dark:text-neutral-200">
-
+
+
+
+
+
+
Blog
@@ -462,13 +483,13 @@
- Projects
+
@@ -545,12 +566,8 @@
-
-
-
-
@@ -567,7 +584,7 @@
-
March 13, 2026 · 437 words · 3 mins
+
13 March 2026
@@ -674,7 +691,7 @@ The motivation being the project was to investigate alternative methods for sola
A standard silicon cell was then tested to get an understanding of how much power could reasonably be harnessed from the light source and to give a benchmark to compare results against.
Initially the testing of cells was done using a separate voltmeter and ammeter to record the I-V curve created by the cell.
This was found to be very inefficient and was difficult to reliably repeat, so I setup a test circuit with an Arduino to record the result.
-
-
Extracting the Dyes
@@ -770,7 +786,7 @@ Finally a small amount of redox electrolyte solution is sandwiched between the T
- February 20, 2026
+ 20 February 2026
@@ -813,6 +829,29 @@ Finally a small amount of redox electrolyte solution is sandwiched between the T
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/projects/solar-cells/index.xml b/public/projects/solar-cells/index.xml
index afb97d3..82ae11b 100644
--- a/public/projects/solar-cells/index.xml
+++ b/public/projects/solar-cells/index.xml
@@ -5,7 +5,7 @@
http://localhost:1313/projects/solar-cells/
Recent content in Solar Cells on Ash Marlow
Hugo -- gohugo.io
-
en-gb
+
en
© 2026
diff --git a/public/robots.txt b/public/robots.txt
new file mode 100644
index 0000000..5759686
--- /dev/null
+++ b/public/robots.txt
@@ -0,0 +1,3 @@
+User-agent: *
+Disallow: /
+Sitemap: http://localhost:1313/sitemap.xml
diff --git a/public/series/index.html b/public/series/index.html
new file mode 100644
index 0000000..f5cc994
--- /dev/null
+++ b/public/series/index.html
@@ -0,0 +1,690 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
Series · Ash Marlow
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Ash Marlow
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/series/index.xml b/public/series/index.xml
new file mode 100644
index 0000000..0e78147
--- /dev/null
+++ b/public/series/index.xml
@@ -0,0 +1,13 @@
+
+
+
+ Series on Ash Marlow
+ http://localhost:1313/series/
+ Recent content in Series on Ash Marlow
+ Hugo -- gohugo.io
+ en
+ © 2026
+
+
+
+
diff --git a/public/sitemap.xml b/public/sitemap.xml
index 97cfec1..e6032c1 100644
--- a/public/sitemap.xml
+++ b/public/sitemap.xml
@@ -5,36 +5,54 @@
http://localhost:1313/blog/
2026-03-13T22:44:48+00:00
+ daily
+ 0.5
http://localhost:1313/
2026-03-13T22:44:48+00:00
+ daily
+ 0.5
http://localhost:1313/blog/retro-handhelds/
2026-03-13T22:44:48+00:00
+ daily
+ 0.5
http://localhost:1313/projects/
2026-03-13T22:16:00+00:00
+ daily
+ 0.5
http://localhost:1313/projects/solar-cells/
2026-03-13T22:16:00+00:00
+ daily
+ 0.5
http://localhost:1313/projects/garmin-eink/
2026-02-20T15:42:06+00:00
+ daily
+ 0.5
http://localhost:1313/projects/smart-train/
2026-02-20T12:27:11+00:00
+ daily
+ 0.5
http://localhost:1313/blog/hello-world/
2026-02-19T00:00:00+00:00
+ daily
+ 0.5
http://localhost:1313/about/
+ daily
+ 0.5
diff --git a/public/tags/electronics/index.html b/public/tags/electronics/index.html
index 64a0b7f..4fbb11b 100644
--- a/public/tags/electronics/index.html
+++ b/public/tags/electronics/index.html
@@ -1,13 +1,13 @@
-
+
@@ -38,7 +38,7 @@
-
+
@@ -88,8 +88,8 @@
+ href="/css/main.bundle.min.9ad45a110b860f64037f0ac4bcec699ac86f9d98a9b33e37551c11ad228f0505a2d41b9e6606a0536060efe4034905ed57b1c3153a94af326c0eb0b92a05642e.css"
+ integrity="sha512-mtRaEQuGD2QDfwrEvOxpmshvnZipsz43VRwRrSKPBQWi1BueZgagU2Bg7+QDSQXtV7HDFTqUrzJsDrC5KgVkLg==">
@@ -116,6 +116,8 @@
+
+
@@ -126,8 +128,8 @@
defer
type="text/javascript"
id="script-bundle"
- src="/js/main.bundle.min.b61ad3f6e0119d2611a72f3892ca8f75eb1da42ac1f74dafaf32e617ccb970be4b278131f9ad9f2eff9d4bd23e552e7881e2c821970c4bf8f47a2467bca1c933.js"
- integrity="sha512-thrT9uARnSYRpy84ksqPdesdpCrB902vrzLmF8y5cL5LJ4Ex+a2fLv+dS9I+VS54geLIIZcMS/j0eiRnvKHJMw=="
+ src="/js/main.bundle.min.ddce0729419700936e0c03ec6f8766f25d6304e689ec0291bf18dfe90cf581a8b4d2f0136eae2dc6657f37ba9a194c38242716ed05cb312eb90715b367403743.js"
+ integrity="sha512-3c4HKUGXAJNuDAPsb4dm8l1jBOaJ7AKRvxjf6Qz1gai00vATbq4txmV/N7qaGUw4JCcW7QXLMS65BxWzZ0A3Qw=="
data-copy="Copy"
data-copied="Copied">
@@ -197,7 +199,7 @@
"name": "Electronics",
"headline": "Electronics",
- "inLanguage": "en-gb",
+ "inLanguage": "en",
"url" : "http://localhost:1313/tags/electronics/",
"author" : {
"@type": "Person",
@@ -262,6 +264,9 @@
+
+
+
Ash Marlow
@@ -278,12 +283,17 @@
href="/about/"
class="flex items-center bf-icon-color-hover"
- aria-label="CV & About"
- title="">
+ aria-label="About"
+ title="Curriculum Vitae">
+
+
+
+
+
- CV & About
+ About
@@ -297,7 +307,12 @@
class="flex items-center bf-icon-color-hover"
aria-label="Blog"
- title="">
+ title="Blogs">
+
+
+
+
+
@@ -311,17 +326,13 @@
-
- Projects
-
-
@@ -422,12 +433,17 @@
-
- CV & About
+
+
+
+
+
+
+ About
@@ -443,7 +459,12 @@
class="flex items-center gap-4 group bf-icon-color-hover text-neutral-700 dark:text-neutral-200">
-
+
+
+
+
+
+
Blog
@@ -455,13 +476,13 @@
- Projects
+
@@ -607,7 +628,7 @@
-
March 13, 2026 · 437 words · 3 mins
+
13 March 2026
@@ -734,6 +751,29 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/tags/electronics/index.xml b/public/tags/electronics/index.xml
index 757682d..b10df10 100644
--- a/public/tags/electronics/index.xml
+++ b/public/tags/electronics/index.xml
@@ -5,7 +5,7 @@
http://localhost:1313/tags/electronics/
Recent content in Electronics on Ash Marlow
Hugo -- gohugo.io
-
en-gb
+
en
© 2026
Fri, 13 Mar 2026 22:16:00 +0000
diff --git a/public/tags/electronics/page/1/index.html b/public/tags/electronics/page/1/index.html
index 91d7b54..98d698c 100644
--- a/public/tags/electronics/page/1/index.html
+++ b/public/tags/electronics/page/1/index.html
@@ -1,5 +1,5 @@
-
+
http://localhost:1313/tags/electronics/
diff --git a/public/tags/esp32/index.html b/public/tags/esp32/index.html
index 76c3d8f..f54b49b 100644
--- a/public/tags/esp32/index.html
+++ b/public/tags/esp32/index.html
@@ -1,13 +1,13 @@
-
+
@@ -38,7 +38,7 @@
-
+
@@ -88,8 +88,8 @@
+ href="/css/main.bundle.min.9ad45a110b860f64037f0ac4bcec699ac86f9d98a9b33e37551c11ad228f0505a2d41b9e6606a0536060efe4034905ed57b1c3153a94af326c0eb0b92a05642e.css"
+ integrity="sha512-mtRaEQuGD2QDfwrEvOxpmshvnZipsz43VRwRrSKPBQWi1BueZgagU2Bg7+QDSQXtV7HDFTqUrzJsDrC5KgVkLg==">
@@ -116,6 +116,8 @@
+
+
@@ -126,8 +128,8 @@
defer
type="text/javascript"
id="script-bundle"
- src="/js/main.bundle.min.b61ad3f6e0119d2611a72f3892ca8f75eb1da42ac1f74dafaf32e617ccb970be4b278131f9ad9f2eff9d4bd23e552e7881e2c821970c4bf8f47a2467bca1c933.js"
- integrity="sha512-thrT9uARnSYRpy84ksqPdesdpCrB902vrzLmF8y5cL5LJ4Ex+a2fLv+dS9I+VS54geLIIZcMS/j0eiRnvKHJMw=="
+ src="/js/main.bundle.min.ddce0729419700936e0c03ec6f8766f25d6304e689ec0291bf18dfe90cf581a8b4d2f0136eae2dc6657f37ba9a194c38242716ed05cb312eb90715b367403743.js"
+ integrity="sha512-3c4HKUGXAJNuDAPsb4dm8l1jBOaJ7AKRvxjf6Qz1gai00vATbq4txmV/N7qaGUw4JCcW7QXLMS65BxWzZ0A3Qw=="
data-copy="Copy"
data-copied="Copied">
@@ -197,7 +199,7 @@
"name": "ESP32",
"headline": "ESP32",
- "inLanguage": "en-gb",
+ "inLanguage": "en",
"url" : "http://localhost:1313/tags/esp32/",
"author" : {
"@type": "Person",
@@ -262,6 +264,9 @@
+
+
+
Ash Marlow
@@ -278,12 +283,17 @@
href="/about/"
class="flex items-center bf-icon-color-hover"
- aria-label="CV & About"
- title="">
+ aria-label="About"
+ title="Curriculum Vitae">
+
+
+
+
+
- CV & About
+ About
@@ -297,7 +307,12 @@
class="flex items-center bf-icon-color-hover"
aria-label="Blog"
- title="">
+ title="Blogs">
+
+
+
+
+
@@ -311,17 +326,13 @@
-
- Projects
-
-
@@ -422,12 +433,17 @@
-
- CV & About
+
+
+
+
+
+
+ About
@@ -443,7 +459,12 @@
class="flex items-center gap-4 group bf-icon-color-hover text-neutral-700 dark:text-neutral-200">
-
+
+
+
+
+
+
Blog
@@ -455,13 +476,13 @@
- Projects
+
@@ -607,7 +628,7 @@
-
February 20, 2026 · 482 words · 3 mins
+
20 February 2026
@@ -756,7 +773,7 @@
-
February 20, 2026 · 86 words · 1 min
+
20 February 2026
@@ -883,6 +896,29 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/tags/esp32/index.xml b/public/tags/esp32/index.xml
index c32423c..fb84cd9 100644
--- a/public/tags/esp32/index.xml
+++ b/public/tags/esp32/index.xml
@@ -5,7 +5,7 @@
http://localhost:1313/tags/esp32/
Recent content in ESP32 on Ash Marlow
Hugo -- gohugo.io
-
en-gb
+
en
© 2026
Fri, 20 Feb 2026 15:42:06 +0000
diff --git a/public/tags/esp32/page/1/index.html b/public/tags/esp32/page/1/index.html
index 2171fdd..0b03a03 100644
--- a/public/tags/esp32/page/1/index.html
+++ b/public/tags/esp32/page/1/index.html
@@ -1,5 +1,5 @@
-
+
http://localhost:1313/tags/esp32/
diff --git a/public/tags/games/index.html b/public/tags/games/index.html
index 77ce981..5cef1be 100644
--- a/public/tags/games/index.html
+++ b/public/tags/games/index.html
@@ -1,13 +1,13 @@
-
+
@@ -38,7 +38,7 @@
-
+
@@ -88,8 +88,8 @@
+ href="/css/main.bundle.min.9ad45a110b860f64037f0ac4bcec699ac86f9d98a9b33e37551c11ad228f0505a2d41b9e6606a0536060efe4034905ed57b1c3153a94af326c0eb0b92a05642e.css"
+ integrity="sha512-mtRaEQuGD2QDfwrEvOxpmshvnZipsz43VRwRrSKPBQWi1BueZgagU2Bg7+QDSQXtV7HDFTqUrzJsDrC5KgVkLg==">
@@ -116,6 +116,8 @@
+
+
@@ -126,8 +128,8 @@
defer
type="text/javascript"
id="script-bundle"
- src="/js/main.bundle.min.b61ad3f6e0119d2611a72f3892ca8f75eb1da42ac1f74dafaf32e617ccb970be4b278131f9ad9f2eff9d4bd23e552e7881e2c821970c4bf8f47a2467bca1c933.js"
- integrity="sha512-thrT9uARnSYRpy84ksqPdesdpCrB902vrzLmF8y5cL5LJ4Ex+a2fLv+dS9I+VS54geLIIZcMS/j0eiRnvKHJMw=="
+ src="/js/main.bundle.min.ddce0729419700936e0c03ec6f8766f25d6304e689ec0291bf18dfe90cf581a8b4d2f0136eae2dc6657f37ba9a194c38242716ed05cb312eb90715b367403743.js"
+ integrity="sha512-3c4HKUGXAJNuDAPsb4dm8l1jBOaJ7AKRvxjf6Qz1gai00vATbq4txmV/N7qaGUw4JCcW7QXLMS65BxWzZ0A3Qw=="
data-copy="Copy"
data-copied="Copied">
@@ -197,7 +199,7 @@
"name": "Games",
"headline": "Games",
- "inLanguage": "en-gb",
+ "inLanguage": "en",
"url" : "http://localhost:1313/tags/games/",
"author" : {
"@type": "Person",
@@ -262,6 +264,9 @@
+
+
+
Ash Marlow
@@ -278,12 +283,17 @@
href="/about/"
class="flex items-center bf-icon-color-hover"
- aria-label="CV & About"
- title="">
+ aria-label="About"
+ title="Curriculum Vitae">
+
+
+
+
+
- CV & About
+ About
@@ -297,7 +307,12 @@
class="flex items-center bf-icon-color-hover"
aria-label="Blog"
- title="">
+ title="Blogs">
+
+
+
+
+
@@ -311,17 +326,13 @@
-
- Projects
-
-
@@ -422,12 +433,17 @@
-
- CV & About
+
+
+
+
+
+
+ About
@@ -443,7 +459,12 @@
class="flex items-center gap-4 group bf-icon-color-hover text-neutral-700 dark:text-neutral-200">
-
+
+
+
+
+
+
Blog
@@ -455,13 +476,13 @@
- Projects
+
@@ -607,7 +628,7 @@
-
March 13, 2026 · 677 words · 4 mins
+
13 March 2026
@@ -734,6 +751,29 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/tags/games/index.xml b/public/tags/games/index.xml
index 4df3372..7afd07b 100644
--- a/public/tags/games/index.xml
+++ b/public/tags/games/index.xml
@@ -5,7 +5,7 @@
http://localhost:1313/tags/games/
Recent content in Games on Ash Marlow
Hugo -- gohugo.io
-
en-gb
+
en
© 2026
Fri, 13 Mar 2026 22:44:48 +0000
diff --git a/public/tags/games/page/1/index.html b/public/tags/games/page/1/index.html
index 7a20adf..eab5870 100644
--- a/public/tags/games/page/1/index.html
+++ b/public/tags/games/page/1/index.html
@@ -1,5 +1,5 @@
-
+
http://localhost:1313/tags/games/
diff --git a/public/tags/index.html b/public/tags/index.html
index 65246c5..380f0cf 100644
--- a/public/tags/index.html
+++ b/public/tags/index.html
@@ -1,13 +1,13 @@
-
+
@@ -38,7 +38,7 @@
-
+
@@ -88,8 +88,8 @@
+ href="/css/main.bundle.min.9ad45a110b860f64037f0ac4bcec699ac86f9d98a9b33e37551c11ad228f0505a2d41b9e6606a0536060efe4034905ed57b1c3153a94af326c0eb0b92a05642e.css"
+ integrity="sha512-mtRaEQuGD2QDfwrEvOxpmshvnZipsz43VRwRrSKPBQWi1BueZgagU2Bg7+QDSQXtV7HDFTqUrzJsDrC5KgVkLg==">
@@ -116,6 +116,8 @@
+
+
@@ -126,8 +128,8 @@
defer
type="text/javascript"
id="script-bundle"
- src="/js/main.bundle.min.b61ad3f6e0119d2611a72f3892ca8f75eb1da42ac1f74dafaf32e617ccb970be4b278131f9ad9f2eff9d4bd23e552e7881e2c821970c4bf8f47a2467bca1c933.js"
- integrity="sha512-thrT9uARnSYRpy84ksqPdesdpCrB902vrzLmF8y5cL5LJ4Ex+a2fLv+dS9I+VS54geLIIZcMS/j0eiRnvKHJMw=="
+ src="/js/main.bundle.min.ddce0729419700936e0c03ec6f8766f25d6304e689ec0291bf18dfe90cf581a8b4d2f0136eae2dc6657f37ba9a194c38242716ed05cb312eb90715b367403743.js"
+ integrity="sha512-3c4HKUGXAJNuDAPsb4dm8l1jBOaJ7AKRvxjf6Qz1gai00vATbq4txmV/N7qaGUw4JCcW7QXLMS65BxWzZ0A3Qw=="
data-copy="Copy"
data-copied="Copied">
@@ -197,7 +199,7 @@
"name": "Tags",
"headline": "Tags",
- "inLanguage": "en-gb",
+ "inLanguage": "en",
"url" : "http://localhost:1313/tags/",
"author" : {
"@type": "Person",
@@ -262,6 +264,9 @@
+
+
+
Ash Marlow
@@ -278,12 +283,17 @@
href="/about/"
class="flex items-center bf-icon-color-hover"
- aria-label="CV & About"
- title="">
+ aria-label="About"
+ title="Curriculum Vitae">
+
+
+
+
+
- CV & About
+ About
@@ -297,7 +307,12 @@
class="flex items-center bf-icon-color-hover"
aria-label="Blog"
- title="">
+ title="Blogs">
+
+
+
+
+
@@ -311,17 +326,13 @@
-
- Projects
-
-
@@ -422,12 +433,17 @@
-
- CV & About
+
+
+
+
+
+
+ About
@@ -443,7 +459,12 @@
class="flex items-center gap-4 group bf-icon-color-hover text-neutral-700 dark:text-neutral-200">
-
+
+
+
+
+
+
Blog
@@ -455,13 +476,13 @@
- Projects
+
@@ -672,6 +693,29 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/tags/index.xml b/public/tags/index.xml
index ae5f92c..9087399 100644
--- a/public/tags/index.xml
+++ b/public/tags/index.xml
@@ -5,7 +5,7 @@
http://localhost:1313/tags/
Recent content in Tags on Ash Marlow
Hugo -- gohugo.io
-
en-gb
+
en
© 2026
Fri, 13 Mar 2026 22:44:48 +0000
diff --git a/public/tags/self-hosting/index.html b/public/tags/self-hosting/index.html
index 797a937..169f6fb 100644
--- a/public/tags/self-hosting/index.html
+++ b/public/tags/self-hosting/index.html
@@ -1,13 +1,13 @@
-
+
@@ -38,7 +38,7 @@
-
+
@@ -88,8 +88,8 @@
+ href="/css/main.bundle.min.9ad45a110b860f64037f0ac4bcec699ac86f9d98a9b33e37551c11ad228f0505a2d41b9e6606a0536060efe4034905ed57b1c3153a94af326c0eb0b92a05642e.css"
+ integrity="sha512-mtRaEQuGD2QDfwrEvOxpmshvnZipsz43VRwRrSKPBQWi1BueZgagU2Bg7+QDSQXtV7HDFTqUrzJsDrC5KgVkLg==">
@@ -116,6 +116,8 @@
+
+
@@ -126,8 +128,8 @@
defer
type="text/javascript"
id="script-bundle"
- src="/js/main.bundle.min.b61ad3f6e0119d2611a72f3892ca8f75eb1da42ac1f74dafaf32e617ccb970be4b278131f9ad9f2eff9d4bd23e552e7881e2c821970c4bf8f47a2467bca1c933.js"
- integrity="sha512-thrT9uARnSYRpy84ksqPdesdpCrB902vrzLmF8y5cL5LJ4Ex+a2fLv+dS9I+VS54geLIIZcMS/j0eiRnvKHJMw=="
+ src="/js/main.bundle.min.ddce0729419700936e0c03ec6f8766f25d6304e689ec0291bf18dfe90cf581a8b4d2f0136eae2dc6657f37ba9a194c38242716ed05cb312eb90715b367403743.js"
+ integrity="sha512-3c4HKUGXAJNuDAPsb4dm8l1jBOaJ7AKRvxjf6Qz1gai00vATbq4txmV/N7qaGUw4JCcW7QXLMS65BxWzZ0A3Qw=="
data-copy="Copy"
data-copied="Copied">
@@ -197,7 +199,7 @@
"name": "Self-Hosting",
"headline": "Self-Hosting",
- "inLanguage": "en-gb",
+ "inLanguage": "en",
"url" : "http://localhost:1313/tags/self-hosting/",
"author" : {
"@type": "Person",
@@ -262,6 +264,9 @@
+
+
+
Ash Marlow
@@ -278,12 +283,17 @@
href="/about/"
class="flex items-center bf-icon-color-hover"
- aria-label="CV & About"
- title="">
+ aria-label="About"
+ title="Curriculum Vitae">
+
+
+
+
+
- CV & About
+ About
@@ -297,7 +307,12 @@
class="flex items-center bf-icon-color-hover"
aria-label="Blog"
- title="">
+ title="Blogs">
+
+
+
+
+
@@ -311,17 +326,13 @@
-
- Projects
-
-
@@ -422,12 +433,17 @@
-
- CV & About
+
+
+
+
+
+
+ About
@@ -443,7 +459,12 @@
class="flex items-center gap-4 group bf-icon-color-hover text-neutral-700 dark:text-neutral-200">
-
+
+
+
+
+
+
Blog
@@ -455,13 +476,13 @@
- Projects
+
@@ -607,7 +628,7 @@
-
February 20, 2026 · 482 words · 3 mins
+
20 February 2026
@@ -734,6 +751,29 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/tags/self-hosting/index.xml b/public/tags/self-hosting/index.xml
index fa20d79..4835028 100644
--- a/public/tags/self-hosting/index.xml
+++ b/public/tags/self-hosting/index.xml
@@ -5,7 +5,7 @@
http://localhost:1313/tags/self-hosting/
Recent content in Self-Hosting on Ash Marlow
Hugo -- gohugo.io
-
en-gb
+
en
© 2026
Fri, 20 Feb 2026 15:42:06 +0000
diff --git a/public/tags/self-hosting/page/1/index.html b/public/tags/self-hosting/page/1/index.html
index 2eccf7c..9a6a84f 100644
--- a/public/tags/self-hosting/page/1/index.html
+++ b/public/tags/self-hosting/page/1/index.html
@@ -1,5 +1,5 @@
-
+
http://localhost:1313/tags/self-hosting/
diff --git a/public/tags/smart-home/index.html b/public/tags/smart-home/index.html
index e477e5c..ab409b7 100644
--- a/public/tags/smart-home/index.html
+++ b/public/tags/smart-home/index.html
@@ -1,13 +1,13 @@
-
+
@@ -38,7 +38,7 @@
-
+
@@ -88,8 +88,8 @@
+ href="/css/main.bundle.min.9ad45a110b860f64037f0ac4bcec699ac86f9d98a9b33e37551c11ad228f0505a2d41b9e6606a0536060efe4034905ed57b1c3153a94af326c0eb0b92a05642e.css"
+ integrity="sha512-mtRaEQuGD2QDfwrEvOxpmshvnZipsz43VRwRrSKPBQWi1BueZgagU2Bg7+QDSQXtV7HDFTqUrzJsDrC5KgVkLg==">
@@ -116,6 +116,8 @@
+
+
@@ -126,8 +128,8 @@
defer
type="text/javascript"
id="script-bundle"
- src="/js/main.bundle.min.b61ad3f6e0119d2611a72f3892ca8f75eb1da42ac1f74dafaf32e617ccb970be4b278131f9ad9f2eff9d4bd23e552e7881e2c821970c4bf8f47a2467bca1c933.js"
- integrity="sha512-thrT9uARnSYRpy84ksqPdesdpCrB902vrzLmF8y5cL5LJ4Ex+a2fLv+dS9I+VS54geLIIZcMS/j0eiRnvKHJMw=="
+ src="/js/main.bundle.min.ddce0729419700936e0c03ec6f8766f25d6304e689ec0291bf18dfe90cf581a8b4d2f0136eae2dc6657f37ba9a194c38242716ed05cb312eb90715b367403743.js"
+ integrity="sha512-3c4HKUGXAJNuDAPsb4dm8l1jBOaJ7AKRvxjf6Qz1gai00vATbq4txmV/N7qaGUw4JCcW7QXLMS65BxWzZ0A3Qw=="
data-copy="Copy"
data-copied="Copied">
@@ -197,7 +199,7 @@
"name": "Smart-Home",
"headline": "Smart-Home",
- "inLanguage": "en-gb",
+ "inLanguage": "en",
"url" : "http://localhost:1313/tags/smart-home/",
"author" : {
"@type": "Person",
@@ -262,6 +264,9 @@
+
+
+
Ash Marlow
@@ -278,12 +283,17 @@
href="/about/"
class="flex items-center bf-icon-color-hover"
- aria-label="CV & About"
- title="">
+ aria-label="About"
+ title="Curriculum Vitae">
+
+
+
+
+
- CV & About
+ About
@@ -297,7 +307,12 @@
class="flex items-center bf-icon-color-hover"
aria-label="Blog"
- title="">
+ title="Blogs">
+
+
+
+
+
@@ -311,17 +326,13 @@
-
- Projects
-
-
@@ -422,12 +433,17 @@
-
- CV & About
+
+
+
+
+
+
+ About
@@ -443,7 +459,12 @@
class="flex items-center gap-4 group bf-icon-color-hover text-neutral-700 dark:text-neutral-200">
-
+
+
+
+
+
+
Blog
@@ -455,13 +476,13 @@
- Projects
+
@@ -607,7 +628,7 @@
-
February 20, 2026 · 86 words · 1 min
+
20 February 2026
@@ -734,6 +751,29 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/tags/smart-home/index.xml b/public/tags/smart-home/index.xml
index 736242f..beb3da4 100644
--- a/public/tags/smart-home/index.xml
+++ b/public/tags/smart-home/index.xml
@@ -5,7 +5,7 @@
http://localhost:1313/tags/smart-home/
Recent content in Smart-Home on Ash Marlow
Hugo -- gohugo.io
-
en-gb
+
en
© 2026
Fri, 20 Feb 2026 12:27:11 +0000
diff --git a/public/tags/smart-home/page/1/index.html b/public/tags/smart-home/page/1/index.html
index 5e60757..bd77771 100644
--- a/public/tags/smart-home/page/1/index.html
+++ b/public/tags/smart-home/page/1/index.html
@@ -1,5 +1,5 @@
-
+
http://localhost:1313/tags/smart-home/
diff --git a/public/tags/university/index.html b/public/tags/university/index.html
index 6730fb3..3304437 100644
--- a/public/tags/university/index.html
+++ b/public/tags/university/index.html
@@ -1,13 +1,13 @@
-
+
@@ -38,7 +38,7 @@
-
+
@@ -88,8 +88,8 @@
+ href="/css/main.bundle.min.9ad45a110b860f64037f0ac4bcec699ac86f9d98a9b33e37551c11ad228f0505a2d41b9e6606a0536060efe4034905ed57b1c3153a94af326c0eb0b92a05642e.css"
+ integrity="sha512-mtRaEQuGD2QDfwrEvOxpmshvnZipsz43VRwRrSKPBQWi1BueZgagU2Bg7+QDSQXtV7HDFTqUrzJsDrC5KgVkLg==">
@@ -116,6 +116,8 @@
+
+
@@ -126,8 +128,8 @@
defer
type="text/javascript"
id="script-bundle"
- src="/js/main.bundle.min.b61ad3f6e0119d2611a72f3892ca8f75eb1da42ac1f74dafaf32e617ccb970be4b278131f9ad9f2eff9d4bd23e552e7881e2c821970c4bf8f47a2467bca1c933.js"
- integrity="sha512-thrT9uARnSYRpy84ksqPdesdpCrB902vrzLmF8y5cL5LJ4Ex+a2fLv+dS9I+VS54geLIIZcMS/j0eiRnvKHJMw=="
+ src="/js/main.bundle.min.ddce0729419700936e0c03ec6f8766f25d6304e689ec0291bf18dfe90cf581a8b4d2f0136eae2dc6657f37ba9a194c38242716ed05cb312eb90715b367403743.js"
+ integrity="sha512-3c4HKUGXAJNuDAPsb4dm8l1jBOaJ7AKRvxjf6Qz1gai00vATbq4txmV/N7qaGUw4JCcW7QXLMS65BxWzZ0A3Qw=="
data-copy="Copy"
data-copied="Copied">
@@ -197,7 +199,7 @@
"name": "University",
"headline": "University",
- "inLanguage": "en-gb",
+ "inLanguage": "en",
"url" : "http://localhost:1313/tags/university/",
"author" : {
"@type": "Person",
@@ -262,6 +264,9 @@
+
+
+
Ash Marlow
@@ -278,12 +283,17 @@
href="/about/"
class="flex items-center bf-icon-color-hover"
- aria-label="CV & About"
- title="">
+ aria-label="About"
+ title="Curriculum Vitae">
+
+
+
+
+
- CV & About
+ About
@@ -297,7 +307,12 @@
class="flex items-center bf-icon-color-hover"
aria-label="Blog"
- title="">
+ title="Blogs">
+
+
+
+
+
@@ -311,17 +326,13 @@
-
- Projects
-
-
@@ -422,12 +433,17 @@
-
- CV & About
+
+
+
+
+
+
+ About
@@ -443,7 +459,12 @@
class="flex items-center gap-4 group bf-icon-color-hover text-neutral-700 dark:text-neutral-200">
-
+
+
+
+
+
+
Blog
@@ -455,13 +476,13 @@
- Projects
+
@@ -607,7 +628,7 @@
-
March 13, 2026 · 437 words · 3 mins
+
13 March 2026
@@ -734,6 +751,29 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/tags/university/index.xml b/public/tags/university/index.xml
index 1f57d2a..e8d5cfe 100644
--- a/public/tags/university/index.xml
+++ b/public/tags/university/index.xml
@@ -5,7 +5,7 @@
http://localhost:1313/tags/university/
Recent content in University on Ash Marlow
Hugo -- gohugo.io
-
en-gb
+
en
© 2026
Fri, 13 Mar 2026 22:16:00 +0000
diff --git a/public/tags/university/page/1/index.html b/public/tags/university/page/1/index.html
index 3606aed..c473135 100644
--- a/public/tags/university/page/1/index.html
+++ b/public/tags/university/page/1/index.html
@@ -1,5 +1,5 @@
-
+
http://localhost:1313/tags/university/
diff --git a/resources/_gen/images/blog/garmin-eink/featured_hu_6894c7b80e47f02f.jpg b/resources/_gen/images/blog/garmin-eink/featured_hu_6894c7b80e47f02f.jpg
new file mode 100644
index 0000000..826bba1
Binary files /dev/null and b/resources/_gen/images/blog/garmin-eink/featured_hu_6894c7b80e47f02f.jpg differ
diff --git a/resources/_gen/images/blog/retro-handhelds/featured_hu_f32a62da33cdcc7f.gif b/resources/_gen/images/blog/retro-handhelds/featured_hu_f32a62da33cdcc7f.gif
new file mode 100644
index 0000000..72e93c1
Binary files /dev/null and b/resources/_gen/images/blog/retro-handhelds/featured_hu_f32a62da33cdcc7f.gif differ
diff --git a/resources/_gen/images/blog/smart-train/featured_hu_57641c76690e886f.png b/resources/_gen/images/blog/smart-train/featured_hu_57641c76690e886f.png
new file mode 100644
index 0000000..80284bc
Binary files /dev/null and b/resources/_gen/images/blog/smart-train/featured_hu_57641c76690e886f.png differ
diff --git a/resources/_gen/images/blog/solar-cells/featured_hu_285ba441a94d881f.jpg b/resources/_gen/images/blog/solar-cells/featured_hu_285ba441a94d881f.jpg
new file mode 100644
index 0000000..396b31f
Binary files /dev/null and b/resources/_gen/images/blog/solar-cells/featured_hu_285ba441a94d881f.jpg differ
diff --git a/resources/_gen/images/projects/garmin-eink/featured_hu_6894c7b80e47f02f.jpg b/resources/_gen/images/projects/garmin-eink/featured_hu_6894c7b80e47f02f.jpg
new file mode 100644
index 0000000..826bba1
Binary files /dev/null and b/resources/_gen/images/projects/garmin-eink/featured_hu_6894c7b80e47f02f.jpg differ
diff --git a/resources/_gen/images/projects/smart-train/featured_hu_57641c76690e886f.png b/resources/_gen/images/projects/smart-train/featured_hu_57641c76690e886f.png
new file mode 100644
index 0000000..80284bc
Binary files /dev/null and b/resources/_gen/images/projects/smart-train/featured_hu_57641c76690e886f.png differ
diff --git a/resources/_gen/images/projects/solar-cells/featured_hu_285ba441a94d881f.jpg b/resources/_gen/images/projects/solar-cells/featured_hu_285ba441a94d881f.jpg
new file mode 100644
index 0000000..396b31f
Binary files /dev/null and b/resources/_gen/images/projects/solar-cells/featured_hu_285ba441a94d881f.jpg differ
diff --git a/themes/hugo-profile b/themes/hugo-profile
deleted file mode 160000
index a052f0b..0000000
--- a/themes/hugo-profile
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit a052f0bbada998ffc650cf2fa5c073e3cd5b4247