.front-screen{--front-screen-measure:27rem;--front-screen-side:1.35rem;--front-screen-rhyme:clamp(1.25rem, 2.7vh, 2rem);--front-screen-space-3xs:.236rem;--front-screen-space-2xs:.382rem;--front-screen-space-xs:.618rem;--front-screen-space-s:1rem;--front-screen-space-m:1.618rem;--front-screen-strip-min:15rem;--front-screen-strip-fill:40vh;--front-screen-strip-max:23rem;--front-screen-slide-ratio:.75;--front-screen-slide-gap:.5rem;--front-screen-bar-h:2px;--front-screen-bar-thumb-min:1.5rem;--front-screen-fade-x:-.5;--front-screen-fade-span:.51;--front-screen-fade-max:1;--front-screen-fade-ease:0;--front-screen-fade-x-open:0;--front-screen-fade-span-open:.5;--front-screen-fade-max-open:1;--front-screen-fade-ease-open:0;--front-screen-fade-ramp:1s;--front-screen-fade-reveal:.4s;--front-screen-fade-cramped:.6s;--front-screen-friction:.95;--front-screen-coast-min:.35;--front-screen-coast-max:360;--front-screen-fling:3.2;--front-screen-detent:100;--front-screen-spin-gain:.8;--front-screen-spin-max:6;--front-screen-step-gap:.12s;--front-screen-settle:.32s;--front-screen-settle-wait:.14s;--front-screen-name-size:.78rem;--front-screen-name-tracking:.06em;--front-screen-label-size:.7rem;--front-screen-label-tracking:.04em;--front-screen-lead-size:.95rem;--front-screen-lead-leading:1.5;--front-screen-body-size:.9rem;--front-screen-body-leading:1.55;--front-screen-heading-size:1.313rem;--front-screen-heading-leading:1.2;--front-screen-heading-weight:700;--front-screen-heading-tracking:.01em;--front-screen-indent:1.1rem;--front-screen-listing-indent:.618rem;--front-screen-gutter:1rem;--front-screen-hairline:1px;--front-screen-muted:color-mix(in oklab, var(--ink), var(--ground) 45%);--front-screen-rule:color-mix(in oklab, var(--ink), var(--ground) 68%);--front-screen-soft:color-mix(in oklab, var(--ink), var(--ground) 92%);--front-screen-toggle-gap:.45rem;--front-screen-track-w:1.55rem;--front-screen-track-h:.78rem;--front-screen-thumb:.38rem;--front-screen-thumb-inset:.14rem;--front-screen-thumb-travel:.25s;--front-screen-thumb-at:0px;--front-screen-hover-fade:.15s;--front-screen-word-paper:inline;--front-screen-word-dark:none;--front-screen-cut-show:.62;--front-screen-cut-stagger:.05;--front-screen-reveal:.9s;--front-screen-reveal-rise:8px}:root[data-theme=dark] .front-screen{--front-screen-thumb-at:calc(var(--front-screen-track-w) - 2 * var(--front-screen-hairline) - var(--front-screen-thumb) - 2 * var(--front-screen-thumb-inset));--front-screen-word-paper:none;--front-screen-word-dark:inline}.front-screen:where(.astro-itd54n7m),.front-screen:where(.astro-itd54n7m) :where(.astro-itd54n7m){box-sizing:border-box}.front-screen:where(.astro-itd54n7m){--front-screen-cut-cap-share:.154521;--front-screen-cut-overshoot:.003926;--front-screen-cut-ink:97.7592cqw;--front-screen-cut-lead:1.0086cqw;--front-screen-half-leading:calc(.294 * var(--front-screen-name-size));--front-screen-contact-tail:.4075rem;--front-screen-edge:max(var(--front-screen-side), calc(50% - var(--front-screen-measure) / 2));--front-screen-fade-bend:.1036;--front-screen-slide-w:calc(var(--front-screen-strip-max) * var(--front-screen-slide-ratio));--front-screen-fade-open:0;--front-screen-type-z:5;--front-screen-cut-gap:calc(var(--front-screen-rhyme) + var(--front-screen-half-leading) - var(--front-screen-contact-tail));--front-screen-cut-slab:calc(var(--front-screen-cut-cap-share) * var(--front-screen-cut-ink));min-height:var(--fold);padding:var(--front-screen-rhyme) var(--front-screen-side) 0;font-family:var(--face-body);font-size:var(--front-screen-body-size);line-height:var(--front-screen-body-leading);animation:front-screen-in var(--front-screen-reveal) cubic-bezier(.22, 1, .36, 1) backwards;flex-direction:column;display:flex}@keyframes front-screen-in{0%{opacity:0;transform:translateY(var(--front-screen-reveal-rise))}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.front-screen:where(.astro-itd54n7m){--front-screen-reveal-rise:0px}.front-screen__strip:where(.astro-itd54n7m){--front-screen-fade-ramp:0s;--front-screen-fade-reveal:0s;--front-screen-fade-cramped:0s;transition:none}.front-screen__photos:where(.astro-itd54n7m){scroll-behavior:auto}}.front-screen__col:where(.astro-itd54n7m){width:100%;max-width:var(--front-screen-measure);flex-direction:column;margin:0 auto auto;display:flex}.front-screen__col:where(.astro-itd54n7m)>:where(.astro-itd54n7m){margin-top:var(--front-screen-space-m);flex:none}.front-screen__masthead:where(.astro-itd54n7m){margin-top:0}.front-screen__masthead:where(.astro-itd54n7m),.front-screen__intro:where(.astro-itd54n7m),.front-screen__listing:where(.astro-itd54n7m){z-index:var(--front-screen-type-z);position:relative}.front-screen__name:where(.astro-itd54n7m){font-family:var(--face-label);font-size:var(--front-screen-name-size);letter-spacing:var(--front-screen-name-tracking);text-transform:lowercase;margin:0;font-weight:400}.front-screen__location:where(.astro-itd54n7m){margin:var(--front-screen-space-2xs) 0 0;font-family:var(--face-label);font-size:var(--front-screen-label-size);letter-spacing:var(--front-screen-label-tracking);color:var(--front-screen-muted)}.front-screen__lead:where(.astro-itd54n7m){font-family:var(--face-lead);font-size:var(--front-screen-lead-size);font-style:italic;line-height:var(--front-screen-lead-leading);margin:0}.front-screen__prose:where(.astro-itd54n7m){margin:var(--front-screen-space-s) 0 0;color:var(--ink-soft);text-indent:var(--front-screen-indent)}.front-screen__strip:where(.astro-itd54n7m){height:clamp(var(--front-screen-strip-min), var(--front-screen-strip-fill), var(--front-screen-strip-max));z-index:var(--front-screen-type-z);margin-inline:calc(50% - 50vw);position:relative}.front-screen__photos:where(.astro-itd54n7m){gap:var(--front-screen-slide-gap);padding-inline:var(--front-screen-edge);cursor:grab;scrollbar-width:none;display:flex;position:absolute;inset:0;overflow:auto hidden}.front-screen__photos:where(.astro-itd54n7m)::-webkit-scrollbar{display:none}.front-screen__photos:where(.astro-itd54n7m).is-dragging{cursor:grabbing}.front-screen__slide:where(.astro-itd54n7m){height:100%;aspect-ratio:var(--front-screen-slide-ratio);background:var(--front-screen-soft);flex:none;margin:0}.front-screen__slide:where(.astro-itd54n7m) img:where(.astro-itd54n7m){object-fit:cover;user-select:none;-webkit-user-drag:none;width:100%;height:100%;display:block}.front-screen__bar:where(.astro-itd54n7m){z-index:var(--front-screen-type-z);height:var(--front-screen-bar-h);margin-top:var(--front-screen-space-3xs);background:var(--front-screen-soft);border-radius:var(--front-screen-bar-h);cursor:pointer;touch-action:none;position:relative}.front-screen__bar-thumb:where(.astro-itd54n7m){inset-block:0;background:var(--front-screen-muted);border-radius:var(--front-screen-bar-h);width:0;position:absolute;left:0}@property --front-screen-fade-l{syntax:"<number>";inherits:false;initial-value:0}@property --front-screen-fade-r{syntax:"<number>";inherits:false;initial-value:0}.front-screen__strip:where(.astro-itd54n7m){--front-screen-fade-x-now:calc(var(--front-screen-fade-x) + (var(--front-screen-fade-x-open) - var(--front-screen-fade-x)) * var(--front-screen-fade-open));--front-screen-fade-span-now:calc(var(--front-screen-fade-span) + (var(--front-screen-fade-span-open) - var(--front-screen-fade-span)) * var(--front-screen-fade-open));--front-screen-fade-max-now:calc(var(--front-screen-fade-max) + (var(--front-screen-fade-max-open) - var(--front-screen-fade-max)) * var(--front-screen-fade-open));--front-screen-fade-ease-now:calc(var(--front-screen-fade-ease) + (var(--front-screen-fade-ease-open) - var(--front-screen-fade-ease)) * var(--front-screen-fade-open));--front-screen-fade-w:calc(var(--front-screen-slide-w) * var(--front-screen-fade-span-now));--front-screen-fade-hint-a:calc(var(--front-screen-fade-w) * (.25 + var(--front-screen-fade-bend) * var(--front-screen-fade-ease-now)));--front-screen-fade-hint-b:calc(var(--front-screen-fade-w) * (.75 - var(--front-screen-fade-bend) * var(--front-screen-fade-ease-now)));--front-screen-fade-reach:max(var(--front-screen-fade-w), calc(max(var(--front-screen-edge), var(--front-screen-fade-w)) - var(--front-screen-slide-w) * var(--front-screen-fade-x-now)));--front-screen-fade-l:0;--front-screen-fade-r:0;transition:--front-screen-fade-l var(--front-screen-fade-ramp) cubic-bezier(.22, 1, .36, 1), --front-screen-fade-r var(--front-screen-fade-ramp) cubic-bezier(.22, 1, .36, 1);mask-image:linear-gradient(to right, rgb(0 0 0/calc(1 - var(--front-screen-fade-max-now) * var(--front-screen-fade-l))) calc(var(--front-screen-fade-reach) - var(--front-screen-fade-w)), calc(var(--front-screen-fade-reach) - var(--front-screen-fade-w) + var(--front-screen-fade-hint-a)), rgb(0 0 0/calc(1 - .5 * var(--front-screen-fade-max-now) * var(--front-screen-fade-l))) calc(var(--front-screen-fade-reach) - var(--front-screen-fade-w) * .5), calc(var(--front-screen-fade-reach) - var(--front-screen-fade-w) + var(--front-screen-fade-hint-b)), #000 var(--front-screen-fade-reach)), linear-gradient(to left, rgb(0 0 0/calc(1 - var(--front-screen-fade-max-now) * var(--front-screen-fade-r))) calc(var(--front-screen-fade-reach) - var(--front-screen-fade-w)), calc(var(--front-screen-fade-reach) - var(--front-screen-fade-w) + var(--front-screen-fade-hint-a)), rgb(0 0 0/calc(1 - .5 * var(--front-screen-fade-max-now) * var(--front-screen-fade-r))) calc(var(--front-screen-fade-reach) - var(--front-screen-fade-w) * .5), calc(var(--front-screen-fade-reach) - var(--front-screen-fade-w) + var(--front-screen-fade-hint-b)), #000 var(--front-screen-fade-reach));mask-repeat:no-repeat;mask-composite:intersect}.front-screen__strip:where(.astro-itd54n7m):not(.is-at-start){--front-screen-fade-l:1}.front-screen__strip:where(.astro-itd54n7m):not(.is-at-end){--front-screen-fade-r:1}.front-screen__strip:where(.astro-itd54n7m):not(.has-fade-room){--front-screen-fade-l:0;--front-screen-fade-r:0;transition-duration:var(--front-screen-fade-cramped)}.front-screen__strip:where(.astro-itd54n7m):hover,.front-screen__strip:where(.astro-itd54n7m):has(.front-screen__photos:focus-visible){--front-screen-fade-l:0;--front-screen-fade-r:0;transition-duration:var(--front-screen-fade-reveal)}.front-screen__listing:where(.astro-itd54n7m){padding-left:var(--front-screen-listing-indent)}.front-screen__heading:where(.astro-itd54n7m){margin:0 0 var(--front-screen-space-2xs) calc(-1 * var(--front-screen-listing-indent));font-family:var(--face-body);font-size:var(--front-screen-heading-size);font-weight:var(--front-screen-heading-weight);line-height:var(--front-screen-heading-leading);letter-spacing:var(--front-screen-heading-tracking)}.front-screen__entry:where(.astro-itd54n7m){margin-bottom:var(--front-screen-space-xs)}.front-screen__entry:where(.astro-itd54n7m):last-child{margin-bottom:0}.front-screen__line:where(.astro-itd54n7m){align-items:baseline;gap:var(--front-screen-gutter);margin:0;display:flex;position:relative}.front-screen__years:where(.astro-itd54n7m){font-family:var(--face-year);font-variant-numeric:oldstyle-nums;color:var(--ink);white-space:nowrap;margin-left:auto;font-style:normal}.front-screen__grade:where(.astro-itd54n7m){font-family:var(--face-year);font-variant-numeric:oldstyle-nums;color:var(--front-screen-muted);white-space:nowrap;font-style:normal;position:absolute;top:100%;right:0}.front-screen__entry:where(.astro-itd54n7m){container:front-screen-entry/inline-size}.front-screen__org:where(.astro-itd54n7m)>:where(.astro-itd54n7m):not(:first-child){display:none}@container front-screen-entry (width<=19.6em){:where(.astro-itd54n7m)[data-front-screen-entry=work\.0] .front-screen__org:where(.astro-itd54n7m)>:where(.astro-itd54n7m):first-child:not(:last-child){display:none}:where(.astro-itd54n7m)[data-front-screen-entry=work\.0] .front-screen__org:where(.astro-itd54n7m)>:where(.astro-itd54n7m):nth-child(2){display:inline}}@container front-screen-entry (width<=16em){:where(.astro-itd54n7m)[data-front-screen-entry=work\.0] .front-screen__org:where(.astro-itd54n7m)>:where(.astro-itd54n7m):nth-child(-n+2):not(:last-child){display:none}:where(.astro-itd54n7m)[data-front-screen-entry=work\.0] .front-screen__org:where(.astro-itd54n7m)>:where(.astro-itd54n7m):nth-child(3){display:inline}}@container front-screen-entry (width<=18.7em){:where(.astro-itd54n7m)[data-front-screen-entry=work\.1] .front-screen__org:where(.astro-itd54n7m)>:where(.astro-itd54n7m):first-child:not(:last-child){display:none}:where(.astro-itd54n7m)[data-front-screen-entry=work\.1] .front-screen__org:where(.astro-itd54n7m)>:where(.astro-itd54n7m):nth-child(2){display:inline}}@container front-screen-entry (width<=22.2em){:where(.astro-itd54n7m)[data-front-screen-entry=education\.0] .front-screen__org:where(.astro-itd54n7m)>:where(.astro-itd54n7m):first-child:not(:last-child){display:none}:where(.astro-itd54n7m)[data-front-screen-entry=education\.0] .front-screen__org:where(.astro-itd54n7m)>:where(.astro-itd54n7m):nth-child(2){display:inline}}@container front-screen-entry (width<=19.1em){:where(.astro-itd54n7m)[data-front-screen-entry=education\.0] .front-screen__org:where(.astro-itd54n7m)>:where(.astro-itd54n7m):nth-child(-n+2):not(:last-child){display:none}:where(.astro-itd54n7m)[data-front-screen-entry=education\.0] .front-screen__org:where(.astro-itd54n7m)>:where(.astro-itd54n7m):nth-child(3){display:inline}}@container front-screen-entry (width<=15.3em){:where(.astro-itd54n7m)[data-front-screen-entry=education\.0] .front-screen__org:where(.astro-itd54n7m)>:where(.astro-itd54n7m):nth-child(-n+3):not(:last-child){display:none}:where(.astro-itd54n7m)[data-front-screen-entry=education\.0] .front-screen__org:where(.astro-itd54n7m)>:where(.astro-itd54n7m):nth-child(4){display:inline}}.front-screen__contact:where(.astro-itd54n7m){margin:0;padding:0;list-style:none}.front-screen__contact:where(.astro-itd54n7m) li:where(.astro-itd54n7m){margin-top:var(--front-screen-space-3xs)}.front-screen__contact-first:where(.astro-itd54n7m){margin-bottom:var(--front-screen-space-xs)}.front-screen__contact:where(.astro-itd54n7m) a:where(.astro-itd54n7m){color:var(--ink);border-bottom:var(--front-screen-hairline) solid var(--front-screen-rule);overflow-wrap:anywhere;transition:border-color var(--front-screen-hover-fade) ease;text-decoration:none}.front-screen__contact:where(.astro-itd54n7m) a:where(.astro-itd54n7m):hover,.front-screen__contact:where(.astro-itd54n7m) a:where(.astro-itd54n7m):focus-visible{border-color:var(--ink)}.front-screen__corner:where(.astro-itd54n7m){align-items:last baseline;column-gap:var(--front-screen-gutter);grid-template-columns:minmax(0,1fr) auto;display:grid}.front-screen__toggle:where(.astro-itd54n7m){justify-self:end;align-items:baseline;gap:var(--front-screen-toggle-gap);min-height:1.5rem;color:var(--ink);font-family:var(--face-label);font-size:var(--front-screen-body-size);font-weight:400;line-height:var(--front-screen-body-leading);cursor:pointer;background:0 0;border:0;margin:0;padding:.2rem 0;display:inline-flex}.front-screen__word-paper:where(.astro-itd54n7m){display:var(--front-screen-word-paper)}.front-screen__word-dark:where(.astro-itd54n7m){display:var(--front-screen-word-dark)}.front-screen__track:where(.astro-itd54n7m){width:var(--front-screen-track-w);height:var(--front-screen-track-h);border:var(--front-screen-hairline) solid currentcolor;transform:translateY(calc(var(--front-screen-track-h) / 2 - .5ex));transform:translateY(calc(var(--front-screen-track-h) / 2 - .25ex - .25cap));border-radius:1rem;flex:none;position:relative}.front-screen__thumb:where(.astro-itd54n7m){top:50%;left:var(--front-screen-thumb-inset);width:var(--front-screen-thumb);height:var(--front-screen-thumb);transform:translate(var(--front-screen-thumb-at), -50%);transition:transform var(--front-screen-thumb-travel) cubic-bezier(.22, 1, .36, 1);background:currentColor;border-radius:50%;position:absolute}.front-screen__cut:where(.astro-itd54n7m){z-index:var(--front-screen-type-z);width:100%;max-width:var(--front-screen-measure);margin:var(--front-screen-cut-gap) auto 0;position:relative;container-type:inline-size}.front-screen__cut:where(.astro-itd54n7m)>a:where(.astro-itd54n7m){height:calc(var(--front-screen-cut-show) * var(--front-screen-cut-slab));color:var(--ink);transition:box-shadow var(--front-screen-hover-fade) ease;display:block;overflow:clip}.front-screen__cut:where(.astro-itd54n7m)>a:where(.astro-itd54n7m):hover,.front-screen__cut:where(.astro-itd54n7m)>a:where(.astro-itd54n7m):focus-visible{box-shadow:inset 0 -1px}.front-screen__cut-word:where(.astro-itd54n7m){width:var(--front-screen-cut-ink);height:auto;margin-left:var(--front-screen-cut-lead);top:calc(-1 * var(--front-screen-cut-overshoot) * var(--front-screen-cut-ink));display:block;position:relative}.front-screen__cut-text:where(.astro-itd54n7m){clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.front-screen__toggle:where(.astro-itd54n7m):focus-visible,.front-screen__contact:where(.astro-itd54n7m) a:where(.astro-itd54n7m):focus-visible,.front-screen__photos:where(.astro-itd54n7m):focus-visible,.front-screen__cut:where(.astro-itd54n7m)>a:where(.astro-itd54n7m):focus-visible{outline-offset:3px;outline:1px solid}@media (width>=1100px) and (height>=700px){.front-screen:where(.astro-itd54n7m){--front-screen-cut-ink:100cqw;--front-screen-cut-lead:0px;--front-screen-cut-fit:calc(var(--landing-cap) / var(--front-screen-cut-cap-share));--front-screen-cut-clip:calc(var(--front-screen-cut-show) * var(--front-screen-cut-cap-share) * var(--front-screen-cut-fit));height:calc(var(--fold) - var(--front-screen-cut-clip) - var(--landing-mast-top));min-height:0;padding-bottom:calc(var(--front-screen-cut-gap) - var(--landing-mast-top));position:relative}.front-screen__col:where(.astro-itd54n7m){flex:auto;justify-content:center;margin-bottom:0}.front-screen__col:where(.astro-itd54n7m)>.front-screen__strip:where(.astro-itd54n7m){height:auto;min-height:0;max-height:var(--front-screen-strip-max);flex:auto}.front-screen__cut:where(.astro-itd54n7m){top:var(--fold);left:var(--landing-side);width:var(--front-screen-cut-fit);max-width:none;margin:0;position:absolute}.front-screen__cut:where(.astro-itd54n7m)>a:where(.astro-itd54n7m){height:var(--front-screen-cut-slab);margin-top:calc(-1 * var(--front-screen-cut-show) * var(--front-screen-cut-slab));overflow:visible}}.projects-panel{--projects-panel-bg-far:#000;--projects-panel-ink-far:#f2f1ee;--projects-panel-ink-soft-far:#dcdad5;--projects-panel-muted-far:#8b8983;--projects-panel-rule-far:#f2f1ee29;--projects-panel-rule-near:color-mix(in oklab, var(--ink-soft), transparent 88%);--projects-panel-inset:clamp(1.25rem, 2.7vh, 2rem);--projects-panel-side:1.35rem;--projects-panel-fit:.6042;--projects-panel-across:.9597;--projects-panel-masthead-share:.0885;--projects-panel-sub-share:.0466;--projects-panel-copy-share:.01634;--projects-panel-point-share:.01863;--projects-panel-figure-share:.00858;--projects-panel-rail-share:.01397;--projects-panel-point-floor:14px;--projects-panel-figure-floor:11px;--projects-panel-rail-floor:10px;--projects-panel-masthead-stacked:clamp(2.5rem, 12vw, 5rem);--projects-panel-sub-stacked:calc(.527 * var(--projects-panel-masthead-size));--projects-panel-copy-stacked:clamp(.85rem, 3.8vw, 1.05rem);--projects-panel-point-stacked:calc(1.6 * var(--projects-panel-figure-stacked));--projects-panel-figure-stacked:clamp(.8rem, 3.2vw, .95rem);--projects-panel-rail-stacked:clamp(.7rem, 2.9vw, .9rem);--projects-panel-gap-share:.01935;--projects-panel-gutter-share:.01231;--projects-panel-copy-inset-share:.01407;--projects-panel-points-gap-share:.0224;--projects-panel-points-air-share:.01583;--projects-panel-leading:1.5;--projects-panel-masthead-leading:.86;--projects-panel-masthead-weight:500;--projects-panel-masthead-tracking:-.005em;--projects-panel-sub-leading:1;--projects-panel-copy-leading:1.5;--projects-panel-rail-tracking:.22em;--projects-panel-point-weight:500;--projects-panel-point-leading:1.25;--projects-panel-point-tracking:.045em;--projects-panel-figure-leading:1.3;--projects-panel-figure-tracking:.03em;--projects-panel-figure-air:.35em;--projects-panel-stack-gap:clamp(1.5rem, 5vw, 2.5rem);--projects-panel-stack-rail-gap:clamp(.9rem, 4vw, 2rem);--projects-panel-stack-rail-rows:.5em;--projects-panel-stack-points-gap:1.35;--projects-panel-stack-measure:34em;--projects-panel-copy-arrive-from:.32;--projects-panel-copy-arrive-to:.94;--projects-panel-copy-rule-lead:.35;--projects-panel-frame-drop-share:.66;--projects-panel-frame-ratio:1.945;--projects-panel-frame-bar:.034583;--projects-panel-frame-corner:.016333;--projects-panel-frame-inset:0;--projects-panel-frame-fill-far:#131518;--projects-panel-frame-edge-far:#f2f1ee52;--projects-panel-lens-tint:#08080a;--projects-panel-lens-tint-alpha:.75;--projects-panel-lens-thickness:.0126;--projects-panel-lens-index:1.5;--projects-panel-lens-dispersion:3;--projects-panel-lens-fresnel-range:22;--projects-panel-lens-fresnel-hardness:45;--projects-panel-lens-fresnel-factor:30;--projects-panel-lens-glare-range:26;--projects-panel-lens-glare-hardness:35;--projects-panel-lens-glare-factor:85;--projects-panel-lens-glare-convergence:40;--projects-panel-lens-glare-opposite:80;--projects-panel-lens-glare-angle:-45;--projects-panel-lens-blur:.0068;--projects-panel-lens-saturate:118;--projects-panel-lens-roundness:4;--projects-panel-lens-blur-edge:1;--projects-panel-frame-ink:#f2f1ee8c;--projects-panel-frame-ink-off:#f2f1ee38;--projects-panel-frame-light-close:#ff5f57;--projects-panel-frame-light-minimise:#febc2e;--projects-panel-frame-light-zoom:#28c840;--projects-panel-frame-address-bg:#f2f1ee1f;--projects-panel-frame-address-ink:#f2f1eeb8;--projects-panel-frame-light-w:.0095;--projects-panel-frame-light-pitch:.0152;--projects-panel-frame-light-centre:.0204;--projects-panel-frame-chevron-w:.0054;--projects-panel-frame-back-centre:.1066;--projects-panel-frame-fwd-centre:.1295;--projects-panel-frame-address-w:.3945;--projects-panel-frame-address-h:.0207;--projects-panel-frame-address-centre:.5019;--projects-panel-frame-address-corner:.0044;--projects-panel-frame-reload-w:.0087;--projects-panel-frame-reload-clear:.008;--projects-panel-frame-share-w:.012;--projects-panel-frame-share-centre:.9222;--projects-panel-frame-address-size:.0095;--projects-panel-frame-address-tracking:.01em;--projects-panel-plinth-behind:.019597;--projects-panel-plinth-top:.016876;--projects-panel-plinth-front:.070024;--projects-panel-plinth-overhang:.094719;--projects-panel-plinth-src:url(/_astro/plinth-gemini-generated-image-zbkpg6zbkpg6zbkp-1-noir.8Bp0vI7a.webp);--projects-panel-reflection-strength:.5;--projects-panel-reflection-far:.62;--projects-panel-contact-near:#000000a8;--projects-panel-contact-mid:#0000004d;--projects-panel-contact-mid-at:38%;--projects-panel-contact-far:#00000017;--projects-panel-contact-far-at:72%;--projects-panel-contact-ends:3%}.projects-panel:where(.astro-yyvwusc4){--projects-panel-fit-w:calc((var(--fold) - 2 * var(--projects-panel-inset)) / var(--projects-panel-fit));--projects-panel-w:min(calc(var(--projects-panel-across) * (100vw - 2 * var(--projects-panel-inset))), var(--projects-panel-fit-w));--projects-panel-masthead-size:calc(var(--projects-panel-masthead-share) * var(--projects-panel-w));--projects-panel-sub-size:calc(var(--projects-panel-sub-share) * var(--projects-panel-w));--projects-panel-copy-size:calc(var(--projects-panel-copy-share) * var(--projects-panel-w));--projects-panel-point-size:max(var(--projects-panel-point-floor), calc(var(--projects-panel-point-share) * var(--projects-panel-w)));--projects-panel-figure-size:max(var(--projects-panel-figure-floor), calc(var(--projects-panel-figure-share) * var(--projects-panel-w)));--projects-panel-rail-size:max(var(--projects-panel-rail-floor), calc(var(--projects-panel-rail-share) * var(--projects-panel-w)));--projects-panel-gap:calc(var(--projects-panel-gap-share) * var(--projects-panel-w));--projects-panel-gutter:calc(var(--projects-panel-gutter-share) * var(--projects-panel-w));--projects-panel-copy-inset:calc(var(--projects-panel-copy-inset-share) * var(--projects-panel-w));--projects-panel-points-gap:calc(var(--projects-panel-points-gap-share) * var(--projects-panel-w));--projects-panel-points-air:calc(var(--projects-panel-points-air-share) * var(--projects-panel-w));--projects-panel-rail-w:calc(var(--projects-panel-leading) * var(--projects-panel-rail-size));--projects-panel-mast-line:calc(var(--projects-panel-masthead-leading) * var(--projects-panel-masthead-size));--projects-panel-sub-line:calc(var(--projects-panel-sub-leading) * var(--projects-panel-sub-size));--projects-panel-column:calc((1 - 11 * var(--projects-panel-gutter-share)) / 12);--projects-panel-frame-drop:calc(var(--projects-panel-frame-drop-share) * var(--projects-panel-sub-line));--projects-panel-frame-share:calc(9 * var(--projects-panel-column) + 8 * var(--projects-panel-gutter-share));--projects-panel-stage-share:calc(10 * var(--projects-panel-column) + 9 * var(--projects-panel-gutter-share));--projects-panel-frame-w:calc(var(--projects-panel-frame-share) * var(--projects-panel-w));--projects-panel-plinth-face:calc(var(--projects-panel-plinth-top) * var(--projects-panel-frame-w));--projects-panel-plinth-back:calc(var(--projects-panel-plinth-behind) * var(--projects-panel-frame-w));--projects-panel-plinth-depth:calc((var(--projects-panel-plinth-top) + var(--projects-panel-plinth-front)) * var(--projects-panel-frame-w));--projects-panel-plinth-inset:calc(var(--projects-panel-plinth-overhang) / (1 + 2 * var(--projects-panel-plinth-overhang)) * 100%);--projects-panel-masthead-cap:calc(.7 * var(--projects-panel-masthead-size));--projects-panel-mast-top:calc(.08 * var(--projects-panel-masthead-size));--projects-panel-bg:color-mix(in oklab, var(--projects-panel-bg-far) calc(var(--turn) * 100%), var(--ground));--projects-panel-ink:color-mix(in oklab, var(--projects-panel-ink-far) calc(var(--turn) * 100%), var(--ink));--projects-panel-ink-soft:color-mix(in oklab, var(--projects-panel-ink-soft-far) calc(var(--turn) * 100%), var(--ink-soft));--projects-panel-muted:color-mix(in oklab, var(--projects-panel-muted-far) calc(var(--turn) * 100%), var(--ink-soft));--projects-panel-rule:color-mix(in oklab, var(--projects-panel-rule-far) calc(var(--turn) * 100%), var(--projects-panel-rule-near));--projects-panel-frame-fill:color-mix(in oklab, var(--projects-panel-frame-fill-far) calc(var(--turn) * 100%), var(--ground));--projects-panel-frame-edge:color-mix(in oklab, var(--projects-panel-frame-edge-far) calc(var(--turn) * 100%), var(--projects-panel-rule-near));box-sizing:border-box;grid-template-columns:var(--projects-panel-rail-w) minmax(0, var(--projects-panel-w));justify-content:center;align-items:center;column-gap:var(--projects-panel-gap);min-height:var(--fold);padding:var(--projects-panel-inset);background:var(--projects-panel-bg);color:var(--projects-panel-ink);font-family:var(--face-panel);font-weight:400;line-height:var(--projects-panel-leading);scroll-margin-top:calc(var(--projects-panel-inset) - var(--projects-panel-mast-top));display:grid;position:relative;overflow-x:clip}.projects-panel__rail:where(.astro-yyvwusc4){align-self:stretch;display:flex}.projects-panel__rail-items:where(.astro-yyvwusc4){flex-direction:column;flex:1;justify-content:space-between;align-items:center;margin:0;padding:0;list-style:none;display:flex}.projects-panel__rail-item:where(.astro-yyvwusc4){writing-mode:vertical-rl;white-space:nowrap;font-size:var(--projects-panel-rail-size);letter-spacing:var(--projects-panel-rail-tracking);color:var(--projects-panel-muted);transform:rotate(180deg)}.projects-panel__rail-item:where(.astro-yyvwusc4).is-selected{color:var(--projects-panel-ink)}.projects-panel__rail-item:where(.astro-yyvwusc4) a:where(.astro-yyvwusc4){color:inherit;text-decoration:none}.projects-panel__rail-item:where(.astro-yyvwusc4):not(.is-selected) a:where(.astro-yyvwusc4):hover{color:var(--projects-panel-ink)}.projects-panel__rail-item:where(.astro-yyvwusc4) a:where(.astro-yyvwusc4):focus-visible{outline-offset:3px;outline:1px solid}.projects-panel__quiet:where(.astro-yyvwusc4){clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.projects-panel__inner:where(.astro-yyvwusc4){grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:calc(var(--projects-panel-mast-line) + var(--projects-panel-sub-line)) 1fr;column-gap:var(--projects-panel-gutter);align-self:center;row-gap:0;display:grid}.projects-panel__head:where(.astro-yyvwusc4){margin-bottom:calc(-1 * var(--projects-panel-sub-line));grid-area:1/1/2/7;align-self:end}.projects-panel__masthead:where(.astro-yyvwusc4),.projects-panel__sub:where(.astro-yyvwusc4),.projects-panel__rail-item:where(.astro-yyvwusc4),.projects-panel__points:where(.astro-yyvwusc4) h3:where(.astro-yyvwusc4),.projects-panel__points:where(.astro-yyvwusc4) p:where(.astro-yyvwusc4){text-transform:uppercase;font-feature-settings:"case" 1}.projects-panel__masthead:where(.astro-yyvwusc4){font-size:var(--projects-panel-masthead-size);font-weight:var(--projects-panel-masthead-weight);line-height:var(--projects-panel-masthead-leading);letter-spacing:var(--projects-panel-masthead-tracking);color:var(--projects-panel-ink);margin:0}.projects-panel__sub:where(.astro-yyvwusc4){font-size:var(--projects-panel-sub-size);font-weight:400;line-height:var(--projects-panel-sub-leading);color:var(--projects-panel-muted);margin:0}.projects-panel__sub:where(.astro-yyvwusc4) span:where(.astro-yyvwusc4){display:block}.projects-panel__copy:where(.astro-yyvwusc4){border-left:1px solid var(--projects-panel-rule);padding-left:var(--projects-panel-copy-inset);font-size:var(--projects-panel-copy-size);line-height:var(--projects-panel-copy-leading);color:var(--projects-panel-ink-soft);grid-area:1/7/2/13;align-self:start}.projects-panel__copy:where(.astro-yyvwusc4) p:where(.astro-yyvwusc4){margin:0}.projects-panel__copy:where(.astro-yyvwusc4) p:where(.astro-yyvwusc4)+p:where(.astro-yyvwusc4){margin-top:1em}.projects-panel__points:where(.astro-yyvwusc4){margin:calc(var(--projects-panel-sub-line) + var(--projects-panel-points-air)) 0 var(--projects-panel-plinth-depth);align-content:space-between;align-self:stretch;row-gap:var(--projects-panel-points-gap);grid-area:2/1/3/4;grid-auto-rows:min-content;padding:0;list-style:none;display:grid}.projects-panel__points:where(.astro-yyvwusc4) h3:where(.astro-yyvwusc4){font-size:var(--projects-panel-point-size);font-weight:var(--projects-panel-point-weight);line-height:var(--projects-panel-point-leading);letter-spacing:var(--projects-panel-point-tracking);color:var(--projects-panel-ink);text-wrap:balance;margin:0}.projects-panel__points:where(.astro-yyvwusc4) p:where(.astro-yyvwusc4){margin:var(--projects-panel-figure-air) 0 0;font-size:var(--projects-panel-figure-size);line-height:var(--projects-panel-figure-leading);letter-spacing:var(--projects-panel-figure-tracking);color:var(--projects-panel-muted)}.projects-panel__stage:where(.astro-yyvwusc4){margin-top:var(--projects-panel-frame-drop);grid-area:2/3/3/13;align-self:start;position:relative}.projects-panel__stage:where(.astro-yyvwusc4)>.projects-panel__frame:where(.astro-yyvwusc4){margin-left:calc((var(--projects-panel-column) + var(--projects-panel-gutter-share)) / var(--projects-panel-stage-share) * 100%)}.projects-panel__frame:where(.astro-yyvwusc4){z-index:1;aspect-ratio:var(--projects-panel-frame-ratio);background:var(--projects-panel-frame-fill);border-radius:calc(var(--projects-panel-frame-corner) * 100%) / calc(var(--projects-panel-frame-corner) * var(--projects-panel-frame-ratio) * 100%);corner-shape:superellipse(var(--lens-shape,1));box-shadow:inset 0 0 0 1px var(--projects-panel-frame-edge);--projects-panel-frame-bar-h:calc(var(--projects-panel-frame-bar) * 100cqw);--projects-panel-frame-radius:calc(var(--projects-panel-frame-corner) * 100cqw);--projects-panel-frame-band:calc(var(--projects-panel-frame-inset) * 100cqw);position:relative;container-type:inline-size}.projects-panel__bar:where(.astro-yyvwusc4){height:var(--projects-panel-frame-bar-h);z-index:1;border-radius:var(--projects-panel-frame-radius) var(--projects-panel-frame-radius) 0 0;corner-shape:inherit;isolation:isolate;background:color-mix(in srgb, var(--projects-panel-lens-tint) calc(var(--projects-panel-lens-tint-alpha) * 100%), transparent);backdrop-filter:var(--lens-pre, ) blur(calc(var(--projects-panel-lens-blur) * 100cqw)) saturate(calc(var(--projects-panel-lens-saturate) * 1%)) var(--lens-post, );position:absolute;top:0;left:0;right:0}.projects-panel__bar:where(.astro-yyvwusc4):before,.projects-panel__bar:where(.astro-yyvwusc4):after{content:"";z-index:2;border-radius:inherit;corner-shape:inherit;pointer-events:none;position:absolute;inset:0;mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-position:0 0,0 0;mask-size:auto,auto;mask-repeat:repeat,repeat;mask-clip:content-box,border-box;mask-origin:content-box,border-box;mask-composite:exclude;mask-mode:match-source,match-source}.projects-panel__bar:where(.astro-yyvwusc4):before{padding:var(--lens-fresnel-w,.4px);background:var(--lens-fresnel,#ffffff1c);filter:blur(var(--lens-fresnel-blur,.32px))}.projects-panel__bar:where(.astro-yyvwusc4):after{padding:var(--lens-glare-w,1.1px);background:var(--lens-glare,none);filter:blur(var(--lens-glare-blur,1.1px))}.projects-panel__rim:where(.astro-yyvwusc4){z-index:2;border-radius:inherit;corner-shape:inherit;box-shadow:inset 0 0 0 1px var(--projects-panel-frame-edge);pointer-events:none;position:absolute;inset:0}.projects-panel__chrome:where(.astro-yyvwusc4){padding-left:calc((var(--projects-panel-frame-light-centre) - var(--projects-panel-frame-light-w) / 2) * 100cqw);padding-right:calc((1 - var(--projects-panel-frame-share-centre) - var(--projects-panel-frame-share-w) / 2) * 100cqw);pointer-events:none;-webkit-user-select:none;user-select:none;align-items:center;display:flex;position:absolute;inset:0}.projects-panel__lights:where(.astro-yyvwusc4){gap:calc((var(--projects-panel-frame-light-pitch) - var(--projects-panel-frame-light-w)) * 100cqw);display:flex}.projects-panel__lights:where(.astro-yyvwusc4) i:where(.astro-yyvwusc4){width:calc(var(--projects-panel-frame-light-w) * 100cqw);height:calc(var(--projects-panel-frame-light-w) * 100cqw);border-radius:50%}.projects-panel__lights:where(.astro-yyvwusc4) i:where(.astro-yyvwusc4):first-child{background:var(--projects-panel-frame-light-close)}.projects-panel__lights:where(.astro-yyvwusc4) i:where(.astro-yyvwusc4):nth-child(2){background:var(--projects-panel-frame-light-minimise)}.projects-panel__lights:where(.astro-yyvwusc4) i:where(.astro-yyvwusc4):nth-child(3){background:var(--projects-panel-frame-light-zoom)}.projects-panel__icon:where(.astro-yyvwusc4){color:var(--projects-panel-frame-ink);flex:none;display:block}.projects-panel__icon:where(.astro-yyvwusc4) svg:where(.astro-yyvwusc4){width:100%;height:auto;display:block}.projects-panel__back:where(.astro-yyvwusc4){width:calc(var(--projects-panel-frame-chevron-w) * 100cqw);margin-left:calc(( var(--projects-panel-frame-back-centre) - var(--projects-panel-frame-chevron-w) / 2 - var(--projects-panel-frame-light-centre) - 2 * var(--projects-panel-frame-light-pitch) - var(--projects-panel-frame-light-w) / 2 ) * 100cqw)}.projects-panel__fwd:where(.astro-yyvwusc4){width:calc(var(--projects-panel-frame-chevron-w) * 100cqw);margin-left:calc(( var(--projects-panel-frame-fwd-centre) - var(--projects-panel-frame-back-centre) - var(--projects-panel-frame-chevron-w) ) * 100cqw);color:var(--projects-panel-frame-ink-off)}.projects-panel__fwd:where(.astro-yyvwusc4) svg:where(.astro-yyvwusc4){transform:scaleX(-1)}.projects-panel__address:where(.astro-yyvwusc4){width:calc(var(--projects-panel-frame-address-w) * 100cqw);height:calc(var(--projects-panel-frame-address-h) * 100cqw);border-radius:calc(var(--projects-panel-frame-address-corner) * 100cqw);background:var(--projects-panel-frame-address-bg);justify-content:center;align-items:center;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.projects-panel__address-text:where(.astro-yyvwusc4){font-size:calc(var(--projects-panel-frame-address-size) * 100cqw);letter-spacing:var(--projects-panel-frame-address-tracking);color:var(--projects-panel-frame-address-ink);font-variant-numeric:tabular-nums;white-space:nowrap;line-height:1}.projects-panel__reload:where(.astro-yyvwusc4){right:calc(var(--projects-panel-frame-reload-clear) * 100cqw);width:calc(var(--projects-panel-frame-reload-w) * 100cqw);position:absolute}.projects-panel__share:where(.astro-yyvwusc4){width:calc(var(--projects-panel-frame-share-w) * 100cqw);margin-left:auto}@container (width<=520px){.projects-panel__back:where(.astro-yyvwusc4),.projects-panel__fwd:where(.astro-yyvwusc4),.projects-panel__share:where(.astro-yyvwusc4),.projects-panel__reload:where(.astro-yyvwusc4),.projects-panel__address-text:where(.astro-yyvwusc4){display:none}}.projects-panel__content:where(.astro-yyvwusc4){inset:var(--projects-panel-frame-band);border-radius:inherit;corner-shape:inherit;position:absolute;overflow:hidden}.projects-panel__clip:where(.astro-yyvwusc4){object-fit:cover;object-position:50% 0;width:100%;height:100%;display:block}.projects-panel__plinth:where(.astro-yyvwusc4){z-index:0;margin-left:calc(( var(--projects-panel-column) + var(--projects-panel-gutter-share) - var(--projects-panel-plinth-overhang) * var(--projects-panel-frame-share) ) / var(--projects-panel-stage-share) * 100%);width:calc((1 + 2 * var(--projects-panel-plinth-overhang)) * var(--projects-panel-frame-share) / var(--projects-panel-stage-share) * 100%);margin-top:calc(-1 * var(--projects-panel-plinth-back));height:calc(var(--projects-panel-plinth-depth) + var(--projects-panel-plinth-back));background-image:var(--projects-panel-plinth-src);background-repeat:no-repeat;background-size:100% 100%;position:relative}.projects-panel__reflection:where(.astro-yyvwusc4),.projects-panel__plinth:where(.astro-yyvwusc4):after{top:var(--projects-panel-plinth-back);left:var(--projects-panel-plinth-inset);right:var(--projects-panel-plinth-inset);height:var(--projects-panel-plinth-face);position:absolute}.projects-panel__reflection:where(.astro-yyvwusc4){isolation:isolate;opacity:var(--projects-panel-reflection-strength);-webkit-mask-image:linear-gradient(to bottom, #000, rgb(0 0 0/var(--projects-panel-reflection-far)));mask-image:linear-gradient(to bottom, #000, rgb(0 0 0/var(--projects-panel-reflection-far)));pointer-events:none;overflow:hidden}.projects-panel__reflection:where(.astro-yyvwusc4)>.projects-panel__frame:where(.astro-yyvwusc4){transform-origin:bottom;position:absolute;bottom:100%;left:0;right:0;transform:scaleY(-1)}.projects-panel__plinth:where(.astro-yyvwusc4):after{content:"";z-index:1;pointer-events:none;background:linear-gradient(to bottom, var(--projects-panel-contact-near) 0%, var(--projects-panel-contact-mid) var(--projects-panel-contact-mid-at), var(--projects-panel-contact-far) var(--projects-panel-contact-far-at), #0000 100%);-webkit-mask-image:linear-gradient(to right, transparent 0, #000 var(--projects-panel-contact-ends), #000 calc(100% - var(--projects-panel-contact-ends)), transparent 100%);mask-image:linear-gradient(to right, transparent 0, #000 var(--projects-panel-contact-ends), #000 calc(100% - var(--projects-panel-contact-ends)), transparent 100%)}@media not all and (width>=1100px){.projects-panel:where(.astro-yyvwusc4){--projects-panel-w:calc(100vw - 2 * var(--projects-panel-side));--projects-panel-frame-w:var(--projects-panel-w);--projects-panel-masthead-size:var(--projects-panel-masthead-stacked);--projects-panel-sub-size:var(--projects-panel-sub-stacked);--projects-panel-copy-size:var(--projects-panel-copy-stacked);--projects-panel-point-size:var(--projects-panel-point-stacked);--projects-panel-figure-size:var(--projects-panel-figure-stacked);--projects-panel-rail-size:var(--projects-panel-rail-stacked);padding:var(--projects-panel-inset) var(--projects-panel-side);row-gap:var(--projects-panel-stack-gap);grid-template-columns:minmax(0,1fr)}.projects-panel__rail-items:where(.astro-yyvwusc4){justify-content:flex-start;align-items:baseline;column-gap:var(--projects-panel-stack-rail-gap);row-gap:var(--projects-panel-stack-rail-rows);flex-flow:wrap}.projects-panel__rail-item:where(.astro-yyvwusc4){writing-mode:horizontal-tb;transform:none}.projects-panel__inner:where(.astro-yyvwusc4){align-self:stretch;row-gap:var(--projects-panel-stack-gap);grid-template-rows:none;grid-template-columns:minmax(0,1fr)}.projects-panel__head:where(.astro-yyvwusc4),.projects-panel__copy:where(.astro-yyvwusc4),.projects-panel__points:where(.astro-yyvwusc4),.projects-panel__stage:where(.astro-yyvwusc4){grid-column:1;align-self:auto}.projects-panel__head:where(.astro-yyvwusc4){grid-row:1;margin-bottom:0}.projects-panel__copy:where(.astro-yyvwusc4){border-left:0;border-top:1px solid var(--projects-panel-rule);padding:var(--projects-panel-stack-gap) 0 0;max-width:var(--projects-panel-stack-measure);grid-row:2}.projects-panel__stage:where(.astro-yyvwusc4){grid-row:3;margin-top:0}.projects-panel__stage:where(.astro-yyvwusc4)>.projects-panel__frame:where(.astro-yyvwusc4){margin-left:0}.projects-panel__plinth:where(.astro-yyvwusc4){margin-left:calc(-1 * var(--projects-panel-plinth-overhang) * 100%);width:calc((1 + 2 * var(--projects-panel-plinth-overhang)) * 100%)}.projects-panel__points:where(.astro-yyvwusc4){align-content:normal;row-gap:calc(var(--projects-panel-stack-points-gap) * var(--projects-panel-point-size));grid-row:4;margin-top:0;margin-bottom:0}}@media (width>=1100px) and (height>=700px){.projects-panel:where(.astro-yyvwusc4){--projects-panel-w:var(--landing-w);--projects-panel-lift:calc(var(--landing-top) - var(--projects-panel-mast-top));--projects-panel-reach:calc(var(--page-across) - var(--landing-side) - (1 + var(--landing-plinth-share)) * var(--projects-panel-w));scroll-margin-top:var(--projects-panel-lift);min-height:calc(var(--fold) - var(--landing-top) + var(--landing-mast-top));padding-top:0;padding-bottom:0;padding-right:0;padding-left:var(--landing-side);--projects-panel-fall:calc(var(--fold) - var(--landing-top) + var(--landing-mast-top) - var(--projects-panel-mast-line) - var(--projects-panel-sub-line) - var(--projects-panel-frame-drop) - var(--projects-panel-plinth-depth) - var(--projects-panel-frame-w) / var(--projects-panel-frame-ratio));grid-template-columns:minmax(0, var(--projects-panel-w));background:0 0;justify-content:start;align-items:start}.projects-panel__inner:where(.astro-yyvwusc4){align-self:start}.projects-panel__head:where(.astro-yyvwusc4){margin-bottom:calc(-1 * (var(--projects-panel-sub-line) + var(--projects-panel-fall)))}.projects-panel__sub:where(.astro-yyvwusc4) span:where(.astro-yyvwusc4):last-child{margin-top:var(--projects-panel-fall)}.projects-panel__points:where(.astro-yyvwusc4){margin-top:calc(var(--projects-panel-sub-line) + var(--projects-panel-fall) + var(--projects-panel-points-air))}.projects-panel__stage:where(.astro-yyvwusc4){margin-top:calc(var(--projects-panel-frame-drop) + var(--projects-panel-fall));left:var(--projects-panel-reach)}.projects-panel__copy:where(.astro-yyvwusc4){margin-left:var(--projects-panel-gutter);margin-right:calc(-1 * var(--projects-panel-reach));grid-column:6/13}.projects-panel__points:where(.astro-yyvwusc4){margin-right:calc(-1 * var(--projects-panel-reach))}.projects-panel__masthead:where(.astro-yyvwusc4){visibility:hidden}.projects-panel__copy:where(.astro-yyvwusc4){--projects-panel-copy-arrive:clamp(0, calc((var(--turn) - var(--projects-panel-copy-arrive-from)) / (var(--projects-panel-copy-arrive-to) - var(--projects-panel-copy-arrive-from))), 1);--projects-panel-copy-ruled:clamp(0, calc(var(--projects-panel-copy-arrive) / var(--projects-panel-copy-rule-lead)), 1);color:color-mix(in oklab, var(--projects-panel-ink-soft), transparent calc((1 - var(--projects-panel-copy-arrive)) * 100%));border-left-color:color-mix(in oklab, var(--projects-panel-rule), transparent calc((1 - var(--projects-panel-copy-ruled)) * 100%))}@media (scripting:none){.projects-panel__copy:where(.astro-yyvwusc4){--projects-panel-copy-arrive:1;--projects-panel-copy-ruled:1}}.projects-panel__rail:where(.astro-yyvwusc4){left:0;top:calc(var(--projects-panel-side) - var(--projects-panel-lift));bottom:var(--projects-panel-side);width:var(--landing-side);opacity:var(--turn);position:absolute}@media (scripting:none){.projects-panel__rail:where(.astro-yyvwusc4){opacity:1}}}:root{--fx-y:0px;--fx-band:calc(var(--fold) - var(--fx-y));--fx-fade:0;--fx-veil-from:0;--fx-veil-to:1;--fx-film-src:image-set(url(/_astro/film-1600.Dd82NYH0.webp) 1x, url(/_astro/film-2600.C8uvdOAN.webp) 2x);--fx-film-strength:.14;--fx-film-blend:multiply;--fx-film-scale:.25;--fx-film-aspect:1.3445;--fx-film-invert:1;--fx-film-lift:1.5;--fx-film-contrast:2;--fx-paper-src:image-set(url(/_astro/paper-512.D5w3m4nC.webp) 1x, url(/_astro/paper-1024.Bi8rY8Vk.webp) 2x);--fx-paper-size:384px;--fx-paper-strength:.18;--fx-paper-blend:multiply;--fx-paper-invert:0;--fx-paper-lift:1.5;--fx-paper-contrast:1.25;--fx-grain-opacity:.09;--fx-grain-size:600px;--fx-grain-fps:2;--fx-halftone-pitch:3.7px;--fx-halftone-dot:.27;--fx-halftone-angle:11deg;--fx-halftone-opacity:1;--fx-halftone-blend:soft-light;--fx-vignette-start:55%;--fx-vignette-strength:.3;--fx-scan-pitch:3px;--fx-scan-alpha:.28;--fx-flicker:.04;--fx-grille-pitch:3px;--fx-grille-alpha:.16;--fx-tube-curve:1.4rem;--fx-tube-alpha:.5;--fx-roll-height:14%;--fx-roll-alpha:.05;--fx-roll-period:7s}:root[data-theme=dark]{--fx-film-invert:0;--fx-film-lift:.75;--fx-film-contrast:4;--fx-film-blend:screen;--fx-film-strength:.18;--fx-paper-lift:.8;--fx-paper-contrast:8;--fx-paper-blend:normal;--fx-paper-strength:.06;--fx-halftone-pitch:3.9px;--fx-halftone-dot:.2;--fx-halftone-blend:multiply}@media (width<=700px){:root{--fx-film-strength:.07}:root[data-theme=dark]{--fx-film-strength:.09}}.fx{top:var(--fx-y);pointer-events:none;position:absolute;bottom:0;left:0;right:0;overflow:hidden}:root{--fx-veil:clamp(0, (var(--fx-veil-to) - var(--turn)) / (var(--fx-veil-to) - var(--fx-veil-from)), 1)}.fx>*{mask-image:linear-gradient(to bottom, rgb(0 0 0/var(--fx-veil)) calc(100% * (1 - var(--fx-fade))), transparent 100%);display:none;position:absolute;inset:0}.fx-paper{z-index:2}.fx-halftone{z-index:4}.fx-film{z-index:6}.fx-grain{z-index:8}.fx-grille{z-index:10}.fx-scan{z-index:12}.fx-roll{z-index:14}.fx-tube{z-index:16}.fx-vignette{z-index:18}:root[data-fx~=paper] .fx-paper{background-image:var(--fx-paper-src);background-size:var(--fx-paper-size) var(--fx-paper-size);filter:invert(var(--fx-paper-invert)) brightness(var(--fx-paper-lift)) contrast(var(--fx-paper-contrast));mix-blend-mode:var(--fx-paper-blend);opacity:var(--fx-paper-strength);background-repeat:repeat;display:block}:root[data-fx~=halftone] .fx-halftone{background-image:radial-gradient(circle at 50% 50%, #000 0 calc(var(--fx-halftone-dot) * var(--fx-halftone-pitch)), #fff calc(var(--fx-halftone-dot) * var(--fx-halftone-pitch) + .5px));background-size:var(--fx-halftone-pitch) var(--fx-halftone-pitch);width:150%;height:150%;rotate:var(--fx-halftone-angle);mix-blend-mode:var(--fx-halftone-blend);opacity:var(--fx-halftone-opacity);display:block;inset:-25%}:root[data-fx~=film] .fx-film{background-image:var(--fx-film-src);background-size:calc(1px + var(--fx-film-scale) * max(100%, var(--fx-band) * var(--fx-film-aspect))) auto;filter:invert(var(--fx-film-invert)) brightness(var(--fx-film-lift)) contrast(var(--fx-film-contrast));mix-blend-mode:var(--fx-film-blend);opacity:var(--fx-film-strength);background-position:50%;background-repeat:repeat;display:block}:root[data-fx~=grain] .fx-grain{background-image:var(--fx-grain-src,none);background-size:var(--fx-grain-size) var(--fx-grain-size);mix-blend-mode:overlay;opacity:var(--fx-grain-opacity);animation:fx-grain-shift calc(8s / var(--fx-grain-fps)) steps(1, end) infinite;background-repeat:repeat;display:block}@keyframes fx-grain-shift{0%{background-position:0 0}12.5%{background-position:-13px 27px}25%{background-position:31px -19px}37.5%{background-position:-41px -37px}50%{background-position:23px 43px}62.5%{background-position:-29px 11px}75%{background-position:47px -31px}87.5%{background-position:-17px -43px}}:root[data-fx~=scan] .fx-scan{background-image:repeating-linear-gradient(to bottom, rgb(0 0 0/var(--fx-scan-alpha)) 0 1px, transparent 1px var(--fx-scan-pitch));mix-blend-mode:multiply;animation:.14s steps(2,end) infinite fx-flicker;display:block}:root[data-fx~=grille] .fx-grille{background-image:repeating-linear-gradient(to right, rgb(255 0 0/var(--fx-grille-alpha)) 0 calc(var(--fx-grille-pitch) / 3), rgb(0 255 0/var(--fx-grille-alpha)) calc(var(--fx-grille-pitch) / 3) calc(var(--fx-grille-pitch) / 3 * 2), rgb(0 0 255/var(--fx-grille-alpha)) calc(var(--fx-grille-pitch) / 3 * 2) var(--fx-grille-pitch));mix-blend-mode:screen;display:block}:root[data-fx~=tube] .fx-tube{border-radius:var(--fx-tube-curve);box-shadow:inset 0 0 calc(var(--fx-tube-curve) * 4) calc(var(--fx-tube-curve) / 2) rgb(0 0 0/var(--fx-tube-alpha));mix-blend-mode:multiply;display:block}:root[data-fx~=roll] .fx-roll{height:var(--fx-roll-height);background-image:linear-gradient(to bottom, transparent, rgb(255 255 255/var(--fx-roll-alpha)) 50%, transparent);mix-blend-mode:screen;animation:fx-roll var(--fx-roll-period) linear infinite;display:block;inset:auto 0 0}@keyframes fx-flicker{0%{opacity:1}50%{opacity:calc(1 - var(--fx-flicker))}}@keyframes fx-roll{0%{transform:translateY(0)}to{transform:translateY(calc(-100svh - var(--fx-roll-height)))}}:root[data-fx~=vignette] .fx-vignette{background-image:radial-gradient(ellipse at 50% 45%, #fff var(--fx-vignette-start), hsl(0 0% calc(100% - var(--fx-vignette-strength) * 100%)) 130%);mix-blend-mode:multiply;display:block}@media (prefers-reduced-motion:reduce){.fx-grain,.fx-roll,.fx-scan{animation:none}}:root{--type-zoom:1.192;--type-ceiling:1rem;--type-scale:.01342}@font-face{font-family:Vollkorn;src:url(/_astro/vollkorn-regular.Dnyk-4Dy.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Vollkorn;src:url(/_astro/vollkorn-bold.BOvu2Z-p.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Vollkorn;src:url(/_astro/vollkorn-italic.C2SWcZ4o.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Spectral;src:url(/_astro/spectral-regular.aUXvtoaB.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:"Source Serif 4";src:url(/_astro/sourceserif4-regular.Btvmr_1b.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Host Grotesk;src:url(/_astro/hostgrotesk-regular.D0IyrpjR.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Host Grotesk;src:url(/_astro/hostgrotesk-medium.BUaf8gYo.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}:root{font-size:calc(var(--type-zoom) * var(--type-ceiling))}@media (width>=1100px) and (height>=700px){:root{font-size:calc(var(--type-zoom) * min(var(--type-ceiling), calc(var(--type-scale) * 100vh)))}}:root{--face-body:Vollkorn, "Sitka Text", Charter, "Iowan Old Style", Georgia, serif;--face-label:Spectral, "Sitka Text", Charter, "Iowan Old Style", Georgia, serif;--face-lead:Georgia, "Iowan Old Style", "Palatino Linotype", serif;--face-year:"Source Serif 4", Georgia, serif;--face-panel:"Host Grotesk", "Segoe UI Variable Text", "Segoe UI", system-ui, sans-serif}@property --turn{syntax:"<number>";inherits:true;initial-value:0}@property --page-across{syntax:"<length>";inherits:true;initial-value:0}:root{--paper:#fff;--paper-ink:#1a1917;--paper-ink-soft:#46433d;--dark:#000;--dark-ink:#eaeaea;--dark-ink-soft:#b8b8b8;--turn:0;--ground:color-mix(in oklab, var(--paper), var(--dark) calc(var(--turn) * 100%));--ink:color-mix(in oklab, var(--paper-ink), var(--dark-ink) calc(var(--turn) * 100%));--ink-soft:color-mix(in oklab, var(--paper-ink-soft), var(--dark-ink-soft) calc(var(--turn) * 100%));--fold:100svh}:root[data-theme=dark]{--paper:#131211;--paper-ink:#eaeaea;--paper-ink-soft:#b8b8b8}html{background:var(--ground);color:var(--ink);color-scheme:light dark;overflow-x:clip}body{font-family:var(--face-body);--page-across:100vw;background:0 0;margin:0;position:relative}@supports (container-type:inline-size){html{container-type:inline-size}body{--page-across:100cqw}}@media (prefers-reduced-motion:reduce){:root{scroll-behavior:auto}}:root{--plate-opacity:.12;--plate-fill:.863;--plate-y:0px;--plate-band:calc(var(--fold) - var(--plate-y));--plate-w:min(calc(var(--plate-fill) * var(--plate-band)), 2400px);--plate-x:0px;--plate-crop:.15;--plate-src:none;--car-opacity:.135;--car-fill:.497;--car-w:min(calc(var(--car-fill) * var(--fold)), 2400px);--car-x:-60px;--car-y:-78px;--car-crop:0;--car-src:none;--eye-opacity:.131;--eye-fill:.582;--eye-w:min(calc(var(--eye-fill) * var(--fold)), 2400px);--eye-x:292.94px;--eye-y:0px;--eye-crop:0;--eye-src:none}:root[data-theme=dark]{--plate-opacity:.17;--car-opacity:.17;--eye-opacity:.17}.kernel-corners{height:var(--fold);z-index:-1;pointer-events:none;contain:paint;position:absolute;top:0;left:0;right:0}.kernel-corners>*{background-repeat:no-repeat;position:absolute;left:0;right:0}.kernel-corners .plate{height:var(--plate-band);background-image:var(--plate-src);background-position:left var(--plate-x) bottom calc(-1 * var(--plate-crop) * var(--plate-w));background-size:var(--plate-w) auto;opacity:var(--plate-opacity);top:0}.kernel-corners .car{height:var(--fold);background-image:var(--car-src);background-position:right var(--car-x) top calc(var(--car-y) - var(--car-crop) * var(--car-w));background-size:var(--car-w) auto;opacity:var(--car-opacity);top:0}.kernel-corners .eye{--eye-measure:27rem;--eye-side:1.35rem;--eye-column:max(var(--eye-side), calc((var(--page-across) - var(--eye-measure)) / 2));height:calc(var(--fold) - var(--eye-y));background-image:var(--eye-src);background-position:left calc(var(--eye-column) + var(--eye-x)) bottom calc(-1 * var(--eye-crop) * var(--eye-w));background-size:var(--eye-w) auto;opacity:var(--eye-opacity);top:0}:root{--landing-side:clamp(2.25rem, 6.5vh, 5rem);--landing-inset:clamp(1.5rem, 4.4vh, 3.4rem);--landing-name-lead:calc(.294 * .78rem);--landing-fit:.5971;--landing-mast-share:.0885;--landing-plinth-share:.070748}@media (width>=1100px) and (height>=700px){body{--landing-w:min(calc((var(--page-across) - var(--landing-side)) / (1 + var(--landing-plinth-share))), calc((var(--fold) - var(--landing-inset) - var(--landing-name-lead)) / var(--landing-fit)));--landing-mast-size:calc(var(--landing-mast-share) * var(--landing-w));--landing-cap:calc(.7 * var(--landing-mast-size));--landing-mast-top:calc(.08 * var(--landing-mast-size));--landing-top:calc(var(--landing-inset) + var(--landing-name-lead))}html{scroll-snap-type:y mandatory}body:before{content:"";scroll-snap-align:start;height:0;display:block}[data-section]~[data-section]{scroll-snap-align:start}}
