@layer astro.images{:where([data-astro-image]){height:auto}:where([data-astro-image=full-width]){width:100%}:where([data-astro-image=constrained]){max-width:100%}[data-astro-image-fit=fill]{object-fit:fill}[data-astro-image-fit=contain]{object-fit:contain}[data-astro-image-fit=cover]{object-fit:cover}[data-astro-image-fit=scale-down]{object-fit:scale-down}[data-astro-image-pos=top]{object-position:top}[data-astro-image-pos=bottom]{object-position:bottom}[data-astro-image-pos=left]{object-position:left}[data-astro-image-pos=right]{object-position:right}[data-astro-image-pos=center]{object-position:center}[data-astro-image-pos=top-bottom]{object-position:top bottom}[data-astro-image-pos=top-left]{object-position:top left}[data-astro-image-pos=top-right]{object-position:top right}[data-astro-image-pos=top-center]{object-position:top center}[data-astro-image-pos=bottom-top]{object-position:bottom top}[data-astro-image-pos=bottom-left]{object-position:bottom left}[data-astro-image-pos=bottom-right]{object-position:bottom right}[data-astro-image-pos=bottom-center]{object-position:bottom center}[data-astro-image-pos=left-top]{object-position:left top}[data-astro-image-pos=left-bottom]{object-position:left bottom}[data-astro-image-pos=left-right]{object-position:left right}[data-astro-image-pos=left-center]{object-position:left center}[data-astro-image-pos=right-top]{object-position:right top}[data-astro-image-pos=right-bottom]{object-position:right bottom}[data-astro-image-pos=right-left]{object-position:right left}[data-astro-image-pos=right-center]{object-position:right center}[data-astro-image-pos=center-top]{object-position:center top}[data-astro-image-pos=center-bottom]{object-position:center bottom}[data-astro-image-pos=center-left]{object-position:center left}[data-astro-image-pos=center-right]{object-position:center right}}.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}.in[data-astro-cid-cazewum5]{height:var(--head-h);justify-content:space-between;align-items:center;gap:1rem;padding-inline:1.25rem;display:flex}@media (width>=640px){.in[data-astro-cid-cazewum5]{padding-inline:2rem}}.name[data-astro-cid-cazewum5]{color:var(--nav-ink);letter-spacing:-.01em;font-size:.9375rem;font-weight:600;text-decoration:none}.name[data-astro-cid-cazewum5]:hover{color:var(--accent)}.right[data-astro-cid-cazewum5]{align-items:center;gap:.75rem;display:flex}@media (width>=640px){.right[data-astro-cid-cazewum5]{gap:1rem}}.seg[data-astro-cid-cazewum5]{border:1px solid var(--border);border-radius:6px;padding:2px;font-size:.75rem;font-weight:500;display:inline-flex}.seg[data-astro-cid-cazewum5] button[data-astro-cid-cazewum5]{color:var(--ink-muted);transition:background-color var(--dur) var(--ease), color var(--dur) var(--ease);border-radius:4px;padding:.25rem .6rem}.seg[data-astro-cid-cazewum5] button[data-astro-cid-cazewum5][aria-pressed=true]{background:var(--tab-active);color:var(--tab-active-ink);font-weight:600}.short[data-astro-cid-cazewum5]{display:none}.theme[data-astro-cid-cazewum5]{border:1px solid var(--border);width:2rem;height:2rem;color:var(--ink-muted);transition:color var(--dur) var(--ease), border-color var(--dur) var(--ease), background-color var(--dur) var(--ease);border-radius:6px;place-items:center;display:inline-grid}.theme[data-astro-cid-cazewum5]:hover{color:var(--ink);border-color:var(--border-strong);background:var(--surface-raised)}.theme[data-astro-cid-cazewum5] svg[data-astro-cid-cazewum5]{width:1rem;height:1rem}.theme[data-astro-cid-cazewum5] .sun[data-astro-cid-cazewum5]{display:none}html[data-theme=dark] .theme[data-astro-cid-cazewum5] .sun[data-astro-cid-cazewum5]{display:block}html[data-theme=dark] .theme[data-astro-cid-cazewum5] .moon[data-astro-cid-cazewum5]{display:none}.cta[data-astro-cid-cazewum5]{color:var(--accent);white-space:nowrap;font-size:.9375rem;font-weight:600;text-decoration:none}.cta[data-astro-cid-cazewum5]:hover{text-underline-offset:.25em;text-decoration:underline}@media (width<=639px){.long[data-astro-cid-cazewum5]{display:none}.short[data-astro-cid-cazewum5]{display:inline}.cta[data-astro-cid-cazewum5]{display:none}}.in[data-astro-cid-uq6og73e]{color:var(--ink-faint);gap:.5rem 1.5rem;padding:1.5rem 1rem 5.5rem;font-size:.8125rem;display:grid}@media (width>=640px){.in[data-astro-cid-uq6og73e]{grid-template-columns:minmax(0,1fr) auto;padding-inline:1.5rem}.meta[data-astro-cid-uq6og73e]{grid-column:1/-1}}ul[data-astro-cid-uq6og73e]{flex-wrap:wrap;gap:.25rem 1rem;display:flex}a[data-astro-cid-uq6og73e]{color:inherit;text-decoration:none}a[data-astro-cid-uq6og73e]:hover{color:var(--ink)}p[data-astro-cid-uq6og73e] a[data-astro-cid-uq6og73e]{color:var(--ink-muted)}@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-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:var(--font-sans);--font-mono:var(--font-mono);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--leading-relaxed:1.625;--radius-md:.375rem;--radius-xl:.75rem;--ease-out:cubic-bezier(0, 0, .2, 1);--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);--font-display:var(--font-sans);--container-reading:48rem;--container-wide:80rem}}@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}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;font-size:16px}@media (width>=640px){html{font-size:17px}}body{background-color:var(--bg);color:var(--ink);font-family:var(--font-sans);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;scrollbar-color:var(--border-mid) transparent;line-height:1.6}h1,h2,h3{text-wrap:balance;letter-spacing:-.015em}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}::selection{background:var(--accent-wash);color:var(--ink)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal,.reveal-load{opacity:1!important;animation:none!important;transform:none!important}}}@layer components{[data-mode=eng] .only-plain,:root:not([data-mode=eng]) .only-eng{display:none!important}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.m{text-align:center;min-width:2.6rem;font:600 .625rem/1.5 var(--font-mono);letter-spacing:.06em;border-radius:3px;padding:.1rem .3rem;display:inline-block}.m.get{background:var(--get-bg);color:var(--get)}.m.post{background:var(--post-bg);color:var(--post)}.ref{grid-template-columns:minmax(0,1fr);display:grid}@media (width>=1280px){.ref{grid-template-columns:15rem minmax(0,1fr)}}.rail{top:var(--head-h);z-index:5;background:var(--bg);border-bottom:1px solid var(--border);position:sticky}.rail .cap{display:none}.rail ol{scrollbar-width:none;gap:.25rem;padding:.6rem 2.5rem .6rem 1.25rem;display:flex;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 2.5rem),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 2.5rem),#0000)}.rail ol::-webkit-scrollbar{display:none}.rail a{color:var(--ink-muted);white-space:nowrap;transition:background-color var(--dur) var(--ease), color var(--dur) var(--ease);border-radius:5px;align-items:center;padding:.4rem .7rem;font-size:.875rem;font-weight:600;text-decoration:none;display:inline-flex}.rail a:hover{color:var(--ink);background:var(--surface-raised)}.rail a[aria-current=true],.rail a[aria-current=page],.rail a[data-open=true]{color:var(--ink);background:var(--accent-wash)}.rail .ep-ref,.rail li.sub,.rail li.idx{display:none}@media (width>=1280px){.rail{height:calc(100vh - var(--head-h));border-bottom:0;border-right:1px solid var(--border);align-self:start;padding:2.5rem 1rem 2.5rem 1.5rem;overflow-y:auto}.rail .cap{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:1rem;font-size:.6875rem;display:block}.rail ol{flex-direction:column;gap:.25rem;padding:0;overflow:visible;-webkit-mask-image:none;mask-image:none}.rail li.sub,.rail li.idx{display:block}.rail li.sub{padding-left:1rem}.rail li.idx{border-top:1px solid var(--border);margin-top:.75rem;padding-top:.75rem}.rail a{white-space:normal;gap:.2rem;width:100%;padding:.55rem .75rem;display:grid}.rail a[aria-current=true],.rail a[aria-current=page]{box-shadow:inset 2px 0 0 var(--accent)}.rail a[data-open=true]{background:0 0}.rail .ep-ref{min-width:0;color:var(--ink-faint);align-items:center;gap:.45rem;font-size:.75rem;font-weight:400;display:inline-flex}.rail .ep-ref .mono{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rail a[aria-current=true] .ep-ref,.rail a[aria-current=page] .ep-ref{color:var(--ink-muted)}}.ep{scroll-margin-top:calc(var(--head-h) + 3.75rem);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=1024px){.ep{grid-template-columns:minmax(0,1fr) minmax(0,24rem)}}@media (width>=1280px){.ep{scroll-margin-top:calc(var(--head-h) + .5rem);grid-template-columns:minmax(0,1fr) minmax(0,30rem)}}@media (width>=1536px){.ep{grid-template-columns:minmax(0,1fr) minmax(0,36rem)}}.ep-prose{border-top:1px solid var(--border);max-width:var(--container-reading);min-width:0;padding:2.75rem 1.25rem}@media (width>=640px){.ep-prose{padding:3.5rem 2rem}}@media (width>=1024px){.ep-prose{padding:4rem 3rem 4rem 2.5rem}}@media (width>=1280px){.ep-prose{padding:4.5rem 3.5rem}}.ep:first-child .ep-prose{border-top:0}.ep-code{background:var(--code-bg);color:var(--code-ink);min-width:0;padding:1.5rem 1.25rem 2.25rem}@media (width>=640px){.ep-code{padding:2rem 2rem 2.5rem}}@media (width>=1024px){.ep-code{border-top:1px solid var(--code-line);padding:4rem 2rem}.ep:first-child .ep-code{border-top:0}.ep-code .stick{top:calc(var(--head-h) + 4.5rem);position:sticky}}@media (width>=1280px){.ep-code{padding:4.5rem 2.5rem}.ep-code .stick{top:calc(var(--head-h) + 1.5rem)}}.ref-main{align-content:start;display:grid}.crumb{color:var(--ink-faint);font-size:.8125rem}.crumb b{color:var(--ink);font-weight:500}.ep-prose h1{letter-spacing:-.025em;margin-top:1rem;font-size:clamp(2.5rem,5.5vw,3.75rem);font-weight:700;line-height:1.05}.ep-prose h1.page{letter-spacing:-.02em;font-size:clamp(1.875rem,3.6vw,2.5rem);line-height:1.15}.ep-prose h2{margin-top:.85rem;font-size:1.75rem;font-weight:700;line-height:1.2}.ep-prose h2.mt{margin-top:2.5rem}.ep-prose h3{font-weight:700}.lead{color:var(--ink);margin-top:1.5rem;font-size:1.1875rem;line-height:1.55}.t{color:var(--ink-muted);margin-top:1rem}.status{color:var(--ink-faint);margin-top:.35rem;font-size:.8125rem}.quiet{color:var(--ink-muted)}.ep-prose a{color:var(--accent);text-decoration:none}.ep-prose a:hover{text-underline-offset:.25em;text-decoration:underline}.ep-prose .lead a{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--border-mid);-webkit-text-decoration-color:var(--border-mid);text-decoration-color:var(--border-mid);text-underline-offset:.25em}.ep-prose .lead a:hover{-webkit-text-decoration-color:var(--ink);-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}svg.i,.cx-open svg{display:inline-block}.ep-prose svg.i,.site-foot svg.i{vertical-align:-.05em;width:.8em;height:.8em;margin-left:.2em}.back{margin-bottom:1rem;font-size:.875rem}.back a{color:var(--ink-muted)}dl.facts{border-top:1px solid var(--border);grid-template-columns:max-content minmax(0,1fr);gap:.55rem 1.75rem;margin-top:2rem;padding-top:1.25rem;font-size:.9375rem;display:grid}dl.facts dt{color:var(--ink-faint);padding-top:.1rem;font-size:.8125rem}dl.facts dd{color:var(--ink);margin:0}dl.metrics{border-top:1px solid var(--border);grid-template-columns:max-content minmax(0,1fr);gap:0 1.5rem;margin-top:2rem;display:grid}dl.metrics dt{color:var(--ink-faint);border-bottom:1px solid var(--border);padding:.55rem 0;font-size:.8125rem}dl.metrics dd{border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums;margin:0;padding:.5rem 0;font-weight:600}.actions{flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;margin-top:2.25rem;display:flex}.btn{transition:transform var(--dur-fast) var(--ease), background-color var(--dur) var(--ease), border-color var(--dur) var(--ease);border-radius:6px;align-items:center;gap:.5rem;padding:.6rem 1rem;font-size:.9375rem;font-weight:600;line-height:1.2;text-decoration:none;display:inline-flex}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--accent-fill);color:var(--accent-ink);box-shadow:var(--shadow-btn)}.btn-primary:hover{background:var(--accent-fill-hover)}.ep-prose a.btn-primary{color:var(--accent-ink)}.ep-prose a.btn-primary:hover{text-decoration:none}.btn-ghost{border:1px solid var(--border-mid);color:var(--ink);background:0 0}.btn-ghost:hover{border-color:var(--border-strong);background:var(--surface-raised)}.ep-prose a.btn-ghost{color:var(--ink)}.ep-prose a.btn-ghost:hover{text-decoration:none}.btn svg{width:.9em;height:.9em}.c-link{font-size:.9375rem;font-weight:600}.items{gap:2.25rem;margin-top:2rem;display:grid}.item{border-top:1px solid var(--border);gap:1rem;padding-top:1.75rem;display:grid}@media (width>=640px){.item.has-pic{grid-template-columns:minmax(0,1fr) 13rem;align-items:start;column-gap:1.5rem}}.item>div{min-width:0}.item h3{font-size:1.1875rem;font-weight:700;line-height:1.3}.item h3 a{color:var(--ink)}.item h3 a:hover{color:var(--accent);text-decoration:none}.item .focus{margin-top:.5rem;font-size:.9375rem;font-weight:600}.item p.t{font-size:.9375rem}.item .more{margin-top:.6rem;font-size:.9375rem}.item .pic{min-width:0;max-width:100%}.item .pic img{border:1px solid var(--border);border-radius:6px;width:100%;height:auto}.item .pic.sq img{max-width:9rem}.job{border-top:1px solid var(--border);scroll-margin-top:calc(var(--head-h) + 4rem);gap:.2rem .5rem;padding-block:1rem;display:grid}.job:first-of-type{margin-top:1.25rem}@media (width>=640px){.job{grid-template-columns:10.5rem minmax(0,1fr)}.job .when{grid-row:1/3}.job ul.bullets{grid-column:2}}.job .when{color:var(--ink-faint);font-size:.8125rem}.job h3{font-size:1.0625rem;font-weight:700}.job h3 span{color:var(--ink-muted);font-weight:400}.job p{color:var(--ink-muted);max-width:60ch;font-size:.9375rem}.stops{border-top:1px solid var(--border);margin-top:1.75rem}.stops li{border-bottom:1px solid var(--border);scroll-margin-top:calc(var(--head-h) + 4rem);gap:.25rem 1.25rem;padding-block:1.2rem;display:grid}@media (width>=640px){.stops li{grid-template-columns:6.5rem minmax(0,1fr)}}.stops .when{color:var(--ink-faint);padding-top:.2rem;font-size:.8125rem}.stops h3{font-size:1.0625rem;font-weight:700}.stops p{color:var(--ink-muted);max-width:60ch;margin-top:.35rem;font-size:.9375rem}.ep-prose .chips{flex-wrap:wrap;gap:.4rem;margin-top:1rem;display:flex}.ep-prose .chips li{border:1px solid var(--border);color:var(--ink-muted);background:var(--surface-raised);border-radius:4px;padding:.2rem .55rem;font-size:.8125rem}.subs{border-top:1px solid var(--border);margin-top:1.25rem}.subs li{border-bottom:1px solid var(--border);padding-block:.9rem}.subs li>a{color:var(--ink);font-weight:600}.subs li>a:hover{color:var(--accent);text-decoration:none}.subs li p{color:var(--ink-muted);max-width:60ch;margin-top:.3rem;font-size:.9375rem}.learned{color:var(--ink-muted);margin-top:1rem;padding-left:1.25rem;list-style:decimal}.learned li{padding-block:.4rem;padding-left:.25rem}.learned li::marker{font-family:var(--font-mono);color:var(--ink-faint);font-size:.8125rem}.bullets{color:var(--ink-muted);margin-top:.6rem;padding-left:1.1rem;font-size:.9375rem;list-style:outside}.bullets li{padding-block:.2rem}.bullets li::marker{color:var(--border-strong)}.principle{margin-top:1.25rem}.principle h3{font-size:1.125rem}.principle p{margin-top:.35rem}.skills{border-top:1px solid var(--border);grid-template-columns:max-content minmax(0,1fr);gap:.5rem 1.25rem;margin-top:1rem;padding-top:.9rem;font-size:.9375rem;display:grid}.skills dt{color:var(--ink-faint);padding-top:.15rem;font-size:.8125rem}.skills dd{color:var(--ink);margin:0}.cats{margin-top:1.5rem}.cats ul{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:.25rem;display:flex}.cats a,.cats button{color:var(--ink-muted);border-bottom:2px solid #0000;margin-bottom:-1px;padding:.5rem .8rem;font-size:.9375rem;font-weight:600;text-decoration:none;display:inline-block}.cats a:hover,.cats button:hover{color:var(--ink);text-decoration:none}.cats [aria-current=true],.cats [aria-pressed=true]{color:var(--ink);border-bottom-color:var(--accent)}.prevnext{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.5rem;margin-top:2rem;padding-top:1rem;font-size:.875rem;display:flex}.prevnext a{color:var(--ink-muted)}figure.cover{margin:1.75rem 0 0}figure.cover img{border:1px solid var(--border);border-radius:6px;width:100%;height:auto}figure.cover figcaption{color:var(--ink-faint);margin-top:.5rem;font-size:.8125rem}figure.cover figcaption a{color:var(--ink)}pre.excerpt{border:1px solid var(--border);background:var(--surface-raised);font:400 .75rem/1.55 var(--font-mono);color:var(--ink-muted);white-space:pre;border-radius:6px;max-width:100%;margin:0;padding:.9rem 1rem;overflow-x:auto}pre.excerpt .kw{color:var(--ink);font-weight:600}pre.excerpt .st{color:var(--get)}pre.excerpt .cm{color:var(--ink-faint)}.ep-code .panel{border:1px solid var(--code-line);background:var(--code-surface);border-radius:8px;overflow:hidden}.ep-code .panel+.panel,.ep-code .cx+.panel{margin-top:1.25rem}.ep-code .panel .bar{border-bottom:1px solid var(--code-line);color:var(--code-dim);justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 1.1rem;font-size:.75rem;display:flex}.ep-code .panel .bar b{color:var(--code-ink);font-weight:500}.ep-code .panel .bar .src{white-space:nowrap;text-overflow:ellipsis;font-size:.6875rem;overflow:hidden}.ep-code .panel pre{font:400 .8125rem/1.65 var(--font-mono);color:var(--code-ink);white-space:pre-wrap;word-break:break-word;tab-size:2;margin:0;padding:1.1rem 1.1rem 1.25rem;overflow-x:auto}.ep-code .panel pre .cm{color:var(--code-dim)}.ep-code .panel pre .kw{color:var(--syn-key)}.ep-code .panel pre .st{color:var(--syn-str)}.ep-code .note{color:var(--code-dim);margin-top:1rem;font-size:.75rem;line-height:1.5}.ep-code .note a{color:var(--code-ink)}.ep-code ::selection{color:#fff;background:#2a3550}.ep-code :focus-visible{outline-color:var(--syn-key)}.k{color:var(--syn-key)}.s{color:var(--syn-str)}.n{color:var(--syn-num)}.p{color:var(--code-dim)}.cx{border:1px solid var(--code-line);background:var(--code-surface);color:var(--code-ink);border-radius:8px;overflow:hidden}.cx-bar{border-bottom:1px solid var(--code-line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem .9rem;padding:.75rem 1.1rem;display:flex}.cx-ep{color:var(--code-ink);align-items:center;gap:.5rem;font-size:.8125rem;display:inline-flex}.cx-langs{background:#ffffff0a;border-radius:6px;gap:2px;padding:2px;display:inline-flex}.cx-langs button{font:500 .75rem/1.4 var(--font-mono);color:var(--code-dim);transition:background-color var(--dur) var(--ease), color var(--dur) var(--ease);border-radius:4px;padding:.25rem .55rem}.cx-langs button:hover{color:var(--code-ink)}.cx-langs button[aria-selected=true]{background:var(--syn-key);color:var(--code-bg)}.cx-sec{border-bottom:1px solid var(--code-line);padding:1rem 1.1rem}.cx-cap{letter-spacing:.1em;text-transform:uppercase;color:var(--code-dim);flex-wrap:wrap;justify-content:flex-start;align-items:baseline;gap:.25rem 1rem;margin-bottom:.7rem;font-size:.6875rem;display:flex}.cx-params{gap:.65rem;display:grid}.cx-param{grid-template-columns:6.5rem minmax(0,1fr);align-items:center;gap:.6rem;font-size:.8125rem;display:grid}.cx-param>.mono{color:var(--syn-key)}.cx-param select,.cx-param input,.cx-param textarea{border:1px solid var(--code-line);background:var(--code-bg);width:100%;min-width:0;color:var(--code-ink);font:400 .8125rem/1.4 var(--font-mono);color-scheme:dark;border-radius:5px;padding:.4rem .55rem}.cx-param textarea{resize:vertical;align-self:start}.cx-param select:focus-visible,.cx-param input:focus-visible,.cx-param textarea:focus-visible{outline:2px solid var(--syn-key);outline-offset:1px}.cx-param input::placeholder,.cx-param textarea::placeholder{color:var(--code-dim)}.cx-check{color:var(--code-dim);align-items:center;gap:.5rem;display:inline-flex}.cx-check input{width:1rem;height:1rem;accent-color:var(--syn-key)}.cx-req{font:400 .8125rem/1.6 var(--font-mono);color:var(--code-ink);white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.cx-req .k{color:var(--syn-key)}.cx-req .s{color:var(--syn-str)}.cx-act{border-bottom:1px solid var(--code-line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;padding:.85rem 1.1rem;display:flex}.cx-send{background:var(--accent-fill);color:var(--accent-ink);font:600 .875rem/1.2 var(--font-sans);transition:transform var(--dur-fast) var(--ease), background-color var(--dur) var(--ease);border-radius:6px;align-items:center;gap:.45rem;padding:.5rem .9rem;display:inline-flex;box-shadow:0 1px 2px #0000004d}.cx-send:hover{background:#7a73ff}.cx-send:active{transform:translateY(1px)}.cx-send svg{width:.85em;height:.85em}.cx:focus-within .cx-send{box-shadow:0 1px 2px #0000004d,0 0 0 3px #635bff40}.cx-src{color:var(--code-dim);font-size:.6875rem}.cx-resp{border-bottom:0}.cx-status{letter-spacing:0;text-transform:none;color:var(--code-dim);margin-left:auto;font-size:.75rem}.cx-status .ok{color:var(--syn-str)}.cx-status .bad{color:var(--syn-num)}.cx-status .neutral{color:var(--code-dim)}.cx-more{white-space:nowrap}.cx-open{color:var(--syn-key);text-decoration:none}.cx-open:hover{text-decoration:underline}.cx-open svg{vertical-align:-.1em;width:.8em;height:.8em}.cx-copy{font:500 .6875rem/1.4 var(--font-mono);letter-spacing:.04em;text-transform:none;color:var(--code-dim);border:1px solid var(--code-line);transition:color var(--dur) var(--ease), border-color var(--dur) var(--ease);border-radius:4px;margin-left:auto;padding:.1rem .45rem}.cx-cap .cx-status+.cx-copy{margin-left:.75rem}.cx-copy:hover{color:var(--code-ink);border-color:var(--code-dim)}.cx-outwrap{position:relative}.cx-outwrap.is-clipped:after{content:"";background:linear-gradient(to bottom, transparent, var(--code-surface));pointer-events:none;height:2.75rem;position:absolute;bottom:0;left:0;right:8px}.cx-out{min-height:3.5rem;max-height:28rem;font:400 .8125rem/1.65 var(--font-mono);white-space:pre-wrap;word-break:break-word;scrollbar-color:var(--code-line) transparent;scrollbar-width:thin;margin:0;overflow:auto}.cx-out::-webkit-scrollbar{width:8px}.cx-out::-webkit-scrollbar-thumb{background:var(--code-line);border-radius:4px}@media (width<=1023px){.cx-out{max-height:20rem}}.cx-frame{color:var(--code-dim);margin:1rem 0 0;font-size:.75rem;line-height:1.5}.cx-frame a{color:var(--code-ink)}.is-sending .cx-out{opacity:.9}.tile{border:1px solid var(--border);background:var(--surface);border-radius:6px}.eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);align-items:center;gap:.5rem;font-size:.75rem;font-weight:600;display:inline-flex}@keyframes reveal-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.js:not(.reveal-css) .reveal{transition:opacity var(--dur-slow) var(--ease-out), transform var(--dur-slow) var(--ease-out);transition-delay:var(--reveal-delay,0s)}.js:not(.reveal-css) .reveal:not(.is-in){opacity:0;transform:translateY(12px)}.reveal-css .reveal{animation:linear both reveal-in view();animation-range:entry entry 55%}.reveal-css .reveal-load{animation:reveal-in var(--dur-slow) var(--ease-out) both;animation-delay:var(--reveal-delay,0s);animation-timeline:auto;animation-range:normal}.prose-portfolio{color:var(--tw-prose-body);max-width:65ch}.prose-portfolio :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose-portfolio :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-portfolio :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.prose-portfolio :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose-portfolio :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-portfolio :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-portfolio :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose-portfolio :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-portfolio :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose-portfolio :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose-portfolio :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose-portfolio :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose-portfolio :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose-portfolio :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose-portfolio :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose-portfolio :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose-portfolio :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose-portfolio :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-portfolio :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose-portfolio :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose-portfolio :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}.prose-portfolio :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-portfolio :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-portfolio :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose-portfolio :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose-portfolio :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-portfolio :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose-portfolio :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-portfolio :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose-portfolio :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-portfolio :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose-portfolio :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-portfolio :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose-portfolio :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose-portfolio :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}.prose-portfolio :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose-portfolio :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-portfolio :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.prose-portfolio :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose-portfolio :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose-portfolio :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-portfolio :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose-portfolio :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose-portfolio :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose-portfolio :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-portfolio :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-portfolio :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose-portfolio :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-portfolio :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-portfolio :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose-portfolio :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose-portfolio :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-portfolio :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose-portfolio :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-portfolio :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose-portfolio :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose-portfolio :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose-portfolio :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose-portfolio :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose-portfolio :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose-portfolio :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-portfolio :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-portfolio{--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);line-height:1.75}.prose-portfolio :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-portfolio :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose-portfolio :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-portfolio :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose-portfolio :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose-portfolio :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose-portfolio :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose-portfolio :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose-portfolio :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose-portfolio :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose-portfolio :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose-portfolio :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose-portfolio :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-portfolio :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-portfolio :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-portfolio :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-portfolio :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-portfolio :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-portfolio :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-portfolio :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-portfolio :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-portfolio :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose-portfolio :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-portfolio :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-portfolio{--tw-prose-body:var(--ink-muted);--tw-prose-headings:var(--ink);--tw-prose-lead:var(--ink-muted);--tw-prose-links:var(--accent);--tw-prose-bold:var(--ink);--tw-prose-counters:var(--ink-faint);--tw-prose-bullets:var(--border-strong);--tw-prose-hr:var(--border);--tw-prose-quotes:var(--ink);--tw-prose-quote-borders:var(--accent);--tw-prose-captions:var(--ink-faint);--tw-prose-code:var(--ink);--tw-prose-th-borders:var(--border-strong);--tw-prose-td-borders:var(--border);--tw-prose-pre-bg:transparent;--tw-prose-pre-code:inherit;max-width:none;font-size:1rem}.prose-portfolio :where(h2){letter-spacing:-.015em;margin-top:2.5em;font-size:1.5rem}.prose-portfolio :where(h3){font-size:1.125rem}.prose-portfolio :where(a){font-weight:500;text-decoration:none}.prose-portfolio :where(a):hover{text-underline-offset:.25em;text-decoration:underline}.prose-portfolio :where(code):not(:where(pre code)){font-family:var(--font-mono);background:var(--surface-raised);border:1px solid var(--border);border-radius:4px;padding:.05em .35em;font-size:.85em;font-weight:500}.prose-portfolio :where(.expressive-code){margin-block:1.5rem}.prose-portfolio :where(.expressive-code pre){font-size:inherit;line-height:inherit;background:0 0;margin:0;padding:0}.prose-portfolio :where(code):before,.prose-portfolio :where(code):after{content:""}.still-where,.still-drawer{display:none}.still .ref{height:var(--still-h,auto);align-items:start}@media (width<=1279px){.still .ref{grid-template-rows:auto minmax(0,1fr)}}.still .ref-main{--resp-w:0rem;top:var(--still-top,var(--head-h));height:calc(100svh - var(--still-top,var(--head-h)));background:linear-gradient(to right, var(--bg) calc(100% - var(--resp-w)), var(--code-bg) calc(100% - var(--resp-w)));display:block;position:sticky;overflow:hidden}@media (width>=1024px){.still .ref-main{--resp-w:24rem}}@media (width>=1280px){.still .ref-main{--resp-w:30rem}}@media (width>=1536px){.still .ref-main{--resp-w:36rem}}.still .ref-main>.ep{align-items:start;position:absolute;inset:0}.still .ref-main>.ep[inert]{visibility:hidden}.still .ref-main>.ep .ep-prose{will-change:opacity, transform;border-top:0;padding-bottom:6rem}.still .ref-main>.ep .ep-code{background:0 0;border-top:0}.still .ref-main>.ep .stick{will-change:opacity, transform;position:static}.still .ref-main.still-cut>.ep{animation:still-cut .32s var(--ease-out) both}@keyframes still-cut{0%{opacity:0}to{opacity:1}}.still .still-where{left:0;right:var(--resp-w);z-index:2;max-width:var(--container-reading);color:var(--ink-faint);background:linear-gradient(to bottom, transparent, var(--bg) 45%);pointer-events:none;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1.25rem;font-size:.8125rem;display:flex;position:absolute;bottom:0}@media (width>=640px){.still .still-where{padding-inline:2rem}}@media (width>=1024px){.still .still-where{padding-inline:2.5rem 3rem}}@media (width>=1280px){.still .still-where{padding-inline:3.5rem}}.still-where b{color:var(--ink);font-weight:600}.still-dots{gap:.4rem;display:inline-flex}.still-dots i{background:var(--border-mid);width:.45rem;height:.45rem;transition:background-color var(--dur) var(--ease), transform var(--dur) var(--ease);border-radius:50%}.still-dots i.on{background:var(--accent);transform:scale(1.25)}.still-next{align-items:center;gap:.4rem;display:inline-flex}.still-next svg{width:.9em;height:.9em;animation:still-nudge 1.8s var(--ease) infinite}@keyframes still-nudge{0%,60%,to{transform:none}30%{transform:translateY(3px)}}@media (width>=1280px){.still .rail a[href^=\#][aria-current=true]{box-shadow:inset 2px 0 0 var(--accent)}@supports (color:color-mix(in lab, red, red)){.still .rail a[href^=\#][aria-current=true]{box-shadow:inset 2px 0 0 color-mix(in srgb, var(--accent) 22%, transparent)}}.still .rail a[href^=\#][aria-current=true]{background-image:linear-gradient(var(--accent), var(--accent));background-size:2px calc(var(--read,0) * 100%);background-repeat:no-repeat}}@media (width<=1023px){.still .still-where{bottom:3.25rem}.still .ref-main>.ep .ep-code{overscroll-behavior:contain;background:var(--code-bg);height:calc(80% - 3.25rem);transition:transform .36s var(--ease);border-radius:12px 12px 0 0;padding:1rem 1.25rem 1.5rem;position:absolute;bottom:3.25rem;left:0;right:0;overflow-y:auto;transform:translateY(calc(100% + 3.25rem))}.still .ref-main.drawer-open>.ep .ep-code{transform:none;box-shadow:0 -12px 32px -12px #00000073}.still .still-drawer{z-index:3;background:var(--code-bg);height:3.25rem;color:var(--code-ink);border-top:1px solid var(--code-line);font:400 .8125rem/1 var(--font-mono);align-items:center;gap:.6rem;padding-inline:1.25rem;display:flex;position:absolute;bottom:0;left:0;right:0}.still-drawer-ep{white-space:nowrap;align-items:center;gap:.5rem;min-width:0;display:inline-flex;overflow:hidden}.still-drawer-ep b{font-weight:500}.still-drawer .lbl{color:var(--code-dim);margin-left:auto;font-size:.75rem}.still-drawer svg{width:1rem;height:1rem;color:var(--code-dim);transition:transform .36s var(--ease)}.still .ref-main.drawer-open .still-drawer svg{transform:rotate(180deg)}}.gp{top:var(--head-h);z-index:30;background:var(--bg);color:var(--ink);opacity:0;transition:opacity .26s var(--ease), left .42s var(--ease);position:fixed;bottom:0;left:0;right:0}.gp.on{opacity:1}.gp:focus{outline:none}@media (width>=1024px){.gp{border-left:1px solid var(--border);left:calc(100% - 24rem);box-shadow:-18px 0 40px -28px #0a254073}}@media (width>=1280px){.gp{left:calc(100% - 30rem)}}@media (width>=1536px){.gp{left:calc(100% - 36rem)}}.gp.expanded{left:0}.gp-bar{border-bottom:1px solid var(--border);background:var(--bg);align-items:center;gap:.75rem;height:3rem;padding:0 .6rem 0 1.1rem;display:flex;position:absolute;inset:0 0 auto}.gp-path{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:.5rem;min-width:0;font-size:.8125rem;display:inline-flex;overflow:hidden}.gp-tools{align-items:center;gap:.15rem;margin-left:auto;display:flex}.gp-tools a,.gp-tools button{width:2rem;height:2rem;color:var(--ink-muted);transition:background-color var(--dur) var(--ease), color var(--dur) var(--ease);border-radius:6px;place-items:center;display:grid}.gp-tools a:hover,.gp-tools button:hover{color:var(--ink);background:var(--surface-raised)}.gp-tools svg{width:1rem;height:1rem;display:block}.gp-expand .collapse-i,.gp.expanded .gp-expand .expand-i{display:none}.gp.expanded .gp-expand .collapse-i{display:block}@media (width<=1023px){.gp-expand{display:none!important}}.gp-body{overscroll-behavior:contain;grid-auto-rows:max-content;align-content:start;justify-items:center;gap:1rem;padding:1.25rem 1rem 2rem;display:grid;position:absolute;inset:3rem 0 0;overflow-y:auto}@media (width>=640px){.gp-body{padding-inline:1.5rem}}.gp-host{border:1px solid var(--border);background:var(--surface);width:100%;max-width:40rem;transition:max-width .42s var(--ease);border-radius:12px;position:relative;overflow:hidden}.gp.expanded .gp-host{max-width:64rem}.gp.expanded .gp-host [data-stage]{max-width:min(100%, calc(100svh - var(--head-h) - 11rem))}.gp-loading{text-align:center;color:var(--ink-muted);padding:3rem 1rem;font-size:.875rem}.gp-touch{background:var(--surface-raised);max-width:40rem;color:var(--ink-muted);border-radius:8px;padding:.7rem .9rem;font-size:.875rem}.play-card{border:1px solid var(--border);background:var(--surface-raised);width:100%;color:var(--ink);text-align:left;transition:border-color var(--dur) var(--ease), background-color var(--dur) var(--ease);border-radius:10px;align-items:center;gap:1rem;padding:1rem 1.1rem;text-decoration:none;display:flex}.play-card:hover{border-color:var(--accent);text-decoration:none}.play-card[aria-expanded=true]{border-color:var(--accent);background:var(--accent-wash)}.play-card .go{background:var(--accent-fill);width:2.75rem;height:2.75rem;color:var(--accent-ink);box-shadow:var(--shadow-btn);border-radius:50%;flex:none;place-items:center;display:grid}.play-card .go svg{width:1.1rem;height:1.1rem;margin-left:2px}.play-card b{font-size:1rem;font-weight:600;display:block}.play-card small{color:var(--ink-faint);margin-top:.1rem;font-size:.8125rem;display:block}@media print{@page{size:letter;margin:.35in .5in}body>header,body>footer,.no-print,.rail,.ep-code,astro-dev-toolbar{display:none!important}html{font-size:9.3pt;color-scheme:light!important}html,body{color:#000!important;background:#fff!important;min-height:0!important}a{color:inherit;text-decoration:none}.ref,.ep{display:block!important}.ep-prose{border:0!important;max-width:none!important;padding:0!important}.resume{max-width:none!important;padding:0!important}.resume h1{font-size:16pt;margin-top:0!important}.resume h2{font-size:8pt;margin-top:.35rem!important}.resume .crumb,.resume .back,.resume .actions{display:none!important}.resume section{margin-top:.35rem!important}.resume header{padding-bottom:.3rem!important}.resume header .sub{font-size:11pt;margin-top:0!important}.resume .contact{column-gap:.7rem;font-size:8pt;margin-top:.25rem!important}.resume p,.resume li{line-height:1.3!important}.resume ol>li+li{margin-top:.4rem!important}.resume ul>li+li{margin-top:.15rem!important}.resume .rjob,.resume li{break-inside:avoid}.resume .print-url{display:inline!important}.resume .text-ink,.resume .text-ink-muted{color:#111!important}.resume .text-ink-faint{color:#444!important}.resume .text-accent{color:#3b34c9!important}}}@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.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}.sticky{position:sticky}.inset-0{inset:0}.top-0{top:0}.isolate{isolation:isolate}.z-40{z-index:40}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.my-0{margin-block:0}.my-8{margin-block:calc(var(--spacing) * 8)}.my-10{margin-block:calc(var(--spacing) * 10)}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:decimal}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:disc}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em;font-style:italic;font-weight:500}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows), 0 3px 0 var(--tw-prose-kbd-shadows);padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;border-radius:.3125rem;padding-inline-start:.375em;font-family:inherit;font-size:.875em;font-weight:500}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);padding-top:.857143em;padding-inline-end:1.14286em;padding-bottom:.857143em;border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding-inline-start:1.14286em;font-size:.875em;font-weight:400;line-height:1.71429;overflow-x:auto}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;background-color:#0000;border-width:0;border-radius:0;padding:0}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){table-layout:auto;width:100%;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);vertical-align:bottom;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em;font-weight:600}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);margin-top:.857143em;font-size:.875em;line-height:1.42857}.prose{--tw-prose-body:oklch(37.3% .034 259.733);--tw-prose-headings:oklch(21% .034 264.665);--tw-prose-lead:oklch(44.6% .03 256.802);--tw-prose-links:oklch(21% .034 264.665);--tw-prose-bold:oklch(21% .034 264.665);--tw-prose-counters:oklch(55.1% .027 264.364);--tw-prose-bullets:oklch(87.2% .01 258.338);--tw-prose-hr:oklch(92.8% .006 264.531);--tw-prose-quotes:oklch(21% .034 264.665);--tw-prose-quote-borders:oklch(92.8% .006 264.531);--tw-prose-captions:oklch(55.1% .027 264.364);--tw-prose-kbd:oklch(21% .034 264.665);--tw-prose-kbd-shadows:oklab(21% -.00316127 -.0338527/.1);--tw-prose-code:oklch(21% .034 264.665);--tw-prose-pre-code:oklch(92.8% .006 264.531);--tw-prose-pre-bg:oklch(27.8% .033 256.848);--tw-prose-th-borders:oklch(87.2% .01 258.338);--tw-prose-td-borders:oklch(92.8% .006 264.531);--tw-prose-invert-body:oklch(87.2% .01 258.338);--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:oklch(70.7% .022 261.325);--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:oklch(70.7% .022 261.325);--tw-prose-invert-bullets:oklch(44.6% .03 256.802);--tw-prose-invert-hr:oklch(37.3% .034 259.733);--tw-prose-invert-quotes:oklch(96.7% .003 264.542);--tw-prose-invert-quote-borders:oklch(37.3% .034 259.733);--tw-prose-invert-captions:oklch(70.7% .022 261.325);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:#ffffff1a;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:oklch(87.2% .01 258.338);--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:oklch(44.6% .03 256.802);--tw-prose-invert-td-borders:oklch(37.3% .034 259.733);font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.571429em;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-7{margin-top:calc(var(--spacing) * 7)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.size-full{width:100%;height:100%}.min-h-64{min-height:calc(var(--spacing) * 64)}.min-h-dvh{min-height:100dvh}.w-full{width:100%}.max-w-\(--container-wide\){max-width:var(--container-wide)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-\[400px\]{max-width:400px}.flex-1{flex:1}.shrink{flex-shrink:1}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.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}.list-disc{list-style-type:disc}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2.5) * 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)))}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-5{column-gap:calc(var(--spacing) * 5)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-1{row-gap:var(--spacing)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:2147483647px}.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-x-0{border-inline-style:var(--tw-border-style);border-inline-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-border{border-color:var(--border)}.bg-accent-fill{background-color:var(--accent-fill)}.bg-bg{background-color:var(--bg)}.bg-black{background-color:var(--color-black)}.bg-black\/25{background-color:#00000040}@supports (color:color-mix(in lab, red, red)){.bg-black\/25{background-color:color-mix(in oklab, var(--color-black) 25%, transparent)}}.bg-black\/70{background-color:#000000b3}@supports (color:color-mix(in lab, red, red)){.bg-black\/70{background-color:color-mix(in oklab, var(--color-black) 70%, transparent)}}.bg-nav{background-color:var(--nav)}.bg-surface{background-color:var(--surface)}.bg-surface-raised{background-color:var(--surface-raised)}.bg-white\/95{background-color:#fffffff2}@supports (color:color-mix(in lab, red, red)){.bg-white\/95{background-color:color-mix(in oklab, var(--color-white) 95%, transparent)}}.object-cover{object-fit:cover}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-8{padding:calc(var(--spacing) * 8)}.\!px-3{padding-inline:calc(var(--spacing) * 3)!important}.px-0{padding-inline:0}.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)!important}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-5{padding-block:calc(var(--spacing) * 5)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.95rem\]{font-size:.95rem}.text-\[0\.6875rem\]{font-size:.6875rem}.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-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.1em\]{--tw-tracking:.1em;letter-spacing:.1em}.text-wrap{text-wrap:wrap}.text-accent{color:var(--accent)}.text-accent-ink{color:var(--accent-ink)}.text-black{color:var(--color-black)}.text-code-dim{color:var(--code-dim)}.text-danger{color:var(--danger)}.text-ink{color:var(--ink)}.text-ink-faint{color:var(--ink-faint)}.text-ink-muted{color:var(--ink-muted)}.text-nav-ink{color:var(--nav-ink)}.text-white{color:var(--color-white)}.text-white\/50{color:#ffffff80}@supports (color:color-mix(in lab, red, red)){.text-white\/50{color:color-mix(in oklab, var(--color-white) 50%, transparent)}}.text-white\/70{color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){.text-white\/70{color:color-mix(in oklab, var(--color-white) 70%, transparent)}}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.decoration-accent\/40{-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.decoration-accent\/40{-webkit-text-decoration-color:color-mix(in oklab, var(--accent) 40%, transparent);-webkit-text-decoration-color:color-mix(in oklab, var(--accent) 40%, transparent);text-decoration-color:color-mix(in oklab, var(--accent) 40%, transparent)}}.decoration-border-strong{-webkit-text-decoration-color:var(--border-strong);-webkit-text-decoration-color:var(--border-strong);text-decoration-color:var(--border-strong)}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.accent-ink{accent-color:var(--ink)}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + 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)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.grayscale{--tw-grayscale:grayscale(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-blur-\[1px\]{--tw-backdrop-blur:blur(1px);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-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))}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media (hover:hover){.group-hover\:scale-105:is(:where(.group):hover *){--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:border-ink-faint:hover{border-color:var(--ink-faint)}.hover\:bg-black\/40:hover{background-color:#0006}@supports (color:color-mix(in lab, red, red)){.hover\:bg-black\/40:hover{background-color:color-mix(in oklab, var(--color-black) 40%, transparent)}}.hover\:text-accent:hover{color:var(--accent)}.hover\:text-ink:hover{color:var(--ink)}.hover\:underline:hover{text-decoration-line:underline}.hover\:decoration-accent:hover{-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}}.focus\:not-sr-only:focus{clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.focus\:absolute:focus{position:absolute}.focus\:top-4:focus{top:calc(var(--spacing) * 4)}.focus\:left-4:focus{left:calc(var(--spacing) * 4)}.focus\:z-50:focus{z-index:50}.focus\:rounded-md:focus{border-radius:var(--radius-md)}.focus\:bg-accent-fill:focus{background-color:var(--accent-fill)}.focus\:px-4:focus{padding-inline:calc(var(--spacing) * 4)}.focus\:py-2:focus{padding-block:calc(var(--spacing) * 2)}.focus\:text-accent-ink:focus{color:var(--accent-ink)}@media (width>=40rem){.sm\:my-10{margin-block:calc(var(--spacing) * 10)}.sm\:ml-auto{margin-left:auto}.sm\:rounded-xl{border-radius:var(--radius-xl)}.sm\:border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:px-8{padding-inline:calc(var(--spacing) * 8)}}@media (width>=64rem){.lg\:-mx-12{margin-inline:calc(var(--spacing) * -12)}}.\[\&\>p\]\:mb-3>p{margin-bottom:calc(var(--spacing) * 3)}.\[\&\>p\:last-child\]\:mb-0>p:last-child{margin-bottom:0}}:root{color-scheme:light;--head-h:3.5rem;--bg:#fff;--surface:#fff;--surface-raised:#f6f8fa;--border:#e3e8ee;--border-mid:#cfd7df;--border-strong:#7f8b9b;--ink:#0a2540;--ink-muted:#425466;--ink-faint:#5b6b82;--nav:#fff;--nav-ink:#0a2540;--nav-muted:#425466;--tab-active:#eeedff;--tab-active-ink:#0a2540;--accent:#5e56fb;--accent-hover:#5249e6;--accent-fill:#5e56fb;--accent-fill-hover:#5249e6;--accent-ink:#fff;--accent-wash:#eeedff;--ok:#0a6b3f;--warn:#8a5a00;--danger:#b42318;--get:#0a6b3f;--get-bg:#e2f5ec;--post:#4b43d6;--post-bg:#eeedff;--code-bg:#0b0f19;--code-surface:#131a2a;--code-line:#263042;--code-ink:#d6deeb;--code-dim:#7d8aa5;--syn-key:#9ecbff;--syn-str:#a5d6a7;--syn-num:#f7c46c;--dur-fast:.12s;--dur:.24s;--dur-slow:.6s;--ease:cubic-bezier(.16, 1, .3, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--shadow-btn:0 1px 2px #0a25401f, 0 4px 12px -6px #635bff80}@media screen{:root[data-theme=dark]{color-scheme:dark;--bg:#0d1117;--surface:#0d1117;--surface-raised:#151b23;--border:#21262d;--border-mid:#30363d;--border-strong:#656c76;--ink:#e8edf5;--ink-muted:#aeb9ca;--ink-faint:#8896ab;--nav:#0d1117;--nav-ink:#e8edf5;--nav-muted:#aeb9ca;--tab-active:#262c36;--tab-active-ink:#e8edf5;--accent:#9d97ff;--accent-hover:#b3aeff;--accent-wash:#262c36;--ok:#4fd08f;--warn:#e5b04a;--danger:#f8817a;--get:#5fd39c;--get-bg:#12312a;--post:#b4afff;--post-bg:#272b58;--code-bg:#010409;--code-surface:#151b23;--code-line:#30363d;--shadow-btn:0 1px 2px #0006, 0 4px 12px -6px #635bff80}}@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-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<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-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}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}
