/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@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-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight: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-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-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:-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-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-800:oklch(47.6% .114 61.907);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-300:oklch(87.1% .15 154.449);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-800:oklch(43.2% .095 166.913);--color-emerald-900:oklch(37.8% .077 168.94);--color-emerald-950:oklch(26.2% .051 172.552);--color-rose-50:oklch(96.9% .015 12.422);--color-rose-200:oklch(89.2% .058 10.001);--color-rose-300:oklch(81% .117 11.638);--color-rose-400:oklch(71.2% .194 13.428);--color-rose-500:oklch(64.5% .246 16.439);--color-rose-600:oklch(58.6% .253 17.585);--color-rose-700:oklch(51.4% .222 16.935);--color-rose-800:oklch(45.5% .188 13.697);--color-rose-900:oklch(41% .159 10.272);--color-rose-950:oklch(27.1% .105 12.094);--color-stone-50:oklch(98.5% .001 106.423);--color-stone-100:oklch(97% .001 106.424);--color-stone-200:oklch(92.3% .003 48.717);--color-stone-300:oklch(86.9% .005 56.366);--color-stone-400:oklch(70.9% .01 56.259);--color-stone-500:oklch(55.3% .013 58.071);--color-stone-600:oklch(44.4% .011 73.639);--color-stone-700:oklch(37.4% .01 67.558);--color-stone-800:oklch(26.8% .007 34.298);--color-stone-900:oklch(21.6% .006 56.043);--color-stone-950:oklch(14.7% .004 49.25);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-2xl:42rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--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-medium:500;--font-weight-semibold:600;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@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{.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.top-1\/2{top:50%}.left-2{left:calc(var(--spacing) * 2)}.mx-auto{margin-inline:auto}.my-2{margin-block:calc(var(--spacing) * 2)}.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}.prose-sm{font-size:.875rem;line-height:1.71429}.prose-sm :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em;margin-bottom:1.14286em}.prose-sm :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.888889em;margin-bottom:.888889em;font-size:1.28571em;line-height:1.55556}.prose-sm :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em;margin-bottom:1.33333em;padding-inline-start:1.11111em}.prose-sm :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:.8em;font-size:2.14286em;line-height:1.2}.prose-sm :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.6em;margin-bottom:.8em;font-size:1.42857em;line-height:1.4}.prose-sm :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.55556em;margin-bottom:.444444em;font-size:1.28571em;line-height:1.55556}.prose-sm :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.42857em;margin-bottom:.571429em;line-height:1.42857}.prose-sm :where(img):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.71429em;margin-bottom:1.71429em}.prose-sm :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-sm :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.71429em;margin-bottom:1.71429em}.prose-sm :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.142857em;padding-inline-end:.357143em;padding-bottom:.142857em;border-radius:.3125rem;padding-inline-start:.357143em;font-size:.857143em}.prose-sm :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.857143em}.prose-sm :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.9em}.prose-sm :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.888889em}.prose-sm :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.666667em;padding-inline-end:1em;padding-bottom:.666667em;border-radius:.25rem;margin-top:1.66667em;margin-bottom:1.66667em;padding-inline-start:1em;font-size:.857143em;line-height:1.66667}.prose-sm :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em;margin-bottom:1.14286em;padding-inline-start:1.57143em}.prose-sm :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.285714em;margin-bottom:.285714em}.prose-sm :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.428571em}.prose-sm :where(.prose-sm>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.571429em;margin-bottom:.571429em}.prose-sm :where(.prose-sm>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em}.prose-sm :where(.prose-sm>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.14286em}.prose-sm :where(.prose-sm>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em}.prose-sm :where(.prose-sm>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.14286em}.prose-sm :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.571429em;margin-bottom:.571429em}.prose-sm :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em;margin-bottom:1.14286em}.prose-sm :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em}.prose-sm :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.285714em;padding-inline-start:1.57143em}.prose-sm :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2.85714em;margin-bottom:2.85714em}.prose-sm :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.857143em;line-height:1.5}.prose-sm :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:1em;padding-bottom:.666667em;padding-inline-start:1em}.prose-sm :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-sm :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-sm :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.666667em;padding-inline-end:1em;padding-bottom:.666667em;padding-inline-start:1em}.prose-sm :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-sm :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-sm :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.71429em;margin-bottom:1.71429em}.prose-sm :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-sm :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.666667em;font-size:.857143em;line-height:1.33333}.prose-sm :where(.prose-sm>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(.prose-sm>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-0\.5{margin-left:calc(var(--spacing) * .5)}.ml-1{margin-left:var(--spacing)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-auto{height:auto}.min-h-\[260px\]{min-height:260px}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-fit{width:fit-content}.w-full{width:100%}.\!max-w-3xl{max-width:var(--container-3xl)!important}.max-w-2xl{max-width:var(--container-2xl)}.max-w-60{max-width:calc(var(--spacing) * 60)}.max-w-none{max-width:none}.min-w-0{min-width:0}.flex-1{flex:1}.shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.resize{resize:both}.resize-y{resize:vertical}.flex-col{flex-direction:column}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-2>: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)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>: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)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-10>: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)))}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-black\/15{border-color:#00000026}@supports (color:color-mix(in lab, red, red)){.border-black\/15{border-color:color-mix(in oklab, var(--color-black) 15%, transparent)}}.border-emerald-200{border-color:var(--color-emerald-200)}.border-rose-200{border-color:var(--color-rose-200)}.border-stone-200{border-color:var(--color-stone-200)}.border-stone-200\/65{border-color:#e7e5e4a6}@supports (color:color-mix(in lab, red, red)){.border-stone-200\/65{border-color:color-mix(in oklab, var(--color-stone-200) 65%, transparent)}}.border-stone-200\/70{border-color:#e7e5e4b3}@supports (color:color-mix(in lab, red, red)){.border-stone-200\/70{border-color:color-mix(in oklab, var(--color-stone-200) 70%, transparent)}}.border-stone-200\/80{border-color:#e7e5e4cc}@supports (color:color-mix(in lab, red, red)){.border-stone-200\/80{border-color:color-mix(in oklab, var(--color-stone-200) 80%, transparent)}}.border-stone-400{border-color:var(--color-stone-400)}.border-stone-900{border-color:var(--color-stone-900)}.bg-emerald-50\/80{background-color:#ecfdf5cc}@supports (color:color-mix(in lab, red, red)){.bg-emerald-50\/80{background-color:color-mix(in oklab, var(--color-emerald-50) 80%, transparent)}}.bg-green-100{background-color:var(--color-green-100)}.bg-rose-50\/80{background-color:#fff1f2cc}@supports (color:color-mix(in lab, red, red)){.bg-rose-50\/80{background-color:color-mix(in oklab, var(--color-rose-50) 80%, transparent)}}.bg-rose-300{background-color:var(--color-rose-300)}.bg-stone-100{background-color:var(--color-stone-100)}.bg-stone-100\/55{background-color:#f5f5f48c}@supports (color:color-mix(in lab, red, red)){.bg-stone-100\/55{background-color:color-mix(in oklab, var(--color-stone-100) 55%, transparent)}}.bg-stone-200{background-color:var(--color-stone-200)}.bg-stone-900{background-color:var(--color-stone-900)}.bg-stone-950{background-color:var(--color-stone-950)}.bg-transparent{background-color:#0000}.bg-white\/35{background-color:#ffffff59}@supports (color:color-mix(in lab, red, red)){.bg-white\/35{background-color:color-mix(in oklab, var(--color-white) 35%, transparent)}}.bg-white\/45{background-color:#ffffff73}@supports (color:color-mix(in lab, red, red)){.bg-white\/45{background-color:color-mix(in oklab, var(--color-white) 45%, transparent)}}.bg-white\/65{background-color:#ffffffa6}@supports (color:color-mix(in lab, red, red)){.bg-white\/65{background-color:color-mix(in oklab, var(--color-white) 65%, transparent)}}.bg-yellow-200{background-color:var(--color-yellow-200)}.p-4{padding:calc(var(--spacing) * 4)}.px-1{padding-inline:var(--spacing)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-7{padding-left:calc(var(--spacing) * 7)}.font-mono{font-family:var(--font-mono)}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[16px\]{font-size:16px}.leading-8{--tw-leading:calc(var(--spacing) * 8);line-height:calc(var(--spacing) * 8)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-current{color:currentColor}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-700{color:var(--color-emerald-700)}.text-emerald-800{color:var(--color-emerald-800)}.text-green-700{color:var(--color-green-700)}.text-rose-500{color:var(--color-rose-500)}.text-rose-600{color:var(--color-rose-600)}.text-rose-700{color:var(--color-rose-700)}.text-rose-800{color:var(--color-rose-800)}.text-stone-400{color:var(--color-stone-400)}.text-stone-500{color:var(--color-stone-500)}.text-stone-600{color:var(--color-stone-600)}.text-stone-700{color:var(--color-stone-700)}.text-stone-800{color:var(--color-stone-800)}.text-stone-900{color:var(--color-stone-900)}.text-stone-950{color:var(--color-stone-950)}.text-white{color:var(--color-white)}.italic{font-style:italic}.underline{text-decoration-line:underline}.decoration-black\/15{text-decoration-color:#00000026}@supports (color:color-mix(in lab, red, red)){.decoration-black\/15{-webkit-text-decoration-color:color-mix(in oklab, var(--color-black) 15%, transparent);-webkit-text-decoration-color:color-mix(in oklab, var(--color-black) 15%, transparent);text-decoration-color:color-mix(in oklab, var(--color-black) 15%, transparent)}}.underline-offset-2{text-underline-offset:2px}.placeholder-stone-400::placeholder{color:var(--color-stone-400)}.opacity-25{opacity:.25}.opacity-75{opacity:.75}.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-stone-400\/30{--tw-ring-color:#a6a09b4d}@supports (color:color-mix(in lab, red, red)){.ring-stone-400\/30{--tw-ring-color:color-mix(in oklab, var(--color-stone-400) 30%, transparent)}}.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,)}.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-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-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-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.prose-stone{--tw-prose-body:oklch(37.4% .01 67.558);--tw-prose-headings:oklch(21.6% .006 56.043);--tw-prose-lead:oklch(44.4% .011 73.639);--tw-prose-links:oklch(21.6% .006 56.043);--tw-prose-bold:oklch(21.6% .006 56.043);--tw-prose-counters:oklch(55.3% .013 58.071);--tw-prose-bullets:oklch(86.9% .005 56.366);--tw-prose-hr:oklch(92.3% .003 48.717);--tw-prose-quotes:oklch(21.6% .006 56.043);--tw-prose-quote-borders:oklch(92.3% .003 48.717);--tw-prose-captions:oklch(55.3% .013 58.071);--tw-prose-kbd:oklch(21.6% .006 56.043);--tw-prose-kbd-shadows:oklab(21.6% .00335142 .00497674/.1);--tw-prose-code:oklch(21.6% .006 56.043);--tw-prose-pre-code:oklch(92.3% .003 48.717);--tw-prose-pre-bg:oklch(26.8% .007 34.298);--tw-prose-th-borders:oklch(86.9% .005 56.366);--tw-prose-td-borders:oklch(92.3% .003 48.717);--tw-prose-invert-body:oklch(86.9% .005 56.366);--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:oklch(70.9% .01 56.259);--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:oklch(70.9% .01 56.259);--tw-prose-invert-bullets:oklch(44.4% .011 73.639);--tw-prose-invert-hr:oklch(37.4% .01 67.558);--tw-prose-invert-quotes:oklch(97% .001 106.424);--tw-prose-invert-quote-borders:oklch(37.4% .01 67.558);--tw-prose-invert-captions:oklch(70.9% .01 56.259);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:#ffffff1a;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:oklch(86.9% .005 56.366);--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:oklch(44.4% .011 73.639);--tw-prose-invert-td-borders:oklch(37.4% .01 67.558)}.outline-none{--tw-outline-style:none;outline-style:none}@media (hover:hover){.group-hover\:-translate-x-0\.5:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing) * -.5);translate:var(--tw-translate-x) var(--tw-translate-y)}}.placeholder\:text-stone-400::placeholder{color:var(--color-stone-400)}@media (hover:hover){.hover\:border-stone-300:hover{border-color:var(--color-stone-300)}.hover\:bg-black\/5:hover{background-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-black\/5:hover{background-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.hover\:bg-green-200:hover{background-color:var(--color-green-200)}.hover\:bg-stone-200:hover{background-color:var(--color-stone-200)}.hover\:bg-stone-800:hover{background-color:var(--color-stone-800)}.hover\:bg-white:hover{background-color:var(--color-white)}.hover\:bg-white\/70:hover{background-color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/70:hover{background-color:color-mix(in oklab, var(--color-white) 70%, transparent)}}.hover\:text-black:hover{color:var(--color-black)}.hover\:text-stone-800:hover{color:var(--color-stone-800)}.hover\:text-stone-900:hover{color:var(--color-stone-900)}.hover\:text-stone-950:hover{color:var(--color-stone-950)}.hover\:decoration-black\/25:hover{text-decoration-color:#00000040}@supports (color:color-mix(in lab, red, red)){.hover\:decoration-black\/25:hover{-webkit-text-decoration-color:color-mix(in oklab, var(--color-black) 25%, transparent);-webkit-text-decoration-color:color-mix(in oklab, var(--color-black) 25%, transparent);text-decoration-color:color-mix(in oklab, var(--color-black) 25%, transparent)}}}.focus\:border-stone-400:focus{border-color:var(--color-stone-400)}.focus\:ring-2:focus{--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)}.focus\:ring-stone-500\/10:focus{--tw-ring-color:#79716b1a}@supports (color:color-mix(in lab, red, red)){.focus\:ring-stone-500\/10:focus{--tw-ring-color:color-mix(in oklab, var(--color-stone-500) 10%, transparent)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}@media (width>=40rem){.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}}@media (width>=64rem){.lg\:grid-cols-\[1fr_280px\]{grid-template-columns:1fr 280px}}.dark\:border-emerald-900\/70:where(.dark,.dark *){border-color:#004e3bb3}@supports (color:color-mix(in lab, red, red)){.dark\:border-emerald-900\/70:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-emerald-900) 70%, transparent)}}.dark\:border-rose-900\/70:where(.dark,.dark *){border-color:#8b0836b3}@supports (color:color-mix(in lab, red, red)){.dark\:border-rose-900\/70:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-rose-900) 70%, transparent)}}.dark\:border-stone-100:where(.dark,.dark *){border-color:var(--color-stone-100)}.dark\:border-stone-600:where(.dark,.dark *){border-color:var(--color-stone-600)}.dark\:border-stone-800:where(.dark,.dark *){border-color:var(--color-stone-800)}.dark\:border-white\/20:where(.dark,.dark *){border-color:#fff3}@supports (color:color-mix(in lab, red, red)){.dark\:border-white\/20:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-white) 20%, transparent)}}.dark\:bg-emerald-950\/25:where(.dark,.dark *){background-color:#002c2240}@supports (color:color-mix(in lab, red, red)){.dark\:bg-emerald-950\/25:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-emerald-950) 25%, transparent)}}.dark\:bg-green-800:where(.dark,.dark *){background-color:var(--color-green-800)}.dark\:bg-rose-950\/25:where(.dark,.dark *){background-color:#4d021840}@supports (color:color-mix(in lab, red, red)){.dark\:bg-rose-950\/25:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-rose-950) 25%, transparent)}}.dark\:bg-stone-100:where(.dark,.dark *){background-color:var(--color-stone-100)}.dark\:bg-stone-700:where(.dark,.dark *){background-color:var(--color-stone-700)}.dark\:bg-stone-800\/35:where(.dark,.dark *){background-color:#29252459}@supports (color:color-mix(in lab, red, red)){.dark\:bg-stone-800\/35:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-stone-800) 35%, transparent)}}.dark\:bg-stone-900\/35:where(.dark,.dark *){background-color:#1c191759}@supports (color:color-mix(in lab, red, red)){.dark\:bg-stone-900\/35:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-stone-900) 35%, transparent)}}.dark\:bg-stone-900\/45:where(.dark,.dark *){background-color:#1c191773}@supports (color:color-mix(in lab, red, red)){.dark\:bg-stone-900\/45:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-stone-900) 45%, transparent)}}.dark\:bg-stone-950\/30:where(.dark,.dark *){background-color:#0c0a094d}@supports (color:color-mix(in lab, red, red)){.dark\:bg-stone-950\/30:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-stone-950) 30%, transparent)}}.dark\:bg-stone-950\/35:where(.dark,.dark *){background-color:#0c0a0959}@supports (color:color-mix(in lab, red, red)){.dark\:bg-stone-950\/35:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-stone-950) 35%, transparent)}}.dark\:bg-stone-950\/45:where(.dark,.dark *){background-color:#0c0a0973}@supports (color:color-mix(in lab, red, red)){.dark\:bg-stone-950\/45:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-stone-950) 45%, transparent)}}.dark\:bg-yellow-800:where(.dark,.dark *){background-color:var(--color-yellow-800)}.dark\:text-emerald-300:where(.dark,.dark *){color:var(--color-emerald-300)}.dark\:text-emerald-400:where(.dark,.dark *){color:var(--color-emerald-400)}.dark\:text-green-300:where(.dark,.dark *){color:var(--color-green-300)}.dark\:text-rose-300:where(.dark,.dark *){color:var(--color-rose-300)}.dark\:text-rose-400:where(.dark,.dark *){color:var(--color-rose-400)}.dark\:text-stone-50:where(.dark,.dark *){color:var(--color-stone-50)}.dark\:text-stone-100:where(.dark,.dark *){color:var(--color-stone-100)}.dark\:text-stone-200:where(.dark,.dark *){color:var(--color-stone-200)}.dark\:text-stone-300:where(.dark,.dark *){color:var(--color-stone-300)}.dark\:text-stone-400:where(.dark,.dark *){color:var(--color-stone-400)}.dark\:text-stone-500:where(.dark,.dark *){color:var(--color-stone-500)}.dark\:text-stone-900:where(.dark,.dark *){color:var(--color-stone-900)}.dark\:text-stone-950:where(.dark,.dark *){color:var(--color-stone-950)}.dark\:decoration-white\/30:where(.dark,.dark *){text-decoration-color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.dark\:decoration-white\/30:where(.dark,.dark *){-webkit-text-decoration-color:color-mix(in oklab, var(--color-white) 30%, transparent);-webkit-text-decoration-color:color-mix(in oklab, var(--color-white) 30%, transparent);text-decoration-color:color-mix(in oklab, var(--color-white) 30%, transparent)}}.dark\:placeholder-stone-500:where(.dark,.dark *)::placeholder{color:var(--color-stone-500)}.dark\:ring-stone-500\/30:where(.dark,.dark *){--tw-ring-color:#79716b4d}@supports (color:color-mix(in lab, red, red)){.dark\:ring-stone-500\/30:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-stone-500) 30%, transparent)}}.dark\:prose-invert:where(.dark,.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)}@media (hover:hover){.dark\:hover\:border-stone-700:where(.dark,.dark *):hover{border-color:var(--color-stone-700)}.dark\:hover\:bg-green-700:where(.dark,.dark *):hover{background-color:var(--color-green-700)}.dark\:hover\:bg-stone-200:where(.dark,.dark *):hover{background-color:var(--color-stone-200)}.dark\:hover\:bg-stone-600:where(.dark,.dark *):hover{background-color:var(--color-stone-600)}.dark\:hover\:bg-stone-800:where(.dark,.dark *):hover{background-color:var(--color-stone-800)}.dark\:hover\:bg-stone-900:where(.dark,.dark *):hover{background-color:var(--color-stone-900)}.dark\:hover\:bg-white\/5:where(.dark,.dark *):hover{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-white\/5:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-white) 5%, transparent)}}.dark\:hover\:text-stone-50:where(.dark,.dark *):hover{color:var(--color-stone-50)}.dark\:hover\:text-stone-100:where(.dark,.dark *):hover{color:var(--color-stone-100)}.dark\:hover\:text-stone-200:where(.dark,.dark *):hover{color:var(--color-stone-200)}.dark\:hover\:text-white:where(.dark,.dark *):hover,.hover\:dark\:text-white:hover:where(.dark,.dark *){color:var(--color-white)}.hover\:dark\:decoration-white\/50:hover:where(.dark,.dark *){text-decoration-color:#ffffff80}@supports (color:color-mix(in lab, red, red)){.hover\:dark\:decoration-white\/50:hover:where(.dark,.dark *){-webkit-text-decoration-color:color-mix(in oklab, var(--color-white) 50%, transparent);-webkit-text-decoration-color:color-mix(in oklab, var(--color-white) 50%, transparent);text-decoration-color:color-mix(in oklab, var(--color-white) 50%, transparent)}}}.dark\:focus\:border-stone-600:where(.dark,.dark *):focus{border-color:var(--color-stone-600)}}:root{--paper:#fff;--ink:#262626;--muted:#737373;--line:#2626261f;--line-strong:#26262638}html.dark{--paper:#111;--ink:#f5f5f5;--muted:#a3a3a3;--line:#f5f5f526;--line-strong:#f5f5f54d;color-scheme:dark}html{color-scheme:light;background:var(--paper);scroll-behavior:smooth;scrollbar-color:var(--ink) transparent;overflow-y:scroll}@supports (color:color-mix(in lab, red, red)){html{scrollbar-color:color-mix(in srgb, var(--ink) 20%, transparent) transparent}}html{scrollbar-width:thin}::-webkit-scrollbar{width:.6rem;height:.6rem}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--ink);border:.2rem solid #0000;border-radius:999px}@supports (color:color-mix(in lab, red, red)){::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--ink) 20%, transparent)}}::-webkit-scrollbar-thumb{background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--ink)}@supports (color:color-mix(in lab, red, red)){::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--ink) 34%, transparent)}}::-webkit-scrollbar-thumb:hover{background-clip:content-box}html,body{min-height:100%}body{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--ink);background:var(--paper);flex-direction:column;margin:0;display:flex}main{flex:1;padding-top:7rem;padding-bottom:5rem}footer{color:var(--muted);padding:1.75rem 0 2.5rem;font-size:.8rem}.skip-link{z-index:100;border:1px solid var(--line-strong);background:var(--paper);color:var(--ink);border-radius:.4rem;padding:.5rem .75rem;position:fixed;top:.75rem;left:1rem;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.site-header{z-index:50;background:var(--paper);padding:1.1rem 0;position:fixed;top:0;left:0;right:0}@supports (color:color-mix(in lab, red, red)){.site-header{background:color-mix(in srgb, var(--paper) 82%, transparent)}}.site-header{backdrop-filter:blur(16px)saturate(1.15)}.header-container{max-width:1120px}.header-shell{justify-content:space-between;align-items:center;gap:1.5rem;display:flex}.brand-link{color:var(--ink);align-items:center;gap:.6rem;font-weight:600;display:inline-flex}.brand-name{letter-spacing:-.02em;font-size:.95rem}.desktop-nav{align-items:center;display:none}@media (width>=48rem){.desktop-nav{display:flex}}.desktop-nav{gap:1.4rem;margin-left:auto}.nav-link,.icon-link,.footer-inner a{color:var(--muted);transition:color .18s}.nav-link{cursor:pointer;padding:.3rem 0;font-size:.92rem}.nav-link:hover,.icon-link:hover,.footer-inner a:hover{color:var(--ink)}.header-actions{align-items:center;gap:.35rem;display:flex}.icon-link,.icon-button{border-radius:999px;justify-content:center;align-items:center;width:2rem;height:2rem;display:inline-flex}.icon-link svg,.icon-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6px;width:1.05rem;height:1.05rem}.icon-link svg.github-icon{fill:currentColor;stroke:none}.icon-link:hover,.icon-button:hover{background:var(--ink)}@supports (color:color-mix(in lab, red, red)){.icon-link:hover,.icon-button:hover{background:color-mix(in srgb, var(--ink) 7%, transparent)}}.icon-button{color:var(--muted);cursor:pointer;background:0 0;border:0}.mobile-primary-link{display:none}.home-intro{padding:0 0 2rem}.home-intro h1{color:var(--ink);letter-spacing:-.03em;margin:0;font-size:1.8rem;font-weight:600;line-height:1.25}.home-lead{color:var(--ink);margin:.7rem 0 0;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:1.06rem;line-height:1.9}.wave{margin-left:.4rem;font-size:.7em;display:inline-block;transform:translateY(-.1em)}.intro-copy{margin-top:2.25rem}.home-badges{gap:.45rem;margin-top:1.35rem;display:grid}.home-badge-row{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.home-badge-label{color:var(--ink);margin-right:.15rem;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:1.06rem;line-height:1.9}.home-badge{background:var(--ink);border-radius:.45rem;align-items:center;gap:.38rem;padding:.28rem .52rem;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.home-badge{background:color-mix(in srgb, var(--ink) 7%, transparent)}}.home-badge{color:var(--muted);font-size:.86rem;font-weight:500;line-height:1.3}.home-badge-link{color:inherit;text-decoration:none;transition:opacity .18s}.home-badge-link:hover{opacity:.72}.home-badge img{object-fit:contain;width:1.15rem;height:1.15rem}.home-tags{opacity:.58;margin-top:2.4rem;transition:opacity .22s}.home-tags:hover,.home-tags:focus-within{opacity:1}.home-tags summary{cursor:pointer;color:var(--muted);-webkit-user-select:none;user-select:none;align-items:center;gap:.3rem;padding:.2rem 0;font-size:.86rem;list-style:none;display:inline-flex}.home-tags summary::-webkit-details-marker{display:none}.home-tags summary svg{flex:none;transition:transform .22s}.home-tags[open] summary svg{transform:rotate(180deg)}.home-tags-text{color:var(--muted);margin:0;padding:0 0 1rem;font-size:.86rem;line-height:1.8}.home-tags-hobby{color:var(--muted);margin:0;padding:0 0 1rem;font-size:.9rem;line-height:1.8}article{color:var(--tw-prose-body);max-width:65ch}article :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}article :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}article :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}article :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}article :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)),article :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)),article :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}article :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}article :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}article :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}article :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}article :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}article :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}article :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}article :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}article :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}article :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}article :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}article :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}article :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}article :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}article :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}article :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}article :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}article :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}article :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}article :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}article :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}article :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}article :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}article :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}article :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}article :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}article :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}article :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}article :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}article :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}article :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}article :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,article :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}article :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)),article :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}article :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}article :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}article :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)),article :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)),article :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}article :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}article :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}article :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before,article :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}article :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}article :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}article :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}article :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}article :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}article :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}article :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}article :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}article :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}article :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}article :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}article{--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}article :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}article :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}article :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),article :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}article :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}article :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}article :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}article :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}article :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}article :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}article :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}article :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}article :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),article :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),article :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),article :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}article :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}article :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}article :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}article :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}article :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}article :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}article :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}article :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}article{max-width:100%}article:where(.dark,.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)}article{color:var(--ink)}[data-article-content]{font-size:1.0625rem;line-height:1.9}article pre.astro-code{color:#383a42;border:0;border-radius:.5rem;max-width:100%;margin:.75rem 0;padding:.75rem 1rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.875rem;line-height:1.714;position:relative;overflow-x:auto;background-color:#f5f5f5!important}article pre.astro-code code{color:inherit;font:inherit;background:0 0;padding:0}article pre.astro-code .line{display:inline}article blockquote p:before,article blockquote p:after{content:none}article hr{border-color:var(--line);opacity:1}article blockquote{border-left-color:var(--line-strong);color:var(--ink);font-style:normal;font-weight:400}article :not(pre)>code{color:var(--ink);background-color:#aaaaaa18;border-radius:.25rem;margin:-.2em 0;padding:.2em .3em;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.9em;font-weight:500}article :not(pre)>code:before,article :not(pre)>code:after{content:none}.code-copy-button{z-index:1;color:currentColor;cursor:pointer;opacity:.45;background:0 0;border:0;border-radius:.25rem;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;padding:0;transition:background .18s,opacity .18s;display:inline-flex;position:absolute;top:.75rem;right:.75rem}.code-copy-button:hover,.code-copy-button:focus-visible,.code-copy-button.copied{background:currentColor}@supports (color:color-mix(in lab, red, red)){.code-copy-button:hover,.code-copy-button:focus-visible,.code-copy-button.copied{background:color-mix(in srgb, currentColor 8%, transparent)}}.code-copy-button:hover,.code-copy-button:focus-visible,.code-copy-button.copied{opacity:1}.code-copy-button [hidden]{display:none}html.dark article pre.astro-code{color:var(--shiki-dark,#abb2bf)!important;background-color:#1b1b1b!important}html.dark article pre.astro-code span{color:var(--shiki-dark,#abb2bf)!important}[data-article-content] :is(h2,h3,h4,h5,h6){scroll-margin-top:7rem}.article-heading{margin:0 0 2.5rem}.article-heading h1{color:var(--ink);letter-spacing:-.03em;margin:0;font-size:1.8rem;line-height:1.25}.article-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.45rem;margin-top:.6rem;font-size:.8rem;display:flex}.post-cover{aspect-ratio:1.9;border:1px solid var(--line);background:var(--ink);border-radius:.5rem;width:100%;margin:-.75rem 0 2.5rem;display:block;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.post-cover{background:color-mix(in srgb, var(--ink) 5%, transparent)}}.post-cover{object-fit:cover}.intro-copy p{margin:0 0 1.45rem;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:1.06rem;line-height:1.9}article a,.social-links a{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:.18em;transition:text-decoration-color .18s}article a:hover,.social-links a:hover{text-decoration-color:currentColor}.external-link:after,article a[href^=http]:not(.external-link):after{content:"↗";color:currentColor;opacity:.65;margin-left:.22em;font-size:.78em;line-height:1;display:inline-block;transform:translateY(-.12em)}.no-external-arrow:after{content:none!important}.icon-link.external-link:after{content:none}.intro-divider{background:var(--line-strong);width:3rem;height:1px;margin:2.8rem auto}.connect-section h2{margin:0 0 .8rem;font-size:1.05rem;font-weight:600}.connect-section p{color:var(--muted);margin:0;line-height:1.8}.social-links{flex-wrap:wrap;gap:.75rem 1rem;margin-top:1.25rem;font-size:.95rem;display:flex}.section-title{color:var(--ink);letter-spacing:-.03em;margin:0;font-size:1.8rem;font-weight:600}.empty-state{color:var(--muted);margin:1rem 0 0}.friends-list{margin:2.25rem 0 0;padding:0;list-style:none}.friend-item{border-bottom:1px solid var(--line);align-items:center;gap:.8rem;padding:.9rem 0;display:flex}.friend-item:first-child{border-top:1px solid var(--line)}.friend-avatar{background:var(--ink);border-radius:999px;flex:none;width:2.5rem;height:2.5rem}@supports (color:color-mix(in lab, red, red)){.friend-avatar{background:color-mix(in srgb, var(--ink) 6%, transparent)}}.friend-avatar{object-fit:cover}.friend-copy{min-width:0}.friend-name{color:var(--ink);align-items:center;gap:.3rem;font-size:.92rem;font-weight:600;text-decoration:none;display:inline-flex}.friend-name svg{color:var(--muted);transition:transform .18s,color .18s}.friend-name:hover svg{color:var(--ink);transform:translate(.1rem,-.1rem)}.friend-description{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:.2rem 0 0;font-size:.82rem;line-height:1.5;overflow:hidden}.friends-apply{border-bottom:1px solid var(--line);margin-top:2.25rem}.friends-apply summary{color:var(--muted);cursor:pointer;padding:.75rem 0;font-size:.84rem;list-style:none}.friends-apply summary::-webkit-details-marker{display:none}.friends-apply summary:after{float:right;content:"+";font-size:1rem}.friends-apply[open] summary:after{content:"-"}.friends-apply-body{padding:.35rem 0 1.25rem}.friends-apply-body>p{color:var(--muted);margin:0 0 .9rem;font-size:.8rem}.friends-site-info{border-top:1px solid var(--line);margin:0;font-size:.78rem}.friends-site-info div{border-bottom:1px solid var(--line);grid-template-columns:3.5rem minmax(0,1fr);gap:.75rem;padding:.45rem 0;display:grid}.friends-site-info dt{color:var(--muted)}.friends-site-info dd{overflow-wrap:anywhere;color:var(--ink);margin:0}.friends-apply-actions{flex-wrap:wrap;align-items:center;gap:.8rem;margin-top:.9rem;display:flex}.friends-apply-actions a,.friends-apply-actions button{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:0;align-items:center;gap:.35rem;padding:0;font-size:.78rem;text-decoration:none;display:inline-flex}.friends-apply-actions a:hover,.friends-apply-actions button:hover{color:var(--ink)}.friends-copy-status{color:var(--muted);font-size:.75rem}.blog-subnav{flex-wrap:wrap;gap:.3rem 1.1rem;margin:0 0 2.8rem;display:flex}.blog-subnav-link{color:var(--muted);cursor:pointer;padding:.2rem 0;font-size:1.2rem}.blog-subnav-link:hover,.blog-subnav-link.active{color:var(--ink)}.blog-subnav-link.active{font-weight:600}.blog-year{color:var(--muted);letter-spacing:.08em;margin:0;font-size:.8rem;font-weight:600}.blog-year-heading{justify-content:space-between;align-items:center;display:flex}.archive-link{color:var(--muted);opacity:.65;justify-content:center;align-items:center;transition:color .18s,opacity .18s;display:inline-flex}.archive-link:hover,.archive-link:focus-visible{color:var(--ink);opacity:1}.blog-card{border-bottom:1px solid var(--line);color:var(--ink);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;transition:border-color .18s,color .18s;display:flex}.blog-card:hover{border-color:var(--line-strong)}.blog-card-main{min-width:0}.blog-card-title{font-weight:600;line-height:1.4}.blog-card-description{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:.25rem;font-size:.88rem;overflow:hidden}.blog-card-meta{color:var(--muted);flex-shrink:0;align-items:center;gap:.7rem;font-size:.78rem;display:flex}.blog-card-meta svg{transition:transform .18s}.blog-card:hover .blog-card-meta svg{transform:translate(.15rem,-.15rem)}.archive-list{gap:2.5rem;display:grid}.archive-year h2{color:var(--muted);letter-spacing:.08em;margin:0 0 .75rem;font-size:.8rem;font-weight:600}.archive-year ul{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.archive-year li{grid-template-columns:3.25rem minmax(0,1fr);align-items:baseline;gap:.75rem;display:grid}.archive-year time{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.78rem}.archive-year a{color:var(--ink);text-decoration:none}.archive-year a:hover{text-underline-offset:.2em;text-decoration:underline}.archive-status,.article-archived{color:var(--muted);margin-left:.55rem;font-size:.72em;font-weight:400}.moment-compose-button{z-index:100;width:2.5rem;height:2.5rem;color:var(--ink);opacity:.3;background:0 0;border-radius:999px;justify-content:center;align-items:center;transition:background .18s,opacity .18s;display:inline-flex;position:fixed;bottom:.75rem;right:3.5rem}.moment-compose-button:hover,.moment-compose-button:focus-visible{background:var(--ink)}@supports (color:color-mix(in lab, red, red)){.moment-compose-button:hover,.moment-compose-button:focus-visible{background:color-mix(in srgb, var(--ink) 10%, transparent)}}.moment-compose-button:hover,.moment-compose-button:focus-visible{opacity:1}.projects-list{gap:3.25rem;display:grid}.projects-title{margin-bottom:2rem}.project-showcase{border-bottom:1px solid var(--line);padding-bottom:3.25rem}.project-showcase:last-child{border-bottom:0;padding-bottom:0}.project-showcase-header{justify-content:space-between;align-items:flex-start;gap:1.5rem;margin-bottom:.55rem;display:flex}.project-showcase-copy{min-width:0}.project-showcase-copy h2{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:1.2rem;font-weight:600;overflow:hidden}.project-showcase-copy p{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:.35rem 0 0;font-size:.9rem;line-height:1.6;overflow:hidden}.project-stars{color:var(--muted);align-items:center;gap:.25rem;margin-top:.35rem;font-size:.72rem;display:inline-flex}.project-showcase-links{flex-shrink:0;align-items:center;gap:.8rem;display:flex}.project-showcase-links a{color:var(--muted);align-items:center;gap:.25rem;font-size:.78rem;text-decoration:none;transition:color .18s;display:inline-flex}.project-showcase-links a:hover{color:var(--ink)}.project-carousel{position:relative}.project-carousel-viewport{aspect-ratio:1.9;border:1px solid var(--line);background:var(--ink);border-radius:.5rem;display:block;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.project-carousel-viewport{background:color-mix(in srgb, var(--ink) 5%, transparent)}}.project-carousel-slide{object-fit:cover;width:100%;max-width:none;height:100%;margin:0;transition:transform .24s;display:none}.project-carousel-slide.active{display:block}.project-carousel-viewport:hover .project-carousel-slide.active{transform:scale(1.015)}.project-carousel-controls{justify-content:flex-end;align-items:center;gap:.45rem;margin-top:.55rem;display:flex}.project-carousel-button{border:1px solid var(--line);width:1.8rem;height:1.8rem;color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;transition:border-color .18s,color .18s,background .18s;display:inline-flex}.project-carousel-button:hover{border-color:var(--line-strong);color:var(--ink);background:var(--ink)}@supports (color:color-mix(in lab, red, red)){.project-carousel-button:hover{background:color-mix(in srgb, var(--ink) 5%, transparent)}}.project-carousel-counter{min-width:2.5rem;color:var(--muted);text-align:center;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.72rem}.photos-container{max-width:80rem}.photos-grid{grid-template-columns:1fr;gap:1rem;display:grid}.photo-item{aspect-ratio:1;background:var(--ink);margin:0;display:block;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.photo-item{background:color-mix(in srgb, var(--ink) 6%, transparent)}}.photo-item img{object-fit:cover;width:100%;height:100%;transition:transform .26s,opacity .18s;display:block}.photo-item:hover img{opacity:.92;transform:scale(1.015)}.notes-stream{max-width:42rem;margin:0;padding:0;list-style:none}.note-item{border-bottom:1px solid var(--line);padding:1.4rem 0;position:relative}.note-item:first-child{padding-top:0}.note-meta{color:var(--muted);flex:none;gap:.65rem;margin-bottom:.65rem;font-size:.72rem;display:flex}.note-anchor{color:var(--note-accent,var(--muted));font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;text-decoration:none;transition:color .18s}.note-anchor:hover{color:var(--ink)}.note-meta .note-relative:before,.note-meta time:before{color:var(--line-strong);content:"·";margin-right:.65rem}.note-accent-rose{--note-accent:#e11d48}.note-accent-orange{--note-accent:#ea580c}.note-accent-amber{--note-accent:#d97706}.note-accent-sky{--note-accent:#0284c7}.note-accent-indigo{--note-accent:#4f46e5}.note-accent-fuchsia{--note-accent:#c026d3}.note-content{color:var(--ink);font-size:.95rem;line-height:1.8}.note-content>:first-child{margin-top:0}.note-content>:last-child{margin-bottom:0}.note-content p,.note-content ul,.note-content ol,.note-content blockquote{margin:.65rem 0}.note-content pre{border:1px solid var(--line);background:var(--ink);border-radius:.5rem;margin:.9rem 0;padding:.9rem 1rem;overflow-x:auto}@supports (color:color-mix(in lab, red, red)){.note-content pre{background:color-mix(in srgb, var(--ink) 5%, transparent)}}.note-content pre{color:var(--ink);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.8rem;line-height:1.7}.note-content pre code{color:inherit;font:inherit;background:0 0;padding:0}.note-content :not(pre)>code{border:1px solid var(--line);background:var(--ink);border-radius:.25rem;padding:.1rem .3rem}@supports (color:color-mix(in lab, red, red)){.note-content :not(pre)>code{background:color-mix(in srgb, var(--ink) 5%, transparent)}}.note-content :not(pre)>code{color:var(--ink);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.85em}.note-content img{border-radius:.5rem;max-width:min(100%,32rem);margin:.9rem 0;display:block}.note-content a{color:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:.18em}.note-content a:hover{text-decoration-color:currentColor}.animate{opacity:0;transition:opacity .55s,transform .55s;transform:translateY(.5rem)}.animate.show{opacity:1;transform:translateY(0)}.article-footer{max-width:65ch;color:var(--ink);margin:2.5rem 0 1rem}@supports (color:color-mix(in lab, red, red)){.article-footer{color:color-mix(in srgb, var(--ink) 48%, transparent)}}.article-footer{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.82rem}.article-title{color:var(--ink)}.toc-root{display:none}.toc-root.has-headings{display:block}.toc-sidebar{z-index:20;width:12rem;max-height:48vh;color:var(--muted);visibility:visible;opacity:.5;pointer-events:auto;transition:opacity .32s;display:none;position:fixed;top:7rem;right:max(1rem,50vw - 36rem)}.toc-sidebar:hover,.toc-sidebar:focus-within{opacity:.9}.toc-heading{color:var(--muted);align-items:center;gap:.4rem;margin-bottom:.55rem;font-size:.75rem;font-weight:600;display:flex}.toc-nav,.toc-drawer-nav{scrollbar-width:none;max-height:42vh;overflow:hidden auto}.toc-nav{padding-left:.75rem;position:relative}.toc-nav ul:before{background:var(--line);content:"";width:1px;position:absolute;inset:0 auto 0 -.75rem}.toc-nav ul:after{width:2px;height:var(--toc-progress,0px);background:var(--line-strong);content:"";pointer-events:none;border-radius:999px;transition:height .26s;position:absolute;inset:0 auto auto -.75rem}.toc-nav::-webkit-scrollbar{display:none}.toc-drawer-nav::-webkit-scrollbar{display:none}.toc-nav ul,.toc-drawer-nav ul{grid-template-columns:minmax(0,1fr);gap:.32rem;margin:0;padding:0;list-style:none;display:grid}.toc-nav ul{position:relative}.toc-nav li{min-width:0}.toc-link,.toc-mobile-link{overflow-wrap:anywhere;color:var(--muted);text-overflow:clip;white-space:normal;font-size:.76rem;line-height:1.4;text-decoration:none;transition:color .18s;display:block}.toc-link{box-sizing:border-box;overflow-wrap:normal;text-overflow:ellipsis;white-space:nowrap;width:100%;min-width:0;overflow:hidden}.toc-link:hover,.toc-link.active,.toc-mobile-link:hover,.toc-mobile-link.active{color:var(--ink)}.toc-link.active,.toc-mobile-link.active{font-weight:600}.toc-mobile-toggle{z-index:100;width:2.5rem;height:2.5rem;color:var(--ink);cursor:pointer;opacity:.3;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;transition:background .18s,opacity .18s;display:none;position:fixed;bottom:.75rem;right:4rem}.toc-mobile-toggle:hover,.toc-mobile-toggle:focus-visible{background:var(--ink)}@supports (color:color-mix(in lab, red, red)){.toc-mobile-toggle:hover,.toc-mobile-toggle:focus-visible{background:color-mix(in srgb, var(--ink) 10%, transparent)}}.toc-mobile-toggle:hover,.toc-mobile-toggle:focus-visible{opacity:1}.toc-drawer[hidden]{display:none}.toc-drawer{z-index:150;position:fixed;inset:0}.toc-drawer-backdrop{cursor:pointer;background:#0000005c;border:0;width:100%;position:absolute;inset:0}.toc-drawer-panel{border-top:1px solid var(--line);background:var(--paper);max-height:72vh;padding:.75rem 1rem 1.25rem;position:absolute;bottom:0;left:0;right:0}.toc-drawer-header{color:var(--ink);justify-content:space-between;align-items:center;margin-bottom:.75rem;font-size:.9rem;display:flex}.toc-drawer-close{width:2rem;height:2rem;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.toc-drawer-close:hover,.toc-drawer-close:focus-visible{color:var(--ink);background:var(--ink)}@supports (color:color-mix(in lab, red, red)){.toc-drawer-close:hover,.toc-drawer-close:focus-visible{background:color-mix(in srgb, var(--ink) 8%, transparent)}}.toc-drawer-nav{max-height:56vh}.toc-mobile-link{white-space:normal;padding:.35rem 0;font-size:.88rem}html.toc-open{overflow:hidden}.article-footer a{color:inherit;text-decoration:none;transition:color .18s}.article-footer a:hover{color:var(--ink)}.comments-section{max-width:65ch;margin:4rem auto 0}.guestbook-section{margin-top:0}.guestbook-section .comments-heading{margin-bottom:1.75rem}.guestbook-section .comments-heading h2{letter-spacing:-.03em;font-size:1.8rem;line-height:1.25}.comments-heading{align-items:baseline;gap:.55rem;margin-bottom:1.25rem;display:flex}.comments-heading h2{color:var(--ink);margin:0;font-size:1.05rem;font-weight:600}.comments-heading span{color:var(--muted);font-size:.78rem}.comment-form{margin-bottom:2.25rem}.comment-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-bottom:.75rem;display:grid}.comment-fields label{gap:.3rem;display:grid}.comment-fields label span{color:var(--muted);font-size:.72rem}.comment-form input:not(.comment-honeypot),.comment-form textarea{border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;background:0 0;border-radius:.35rem;outline:none;padding:.55rem .65rem;font-size:.84rem;transition:border-color .18s,background .18s}.comment-form textarea{resize:vertical;min-height:7rem;line-height:1.65;display:block}.comment-form input:not(.comment-honeypot):focus,.comment-form textarea:focus{border-color:var(--line-strong);background:var(--ink)}@supports (color:color-mix(in lab, red, red)){.comment-form input:not(.comment-honeypot):focus,.comment-form textarea:focus{background:color-mix(in srgb, var(--ink) 2%, transparent)}}.comment-tool{width:1.8rem;height:1.8rem;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.comment-tool:hover{color:var(--ink);background:var(--ink)}@supports (color:color-mix(in lab, red, red)){.comment-tool:hover{background:color-mix(in srgb, var(--ink) 7%, transparent)}}.comment-toolbar{justify-content:space-between;align-items:center;gap:.75rem;margin-top:.55rem;display:flex}.emoji-wrap{position:relative}.emoji-picker{z-index:10;border:1px solid var(--line);background:var(--paper);width:min(25rem,100vw - 2rem);box-shadow:0 .75rem 2rem var(--ink);border-radius:.4rem;flex-direction:column;padding:.45rem;display:flex;position:absolute;bottom:calc(100% + .5rem);left:0}@supports (color:color-mix(in lab, red, red)){.emoji-picker{box-shadow:0 .75rem 2rem color-mix(in srgb, var(--ink) 12%, transparent)}}.emoji-tabs{border-top:1px solid var(--line);order:2;grid-template-columns:repeat(7,minmax(0,1fr));gap:.2rem;width:100%;padding-top:.45rem;display:grid;overflow:hidden}.emoji-tabs button{width:100%;min-width:0;color:var(--muted);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;border-radius:.25rem;padding:.3rem .1rem;font-size:.68rem;overflow:hidden}.emoji-tabs button.active,.emoji-tabs button:hover{color:var(--ink);background:var(--ink)}@supports (color:color-mix(in lab, red, red)){.emoji-tabs button.active,.emoji-tabs button:hover{background:color-mix(in srgb, var(--ink) 7%, transparent)}}.emoji-grid{order:1;grid-template-columns:repeat(auto-fill,minmax(3.15rem,1fr));gap:.2rem;max-height:16rem;padding-top:.45rem;display:grid;overflow-y:auto}.emoji-grid button{aspect-ratio:1;cursor:pointer;background:0 0;border:0;border-radius:.25rem;justify-content:center;align-items:center;display:flex}.emoji-grid button:hover{background:var(--ink)}@supports (color:color-mix(in lab, red, red)){.emoji-grid button:hover{background:color-mix(in srgb, var(--ink) 7%, transparent)}}.emoji-grid img{object-fit:contain;width:2.1rem;height:2.1rem}.emoji-grid[data-pack=fufu] img,.emoji-grid[data-pack=suzume] img,.emoji-grid[data-pack=lingmeng] img{width:5rem;height:5rem}.emoji-grid button span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.68rem;line-height:1.2;overflow:hidden}.comment-submit{border:1px solid var(--line);color:var(--muted);cursor:pointer;font:inherit;background:0 0;border-radius:.35rem;align-items:center;gap:.4rem;padding:.45rem .7rem;font-size:.8rem;transition:border-color .18s,color .18s,background .18s;display:inline-flex}.comment-submit:hover:not(:disabled){border-color:var(--line-strong);color:var(--ink);background:var(--ink)}@supports (color:color-mix(in lab, red, red)){.comment-submit:hover:not(:disabled){background:color-mix(in srgb, var(--ink) 5%, transparent)}}.comment-submit:disabled{cursor:wait;opacity:.5}.comment-status{min-height:1.2em;color:var(--muted);margin:.6rem 0 0;font-size:.78rem}.comment-honeypot{opacity:0;width:1px;height:1px;position:absolute;left:-9999px}.comment-list{gap:1rem;display:grid}.comment-item{border:1px solid var(--line);display:block}@supports (color:color-mix(in lab, red, red)){.comment-item{border:1px solid color-mix(in srgb, var(--line) 68%, transparent)}}.comment-item{background:0 0;border-radius:.5rem;padding:1rem}.comment-body{min-width:0}.comment-head{align-items:center;gap:.75rem;display:flex}.comment-avatar-wrap{flex:none;position:relative}.comment-replies{border-left:1px solid var(--line);margin:1rem 0 0}@supports (color:color-mix(in lab, red, red)){.comment-replies{border-left:1px solid color-mix(in srgb, var(--line) 74%, transparent)}}.comment-replies{padding-left:.85rem}.comment-replies .comment-item{border:0;border-bottom:1px solid var(--line)}@supports (color:color-mix(in lab, red, red)){.comment-replies .comment-item{border-bottom:1px solid color-mix(in srgb, var(--line) 74%, transparent)}}.comment-replies .comment-item{border-radius:0;padding:.75rem 0}.comment-replies .comment-item:first-child{padding-top:0}.comment-replies .comment-item:last-child{border-bottom:0;padding-bottom:0}.comment-replies .comment-avatar{width:1.75rem;height:1.75rem}.comment-replies .comment-head{gap:.65rem}.comment-replies .comment-author{font-size:.76rem}.comment-replies .comment-author time{font-size:.68rem}.comment-replies .comment-content{margin-top:.55rem;font-size:.86rem}.comment-avatar{background:var(--ink);border:0;border-radius:999px;width:2.25rem;height:2.25rem;display:block;margin:0!important}@supports (color:color-mix(in lab, red, red)){.comment-avatar{background:color-mix(in srgb, var(--ink) 7%, transparent)}}.comment-avatar{object-fit:cover}.comment-owner-mark{pointer-events:none;border:1px solid var(--paper);background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAY1BMVEUAAAD/zAD/zQD/xwD/zwD/ywD/zAD/ywD/zQD/zAD/zAD/zAD/zAD/zQD/ygD/ywD/zAD/zAD/////+d///O//5oD/1jD/0iD/31//8r//43D/4GD/3FD/2UD/7qv/6JD/9s/3vr4WAAAAEXRSTlMAv98gEEDQcKCAUO+Qj2CwrzmNzEwAAAGgSURBVEjHpdfRmoIgEIbhAUWU2mrQdG2zuv+r3DpoWZX5kafv/H2cSBEpXulsXWl+ptWpMSVtrmwUL1K22ERNkHNvtlAx7SAtFMNqMLzdcSJ9EGj5xRv6ituKN1VFRi80b0wXwKZ1ucAVZ1TNNV4rvGoHFrt0La+zm37w2Xvf86pdWLQa2o4jqbd10PqRY70fE3Hob//qzuDSBlt/ZXBpha0fWL50kbAtC5VPbLH1Nwk34tSTf3dhFucuOVbf/eGJ5blNwnoWc9Qk7ChjS0ds/V3GNSls/VXG1freHFr/v64NPeb3iyZg1515FuXYboAY254hPudYXixY32ZYjfbcK7asqJbxPfF/H8nKePShn+gz6WScsGyoFO0k2rCVKAlfghU3sUbCt8ReYonkuR/hho5WoK03YRXa9Cds2RDY9c/YakLvmxFadkTg0h20dXi5Rw5vQ7CJE5GN/c2dbHl2ENxzVvtPjlLLw6NOEnwEzLdBV9nHv+xV2wc775AcfWfBZ0KNrSoI5TSg5vNPI1xh1Uo2OR91pjkp/WK6qq0T5C94FL1DBHlUuAAAAABJRU5ErkJggg==) 50%/contain no-repeat;border-radius:999px;width:.75rem;height:.75rem;display:inline-flex;position:absolute;bottom:-.15rem;right:-.15rem}.comment-replies .comment-owner-mark{width:.68rem;height:.68rem}.comment-author{min-width:0;color:var(--ink);justify-content:start;align-items:baseline;gap:.15rem;font-size:.82rem;font-weight:500;display:grid}.comment-author>div{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.comment-author a{color:inherit;text-decoration:underline dotted;-webkit-text-decoration-color:var(--muted);-webkit-text-decoration-color:var(--muted);text-decoration-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.comment-author a{-webkit-text-decoration-color:color-mix(in srgb, var(--muted) 65%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--muted) 65%, transparent);text-decoration-color:color-mix(in srgb, var(--muted) 65%, transparent)}}.comment-author a{text-underline-offset:.16em}.comment-author a:hover{text-decoration-style:solid;text-decoration-color:currentColor}.comment-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.45rem;font-size:.72rem;display:flex}.comment-author time,.comment-user-agent{color:var(--muted);font-size:.66rem}.comment-user-agent{opacity:.75;align-items:center;gap:.22rem;display:inline-flex}.comment-user-agent:before{content:"·";opacity:.6;margin-right:.2rem}.comment-meta-icon{fill:currentColor;flex:none;width:.7rem;height:.7rem}.comment-owner{color:var(--ink);background:var(--ink);border-radius:.2rem;padding:.04rem .3rem}@supports (color:color-mix(in lab, red, red)){.comment-owner{background:color-mix(in srgb, var(--ink) 6%, transparent)}}.comment-owner{font-size:.6rem}.comment-reply-context{color:var(--muted);font-size:.72rem;font-weight:400}.comment-content{color:var(--ink);overflow-wrap:anywhere;margin-top:.75rem;font-size:.9rem;line-height:1.75}.comment-content code{border:1px solid var(--line);background:var(--ink);border-radius:.2rem;padding:.08rem .25rem}@supports (color:color-mix(in lab, red, red)){.comment-content code{background:color-mix(in srgb, var(--ink) 5%, transparent)}}.comment-content code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.85em}.comment-content a{color:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:.16em}.comment-content img:not(.comment-emoji){border-radius:.4rem;max-width:100%;display:block;margin:.6rem 0!important}.comment-emoji{vertical-align:text-bottom;object-fit:contain;width:1.55rem;height:1.55rem;display:inline-block;border:0!important;margin:0 .08rem!important}.comment-emoji-fufu,.comment-emoji-suzume,.comment-emoji-lingmeng{width:80px;height:80px}.comment-reply{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:.25rem;justify-content:center;align-items:center;gap:.3rem;padding:.35rem .45rem;font-size:.72rem;transition:color .18s,background .18s;display:inline-flex}.comment-action-icon{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:.85rem;height:.85rem}.comment-cancel-icon,.comment-reply[aria-expanded=true] .comment-reply-icon{display:none}.comment-reply[aria-expanded=true] .comment-cancel-icon{display:block}.comment-reply:hover{color:var(--ink);background:var(--ink)}@supports (color:color-mix(in lab, red, red)){.comment-reply:hover{background:color-mix(in srgb, var(--ink) 6%, transparent)}}.comment-actions{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:.75rem;margin-top:.85rem;display:flex}@supports (color:color-mix(in lab, red, red)){.comment-actions{border-top:1px solid color-mix(in srgb, var(--line) 76%, transparent)}}.comment-actions{padding-top:.45rem}.comment-replies-toggle{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:.25rem;justify-content:center;align-items:center;gap:.35rem;padding:.25rem .45rem;font-size:.72rem;transition:color .18s,background .18s;display:inline-flex}.comment-replies-toggle:hover,.comment-replies-toggle:focus-visible{color:var(--ink);background:var(--ink)}@supports (color:color-mix(in lab, red, red)){.comment-replies-toggle:hover,.comment-replies-toggle:focus-visible{background:color-mix(in srgb, var(--ink) 6%, transparent)}}.comment-replies-icon{transition:transform .18s}.comment-replies-toggle.is-expanded .comment-replies-icon{transform:rotate(180deg)}.comment-reply-form-slot{min-width:0}.comment-inline-form{border:1px solid var(--line);margin-top:.75rem}@supports (color:color-mix(in lab, red, red)){.comment-inline-form{border:1px solid color-mix(in srgb, var(--line) 76%, transparent)}}.comment-inline-form{border-radius:.4rem;padding:.75rem}.comment-inline-form input:not(.comment-honeypot),.comment-inline-form textarea{border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;background:0 0;border-radius:.35rem;outline:none;padding:.55rem .65rem;font-size:.84rem;transition:border-color .18s,background .18s}.comment-inline-form input:not(.comment-honeypot):focus,.comment-inline-form textarea:focus{border-color:var(--line-strong);background:var(--ink)}@supports (color:color-mix(in lab, red, red)){.comment-inline-form input:not(.comment-honeypot):focus,.comment-inline-form textarea:focus{background:color-mix(in srgb, var(--ink) 2%, transparent)}}.comment-inline-form .comment-fields{margin-bottom:.65rem}.comment-inline-form textarea{resize:vertical;min-height:5rem;line-height:1.65;display:block}.comment-inline-toolbar{justify-content:flex-end;align-items:center;gap:.5rem;margin-top:.45rem;display:flex}.comment-inline-cancel{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:.25rem;padding:.4rem .55rem;font-size:.78rem}.comment-inline-cancel:hover,.comment-inline-cancel:focus-visible{color:var(--ink);background:var(--ink)}@supports (color:color-mix(in lab, red, red)){.comment-inline-cancel:hover,.comment-inline-cancel:focus-visible{background:color-mix(in srgb, var(--ink) 6%, transparent)}}.spoiler{color:#0000;background:var(--ink);cursor:default;border-radius:.2rem;padding:0 .2rem;transition:color .26s,background-color .26s}.spoiler:hover,.spoiler:focus-visible{color:var(--ink);background:var(--ink)}@supports (color:color-mix(in lab, red, red)){.spoiler:hover,.spoiler:focus-visible{background:color-mix(in srgb, var(--ink) 9%, transparent)}}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.back-to-top{z-index:100;width:2.5rem;height:2.5rem;color:var(--ink);cursor:pointer;opacity:.3;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;transition:background .18s,opacity .18s;display:none;position:fixed;bottom:.75rem;right:.75rem}html.scrolled .back-to-top{display:inline-flex}.image-lightbox[hidden]{display:none}.image-lightbox{z-index:200;background:var(--paper);justify-content:center;align-items:center;padding:0;display:flex;position:fixed;inset:0}@supports (color:color-mix(in lab, red, red)){.image-lightbox{background:color-mix(in srgb, var(--paper) 48%, transparent)}}.image-lightbox{backdrop-filter:blur(8px)saturate(.8)}.image-lightbox-image{object-fit:contain;width:100vw;max-width:100vw;height:100vh;max-height:100vh;box-shadow:none;border-radius:0}html.lightbox-open{overflow:hidden}.back-to-top:hover,.back-to-top:focus-visible{background:var(--ink)}@supports (color:color-mix(in lab, red, red)){.back-to-top:hover,.back-to-top:focus-visible{background:color-mix(in srgb, var(--ink) 10%, transparent)}}.back-to-top:hover,.back-to-top:focus-visible{opacity:1}@media print{.back-to-top{display:none}}@media (width<=767px){main{padding-top:6rem}.desktop-nav{display:none}.mobile-primary-link{display:inline-flex}.github-link,.rss-link{display:none}.brand-name{font-size:.9rem}.comment-fields{grid-template-columns:1fr}}@media (width>=768px){.photos-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-showcase-header{align-items:center}}@media (width<=1279px){.toc-mobile-toggle{display:inline-flex}}@media (width>=1280px){.toc-sidebar{display:block}}@media (width<=767px){.home-intro h1,.section-title,.article-heading h1,.article-title{font-size:1.65rem}[data-article-content]{font-size:1rem;line-height:1.85}}@media (width>=1024px){.photos-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=1280px){.photos-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}@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-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-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{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:"<percentage>";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:"<percentage>";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:"<length>";inherits:false;initial-value:0}@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-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:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inter-latin-400-normal.C38fXH4l.woff2)format("woff2"),url(/_astro/inter-latin-400-normal.CyCys3Eg.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/inter-latin-600-normal.LgqL8muc.woff2)format("woff2"),url(/_astro/inter-latin-600-normal.CiBQ2DWP.woff)format("woff")}@font-face{font-family:Lora;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/lora-cyrillic-ext-400-normal.DwaaZvol.woff2)format("woff2"),url(/_astro/lora-cyrillic-ext-400-normal.PiPRSBNu.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Lora;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/lora-cyrillic-400-normal.CbVom6TB.woff2)format("woff2"),url(/_astro/lora-cyrillic-400-normal.BedExNGj.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Lora;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/lora-math-400-normal.D2gccGFf.woff2)format("woff2"),url(/_astro/lora-math-400-normal.BToItYw_.woff)format("woff");unicode-range:U+302-303,U+305,U+307-308,U+310,U+312,U+315,U+31A,U+326-327,U+32C,U+32F-330,U+332-333,U+338,U+33A,U+346,U+34D,U+391-3A1,U+3A3-3A9,U+3B1-3C9,U+3D1,U+3D5-3D6,U+3F0-3F1,U+3F4-3F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE??}@font-face{font-family:Lora;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/lora-symbols-400-normal.DmcY0X7a.woff2)format("woff2"),url(/_astro/lora-symbols-400-normal.BK2bqsD8.woff)format("woff");unicode-range:U+1-C,U+E-1F,U+7F-9F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+28??,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B??,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F0??,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F7??,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB??}@font-face{font-family:Lora;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/lora-vietnamese-400-normal.BxA6xcFr.woff2)format("woff2"),url(/_astro/lora-vietnamese-400-normal.DlgyXXxo.woff)format("woff");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:Lora;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/lora-latin-ext-400-normal.CyviI4c-.woff2)format("woff2"),url(/_astro/lora-latin-ext-400-normal.B9GmMl5M.woff)format("woff");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:Lora;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/lora-latin-400-normal.DnxXpLNu.woff2)format("woff2"),url(/_astro/lora-latin-400-normal.DBJS-Hc6.woff)format("woff");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}@font-face{font-family:Lora;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/lora-cyrillic-ext-600-normal.CYLe3Bq4.woff2)format("woff2"),url(/_astro/lora-cyrillic-ext-600-normal.BobJ8QCm.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Lora;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/lora-cyrillic-600-normal.DuzuWObJ.woff2)format("woff2"),url(/_astro/lora-cyrillic-600-normal.j6UMqgXb.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Lora;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/lora-math-600-normal.B9Wi-uy2.woff2)format("woff2"),url(/_astro/lora-math-600-normal.soY6uGQW.woff)format("woff");unicode-range:U+302-303,U+305,U+307-308,U+310,U+312,U+315,U+31A,U+326-327,U+32C,U+32F-330,U+332-333,U+338,U+33A,U+346,U+34D,U+391-3A1,U+3A3-3A9,U+3B1-3C9,U+3D1,U+3D5-3D6,U+3F0-3F1,U+3F4-3F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE??}@font-face{font-family:Lora;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/lora-symbols-600-normal.DaMEG5Dn.woff2)format("woff2"),url(/_astro/lora-symbols-600-normal.CURAubwP.woff)format("woff");unicode-range:U+1-C,U+E-1F,U+7F-9F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+28??,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B??,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F0??,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F7??,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB??}@font-face{font-family:Lora;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/lora-vietnamese-600-normal.B_IFhWKN.woff2)format("woff2"),url(/_astro/lora-vietnamese-600-normal.BnEhOXH8.woff)format("woff");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:Lora;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/lora-latin-ext-600-normal.CURVZmIT.woff2)format("woff2"),url(/_astro/lora-latin-ext-600-normal.BX8pxmH4.woff)format("woff");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:Lora;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/lora-latin-600-normal.B-3RcLOQ.woff2)format("woff2"),url(/_astro/lora-latin-600-normal.Dc3EneHn.woff)format("woff");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}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}.paw-logo-shell[data-astro-cid-de4vokdz]{z-index:40;pointer-events:none;opacity:.7;display:none;position:fixed;bottom:2rem;left:1.5rem}.paw-logo-link[data-astro-cid-de4vokdz]{color:var(--muted);transition:color .3s ease-in-out;display:block}.paw-logo[data-astro-cid-de4vokdz]{pointer-events:auto;width:2.5rem;height:2.5rem;display:block}.paw-logo-link[data-astro-cid-de4vokdz]:hover{color:var(--ink)}.paw-outline[data-astro-cid-de4vokdz]{fill:none;stroke:currentColor;stroke-width:2.5px;stroke-linecap:round;stroke-dasharray:120;stroke-dashoffset:120px;animation:12s ease-in-out infinite paw-outline-loop}.paw-group[data-astro-cid-de4vokdz]{fill:currentColor;animation:12s ease-in-out infinite paw-fade-loop}@media (width>=1280px){.paw-logo-shell[data-astro-cid-de4vokdz]{display:block}}@keyframes paw-outline-loop{0%{opacity:0;stroke-dashoffset:120px}5%{opacity:1}15%,85%{opacity:1;stroke-dashoffset:0}95%{opacity:1}to{opacity:0;stroke-dashoffset:-120px}}@keyframes paw-fade-loop{0%,10%{opacity:0;transform:scale(.8)}20%,80%{opacity:1;transform:scale(1)}95%,to{opacity:0;transform:scale(.8)}}
