@charset "UTF-8";.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}.sun[data-astro-cid-oemx5le4]{fill:currentColor}.moon[data-astro-cid-oemx5le4],[data-theme=dark] .sun[data-astro-cid-oemx5le4]{fill:transparent}[data-theme=dark] .moon[data-astro-cid-oemx5le4]{fill:currentColor}.site-header[data-astro-cid-3ef6ksr2]{user-select:none;padding-block:2px;background-color:var(--paper);border-bottom:1px solid var(--rule);--reading-progress:0}.reading-progress[data-astro-cid-3ef6ksr2]{position:absolute;right:0;bottom:0;left:0;z-index:1;height:2px;overflow:hidden;pointer-events:none}.reading-progress__fill[data-astro-cid-3ef6ksr2]{width:100%;height:100%;transform:scaleX(var(--reading-progress, 0));transform-origin:left center;background:var(--accent-pop);will-change:transform}.site-header__inner[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);min-height:3.25rem;position:relative}.site-header__brand[data-astro-cid-3ef6ksr2]{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:.125rem;min-width:0;font-family:var(--font-display);font-weight:700;font-size:1.125rem;letter-spacing:-.02em;line-height:1.1;color:var(--ink);text-decoration:none;background:0 0;box-shadow:none;transition:color var(--dur-fast) var(--ease)}.site-header__brand[data-astro-cid-3ef6ksr2]:hover{color:var(--ink);text-decoration:none;background:0 0;box-shadow:none}.site-header__word[data-astro-cid-3ef6ksr2]{display:inline-flex;align-items:baseline}.site-header__dot[data-astro-cid-3ef6ksr2]{color:var(--accent)}.site-header__tagline[data-astro-cid-3ef6ksr2]{display:block;font-family:var(--font-sans);font-size:11px;font-weight:400;letter-spacing:.01em;color:var(--ink-3);height:1.25em;line-height:1.25em;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.site-header__nav[data-astro-cid-3ef6ksr2]{font-family:var(--font-sans);font-size:14px;line-height:1}.site-header__nav[data-astro-cid-3ef6ksr2].desktop{display:none;align-items:center;margin-left:auto}.site-header__nav--mobile[data-astro-cid-3ef6ksr2]{display:none;margin-left:auto;flex-shrink:0}@media (min-width:768px){.site-header__nav[data-astro-cid-3ef6ksr2].desktop{display:flex}}@media (max-width:767px){.site-header__nav[data-astro-cid-3ef6ksr2].desktop{display:none}.site-header__nav--mobile[data-astro-cid-3ef6ksr2]{display:block}}.site-header__links[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:1.25rem}.site-header__actions[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:var(--sp-1);margin-left:var(--sp-4);padding-left:var(--sp-4);border-left:1px solid var(--rule)}.site-header__mobile-bar[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-1)}nav[data-astro-cid-3ef6ksr2] .nav-link{display:inline-flex;align-items:center;height:2rem;padding:0;color:var(--ink-3);text-decoration:none;background:0 0;box-shadow:none;white-space:nowrap;cursor:pointer}nav[data-astro-cid-3ef6ksr2] .nav-link:hover{color:var(--ink);text-decoration:none;background:0 0;box-shadow:none}nav[data-astro-cid-3ef6ksr2] .nav-link.active{color:var(--ink);font-weight:600}.site-header[data-astro-cid-3ef6ksr2] .nav-action{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:0;border-radius:var(--r-sm);background:0 0;color:var(--ink-3);cursor:pointer;flex-shrink:0;transition:background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.site-header[data-astro-cid-3ef6ksr2] .nav-action:hover,.site-header[data-astro-cid-3ef6ksr2] .nav-action:focus-visible{background:var(--tint);color:var(--ink);outline:0}.site-header[data-astro-cid-3ef6ksr2] .nav-action svg{width:1.125rem;height:1.125rem}.menu-toggle__icon--close[data-astro-cid-3ef6ksr2],.menu-toggle[data-astro-cid-3ef6ksr2][aria-expanded=true] .menu-toggle__icon--open[data-astro-cid-3ef6ksr2]{display:none}.menu-toggle[data-astro-cid-3ef6ksr2][aria-expanded=true] .menu-toggle__icon--close[data-astro-cid-3ef6ksr2]{display:block}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}.site-footer[data-astro-cid-sz7xmlte]{background:var(--footer-bg);color:var(--footer-fg);border-top:1px solid var(--rule);margin-top:var(--sp-9);padding:var(--sp-5)0;font-family:var(--font-sans);letter-spacing:0}.footer-inner[data-astro-cid-sz7xmlte]{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);text-align:center}@media (min-width:640px){.footer-inner[data-astro-cid-sz7xmlte]{flex-direction:row;justify-content:space-between;align-items:center;gap:var(--sp-5);text-align:left}}.footer-links[data-astro-cid-sz7xmlte]{display:flex;flex-wrap:nowrap;align-items:center;justify-content:center;column-gap:var(--sp-2);font-size:var(--fs-xs);line-height:1}.footer-link[data-astro-cid-sz7xmlte]{display:inline-flex;align-items:center;gap:.35rem;color:var(--footer-link);text-decoration:none;background:0 0;box-shadow:none;transition:color var(--dur-fast) var(--ease)}.footer-link[data-astro-cid-sz7xmlte]:hover,.footer-link[data-astro-cid-sz7xmlte]:focus-visible{color:var(--ink);text-decoration:none;background:0 0;box-shadow:none}.footer-link__icon{display:block;width:.85em;height:.85em;flex-shrink:0;align-self:center;color:currentColor}.footer-link[data-astro-cid-sz7xmlte]:hover .footer-link__icon,.footer-link[data-astro-cid-sz7xmlte]:focus-visible .footer-link__icon{color:currentColor}@media (min-width:640px){.footer-links[data-astro-cid-sz7xmlte]{justify-content:flex-start}}.footer-meta[data-astro-cid-sz7xmlte]{margin:0;font-size:var(--fs-xs);line-height:var(--lh-loose);color:var(--footer-muted);text-wrap:wrap}@media (min-width:640px){.footer-meta[data-astro-cid-sz7xmlte]{text-align:right;text-wrap:pretty}}.sep[data-astro-cid-sz7xmlte]{color:var(--footer-muted);user-select:none}.built-at[data-astro-cid-sz7xmlte],.built-at__stamp[data-astro-cid-sz7xmlte]{white-space:nowrap}.built-at__stamp[data-astro-cid-sz7xmlte]{font-variant-numeric:tabular-nums}@media (max-width:639px){.footer-meta__built[data-astro-cid-sz7xmlte],.footer-meta__built-sep[data-astro-cid-sz7xmlte]{display:none}}a[data-astro-cid-sz7xmlte]{color:var(--footer-link);text-decoration:none;background:0 0;box-shadow:none;transition:color var(--dur-fast) var(--ease)}a[data-astro-cid-sz7xmlte]:hover{color:var(--ink);text-decoration:none;background:0 0;box-shadow:none}.gpg[data-astro-cid-sz7xmlte]{color:var(--footer-muted)}html{--rgb-a:#ff0080;--rgb-b:#00e5ff;--rgb-a2:#ff3399;--rgb-b2:#33eeff;--rgb-tx-1:-18px;--rgb-sx-1:18px;--rgb-sx-2:-18px;--rgb-tx-2:15px;--rgb-sx-3:-15px;--rgb-sx-4:15px;--rgb-tx-3:-12px;--rgb-sx-5:12px;--rgb-sx-6:-12px;--rgb-in-tx-0:20px;--rgb-in-sx-0:-20px;--rgb-in-sx-1:20px;--rgb-in-tx-1:-14px;--rgb-in-sx-2:14px;--rgb-in-sx-3:-14px}@keyframes page-rgb-out{0%{transform:translate(0);filter:none;opacity:1}20%{transform:translate(var(--rgb-tx-1),var(--rgb-ty-1, 0));filter:drop-shadow(var(--rgb-sx-1) var(--rgb-sy-1, 0) var(--rgb-a)) drop-shadow(var(--rgb-sx-2) var(--rgb-sy-2, 0) var(--rgb-b))}45%{transform:translate(var(--rgb-tx-2),var(--rgb-ty-2, 0));filter:drop-shadow(var(--rgb-sx-3) var(--rgb-sy-3, 0) var(--rgb-a2)) drop-shadow(var(--rgb-sx-4) var(--rgb-sy-4, 0) var(--rgb-b2))}70%{transform:translate(var(--rgb-tx-3),var(--rgb-ty-3, 0));filter:drop-shadow(var(--rgb-sx-5) var(--rgb-sy-5, 2px) var(--rgb-a)) drop-shadow(var(--rgb-sx-6) var(--rgb-sy-6, -2px) var(--rgb-b))}to{transform:translate(0);filter:none;opacity:0}}@keyframes page-rgb-in{0%{transform:translate(var(--rgb-in-tx-0),var(--rgb-in-ty-0, 0));filter:drop-shadow(var(--rgb-in-sx-0) var(--rgb-in-sy-0, 0) var(--rgb-a)) drop-shadow(var(--rgb-in-sx-1) var(--rgb-in-sy-1, 0) var(--rgb-b));opacity:0}35%{transform:translate(var(--rgb-in-tx-1),var(--rgb-in-ty-1, 0));filter:drop-shadow(var(--rgb-in-sx-2) var(--rgb-in-sy-2, 0) var(--rgb-a2)) drop-shadow(var(--rgb-in-sx-3) var(--rgb-in-sy-3, 0) var(--rgb-b2))}65%{transform:translate(var(--rgb-in-tx-2, 4px),var(--rgb-in-ty-2, 0));filter:drop-shadow(var(--rgb-in-sx-4, -4px) var(--rgb-in-sy-4, 0) var(--rgb-a)) drop-shadow(var(--rgb-in-sx-5, 4px) var(--rgb-in-sy-5, 0) var(--rgb-b))}to{transform:translate(0);filter:none;opacity:1}}html::view-transition-old(page-main){animation:page-rgb-out .28s steps(8,end) both!important}html::view-transition-new(page-main){animation:page-rgb-in .28s steps(8,end) both!important}@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-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-font-weight:initial;--tw-tracking:initial;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}@layer theme{:root,:host{--color-white:#fff;--spacing:.25rem;--font-weight-medium:500;--font-weight-black:900;--tracking-tight:-.025em;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@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;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Helvetica,Arial,sans-serif;line-height:1.5}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:JetBrains Mono,ui-monospace,SF Mono,Menlo,Consolas,monospace;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{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{.invisible{visibility:hidden}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.sticky{position:sticky}.top-0{top:calc(var(--spacing)*0)}.right-0{right:calc(var(--spacing)*0)}.bottom-0{bottom:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.z-50{z-index:50}.col-1{grid-column:1}.col-2{grid-column:2}.col-3{grid-column:3}.col-4{grid-column:4}.col-5{grid-column:5}.col-6{grid-column:6}.col-7{grid-column:7}.col-8{grid-column:8}.col-9{grid-column:9}.col-10{grid-column:10}.col-11{grid-column:11}.col-12{grid-column:12}.float-left{float:left}.float-none{float:none}.float-right{float:right}.container{width:100%}@media (min-width:450px){.container{max-width:450px}}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing)*0)}.m-1{margin:calc(var(--spacing)*1)}.m-2{margin:calc(var(--spacing)*2)}.m-3{margin:calc(var(--spacing)*3)}.m-4{margin:calc(var(--spacing)*4)}.m-5{margin:calc(var(--spacing)*5)}.m-6{margin:calc(var(--spacing)*6)}.m-18{margin:calc(var(--spacing)*18)}.m-1031{margin:calc(var(--spacing)*1031)}.m-1615{margin:calc(var(--spacing)*1615)}.mx-0{margin-inline:calc(var(--spacing)*0)}.mx-1{margin-inline:calc(var(--spacing)*1)}.mx-2{margin-inline:calc(var(--spacing)*2)}.mx-3{margin-inline:calc(var(--spacing)*3)}.mx-4{margin-inline:calc(var(--spacing)*4)}.mx-5{margin-inline:calc(var(--spacing)*5)}.mx-6{margin-inline:calc(var(--spacing)*6)}.mx-auto{margin-inline:auto}.my-0{margin-block:calc(var(--spacing)*0)}.my-1{margin-block:calc(var(--spacing)*1)}.my-2{margin-block:calc(var(--spacing)*2)}.my-3{margin-block:calc(var(--spacing)*3)}.my-4{margin-block:calc(var(--spacing)*4)}.my-5{margin-block:calc(var(--spacing)*5)}.my-6{margin-block:calc(var(--spacing)*6)}.prose{color:var(--ink);max-width:min(100%,var(--measure))}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){line-height:var(--lh-loose);text-align:inherit;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(--ink);word-break:break-word;text-decoration:underline;-webkit-text-decoration-color:var(--ink-3);text-decoration-color:var(--ink-3);font-weight:500}@supports (color:color-mix(in lab,red,red)){.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){-webkit-text-decoration-color:color-mix(in srgb,var(--ink-3) 55%,var(--rule));text-decoration-color:color-mix(in srgb,var(--ink-3) 55%,var(--rule))}}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){text-underline-offset:.14em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)):hover{color:var(--ink);-webkit-text-decoration-color:var(--ink-2);text-decoration-color:var(--ink-2)}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--ink);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(--rule);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--ink-2);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";border-left-color:var(--ink-3);background:0 0;border-left-width:2px;border-radius:0;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(--ink);font-size:.88em;font-weight:500;font-family:var(--font-mono)}.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:var(--lh-loose)}.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(li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--ink-3)}.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{font-family:var(--font-body)}.prose :where(:focus-visible):not(:where([class~=not-prose],[class~=not-prose] *)){outline:2px dashed var(--accent)}.prose :where(h1,h2,h3,h4,h5,h6):not(:where([class~=not-prose],[class~=not-prose] *)){line-height:var(--lh-snug);text-align:inherit;font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);text-wrap:balance;font-weight:600}.prose :where(em):not(:where([class~=not-prose],[class~=not-prose] *)){font-style:italic}.prose :where(a.heading-link):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;text-decoration:none}.prose :where(a.heading-link):not(:where([class~=not-prose],[class~=not-prose] *)):hover{color:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--ink-3);text-decoration-color:var(--ink-3)}@supports (color:color-mix(in lab,red,red)){.prose :where(a.heading-link):not(:where([class~=not-prose],[class~=not-prose] *)):hover{-webkit-text-decoration-color:color-mix(in srgb,var(--ink-3) 55%,var(--rule));text-decoration-color:color-mix(in srgb,var(--ink-3) 55%,var(--rule))}}.prose :where(a.heading-link):not(:where([class~=not-prose],[class~=not-prose] *)):hover{text-underline-offset:.14em}.prose :where(blockquote p):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:inherit;font-weight:400}.mt-0{margin-top:calc(var(--spacing)*0)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-5{margin-top:calc(var(--spacing)*5)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-12{margin-top:calc(var(--spacing)*12)}.mr-0{margin-right:calc(var(--spacing)*0)}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-3{margin-right:calc(var(--spacing)*3)}.mr-4{margin-right:calc(var(--spacing)*4)}.mr-5{margin-right:calc(var(--spacing)*5)}.mr-6{margin-right:calc(var(--spacing)*6)}.mb-0{margin-bottom:calc(var(--spacing)*0)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-5{margin-bottom:calc(var(--spacing)*5)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.ml-0{margin-left:calc(var(--spacing)*0)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-3{margin-left:calc(var(--spacing)*3)}.ml-4{margin-left:calc(var(--spacing)*4)}.ml-5{margin-left:calc(var(--spacing)*5)}.ml-6{margin-left:calc(var(--spacing)*6)}.block{display:block}.contents{display:contents}.flex{display:flex}.hidden{display:none}.inline{display:inline}.table{display:table}.h-4{height:calc(var(--spacing)*4)}.h-6{height:calc(var(--spacing)*6)}.w-4{width:calc(var(--spacing)*4)}.w-6{width:calc(var(--spacing)*6)}.w-full{width:100%}.min-w-0{min-width:calc(var(--spacing)*0)}.flex-1{flex:1}.flex-auto{flex:auto}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.table-fixed{table-layout:fixed}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.items-stretch{align-items:stretch}.gap-6{gap:calc(var(--spacing)*6)}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-blue{border-color:#0571ff}.border-purple{border-color:#925fd4}.bg-blue{background-color:#0571ff}.bg-purple{background-color:#925fd4}.bg-white{background-color:var(--color-white)}.mask-repeat{-webkit-mask-repeat:repeat;mask-repeat:repeat}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.p-6{padding:calc(var(--spacing)*6)}.px-0{padding-inline:calc(var(--spacing)*0)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-2{padding-inline:calc(var(--spacing)*2)}.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-0{padding-block:calc(var(--spacing)*0)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-5{padding-block:calc(var(--spacing)*5)}.py-6{padding-block:calc(var(--spacing)*6)}.pt-0{padding-top:calc(var(--spacing)*0)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-3{padding-top:calc(var(--spacing)*3)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-5{padding-top:calc(var(--spacing)*5)}.pt-6{padding-top:calc(var(--spacing)*6)}.pt-8{padding-top:calc(var(--spacing)*8)}.pr-0{padding-right:calc(var(--spacing)*0)}.pr-1{padding-right:calc(var(--spacing)*1)}.pr-2{padding-right:calc(var(--spacing)*2)}.pr-3{padding-right:calc(var(--spacing)*3)}.pr-4{padding-right:calc(var(--spacing)*4)}.pr-5{padding-right:calc(var(--spacing)*5)}.pr-6{padding-right:calc(var(--spacing)*6)}.pb-0{padding-bottom:calc(var(--spacing)*0)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-5{padding-bottom:calc(var(--spacing)*5)}.pb-6{padding-bottom:calc(var(--spacing)*6)}.pb-20{padding-bottom:calc(var(--spacing)*20)}.pl-0{padding-left:calc(var(--spacing)*0)}.pl-1{padding-left:calc(var(--spacing)*1)}.pl-2{padding-left:calc(var(--spacing)*2)}.pl-3{padding-left:calc(var(--spacing)*3)}.pl-4{padding-left:calc(var(--spacing)*4)}.pl-5{padding-left:calc(var(--spacing)*5)}.pl-6{padding-left:calc(var(--spacing)*6)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-2xl{font-size:1.35rem}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.text-wrap{text-wrap:wrap}.text-\[var\(--ink\)\]{color:var(--ink)}.text-blue{color:#0571ff}.text-inherit{color:inherit}.text-purple{color:#925fd4}.text-white{color:var(--color-white)}.italic{font-style:italic}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (min-width:40rem){.sm\:gap-8{gap:calc(var(--spacing)*8)}.sm\:py-10{padding-block:calc(var(--spacing)*10)}.sm\:text-3xl{font-size:1.7rem}}@media (min-width:48rem){.md\:flex-row{flex-direction:row}.md\:text-4xl{font-size:2.441rem}}}@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-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}:root{font-feature-settings:"kern"1,"liga"1,"calt"1;--fs-xs:clamp(.75rem, .74rem + .06vw, .7813rem);--fs-sm:clamp(.875rem, .866rem + .06vw, .9063rem);--fs-base:1.03125rem;--fs-md:clamp(1.2rem, 1.176rem + .107vw, 1.2563rem);--fs-lg:clamp(1.44rem, 1.411rem + .129vw, 1.5075rem);--fs-xl:clamp(1.728rem, 1.693rem + .154vw, 1.809rem);--fs-2xl:clamp(2.074rem, 2.032rem + .185vw, 2.171rem);--lh-tight:1.1;--lh-snug:1.25;--lh-loose:1.6;--sp-1:4px;--sp-1_5:6px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--sp-8:64px;--sp-9:96px;--r-sm:0;--r-md:0;--r-lg:2px;--measure:746px;--measure-wide:840px;--ease:cubic-bezier(.6, 0, .4, 1);--dur-fast:.1s;--dur:.25s;--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", "Menlo", "Consolas", monospace;--font-display:var(--font-sans);--font-body:var(--font-sans);--font-meta:var(--font-sans);--success:#586358;--danger:#735858;--info:#585f68;--scrollbar-size:8px;--code-block-pad-block:var(--sp-2);--article-toc-max-width:200px;--article-grid-gap:var(--sp-7);--article-toc-breakpoint:1024px;--article-reading-width:calc(var(--measure-wide) + var(--article-toc-max-width) + var(--article-grid-gap));--article-single-width:calc(var(--measure-wide) + 2 * var(--site-gutter-inline));--site-gutter-inline:var(--sp-4);--site-max-width:min(1200px, calc(var(--article-reading-width) + 2 * var(--site-gutter-inline)))}html{width:100%;scrollbar-gutter:stable;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:100%;font-optical-sizing:auto;line-height:var(--lh-loose)}body{display:flex;flex-direction:column;width:100%;min-height:100dvh;min-height:100vh;font-size:var(--fs-base);background:var(--paper);color:var(--ink);text-rendering:optimizeLegibility;transition:color var(--dur) var(--ease)}@media (hover:none){a,button,input:is([type=button],[type=submit],[type=reset]),[role=button],summary{-webkit-tap-highlight-color:transparent}}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}::-webkit-scrollbar{width:var(--scrollbar-size);height:var(--scrollbar-size)}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{cursor:pointer;background:var(--scrollbar-thumb)}::selection{background:var(--accent-selection);color:var(--ink)}html.overlay-open{overflow:hidden}.search-overlay{position:fixed;inset:0;z-index:80;display:grid;place-items:start center;padding:clamp(4rem,12vh,6rem) var(--site-gutter-inline) var(--sp-6);pointer-events:none}.search-overlay[hidden]{display:none}.search-overlay.is-open{pointer-events:auto}.search-overlay__backdrop{position:absolute;inset:0;background:var(--overlay-backdrop);opacity:0;transition:opacity var(--dur) var(--ease)}.search-overlay.is-open .search-overlay__backdrop{opacity:1}.search-overlay__dialog{position:relative;width:min(520px,100%);max-height:min(70vh,28rem);display:flex;flex-direction:column;height:auto;background:var(--paper);border:1px solid var(--rule);opacity:0;transform:translateY(-4px);transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease)}.search-overlay.is-open .search-overlay__dialog{opacity:1;transform:translateY(0)}.search-overlay__input{display:block;width:100%;flex:0 0 auto;margin:0;padding:var(--sp-3) var(--sp-4);border:0;border-bottom:1px solid var(--rule);border-radius:0;background:0 0;color:var(--ink);font-family:var(--font-body);font-size:var(--fs-sm);line-height:1.4;outline:0;outline-offset:0;box-shadow:none;appearance:none;-webkit-appearance:none}.search-overlay__input:focus,.search-overlay__input:focus-visible{border:0;border-bottom:1px solid var(--rule);outline:0;box-shadow:none}.search-overlay__input::placeholder{color:var(--ink-3)}.search-overlay__empty{margin:0;padding:var(--sp-4);font-family:var(--font-body);font-size:var(--fs-xs);color:var(--ink-3);text-align:center}.search-overlay__results{list-style:none;margin:0;padding:0;flex:0 1 auto;max-height:min(50vh,20rem);overflow:auto;min-height:0}.search-overlay__results:empty{display:none}.search-overlay__item.is-active .search-hit{background:var(--tint)}.search-hit{display:block;padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--rule);color:inherit;text-decoration:none;background:0 0;box-shadow:none;transition:background-color var(--dur-fast) var(--ease)}.search-hit:hover,.search-hit:focus-visible,.search-hit:visited,.search-hit:visited:hover{color:inherit;text-decoration:none;background:var(--tint);box-shadow:none;outline:0}.search-hit__title{display:block;font-family:var(--font-display);font-size:var(--fs-sm);font-weight:600;line-height:var(--lh-snug);letter-spacing:-.005em;color:var(--ink)}.search-hit__meta{display:block;margin-top:.2rem;font-family:var(--font-meta);font-size:var(--fs-xs);line-height:1.2;color:var(--ink-3)}.search-hit__desc{display:-webkit-box;margin-top:.35rem;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-family:var(--font-body);font-size:var(--fs-xs);line-height:1.5;color:var(--ink-2);text-wrap:pretty}.nav-overlay{position:fixed;inset:0;z-index:80;display:grid;place-items:stretch end;padding:0;pointer-events:none}.nav-overlay[hidden]{display:none}.nav-overlay.is-open{pointer-events:auto}.nav-overlay__backdrop{position:absolute;inset:0;background:var(--overlay-backdrop);opacity:0;transition:opacity var(--dur) var(--ease)}.nav-overlay.is-open .nav-overlay__backdrop{opacity:1}.nav-overlay__dialog{position:relative;display:flex;flex-direction:column;width:min(20rem,92vw);height:100%;background:var(--surface-card);border:0;border-left:1px dashed color-mix(in srgb,var(--ink) 16%,var(--rule));box-shadow:-10px 0 36px color-mix(in srgb,var(--ink) 10%,transparent);opacity:0;transform:translate(100%);transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease);overflow:hidden}.nav-overlay.is-open .nav-overlay__dialog{opacity:1;transform:translate(0)}.nav-overlay__scroll{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;overflow:auto}.nav-overlay__search{flex:0 0 auto;position:sticky;top:0;z-index:1;border-bottom:1px dashed color-mix(in srgb,var(--ink) 16%,var(--rule));background:color-mix(in srgb,black 3%,var(--surface-card))}.nav-overlay__search-field{position:relative}.nav-overlay__search-icon{position:absolute;top:50%;left:var(--sp-3);width:1rem;height:1rem;color:var(--ink-3);pointer-events:none;transform:translateY(-50%)}.nav-overlay__input{display:block;width:100%;margin:0;padding:var(--sp-3) var(--sp-3) var(--sp-3) calc(var(--sp-3) + 1rem + var(--sp-2));border:0;border-radius:0;background:0 0;color:var(--ink);font-family:var(--font-body);font-size:var(--fs-sm);line-height:1.4;outline:0;box-shadow:none;appearance:none;-webkit-appearance:none}.nav-overlay__input::placeholder{color:var(--ink-3)}.nav-overlay__input:focus,.nav-overlay__input:focus-visible{outline:0;box-shadow:none}.nav-overlay__results-wrap{flex:0 0 auto;border-bottom:1px dashed color-mix(in srgb,var(--ink) 16%,var(--rule))}.nav-overlay__results-wrap[hidden]{display:none}.nav-overlay.is-searching .nav-overlay__results-wrap{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;border-bottom:0}.nav-overlay.is-searching .nav-overlay__results{flex:1 1 auto;max-height:none}.nav-overlay__nav[hidden]{display:none}.nav-overlay__empty{margin:0;padding:var(--sp-3) var(--sp-4);font-family:var(--font-body);font-size:var(--fs-xs);color:var(--ink-3);text-align:left}.nav-overlay__empty[hidden]{display:none}.nav-overlay__results{list-style:none;margin:0;padding:0;max-height:min(40vh,16rem);overflow:auto}.nav-overlay__results:empty{display:none}.nav-overlay__results .search-overlay__item.is-active .search-hit{background:color-mix(in srgb,var(--accent) 7%,var(--surface-card))}.nav-overlay__results .search-overlay__item:first-child .search-hit{border-top:0}.nav-overlay__nav{flex:1 0 auto;padding:0 0 var(--sp-4)}.nav-overlay__list{list-style:none;margin:0;padding:0}.nav-overlay__item.is-active .nav-overlay__link{background:color-mix(in srgb,var(--accent) 7%,var(--surface-card));color:var(--ink)}.nav-overlay__item:first-child .nav-overlay__link{border-top:0}.nav-overlay__link{display:block;padding:var(--sp-3) var(--sp-4);border-top:1px dashed color-mix(in srgb,var(--ink) 12%,var(--rule));color:var(--ink-2);text-decoration:none;background:0 0;box-shadow:none;transition:background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.nav-overlay__link:hover,.nav-overlay__link:focus-visible{color:var(--ink);text-decoration:none;background:color-mix(in srgb,var(--accent) 5%,var(--surface-card));outline:0}.nav-overlay__link-text{display:flex;align-items:baseline;gap:var(--sp-1);font-family:var(--font-display);font-size:1rem;font-weight:500;line-height:var(--lh-snug);letter-spacing:-.005em}.nav-overlay__link-text:before{flex:0 0 1.5rem;font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;color:var(--ink-3)}.nav-overlay__item:nth-child(1) .nav-overlay__link-text:before{content:"01"}.nav-overlay__item:nth-child(2) .nav-overlay__link-text:before{content:"02"}.nav-overlay__item:nth-child(3) .nav-overlay__link-text:before{content:"03"}.nav-overlay__item:nth-child(4) .nav-overlay__link-text:before{content:"04"}.nav-overlay__item:nth-child(5) .nav-overlay__link-text:before{content:"05"}.nav-overlay__item:nth-child(6) .nav-overlay__link-text:before{content:"06"}.nav-overlay__item.is-active .nav-overlay__link-text{font-weight:600;color:var(--ink)}.nav-overlay__item.is-active .nav-overlay__link-text:before{color:var(--accent);font-weight:600}@media (min-width:768px){.nav-overlay{display:none!important}}@media (max-width:767px){.nav-overlay{inset:auto 0 0;top:var(--site-header-height, 3.5rem);z-index:40}.nav-overlay__dialog{border-top:1px dashed color-mix(in srgb,var(--ink) 16%,var(--rule))}#cmdk.search-overlay{display:none!important}}.page-head+.post-ledger,.posts-header+.post-ledger{border-top:1px solid var(--rule)}.page-head,.posts-header{border-bottom:none}.post-ledger{display:grid;grid-template-columns:max-content 1fr;min-width:0;max-width:100%}.post-ledger__row{position:relative;display:grid;grid-column:1/-1;grid-template-columns:subgrid;gap:var(--sp-4);align-items:start;padding:var(--sp-3)0;border-bottom:1px solid var(--rule);color:inherit;text-decoration:none;min-width:0;max-width:100%}.post-ledger__row:focus-visible{outline:2px solid var(--accent-pop);outline-offset:-2px}.post-ledger__when{display:flex;flex-direction:column;gap:2px;padding-top:.25em}.post-ledger__date{font-family:var(--font-meta);font-size:var(--fs-xs);color:var(--ink-3);letter-spacing:.01em;font-variant-numeric:tabular-nums;white-space:nowrap}.post-ledger__row:hover .post-ledger__date{color:var(--ink-2)}.post-ledger__mins{font-family:var(--font-meta);font-size:var(--fs-xs);color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap;opacity:.75}.post-ledger__main{display:flex;flex-direction:column;min-width:0;padding-right:var(--sp-6)}.post-ledger__title{align-self:start;font-family:var(--font-display);font-weight:600;font-size:var(--fs-base);line-height:var(--lh-snug);letter-spacing:-.005em;color:var(--ink);margin:0 0 .35em;overflow-wrap:anywhere}.post-ledger__row:hover .post-ledger__title,.post-ledger__row:focus-visible .post-ledger__title{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.14em}.post-ledger__desc{font-family:var(--font-body);font-size:var(--fs-sm);line-height:1.55;color:var(--ink-2);margin:0;text-wrap:pretty}.post-ledger__arrow{position:absolute;top:50%;right:var(--sp-2);translate:0-50%;opacity:0;font-family:var(--font-meta);font-size:var(--fs-sm);color:var(--ink-3)}.post-ledger__row:hover .post-ledger__arrow,.post-ledger__row:focus-visible .post-ledger__arrow{opacity:1}@media (max-width:640px){.post-ledger{grid-template-columns:1fr}.post-ledger__row{gap:var(--sp-1)}.post-ledger__main{padding-right:0}.post-ledger__when{flex-direction:row;align-items:baseline;gap:var(--sp-2);padding-top:0}.post-ledger__arrow{display:none}}main.projects-main{padding-top:var(--sp-3)}@media (min-width:640px){main.projects-main{padding-top:var(--sp-4)}}.projects-page .page-head{margin-bottom:var(--sp-4)}.project-grid{display:grid;gap:var(--sp-3);grid-template-columns:minmax(0,1fr)}@media (min-width:640px){.project-grid{grid-template-columns:repeat(auto-fill,minmax(17rem,1fr))}}.project-grid .project-card{height:100%}.project-card{position:relative;display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-4);background:var(--surface-card);border:1px solid var(--rule);border-radius:var(--r-md)}.project-card:hover{border-color:color-mix(in srgb,var(--ink) 24%,var(--rule))}.project-card__head{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-2)}@media (min-width:640px){.project-card__head{flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-4)}}.project-card__title{margin:0;font-family:var(--font-display);font-weight:600;font-size:var(--fs-md);line-height:var(--lh-snug);letter-spacing:-.01em;color:var(--ink)}.project-card__badges{display:flex;flex-wrap:wrap;gap:var(--sp-1);margin:0;padding:0;list-style:none}.project-badge{display:inline-block;padding:.12em .5em;font-family:var(--font-meta);font-size:var(--fs-xs);font-weight:500;line-height:1.35;letter-spacing:.01em;border-radius:2px;border:1px solid transparent;white-space:nowrap}.project-badge--topic{background:color-mix(in srgb,var(--accent-pop) 9%,var(--surface-card));color:color-mix(in srgb,var(--accent-pop) 55%,var(--ink));border-color:color-mix(in srgb,var(--accent-pop) 24%,var(--rule))}.project-badge--stack{background:var(--tint);color:var(--ink-2);border-color:var(--rule)}.project-card__desc{margin:0;max-width:52rem;font-family:var(--font-body);font-size:var(--fs-sm);line-height:1.55;color:var(--ink-2);text-wrap:pretty}.project-card__actions{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.project-card__actions .btn{line-height:1}.project-card__actions .btn:visited{color:var(--ink);background:var(--paper);border-color:var(--rule)}.project-card__actions .btn:visited:hover,.project-card__actions .btn:visited:focus-visible{color:var(--ink);background:var(--tint);border-color:color-mix(in srgb,var(--accent) 40%,var(--rule))}.project-card__btn-icon{display:block;width:1em;height:1em;flex-shrink:0;align-self:center}[data-theme=dark] .project-badge--topic{background:color-mix(in srgb,var(--accent-pop) 12%,var(--surface-card));color:color-mix(in srgb,var(--accent-pop) 70%,var(--ink));border-color:color-mix(in srgb,var(--accent-pop) 28%,var(--rule))}main.contact-main{padding-top:var(--sp-3)}@media (min-width:640px){main.contact-main{padding-top:var(--sp-4)}}.contact-headline{margin:0;font-family:var(--font-display);font-weight:600;font-size:var(--fs-lg);line-height:var(--lh-snug);letter-spacing:-.015em;color:var(--ink)}.contact-deck{margin:0;max-width:28rem;font-family:var(--font-body);font-size:var(--fs-sm);line-height:1.55;color:var(--ink-2);text-wrap:pretty}.contact-note{margin:0;font-family:var(--font-meta);font-size:var(--fs-xs);color:var(--ink-3);letter-spacing:.02em}.contact-channels{display:flex;flex-direction:column;gap:var(--sp-1_5);margin:var(--sp-2)0 0;padding:0;list-style:none}.contact-channel{display:inline-flex;align-items:center;gap:var(--sp-1);font-family:var(--font-meta);font-size:var(--fs-sm);color:var(--ink-2);text-decoration:none}.contact-channel:hover,.contact-channel:focus-visible{color:var(--accent-pop)}.contact-channel__icon{display:block;width:1em;height:1em;flex-shrink:0}.contact-panel{margin-top:var(--sp-5);padding:var(--sp-4);background:var(--surface-card);border:1px solid var(--rule);border-radius:var(--r-md)}.contact-form{display:flex;flex-direction:column;gap:var(--sp-3)}.contact-form__row{display:flex;flex-direction:column;gap:var(--sp-1)}.contact-form__row input,.contact-form__row textarea{width:100%}.contact-form__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.contact-form .contact-form__submit{align-self:flex-start;border:1px solid var(--ink);background:var(--ink);color:var(--paper)}.contact-form .contact-form__submit:hover,.contact-form .contact-form__submit:focus-visible{border-color:var(--accent-pop);background:var(--accent-pop);color:#fff}.contact-form .contact-form__submit[disabled]{opacity:.6;cursor:default}.contact-split{display:grid;grid-template-columns:1fr;gap:var(--sp-5);align-items:start}@media (min-width:768px){.contact-split{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:var(--sp-6)}}.contact-split__head{margin-bottom:var(--sp-2)}.contact-split__intro{display:flex;flex-direction:column;gap:var(--sp-3)}.contact-success__message{margin:0;max-width:36rem;padding-top:var(--sp-2);font-family:var(--font-body);font-size:var(--fs-sm);line-height:1.55;color:var(--ink-2);text-wrap:pretty}.contact-success__nav{padding-top:var(--sp-4);font-family:var(--font-meta);font-size:var(--fs-xs)}.contact-success__nav a{color:var(--ink-2);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--ink-3) 55%,var(--rule));text-underline-offset:.14em;text-decoration-thickness:1px}.contact-success__nav a:hover,.contact-success__nav a:focus-visible{color:var(--ink)}.container{width:100%;max-width:var(--site-max-width);margin-inline:auto;padding-inline:var(--site-gutter-inline);font-size:var(--fs-base)}.glass{background-color:var(--paper)}.card-surface{background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--r-md);box-shadow:none}.card-surface:hover{border-color:color-mix(in srgb,var(--accent) 20%,var(--rule))}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:600;line-height:var(--lh-snug);letter-spacing:-.01em;text-wrap:balance;color:var(--ink);overflow-wrap:break-word;scroll-margin-top:88px}h1{font-weight:700;letter-spacing:-.02em}p{text-wrap:pretty;overflow-wrap:break-word}code{font-family:var(--font-mono);font-size:.88em;font-weight:500;background:var(--tint);padding:.1em .35em;border-radius:var(--r-sm);color:var(--ink)}mark{display:inline;padding:.04em .12em;line-height:inherit;text-wrap:pretty;border-radius:var(--r-sm);color:inherit;box-shadow:none;background:var(--mark);box-decoration-break:clone;-webkit-box-decoration-break:clone}mark.red{color:var(--danger);background:var(--mark-red)}del{display:inline;text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--ink) 70%,var(--paper));text-decoration-thickness:1.4px;text-decoration-skip-ink:auto}main{display:flex;flex-direction:column;width:100%;flex:1}main a{color:var(--link);text-decoration:none}main a:hover{color:var(--link-hover)}main a:active{color:var(--link-active);text-decoration-color:var(--link-active)}main a:visited{color:var(--link-visited);text-decoration-color:color-mix(in srgb,var(--link-visited) 50%,var(--paper) 50%)}main a:visited:hover{color:var(--link-hover);text-decoration-color:var(--link-hover)}main .prose a:not(.heading-link){color:var(--ink);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--ink-3) 55%,var(--rule));text-decoration-thickness:1px;text-underline-offset:.14em}main .prose a:not(.heading-link):hover,main .prose a:not(.heading-link):focus-visible{color:var(--accent-pop);text-decoration-color:var(--accent-pop)}main .prose a:not(.heading-link):visited{color:var(--ink-2);text-decoration-color:color-mix(in srgb,var(--ink-3) 70%,var(--rule))}main .prose a:not(.heading-link):visited:hover,main .prose a:not(.heading-link):visited:focus-visible{color:var(--accent-pop);text-decoration-color:var(--accent-pop)}main .prose h1,main .prose h2,main .prose h3,main .prose h4{position:relative}main .prose a.heading-link,main .prose a.heading-link:visited{color:inherit;font-weight:inherit;text-decoration:none;background:0 0;box-shadow:none;position:relative;display:inline-block}main .prose a.heading-link:after,main .prose a.heading-link:visited:after{content:"#";position:absolute;left:-.9em;top:50%;transform:translateY(-50%);opacity:0;color:color-mix(in srgb,var(--ink) 40%,var(--paper));transition:opacity .15s ease;font-weight:500}main .prose a.heading-link:focus-visible,main .prose a.heading-link:visited:focus-visible{color:inherit;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--ink-3) 55%,var(--rule));text-decoration-thickness:1px;text-underline-offset:.14em;background:0 0;box-shadow:none}@media (hover:hover){main .prose a.heading-link:hover,main .prose a.heading-link:visited:hover{color:inherit;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--ink-3) 55%,var(--rule));text-decoration-thickness:1px;text-underline-offset:.14em;background:0 0;box-shadow:none}main .prose h1:hover .heading-link:after,main .prose h2:hover .heading-link:after,main .prose h3:hover .heading-link:after,main .prose h4:hover .heading-link:after{opacity:.9}}main .toc__list a,main a.post-row,main a.bare{background:0 0;box-shadow:none;text-decoration:none}.toc__list{list-style:none;padding:0;margin:0;font-size:inherit;line-height:1.4}.toc__list li{margin:.15rem 0;position:relative}.toc__list li.lvl1,.toc__list li.lvl2{padding-left:0}.toc__list li.lvl3{padding-left:.75rem}.toc__list li.lvl4{padding-left:1.5rem}main .toc__list a{display:block;padding:.15rem 0;color:var(--ink-3);text-decoration:none;background:0 0;box-shadow:none}main .toc__list a:hover,main .toc__list a:focus-visible,main .toc__list a:visited:hover,main .toc__list a:visited:focus-visible{color:var(--ink)}main .toc__list a:visited{color:var(--ink-3)}main .toc__list a.active{color:var(--ink);font-weight:600}input,textarea{border-radius:.25rem;padding:.5rem .75rem;outline:2px solid transparent;outline-offset:2px;background:var(--paper);color:var(--ink);border:1px solid var(--rule);font-family:var(--font-sans);font-size:var(--fs-sm)}input:focus,textarea:focus{border-color:var(--accent-pop);box-shadow:none}.form-label{font-family:var(--font-sans);font-size:var(--fs-sm);color:var(--ink-2)}main .prose{--tw-prose-body:var(--ink);--tw-prose-links:var(--ink);max-width:var(--measure);font-family:var(--font-body);font-size:var(--fs-base);line-height:var(--lh-loose);color:var(--ink)}main .prose h1,main .prose h2{font-family:var(--font-display)}main .prose h1{font-size:var(--fs-2xl);font-weight:700;margin:1.6em 0 .6em;letter-spacing:-.02em}main .prose h2{font-size:var(--fs-lg);font-weight:700;margin:2em 0 .6em;letter-spacing:-.01em}main .prose h2:after{content:"";display:block;width:40px;margin-top:.35em;border-bottom:1px dashed var(--rule)}main .prose h3{font-size:var(--fs-md);font-weight:660;margin:1.6em 0 .6em}main .prose h4{font-family:var(--font-meta);font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2);margin:1.8em 0 .7em}main .prose p{margin:0 0 1em}main .prose ul,main .prose ol{margin-top:0;margin-bottom:1em;padding-inline-start:1.625em}main .prose ul{list-style-type:disc}main .prose ol{list-style-type:decimal}main .prose li{padding-inline-start:.375em;margin-block:.125em}main .prose li::marker{color:var(--ink-3)}main .prose li p{margin-block:0}main .prose strong{font-weight:600;color:var(--ink)}main .prose>:is(iframe,video,embed,figure,.expressive-code,.inset-surface,blockquote,table,hr,pre),main .prose>.flex{margin-block:var(--sp-5)}main .prose>iframe,main .prose>video,main .prose>embed{display:block;width:100%;max-width:100%;border:1px solid var(--rule);border-radius:var(--r-md);background:var(--tint)}main .prose .flex{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-4);min-width:0;max-width:100%}main .prose .flex>*{min-width:0}main .prose .flex>img,main .prose .flex>picture,main .prose .flex>svg{flex:0 1 auto;max-width:min(100%,20rem);width:auto;height:auto;margin:0}main .prose .flex>div,main .prose .flex>p{flex:1 1 14rem;margin:0}@media (max-width:640px){main .prose .flex{flex-direction:column;align-items:stretch}main .prose .flex>img,main .prose .flex>picture,main .prose .flex>svg{max-width:100%}}main .prose hr{border:0;border-top:1px solid var(--rule);margin:var(--sp-7)0}main .prose blockquote{margin:var(--sp-5)0;padding:var(--sp-2) var(--sp-5);border-left:2px solid var(--ink-3);color:var(--ink-2);font-style:italic;background:0 0;border-radius:0}main .prose blockquote p{font-size:inherit;font-weight:inherit;margin:0 0 .6em}main .prose blockquote p:last-child{margin:0}main .prose img{max-width:100%;height:auto;display:block;border-radius:var(--r-md);border:1px solid var(--rule)}main .prose a img{border:0}main .prose figure{margin:var(--sp-5)0}main .prose figcaption{font-family:var(--font-meta);font-size:var(--fs-xs);color:var(--ink-2);text-align:center;margin-top:var(--sp-2);letter-spacing:.02em}main .prose table{width:100%;border-collapse:collapse;margin:var(--sp-5)0;font-size:var(--fs-sm);background:0 0}main .prose th,main .prose td{text-align:left;padding:var(--sp-3);border-bottom:1px solid var(--rule)}main .prose th{font-family:var(--font-meta);font-weight:600;color:var(--ink-2);font-size:var(--fs-xs);letter-spacing:.04em;text-transform:uppercase;border-bottom-width:2px;border-bottom-color:var(--ink-2)}main .prose :where(a):not(.heading-link){color:var(--ink);text-decoration-color:color-mix(in srgb,var(--ink-3) 55%,var(--rule))}main .prose :where(a):not(.heading-link):hover,main .prose :where(a):not(.heading-link):focus-visible{color:var(--ink);text-decoration-color:var(--ink-2)}main .prose :where(a):not(.heading-link):visited{color:var(--ink-2)}main .prose :where(a):not(.heading-link):visited:hover,main .prose :where(a):not(.heading-link):visited:focus-visible{color:var(--ink);text-decoration-color:var(--ink-2)}main .prose :where(a.heading-link){color:inherit;text-decoration:none;background:0 0;box-shadow:none}main .prose :where(a.heading-link):focus-visible,main .prose :where(a.heading-link):visited:focus-visible{color:inherit;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--ink-3) 55%,var(--rule));text-decoration-thickness:1px;text-underline-offset:.14em;background:0 0;box-shadow:none}main .prose :where(a.heading-link):visited{color:inherit;text-decoration:none}@media (hover:hover){main .expressive-code :where(a.heading-link:hover),main .expressive-code :where(a.heading-link:visited:hover){color:inherit;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--ink-3) 55%,var(--rule));text-decoration-thickness:1px;text-underline-offset:.14em;background:0 0;box-shadow:none}}main .expressive-code{border:0;border-radius:0;overflow:visible;background:0 0;box-shadow:none}main .expressive-code pre>code{position:relative;padding-block:var(--code-block-pad-block);line-height:var(--ec-codeLineHt)}main .expressive-code pre>code:before{content:"";position:absolute;inset-block:0;width:0;border-inline-start:1px dashed var(--rule);pointer-events:none;position-anchor:--ec-gutter;inset-inline-start:anchor(end)}main .expressive-code :nth-child(1 of.ec-line) .gutter{anchor-name:--ec-gutter}main .expressive-code .ec-line{line-height:var(--ec-codeLineHt);align-items:start}main .expressive-code .ec-line .gutter{position:relative}main .expressive-code .ec-line .code,main .expressive-code .gutter .ln{line-height:var(--ec-codeLineHt);padding-block:0;font-size:var(--ec-codeFontSize, .85rem)}main .expressive-code .gutter .ln{display:block;text-align:right;box-sizing:content-box;min-width:var(--lnWidth, 2ch);padding-inline:1ch 1.25ch;color:color-mix(in srgb,var(--rule) 50%,var(--ink-3))}main .expressive-code .ec-line .code{position:relative;min-height:calc(var(--ec-codeFontSize, .85rem)*var(--ec-codeLineHt));border-inline-start:none!important}main .expressive-code pre.wrap .ec-line .code{white-space:pre-wrap;overflow-wrap:break-word}main .expressive-code .ec-line div.code{padding-inline-start:.5em}main .expressive-code pre{border:0!important;border-radius:0!important;box-shadow:none;background:0 0}html[data-theme] main .expressive-code{--ec-codePadBlk:0;--ec-codePadInl:0;--ec-uiPadBlk:0;--ec-uiPadInl:.25rem;--ec-codeLineHt:1.4}html[data-theme] main .expressive-code pre:is([data-language=plaintext],[data-language=text],[data-language=txt],[data-language=ansi]){--ec-codeLineHt:1.2}html[data-theme] main .expressive-code{--ec-gtrBrdWd:1px;--ec-frm-edTabsMargBlkStart:0;--ec-frm-edTabsMargInlStart:0;--ec-frm-edBg:transparent}main .expressive-code .frame{border:1px dashed var(--rule);border-radius:0;overflow:hidden;background:0 0;box-shadow:none}main .expressive-code .frame pre{background:0 0}main .expressive-code .frame .copy{z-index:2}main .expressive-code .frame.has-title:not(.is-terminal),main .expressive-code .frame.is-terminal{--button-spacing:var(--sp-2)}main .expressive-code .frame .header{display:flex;align-items:center;min-height:0;margin:0;padding:var(--sp-2) var(--sp-3);background:0 0!important;border:0;border-bottom:1px dashed var(--rule);border-radius:0;background-repeat:no-repeat!important;padding-inline-start:var(--sp-3)!important}main .expressive-code .frame .header:before,main .expressive-code .frame .header:after{content:none!important;display:none!important}main .expressive-code .frame.has-title:not(.is-terminal) .header,main .expressive-code .frame.is-terminal .header{padding-inline-end:calc(2.5rem + var(--sp-2))}main .expressive-code .frame:not(.has-title):not(.is-terminal) .header{display:none!important}main .expressive-code .frame .title{position:static!important;overflow:visible;margin:0!important;padding:0!important;border:0!important;border-radius:0;background:0 0!important;box-shadow:none;color:var(--ink-3)!important;font-family:var(--font-meta);font-size:var(--fs-xs);font-weight:600;letter-spacing:.01em;line-height:1}main .expressive-code .frame .title:after{content:none!important;display:none!important}main.article-page.container{padding-top:var(--sp-4);padding-bottom:var(--sp-8);width:100%;max-width:min(var(--article-single-width),100%)}@media (max-width:639px){main.article-page.container{padding-bottom:0}main.article-page.container+.site-footer{margin-top:var(--sp-6)}}.article-content{width:100%;min-width:0}@media (min-width:1024px){main.article-page.container{max-width:min(var(--site-max-width),100%)}.article-body-grid{display:grid;grid-template-columns:minmax(0,var(--measure-wide)) var(--article-toc-max-width);gap:var(--article-grid-gap);align-items:start}}.article-body-grid .prose{max-width:var(--measure-wide);width:100%;padding-top:var(--sp-5)}.article-body-grid .prose>*{max-width:var(--measure)}.article-head{display:flex;flex-direction:column;width:100%;max-width:var(--measure);margin:0;padding-block:var(--sp-4) var(--sp-7);border-bottom:1px dashed var(--rule)}.article-head__core{display:flex;flex-direction:column;gap:var(--sp-4);min-width:0;container-type:inline-size}.article-title{font-family:var(--font-display);font-weight:700;letter-spacing:-.02em;line-height:var(--lh-tight);text-wrap:balance;color:var(--ink);font-size:var(--fs-2xl)}.article-lede{font-size:var(--fs-md);line-height:1.5;color:var(--ink-2);max-width:62ch;text-wrap:pretty}.article-body-grid .prose>:first-child{margin-top:0}.cta-action{display:inline-flex;align-items:center;padding:.35rem .75rem;border:1px dashed color-mix(in srgb,var(--ink) 28%,var(--rule));background:0 0;color:var(--ink);font-family:var(--font-meta);font-size:var(--fs-sm);font-weight:400;line-height:1.25;text-decoration:none;cursor:pointer;transition:border-color var(--dur-fast) var(--ease),background-color var(--dur-fast) var(--ease)}.cta-action:hover,.cta-action:focus-visible{border-color:color-mix(in srgb,var(--ink) 45%,var(--rule));background:var(--tint)}.cta-action:visited{color:var(--ink)}.cta-action:visited:hover,.cta-action:visited:focus-visible{color:var(--ink);border-color:color-mix(in srgb,var(--ink) 45%,var(--rule));background:var(--tint)}.cta-action:focus-visible{outline:2px solid color-mix(in srgb,var(--ink) 25%,transparent);outline-offset:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.55rem .9rem;border-radius:var(--r-md);border:1px solid var(--rule);background:var(--paper);color:var(--ink);font-family:var(--font-meta);font-size:var(--fs-sm);font-weight:500;letter-spacing:.02em;text-decoration:none;transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease)}.btn:hover{background:var(--tint);border-color:color-mix(in srgb,var(--accent) 40%,var(--rule))}.btn:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 45%,transparent);outline-offset:2px}.btn:disabled,.btn[aria-busy=true]{opacity:.7;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:var(--accent-2);border-color:var(--accent-2);color:var(--on-accent)}.btn-primary:active{background:var(--accent-2)}.btn-outline{background:0 0;color:var(--accent);border-color:var(--accent)}.btn-outline:hover{background:var(--accent-3);color:var(--accent-2)}.btn-sm{padding:.4rem .7rem;font-size:var(--fs-xs)}.btn-lg{padding:.7rem 1.1rem;font-size:var(--fs-sm)}.text-muted{color:var(--ink-2)}.badge{display:inline-block;padding:2px 8px;font-size:var(--fs-xs);border:1px solid var(--rule);border-radius:var(--r-sm);background:var(--tint);color:var(--ink-2)}.badge-topic{background:color-mix(in srgb,var(--ink) 6%,var(--paper));border-color:var(--rule);color:var(--ink-2)}.badge-stack{background:color-mix(in srgb,var(--info) 12%,var(--paper));border-color:color-mix(in srgb,var(--info) 35%,var(--rule));color:var(--info)}.inset-surface{padding:var(--sp-5);background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--r-md);margin-block:var(--sp-5)}.inset-surface+.inset-surface,.inset-surface.mt-4{margin-top:var(--sp-4)}.inset-surface>mark{display:block;margin:0 0 var(--sp-4);padding:0 0 var(--sp-4);background:0 0;box-shadow:none;border-bottom:1px solid var(--rule);border-radius:0;font-size:1.05rem;line-height:1.5;font-style:italic;color:var(--ink-2)}.inset-surface table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:var(--fs-sm);line-height:1.45}.inset-surface thead th{padding:0 0 var(--sp-3);border-bottom:1px solid var(--rule);font-family:var(--font-meta);font-size:var(--fs-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);text-align:left;vertical-align:bottom}.inset-surface th,.inset-surface td{padding:var(--sp-3) var(--sp-4) var(--sp-3)0;border-bottom:1px solid color-mix(in srgb,var(--rule) 70%,transparent);vertical-align:middle}.inset-surface tbody td:first-child,.inset-surface thead th:first-child{width:38%;padding-right:var(--sp-5)}.inset-surface tbody td:nth-child(2),.inset-surface thead th:nth-child(2){width:24%;white-space:nowrap}.inset-surface tbody td:nth-child(3),.inset-surface thead th:nth-child(3){width:38%}.inset-surface tr:last-child td{border-bottom:0;padding-bottom:0}.inset-surface a{color:var(--ink);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--ink-3) 55%,var(--rule));text-underline-offset:.12em}.inset-surface a:hover,.inset-surface a:focus-visible{color:var(--ink);text-decoration-color:var(--ink-2)}.inset-surface a:visited{color:var(--ink-2)}.mdx-model-name{color:var(--ink);font-family:var(--font-mono);font-size:var(--fs-xs);white-space:nowrap;padding-right:var(--sp-2)}main .post-row{display:grid;grid-template-columns:max-content 1fr;gap:var(--sp-4);padding:var(--sp-3)0;border-bottom:1px solid var(--rule);color:inherit;text-decoration:none;transition:background-color var(--dur-fast) var(--ease)}main .post-row:hover{background:var(--tint)}main .post-row .post-date{font-family:var(--font-meta);font-size:var(--fs-xs);color:var(--ink-3);letter-spacing:.01em;text-transform:none;padding-top:.25em;white-space:nowrap;font-variant-numeric:tabular-nums}main .post-row .post-date .dot{color:var(--ink-3);margin:0 .35em}main .post-row h2,main .post-row h3{font-family:var(--font-display);font-weight:600;font-size:var(--fs-base);line-height:var(--lh-snug);letter-spacing:-.005em;color:var(--ink);margin:0 0 .35em}main .post-row .post-lede{font-family:var(--font-body);font-size:var(--fs-sm);line-height:1.55;color:var(--ink-2);margin:0;text-wrap:pretty}@media (max-width:640px){main .post-row{grid-template-columns:1fr;gap:var(--sp-1)}main .post-row .post-date{padding-top:0}}main .blog-page,main .projects-page,main .contact-page{width:100%}main .page-head,main .blog-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-4);margin-bottom:var(--sp-3)}main .page-title,main .blog-title{margin:0;font-family:var(--font-meta);font-size:var(--fs-xs);font-weight:500;color:var(--ink-3);letter-spacing:.04em}main .page-meta,main .blog-meta{font-family:var(--font-meta);font-size:var(--fs-xs);line-height:1;color:var(--ink-3)}