:root{--lightningcss-light: ;--lightningcss-dark:initial;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#111;--color-surface:#242424;--color-hover:#242424b3;--color-text:#f2f0eb;--color-text-muted:#a3a3a3;--color-rule:#2c2c2c;--color-deep:#44484e;--color-accent:#a9b6c6;--color-focus:#a9b6c6;--color-tag-bg:transparent;--color-tag-border:#333;--color-tag-text:#a3a3a3;--color-selection:#a9b6c640;--spot-rgb:169 182 198;--spot-alpha:.055;--font-display:ui-serif, "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--font-body:system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--step--1:clamp(.8125rem, .79rem + .1vw, .875rem);--step-0:clamp(1rem, .96rem + .2vw, 1.0625rem);--step-2:clamp(1.375rem, 1.2rem + .9vw, 1.75rem);--step-5:clamp(2.5rem, 2rem + 2vw, 3.25rem);--step-4:clamp(2.25rem, 1.6rem + 3.2vw, 3.75rem);--space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2.5rem;--space-5:4rem;--space-6:6rem;--gutter:clamp(1.25rem, 5vw, 2rem);--measure:38rem;--ease:cubic-bezier(.2, .6, .2, 1)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:var(--space-4)}body{background:var(--color-bg);color:var(--color-text);font:var(--step-0) / 1.65 var(--font-body);text-rendering:optimizelegibility;margin:0}h1,h2,h3,p,ul,figure,table{margin:0;padding:0}ul{list-style:none}a{color:inherit}::selection{background:var(--color-selection)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px;border-radius:2px}.skip-link{z-index:10;background:var(--color-text);color:var(--color-bg);padding:.5rem 1rem;position:absolute;top:var(--space-1);transform:translateY(-200%)}.skip-link:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){left:var(--space-1)}.skip-link:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){right:var(--space-1)}.skip-link:focus{transform:none}.eyebrow{font:500 var(--step--1) / 1.4 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.link{text-underline-offset:.25em;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--color-text-muted);text-decoration-color:var(--color-text-muted);transition:text-decoration-color .2s var(--ease), text-decoration-thickness .2s var(--ease)}:is(.link:hover,.link:focus-visible){text-decoration-color:currentColor;text-decoration-thickness:2px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.wordmark em{letter-spacing:-.01em;font-style:italic}.section-title{align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);font:500 var(--step--1) / 1.4 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);display:flex}.section-title:after{content:"";background:var(--color-rule);flex:1;height:1px}.pills{flex-wrap:wrap;gap:.375rem;display:flex}.pills li{border:1px solid var(--color-tag-border);background:var(--color-tag-bg);font:var(--step--1) / 1.5 var(--font-mono);color:var(--color-tag-text);white-space:nowrap;border-radius:999px;padding:.125rem .625rem}@media (hover:hover){.featured-list:has(.row:hover) .row:not(:hover){opacity:.6}}.featured-list:has(.row :focus-visible) .row:not(:has(:focus-visible)){opacity:.6}@media (pointer:coarse),(max-width:47.99rem){.row-link,.back-link,.ext-link,.cta-link,.closing-link{padding-block-start:.625rem;padding-block-end:.625rem}.project-links>.ext-link,.cta-link,.closing-link{margin-block-start:-.625rem;margin-block-end:-.625rem}}.social[data-astro-cid-y2qsmizv]{flex-wrap:wrap;gap:.125rem;margin-inline-start:-.75rem;display:flex}.icon-link[data-astro-cid-y2qsmizv]{width:2.75rem;height:2.75rem;color:var(--color-text-muted);transition:color .15s var(--ease), transform .2s var(--ease);border-radius:.5rem;place-items:center;display:grid;position:relative}:is(a[data-astro-cid-y2qsmizv].icon-link:hover,a[data-astro-cid-y2qsmizv].icon-link:focus-visible){color:var(--color-accent);transform:translateY(-2px)}@media (hover:hover) and (pointer:fine){a[data-astro-cid-y2qsmizv].icon-link:after{content:attr(data-tip);border:1px solid var(--color-rule);background:var(--color-bg);color:var(--color-text);font:500 .6875rem / 1.4 var(--font-mono);letter-spacing:.04em;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s var(--ease), transform .15s var(--ease);border-radius:.25rem;padding:.25rem .5rem;position:absolute;bottom:calc(100% + .25rem);left:0;transform:translateY(2px)}a[data-astro-cid-y2qsmizv].icon-link:hover:after{opacity:1;transform:none}a[data-astro-cid-y2qsmizv].icon-link:focus-visible:after{opacity:1;transform:none}}.is-disabled[data-astro-cid-y2qsmizv]{opacity:.35;outline:1px dashed var(--color-rule);outline-offset:-4px;cursor:not-allowed}.sidebar[data-astro-cid-wv7whodv]{padding-block:var(--space-5) 0;gap:var(--space-4);flex-direction:column;margin-inline-start:-1.25rem;margin-inline-end:-1.25rem;padding-inline-start:1.25rem;padding-inline-end:1.25rem;display:flex;overflow-x:clip}.name[data-astro-cid-wv7whodv]{font:400 var(--step-5) / .98 var(--font-display);letter-spacing:-.03em;margin-block:var(--space-1) var(--space-2)}.name[data-astro-cid-wv7whodv] a[data-astro-cid-wv7whodv]{text-decoration:none}.first[data-astro-cid-wv7whodv],.last[data-astro-cid-wv7whodv]{overflow-wrap:anywhere;width:-moz-fit-content;width:fit-content;display:block}.last[data-astro-cid-wv7whodv]{color:var(--color-text-muted)}.identity[data-astro-cid-wv7whodv]{max-width:24rem}.tagline[data-astro-cid-wv7whodv]{max-width:20rem;color:var(--color-text-muted)}.cta[data-astro-cid-wv7whodv]{gap:var(--space-1) var(--space-3);margin-top:var(--space-3);font-size:var(--step--1);flex-wrap:wrap;align-items:center;display:flex}.cta-primary[data-astro-cid-wv7whodv]{border:1px solid var(--color-text);min-height:2.75rem;transition:background-color .2s var(--ease), color .2s var(--ease);border-radius:.25rem;align-items:center;padding:0 1rem;text-decoration:none;display:inline-flex}:is(.cta-primary[data-astro-cid-wv7whodv]:hover,.cta-primary[data-astro-cid-wv7whodv]:focus-visible){background:var(--color-accent);border-color:var(--color-accent);color:var(--color-bg)}.cta-link[data-astro-cid-wv7whodv]{text-underline-offset:.25em;-webkit-text-decoration-color:var(--color-text-muted);text-decoration-color:var(--color-text-muted)}:is(.cta-link[data-astro-cid-wv7whodv]:hover,.cta-link[data-astro-cid-wv7whodv]:focus-visible){text-decoration-color:currentColor}.nav[data-astro-cid-wv7whodv]{gap:var(--space-1) var(--space-3);flex-wrap:wrap;display:flex}.nav-link[data-astro-cid-wv7whodv]{min-height:2.75rem;font:500 var(--step--1) / 1.4 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);transition:color .2s var(--ease);align-items:center;gap:.75rem;padding-block-start:.375rem;padding-block-end:.375rem;text-decoration:none;display:inline-flex}.nav-rule[data-astro-cid-wv7whodv],.sidebar-foot[data-astro-cid-wv7whodv]{display:none}:is(.nav-link[data-astro-cid-wv7whodv]:hover,.nav-link[data-astro-cid-wv7whodv]:focus-visible,.nav-link[data-astro-cid-wv7whodv][aria-current]){color:var(--color-accent)}@media (min-width:64rem){.sidebar[data-astro-cid-wv7whodv]{height:100dvh;padding-block:var(--space-6) var(--space-4);position:sticky;top:0;overflow-y:auto}.nav[data-astro-cid-wv7whodv]{flex-direction:column;gap:0}.nav-rule[data-astro-cid-wv7whodv]{transform-origin:0;width:3.5rem;height:1px;transition:transform .25s var(--ease);background:currentColor;margin-right:-2rem;display:inline-block;transform:scaleX(.4286)}.nav-label[data-astro-cid-wv7whodv]{transition:transform .25s var(--ease);display:inline-block}:is(.nav-link[data-astro-cid-wv7whodv]:hover .nav-rule[data-astro-cid-wv7whodv],.nav-link[data-astro-cid-wv7whodv]:focus-visible .nav-rule[data-astro-cid-wv7whodv],.nav-link[data-astro-cid-wv7whodv][aria-current] .nav-rule[data-astro-cid-wv7whodv]){transform:none}:is(.nav-link[data-astro-cid-wv7whodv]:hover .nav-label[data-astro-cid-wv7whodv],.nav-link[data-astro-cid-wv7whodv]:focus-visible .nav-label[data-astro-cid-wv7whodv],.nav-link[data-astro-cid-wv7whodv][aria-current] .nav-label[data-astro-cid-wv7whodv]){transform:translate(2rem)}.sidebar-foot[data-astro-cid-wv7whodv]{margin-top:auto;display:block}.cta[data-astro-cid-wv7whodv]{display:none}.nav-link[data-astro-cid-wv7whodv]{min-height:0}}.intro{display:none}html.intro-play .intro{z-index:100;color:var(--color-text);pointer-events:none;display:block;position:fixed;top:0;bottom:0;left:0;right:0}html.intro-go .intro{animation:intro-hide 1ms linear calc(2.2s * var(--ts,1)) forwards}html.intro-go .intro-labels,html.intro-go .intro-roles{animation:intro-out calc(.6s * var(--ts,1)) ease-in-out calc(1.55s * var(--ts,1)) forwards}html.intro-play .sidebar{z-index:101;overflow:visible}@media (max-width:63.99rem){html.intro-play .sidebar{position:relative}}html.intro-play .name .word{transform-origin:0 0;will-change:transform}html.intro-play:not(.intro-go) .name .word{opacity:0}html.intro-play .content,html.intro-play .sidebar>:not(.identity):not(nav),html.intro-play .identity>:not(.name),html.intro-play .nav li{opacity:0;visibility:hidden}html.intro-go .content{animation:intro-page calc(1.3s * var(--ts,1)) ease-in-out calc(1.95s * var(--ts,1)) both, nav-vis 1ms linear calc(1.95s * var(--ts,1)) both}html.intro-go .nav li{animation:nav-in calc(.4s * var(--ts,1)) var(--ease) calc((2.05s + var(--i,0) * 50ms) * var(--ts,1)) both, nav-vis 1ms linear calc((2.05s + var(--i,0) * 50ms) * var(--ts,1)) both}html.intro-go .sidebar>:not(.identity):not(nav),html.intro-go .identity>:not(.name){animation:intro-page-soft calc(1.1s * var(--ts,1)) ease-in-out calc(1.9s * var(--ts,1)) both, nav-vis 1ms linear calc(1.9s * var(--ts,1)) both}.intro-labels{left:var(--name-left);top:var(--labels-top);width:var(--name-w);font:500 .75rem / 1.5 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:color-mix(in srgb, var(--color-text) 60%, transparent);justify-content:space-between;display:flex;position:absolute}.intro-roles{left:0;right:0;top:var(--roles-top);font:400 clamp(1rem, .9rem + .6vw, 1.25rem) / 1.5 var(--font-display);text-transform:uppercase;letter-spacing:.04em;justify-items:center;display:grid;position:absolute}.mask{vertical-align:top;padding-bottom:.12em;display:inline-block;overflow:hidden}.intro .line{display:inline-block;transform:translateY(115%)}html.intro-go .intro .line{animation:intro-rise calc(.5s * var(--ts,1)) var(--ease) both}html.intro-go .intro .l-1{animation-delay:calc(.3s * var(--ts,1))}html.intro-go .intro .l-2{animation-delay:calc(.38s * var(--ts,1))}html.intro-go .intro-roles .line{animation-delay:calc((.6s + var(--i) * .12s) * var(--ts,1))}@keyframes intro-rise{to{transform:none}}@keyframes intro-out{to{opacity:0}}@keyframes intro-hide{to{visibility:hidden}}@keyframes intro-page{0%{opacity:0;transform:translateY(.75rem)}to{opacity:1;transform:none}}@keyframes intro-page-soft{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.intro,html.intro-play .intro{display:none}}@media (prefers-reduced-motion:no-preference){:is(.shell--page,.shell--wide,.shell--stage) .content>:not([data-reveal]){animation:page-in .36s cubic-bezier(.2, .6, .2, 1) var(--d,.22s) backwards}:is(.shell--page,.shell--wide,.shell--stage) .content>:first-child{--d:0s}:is(.shell--page,.shell--wide,.shell--stage) .content>:nth-child(2){--d:70ms}:is(.shell--page,.shell--wide,.shell--stage) .content>:nth-child(3){--d:.13s}:is(.shell--page,.shell--wide,.shell--stage) .content>:nth-child(4){--d:.18s}}.spotlight{--spot-size:32rem;width:var(--spot-size);height:var(--spot-size);z-index:-1;pointer-events:none;opacity:0;transition:opacity .7s var(--ease);will-change:transform;background:radial-gradient(circle closest-side, rgb(var(--spot-rgb) / calc(var(--spot-alpha) * 1)) 0%, rgb(var(--spot-rgb) / calc(var(--spot-alpha) * .92)) 12%, rgb(var(--spot-rgb) / calc(var(--spot-alpha) * .77)) 25%, rgb(var(--spot-rgb) / calc(var(--spot-alpha) * .58)) 37%, rgb(var(--spot-rgb) / calc(var(--spot-alpha) * .4)) 50%, rgb(var(--spot-rgb) / calc(var(--spot-alpha) * .24)) 62%, rgb(var(--spot-rgb) / calc(var(--spot-alpha) * .12)) 75%, rgb(var(--spot-rgb) / calc(var(--spot-alpha) * .045)) 87%, rgb(var(--spot-rgb) / 0) 100%);position:fixed;top:0;left:0;transform:translate(-200vw)}.spotlight[data-on]{opacity:1}@media (prefers-reduced-motion:reduce){.spotlight{display:none}}html.page-fade :is(.identity>*,.sidebar-foot,.content>section,.featured-list>li){animation:page-in .36s cubic-bezier(.2, .6, .2, 1) var(--d,0s) both}html.page-fade .identity>:nth-child(3){--d:60ms}html.page-fade .identity>:nth-child(4){--d:.1s}html.page-fade .nav li{animation:nav-in .36s var(--ease) calc(.14s + var(--i,0) * 50ms) backwards, nav-vis 1ms linear calc(.14s + var(--i,0) * 50ms) backwards}html.page-fade .sidebar-foot{--d:.22s}html.page-fade .content>section:first-child{--d:60ms}html.page-fade .content>section:nth-child(2){--d:.14s}html.page-fade .content>section:nth-child(3){--d:.3s}html.page-fade .featured-list>li:first-child{--d:.18s}html.page-fade .featured-list>li:nth-child(2){--d:.23s}html.page-fade .featured-list>li:nth-child(3){--d:.28s}html.page-fade .featured-list>li:nth-child(n+4){--d:.33s}@keyframes nav-in{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:none}}@keyframes nav-vis{0%{visibility:hidden}to{visibility:visible}}@media (prefers-reduced-motion:reduce){.nav li{opacity:1!important;visibility:visible!important;animation:none!important;transform:none!important}}@keyframes page-in{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:none}}.shell{padding-inline:var(--gutter);margin-inline-start:auto;margin-inline-end:auto}.shell--home{max-width:80rem}.shell--page{max-width:64rem}.shell--wide{max-width:74rem}.shell--stage{max-width:92rem}@media (min-width:64rem){.shell--home{justify-content:center;column-gap:var(--space-4);grid-template-columns:20rem minmax(0,40rem);display:grid}}@media (min-width:75rem){.shell--home{justify-content:stretch;column-gap:var(--space-5);grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.content{padding-block:var(--space-5) var(--space-6)}.shell--home .content{max-width:40rem}@media (min-width:64rem){.shell--home .content{padding-block:var(--space-6)}}
