@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(*),[data-astro-transition-scope]{animation:none!important}}.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}.section-icon[data-astro-cid-cs6zh4ns]{--size:var(--section-icon-size,22px);width:var(--size);height:var(--size);border-radius:calc(var(--size) * .3);background:var(--section-color);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.section-icon[data-astro-cid-cs6zh4ns] svg{width:calc(var(--size) * .55);height:calc(var(--size) * .55);color:var(--shell-ink)}.pm-close-icon[data-astro-cid-23y4vjp6]{width:var(--close-size,var(--text-lg));height:var(--close-size,var(--text-lg));fill:none;stroke:currentColor;stroke-width:var(--close-stroke,1.4)}.arc-frame[data-astro-cid-fmbfa3vp]{--g:calc(var(--safe-top) + var(--frame-top));--l:var(--sidebar-w);--r:var(--frame-edge);--b:var(--frame-bottom);--c:var(--radius-page);--solid:linear-gradient(#000 0 0);--corner:transparent calc(var(--c) - .5px), #000 var(--c);z-index:var(--z-frame);background:var(--shell);background-blend-mode:overlay, normal, normal, normal;pointer-events:none;mask-image:var(--solid), var(--solid), var(--solid), var(--solid), radial-gradient(circle at 100% 100%, var(--corner)), radial-gradient(circle at 0 100%, var(--corner)), radial-gradient(circle at 100% 0, var(--corner)), radial-gradient(circle at 0 0, var(--corner));mask-repeat:no-repeat;mask-size:100% var(--g), 100% var(--b), var(--l) 100%, var(--r) 100%, var(--c) var(--c), var(--c) var(--c), var(--c) var(--c), var(--c) var(--c);mask-position:0 0, 0 100%, 0 0, 100% 0, left var(--l) top var(--g), right var(--r) top var(--g), left var(--l) bottom var(--b), right var(--r) bottom var(--b);position:fixed;inset:0}.arc-bars[data-astro-cid-fmbfa3vp]{z-index:calc(var(--z-frame) + 1);height:var(--frame-gap);display:none;position:fixed;inset-inline:0}.arc-bars--top[data-astro-cid-fmbfa3vp]{background-color:var(--shell-ios-top);top:0}.arc-bars--bottom[data-astro-cid-fmbfa3vp]{background-color:var(--shell-ios-bottom);bottom:0}.arc-sidebar[data-astro-cid-fmbfa3vp]{z-index:var(--z-sidebar);top:var(--safe-top);gap:var(--space-2);width:var(--sidebar-open-w);padding:var(--space-2) var(--space-2) var(--space-3);scrollbar-width:none;color:var(--shell-ink);transition:transform .32s var(--ease-out);flex-direction:column;display:flex;position:fixed;bottom:0;left:0;overflow-y:auto}.arc-top[data-astro-cid-fmbfa3vp]{justify-content:space-between;align-items:center;gap:var(--space-2);min-height:var(--tap);margin-bottom:var(--space-2);display:flex}.arc-toggle[data-astro-cid-fmbfa3vp]{width:var(--space-8);height:var(--space-8);color:var(--shell-ink-2);border-radius:var(--radius-md);transition:background var(--duration-hover) ease, color var(--duration-hover) ease;justify-content:center;align-items:center;display:flex}.arc-toggle[data-astro-cid-fmbfa3vp]:hover{color:var(--shell-ink);background:var(--arc-hover)}.arc-tiles[data-astro-cid-fmbfa3vp]{gap:var(--space-2);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid}.arc-tile[data-astro-cid-fmbfa3vp]{background:var(--arc-tile);border-radius:var(--radius-md);height:46px;transition:background var(--duration-hover) ease, transform .2s var(--ease-out);justify-content:center;align-items:center;display:flex}.arc-tile[data-astro-cid-fmbfa3vp] svg{width:var(--text-xl);height:var(--text-xl);color:inherit}.arc-tile[data-astro-cid-fmbfa3vp]:hover{background:var(--arc-tile-hover)}.arc-tile[data-astro-cid-fmbfa3vp]:active{transform:scale(.95)}.arc-tabs[data-astro-cid-fmbfa3vp]{padding-top:var(--space-2);flex-direction:column;display:flex}.arc-space[data-astro-cid-fmbfa3vp]{align-items:center;gap:var(--space-3);min-width:0;padding:var(--space-1) var(--space-2) var(--space-1) var(--space-3);color:var(--shell-ink);border-radius:var(--radius-md);transition:background var(--duration-hover) ease;display:flex}.arc-space[data-astro-cid-fmbfa3vp]:hover{background:var(--arc-hover)}.arc-space[data-astro-cid-fmbfa3vp] img[data-astro-cid-fmbfa3vp],.arc-bar-home[data-astro-cid-fmbfa3vp] img[data-astro-cid-fmbfa3vp]{width:var(--space-8);height:var(--space-8);object-fit:cover;box-shadow:0 0 0 2px var(--arc-active);border-radius:50%;flex-shrink:0}.arc-space-name[data-astro-cid-fmbfa3vp],.arc-bar-home[data-astro-cid-fmbfa3vp]{font-size:var(--text-lg);letter-spacing:var(--tracking-title);color:var(--shell-ink);font-weight:700}.arc-space-name[data-astro-cid-fmbfa3vp]{min-width:0}.arc-tab[data-astro-cid-fmbfa3vp]{isolation:isolate;align-items:center;gap:var(--space-3);width:100%;min-height:38px;padding:var(--space-1) var(--space-3);color:var(--shell-ink);border-radius:var(--radius-md);font-size:var(--text-md);text-align:left;transition:background var(--duration-hover) ease, transform var(--duration-press) var(--ease-out);font-weight:600;display:flex;position:relative}.arc-tab[data-astro-cid-fmbfa3vp]:hover{background:var(--arc-hover)}.arc-tab[data-astro-cid-fmbfa3vp]:active{transform:scale(.985)}.arc-tab-label[data-astro-cid-fmbfa3vp]{min-width:0}.pm-nav-marker[data-astro-cid-fmbfa3vp]{z-index:-1;background:var(--arc-active);border-radius:inherit;box-shadow:0 1px 3px var(--shell-press);position:absolute;inset:0}.arc-tab[data-astro-cid-fmbfa3vp].arc-child{width:auto;margin-left:calc(var(--space-3) + var(--section-icon-size,22px));font-weight:500}.arc-new[data-astro-cid-fmbfa3vp]{color:var(--shell-ink-2);font-weight:500}.arc-new[data-astro-cid-fmbfa3vp]:hover{color:var(--shell-ink)}.arc-new[data-astro-cid-fmbfa3vp] svg{width:var(--text-lg);height:var(--text-lg);margin-inline:calc((var(--section-icon-size,22px) - var(--text-lg)) / 2);color:inherit;transition:transform .28s var(--ease-out);flex-shrink:0}.arc-new[data-astro-cid-fmbfa3vp]:hover svg{transform:rotate(90deg)}.arc-backdrop[data-astro-cid-fmbfa3vp],.arc-bar[data-astro-cid-fmbfa3vp]{display:none}@media (width>=1024px){html.lenis .arc-sidebar[data-astro-cid-fmbfa3vp]{overscroll-behavior:auto}.arc-toggle[data-astro-cid-fmbfa3vp]{display:none}}@media (width<=1023px){.arc-frame[data-astro-cid-fmbfa3vp]{display:none}.arc-sidebar[data-astro-cid-fmbfa3vp]{z-index:var(--z-sheet);top:auto;bottom:0;width:auto;max-height:85svh;padding:var(--frame-gap) var(--frame-gap) calc(var(--space-4) + env(safe-area-inset-bottom,0px));visibility:hidden;transition:transform var(--duration-menu) var(--ease-out), visibility 0s linear var(--duration-menu);inset-inline:0;transform:translateY(100%)}html.arc-sheet-open .arc-sidebar[data-astro-cid-fmbfa3vp]{visibility:visible;transition:transform .38s var(--ease-out), visibility 0s;transform:none}.arc-backdrop[data-astro-cid-fmbfa3vp]{z-index:var(--z-backdrop);background:var(--scrim);opacity:0;pointer-events:none;transition:opacity var(--duration-menu) ease;display:block;position:fixed;inset:0}html.arc-sheet-open .arc-backdrop[data-astro-cid-fmbfa3vp]{opacity:1;pointer-events:auto}.arc-tab[data-astro-cid-fmbfa3vp]{min-height:var(--tap);font-size:var(--text-lg)}.arc-tile[data-astro-cid-fmbfa3vp]{height:56px}.arc-top[data-astro-cid-fmbfa3vp]{height:var(--bar-h);margin-bottom:var(--space-3)}.arc-space[data-astro-cid-fmbfa3vp]{height:100%;padding-inline:var(--space-2)}.arc-space[data-astro-cid-fmbfa3vp] img[data-astro-cid-fmbfa3vp],.arc-bar-home[data-astro-cid-fmbfa3vp] img[data-astro-cid-fmbfa3vp]{width:28px;height:28px}.arc-toggle[data-astro-cid-fmbfa3vp]{--close-stroke:1.6;width:var(--tap);height:var(--tap);color:var(--shell-ink)}.arc-toggle[data-astro-cid-fmbfa3vp],.arc-bar-menu[data-astro-cid-fmbfa3vp]{background:var(--shell-press)}.arc-toggle[data-astro-cid-fmbfa3vp]:hover,.arc-bar-open[data-astro-cid-fmbfa3vp]:hover .arc-bar-menu[data-astro-cid-fmbfa3vp],.arc-bar-open[data-astro-cid-fmbfa3vp]:active .arc-bar-menu[data-astro-cid-fmbfa3vp]{background:var(--shell-press-hover)}html.scripts-failed .arc-sidebar[data-astro-cid-fmbfa3vp]{visibility:visible;max-height:none;position:static;transform:none}html.scripts-failed .arc-bar[data-astro-cid-fmbfa3vp]{display:none}.arc-sidebar[data-astro-cid-fmbfa3vp],.arc-bar[data-astro-cid-fmbfa3vp]{background:var(--shell);background-blend-mode:overlay, normal, normal, normal;border-radius:var(--radius-page) var(--radius-page) 0 0}.arc-bar[data-astro-cid-fmbfa3vp]{z-index:var(--z-sidebar);inset-inline:0;padding-bottom:env(safe-area-inset-bottom,0px);box-shadow:var(--shadow-up);display:block;position:fixed;bottom:0}.arc-bar-open[data-astro-cid-fmbfa3vp]{justify-content:space-between;align-items:center;gap:var(--space-2);width:100%;height:var(--bar-peek);padding:0 var(--frame-gap);color:var(--shell-ink);display:flex}.arc-bar-home[data-astro-cid-fmbfa3vp]{align-items:center;gap:var(--space-3);min-width:0;padding-inline:var(--space-2);display:flex}.arc-bar-menu[data-astro-cid-fmbfa3vp]{align-items:center;gap:var(--space-2);height:var(--tap);padding-inline:var(--space-4);border-radius:var(--radius-md);font-size:var(--text-md);transition:background var(--duration-hover) ease;flex-shrink:0;font-weight:600;display:flex}.arc-bar-menu[data-astro-cid-fmbfa3vp] svg{color:var(--shell-ink);flex-shrink:0}}@supports (-webkit-touch-callout:none){.arc-bars[data-astro-cid-fmbfa3vp]{display:block}.arc-frame[data-astro-cid-fmbfa3vp]{background:linear-gradient(var(--shell-ios-top) var(--g), var(--shell-ios-bottom) calc(100svh - var(--b)));background-blend-mode:normal}@media (width<=1023px){.arc-bars--top[data-astro-cid-fmbfa3vp]{background-color:var(--bg)}.arc-bar[data-astro-cid-fmbfa3vp]{background:var(--shell-ios-bottom);background-blend-mode:normal}.arc-sidebar[data-astro-cid-fmbfa3vp]{background:linear-gradient(var(--shell-ios-top), var(--shell-ios-bottom));background-blend-mode:normal}}}@media (prefers-reduced-motion:reduce){.arc-sidebar[data-astro-cid-fmbfa3vp],html.arc-sheet-open .arc-sidebar[data-astro-cid-fmbfa3vp],.arc-backdrop[data-astro-cid-fmbfa3vp],.arc-tile[data-astro-cid-fmbfa3vp],.arc-tab[data-astro-cid-fmbfa3vp],.arc-space[data-astro-cid-fmbfa3vp],.arc-new[data-astro-cid-fmbfa3vp] svg{transition:none}.arc-new[data-astro-cid-fmbfa3vp]:hover svg,.arc-tile[data-astro-cid-fmbfa3vp]:active,.arc-tab[data-astro-cid-fmbfa3vp]:active{transform:none}}.pm-scroll-top[data-astro-cid-5h2zxug4]{--focus-ring-offset:2px;right:calc(var(--frame-edge) + var(--space-5));bottom:calc(var(--frame-bottom) + var(--space-5));z-index:calc(var(--z-frame) - 1);width:var(--tap);height:var(--tap);background:var(--surface-2);border:1px solid var(--border-active);border-radius:var(--radius-md);color:var(--text);font-size:var(--text-lg);box-shadow:var(--shadow);cursor:pointer;opacity:0;transform:translateY(var(--space-4));visibility:hidden;transition:opacity var(--duration-menu) var(--ease-out), transform var(--duration-menu) var(--ease-out), visibility 0s linear var(--duration-menu), background var(--duration-hover) ease, color var(--duration-hover) ease;place-items:center;display:grid;position:fixed}.pm-scroll-top[data-astro-cid-5h2zxug4].is-visible{opacity:1;visibility:visible;transition:opacity var(--duration-menu) var(--ease-out), transform var(--duration-menu) var(--ease-out), visibility 0s, background var(--duration-hover) ease, color var(--duration-hover) ease;transform:none}.pm-scroll-top[data-astro-cid-5h2zxug4] svg{width:1em;height:1em;transition:transform .2s var(--ease-out)}.pm-scroll-top[data-astro-cid-5h2zxug4]:hover{background:var(--panel-3);color:var(--text-white)}.pm-scroll-top[data-astro-cid-5h2zxug4]:hover svg{transform:translateY(calc(-1 * var(--space-0_5)))}.pm-scroll-top[data-astro-cid-5h2zxug4].is-visible:active{transition-duration:var(--duration-press);transform:scale(.94)}@media (width<=1023px){.pm-scroll-top[data-astro-cid-5h2zxug4]{right:var(--space-4);bottom:calc(var(--frame-bottom) + var(--space-3))}}html.scripts-failed .pm-scroll-top[data-astro-cid-5h2zxug4]{display:none}@media (prefers-reduced-motion:reduce){.pm-scroll-top[data-astro-cid-5h2zxug4],.pm-scroll-top[data-astro-cid-5h2zxug4].is-visible,.pm-scroll-top[data-astro-cid-5h2zxug4] svg{transform:none}}@font-face{font-family:Geist;src:url(/_astro/geist-latin-wght-normal.BgDaEnEv.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist;src:url(/_astro/geist-latin-ext-wght-normal.DC-KSUi6.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;src:url(/_astro/geist-mono-latin-wght-normal.XN7g48iV.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono;src:url(/_astro/geist-mono-latin-ext-wght-normal.Bwz-egvJ.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--font-sans:"Geist", system-ui, sans-serif;--font-mono:"Geist Mono", ui-monospace, monospace;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.875rem;--text-md:.9375rem;--text-lg:1rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-page-title:clamp(2.5rem, 1.6rem + 3.2vw, 4rem);--text-section-title:clamp(1.75rem, 1.2rem + 1.5vw, 2.5rem);--text-statement:clamp(2.125rem, 1.2rem + 3.2vw, 4rem);--text-lead:clamp(1.125rem, 1rem + .4vw, 1.3125rem);--text-subhead:clamp(1.25rem, 1rem + 1vw, 1.75rem);--text-stat:clamp(2.25rem, 1.6rem + 1.6vw, 3rem);--reading-width:43rem;--contents-rail-width:15rem;--text-reading-body:1.125rem;--text-article-title:clamp(2.25rem, 1.4rem + 3vw, 3.75rem);--text-prose-h2:1.6875rem;--text-prose-h3:1.3125rem;--leading-display:1.1;--leading-heading:1.2;--leading-title:1.3;--leading-snug:1.45;--leading-ui:1.5;--leading-lead:1.55;--leading-body:1.6;--leading-reading:1.75;--tracking-display:-.035em;--tracking-heading:-.02em;--tracking-title:-.01em;--bg:#0f0d0c;--surface:#171412;--surface-2:#221e1a;--primary:#7c6af7;--accent:#e07b63;--action:#6a58e6;--action-hover:color-mix(in srgb, var(--action) 88%, white);--paper:#f0ede8;--text:#f0ede8;--text-2:#9c9188;--text-white:#fff;--text-reading:#c8c0b9;--border:#fff8f017;--border-active:#fff8f024;--shadow:0 4px 24px #00000080;--shadow-up:0 -4px 24px #00000080;--radius:6px;--radius-sm:4px;--radius-xs:3px;--radius-2xs:2px;--radius-pill:999px;--panel:#1b1714;--panel-3:#2b2622;--panel-3-edge:color-mix(in srgb, var(--primary) 40%, transparent);--icon:var(--primary);--panel-edge:#fff8f01a;--radius-lg:12px;--radius-md:10px;--radius-page:var(--radius-md);--shell-a:#6d5fa8;--shell-b:#3f3670;--shell-c:#2a2f63;--frame:var(--shell-b);--shell:url(/grain.svg), radial-gradient(90% 75% at 100% 0, var(--shell-a), transparent), radial-gradient(85% 60% at 0 100%, var(--shell-c), transparent), linear-gradient(var(--shell-b), var(--shell-b));--shell-ios-top:var(--shell-b);--shell-ios-bottom:var(--shell-c);--shell-ink:#fff;--shell-ink-2:#ffffffd9;--frame-gap:8px;--frame-edge:var(--frame-gap);--frame-top:var(--frame-edge);--frame-bottom:var(--frame-gap);--sidebar-open-w:248px;--sidebar-w:var(--sidebar-open-w);--arc-hover:#ffffff12;--arc-active:#ffffff1a;--arc-tile:#ffffff29;--arc-tile-hover:#ffffff3d;--shell-press:#00000029;--shell-press-hover:#0000003d;--scrim:#0000008c;--scrim-modal:#000000b3;--brand-linkedin:#0a66c2;--brand-github:var(--text-white);--brand-x:var(--text-white);--container:1200px;--page-gutter:32px;--bar-h:48px;--tap:44px;--badge-col:minmax(200px, 290px);--safe-top:env(safe-area-inset-top,0px);--gold:#d4a84f;--status-shipped:#6cb6ff;--toolkit-tool:#4fd1c5;--space-0_5:.125rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--section-gap:calc(var(--space-12) * 2);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.55, 0, 1, .45);--duration-press:.14s;--duration-hover:.16s;--duration-menu:.24s;--duration-reveal:.7s;--stagger-step:60ms;--focus-ring-offset:3px;--z-frame:60;--z-sidebar:70;--z-backdrop:99;--z-sheet:100;--z-modal:300;--z-skip:400;--z-progress:500}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-padding-top:calc(var(--safe-top) + var(--frame-top) + var(--space-3));scroll-padding-bottom:calc(var(--frame-bottom) + var(--space-3));-webkit-text-size-adjust:100%;tab-size:4;scrollbar-gutter:stable;background:var(--frame);scrollbar-color:var(--arc-active) var(--frame);scrollbar-width:thin}html,body,#content{overflow-anchor:none}body{font-family:var(--font-sans);font-size:var(--text-lg);background-color:var(--bg);color:var(--text);line-height:var(--leading-ui);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100svh;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}img,picture,video,canvas{max-width:100%;display:block}svg{vertical-align:middle;max-width:100%;display:inline-block}:where([data-icon]){color:var(--icon)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0}ul,ol{list-style:none}a{color:inherit;text-decoration:none}table{border-collapse:collapse}hr{border:0;border-top:1px solid}:focus:not(:focus-visible){outline:none}:focus-visible{outline:2px solid var(--primary);outline-offset:var(--focus-ring-offset);border-radius:var(--radius-xs)}.arc-sidebar :focus-visible,.arc-bar :focus-visible{outline-color:var(--shell-ink)}#content:focus{outline:none}.pm-button{--focus-ring-offset:2px}.pm-list-row{--focus-ring-offset:var(--space-1)}.pm-skip-link{top:0;left:var(--space-4);z-index:var(--z-skip);padding:var(--space-2) var(--space-4);background:var(--surface-2);border:1px solid var(--primary);border-radius:var(--radius);color:var(--text);font-size:var(--text-base);transition:transform var(--duration-hover) ease;font-weight:500;position:fixed;transform:translateY(-150%)}.pm-skip-link:focus-visible{transform:translateY(calc(var(--safe-top) + var(--frame-top) + var(--space-2)))}[data-reveal]:not(.revealed),[data-reveal-stagger]:not(.revealed)>*{opacity:0}html:not(.reveals-live) [data-reveal]:not(.revealed),html:not(.reveals-live) [data-reveal-stagger]:not(.revealed)>*{animation:0s linear 4s forwards pm-reveal-failsafe}@keyframes pm-reveal-failsafe{to{opacity:1}}[data-reveal].revealed{animation:pm-reveal-rise var(--duration-reveal) var(--ease-out) backwards;animation-delay:var(--reveal-delay,0s)}[data-reveal-stagger].revealed>*{--rise:12px;animation:pm-reveal-rise var(--duration-reveal) var(--ease-out) backwards;animation-delay:calc(var(--reveal-index,0) * var(--stagger-step))}[data-reveal].is-instant,[data-reveal-stagger].is-instant>*{animation:none}[data-reveal-delay="1"]{--reveal-delay:.1s}[data-reveal-delay="2"]{--reveal-delay:.2s}@keyframes pm-reveal-rise{0%{opacity:.01;transform:translateY(var(--rise,16px))}}.pm-skeleton{background:var(--surface-2);border-radius:var(--radius-sm);position:relative;overflow:hidden}.pm-skeleton:after{content:"";background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--text) 6%, transparent), transparent);animation:1.6s ease-in-out infinite pm-shimmer;position:absolute;inset:0;transform:translate(-100%)}.pm-skeleton:has(>[data-img-fade].is-loaded):after{opacity:0;animation:none}@keyframes pm-shimmer{to{transform:translate(100%)}}[data-img-fade]{opacity:.01;transition:opacity .5s var(--ease-out)}[data-img-fade].is-loaded{opacity:1}html:not(.reveals-live) [data-img-fade]:not(.is-loaded){animation:0s linear 4s forwards pm-reveal-failsafe}[data-img-fade=eager]{z-index:1;opacity:1;position:relative}.pm-skeleton:has(>[data-img-fade=eager].is-loaded){background:0 0}html:not([data-astro-transition]) #content{view-transition-name:none}::view-transition-group(pm-main){animation:none}::view-transition-old(pm-main){translate:0 var(--vt-old-y,0)}@keyframes pm-view-out{to{opacity:0}}@keyframes pm-view-in{0%{opacity:0;transform:translateY(6px)}}::view-transition-group(pm-nav-progress),::view-transition-new(pm-nav-progress){animation:none}::view-transition-old(pm-nav-progress){display:none}.lanyard-card{view-transition-name:lanyard-card}.lanyard-strap{view-transition-name:lanyard-strap}::view-transition-group(lanyard-card),::view-transition-group(lanyard-strap){animation-duration:.54s;animation-timing-function:var(--ease-out)}::view-transition-image-pair(lanyard-card){isolation:auto}::view-transition-old(lanyard-card),::view-transition-new(lanyard-card){mix-blend-mode:normal;backface-visibility:hidden}::view-transition-old(lanyard-card){animation:badge-turn-away .2s var(--ease-in) both}::view-transition-new(lanyard-card){animation:badge-turn-back .34s var(--ease-out) .2s both}html[data-astro-transition=back]::view-transition-old(lanyard-card){animation-name:badge-turn-away-reverse}html[data-astro-transition=back]::view-transition-new(lanyard-card){animation-name:badge-turn-back-reverse}@keyframes badge-turn-away{to{transform:perspective(900px)rotateY(90deg)}}@keyframes badge-turn-back{0%{transform:perspective(900px)rotateY(-90deg)}}@keyframes badge-turn-away-reverse{to{transform:perspective(900px)rotateY(-90deg)}}@keyframes badge-turn-back-reverse{0%{transform:perspective(900px)rotateY(90deg)}}html::view-transition-old(lanyard-card):only-child{animation:pm-view-out var(--duration-hover) ease both}html::view-transition-new(lanyard-card):only-child{animation:pm-view-in .3s var(--ease-out) both}@media (prefers-reduced-motion:reduce){html::view-transition-group(lanyard-card),html::view-transition-group(lanyard-strap),html::view-transition-old(lanyard-card),html::view-transition-new(lanyard-card){animation:none}}.arc-sidebar{view-transition-name:pm-sidebar}.arc-frame{view-transition-name:pm-frame}.arc-bar{view-transition-name:pm-bar}.arc-bars--top{view-transition-name:pm-bars-top}.arc-bars--bottom{view-transition-name:pm-bars-bottom}::view-transition-group(pm-sidebar){z-index:10}::view-transition-group(pm-sidebar),::view-transition-new(pm-sidebar),::view-transition-group(pm-frame),::view-transition-new(pm-frame),::view-transition-group(pm-bar),::view-transition-new(pm-bar),::view-transition-group(pm-bars-top),::view-transition-new(pm-bars-top),::view-transition-group(pm-bars-bottom),::view-transition-new(pm-bars-bottom){animation:none}::view-transition-old(pm-sidebar),::view-transition-old(pm-frame),::view-transition-old(pm-bar),::view-transition-old(pm-bars-top),::view-transition-old(pm-bars-bottom){display:none}@media (width<=1023px){::view-transition-old(pm-sidebar){animation:pm-sheet-away var(--duration-menu) var(--ease-out) both;display:block}}@keyframes pm-sheet-away{to{transform:translateY(100%)}}@media (width>=1024px){.pm-nav-marker{view-transition-name:nav-marker}}::view-transition-group(nav-marker){animation-duration:var(--duration-menu);animation-timing-function:var(--ease-out)}.pm-doc-title{view-transition-class:doc-title;width:fit-content;max-width:100%;display:inline-block}.pm-doc-cover{view-transition-class:doc-cover}::view-transition-group(*.doc-title),::view-transition-group(*.doc-cover){animation-duration:.32s;animation-timing-function:var(--ease-out)}::view-transition-old(*.doc-title),::view-transition-new(*.doc-title){object-fit:none;object-position:left top;width:auto;height:100%}::view-transition-old(*.doc-cover),::view-transition-new(*.doc-cover){object-fit:cover;height:100%}::view-transition-old(*.doc-title):only-child,::view-transition-old(*.doc-cover):only-child{animation-duration:90ms}::view-transition-new(*.doc-title):only-child,::view-transition-new(*.doc-cover):only-child{animation-duration:.2s}.pm-nav-progress{view-transition-name:pm-nav-progress;top:calc(var(--safe-top) + var(--frame-top));left:var(--sidebar-w);right:var(--frame-edge);z-index:var(--z-progress);height:var(--radius-page);border-radius:var(--radius-page) var(--radius-page) 0 0;opacity:0;pointer-events:none;transition:opacity .2s;position:fixed;overflow:hidden}@media (width<=1023px){.pm-nav-progress{border-radius:0}}.pm-nav-progress-fill{background:var(--primary);transform-origin:0;height:3px;transition:transform .3s var(--ease-out);transform:scaleX(0)}.pm-nav-progress.is-active{opacity:1}.pm-nav-progress.is-done{opacity:0;transition:opacity .2s .2s}.pm-nav-progress.is-done .pm-nav-progress-fill{transition:transform .2s var(--ease-out)}.pm-nav-progress.is-resetting .pm-nav-progress-fill{transition:none}@media (prefers-reduced-motion:reduce){.pm-nav-progress-fill{transition:none}}.pm-app{background:var(--bg);color:var(--text);min-height:100svh}.pm-content{background:var(--bg);margin-left:var(--sidebar-w);margin-right:var(--frame-edge);padding-top:calc(var(--safe-top) + var(--frame-top));padding-bottom:var(--frame-bottom);min-height:100svh;overflow-x:clip}@media (width>=768px) and (width<=1279px){:root{--text-statement:3rem;--text-page-title:3rem;--text-article-title:2.75rem}}@media (width<=1023px){:root{--frame-gap:6px;--frame-edge:0px;--frame-top:0px;--bar-peek:calc(var(--bar-h) + 2 * var(--frame-gap));--frame-bottom:calc(var(--bar-peek) + env(safe-area-inset-bottom,0px));--sidebar-w:var(--frame-edge);--page-gutter:24px}}.pm-logo-linkedin{background:linear-gradient(var(--text-white), var(--text-white)) center / 76% 76% no-repeat;color:var(--brand-linkedin)!important}[data-book][aria-busy=true]{cursor:progress;opacity:.75}html.pm-scroll-locked,html.pm-scroll-locked body,html.arc-sheet-open,html.arc-sheet-open body,html.cal-modal-open,html.cal-modal-open body{overflow:hidden}.pm-view-content{width:100%;max-width:calc(var(--container) + 2 * var(--page-gutter));padding:var(--page-gutter) var(--page-gutter) var(--space-12);gap:var(--space-6);isolation:isolate;flex-direction:column;margin-inline:auto;display:flex}@media (width<=767px){:root{--page-gutter:16px;--text-reading-body:1.0625rem;--text-prose-h2:1.5625rem;--section-gap:calc(var(--space-12) + var(--space-6));--text-page-title:2.25rem;--text-article-title:2.25rem}}.pm-badge-hero{--badge-offset:130px;grid-template-columns:minmax(0, 1fr) var(--badge-col);gap:var(--space-12);align-items:start;width:100%;display:grid}.pm-badge-hero>.lanyard{grid-area:1/2}.pm-badge-hero-content{align-items:flex-start;gap:var(--space-8);min-width:0;padding-top:var(--badge-offset);flex-direction:column;grid-area:1/1;display:flex}@media (width<=1279px){.pm-badge-hero{--badge-offset:108px;gap:var(--space-8)}}@media (width<=767px){.pm-badge-hero{--badge-offset:84px;row-gap:calc(var(--space-12) + var(--space-4));grid-template-columns:minmax(0,1fr)}.pm-badge-hero>.lanyard{grid-column:1}.pm-badge-hero-content{gap:var(--space-6);grid-row:2;padding-top:0}}.pm-hero-copy{gap:var(--space-6)}.pm-hero-copy .pm-wiki-header{margin:0;padding:0}.pm-hero-copy .pm-wiki-lead{max-width:60ch;color:var(--text)}.pm-wiki-header{gap:var(--space-4);margin-bottom:var(--space-4);padding-block:var(--space-4);flex-direction:column;display:flex;position:relative}.pm-wiki-page-title{font-size:var(--text-page-title);color:var(--text);font-weight:600;line-height:var(--leading-display);letter-spacing:var(--tracking-display);text-wrap:balance}.pm-wiki-lead{max-width:65ch;font-size:var(--text-lead);color:var(--text-reading);line-height:var(--leading-lead);text-wrap:pretty}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pm-section-title{font-size:var(--text-section-title);letter-spacing:var(--tracking-heading);font-weight:600;line-height:var(--leading-heading);color:var(--text);text-wrap:balance}.pm-body,.pm-bio-text,.pm-list-row-sub{font-size:var(--text-lg);color:var(--text-reading);line-height:var(--leading-body);text-wrap:pretty}.pm-meta{font-size:var(--text-sm);color:var(--text-2)}.pm-meta--md{font-size:var(--text-md)}.pm-truncate{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.pm-underline-link,.pm-text-link{text-decoration:underline;text-decoration-color:var(--border-active);text-underline-offset:var(--space-1);transition:color var(--duration-hover) ease, text-decoration-color var(--duration-hover) ease}.pm-underline-link:hover,.pm-text-link:hover{text-decoration-color:currentColor}.pm-avatar{width:var(--avatar-size,40px);height:var(--avatar-size,40px);border-radius:50%;flex-shrink:0;display:block}.pm-avatar--ring{box-shadow:0 0 0 1px var(--border)}.pm-avatar>img{object-fit:cover;width:100%;height:100%}.pm-back-link{align-items:center;gap:var(--space-2);width:fit-content;color:var(--text-2);font-size:var(--text-md);transition:color var(--duration-hover) ease;display:flex}.pm-back-link:hover{color:var(--primary)}.pm-back-link svg{width:var(--text-sm);height:var(--text-sm);color:inherit}@media (width<=1023px){.pm-back-link{min-height:var(--tap);display:inline-flex}}.pm-project-status{font-size:var(--text-md);color:var(--text-2);font-weight:500}.pm-project-status--shipped{color:var(--status-shipped)}.pm-project-status--in-progress{color:var(--gold)}.pm-panel,.pm-cta-panel{background:var(--panel);border:1px solid var(--panel-edge);border-radius:var(--radius-lg)}.pm-panel--lead,.pm-cta-panel{background:var(--panel-3);border-color:var(--panel-3-edge)}.pm-panel--lifted{background:var(--surface-2)}.pm-panel--link{color:inherit;transition:transform var(--duration-press) var(--ease-out), border-color .18s ease, background .18s ease}.pm-panel--link:hover{border-color:var(--border-active);background:var(--surface-2)}.pm-panel--link:active{transform:scale(.995)}.pm-panel--lead.pm-panel--link:hover{background:var(--panel-3);border-color:var(--panel-3-edge)}@media (prefers-reduced-motion:reduce){.pm-panel--link,.pm-panel--link:active{transition:none;transform:none}}.pm-list{gap:var(--space-4);flex-direction:column;display:flex}:is(.pm-list,.pm-postcard-grid)>li{min-width:0;display:flex}.pm-list-row{gap:var(--space-3);width:100%;padding:var(--space-6);flex-direction:column;display:flex}.pm-list-row-top{align-items:baseline;gap:var(--space-1) var(--space-3);flex-wrap:wrap;display:flex}.pm-list-row-title{font-size:var(--text-xl);letter-spacing:var(--tracking-title);font-weight:600;line-height:var(--leading-title);color:var(--text);min-width:0;transition:color var(--duration-hover) ease;flex:1}.pm-list-row:hover .pm-list-row-title{color:var(--text-white)}.pm-list-row-meta{font-size:var(--text-md);font-variant-numeric:tabular-nums;color:var(--text-reading)}.pm-list-row-sub{max-width:70ch}.pm-list-row-ext{width:var(--text-sm);height:var(--text-sm);flex-shrink:0;align-self:center}@media (width<=767px){.pm-list-row-title{flex-basis:100%}}.pm-postcard-grid{grid-template-columns:repeat(var(--grid-cols,3), minmax(0, 1fr));gap:var(--space-4);display:grid}.pm-postcard-grid--feature>li:first-child{grid-column:1/-1}@media (width<=1279px){.pm-postcard-grid{grid-template-columns:minmax(0,1fr)}}.pm-text-link{align-items:center;gap:var(--space-2);font-size:var(--text-md);color:var(--text);font-weight:500;display:inline-flex}.pm-text-link:hover{color:var(--primary)}.pm-text-link svg{color:inherit;width:var(--text-sm);height:var(--text-sm);transition:transform var(--duration-menu) var(--ease-out)}.pm-text-link:hover svg{transform:translate(3px)}@media (width<=1023px){.pm-text-link{min-height:var(--tap)}}@media (prefers-reduced-motion:reduce){.pm-text-link svg{transition:none;transform:none}}.pm-cta-panel{justify-content:space-between;align-items:center;gap:var(--space-6) var(--space-12);padding:var(--space-12);color:var(--text);flex-wrap:wrap;display:flex}@media (width<=767px){.pm-cta-panel{padding:var(--space-8) var(--space-6)}}.pm-badge{--badge-color:var(--text-reading);align-items:center;gap:var(--space-1);padding:var(--space-0_5) var(--space-2);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--badge-color) 10%, transparent);color:var(--badge-color);font-size:var(--text-sm);white-space:nowrap;font-weight:500;display:inline-flex}.pm-prose{font-size:var(--text-reading-body);line-height:var(--leading-reading);color:var(--text-reading);overflow-wrap:break-word}.pm-prose>*+*{margin-top:var(--space-6)}.pm-prose h2,.pm-prose h3,.pm-prose h4{color:var(--text);font-weight:600;line-height:var(--leading-title);letter-spacing:var(--tracking-title);scroll-margin-top:calc(var(--safe-top) + var(--frame-top) + var(--space-3))}.pm-prose h2{font-size:var(--text-prose-h2);letter-spacing:var(--tracking-heading);margin-top:calc(var(--space-12) + var(--space-1))}.pm-prose h3{font-size:var(--text-prose-h3);margin-top:calc(var(--space-8) + var(--space-1))}.pm-prose h4{font-size:var(--text-reading-body)}.pm-prose>:first-child{margin-top:0}.pm-prose strong{color:var(--text);font-weight:600}.pm-prose a,.pm-prose-link{color:inherit;border-bottom:1px dotted color-mix(in srgb, var(--primary) 50%, transparent);transition:color var(--duration-hover) ease, border-color var(--duration-hover) ease}.pm-prose a:hover,.pm-prose a:focus-visible,.pm-prose-link:hover,.pm-prose-link:focus-visible{color:var(--primary);border-bottom-color:var(--primary)}.pm-prose ul,.pm-prose ol{padding-left:var(--space-6)}.pm-prose li+li{margin-top:var(--space-2)}.pm-prose li::marker{color:var(--text-2)}.pm-prose blockquote{padding:var(--space-4) var(--space-6);border-radius:var(--radius-lg);background:var(--panel);color:var(--text);font-style:italic}.pm-prose code{border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface-2);font-family:var(--font-mono);color:var(--text);padding:1px 5px;font-size:.9em}.pm-prose pre{padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--text-base);line-height:var(--leading-body);overflow-x:auto}.pm-prose pre code{color:inherit;font-size:inherit;background:0 0;border:none;padding:0}.pm-prose img{object-fit:contain;border:1px solid var(--border);border-radius:var(--radius);height:auto;max-height:min(80vh,60rem)}.pm-prose figure{margin-block:var(--space-6)}.pm-prose figcaption{font-size:var(--text-sm);line-height:var(--leading-body);color:var(--text-2);margin-top:var(--space-3)}.pm-prose-img{border-radius:var(--radius);width:fit-content;max-width:100%;display:block}.pm-prose-img>img{height:auto}.pm-prose hr{border-top-color:var(--border);margin-bottom:var(--space-8)}.pm-prose table{width:100%;max-width:100%;font-size:var(--text-md);display:block;overflow-x:auto}.pm-prose th,.pm-prose td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);text-align:left}.pm-prose th{color:var(--text);font-size:var(--text-md);font-weight:600}.pm-button{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--space-12);padding:var(--space-3) var(--space-6);background:var(--action);border-radius:var(--radius);color:var(--text-white);font-size:var(--text-lg);transition:background var(--duration-hover) ease, border-color var(--duration-hover) ease, color var(--duration-hover) ease, transform .2s var(--ease-out);font-weight:600;display:inline-flex}.pm-button svg{color:inherit}.pm-button:hover{background:var(--action-hover)}.pm-button:active{transform:scale(.98)}.pm-button--quiet{min-height:0;padding:var(--space-2) var(--space-3);background:var(--surface-2);border:1px solid var(--border);color:var(--text-reading);font-size:var(--text-md);font-weight:500}.pm-button--quiet:hover{background:var(--surface);border-color:var(--border-active);color:var(--text)}@media (prefers-reduced-motion:reduce){.pm-button,.pm-button:active{transition:background var(--duration-hover) ease;transform:none}[data-reveal]:not(.revealed),[data-reveal-stagger]:not(.revealed)>*,[data-img-fade]{opacity:1;transition:none;animation:none;transform:none}[data-reveal].revealed,[data-reveal-stagger].revealed>*,.pm-skeleton:after{animation:none}}
