@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4f6667dd39116621-s.00az9qtie3ho1.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/07935285219a259d-s.3j-a226dh71aj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/f58031ded4338640-s.2gwoz23eiro2t.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/77814b00d5ca94a4-s.0i3h3th1vs4m7.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/605ce01b664af129-s.p.0zr6hhvz-h9nw.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}._4GvYZa_className{font-family:Geist,Geist Fallback;font-style:normal}._4GvYZa_variable{--font-summit-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/b0c6b664fd57c2c6-s.27spqqad3wyeo.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6e342921ee4dcd9d-s.3f4zuumv8svu0.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bb852295097cd96-s.34r5yzckw0h2s.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9eb5a876700c0028-s.2jyz_zw3a8jit.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2a04751c893bf294-s.30bdpjkrtcces.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/07a39a8a4660cc7c-s.p.1v5bejj26fx9h.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.VNvFVq_className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.VNvFVq_variable{--font-summit-mono:"Geist Mono", "Geist Mono Fallback"}
.summit{--summit-ink:#131209;--summit-ink-muted:#4a463d;--summit-sky:#b4b2aa;--summit-moss-sky:#faf5ec;--summit-night:#131209;--summit-cream:#f3ede4;--summit-cream-muted:#a39c90;--summit-line:#f3ede41a;--summit-copper:#d9774b;--summit-ember:#8f3a1c;--summit-ease:cubic-bezier(.32, .72, 0, 1);--summit-panel:#1312098c;--summit-panel-line:#ffffff26;--summit-ok:#6ee7b7;--summit-warn:#fde68a;--summit-bad:#fca5a5;font-family:var(--font-summit-sans), system-ui, sans-serif;color:var(--summit-cream);background:var(--summit-night)}.summit-light{--summit-cream:#131209;--summit-cream-muted:#5a554b;--summit-line:#1312091f;--summit-panel:#ffffff9e;--summit-panel-line:#fffc;--summit-ok:#047857;--summit-warn:#92400e;--summit-bad:#b91c1c}@media (min-width:1024px){.summit-light-lg{--summit-cream:#131209;--summit-cream-muted:#5a554b;--summit-line:#1312091f;--summit-panel:#ffffff9e;--summit-panel-line:#fffc}}.summit-mono{font-family:var(--font-summit-mono), ui-monospace, monospace}.summit-display{letter-spacing:-.045em;font-weight:600}.summit-ink-fade{-webkit-mask-image:linear-gradient(90deg,#000 0%,#0000009e 100%);mask-image:linear-gradient(90deg,#000 0%,#0000009e 100%)}@keyframes summit-rise{0%{opacity:0;filter:blur(12px);transform:translateY(64px)}to{opacity:1;filter:blur();transform:translateY(0)}}.summit-rise{animation:summit-rise 1.1s var(--summit-ease) both}@keyframes summit-settle{0%{opacity:0;transform:scale(1.06)translateY(-24px)}to{opacity:1;transform:none}}.summit-settle{animation:summit-settle 2.4s var(--summit-ease) both}@keyframes summit-ping{75%,to{opacity:0;transform:scale(2.6)}}.summit-ping{animation:summit-ping 2s var(--summit-ease) infinite}@keyframes summit-caret{50%{opacity:0}}.summit-caret{animation:1s step-end infinite summit-caret}@keyframes summit-swap{0%{opacity:0;filter:blur(8px);transform:translateY(16px)}to{opacity:1;filter:blur();transform:none}}.summit-swap{animation:summit-swap .8s var(--summit-ease) both}@keyframes summit-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.summit-progress{transform-origin:0;animation-name:summit-progress;animation-timing-function:linear;animation-fill-mode:both}@media (prefers-reduced-motion:reduce){.summit-rise,.summit-settle,.summit-caret,.summit-swap,.summit-progress,.summit-ping{animation:none}}
@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4f6667dd39116621-s.00az9qtie3ho1.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/07935285219a259d-s.3j-a226dh71aj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/f58031ded4338640-s.2gwoz23eiro2t.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/77814b00d5ca94a4-s.0i3h3th1vs4m7.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/605ce01b664af129-s.p.0zr6hhvz-h9nw.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.gq_bMG_className{font-family:Geist,Geist Fallback;font-style:normal}.gq_bMG_variable{--font-margin-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/b0c6b664fd57c2c6-s.27spqqad3wyeo.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6e342921ee4dcd9d-s.3f4zuumv8svu0.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bb852295097cd96-s.34r5yzckw0h2s.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9eb5a876700c0028-s.2jyz_zw3a8jit.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2a04751c893bf294-s.30bdpjkrtcces.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/07a39a8a4660cc7c-s.p.1v5bejj26fx9h.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.RH1lgq_className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.RH1lgq_variable{--font-margin-mono:"Geist Mono", "Geist Mono Fallback"}
.margin{--margin-cell:40px;--margin-width:720px;--margin-bg:#f8f7f2;--margin-fg:#20382d;--margin-secondary:#647168;--margin-card:#fffef9;--margin-muted:#eaece3;--margin-line:#d9dfd4;--margin-grid:#304d370b;--margin-accent:#467258;--margin-stamp:#dce8ce;--margin-ease:cubic-bezier(.32, .72, 0, 1);font-family:var(--font-margin-sans), system-ui, sans-serif;color:var(--margin-fg);background-color:var(--margin-bg);transition:background-color .4s var(--margin-ease), color .4s var(--margin-ease)}.margin[data-theme=dark]{--margin-bg:#181818;--margin-fg:#f3f4f3;--margin-secondary:#a7aca9;--margin-card:#1f1f1f;--margin-muted:#272727;--margin-line:#ffffff1a;--margin-grid:#ffffff09;--margin-accent:#b7d3a9;--margin-stamp:#304a39}@media (max-width:639px){.margin{--margin-cell:32px}}.margin-mono{font-family:var(--font-margin-mono), ui-monospace, monospace}.margin-grid{background-image:linear-gradient(var(--margin-grid) 1px, transparent 1px), linear-gradient(90deg, var(--margin-grid) 1px, transparent 1px);background-position:top;background-size:var(--margin-cell) var(--margin-cell)}.margin-corners{position:relative}.margin-corners:before,.margin-corners:after{content:"";pointer-events:none;z-index:2;border:1px solid color-mix(in srgb, var(--margin-fg) 80%, transparent);width:32px;height:32px;position:absolute}.margin-corners:before{border-bottom-color:#0000;border-right-color:#0000;top:-12px;left:-20px}.margin-corners:after{border-top-color:#0000;border-left-color:#0000;bottom:-32px;right:-20px}@media (max-width:639px){.margin-corners:before,.margin-corners:after{display:none}}.margin-glass{background:color-mix(in srgb, var(--margin-bg) 75%, transparent);-webkit-backdrop-filter:blur(16px)saturate(1.6)}@keyframes margin-rise{0%{opacity:0;filter:blur(6px);transform:translateY(16px)}to{opacity:1;filter:blur();transform:none}}.margin-rise{animation:margin-rise .9s var(--margin-ease) both}@keyframes margin-ping{75%,to{opacity:0;transform:scale(2.4)}}.margin-ping{animation:margin-ping 2s var(--margin-ease) infinite}@media (prefers-reduced-motion:reduce){.margin,.margin-rise,.margin-ping{transition:none;animation:none}}.margin .margin-container{width:calc(100% - 40px);max-width:var(--margin-width);margin-inline:auto}.margin :where(a,button,[tabindex="0"]){transition-timing-function:var(--margin-ease)}.margin :where(a,button,[tabindex="0"]):focus-visible{outline:2px solid var(--margin-fg);outline-offset:4px}.margin :where(h1,h2,h3){text-wrap:balance}.margin :where(p,li){text-wrap:pretty}.margin :where(a,button):active{transform:translateY(1px)}.margin[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-reduced-motion:reduce){.margin *,.margin :before,.margin :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (min-width:900px){.margin main{background-image:linear-gradient(var(--margin-line), var(--margin-line));background-position:calc(50% - 392px) 40px;background-repeat:no-repeat;background-size:1px calc(100% - 40px)}}.margin .margin-project-cover>div{inset:24px 24px 0}.margin .margin-project-index{border-radius:12px}.margin .margin-project-index:hover{border-color:var(--margin-accent)}.margin .margin-project-index .margin-project-cover>div{width:280px;inset:24px auto -40px 16px;transform:rotate(-5deg)}
@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4f6667dd39116621-s.00az9qtie3ho1.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/07935285219a259d-s.3j-a226dh71aj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/f58031ded4338640-s.2gwoz23eiro2t.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/77814b00d5ca94a4-s.0i3h3th1vs4m7.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/605ce01b664af129-s.p.0zr6hhvz-h9nw.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.XfyrBa_className{font-family:Geist,Geist Fallback;font-style:normal}.XfyrBa_variable{--font-cove-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(../media/125b6750c58ce347-s.1wwzpfhzaj2r0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(../media/d902bc2bfdd0a4cb-s.p.2rlzm4mj5kw8e.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Serif Fallback;src:local(Times New Roman);ascent-override:117.94%;descent-override:36.93%;line-gap-override:0.0%;size-adjust:83.94%}.qQ_DSq_className{font-family:Instrument Serif,Instrument Serif Fallback;font-style:normal;font-weight:400}.qQ_DSq_variable{--font-cove-display:"Instrument Serif", "Instrument Serif Fallback"}
.cove{--cove-ink:#0a0a0a;--cove-muted:#5c5c5c;--cove-line:#0a0a0a14;--cove-surface:#fff;--cove-sea:#0f8f8a;--cove-ease:cubic-bezier(.32, .72, 0, 1);font-family:var(--font-cove-sans), system-ui, sans-serif;color:var(--cove-ink);background:var(--cove-surface)}.cove-display{font-family:var(--font-cove-display), Georgia, serif;letter-spacing:-.02em;font-style:normal;font-weight:400}.cove-ink-fade{-webkit-mask-image:linear-gradient(90deg,#000 0%,#0009 100%);mask-image:linear-gradient(90deg,#000 0%,#0009 100%)}.cove-expand [class*="font-size:var(--se-title-size)"]{font-family:var(--font-cove-display), Georgia, serif;letter-spacing:-.02em;color:var(--cove-ink);text-shadow:none;font-weight:400}.cove-wordmark img{object-position:50% 80%}@media (max-width:639px){.cove-wordmark img{transform-origin:50% 80%;transform:scale(2.2)}}@keyframes cove-rise{0%{opacity:0;filter:blur(12px);transform:translateY(64px)}to{opacity:1;filter:blur();transform:translateY(0)}}.cove-rise{animation:cove-rise 1.1s var(--cove-ease) both}@keyframes cove-swap{0%{opacity:0;filter:blur(8px);transform:translateY(16px)scale(.98)}to{opacity:1;filter:blur();transform:none}}.cove-swap{animation:cove-swap .7s var(--cove-ease) both}@keyframes cove-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.cove-progress{transform-origin:0;animation-name:cove-progress;animation-timing-function:linear;animation-fill-mode:both}@keyframes cove-caret{50%{opacity:0}}.cove-caret{animation:1s step-end infinite cove-caret}@media (prefers-reduced-motion:reduce){.cove-rise,.cove-caret,.cove-swap,.cove-progress{animation:none}}
