@font-face{font-family:Geist;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fef07dbb0973bf53-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:400;font-display:swap;src:url(../media/8a480f0b521d4e75-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:400;font-display:swap;src:url(../media/53b9e256198e5412-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:400;font-display:swap;src:url(../media/7178b3e590c64307-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:400;font-display:swap;src:url(../media/caa3a2e1cccd8315-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;font-style:normal;font-weight:500;font-display:swap;src:url(../media/fef07dbb0973bf53-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:500;font-display:swap;src:url(../media/8a480f0b521d4e75-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:500;font-display:swap;src:url(../media/53b9e256198e5412-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:500;font-display:swap;src:url(../media/7178b3e590c64307-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:500;font-display:swap;src:url(../media/caa3a2e1cccd8315-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;font-style:normal;font-weight:600;font-display:swap;src:url(../media/fef07dbb0973bf53-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:600;font-display:swap;src:url(../media/8a480f0b521d4e75-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:600;font-display:swap;src:url(../media/53b9e256198e5412-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:600;font-display:swap;src:url(../media/7178b3e590c64307-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:600;font-display:swap;src:url(../media/caa3a2e1cccd8315-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%}.geist_efc3b6e2-module__y4ZC5q__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_efc3b6e2-module__y4ZC5q__variable{--font-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5ce348bf30bf5439-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:400;font-display:swap;src:url(../media/4fa387ec64143e14-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:400;font-display:swap;src:url(../media/6306c77e7c8268e4-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:400;font-display:swap;src:url(../media/7d817b4c03b0c5f1-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:400;font-display:swap;src:url(../media/bbc41e54d2fcbd21-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:400;font-display:swap;src:url(../media/797e433ab948586e-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;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5ce348bf30bf5439-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:500;font-display:swap;src:url(../media/4fa387ec64143e14-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:500;font-display:swap;src:url(../media/6306c77e7c8268e4-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:500;font-display:swap;src:url(../media/7d817b4c03b0c5f1-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:500;font-display:swap;src:url(../media/bbc41e54d2fcbd21-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:500;font-display:swap;src:url(../media/797e433ab948586e-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%}.geist_mono_ded57c53-module__EzT3sW__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_ded57c53-module__EzT3sW__variable{--font-mono:"Geist Mono", "Geist Mono Fallback"}
:root{--bg:#0b0c0e;--stage:#101215;--raised:#16181c;--raised-2:#1c1f24;--line:#24272d;--line-2:#343840;--ink:#eceef1;--ink-2:#9a9fa8;--ink-3:#636871;--accent:#7b93ff;--accent-soft:#7b93ff29;--pos:#4cbb8f;--neg:#f0646a;--warn:#e3a648;--nav:#0b0c0ec7;--shadow:0 0 0 1px var(--line), 0 16px 40px -20px #000000b3;--sans:var(--font-sans), ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono:var(--font-mono), ui-monospace, "SF Mono", Menlo, Consolas, monospace;--ease:cubic-bezier(.2, .7, .2, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--bg:#f9f9fa;--stage:#f0f1f3;--raised:#fff;--raised-2:#f4f5f7;--line:#e2e4e8;--line-2:#cfd2d8;--ink:#121418;--ink-2:#5a606a;--ink-3:#8c919a;--accent:#3452e1;--accent-soft:#3452e11a;--pos:#16855a;--neg:#d1373e;--warn:#b07210;--nav:#f9f9facc;--shadow:0 0 0 1px var(--line), 0 1px 2px #1012180a, 0 16px 40px -20px #10121838;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}:root[data-theme=light]{--bg:#f9f9fa;--stage:#f0f1f3;--raised:#fff;--raised-2:#f4f5f7;--line:#e2e4e8;--line-2:#cfd2d8;--ink:#121418;--ink-2:#5a606a;--ink-3:#8c919a;--accent:#3452e1;--accent-soft:#3452e11a;--pos:#16855a;--neg:#d1373e;--warn:#b07210;--nav:#f9f9facc;--shadow:0 0 0 1px var(--line), 0 1px 2px #1012180a, 0 16px 40px -20px #10121838;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font:400 16px/1.6 var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;overflow-x:clip}::selection{background:var(--accent-soft);color:var(--ink)}a{color:inherit}button{font:inherit;color:inherit}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.num,.mono{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.wrap{width:100%;max-width:912px;margin:0 auto;padding-inline:16px}@media (min-width:640px){.wrap{padding-inline:32px}}.icon-btn{width:32px;height:32px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;transition:color .15s,background .15s;display:grid}.icon-btn:hover{color:var(--ink);background:var(--raised-2)}.icon-btn svg{width:16px;height:16px}.nav{top:env(safe-area-inset-top,0px);z-index:20;background:var(--nav);-webkit-backdrop-filter:saturate(1.4)blur(14px);backdrop-filter:saturate(1.4)blur(14px);transition:border-color .2s var(--ease);border-bottom:1px solid #0000;position:sticky}.nav[data-stuck]{border-bottom-color:var(--line)}.nav .wrap{justify-content:space-between;align-items:center;gap:16px;height:56px;display:flex}.brand{letter-spacing:-.01em;white-space:nowrap;font-weight:500;text-decoration:none}.nav-links{align-items:center;gap:4px;display:flex}.nav-links a{color:var(--ink-2);border-radius:8px;padding:6px 10px;font-size:14px;text-decoration:none;transition:color .15s,background .15s}.nav-links a:hover{color:var(--ink);background:var(--raised-2)}.nav-links a[aria-current=true]{color:var(--ink)}.theme-dark-icon{display:none}@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .theme-dark-icon{display:block}:root:not([data-theme=dark]) .theme-light-icon{display:none}}:root[data-theme=light] .theme-dark-icon{display:block}:root[data-theme=light] .theme-light-icon{display:none}.intro{padding-block:72px 24px}@media (min-width:640px){.intro{padding-block:112px 32px}}.lede{letter-spacing:-.025em;text-wrap:pretty;max-width:720px;margin:0;font-size:24px;font-weight:500;line-height:30px}@media (min-width:640px){.lede{letter-spacing:-.03em;font-size:34px;line-height:41px}}.lede span{color:var(--ink-2)}.lede span:first-child{color:var(--ink)}.lede span+span:before{content:" "}.elsewhere{flex-wrap:wrap;gap:4px 20px;margin:28px 0 0;padding:0;font-size:14px;list-style:none;display:flex}.elsewhere a,.elsewhere button{color:var(--ink-2);align-items:center;gap:4px;text-decoration:none;transition:color .15s;display:inline-flex}.elsewhere a:hover,.elsewhere button:hover{color:var(--ink)}.elsewhere li{position:relative}.email-copy{font:inherit;cursor:pointer;background:0 0;border:0;margin:0;padding:0}.email-toast{pointer-events:none;color:var(--ink-3);white-space:nowrap;margin-bottom:3px;font-size:11px;line-height:14px;position:absolute;bottom:100%;left:0}.email-toast .flutter{animation:flutter 1.1s var(--ease) both;display:inline-block}.email-toast .held{color:var(--ink-2);pointer-events:auto;-webkit-user-select:all;user-select:all}@keyframes flutter{0%{opacity:0;transform:translateY(5px)}20%{opacity:1;transform:translate(0, 0) rotate(calc(var(--rot,7deg) * -.2))}to{opacity:0;transform:translate(var(--dx,9px), var(--dy,-15px)) rotate(var(--rot,7deg))}}.elsewhere svg{opacity:.6;width:10px;height:10px}.section-label{color:var(--ink-3);margin:0 0 12px;font-size:13px;font-weight:500}.index{padding-block:56px 0;scroll-margin-top:72px}.index ol{margin:0 -10px;padding:0;list-style:none}.index a{border-radius:10px;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:2px 16px;padding:12px 10px;text-decoration:none;transition:background .15s;display:grid}.index a:hover{background:var(--raised-2)}.index strong{font-weight:500}.index .desc{color:var(--ink-2);grid-column:1;font-size:14px;line-height:20px}.index .yr{color:var(--ink-3);grid-area:1/2;font-size:13px}@media (min-width:640px){.index a{grid-template-columns:210px minmax(0,1fr) auto}.index .desc{grid-area:1/2;font-size:15px}.index .yr{grid-column:3}}.project{padding-block:96px 0;scroll-margin-top:40px}@media (min-width:640px){.project{padding-block:144px 0}}.p-head{grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:4px 16px;margin-bottom:24px;display:grid}.p-head h2{letter-spacing:-.02em;margin:0;font-size:22px;font-weight:500;line-height:28px}.p-head .yr{color:var(--ink-3);font-size:13px}.p-head p{color:var(--ink-2);grid-column:1/-1;margin:0}.stage{background:var(--stage);box-shadow:inset 0 0 0 1px var(--line);border-radius:20px;place-items:center;padding:56px 16px 32px;display:grid;position:relative;overflow:hidden}@media (min-width:640px){.stage{padding:72px 48px 56px}}.stage-wide{--stage-w:min(1240px, calc(100vw - 32px));width:var(--stage-w);margin-inline:calc((100% - var(--stage-w)) / 2);padding:52px 12px 12px}@media (min-width:640px){.stage-wide{padding:60px 24px 24px}}.show-mobile{display:none}@media (max-width:767px){.hide-mobile{display:none!important}.show-mobile{display:block}}.stage+.gallery-gap{margin-top:48px}.stage-note{color:var(--ink-3);letter-spacing:.01em;justify-content:space-between;gap:12px;font-size:11px;line-height:16px;display:flex;position:absolute;top:18px;left:20px;right:20px}.stage-note .live{align-items:center;gap:6px;display:inline-flex}.stage-note .live:before{content:"";background:var(--pos);width:6px;height:6px;box-shadow:0 0 0 3px color-mix(in srgb, var(--pos) 18%, transparent);border-radius:50%}.stage-note .hint{text-align:right}@media (max-width:479px){.stage-note .hint{display:none}}.p-body{gap:32px;margin-top:40px;display:grid}@media (min-width:820px){.p-body{grid-template-columns:200px minmax(0,1fr);gap:48px}}.spec{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:16px 24px;margin:0;display:grid}@media (min-width:820px){.spec{grid-template-columns:1fr}}.spec dt{color:var(--ink-3);font-size:13px}.spec dd{color:var(--ink);margin:2px 0 0;font-size:14px;line-height:20px}.prose{min-width:0;max-width:620px}.prose p{color:var(--ink-2);margin:0 0 16px}.prose>p:first-child{margin-top:0}.decisions{gap:20px;margin:28px 0 0;padding:0;list-style:none;display:grid}.decisions h3{letter-spacing:-.01em;margin:0 0 4px;font-size:16px;font-weight:500;line-height:24px}.decisions p{margin:0}.outcomes{border-top:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:36px 0 0;padding:20px 0 0;display:grid}.outcomes>div{flex-direction:column-reverse;justify-content:flex-end;display:flex}.outcomes dd{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.03em;color:var(--ink);margin:0;font-size:22px;line-height:28px}.outcomes dt{color:var(--ink-2);margin-top:4px;font-size:13px;line-height:18px}@media (max-width:479px){.outcomes dd{font-size:18px}}.about{padding-block:144px 0;scroll-margin-top:40px}.about-grid{gap:32px;display:grid}@media (min-width:820px){.about-grid{grid-template-columns:200px minmax(0,1fr);gap:48px}}.about h2{letter-spacing:-.02em;margin:0;font-size:22px;font-weight:500;line-height:28px}.xp-label{color:var(--ink-3);margin:40px 0 8px;scroll-margin-top:80px;font-size:13px;font-weight:500}.xp{margin:0;padding:0;list-style:none}.xp li{border-top:1px solid var(--line);align-items:center;gap:14px;padding:14px 0;display:flex}.xp-logo{background:var(--raised-2);width:32px;height:32px;color:var(--ink-3);box-shadow:0 0 0 1px var(--line);border-radius:8px;flex:none;place-items:center;display:grid;overflow:hidden}.xp-logo img{object-fit:cover;width:100%;height:100%;display:block}.xp-logo svg{width:15px;height:15px}.xp li:last-child{border-bottom:1px solid var(--line)}.xp div{flex-direction:column;flex:1;min-width:0;display:flex}.xp strong{color:var(--ink);font-size:15px;font-weight:500;line-height:22px}.xp div span{color:var(--ink-2);font-size:14px;line-height:20px}.xp>li>.num{color:var(--ink-3);flex:none;align-self:baseline;padding-top:1px;font-size:13px}.contact{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:40px;scroll-margin-top:120px;display:flex}.email{color:var(--ink);border-bottom:1px solid var(--line-2);padding-bottom:1px;font-size:15px;text-decoration:none;transition:border-color .15s}.email:hover{border-color:var(--ink-2)}.copy{color:var(--ink-2);background:var(--raised-2);cursor:pointer;box-shadow:inset 0 0 0 1px var(--line);border:0;border-radius:999px;padding:4px 10px;font-size:13px;transition:color .15s}.copy:hover{color:var(--ink)}.foot{padding-block:120px 40px}.foot .wrap{color:var(--ink-3);flex-wrap:wrap;justify-content:space-between;gap:8px 24px;font-size:13px;display:flex}@media (prefers-reduced-motion:no-preference){.rise{animation:rise .7s var(--ease) both;animation-delay:calc(var(--i,0) * 70ms + 60ms)}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}}@keyframes flash{0%{color:var(--accent)}}.chg{animation:flash 1.1s var(--ease)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:0s!important}.email-toast .flutter{animation:1.1s both toast-fade}@keyframes toast-fade{0%,75%{opacity:1}to{opacity:0}}}
