@keyframes projects-enter-fade{0%{opacity:.5}to{opacity:1}}@keyframes projects-enter-rise{0%{transform:translateY(32px)}to{transform:none}}.projects-enter{animation:.1s linear backwards projects-enter-fade,1s cubic-bezier(.16,1,.3,1) backwards projects-enter-rise}.projects-container{width:100%;max-width:56rem;margin-inline:auto;padding-inline:1.5rem}:is(main:has(>.projects-list-layout)+[data-site-footer]>div,main:has(>.project-detail)+[data-site-footer]>div){max-width:56rem}main:has(>.projects-list-layout){flex-direction:column;display:flex}.projects-list-layout{--projects-shell-top:1.5625rem;--lens-panel-bottom-gap:24px;--projects-column:min(53rem, calc(100% - 3rem));padding-top:var(--projects-shell-top);flex:1;padding-bottom:16px;position:relative;overflow-x:clip}.projects-list-layout:before{content:"";width:var(--projects-column);pointer-events:none;z-index:3;border-inline:1px solid #eee;margin-inline:auto;position:absolute;inset:0}[data-lens-layer]{overflow-anchor:none}.picker-panel{width:var(--projects-column);background:#fafafa;flex-direction:column;margin-inline:auto;transition:margin-bottom .48s cubic-bezier(.33,1,.68,1);display:flex;position:relative}.picker-panel:before,.picker-panel:after{content:"";width:calc((100cqi - var(--content-scrollbar-width,0px) - 100%) / 2);pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath d='M-2 2L2-2M0 8L8 0M6 10L10 6' fill='none' stroke='%23eee' stroke-width='1' shape-rendering='crispEdges'/%3E%3C/svg%3E") 0 0/8px 8px;position:absolute;inset-block:0}.picker-panel:before{right:100%}.picker-panel:after{left:100%}.picker-panel-bottom,.picker-header-divider{pointer-events:none;z-index:4;height:0;position:absolute;inset:auto 0 0}.picker-panel-bottom:before{content:"";width:calc(100cqi - var(--content-scrollbar-width,0px));border-top:1px solid #eee;position:absolute;top:-1px;left:50%;transform:translate(-50%)}.picker-panel-bottom:after{content:"";background-color:#0000;background-image:radial-gradient(circle,#d9d9d9 1.5px,#0000 1.5px),radial-gradient(circle,#d9d9d9 1.5px,#0000 1.5px);background-position:0 100%,100% 100%;background-repeat:no-repeat;background-size:3px 3px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:absolute;inset:-2px -1px -1px}[data-lens-open] .picker-panel{height:calc(var(--content-viewport-height) - var(--projects-shell-top) - var(--lens-panel-bottom-gap));margin-bottom:var(--lens-panel-bottom-gap)}.picker-header{flex:none}.project-frame-column,.project-frame-row{position:relative}.project-frame-row:before{content:"";width:calc(100cqi - var(--content-scrollbar-width,0px));inset-block:0;pointer-events:none;z-index:3;border-block:1px solid #eee;position:absolute;left:50%;transform:translate(-50%)}.picker-header.project-frame-row:before{border-bottom:0}.picker-header-divider{opacity:0;border-top:1px solid #eee}[data-lens-open] .picker-header-divider{opacity:1}@keyframes lens-structure-reveal{0%{opacity:0}to{opacity:1}}.picker-panel[data-phase=opening] .picker-header-divider,.picker-panel[data-phase=opening] .lens-results-region:before{animation:.14s linear .34s both lens-structure-reveal}.picker-panel[data-phase=closing] .picker-header-divider{opacity:0}.picker-decoration{pointer-events:none;position:absolute;inset:0;overflow:clip}.picker-glow-motion{isolation:isolate;position:absolute;top:56px;left:24px;right:24px}[data-lens-open] .picker-glow-motion{top:32px}.picker-header>.projects-container,.picker-header .project-frame-column{height:100%}.picker-header>.projects-container{padding-inline:0;position:relative;overflow:visible}.picker-header:after{content:"";pointer-events:none;z-index:4;background-color:#0000;background-image:radial-gradient(circle,#d9d9d9 1.5px,#0000 1.5px),radial-gradient(circle,#d9d9d9 1.5px,#0000 1.5px);background-position:0 0,100% 0;background-repeat:no-repeat;background-size:3px 3px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:absolute;inset:-1px}.lens-picker-label{z-index:3;color:#ccc;font-size:10px;line-height:14px;position:absolute;top:10px;left:12px}.lens-cloud{text-align:center;padding:64px 24px 56px;position:relative}[data-lens-fold]{margin-inline:-24px;overflow:clip visible}.lens-dot-pattern{pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Crect width='2' height='2' fill='%23fafafa' fill-opacity='.3'/%3E%3C/svg%3E") 0 0/8px 8px;position:absolute;inset:0}.lens-heading-wrap{margin-bottom:24px;position:relative}.lens-heading{font-size:24px;font-weight:700;line-height:1.25;display:grid;position:relative}[data-lens-open] .lens-cloud{padding-top:32px;padding-bottom:28px}[data-lens-open] .lens-heading-wrap{margin-bottom:20px}.lens-heading-line{grid-area:1/1;align-content:center;display:grid}.lens-heading-selected{transform:scale(var(--lens-heading-grow,1.5));font-size:16px;position:absolute;inset:0}[data-lens-open] .lens-heading-selected{position:static;transform:none}[data-lens-open] .lens-heading-line:not(.lens-heading-selected){transform:scale(var(--lens-heading-shrink,.666667));position:absolute;inset:0}.lens-heading-selected,[data-lens-open] .lens-heading-line:not(.lens-heading-selected){opacity:0}[data-lens-open] .lens-heading-selected{opacity:1}.lens-results-region{--lens-result-inset:24px;flex:1;min-height:0;position:relative;overflow:clip}.lens-results-region:before{content:"";inset:0 var(--lens-result-inset);pointer-events:none;z-index:3;border-inline:1px solid #eee;transition:opacity .14s linear;position:absolute}.picker-panel[data-phase=closing] .lens-results-region:before{opacity:0}.lens-scroller{overscroll-behavior:contain;scrollbar-width:none;height:100%;position:relative;overflow:hidden auto}.lens-scroller::-webkit-scrollbar{display:none}.lens-results-content{padding-top:24px;padding-bottom:24px}.lens-results-content .project-frame-row:before{width:100%;left:0;transform:none}.picker-panel[data-phase=opening] .lens-scroller{animation:.24s linear .34s both lens-structure-reveal}.picker-panel[data-phase=opening] .lens-swap-in{animation-delay:.34s}@keyframes lens-swap-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.lens-swap-in{animation:.22s ease-out both lens-swap-in}[data-lens-restored] .lens-swap-in{animation:none}.projects-archive{margin-top:16px}.project-archive-list{gap:16px;display:grid}.project-banner{background:var(--project-card-background);min-height:208px;color:var(--project-card-foreground);display:grid;position:relative;overflow:hidden}.project-banner-image{position:absolute;inset:0 0 0 50%;overflow:hidden}.project-banner-media{position:absolute;inset:0}.project-card-preview{opacity:0;position:absolute;inset:0}.project-card-preview:after{content:"";pointer-events:none;background:color-mix(in srgb, var(--project-card-background) 20%, transparent);box-shadow:inset 0 0 56px 20px color-mix(in srgb, var(--project-card-background) 70%, transparent);position:absolute;inset:0}.project-card-preview-media{object-fit:cover;object-position:50% 50%;width:100%;height:100%;transition:opacity .32s ease-out;position:absolute;inset:0}.project-banner-image:after{content:"";pointer-events:none;background:linear-gradient(90deg, var(--project-card-background), transparent 55%);position:absolute;inset:0}.project-banner-copy{flex-direction:column;justify-content:space-between;gap:36px;width:60%;padding:48px 0 48px 56px;display:flex;position:relative}.project-banner h2{overflow-wrap:anywhere;font-size:24px;font-weight:700;line-height:30px}.project-banner-summary{opacity:.8;margin-top:10px;font-size:14px;line-height:20px}.project-card-meta{opacity:.8;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;line-height:15px;display:flex}.project-meta-dot{background:currentColor;border-radius:50%;flex:none;width:2px;height:2px}.lens-result-card{background:#fafafa;grid-template-columns:180px minmax(0,1fr);min-height:152px;transition:background-color .3s ease-out;display:grid}.lens-result-card:hover,.lens-result-card:focus-visible{background:#fff}.lens-result-image{background:#eee;min-height:152px;position:relative;overflow:hidden}.lens-result-copy{overflow-wrap:anywhere;flex-direction:column;justify-content:space-between;gap:20px;min-width:0;padding:20px;display:flex}.lens-result-meta{opacity:.8;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;line-height:15px;display:flex}.lens-result-meta-dot{background:currentColor;border-radius:50%;flex:none;width:2px;height:2px}[data-lens-exit]{pointer-events:none;position:absolute;inset:0;overflow:hidden}[data-lens-ghost]{height:100%;overflow:hidden}[data-lens-ghost-held]{visibility:hidden}[data-lens-ghost] .lens-swap-in{animation:none}@container page-window not (min-width:48rem){.project-banner-copy{width:65%;padding-left:28px}}@media not (min-width:40rem){.projects-container{padding-inline:16px}.lens-results-region{--lens-result-inset:16px}.projects-list-layout{--projects-shell-top:16px;--lens-panel-bottom-gap:16px;--projects-column:calc(100% - 32px)}.picker-glow-motion{top:44px;left:0;right:0}.lens-cloud{padding:44px 0 32px}[data-lens-fold]{margin-inline:0}.lens-heading{font-size:clamp(13px,4.25vw,24px)}.lens-heading-wrap{margin-bottom:16px}.lens-heading-selected{font-size:clamp(13px,4.25vw,16px)}[data-lens-open] .lens-cloud{padding-top:32px;padding-bottom:24px}.project-banner{flex-direction:column;min-height:0;display:flex}.project-banner-image{aspect-ratio:16/9;width:100%;position:relative;inset:auto}.project-banner-image:after{background:linear-gradient(0deg, var(--project-card-background), transparent 35%)}.project-banner-copy{background:var(--project-card-background);gap:10px;width:100%;margin-top:-1px;padding:0 16px 24px}.project-banner h2{font-size:18px;line-height:24px}.project-card-meta{opacity:.5}.lens-result-card{grid-template-columns:minmax(0,1fr)}.lens-result-image{aspect-ratio:16/9;min-height:0}.lens-result-copy{padding:20px 16px}}@keyframes lens-glow-bloom{0%{opacity:0;transform:scale(.52,.72)}to{opacity:1;transform:scale(1)}}.lens-glow-bloom{transform-origin:50% 4.5rem;position:absolute;inset:0}.lens-glow-bloom[data-enter]{animation:1.6s cubic-bezier(.33,1,.68,1) .18s both lens-glow-bloom}@media not (min-width:40rem){.lens-glow-bloom{transform-origin:50% 2.875rem}}@property --lens-glow-rx{syntax:"<percentage>";inherits:true;initial-value:90%}@property --lens-glow-ry{syntax:"<percentage>";inherits:true;initial-value:58%}.lens-glow,.lens-chroma-composite{--lens-glow-top-bleed:1.75rem;--lens-glow-bottom-bleed:2.5rem;--lens-glow-rest-height:16.75rem;--lens-glow-heading-center:2.625rem;--lens-glow-rx:90%;--lens-glow-ry:58%;top:calc(-1 * var(--lens-glow-top-bleed));height:calc(var(--lens-glow-rest-height) + var(--lens-glow-top-bleed) + var(--lens-glow-bottom-bleed));--lens-glow-mask:radial-gradient(ellipse var(--lens-glow-rx) var(--lens-glow-ry) at 50% 74%, #000 0%, #000c 40%, #00000073 66%, #00000029 86%, transparent 100%);-webkit-mask-image:var(--lens-glow-mask);-webkit-mask-image:var(--lens-glow-mask);mask-image:var(--lens-glow-mask);--lens-glow-bleed:1.5rem;bottom:auto;left:calc(-1 * var(--lens-glow-bleed));right:calc(-1 * var(--lens-glow-bleed));opacity:1;transform:translateY(0);-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}[data-lens-open] .lens-glow,[data-lens-open] .lens-chroma-composite{opacity:.85;--lens-glow-rx:70%;--lens-glow-ry:26%;transform:translateY(-15rem)}@media not (min-width:40rem){.lens-glow,.lens-chroma-composite{--lens-glow-bleed:0px;--lens-glow-top-bleed:.5rem;--lens-glow-bottom-bleed:1.5rem;--lens-glow-rest-height:16rem;--lens-glow-heading-center:1.1875rem}}.lens-glow-base,.lens-glow-a,.lens-glow-b{position:absolute}.lens-glow-base{background-image:radial-gradient(45.16% 66% at 35.48%,#b899ff47 0%,#b899ff1c 58%,#0000 88%),radial-gradient(45.16% 66% at 66.13%,#99acff38 0%,#99acff14 58%,#0000 88%);inset:0 -12%}@keyframes lens-glow-drift-base{0%{filter:hue-rotate();transform:translate(3%,1.57%)scale(1.019)}4.16667%{filter:hue-rotate(2.3deg);transform:translate(2.9%,1.98%)scale(1.031)}8.33333%{filter:hue-rotate(4.5deg);transform:translate(2.6%,1.86%)scale(1.04)}12.5%{filter:hue-rotate(6.4deg);transform:translate(2.12%,1.24%)scale(1.046)}16.6667%{filter:hue-rotate(7.8deg);transform:translate(1.5%,.29%)scale(1.05)}20.8333%{filter:hue-rotate(8.7deg);transform:translate(.78%,-.74%)scale(1.05)}25%{filter:hue-rotate(9deg);transform:translateY(-1.57%)scale(1.046)}29.1667%{filter:hue-rotate(8.7deg);transform:translate(-.78%,-1.98%)scale(1.039)}33.3333%{filter:hue-rotate(7.8deg);transform:translate(-1.5%,-1.86%)scale(1.03)}37.5%{filter:hue-rotate(6.4deg);transform:translate(-2.12%,-1.24%)scale(1.019)}41.6667%{filter:hue-rotate(4.5deg);transform:translate(-2.6%,-.29%)scale(1.006)}45.8333%{filter:hue-rotate(2.3deg);transform:translate(-2.9%,.74%)scale(.993)}50%{filter:hue-rotate();transform:translate(-3%,1.57%)scale(.981)}54.1667%{filter:hue-rotate(-2.7deg);transform:translate(-2.9%,1.98%)scale(.969)}58.3333%{filter:hue-rotate(-8.6deg);transform:translate(-2.6%,1.86%)scale(.96)}62.5%{filter:hue-rotate(-21.4deg);transform:translate(-2.12%,1.24%)scale(.954)}66.6667%{filter:hue-rotate(-33.2deg);transform:translate(-1.5%,.29%)scale(.95)}70.8333%{filter:hue-rotate(-30.1deg);transform:translate(-.78%,-.74%)scale(.95)}75%{filter:hue-rotate(-17.7deg);transform:translateY(-1.57%)scale(.954)}79.1667%{filter:hue-rotate(-10.2deg);transform:translate(.78%,-1.98%)scale(.961)}83.3333%{filter:hue-rotate(-7.9deg);transform:translate(1.5%,-1.86%)scale(.97)}87.5%{filter:hue-rotate(-6.4deg);transform:translate(2.12%,-1.24%)scale(.981)}91.6667%{filter:hue-rotate(-4.5deg);transform:translate(2.6%,-.29%)scale(.994)}95.8333%{filter:hue-rotate(-2.3deg);transform:translate(2.9%,.74%)scale(1.007)}to{filter:hue-rotate();transform:translate(3%,1.57%)scale(1.019)}}@keyframes lens-glow-base-breathe{0%{opacity:.825}4.16667%{opacity:.77}8.33333%{opacity:.717}12.5%{opacity:.668}16.6667%{opacity:.628}20.8333%{opacity:.599}25%{opacity:.583}29.1667%{opacity:.581}33.3333%{opacity:.593}37.5%{opacity:.619}41.6667%{opacity:.656}45.8333%{opacity:.702}50%{opacity:.755}54.1667%{opacity:.81}58.3333%{opacity:.863}62.5%{opacity:.912}66.6667%{opacity:.952}70.8333%{opacity:.981}75%{opacity:.997}79.1667%{opacity:.999}83.3333%{opacity:.987}87.5%{opacity:.961}91.6667%{opacity:.924}95.8333%{opacity:.878}to{opacity:.825}}@keyframes lens-glow-green{0%{opacity:0;transform:translate(3.5%,5.95%)scale(1.146)}2.08333%{opacity:0;transform:translate(4.56%,5.55%)scale(1.13)}4.16667%{opacity:0;transform:translate(5.53%,4.77%)scale(1.113)}6.25%{opacity:0;transform:translate(6.41%,3.66%)scale(1.094)}8.33333%{opacity:.002;transform:translate(7.18%,2.31%)scale(1.073)}10.4167%{opacity:.01;transform:translate(7.83%,.79%)scale(1.051)}12.5%{opacity:.038;transform:translate(8.34%,-.77%)scale(1.028)}14.5833%{opacity:.099;transform:translate(8.71%,-2.29%)scale(1.005)}16.6667%{opacity:.209;transform:translate(8.93%,-3.64%)scale(.981)}18.75%{opacity:.369;transform:translate(9%,-4.75%)scale(.958)}20.8333%{opacity:.564;transform:translate(8.91%,-5.54%)scale(.935)}22.9167%{opacity:.761;transform:translate(8.68%,-5.95%)scale(.914)}25%{opacity:.918;transform:translate(8.29%,-5.95%)scale(.894)}27.0833%{opacity:.996;transform:translate(7.76%,-5.55%)scale(.876)}29.1667%{opacity:.974;transform:translate(7.1%,-4.77%)scale(.86)}31.25%{opacity:.859;transform:translate(6.32%,-3.66%)scale(.846)}33.3333%{opacity:.679;transform:translate(5.43%,-2.31%)scale(.835)}35.4167%{opacity:.477;transform:translate(4.44%,-.79%)scale(.827)}37.5%{opacity:.294;transform:translate(3.38%,.77%)scale(.822)}39.5833%{opacity:.155;transform:translate(2.27%,2.29%)scale(.82)}41.6667%{opacity:.067;transform:translate(1.11%,3.64%)scale(.821)}43.75%{opacity:.023;transform:translate(-.07%,4.75%)scale(.825)}45.8333%{opacity:.005;transform:translate(-1.24%,5.54%)scale(.832)}47.9167%{opacity:.001;transform:translate(-2.39%,5.95%)scale(.842)}50%{opacity:0;transform:translate(-3.5%,5.95%)scale(.854)}52.0833%{opacity:0;transform:translate(-4.56%,5.55%)scale(.87)}54.1667%{opacity:0;transform:translate(-5.53%,4.77%)scale(.887)}56.25%{opacity:0;transform:translate(-6.41%,3.66%)scale(.906)}58.3333%{opacity:0;transform:translate(-7.18%,2.31%)scale(.927)}60.4167%{opacity:0;transform:translate(-7.83%,.79%)scale(.949)}62.5%{opacity:0;transform:translate(-8.34%,-.77%)scale(.972)}64.5833%{opacity:0;transform:translate(-8.71%,-2.29%)scale(.995)}66.6667%{opacity:0;transform:translate(-8.93%,-3.64%)scale(1.019)}68.75%{opacity:0;transform:translate(-9%,-4.75%)scale(1.042)}70.8333%{opacity:0;transform:translate(-8.91%,-5.54%)scale(1.065)}72.9167%{opacity:0;transform:translate(-8.68%,-5.95%)scale(1.086)}75%{opacity:0;transform:translate(-8.29%,-5.95%)scale(1.106)}77.0833%{opacity:0;transform:translate(-7.76%,-5.55%)scale(1.124)}79.1667%{opacity:0;transform:translate(-7.1%,-4.77%)scale(1.14)}81.25%{opacity:0;transform:translate(-6.32%,-3.66%)scale(1.154)}83.3333%{opacity:0;transform:translate(-5.43%,-2.31%)scale(1.165)}85.4167%{opacity:0;transform:translate(-4.44%,-.79%)scale(1.173)}87.5%{opacity:0;transform:translate(-3.38%,.77%)scale(1.178)}89.5833%{opacity:0;transform:translate(-2.27%,2.29%)scale(1.18)}91.6667%{opacity:0;transform:translate(-1.11%,3.64%)scale(1.179)}93.75%{opacity:0;transform:translate(.07%,4.75%)scale(1.175)}95.8333%{opacity:0;transform:translate(1.24%,5.54%)scale(1.168)}97.9167%{opacity:0;transform:translate(2.39%,5.95%)scale(1.158)}to{opacity:0;transform:translate(3.5%,5.95%)scale(1.146)}}@keyframes lens-glow-drift-a{0%{opacity:.874;filter:hue-rotate(11.6deg);transform:translateY(18.51%)rotate(3.39deg)scale(1.25)}2.08333%{opacity:.683;filter:hue-rotate(18deg);transform:translate(2.06%,17.24%)rotate(4.55deg)scale(1.274)}4.16667%{opacity:.467;filter:hue-rotate(10.3deg);transform:translate(4.22%,10.92%)rotate(5.41deg)scale(1.28)}6.25%{opacity:.314;filter:hue-rotate(-5.4deg);transform:translate(6.55%,2.93%)rotate(5.9deg)scale(1.266)}8.33333%{opacity:.287;filter:hue-rotate(-16.9deg);transform:translate(9.1%,-3.12%)rotate(5.98deg)scale(1.235)}10.4167%{opacity:.398;filter:hue-rotate(-15.2deg);transform:translate(11.84%,-5.54%)rotate(5.66deg)scale(1.187)}12.5%{opacity:.601;filter:hue-rotate(-1.5deg);transform:translate(14.71%,-5.33%)rotate(4.95deg)scale(1.127)}14.5833%{opacity:.812;filter:hue-rotate(13.3deg);transform:translate(17.57%,-4.85%)rotate(3.91deg)scale(1.058)}16.6667%{opacity:.943;filter:hue-rotate(17.7deg);transform:translate(20.26%,-5.72%)rotate(2.59deg)scale(.985)}18.75%{opacity:.941;filter:hue-rotate(8.3deg);transform:translate(22.61%,-7.53%)rotate(1.11deg)scale(.913)}20.8333%{opacity:.806;filter:hue-rotate(-7.6deg);transform:translate(24.44%,-8.29%)rotate(-.46deg)scale(.847)}22.9167%{opacity:.595;filter:hue-rotate(-17.6deg);transform:translate(25.6%,-6.32%)rotate(-1.99deg)scale(.792)}25%{opacity:.393;filter:hue-rotate(-13.8deg);transform:translate(26%,-1.87%)rotate(-3.39deg)scale(.75)}27.0833%{opacity:.286;filter:hue-rotate(.8deg);transform:translate(25.6%,2.85%)rotate(-4.55deg)scale(.726)}29.1667%{opacity:.316;filter:hue-rotate(14.8deg);transform:translate(24.44%,5.22%)rotate(-5.41deg)scale(.72)}31.25%{opacity:.472;filter:hue-rotate(17.2deg);transform:translate(22.61%,4.27%)rotate(-5.9deg)scale(.734)}33.3333%{opacity:.689;filter:hue-rotate(6.1deg);transform:translate(20.26%,1.53%)rotate(-5.98deg)scale(.765)}35.4167%{opacity:.878;filter:hue-rotate(-9.7deg);transform:translate(17.57%,-.1%)rotate(-5.66deg)scale(.813)}37.5%{opacity:.959;filter:hue-rotate(-17.9deg);transform:translate(14.71%,1.4%)rotate(-4.95deg)scale(.873)}39.5833%{opacity:.901;filter:hue-rotate(-12.1deg);transform:translate(11.84%,5.59%)rotate(-3.91deg)scale(.942)}41.6667%{opacity:.726;filter:hue-rotate(3.2deg);transform:translate(9.1%,9.68%)rotate(-2.59deg)scale(1.015)}43.75%{opacity:.508;filter:hue-rotate(16deg);transform:translate(6.55%,10.52%)rotate(-1.11deg)scale(1.087)}45.8333%{opacity:.336;filter:hue-rotate(16.3deg);transform:translate(4.22%,6.85%)rotate(.46deg)scale(1.153)}47.9167%{opacity:.281;filter:hue-rotate(3.9deg);transform:translate(2.06%,.16%)rotate(1.99deg)scale(1.208)}50%{opacity:.366;filter:hue-rotate(-11.6deg);transform:translateY(-6.43%)rotate(3.39deg)scale(1.25)}52.0833%{opacity:.557;filter:hue-rotate(-18deg);transform:translate(-2.06%,-10.31%)rotate(4.55deg)scale(1.274)}54.1667%{opacity:.773;filter:hue-rotate(-10.3deg);transform:translate(-4.22%,-11%)rotate(5.41deg)scale(1.28)}56.25%{opacity:.926;filter:hue-rotate(5.4deg);transform:translate(-6.55%,-10%)rotate(5.9deg)scale(1.266)}58.3333%{opacity:.953;filter:hue-rotate(16.9deg);transform:translate(-9.1%,-9.05%)rotate(5.98deg)scale(1.235)}60.4167%{opacity:.842;filter:hue-rotate(15.2deg);transform:translate(-11.84%,-8.46%)rotate(5.66deg)scale(1.187)}62.5%{opacity:.639;filter:hue-rotate(1.5deg);transform:translate(-14.71%,-6.75%)rotate(4.95deg)scale(1.127)}64.5833%{opacity:.428;filter:hue-rotate(-13.3deg);transform:translate(-17.57%,-2.08%)rotate(3.91deg)scale(1.058)}66.6667%{opacity:.297;filter:hue-rotate(-17.7deg);transform:translate(-20.26%,5.8%)rotate(2.59deg)scale(.985)}68.75%{opacity:.299;filter:hue-rotate(-8.3deg);transform:translate(-22.61%,14.6%)rotate(1.11deg)scale(.913)}70.8333%{opacity:.434;filter:hue-rotate(7.6deg);transform:translate(-24.44%,20.46%)rotate(-.46deg)scale(.847)}72.9167%{opacity:.645;filter:hue-rotate(17.6deg);transform:translate(-25.6%,20.32%)rotate(-1.99deg)scale(.792)}75%{opacity:.847;filter:hue-rotate(13.8deg);transform:translate(-26%,13.95%)rotate(-3.39deg)scale(.75)}77.0833%{opacity:.954;filter:hue-rotate(-.8deg);transform:translate(-25.6%,4.08%)rotate(-4.55deg)scale(.726)}79.1667%{opacity:.924;filter:hue-rotate(-14.8deg);transform:translate(-24.44%,-5.3%)rotate(-5.41deg)scale(.72)}81.25%{opacity:.768;filter:hue-rotate(-17.2deg);transform:translate(-22.61%,-11.34%)rotate(-5.9deg)scale(.734)}83.3333%{opacity:.551;filter:hue-rotate(-6.1deg);transform:translate(-20.26%,-13.7%)rotate(-5.98deg)scale(.765)}85.4167%{opacity:.362;filter:hue-rotate(9.7deg);transform:translate(-17.57%,-13.9%)rotate(-5.66deg)scale(.813)}87.5%{opacity:.281;filter:hue-rotate(17.9deg);transform:translate(-14.71%,-13.49%)rotate(-4.95deg)scale(.873)}89.5833%{opacity:.339;filter:hue-rotate(12.1deg);transform:translate(-11.84%,-12.52%)rotate(-3.91deg)scale(.942)}91.6667%{opacity:.514;filter:hue-rotate(-3.2deg);transform:translate(-9.1%,-9.6%)rotate(-2.59deg)scale(1.015)}93.75%{opacity:.732;filter:hue-rotate(-16deg);transform:translate(-6.55%,-3.46%)rotate(-1.11deg)scale(1.087)}95.8333%{opacity:.904;filter:hue-rotate(-16.3deg);transform:translate(-4.22%,5.31%)rotate(.46deg)scale(1.153)}97.9167%{opacity:.959;filter:hue-rotate(-3.9deg);transform:translate(-2.06%,13.84%)rotate(1.99deg)scale(1.208)}to{opacity:.874;filter:hue-rotate(11.6deg);transform:translateY(18.51%)rotate(3.39deg)scale(1.25)}}@keyframes lens-glow-drift-b{0%{opacity:.263;filter:hue-rotate(22.4deg);transform:translateY(10.78%)rotate(2.82deg)scale(1.285)}2.08333%{opacity:.184;filter:hue-rotate(3.2deg);transform:translate(-2.22%,5.41%)rotate(4.19deg)scale(1.319)}4.16667%{opacity:.206;filter:hue-rotate(-18.5deg);transform:translate(-4.54%,-.58%)rotate(4.91deg)scale(1.304)}6.25%{opacity:.323;filter:hue-rotate(-25.8deg);transform:translate(-7.06%,-4.71%)rotate(4.89deg)scale(1.243)}8.33333%{opacity:.504;filter:hue-rotate(-12.9deg);transform:translate(-9.8%,-5.35%)rotate(4.13deg)scale(1.145)}10.4167%{opacity:.699;filter:hue-rotate(10.1deg);transform:translate(-12.75%,-2.35%)rotate(2.73deg)scale(1.025)}12.5%{opacity:.857;filter:hue-rotate(25.2deg);transform:translate(-15.84%,2.92%)rotate(.92deg)scale(.901)}14.5833%{opacity:.936;filter:hue-rotate(20.5deg);transform:translate(-18.92%,8.17%)rotate(-1.03deg)scale(.792)}16.6667%{opacity:.914;filter:hue-rotate(-.1deg);transform:translate(-21.82%,11.09%)rotate(-2.82deg)scale(.715)}18.75%{opacity:.797;filter:hue-rotate(-20.7deg);transform:translate(-24.35%,10.33%)rotate(-4.19deg)scale(.681)}20.8333%{opacity:.616;filter:hue-rotate(-25.1deg);transform:translate(-26.32%,6.04%)rotate(-4.91deg)scale(.696)}22.9167%{opacity:.421;filter:hue-rotate(-9.8deg);transform:translate(-27.57%,-.25%)rotate(-4.89deg)scale(.757)}25%{opacity:.263;filter:hue-rotate(13.1deg);transform:translate(-28%,-6.22%)rotate(-4.13deg)scale(.855)}27.0833%{opacity:.184;filter:hue-rotate(25.8deg);transform:translate(-27.57%,-9.8%)rotate(-2.73deg)scale(.975)}29.1667%{opacity:.206;filter:hue-rotate(18.3deg);transform:translate(-26.32%,-9.96%)rotate(-.92deg)scale(1.099)}31.25%{opacity:.323;filter:hue-rotate(-3.5deg);transform:translate(-24.35%,-7.11%)rotate(1.03deg)scale(1.208)}33.3333%{opacity:.504;filter:hue-rotate(-22.6deg);transform:translate(-21.82%,-2.95%)rotate(2.82deg)scale(1.285)}35.4167%{opacity:.699;filter:hue-rotate(-24deg);transform:translate(-18.92%,.37%)rotate(4.19deg)scale(1.319)}37.5%{opacity:.857;filter:hue-rotate(-6.6deg);transform:translate(-15.84%,1.13%)rotate(4.91deg)scale(1.304)}39.5833%{opacity:.936;filter:hue-rotate(15.9deg);transform:translate(-12.75%,-1.14%)rotate(4.89deg)scale(1.243)}41.6667%{opacity:.914;filter:hue-rotate(26deg);transform:translate(-9.8%,-5.46%)rotate(4.13deg)scale(1.145)}43.75%{opacity:.797;filter:hue-rotate(15.7deg);transform:translate(-7.06%,-9.77%)rotate(2.73deg)scale(1.025)}45.8333%{opacity:.616;filter:hue-rotate(-6.9deg);transform:translate(-4.54%,-11.76%)rotate(.92deg)scale(.901)}47.9167%{opacity:.421;filter:hue-rotate(-24.1deg);transform:translate(-2.22%,-9.89%)rotate(-1.03deg)scale(.792)}50%{opacity:.263;filter:hue-rotate(-22.4deg);transform:translateY(-4.06%)rotate(-2.82deg)scale(.715)}52.0833%{opacity:.184;filter:hue-rotate(-3.2deg);transform:translate(2.22%,4.25%)rotate(-4.19deg)scale(.681)}54.1667%{opacity:.206;filter:hue-rotate(18.5deg);transform:translate(4.54%,12.53%)rotate(-4.91deg)scale(.696)}56.25%{opacity:.323;filter:hue-rotate(25.8deg);transform:translate(7.06%,18.14%)rotate(-4.89deg)scale(.757)}58.3333%{opacity:.504;filter:hue-rotate(12.9deg);transform:translate(9.8%,19.35%)rotate(-4.13deg)scale(.855)}60.4167%{opacity:.699;filter:hue-rotate(-10.1deg);transform:translate(12.75%,15.96%)rotate(-2.73deg)scale(.975)}62.5%{opacity:.857;filter:hue-rotate(-25.2deg);transform:translate(15.84%,9.36%)rotate(-.92deg)scale(1.099)}64.5833%{opacity:.936;filter:hue-rotate(-20.5deg);transform:translate(18.92%,1.96%)rotate(1.03deg)scale(1.208)}66.6667%{opacity:.914;filter:hue-rotate(.1deg);transform:translate(21.82%,-3.8%)rotate(2.82deg)scale(1.285)}68.75%{opacity:.797;filter:hue-rotate(20.7deg);transform:translate(24.35%,-6.39%)rotate(4.19deg)scale(1.319)}70.8333%{opacity:.616;filter:hue-rotate(25.1deg);transform:translate(26.32%,-5.71%)rotate(4.91deg)scale(1.304)}72.9167%{opacity:.421;filter:hue-rotate(9.8deg);transform:translate(27.57%,-3.06%)rotate(4.89deg)scale(1.243)}75%{opacity:.263;filter:hue-rotate(-13.1deg);transform:translate(28%,-.49%)rotate(4.13deg)scale(1.145)}77.0833%{opacity:.184;filter:hue-rotate(-25.8deg);transform:translate(27.57%,.14%)rotate(2.73deg)scale(1.025)}79.1667%{opacity:.206;filter:hue-rotate(-18.3deg);transform:translate(26.32%,-2%)rotate(.92deg)scale(.901)}81.25%{opacity:.323;filter:hue-rotate(3.5deg);transform:translate(24.35%,-6.32%)rotate(-1.03deg)scale(.792)}83.3333%{opacity:.504;filter:hue-rotate(22.6deg);transform:translate(21.82%,-11.05%)rotate(-2.82deg)scale(.715)}85.4167%{opacity:.699;filter:hue-rotate(24deg);transform:translate(18.92%,-13.97%)rotate(-4.19deg)scale(.681)}87.5%{opacity:.857;filter:hue-rotate(6.6deg);transform:translate(15.84%,-13.42%)rotate(-4.91deg)scale(.696)}89.5833%{opacity:.936;filter:hue-rotate(-15.9deg);transform:translate(12.75%,-8.99%)rotate(-4.89deg)scale(.757)}91.6667%{opacity:.914;filter:hue-rotate(-26deg);transform:translate(9.8%,-1.82%)rotate(-4.13deg)scale(.855)}93.75%{opacity:.797;filter:hue-rotate(-15.7deg);transform:translate(7.06%,5.83%)rotate(-2.73deg)scale(.975)}95.8333%{opacity:.616;filter:hue-rotate(6.9deg);transform:translate(4.54%,11.43%)rotate(-.92deg)scale(1.099)}97.9167%{opacity:.421;filter:hue-rotate(24.1deg);transform:translate(2.22%,13.19%)rotate(1.03deg)scale(1.208)}to{opacity:.263;filter:hue-rotate(22.4deg);transform:translateY(10.78%)rotate(2.82deg)scale(1.285)}}.lens-glow-base{animation:26s linear infinite lens-glow-drift-base,17s linear -9.1s infinite lens-glow-base-breathe}.lens-glow-a{animation:13s linear -3.4s infinite lens-glow-drift-a}.lens-glow-b{animation:17s linear -9.1s infinite lens-glow-drift-b}.lens-glow-green{background-image:radial-gradient(closest-side,#98d6822b 0%,#98d6821f 38%,#98d6820d 68%,#0000 100%);width:52%;height:130%;animation:17s linear -9.1s infinite lens-glow-green;position:absolute;top:-18%;left:44%}.lens-glow-a{opacity:.8;background-image:radial-gradient(closest-side,#fa9ec82b 0%,#fa9ec81f 38%,#fa9ec80d 68%,#0000 100%);width:80%;height:144%;top:-22%;left:-6%}.lens-glow-b{opacity:.7;background-image:radial-gradient(closest-side,#99e1ff33 0%,#99e1ff24 38%,#99e1ff0f 68%,#0000 100%);width:76%;height:156%;top:-28%;left:26%}.lens-clear{z-index:5;opacity:0;transition:opacity .2s cubic-bezier(.16,1,.3,1),background-color .3s cubic-bezier(.16,1,.3,1)}.lens-clear[data-active]{opacity:1}.lens-light{--lens-light-radius:220px;--lens-light-alpha:.7;width:calc(var(--lens-light-radius) * 2);height:calc(var(--lens-light-radius) * 2);margin:calc(var(--lens-light-radius) * -1);opacity:0;background:radial-gradient(closest-side,#fff 0%,#ffffffeb 25%,#ffffffb8 50%,#ffffff70 72%,#ffffff29 88%,#fff0 100%);border-radius:50%;transition:opacity .2s cubic-bezier(.16,1,.3,1),scale .34s cubic-bezier(.33,1,.68,1);position:absolute;top:0;left:0;scale:1 .43}[data-lens-open] .lens-light{scale:1 .7}[data-lens-lit] .lens-light{opacity:var(--lens-light-alpha)}[data-lens-lit] [aria-current=page] .lens-light{opacity:0}@keyframes project-detail-rise{0%{transform:translateY(2.5rem)}to{transform:none}}@keyframes project-detail-fade{0%{opacity:.5}to{opacity:1}}.project-detail-rise{animation:1s cubic-bezier(.16,1,.3,1) both project-detail-rise}.project-detail-fade{animation:.4s linear both project-detail-fade}.project-detail-toc-fade{animation:.4s linear project-detail-fade}.project-toc-link-viewport{-webkit-mask-image:linear-gradient(to right, #000 calc(100% - min(10px, var(--project-toc-shift,0px))), transparent);mask-image:linear-gradient(to right, #000 calc(100% - min(10px, var(--project-toc-shift,0px))), transparent)}.project-toc-link-track{transition:transform .16s ease-out;transform:translate(0)}.project-toc-link:hover .project-toc-link-viewport,.project-toc-link:focus-visible .project-toc-link-viewport{-webkit-mask-image:linear-gradient(to right, transparent, #000 min(10px, var(--project-toc-shift,0px)));mask-image:linear-gradient(to right, transparent, #000 min(10px, var(--project-toc-shift,0px)))}.project-toc-link:hover .project-toc-link-track,.project-toc-link:focus-visible .project-toc-link-track{transform:translateX(calc(var(--project-toc-shift,0px) * -1));transition:transform var(--project-toc-scroll,0s) linear}.project-detail{--project-topbar-height:3.5rem}.project-topbar{top:0;left:0;right:var(--content-scrollbar-width,0px);height:var(--project-topbar-height);pointer-events:none;background-color:#f5f5f500;grid-template-columns:minmax(max-content,calc(50% - 26.5rem)) 1fr;align-items:center;display:grid;position:absolute}.project-topbar[data-docked]{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);pointer-events:auto;background-color:#f5f5f5e6;box-shadow:0 1px #0000000f}.project-topbar-lead-cell{min-width:0}.project-topbar-lead{pointer-events:auto;align-items:center;width:max-content;padding-left:.75rem;display:flex}.project-topbar-back{color:#fff;border-radius:6px;align-items:center;padding-right:.75rem;font-size:.75rem;font-weight:700;line-height:1;transition:background-color .2s linear;display:flex}.project-topbar-back-icon{justify-content:center;align-items:center;width:2rem;height:2rem;display:flex}.project-topbar[data-on-surface] .project-topbar-back{color:#464646}.project-topbar-lead-separator{visibility:hidden;align-items:center;margin-left:.25rem;margin-right:1rem;display:flex}.project-topbar[data-docked]:not([data-aligned]) .project-topbar-lead-separator{visibility:visible}.project-topbar-title{color:#464646;text-overflow:ellipsis;white-space:nowrap;visibility:hidden;border-radius:6px;justify-self:start;min-width:0;max-width:100%;margin-inline:-.75rem;padding:.625rem .75rem;font-size:.75rem;font-weight:700;line-height:1;transition:background-color .2s linear;overflow:hidden}.project-topbar[data-docked] .project-topbar-title{visibility:visible}.project-topbar-chevron{opacity:.3;flex:none}@media (hover:hover){.project-topbar-back:hover{background-color:#0003}.project-topbar[data-on-surface] .project-topbar-back:hover,.project-topbar-title:hover{background-color:#0000000f}}.project-topbar-back:focus-visible{background-color:#0003}.project-topbar[data-on-surface] .project-topbar-back:focus-visible,.project-topbar-title:focus-visible{background-color:#0000000f}@media not (min-width:40rem){.project-detail{--project-topbar-height:3rem}.project-topbar-lead{padding-left:.5rem}}[data-highlight-start],[data-highlight-end]{height:0;scroll-margin-top:calc(var(--project-topbar-height,0px) + 1rem);display:block}[data-highlight-locator]{margin-block:0 1.5rem;margin-inline:calc(-1 * var(--highlight-card-pad-inline));border-bottom:1px solid var(--border);padding:0 var(--highlight-card-pad-inline) 1.25rem;color:var(--foreground);flex-direction:column;gap:0;font-size:.875rem;line-height:1.5rem;display:none}[data-highlight-start]:target+[data-highlight-locator],[data-highlight-locator][data-highlight-active]{display:flex}[data-highlight-lens]{color:color-mix(in oklab, var(--foreground) 55%, transparent)}[data-highlight-card-title]{font-weight:600}[data-highlight-endnote]{margin-block:1.5rem 0;margin-inline:calc(-1 * var(--highlight-card-pad-inline));border-top:1px solid var(--border);padding:1.25rem var(--highlight-card-pad-inline) 0;color:color-mix(in oklab, var(--foreground) 55%, transparent);font-size:.875rem;line-height:1.5rem;display:none}[data-highlight-range]:has(>[data-highlight-start]:target,>[data-highlight-locator][data-highlight-active])>[data-highlight-endnote]{display:block}[data-highlight-range]{--highlight-card-pad:1.25rem;--highlight-card-pad-inline:calc(1.5rem - 1px);display:flow-root}[data-highlight-range]:has(>[data-highlight-start]:target,>[data-highlight-locator][data-highlight-active]){border:1px solid var(--border);border-radius:var(--radius-2xl);background-color:var(--card);padding-block:var(--highlight-card-pad);padding-inline:var(--highlight-card-pad-inline);background-image:radial-gradient(30rem 8.5rem at 0 0,#8b5cf61a,#0000 72%),radial-gradient(26rem 7.25rem at 42% 0,#768cee16,#0000 74%),radial-gradient(30rem 8.5rem at 0 100%,#8b5cf61a,#0000 72%),radial-gradient(26rem 7.25rem at 42% 100%,#768cee16,#0000 74%);background-repeat:no-repeat;margin-block:3rem;margin-inline:-1.5rem}[data-highlight-range]:has(>[data-highlight-start]:target,>[data-highlight-locator][data-highlight-active])>[data-highlight-start]{scroll-margin-top:calc(var(--project-topbar-height,0px) + 1rem + var(--highlight-card-pad))}@media not (min-width:40rem){[data-highlight-range]{--highlight-card-pad:1rem;--highlight-card-pad-inline:calc(1rem - 1px)}[data-highlight-range]:has(>[data-highlight-start]:target,>[data-highlight-locator][data-highlight-active]){margin-block:2rem;margin-inline:-1rem}}@keyframes project-detail-hero-zoom{0%{transform:scale(1.05)}to{transform:none}}.project-detail-hero-zoom{animation:1s cubic-bezier(.16,1,.3,1) both project-detail-hero-zoom}
