@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-wght-normal.DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-wght-normal.CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-wght-normal.CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-wght-normal.DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@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-outline-style:solid}}}@layer theme{:root,:host{--font-sans:"Inter Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-canvas:#fafaf9;--color-canvas-dark:#101010;--color-surface:#f4f4f2;--color-surface-dark:#181818;--color-ink:#171717;--color-ink-dark:#f5f5f5;--color-body:#404040;--color-body-dark:#b5b5b5;--color-muted:#737373;--color-muted-dark:#8f8f8f;--color-line:#e7e5e4;--color-line-dark:#262626;--color-line-strong:#d6d3d1;--color-line-strong-dark:#404040}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration: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{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}: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)){::placeholder{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{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-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]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.static{position:static}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:decimal}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:disc}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}.prose :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}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em;font-style:italic;font-weight:500}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows), 0 3px 0 var(--tw-prose-kbd-shadows);padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;border-radius:.3125rem;padding-inline-start:.375em;font-family:inherit;font-size:.875em;font-weight:500}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);padding-top:.857143em;padding-inline-end:1.14286em;padding-bottom:.857143em;border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding-inline-start:1.14286em;font-size:.875em;font-weight:400;line-height:1.71429;overflow-x:auto}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;background-color:#0000;border-width:0;border-radius:0;padding:0}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){table-layout:auto;width:100%;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);vertical-align:bottom;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em;font-weight:600}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);margin-top:.857143em;font-size:.875em;line-height:1.42857}.prose{--tw-prose-body:oklch(37.3% .034 259.733);--tw-prose-headings:oklch(21% .034 264.665);--tw-prose-lead:oklch(44.6% .03 256.802);--tw-prose-links:oklch(21% .034 264.665);--tw-prose-bold:oklch(21% .034 264.665);--tw-prose-counters:oklch(55.1% .027 264.364);--tw-prose-bullets:oklch(87.2% .01 258.338);--tw-prose-hr:oklch(92.8% .006 264.531);--tw-prose-quotes:oklch(21% .034 264.665);--tw-prose-quote-borders:oklch(92.8% .006 264.531);--tw-prose-captions:oklch(55.1% .027 264.364);--tw-prose-kbd:oklch(21% .034 264.665);--tw-prose-kbd-shadows:oklab(21% -.00316127 -.0338527/.1);--tw-prose-code:oklch(21% .034 264.665);--tw-prose-pre-code:oklch(92.8% .006 264.531);--tw-prose-pre-bg:oklch(27.8% .033 256.848);--tw-prose-th-borders:oklch(87.2% .01 258.338);--tw-prose-td-borders:oklch(92.8% .006 264.531);--tw-prose-invert-body:oklch(87.2% .01 258.338);--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:oklch(70.7% .022 261.325);--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:oklch(70.7% .022 261.325);--tw-prose-invert-bullets:oklch(44.6% .03 256.802);--tw-prose-invert-hr:oklch(37.3% .034 259.733);--tw-prose-invert-quotes:oklch(96.7% .003 264.542);--tw-prose-invert-quote-borders:oklch(37.3% .034 259.733);--tw-prose-invert-captions:oklch(70.7% .022 261.325);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:#ffffff1a;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:oklch(87.2% .01 258.338);--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:oklch(44.6% .03 256.802);--tw-prose-invert-td-borders:oklch(37.3% .034 259.733);font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.571429em;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.mt-8{margin-top:calc(var(--spacing) * 8)}.grid{display:grid}.hidden{display:none}.inline{display:inline}.max-w-none{max-width:none}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.prose-neutral{--tw-prose-body:oklch(37.1% 0 none);--tw-prose-headings:oklch(20.5% 0 none);--tw-prose-lead:oklch(43.9% 0 none);--tw-prose-links:oklch(20.5% 0 none);--tw-prose-bold:oklch(20.5% 0 none);--tw-prose-counters:oklch(55.6% 0 none);--tw-prose-bullets:oklch(87% 0 none);--tw-prose-hr:oklch(92.2% 0 none);--tw-prose-quotes:oklch(20.5% 0 none);--tw-prose-quote-borders:oklch(92.2% 0 none);--tw-prose-captions:oklch(55.6% 0 none);--tw-prose-kbd:oklch(20.5% 0 none);--tw-prose-kbd-shadows:oklab(20.5% 0 0/.1);--tw-prose-code:oklch(20.5% 0 none);--tw-prose-pre-code:oklch(92.2% 0 none);--tw-prose-pre-bg:oklch(26.9% 0 none);--tw-prose-th-borders:oklch(87% 0 none);--tw-prose-td-borders:oklch(92.2% 0 none);--tw-prose-invert-body:oklch(87% 0 none);--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:oklch(70.8% 0 none);--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:oklch(70.8% 0 none);--tw-prose-invert-bullets:oklch(43.9% 0 none);--tw-prose-invert-hr:oklch(37.1% 0 none);--tw-prose-invert-quotes:oklch(97% 0 none);--tw-prose-invert-quote-borders:oklch(37.1% 0 none);--tw-prose-invert-captions:oklch(70.8% 0 none);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:#ffffff1a;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:oklch(87% 0 none);--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:oklch(43.9% 0 none);--tw-prose-invert-td-borders:oklch(37.1% 0 none)}}html[data-ui=minimal]{--ui-bg:var(--color-canvas);--ui-fg:var(--color-ink);--ui-body:var(--color-body);--ui-muted:var(--color-muted);--ui-surface:var(--color-surface);--ui-line:var(--color-line);--ui-line-strong:var(--color-line-strong);--ui-focus:var(--color-ink)}@media (prefers-color-scheme:dark){html[data-ui=minimal]{--ui-bg:var(--color-canvas-dark);--ui-fg:var(--color-ink-dark);--ui-body:var(--color-body-dark);--ui-muted:var(--color-muted-dark);--ui-surface:var(--color-surface-dark);--ui-line:var(--color-line-dark);--ui-line-strong:var(--color-line-strong-dark);--ui-focus:var(--color-ink-dark)}}html[data-ui=material]{--ui-bg:var(--md-sys-color-surface);--ui-fg:var(--md-sys-color-on-surface);--ui-body:var(--md-sys-color-on-surface-variant);--ui-muted:var(--md-sys-color-on-surface-variant);--ui-surface:var(--md-sys-color-surface-container);--ui-line:var(--md-sys-color-outline-variant);--ui-line-strong:var(--md-sys-color-outline);--ui-focus:var(--md-sys-color-primary)}html{background-color:var(--ui-bg);color-scheme:light dark}body{background-color:var(--ui-bg);color:var(--ui-fg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}:root[data-ui=minimal] .m3-only{display:none!important}:root a:focus-visible,:root button:focus-visible{outline:2px solid var(--ui-focus);outline-offset:2px}.page{width:100%;max-width:44rem;margin-inline:auto;padding:4rem 1.5rem}@media (width>=640px){.page{padding-block:6rem}}.head{align-items:center;gap:.75rem;display:flex}.avatar{flex-shrink:0}.avatar img{object-fit:contain;width:4rem;height:4rem}.identity{min-width:0}.name{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:500;overflow:hidden}.role{color:var(--ui-muted);text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.intro{color:var(--ui-body);gap:1rem;margin-top:2rem;font-size:15px;line-height:1.75rem;display:grid}@media (width>=640px){.intro{font-size:1rem}}.links{flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;margin-top:2rem;display:flex}.link{color:var(--ui-body);border-radius:.375rem;align-items:center;gap:.5rem;margin-block:-.25rem;padding-block:.25rem;font-size:15px;transition:color .15s;display:inline-flex}.link:hover{color:var(--ui-fg)}.link-icon{width:1rem;height:1rem;color:var(--ui-muted);flex-shrink:0;transition:color .15s}.link:hover .link-icon{color:currentColor}.link-handle{color:var(--ui-muted)}.section{margin-top:4rem}.section-title{font-size:15px;font-weight:500}.projects{gap:.75rem;margin-top:1rem;display:grid}@media (width>=640px){.projects{grid-template-columns:repeat(3,minmax(0,1fr))}}.card{border:1px solid var(--ui-line);border-radius:1rem;flex-direction:column;height:100%;padding:.5rem;transition:border-color .15s;display:flex}.card:hover{border-color:var(--ui-line-strong)}.card-media{aspect-ratio:5/4;background-color:var(--ui-surface);border-radius:.75rem;justify-content:center;align-items:center;display:flex}.card-icon{width:1.5rem;height:1.5rem;color:var(--ui-muted)}.card-body{padding:.5rem;flex-direction:column;flex:1;padding-top:.75rem;display:flex}.card-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.card-title{font-size:15px;font-weight:500}.card-arrow{width:1rem;height:1rem;color:var(--ui-muted);opacity:0;flex-shrink:0;transition:opacity .15s}.card:hover .card-arrow{opacity:1}.card-text{color:var(--ui-muted);margin-top:.25rem;font-size:.875rem;line-height:1.5rem}.tags{color:var(--ui-muted);margin-top:.75rem;font-size:.75rem}.tag{display:inline}.tag+.tag:before{content:" / "}.posts{gap:.25rem;margin-top:1rem;display:grid}.post{border-radius:.75rem;align-items:center;gap:.75rem;margin-inline:-.5rem;padding:.5rem;transition:background-color .15s;display:flex}.post:hover{background-color:var(--ui-surface)}.post-icon{border:1px solid var(--ui-line);width:2.5rem;height:2.5rem;color:var(--ui-muted);border-radius:.75rem;flex-shrink:0;justify-content:center;align-items:center;transition:border-color .15s;display:flex}.post:hover .post-icon{border-color:var(--ui-line-strong)}.post-icon svg{width:1rem;height:1rem}.post-body{min-width:0}.post-title{font-size:15px;font-weight:500;display:block}.post-meta{color:var(--ui-muted);font-size:.875rem;display:block}.post-arrow,.post-check{display:none}.stack{gap:.5rem;margin-top:1rem;font-size:15px;display:grid}.stack-row{flex-direction:column;gap:.125rem;display:flex}@media (width>=640px){.stack-row{flex-direction:row;gap:.75rem}}.stack-label{color:var(--ui-muted);flex-shrink:0}@media (width>=640px){.stack-label{width:7rem}}.stack-value{color:var(--ui-body)}.foot{color:var(--ui-muted);margin-top:5rem;font-size:.875rem}.switcher{z-index:65;border:1px solid var(--ui-line);background-color:var(--ui-bg);border-radius:999px;gap:.125rem;padding:.1875rem;display:inline-flex;position:fixed;top:1rem;right:1rem}@supports (color:color-mix(in lab, red, red)){.switcher{background-color:color-mix(in srgb, var(--ui-bg) 82%, transparent)}}.switcher{-webkit-backdrop-filter:blur(10px)}.switch-btn{height:1.75rem;color:var(--ui-muted);border-radius:999px;align-items:center;gap:.375rem;padding-inline:.625rem;font-size:.8125rem;font-weight:500;transition:background-color .15s,color .15s;display:inline-flex}.switch-btn:hover{color:var(--ui-fg)}.switch-btn[aria-pressed=true]{background-color:var(--ui-surface);color:var(--ui-fg)}.switch-icon{width:1rem;height:1rem}.back{color:var(--ui-muted);border-radius:.375rem;align-items:center;gap:.375rem;margin-block:-.25rem;padding-block:.25rem;font-size:.875rem;transition:color .15s;display:inline-flex}.back:hover{color:var(--ui-fg)}.back svg{width:1rem;height:1rem}.article-title{letter-spacing:-.025em;font-size:1.25rem;font-weight:500}.article-meta{color:var(--ui-muted);margin-top:.5rem;font-size:.875rem}html[data-ui=minimal] .prose{--tw-prose-body:var(--color-body);--tw-prose-headings:var(--color-ink);--tw-prose-lead:var(--color-body);--tw-prose-links:var(--color-ink);--tw-prose-bold:var(--color-ink);--tw-prose-counters:var(--color-muted);--tw-prose-bullets:var(--color-line-strong);--tw-prose-hr:var(--color-line);--tw-prose-quotes:var(--color-ink);--tw-prose-quote-borders:var(--color-line-strong);--tw-prose-captions:var(--color-muted);--tw-prose-code:var(--color-ink);--tw-prose-pre-code:var(--color-body);--tw-prose-pre-bg:var(--color-surface);--tw-prose-th-borders:var(--color-line-strong);--tw-prose-td-borders:var(--color-line)}@media (prefers-color-scheme:dark){html[data-ui=minimal] .prose{--tw-prose-body:var(--color-body-dark);--tw-prose-headings:var(--color-ink-dark);--tw-prose-lead:var(--color-body-dark);--tw-prose-links:var(--color-ink-dark);--tw-prose-bold:var(--color-ink-dark);--tw-prose-counters:var(--color-muted-dark);--tw-prose-bullets:var(--color-line-strong-dark);--tw-prose-hr:var(--color-line-dark);--tw-prose-quotes:var(--color-ink-dark);--tw-prose-quote-borders:var(--color-line-strong-dark);--tw-prose-captions:var(--color-muted-dark);--tw-prose-code:var(--color-ink-dark);--tw-prose-pre-code:var(--color-body-dark);--tw-prose-pre-bg:var(--color-surface-dark);--tw-prose-th-borders:var(--color-line-strong-dark);--tw-prose-td-borders:var(--color-line-dark)}}.prose :where(h1,h2,h3,h4){letter-spacing:-.025em;font-weight:500}.prose :where(a){-webkit-text-decoration-color:var(--ui-line-strong);-webkit-text-decoration-color:var(--ui-line-strong);text-decoration-color:var(--ui-line-strong);text-underline-offset:4px}.prose :where(a):hover{-webkit-text-decoration-color:var(--ui-fg);-webkit-text-decoration-color:var(--ui-fg);text-decoration-color:var(--ui-fg)}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}:root[data-ui=material]{--md-sys-color-primary:#8d4e2a;--md-sys-color-surface-tint:#8d4e2a;--md-sys-color-on-primary:#fff;--md-sys-color-primary-container:#ffdbca;--md-sys-color-on-primary-container:#703715;--md-sys-color-secondary:#765848;--md-sys-color-on-secondary:#fff;--md-sys-color-secondary-container:#ffdbca;--md-sys-color-on-secondary-container:#5c4032;--md-sys-color-tertiary:#646032;--md-sys-color-on-tertiary:#fff;--md-sys-color-tertiary-container:#ebe4aa;--md-sys-color-on-tertiary-container:#4c481c;--md-sys-color-error:#ba1a1a;--md-sys-color-on-error:#fff;--md-sys-color-error-container:#ffdad6;--md-sys-color-on-error-container:#93000a;--md-sys-color-background:#fff8f6;--md-sys-color-on-background:#221a15;--md-sys-color-surface:#fff8f6;--md-sys-color-on-surface:#221a15;--md-sys-color-surface-variant:#f4ded4;--md-sys-color-on-surface-variant:#52443d;--md-sys-color-outline:#85736b;--md-sys-color-outline-variant:#d7c2b9;--md-sys-color-shadow:#000;--md-sys-color-scrim:#000;--md-sys-color-inverse-surface:#382e2a;--md-sys-color-inverse-on-surface:#ffede6;--md-sys-color-inverse-primary:#ffb690;--md-sys-color-primary-fixed:#ffdbca;--md-sys-color-on-primary-fixed:#341100;--md-sys-color-primary-fixed-dim:#ffb690;--md-sys-color-on-primary-fixed-variant:#703715;--md-sys-color-secondary-fixed:#ffdbca;--md-sys-color-on-secondary-fixed:#2b160a;--md-sys-color-secondary-fixed-dim:#e6beab;--md-sys-color-on-secondary-fixed-variant:#5c4032;--md-sys-color-tertiary-fixed:#ebe4aa;--md-sys-color-on-tertiary-fixed:#1f1c00;--md-sys-color-tertiary-fixed-dim:#cfc890;--md-sys-color-on-tertiary-fixed-variant:#4c481c;--md-sys-color-surface-dim:#e8d7cf;--md-sys-color-surface-bright:#fff8f6;--md-sys-color-surface-container-lowest:#fff;--md-sys-color-surface-container-low:#fff1eb;--md-sys-color-surface-container:#fceae3;--md-sys-color-surface-container-high:#f6e5dd;--md-sys-color-surface-container-highest:#f0dfd8}@media (prefers-color-scheme:dark){:root[data-ui=material]{--md-sys-color-primary:#ffb690;--md-sys-color-surface-tint:#ffb690;--md-sys-color-on-primary:#542202;--md-sys-color-primary-container:#703715;--md-sys-color-on-primary-container:#ffdbca;--md-sys-color-secondary:#e6beab;--md-sys-color-on-secondary:#432b1d;--md-sys-color-secondary-container:#5c4032;--md-sys-color-on-secondary-container:#ffdbca;--md-sys-color-tertiary:#cfc890;--md-sys-color-on-tertiary:#353107;--md-sys-color-tertiary-container:#4c481c;--md-sys-color-on-tertiary-container:#ebe4aa;--md-sys-color-error:#ffb4ab;--md-sys-color-on-error:#690005;--md-sys-color-error-container:#93000a;--md-sys-color-on-error-container:#ffdad6;--md-sys-color-background:#1a120e;--md-sys-color-on-background:#f0dfd8;--md-sys-color-surface:#1a120e;--md-sys-color-on-surface:#f0dfd8;--md-sys-color-surface-variant:#52443d;--md-sys-color-on-surface-variant:#d7c2b9;--md-sys-color-outline:#a08d84;--md-sys-color-outline-variant:#52443d;--md-sys-color-shadow:#000;--md-sys-color-scrim:#000;--md-sys-color-inverse-surface:#f0dfd8;--md-sys-color-inverse-on-surface:#382e2a;--md-sys-color-inverse-primary:#8d4e2a;--md-sys-color-primary-fixed:#ffdbca;--md-sys-color-on-primary-fixed:#341100;--md-sys-color-primary-fixed-dim:#ffb690;--md-sys-color-on-primary-fixed-variant:#703715;--md-sys-color-secondary-fixed:#ffdbca;--md-sys-color-on-secondary-fixed:#2b160a;--md-sys-color-secondary-fixed-dim:#e6beab;--md-sys-color-on-secondary-fixed-variant:#5c4032;--md-sys-color-tertiary-fixed:#ebe4aa;--md-sys-color-on-tertiary-fixed:#1f1c00;--md-sys-color-tertiary-fixed-dim:#cfc890;--md-sys-color-on-tertiary-fixed-variant:#4c481c;--md-sys-color-surface-dim:#1a120e;--md-sys-color-surface-bright:#413732;--md-sys-color-surface-container-lowest:#140c09;--md-sys-color-surface-container-low:#221a15;--md-sys-color-surface-container:#271e19;--md-sys-color-surface-container-high:#322823;--md-sys-color-surface-container-highest:#3d332e}}@media (prefers-contrast:more){:root[data-ui=material]{--md-sys-color-primary:#4e1e00;--md-sys-color-surface-tint:#8d4e2a;--md-sys-color-on-primary:#fff;--md-sys-color-primary-container:#733917;--md-sys-color-on-primary-container:#fff;--md-sys-color-secondary:#3e261a;--md-sys-color-on-secondary:#fff;--md-sys-color-secondary-container:#5f4334;--md-sys-color-on-secondary-container:#fff;--md-sys-color-tertiary:#302d04;--md-sys-color-on-tertiary:#fff;--md-sys-color-tertiary-container:#4e4a1f;--md-sys-color-on-tertiary-container:#fff;--md-sys-color-error:#600004;--md-sys-color-on-error:#fff;--md-sys-color-error-container:#98000a;--md-sys-color-on-error-container:#fff;--md-sys-color-background:#fff8f6;--md-sys-color-on-background:#221a15;--md-sys-color-surface:#fff8f6;--md-sys-color-on-surface:#000;--md-sys-color-surface-variant:#f4ded4;--md-sys-color-on-surface-variant:#000;--md-sys-color-outline:#362923;--md-sys-color-outline-variant:#55463f;--md-sys-color-shadow:#000;--md-sys-color-scrim:#000;--md-sys-color-inverse-surface:#382e2a;--md-sys-color-inverse-on-surface:#fff;--md-sys-color-inverse-primary:#ffb690;--md-sys-color-primary-fixed:#733917;--md-sys-color-on-primary-fixed:#fff;--md-sys-color-primary-fixed-dim:#562403;--md-sys-color-on-primary-fixed-variant:#fff;--md-sys-color-secondary-fixed:#5f4334;--md-sys-color-on-secondary-fixed:#fff;--md-sys-color-secondary-fixed-dim:#462d20;--md-sys-color-on-secondary-fixed-variant:#fff;--md-sys-color-tertiary-fixed:#4e4a1f;--md-sys-color-on-tertiary-fixed:#fff;--md-sys-color-tertiary-fixed-dim:#37340a;--md-sys-color-on-tertiary-fixed-variant:#fff;--md-sys-color-surface-dim:#c5b6af;--md-sys-color-surface-bright:#fff8f6;--md-sys-color-surface-container-lowest:#fff;--md-sys-color-surface-container-low:#ffede6;--md-sys-color-surface-container:#f0dfd8;--md-sys-color-surface-container-high:#e2d1ca;--md-sys-color-surface-container-highest:#d4c3bc}}@media (prefers-color-scheme:dark) and (prefers-contrast:more){:root[data-ui=material]{--md-sys-color-primary:#ffece4;--md-sys-color-surface-tint:#ffb690;--md-sys-color-on-primary:#000;--md-sys-color-primary-container:#ffb087;--md-sys-color-on-primary-container:#1a0600;--md-sys-color-secondary:#ffece4;--md-sys-color-on-secondary:#000;--md-sys-color-secondary-container:#e2baa7;--md-sys-color-on-secondary-container:#180701;--md-sys-color-tertiary:#f9f2b7;--md-sys-color-on-tertiary:#000;--md-sys-color-tertiary-container:#cbc48d;--md-sys-color-on-tertiary-container:#0d0c00;--md-sys-color-error:#ffece9;--md-sys-color-on-error:#000;--md-sys-color-error-container:#ffaea4;--md-sys-color-on-error-container:#220001;--md-sys-color-background:#1a120e;--md-sys-color-on-background:#f0dfd8;--md-sys-color-surface:#1a120e;--md-sys-color-on-surface:#fff;--md-sys-color-surface-variant:#52443d;--md-sys-color-on-surface-variant:#fff;--md-sys-color-outline:#ffece4;--md-sys-color-outline-variant:#d3beb5;--md-sys-color-shadow:#000;--md-sys-color-scrim:#000;--md-sys-color-inverse-surface:#f0dfd8;--md-sys-color-inverse-on-surface:#000;--md-sys-color-inverse-primary:#713816;--md-sys-color-primary-fixed:#ffdbca;--md-sys-color-on-primary-fixed:#000;--md-sys-color-primary-fixed-dim:#ffb690;--md-sys-color-on-primary-fixed-variant:#230900;--md-sys-color-secondary-fixed:#ffdbca;--md-sys-color-on-secondary-fixed:#000;--md-sys-color-secondary-fixed-dim:#e6beab;--md-sys-color-on-secondary-fixed-variant:#1f0c03;--md-sys-color-tertiary-fixed:#ebe4aa;--md-sys-color-on-tertiary-fixed:#000;--md-sys-color-tertiary-fixed-dim:#cfc890;--md-sys-color-on-tertiary-fixed-variant:#131200;--md-sys-color-surface-dim:#1a120e;--md-sys-color-surface-bright:#594e48;--md-sys-color-surface-container-lowest:#000;--md-sys-color-surface-container-low:#271e19;--md-sys-color-surface-container:#382e2a;--md-sys-color-surface-container-high:#443934;--md-sys-color-surface-container-highest:#50443f}}:root[data-ui=material][data-contrast=medium]{--md-sys-color-primary:#5b2706;--md-sys-color-surface-tint:#8d4e2a;--md-sys-color-on-primary:#fff;--md-sys-color-primary-container:#9e5c37;--md-sys-color-on-primary-container:#fff;--md-sys-color-secondary:#4a3023;--md-sys-color-on-secondary:#fff;--md-sys-color-secondary-container:#866656;--md-sys-color-on-secondary-container:#fff;--md-sys-color-tertiary:#3b370d;--md-sys-color-on-tertiary:#fff;--md-sys-color-tertiary-container:#736f3f;--md-sys-color-on-tertiary-container:#fff;--md-sys-color-error:#740006;--md-sys-color-on-error:#fff;--md-sys-color-error-container:#cf2c27;--md-sys-color-on-error-container:#fff;--md-sys-color-background:#fff8f6;--md-sys-color-on-background:#221a15;--md-sys-color-surface:#fff8f6;--md-sys-color-on-surface:#170f0b;--md-sys-color-surface-variant:#f4ded4;--md-sys-color-on-surface-variant:#41332d;--md-sys-color-outline:#5f4f48;--md-sys-color-outline-variant:#7a6a62;--md-sys-color-shadow:#000;--md-sys-color-scrim:#000;--md-sys-color-inverse-surface:#382e2a;--md-sys-color-inverse-on-surface:#ffede6;--md-sys-color-inverse-primary:#ffb690;--md-sys-color-primary-fixed:#9e5c37;--md-sys-color-on-primary-fixed:#fff;--md-sys-color-primary-fixed-dim:#814522;--md-sys-color-on-primary-fixed-variant:#fff;--md-sys-color-secondary-fixed:#866656;--md-sys-color-on-secondary-fixed:#fff;--md-sys-color-secondary-fixed-dim:#6c4e3f;--md-sys-color-on-secondary-fixed-variant:#fff;--md-sys-color-tertiary-fixed:#736f3f;--md-sys-color-on-tertiary-fixed:#fff;--md-sys-color-tertiary-fixed-dim:#5a5629;--md-sys-color-on-tertiary-fixed-variant:#fff;--md-sys-color-surface-dim:#d4c3bc;--md-sys-color-surface-bright:#fff8f6;--md-sys-color-surface-container-lowest:#fff;--md-sys-color-surface-container-low:#fff1eb;--md-sys-color-surface-container:#f6e5dd;--md-sys-color-surface-container-high:#ebd9d2;--md-sys-color-surface-container-highest:#dfcec7}@media (prefers-color-scheme:dark){:root[data-ui=material][data-contrast=medium]{--md-sys-color-primary:#ffd3be;--md-sys-color-surface-tint:#ffb690;--md-sys-color-on-primary:#431900;--md-sys-color-primary-container:#c87f57;--md-sys-color-on-primary-container:#000;--md-sys-color-secondary:#fdd4c0;--md-sys-color-on-secondary:#372014;--md-sys-color-secondary-container:#ac8978;--md-sys-color-on-secondary-container:#000;--md-sys-color-tertiary:#e5dea5;--md-sys-color-on-tertiary:#292600;--md-sys-color-tertiary-container:#98925f;--md-sys-color-on-tertiary-container:#000;--md-sys-color-error:#ffd2cc;--md-sys-color-on-error:#540003;--md-sys-color-error-container:#ff5449;--md-sys-color-on-error-container:#000;--md-sys-color-background:#1a120e;--md-sys-color-on-background:#f0dfd8;--md-sys-color-surface:#1a120e;--md-sys-color-on-surface:#fff;--md-sys-color-surface-variant:#52443d;--md-sys-color-on-surface-variant:#eed8ce;--md-sys-color-outline:#c2aea5;--md-sys-color-outline-variant:#9f8d84;--md-sys-color-shadow:#000;--md-sys-color-scrim:#000;--md-sys-color-inverse-surface:#f0dfd8;--md-sys-color-inverse-on-surface:#322823;--md-sys-color-inverse-primary:#713816;--md-sys-color-primary-fixed:#ffdbca;--md-sys-color-on-primary-fixed:#230900;--md-sys-color-primary-fixed-dim:#ffb690;--md-sys-color-on-primary-fixed-variant:#5b2706;--md-sys-color-secondary-fixed:#ffdbca;--md-sys-color-on-secondary-fixed:#1f0c03;--md-sys-color-secondary-fixed-dim:#e6beab;--md-sys-color-on-secondary-fixed-variant:#4a3023;--md-sys-color-tertiary-fixed:#ebe4aa;--md-sys-color-on-tertiary-fixed:#131200;--md-sys-color-tertiary-fixed-dim:#cfc890;--md-sys-color-on-tertiary-fixed-variant:#3b370d;--md-sys-color-surface-dim:#1a120e;--md-sys-color-surface-bright:#4d423d;--md-sys-color-surface-container-lowest:#0d0604;--md-sys-color-surface-container-low:#251c17;--md-sys-color-surface-container:#2f2621;--md-sys-color-surface-container-high:#3b302c;--md-sys-color-surface-container-highest:#463b36}}:root[data-ui=material]{--md-shape-xs:4px;--md-shape-sm:8px;--md-shape-md:12px;--md-shape-lg:16px;--md-shape-xl:20px;--md-shape-2xl:24px;--md-shape-3xl:28px;--md-shape-full:999px;--md-elevation-1:0 1px 2px 0 #0000004d, 0 1px 3px 1px #0000001f;--md-elevation-2:0 1px 2px 0 #0000004d, 0 2px 6px 2px #0000001f;--md-elevation-3:0 1px 3px 0 #0000004d, 0 4px 8px 3px #0000001f;--md-elevation-4:0 2px 3px 0 #0000004d, 0 6px 12px 5px #0000001f;--md-ease-spatial:cubic-bezier(.34, 1.56, .64, 1);--md-ease-effects:cubic-bezier(.2, 0, 0, 1);--md-dur-short:.15s;--md-dur-medium:.3s;--md-dur-long:.45s;--md-burst:polygon(50% 0%, 64.54% 14.89%, 85.36% 14.64%, 85.11% 35.46%, 100% 50%, 85.11% 64.54%, 85.36% 85.36%, 64.54% 85.11%, 50% 100%, 35.46% 85.11%, 14.64% 85.36%, 14.89% 64.54%, 0% 50%, 14.89% 35.46%, 14.64% 14.64%, 35.46% 14.89%)}:root[data-ui=material] body{background-color:var(--md-sys-color-surface);color:var(--md-sys-color-on-surface);-webkit-font-smoothing:antialiased;font-synthesis-weight:none;font-family:Inter Variable,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}:root[data-ui=material] .page{z-index:1;width:100%;max-width:52rem;margin-inline:auto;padding:4.5rem 1.25rem 7.5rem;position:relative}@media (width>=640px){:root[data-ui=material] .page{padding-inline:2rem;padding-bottom:8rem}}:root[data-ui=material] .m3-decor{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}:root[data-ui=material] .m3-shape{background-color:var(--md-sys-color-primary-container);opacity:.38;position:absolute}@media (prefers-color-scheme:dark){:root[data-ui=material] .m3-shape{opacity:.28}}:root[data-ui=material] .m3-shape--burst{width:15rem;height:15rem;clip-path:var(--md-burst);top:-4rem;right:-4rem}:root[data-ui=material] .m3-shape--tertiary{background-color:var(--md-sys-color-tertiary-container);border-radius:var(--md-shape-full);opacity:.32;width:11rem;height:11rem;bottom:-4.5rem;left:-3.5rem}:root[data-ui=material] .m3-shape--secondary{background-color:var(--md-sys-color-secondary-container);border-radius:var(--md-shape-3xl) var(--md-shape-full) var(--md-shape-3xl) var(--md-shape-full);opacity:.24;width:8rem;height:8rem;top:40%;left:-5.5rem}@media (width<=1023px){:root[data-ui=material] .m3-shape--burst{width:10rem;height:10rem;top:-4rem;right:-3.5rem}:root[data-ui=material] .m3-shape--tertiary,:root[data-ui=material] .m3-shape--secondary{display:none}}:root[data-ui=material] .head{align-items:center;gap:1.125rem;display:flex}:root[data-ui=material] .avatar{border-radius:var(--md-shape-2xl);background-color:var(--md-sys-color-primary-container);flex-shrink:0;place-items:center;width:4.5rem;height:4.5rem;display:grid;overflow:hidden}:root[data-ui=material] .avatar img{object-fit:contain;width:3.75rem;height:3.75rem}:root[data-ui=material] .identity{min-width:0}:root[data-ui=material] .name{letter-spacing:-.02em;color:var(--md-sys-color-on-surface);font-size:2rem;font-weight:600;line-height:2.375rem}:root[data-ui=material] .role{letter-spacing:-.005em;color:var(--md-sys-color-primary);margin-top:.125rem;font-size:1rem;font-weight:500;line-height:1.5rem}:root[data-ui=material] .intro{max-width:46rem;color:var(--md-sys-color-on-surface-variant);gap:.875rem;margin-top:1.75rem;font-size:1rem;line-height:1.625rem;display:grid}:root[data-ui=material] .links{flex-wrap:wrap;gap:.5rem;margin-top:1.75rem;display:flex}:root[data-ui=material] .link{border:1px solid var(--md-sys-color-outline-variant);border-radius:var(--md-shape-full);height:2.25rem;color:var(--md-sys-color-on-surface-variant);transition:background-color var(--md-dur-short) var(--md-ease-effects), border-color var(--md-dur-short) var(--md-ease-effects);align-items:center;gap:.5rem;padding-inline:.875rem;font-size:.875rem;font-weight:500;line-height:1.25rem;display:inline-flex}:root[data-ui=material] .link:hover{background-color:var(--md-sys-color-surface-container-high);border-color:var(--md-sys-color-outline)}:root[data-ui=material] .link-icon{width:1.125rem;height:1.125rem;color:var(--md-sys-color-primary)}:root[data-ui=material] .link-handle{display:none}:root[data-ui=material] .section{margin-top:3.5rem;scroll-margin-top:5rem}:root[data-ui=material] .section-title{letter-spacing:-.02em;color:var(--md-sys-color-on-surface);font-size:1.5rem;font-weight:600;line-height:2rem}:root[data-ui=material] .projects{gap:1rem;margin-top:1.25rem;display:grid}@media (width>=640px){:root[data-ui=material] .projects{grid-template-columns:repeat(3,minmax(0,1fr))}}:root[data-ui=material] .card{border-radius:var(--md-shape-3xl);background-color:var(--md-sys-color-surface-container-low);height:100%;transition:background-color var(--md-dur-medium) var(--md-ease-effects), box-shadow var(--md-dur-medium) var(--md-ease-effects), transform var(--md-dur-medium) var(--md-ease-spatial);border:1px solid #0000;flex-direction:column;padding:.75rem;display:flex}:root[data-ui=material] .card:hover{background-color:var(--md-sys-color-surface-container);box-shadow:var(--md-elevation-2);transform:translateY(-3px)}:root[data-ui=material] .card:active{transform:translateY(-1px)scale(.99)}:root[data-ui=material] .card-media{aspect-ratio:5/4;background-color:var(--md-sys-color-surface-container-highest);color:var(--md-sys-color-primary);transition:background-color var(--md-dur-medium) var(--md-ease-effects), color var(--md-dur-medium) var(--md-ease-effects);border-radius:1rem;justify-content:center;align-items:center;display:flex}:root[data-ui=material] .card:hover .card-media{background-color:var(--md-sys-color-primary-container);color:var(--md-sys-color-on-primary-container)}:root[data-ui=material] .card-icon{width:1.75rem;height:1.75rem;transition:transform var(--md-dur-medium) var(--md-ease-spatial)}:root[data-ui=material] .card:hover .card-icon{transform:scale(1.12)}:root[data-ui=material] .card-body{flex-direction:column;flex:1;padding:.875rem .5rem .375rem;display:flex}:root[data-ui=material] .card-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}:root[data-ui=material] .card-title{letter-spacing:-.01em;color:var(--md-sys-color-on-surface);font-size:1.125rem;font-weight:600;line-height:1.5rem}:root[data-ui=material] .card-arrow{width:1.25rem;height:1.25rem;color:var(--md-sys-color-primary);opacity:0;transition:opacity var(--md-dur-short) var(--md-ease-effects), transform var(--md-dur-medium) var(--md-ease-spatial);flex-shrink:0;transform:translate(-.25rem,.25rem)}:root[data-ui=material] .card:hover .card-arrow{opacity:1;transform:none}:root[data-ui=material] .card-text{color:var(--md-sys-color-on-surface-variant);margin-top:.375rem;font-size:.9375rem;line-height:1.375rem}:root[data-ui=material] .tags{flex-wrap:wrap;gap:.375rem;margin-top:auto;padding-top:1rem;display:flex}:root[data-ui=material] .tag{border-radius:var(--md-shape-sm);background-color:var(--md-sys-color-secondary-container);height:1.75rem;color:var(--md-sys-color-on-secondary-container);letter-spacing:.01em;align-items:center;padding-inline:.625rem;font-size:.75rem;font-weight:500;line-height:1rem;display:inline-flex}:root[data-ui=material] .tag+.tag:before{content:none}:root[data-ui=material] .posts{gap:.25rem;margin-top:1.25rem;display:grid}:root[data-ui=material] .post{border-radius:var(--md-shape-sm);background-color:var(--md-sys-color-surface-container-low);transition:background-color var(--md-dur-medium) var(--md-ease-effects), box-shadow var(--md-dur-medium) var(--md-ease-effects), border-radius var(--md-dur-medium) var(--md-ease-spatial);align-items:center;gap:1rem;padding:.75rem .875rem;display:flex}:root[data-ui=material] .posts>li:first-child .post{border-start-start-radius:var(--md-shape-3xl);border-start-end-radius:var(--md-shape-3xl)}:root[data-ui=material] .posts>li:last-child .post{border-end-end-radius:var(--md-shape-3xl);border-end-start-radius:var(--md-shape-3xl)}:root[data-ui=material] .post:hover{background-color:var(--md-sys-color-surface-container);box-shadow:var(--md-elevation-1)}:root[data-ui=material] .post[aria-current=true]{border-radius:var(--md-shape-3xl);background-color:var(--md-sys-color-secondary-container);box-shadow:none}:root[data-ui=material] .post[aria-current=true] .post-title{color:var(--md-sys-color-on-secondary-container)}:root[data-ui=material] .post[aria-current=true] .post-meta{color:var(--md-sys-color-on-secondary-container);opacity:.75}:root[data-ui=material] .post-icon{border-radius:var(--md-shape-full);background-color:var(--md-sys-color-tertiary-container);width:2.75rem;height:2.75rem;color:var(--md-sys-color-on-tertiary-container);flex-shrink:0;justify-content:center;align-items:center;display:flex}:root[data-ui=material] .post-icon svg{width:1.25rem;height:1.25rem}:root[data-ui=material] .post-body{min-width:0}:root[data-ui=material] .post-title{color:var(--md-sys-color-on-surface);font-size:1rem;font-weight:600;line-height:1.5rem;display:block}:root[data-ui=material] .post-meta{color:var(--md-sys-color-on-surface-variant);font-size:.8125rem;line-height:1.25rem;display:block}:root[data-ui=material] .post-arrow{width:1.25rem;height:1.25rem;color:var(--md-sys-color-on-surface-variant);opacity:0;transition:opacity var(--md-dur-short) var(--md-ease-effects), transform var(--md-dur-medium) var(--md-ease-spatial);flex-shrink:0;margin-inline-start:auto;transform:translate(-.25rem)}:root[data-ui=material] .post:hover .post-arrow{opacity:.8;transform:none}:root[data-ui=material] .post-check{width:1.25rem;height:1.25rem;color:var(--md-sys-color-on-secondary-container);opacity:0;transition:opacity var(--md-dur-medium) var(--md-ease-effects), transform var(--md-dur-medium) var(--md-ease-spatial);flex-shrink:0;margin-inline-start:auto;transform:scale(.7)}:root[data-ui=material] .post[aria-current=true] .post-arrow{display:none}:root[data-ui=material] .post[aria-current=true] .post-check{opacity:1;transform:none}:root[data-ui=material] .stack{border-radius:var(--md-shape-3xl);background-color:var(--md-sys-color-surface-container-low);margin-top:1.25rem;padding:.375rem 1.25rem;scroll-margin-top:5rem}:root[data-ui=material] .stack-row{border-bottom:1px solid var(--md-sys-color-outline-variant);flex-direction:column;gap:.125rem;padding-block:.875rem;display:flex}:root[data-ui=material] .stack-row:last-child{border-bottom:0}@media (width>=640px){:root[data-ui=material] .stack-row{flex-direction:row;gap:1.5rem}}:root[data-ui=material] .stack-label{color:var(--md-sys-color-on-surface-variant);flex-shrink:0;font-size:.8125rem;font-weight:600;line-height:1.25rem}@media (width>=640px){:root[data-ui=material] .stack-label{width:8rem}}:root[data-ui=material] .stack-value{color:var(--md-sys-color-on-surface);font-size:.9375rem;line-height:1.375rem}:root[data-ui=material] .foot{border-top:1px solid var(--md-sys-color-outline-variant);color:var(--md-sys-color-on-surface-variant);margin-top:4rem;padding-top:1.5rem;font-size:.8125rem;line-height:1.25rem}:root[data-ui=material] .switcher{z-index:65;border-radius:var(--md-shape-full);background-color:color-mix(in srgb, var(--md-sys-color-surface-container-high) 86%, transparent);-webkit-backdrop-filter:blur(14px);box-shadow:var(--md-elevation-2);gap:.25rem;padding:.25rem;display:inline-flex;position:fixed;top:1rem;right:1rem}:root[data-ui=material] .switch-btn{border-radius:var(--md-shape-full);height:2.25rem;color:var(--md-sys-color-on-surface-variant);transition:background-color var(--md-dur-medium) var(--md-ease-effects), color var(--md-dur-medium) var(--md-ease-effects), transform var(--md-dur-short) var(--md-ease-spatial);align-items:center;gap:.375rem;padding-inline:.75rem .875rem;font-size:.8125rem;font-weight:600;line-height:1rem;display:inline-flex}:root[data-ui=material] .switch-btn:active{transform:scale(.95)}:root[data-ui=material] .switch-btn:hover{background-color:var(--md-sys-color-surface-container-highest)}:root[data-ui=material] .switch-btn[aria-pressed=true]{background-color:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary)}:root[data-ui=material] .switch-icon{width:1.125rem;height:1.125rem}:root[data-ui=material] .m3-toolbar{z-index:55;border-radius:var(--md-shape-full);background-color:color-mix(in srgb, var(--md-sys-color-surface-container) 88%, transparent);-webkit-backdrop-filter:blur(14px);box-shadow:var(--md-elevation-3);align-items:center;gap:.25rem;padding:.375rem;display:flex;position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%)}:root[data-ui=material] .m3-toolbar-btn{border-radius:var(--md-shape-full);width:2.75rem;height:2.75rem;color:var(--md-sys-color-on-surface-variant);transition:background-color var(--md-dur-short) var(--md-ease-effects), color var(--md-dur-short) var(--md-ease-effects), transform var(--md-dur-short) var(--md-ease-spatial);justify-content:center;align-items:center;display:inline-flex}:root[data-ui=material] .m3-toolbar-btn:active{transform:scale(.9)}:root[data-ui=material] .m3-toolbar-btn svg{width:1.375rem;height:1.375rem}:root[data-ui=material] .m3-toolbar-btn:hover{background-color:var(--md-sys-color-surface-container-highest)}:root[data-ui=material] .m3-toolbar-btn[aria-current=true]{background-color:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}:root[data-ui=material] .m3-fab{z-index:55;border-radius:var(--md-shape-xl);background-color:var(--md-sys-color-primary-container);width:3.5rem;height:3.5rem;color:var(--md-sys-color-on-primary-container);box-shadow:var(--md-elevation-3);opacity:0;pointer-events:none;transition:opacity var(--md-dur-medium) var(--md-ease-effects), transform var(--md-dur-medium) var(--md-ease-spatial), box-shadow var(--md-dur-short) var(--md-ease-effects);justify-content:center;align-items:center;display:inline-flex;position:fixed;bottom:1.25rem;right:1.25rem;transform:translateY(.75rem)scale(.9)}:root[data-ui=material] .m3-fab[data-visible=true]{opacity:1;pointer-events:auto;transform:none}:root[data-ui=material] .m3-fab:hover{box-shadow:var(--md-elevation-4)}:root[data-ui=material] .m3-fab:active{transform:scale(.93)}:root[data-ui=material] .m3-fab svg{width:1.5rem;height:1.5rem}:root[data-ui=material] .back{border-radius:var(--md-shape-full);height:2.25rem;color:var(--md-sys-color-on-surface-variant);transition:background-color var(--md-dur-short) var(--md-ease-effects);align-items:center;gap:.375rem;margin-inline-start:-.875rem;padding-inline:.875rem 1rem;font-size:.875rem;font-weight:500;display:inline-flex}:root[data-ui=material] .back:hover{background-color:var(--md-sys-color-surface-container-high)}:root[data-ui=material] .back svg{width:1.125rem;height:1.125rem}:root[data-ui=material] .article-title{letter-spacing:-.025em;color:var(--md-sys-color-on-surface);font-size:2.25rem;font-weight:600;line-height:2.75rem}:root[data-ui=material] .article-meta{color:var(--md-sys-color-on-surface-variant);margin-top:.5rem;font-size:.875rem;line-height:1.25rem}:root[data-ui=material] .article-meta time{font-weight:500}:root[data-ui=material] .prose{--tw-prose-body:var(--md-sys-color-on-surface-variant);--tw-prose-headings:var(--md-sys-color-on-surface);--tw-prose-lead:var(--md-sys-color-on-surface-variant);--tw-prose-links:var(--md-sys-color-primary);--tw-prose-bold:var(--md-sys-color-on-surface);--tw-prose-counters:var(--md-sys-color-primary);--tw-prose-bullets:var(--md-sys-color-outline);--tw-prose-hr:var(--md-sys-color-outline-variant);--tw-prose-quotes:var(--md-sys-color-on-surface);--tw-prose-quote-borders:var(--md-sys-color-primary);--tw-prose-captions:var(--md-sys-color-on-surface-variant);--tw-prose-code:var(--md-sys-color-on-surface);--tw-prose-pre-code:var(--md-sys-color-on-surface);--tw-prose-pre-bg:var(--md-sys-color-surface-container-highest);--tw-prose-th-borders:var(--md-sys-color-outline-variant);--tw-prose-td-borders:var(--md-sys-color-outline-variant);font-size:1rem;line-height:1.7}:root[data-ui=material] .prose :where(h2){font-size:1.5rem;line-height:2rem}:root[data-ui=material] .prose :where(h1,h2,h3,h4){letter-spacing:-.02em;font-weight:600}:root[data-ui=material] .prose :where(a){text-decoration-color:color-mix(in srgb, var(--md-sys-color-primary) 45%, transparent)}:root[data-ui=material] .prose :where(a):hover{text-decoration-color:var(--md-sys-color-primary)}:root[data-ui=material] .prose :where(h3){font-size:1.25rem;line-height:1.75rem}:root[data-ui=material] .prose :where(code){background-color:var(--md-sys-color-surface-container-high);border-radius:var(--md-shape-xs);padding:.125rem .375rem;font-weight:500}:root[data-ui=material] .prose :where(code):before,:root[data-ui=material] .prose :where(code):after{content:none}:root[data-ui=material] .prose :where(pre){border-radius:var(--md-shape-lg)}:root[data-ui=material] .m3-sheet{z-index:80;visibility:hidden;pointer-events:none;transition:visibility 0s linear var(--md-dur-long);position:fixed;inset:0}:root[data-ui=material] .m3-sheet[data-open=true]{visibility:visible;pointer-events:auto;transition-delay:0s}:root[data-ui=material] .m3-sheet-scrim{opacity:0;transition:opacity var(--md-dur-medium) var(--md-ease-effects);background-color:#00000052;position:absolute;inset:0}:root[data-ui=material] .m3-sheet[data-open=true] .m3-sheet-scrim{opacity:1}:root[data-ui=material] .m3-sheet-panel{background-color:var(--md-sys-color-surface-container-low);width:min(28rem,100%);height:100%;box-shadow:var(--md-elevation-3);transition:transform var(--md-dur-long) var(--md-ease-spatial);border-start-start-radius:var(--md-shape-3xl);border-end-start-radius:var(--md-shape-3xl);flex-direction:column;display:flex;position:absolute;top:0;right:0;overflow:hidden;transform:translate(102%)}:root[data-ui=material] .m3-sheet[data-open=true] .m3-sheet-panel{transform:none}:root[data-ui=material] .m3-sheet-panel:focus{outline:none}:root[data-ui=material] .m3-sheet-bar{align-items:flex-start;gap:1rem;padding:1.5rem 1rem .75rem 1.5rem;display:flex}:root[data-ui=material] .m3-sheet-title{letter-spacing:-.02em;min-width:0;color:var(--md-sys-color-on-surface);flex:1;font-size:1.375rem;font-weight:600;line-height:1.75rem}:root[data-ui=material] .m3-sheet-close{border-radius:var(--md-shape-full);width:2.5rem;height:2.5rem;color:var(--md-sys-color-on-surface-variant);transition:background-color var(--md-dur-short) var(--md-ease-effects), transform var(--md-dur-short) var(--md-ease-spatial);flex-shrink:0;justify-content:center;align-items:center;margin-top:-.25rem;display:inline-flex}:root[data-ui=material] .m3-sheet-close:hover{background-color:var(--md-sys-color-surface-container-high)}:root[data-ui=material] .m3-sheet-close:active{transform:scale(.92)}:root[data-ui=material] .m3-sheet-close svg{width:1.25rem;height:1.25rem}:root[data-ui=material] .m3-sheet-meta{color:var(--md-sys-color-on-surface-variant);padding:0 1.5rem .75rem;font-size:.8125rem;line-height:1.25rem}:root[data-ui=material] .m3-sheet-body{overscroll-behavior:contain;flex:1;max-width:none;padding:.25rem 1.5rem 2.5rem;overflow-y:auto}:root[data-ui=material] .m3-sheet-body>:first-child{margin-top:0}:root[data-ui=material] .m3-sheet-loading{justify-content:center;padding:3rem 0;display:flex}:root[data-ui=material] .m3-spinner{border-radius:var(--md-shape-full);border:3px solid var(--md-sys-color-surface-container-highest);border-top-color:var(--md-sys-color-primary);width:2rem;height:2rem;animation:.9s linear infinite m3-spin}@keyframes m3-spin{to{transform:rotate(360deg)}}@media (width<=639px){:root[data-ui=material] .m3-sheet-panel{border-start-start-radius:0;border-end-start-radius:0}}@media (prefers-reduced-motion:reduce){:root[data-ui=material] .card,:root[data-ui=material] .card-icon,:root[data-ui=material] .card-arrow,:root[data-ui=material] .post,:root[data-ui=material] .post-arrow,:root[data-ui=material] .post-check,:root[data-ui=material] .link,:root[data-ui=material] .switch-btn,:root[data-ui=material] .m3-toolbar-btn,:root[data-ui=material] .m3-fab,:root[data-ui=material] .back,:root[data-ui=material] .m3-sheet,:root[data-ui=material] .m3-sheet-scrim,:root[data-ui=material] .m3-sheet-panel,:root[data-ui=material] .m3-sheet-close{transition:none}:root[data-ui=material] .card:hover,:root[data-ui=material] .card:active,:root[data-ui=material] .card:hover .card-icon,:root[data-ui=material] .switch-btn:active,:root[data-ui=material] .m3-toolbar-btn:active,:root[data-ui=material] .m3-fab:active,:root[data-ui=material] .m3-sheet-close:active{transform:none}}
