@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.31988l_ccedte.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/4fa387ec64143e14-s.2tuy5pz7dlieh.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/6306c77e7c8268e4-s.2dbetqa9o8jxf.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/7d817b4c03b0c5f1-s.1uyisp29ctx0d.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/bbc41e54d2fcbd21-s.1rgnod-3esatf.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/797e433ab948586e-s.p.0r6juujl39pe6.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%}.nw7kYW_className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.nw7kYW_variable{--font-mono:"Geist Mono", "Geist Mono Fallback"}
@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.3p2_lha1f2xer.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/8a480f0b521d4e75-s.1qq4vpdcun5oj.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/53b9e256198e5412-s.390ncx5urfkfu.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/7178b3e590c64307-s.21jp631_3pja2.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/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.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%}.BboVrW_className{font-family:Geist,Geist Fallback;font-style:normal}.BboVrW_variable{--font-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Gochi Hand;font-style:normal;font-weight:400;font-display:swap;src:url(../media/bb80282eab4f8549-s.p.3rkrels9g7w9t.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:Gochi Hand Fallback;src:local(Arial);ascent-override:82.14%;descent-override:43.44%;line-gap-override:0.0%;size-adjust:93.87%}.ZLqhva_className{font-family:Gochi Hand,Gochi Hand Fallback;font-style:normal;font-weight:400}.ZLqhva_variable{--font-serif:"Gochi Hand", "Gochi Hand Fallback"}
:root{--bg:#fff;--ink:#0a0a0a;--muted:#6b6b6b;--line:#0a0a0a24;--pad:clamp(16px, 2vw, 30px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#000;--ink:#f4f4f2;--muted:#8f8f8f;--line:#ffffff2e;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{background:var(--bg)}body{background:var(--bg);color:var(--ink);font-family:var(--font-mono), ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;-webkit-font-smoothing:antialiased;margin:0;font-size:13px;line-height:1.5;transition:background-color .25s,color .25s}button,input,textarea{font-family:inherit}a{color:inherit}h1,h2,h3,p{margin:0}ul{margin:0;padding:0;list-style:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.container{padding-inline:var(--pad)}.label{color:var(--muted);font-size:12px}.stage{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.stage-full{position:absolute;inset:0}.screen{height:100dvh;position:relative;overflow:hidden}.below{padding:72px 0 calc(40px + env(safe-area-inset-bottom));justify-items:center;gap:88px;display:grid}.stage-hero{width:100%;height:100%;position:relative}.stage canvas{width:100%;height:100%;display:block}.noscript{place-items:center;margin:0;font-size:12vw;font-weight:900;display:grid;position:fixed;inset:0}.nav{z-index:3;height:80px;padding:0 var(--pad);pointer-events:none;align-items:center;gap:28px;font-size:14px;display:flex;position:absolute;top:0;left:0;right:0}.nav a,.nav button{pointer-events:auto}.nav a{color:var(--ink);border-bottom:1px solid #0000;text-decoration:none;transition:border-color .15s}.nav-links{gap:24px;display:flex}@media (hover:hover){.nav-links a:hover{border-color:currentColor;outline:none}}.nav-links a:focus-visible{border-color:currentColor;outline:none}.nav .nav-avatar{background:var(--line);cursor:pointer;border:0;border-radius:50%;flex:none;width:40px;height:40px;padding:0;display:block;position:relative;overflow:hidden}.nav-avatar img{object-fit:cover;width:100%;height:100%;transition:opacity .35s;position:absolute;inset:0}.nav-logo{place-items:center;display:inline-grid;border-bottom:0!important}.nav-actions{align-items:center;gap:6px;margin-left:auto;display:flex}.nav-divider{background:var(--ink);opacity:.25;width:1px;height:14px;margin:0 4px}.icon-btn{width:34px;height:34px;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;padding:0;transition:background-color .15s;display:inline-grid}@media (hover:hover){.icon-btn:hover{background:var(--line);outline:none}}.icon-btn:focus-visible{background:var(--line);outline:none}.nav a.icon-btn{border-bottom:0}.footer{z-index:2;padding:36px var(--pad) calc(36px + env(safe-area-inset-bottom));color:var(--muted);pointer-events:none;justify-content:space-between;align-items:center;gap:16px;font-size:14px;line-height:1;display:flex;position:absolute;bottom:0;left:0;right:0}.footer-btn{color:inherit;font:inherit;cursor:pointer;pointer-events:auto;background:0 0;border:0;border-bottom:1px solid #0000;padding:0;line-height:1;transition:color .15s,border-color .15s}@media (hover:hover){.footer-btn:hover{color:var(--ink);border-color:currentColor;outline:none}}.footer-btn:focus-visible{color:var(--ink);border-color:currentColor;outline:none}.info{z-index:2;opacity:0;text-align:center;width:min(80vw,520px);font-family:var(--font-mono), ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;letter-spacing:0;color:var(--muted);pointer-events:none;font-size:14px;line-height:1.6;transition:opacity .35s .1s,transform .5s cubic-bezier(.2,.9,.3,1.2) .1s;position:absolute;top:50%;left:50%;transform:translate(-50%,-48%)scale(.96)}.info p+p{color:var(--muted);margin-top:1em}.info a{color:var(--ink);text-underline-offset:3px;pointer-events:auto;text-decoration:underline;text-decoration-thickness:1px;transition:opacity .15s}@media (hover:hover){.info a:hover{opacity:.6;outline:none}}.info a:focus-visible{opacity:.6;outline:none}.info-open{opacity:1;transform:translate(-50%,-50%)scale(1)}.footer a{color:inherit;pointer-events:auto;border-bottom:1px solid #0000;text-decoration:none;transition:color .15s,border-color .15s}@media (hover:hover){.footer a:hover{color:var(--ink);border-color:currentColor;outline:none}}.footer a:focus-visible{color:var(--ink);border-color:currentColor;outline:none}.hint{left:50%;bottom:calc(37px + env(safe-area-inset-bottom));text-transform:uppercase;opacity:.7;white-space:nowrap;flex-direction:column;align-items:center;gap:5px;font-size:12px;display:flex;position:absolute;transform:translate(-50%)}@media (max-width:520px){.hint{display:none}}.page{min-height:100dvh}.hero{height:clamp(380px,42vw,640px);margin-top:80px}@media (max-width:700px){.hero{height:108vw;margin-top:72px}}.intro{border-bottom:1px solid var(--line);margin-top:8px;margin-inline:var(--pad);padding-bottom:28px;flex-direction:column;gap:2px;padding-inline:0;font-size:12px;display:flex}.page-head{padding-top:120px;padding-bottom:48px}.page-title{letter-spacing:-.03em;font-size:clamp(64px,14vw,200px);font-weight:900;line-height:.95}.page-lede{color:var(--muted);margin-top:12px}.grid{gap:48px var(--pad);grid-template-columns:repeat(2,minmax(0,1fr));padding-bottom:80px;display:grid}@media (max-width:700px){.grid{grid-template-columns:1fr;gap:36px}}.card{text-decoration:none;display:block}.cover{aspect-ratio:3/2;place-items:center;transition:transform .35s cubic-bezier(.2,.9,.3,1.2);display:grid;position:relative;overflow:hidden}.cover-large{aspect-ratio:16/9}@media (hover:hover){.card:hover .cover{transform:scale(.985)}}.card:focus-visible .cover{transform:scale(.985)}.cover-title{letter-spacing:-.02em;opacity:.9;-webkit-text-stroke:.04em currentColor;paint-order:stroke fill;text-align:center;padding:0 8%;font-size:clamp(36px,7vw,110px);font-weight:900;line-height:1}.card-meta{justify-content:space-between;align-items:baseline;margin-top:14px;font-size:16px;font-weight:600;display:flex}.card-arrow{font-weight:400;transition:transform .2s}@media (hover:hover){.card:hover .card-arrow{transform:translate(2px,-2px)}}.card-sub{color:var(--muted);margin-top:2px;font-size:12px}.about-band,.split{border-top:1px solid var(--line);gap:24px var(--pad);grid-template-columns:minmax(0,1fr) minmax(0,3fr);padding-top:24px;padding-bottom:80px;display:grid}.split{padding-bottom:64px}.about-band .label{grid-column:1}.about-body{grid-column:2;grid-template-columns:96px minmax(0,1fr);align-items:start;gap:40px;display:grid}.page-head .about-body{grid-column:1/-1;margin-top:24px}.about-body-lg{grid-template-columns:140px minmax(0,1fr)}.smiley{width:100%;height:auto}.about-h{letter-spacing:-.025em;max-width:14em;font-size:clamp(34px,4.6vw,64px);font-weight:500;line-height:1.08}.about-h-lg{font-size:clamp(40px,6.4vw,96px)}.about-p{max-width:34em;color:var(--muted);margin-top:28px}.tags{flex-wrap:wrap;gap:4px 22px;margin-top:28px;font-size:12px;display:flex}.tags a{text-decoration:none}@media (hover:hover){.tags a:hover{text-decoration:underline}}.link{color:var(--ink)}.service-list{gap:32px;display:grid}.service-list h2{letter-spacing:-.02em;font-size:clamp(24px,3vw,40px);font-weight:500}.service-list p{color:var(--muted);max-width:34em;margin-top:6px}.tools-lg{font-size:20px}.contact{border-top:1px solid var(--line);gap:48px var(--pad);grid-template-columns:repeat(2,minmax(0,1fr));padding-top:24px;padding-bottom:72px;display:grid}.page-contact .contact{border-top:0;padding-top:130px}.balloon{letter-spacing:-.02em;-webkit-text-stroke:.05em currentColor;paint-order:stroke fill;margin:12px 0 28px;font-size:clamp(48px,7vw,104px);font-weight:900;line-height:.95}.avail{max-width:22em;color:var(--muted);margin-bottom:24px;padding-left:18px;font-size:12px;position:relative}.dot{background:var(--ink);border-radius:50%;width:5px;height:5px;position:absolute;top:.55em;left:0}.btn{border:1px solid var(--ink);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:10px;padding:11px 18px;font-size:13px;text-decoration:none;transition:background-color .15s,color .15s,opacity .15s;display:inline-flex}.btn-outline{color:var(--ink);background:0 0}@media (hover:hover){.btn-outline:hover{background:var(--ink);color:var(--bg)}}.btn-solid,.btn-primary{background:var(--ink);color:var(--bg)}@media (hover:hover){.btn-solid:hover,.btn-primary:hover{opacity:.85}}.btn:disabled{opacity:.5;cursor:progress}.form{gap:22px;max-width:520px;display:grid}.form-title{font-size:18px;font-weight:600}.form-to{color:var(--muted);margin-top:-18px;font-size:12px}.field{color:var(--muted);gap:6px;font-size:12px;display:grid}.field input,.field textarea{border:0;border-bottom:1px solid var(--line);width:100%;color:var(--ink);font:inherit;resize:vertical;background:0 0;border-radius:0;outline:none;padding:6px 0 12px;font-size:15px;transition:border-color .15s}.field input::placeholder,.field textarea::placeholder{color:var(--muted);opacity:.7}.field input:focus,.field textarea:focus{border-bottom-color:var(--ink)}.form .btn{justify-self:start}.form-status{min-height:1.5em;color:var(--muted);font-size:12px}@media (max-width:800px){.about-band,.split,.contact{grid-template-columns:1fr}.about-band .label,.about-body{grid-column:1}.about-body,.about-body-lg{grid-template-columns:1fr;gap:24px}.smiley{width:72px}}.project-head{padding-top:110px;padding-bottom:32px}.back{color:var(--muted);margin-bottom:28px;font-size:13px;text-decoration:none;display:inline-block}@media (hover:hover){.back:hover{color:var(--ink)}}.project-title{letter-spacing:-.03em;font-size:clamp(56px,12vw,180px);font-weight:900;line-height:.95}.project-tagline{color:var(--muted);margin-top:14px;font-size:clamp(18px,2vw,26px)}.project-meta{gap:24px var(--pad);grid-template-columns:repeat(4,minmax(0,1fr));padding-top:28px;padding-bottom:56px;display:grid}@media (max-width:700px){.project-meta{grid-template-columns:repeat(2,minmax(0,1fr))}}.gallery{gap:var(--pad);grid-template-columns:repeat(2,minmax(0,1fr));padding-bottom:56px;display:grid}.gallery .cover-large{grid-column:1/-1}@media (max-width:700px){.gallery{grid-template-columns:1fr}}.pager{gap:var(--pad);border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));padding-block:40px 80px;display:grid}.pager a{gap:6px;text-decoration:none;display:grid}.pager-next{text-align:right}.pager-title{letter-spacing:-.02em;font-size:clamp(24px,4vw,56px);font-weight:800}.site-footer{border-top:1px solid var(--line);padding-top:24px;padding-bottom:28px}.footer-top{gap:32px var(--pad);grid-template-columns:minmax(0,1.4fr) repeat(2,minmax(0,1fr));padding-bottom:72px;display:grid}@media (max-width:800px){.footer-top{grid-template-columns:1fr}}.footer-mail{margin-top:8px;font-size:22px;text-decoration:none;display:inline-block}@media (hover:hover){.footer-mail:hover{text-decoration:underline}}.tools{flex-wrap:wrap;gap:4px 18px;margin-top:10px;font-size:13px;display:flex}.footer-bottom{color:var(--muted);justify-content:space-between;gap:16px;font-size:11px;display:flex}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.toolbox{padding-inline:var(--pad);--tile:clamp(26px, calc((100vw - 2 * var(--pad) - 54px) / 10), 38px);flex-direction:column;align-items:center;gap:14px;display:flex}.toolbox-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:11px;line-height:1}.toolbox-row{justify-content:center;gap:6px;display:flex}.tool{width:var(--tile);height:var(--tile);border-radius:calc(var(--tile) * .27);background:color-mix(in srgb, var(--ink) 8%, transparent);color:var(--ink);pointer-events:auto;place-items:center;transition:background-color .2s,transform .2s;display:grid;position:relative}.tool svg{width:52%;height:52%}@media (hover:hover){.tool:hover{background:color-mix(in srgb, var(--ink) 14%, transparent);transform:translateY(-2px)}}.tool:after{content:attr(data-name);background:var(--ink);color:var(--bg);white-space:nowrap;opacity:0;pointer-events:none;border-radius:6px;padding:5px 8px;font-size:11px;line-height:1;transition:opacity .15s,transform .15s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%,4px)}@media (hover:hover){.tool:hover:after{opacity:1;transform:translate(-50%)}}@media (min-width:640px){.toolbox-row{gap:8px}}.fx{--case-heading-size:clamp(32px, 4vw, 48px);--card-title-size:clamp(22px, 2.4vw, 28px);--bg:#f4f2ee;--ink:#1a1917;--muted:#6b6862;--line:#1a19171f;--surface:#e9e6e0;--accent:#c0603e;--serif:var(--font-serif), "Comic Sans MS", cursive;--sans:var(--font-sans), system-ui, -apple-system, "Helvetica Neue", sans-serif;background:var(--bg);color:var(--ink);font-family:var(--sans);border-radius:28px 28px 0 0;margin-top:-1px;font-size:15px;line-height:1.5}:root[data-theme=dark] .fx{--bg:#121110;--ink:#f4f2ee;--muted:#9b978f;--line:#f4f2ee24;--surface:#1e1c1a;--accent:#e07a56}.fx .mono,.fx .label,.fx .toolbox-label{font-family:var(--font-mono), ui-monospace, Menlo, monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:11px}.sec{border-top:1px solid var(--line);max-width:1280px;margin-inline:auto;padding-top:28px;padding-bottom:120px}.fx .sec:first-child{border-top:0;padding-top:72px}.sec-head{justify-content:space-between;gap:16px;padding-bottom:56px;display:flex}.sec-title{font-family:var(--serif);letter-spacing:0;margin-bottom:56px;font-size:clamp(36px,5vw,72px);font-weight:400;line-height:1.02}.fx .grid{gap:64px var(--pad);padding-bottom:0}.fx .cover{aspect-ratio:4/3;border-radius:20px}.fx .cover-title{font-family:var(--serif);-webkit-text-stroke:0;letter-spacing:0;opacity:1;font-weight:400}.fx .card-meta{font-family:var(--serif);letter-spacing:0;margin-top:18px;font-size:24px;font-weight:400}.fx .card-sub{color:var(--muted);margin-top:4px;font-size:14px}.about-lead{max-width:20em;font-family:var(--serif);letter-spacing:0;font-size:clamp(28px,4.2vw,60px);font-weight:400;line-height:1.1}.pillars{border-top:1px solid var(--line);margin-top:88px}.pillars li{align-items:baseline;gap:8px var(--pad);border-bottom:1px solid var(--line);grid-template-columns:64px minmax(0,1fr) minmax(0,1fr);padding:36px 0;display:grid}.pillars h3{font-family:var(--serif);letter-spacing:0;font-size:clamp(32px,4.4vw,54px);font-weight:400;line-height:1.04}.pillars p{color:var(--muted);font-size:16px}.about-tools{margin-top:112px}.exp{background:var(--surface);border-radius:36px;gap:12px;padding:12px;display:grid}.exp-row{background:var(--bg);border-radius:28px;grid-template-columns:92px minmax(0,1fr) auto;align-items:center;gap:8px 32px;padding:36px 32px;display:grid}.exp-main{flex-direction:column;gap:4px;min-width:0;display:flex}.exp-top{flex-wrap:wrap;align-items:center;gap:8px 14px;display:flex}.exp-company{font-family:var(--serif);font-size:clamp(28px,3.6vw,44px);line-height:1.05}.exp-now{background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--accent);border-radius:999px;align-items:center;gap:8px;padding:5px 12px;display:inline-flex}.exp-now i{opacity:.55;background:currentColor;border-radius:50%;width:7px;height:7px}.exp-role{color:var(--muted);font-size:clamp(16px,1.6vw,20px)}.exp-years{border:1px solid var(--line);white-space:nowrap;border-radius:999px;padding:12px 22px;font-size:13px}.exp-cta{justify-content:center;margin-top:48px;display:flex}.exp-cta .btn{padding:18px 32px;font-size:18px}.build{padding-top:28px;padding-bottom:140px}.build .avail{border:1px solid var(--line);background:var(--surface);max-width:none;color:var(--ink);border-radius:999px;align-items:center;gap:10px;margin:0;padding:8px 14px 8px 12px;font-size:13px;font-weight:500;display:inline-flex}.build .dot{background:var(--accent);width:7px;height:7px;box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 18%, transparent);position:static}.build-title{max-width:9em;font-family:var(--serif);letter-spacing:0;margin:40px 0 56px;font-size:clamp(48px,9vw,132px);font-weight:400;line-height:.98}.build-title em{color:var(--accent);font-style:normal}.build-actions{flex-wrap:wrap;gap:10px;display:flex}.fx .btn{border-color:var(--line);font-family:var(--sans);padding:12px 20px;font-size:14px;font-weight:500}.fx .btn-solid,.fx .btn-primary{background:var(--ink);border-color:var(--ink);color:var(--bg)}@media (hover:hover){.fx .btn-outline:hover{background:var(--ink);border-color:var(--ink);color:var(--bg)}}.fx .site-footer{border-top:1px solid var(--line);max-width:1280px;margin-inline:auto;padding-top:40px;padding-bottom:40px}.fx .footer-mail{font-family:var(--serif);letter-spacing:0;font-size:28px}.fx .footer-bottom{font-family:var(--font-mono), ui-monospace, Menlo, monospace;letter-spacing:.06em;text-transform:uppercase;font-size:11px}.fx .tool{background:var(--surface)}@media (max-width:700px){.sec{padding-bottom:72px}.fx .sec:first-child{padding-top:48px}.pillars li{grid-template-columns:1fr;padding:28px 0}.exp-row{grid-template-columns:64px minmax(0,1fr);gap:8px 16px;padding:22px 18px}.exp-years{grid-column:2;justify-self:start;padding:8px 16px}}.links{border-top:1px solid var(--line)}.links a{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto 28px;align-items:baseline;gap:16px;padding:26px 0;text-decoration:none;transition:padding .25s,color .2s;display:grid}.links-title{font-family:var(--serif);letter-spacing:0;font-size:clamp(26px,3.6vw,44px);line-height:1.05}.links-arrow{text-align:right;color:var(--muted);transition:transform .2s,color .2s}@media (hover:hover){.links a:hover{color:var(--accent);padding-left:12px}.links a:hover .links-arrow{color:var(--accent);transform:translate(2px,-2px)}}@media (max-width:700px){.links a{grid-template-columns:minmax(0,1fr) 24px}.links-url{grid-area:2/1}}.fx .sec-head{text-align:center;flex-direction:column;align-items:center;gap:6px}.fx .sec-title,.fx .about-lead,.fx .build-title{text-align:center;margin-inline:auto}.fx .build{text-align:center}.fx .build-actions{justify-content:center}.fx .exp{border-radius:28px;gap:8px;padding:8px}.fx .exp-row{border-radius:20px;grid-template-columns:56px minmax(0,1fr) auto;gap:4px 20px;padding:16px 20px}.fx .exp-company{font-size:clamp(22px,2.4vw,28px)}.fx .exp-role{font-size:15px}.fx .exp-years{padding:8px 16px;font-size:12px}.fx .exp-cta{margin-top:28px}.fx .exp-cta .btn{padding:12px 22px;font-size:15px}@media (max-width:700px){.fx .exp-row{grid-template-columns:44px minmax(0,1fr);gap:4px 12px;padding:14px}}.fx .exp,.fx .exp-cta{max-width:860px;margin-inline:auto}.fx .pillars{background:var(--surface);border-top:0;border-radius:36px;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:72px;padding:12px;display:grid}.fx .pillar{background:var(--bg);text-align:center;border-bottom:0;border-radius:26px;flex-direction:column;align-items:center;padding:52px 28px 48px;display:flex}.pillar-icon{color:#f4f2ee;background:#1a1917;border-radius:50%;place-items:center;width:72px;height:72px;margin-bottom:40px;display:grid}.pillar-icon.accent{background:var(--accent);color:#fff}:root[data-theme=dark] .fx .pillar-icon:not(.accent){color:#1a1917;background:#f4f2ee}.fx .pillar h3{margin-bottom:14px;font-size:clamp(30px,3.4vw,40px)}.fx .pillar p{max-width:17em;color:var(--muted);font-size:18px;line-height:1.6}.fx .about-tools{margin-top:120px;padding-top:28px}.fx .about-tools .toolbox{gap:40px}@media (max-width:800px){.fx .pillars{grid-template-columns:1fr}.fx .pillar{padding:36px 24px}.pillar-icon{margin-bottom:24px}.fx .about-tools{margin-top:72px}}.fx .sec-head{flex-flow:wrap;justify-content:center;gap:6px 16px}.fx .exp-now{color:#2a8a52;background:#2ea05a24}:root[data-theme=dark] .fx .exp-now{color:#5bd08a;background:#50c87829}.fx .build .dot{background:#2a8a52;box-shadow:0 0 0 4px #2ea05a2e}:root[data-theme=dark] .fx .build .dot{background:#5bd08a;box-shadow:0 0 0 4px #50c87833}.fx .pillar-icon.accent{color:#fff;background:#2a8a52}:root[data-theme=dark] .fx .pillar-icon.accent{color:#0b2415;background:#5bd08a}.fx .links{max-width:860px;margin-inline:auto}.fx .links-url{text-transform:lowercase;letter-spacing:.02em}.fx .pillar:first-child .pillar-icon{color:#fff;background:#3b6fd8}:root[data-theme=dark] .fx .pillar:first-child .pillar-icon:not(.accent){color:#0c1a3a;background:#7ca3f5}.footer-btn{text-transform:uppercase}.info a{color:#3b6fd8}:root[data-theme=dark] .info a{color:#7ca3f5}.fx .exp-company{font-family:var(--font-mono), ui-monospace, Menlo, monospace;letter-spacing:-.02em}.fx .links{background:var(--surface);border-top:0;border-radius:36px;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;max-width:none;margin-top:0;padding:28px;display:grid}.fx .links a{background:var(--bg);text-align:center;border-bottom:0;border-radius:26px;flex-direction:column;align-items:center;gap:10px;height:100%;padding:52px 24px 44px;display:flex}@media (hover:hover){.fx .links a:hover{color:var(--ink);padding-left:24px;transform:translateY(-2px)}}.fx .links-title{font-size:clamp(28px,3vw,38px)}.fx .links-url{grid-area:auto}.fx .links-arrow{background:var(--surface);width:40px;height:40px;color:var(--ink);text-align:center;border-radius:50%;place-items:center;margin-top:14px;display:grid}@media (hover:hover){.fx .links a:hover .links-arrow{background:var(--ink);color:var(--bg);transform:none}}@media (max-width:800px){.fx .links{border-radius:28px;gap:14px;padding:14px}.fx .links a{border-radius:20px;padding:28px 12px}}.fx .links-title{font-family:var(--font-mono), ui-monospace, Menlo, monospace;font-size:var(--card-title-size);letter-spacing:-.02em;line-height:1.05}.fx .sec:first-child{padding-top:36px}@media (max-width:700px){.fx .sec:first-child{padding-top:28px}}.shader-text{display:inline-block;position:relative}.shader-text.shader-text-on{color:#0000}.hint{transition:opacity .8s}.hint.hint-gone{opacity:0}.fx .work-note{text-align:center;justify-content:center;align-items:center;gap:8px;margin-top:32px;display:flex}.fx .links-sub{font-family:var(--font-mono), ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;color:var(--muted);letter-spacing:0;font-size:14px;line-height:1.3}.fx .links a{transition:background-color .25s,transform .25s,color .2s}@media (hover:hover){.fx .links a:hover{background:#fff}}.fx .links a:focus-visible{background:#fff}@media (hover:hover){:root[data-theme=dark] .fx .links a:hover{background:#000}}:root[data-theme=dark] .fx .links a:focus-visible{background:#000}.fx .exp-row{grid-template-columns:minmax(0,1fr) auto}@media (max-width:700px){.fx .exp-row{grid-template-columns:1fr}.fx .exp-years{grid-column:1}}.fx .exp,.fx .exp-cta{max-width:720px}.fx .pillar p{font-family:var(--font-mono), ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;color:var(--muted);letter-spacing:0;font-size:14px;line-height:1.5}.fx .links a.has-cover{isolation:isolate;aspect-ratio:16/9;justify-content:center;height:auto;padding-block:24px;position:relative;overflow:hidden}@media (max-width:800px){.fx .links a.has-cover{aspect-ratio:auto;min-height:200px}}.fx .links-cover{z-index:1;object-fit:cover;width:100%;height:100%;transition:opacity .35s,transform .6s;position:absolute;inset:0}.fx .links a.has-cover>:not(.links-cover){z-index:0;opacity:0;transition:opacity .3s;position:relative}@media (hover:hover){.fx .links a.has-cover:hover .links-cover{opacity:0;transform:scale(1.04)}}.fx .links a.has-cover:focus-visible .links-cover{opacity:0;transform:scale(1.04)}@media (hover:hover){.fx .links a.has-cover:hover>:not(.links-cover){opacity:1}}.fx .links a.has-cover:focus-visible>:not(.links-cover){opacity:1}@media (hover:none){.fx .links-cover{opacity:.16}.fx .links a.has-cover>:not(.links-cover){opacity:1}}@media (prefers-reduced-motion:reduce){.fx .links-cover{transition:opacity .2s}.fx .links a.has-cover:hover .links-cover{transform:none}}.nav-links a[aria-current=page]{border-color:currentColor}@media (max-width:560px){.nav{gap:14px}.nav-links{gap:14px;font-size:13px}.nav-actions .nav-divider,.nav-actions .icon-btn:not(.theme-toggle):not(:first-child){display:none}}.fx.fx-page{border-radius:0;min-height:100dvh;padding-top:88px}.fx .page-intro{border-top:0;padding-bottom:0}.fx .page-intro .sec-head{justify-content:center}.fx .page-intro .sec-title{text-align:center;margin-bottom:16px}.fx .page-intro-lede{text-align:center;max-width:560px;color:var(--muted);font-family:var(--font-mono), ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;margin:0 auto;font-size:14px}.fx .work-page{border-top:0;padding-top:48px}.fx .contact-page{border-top:0;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:48px;max-width:860px;margin-inline:auto;padding-top:56px;display:grid}.fx .contact-side{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.fx .contact-side .avail{margin-bottom:8px}.fx .form{background:var(--surface);border-radius:28px;gap:20px;padding:28px;display:grid}.fx .form-title{font-family:var(--serif);font-size:28px;font-weight:400}.fx .field input,.fx .field textarea{border:1px solid var(--line);background:var(--bg);border-radius:14px;padding:12px 16px}.fx .field input:focus,.fx .field textarea:focus{border-color:var(--ink)}@media (max-width:800px){.fx .contact-page{grid-template-columns:1fr;gap:32px}}.fx .project-body{gap:28px;max-width:860px;margin-inline:auto;padding-top:40px;padding-bottom:80px;display:grid}.fx .project-cover{aspect-ratio:4/3;background:var(--surface);border-radius:28px;place-items:center;display:grid;overflow:hidden}.fx .project-cover img{object-fit:cover;width:100%;height:100%}.fx .project-cover-name{font-family:var(--serif);color:var(--muted);opacity:.5;font-size:clamp(48px,9vw,120px)}.fx .project-soon{text-align:center;color:var(--muted)}.fx .project-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.fx .pager{max-width:860px;margin-inline:auto;padding-block:32px 72px}.fx .pager-title{font-family:var(--font-mono), ui-monospace, Menlo, monospace;font-size:var(--card-title-size);letter-spacing:-.02em;font-weight:400;line-height:1.05}.fx .archive{max-width:1280px;margin-inline:auto}.fx .archive .sec-head{justify-content:center}.fx .archive-row{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr) auto;gap:8px 24px}.fx .archive-main{gap:2px;display:grid}.fx .archive-main .exp-company{margin:0;font-size:clamp(17px,1.7vw,20px);font-weight:400}.fx .archive-year{color:var(--muted);font-size:12px}.fx .archive-blurb{color:var(--muted);margin:0;font-size:14px}.fx .archive-btn[aria-disabled=true]{opacity:.55;cursor:default;white-space:nowrap}@media (hover:hover){.fx .archive-btn[aria-disabled=true]:hover{border-color:var(--line);color:inherit;background:0 0}}@media (max-width:700px){.fx .archive-row{grid-template-columns:1fr;gap:8px;padding:16px}.fx .archive-btn{justify-self:start;margin-top:4px}}.fx .back-row{max-width:1000px;margin-inline:auto;padding-top:12px}.fx .back-btn{padding:8px 16px;font-size:13px}.fx .page-intro{padding-top:36px}.fx .page-intro .sec-title.page-title-card{font-family:var(--font-mono), ui-monospace, Menlo, monospace;font-size:var(--card-title-size);letter-spacing:-.02em;font-weight:400;line-height:1.05}.fx .project-head{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:16px 56px;max-width:1000px;margin-inline:auto;padding-top:36px;display:grid}.fx .project-title{font-family:var(--font-mono), ui-monospace, Menlo, monospace;font-size:var(--case-heading-size);letter-spacing:-.02em;margin:0;font-weight:400;line-height:1.05}.fx .project-sub{color:var(--ink);margin:0;font-size:clamp(17px,1.7vw,20px);line-height:1.45}.fx .project-body{gap:40px;max-width:1000px;padding-top:32px}.fx .project-facts{gap:12px;padding-top:24px;display:grid}.fx .project-facts-label{color:var(--muted)}.fx .project-facts dl{border-top:1px solid var(--line);display:grid}.fx .project-facts dl>div{border-bottom:1px solid var(--line);grid-template-columns:minmax(110px,1fr) minmax(0,4fr);align-items:baseline;gap:16px;padding:20px 0;display:grid}.fx .project-facts dt{color:var(--muted)}.fx .project-facts dd{margin:0;font-size:16px}.fx .project-facts .btn{justify-self:start}.fx .project-copy{gap:40px;max-width:720px;padding-top:24px;display:grid}.fx .project-copy section{gap:14px;display:grid}.fx .project-copy h2{font-family:var(--font-mono), ui-monospace, Menlo, monospace;letter-spacing:-.02em;margin:0;font-size:clamp(24px,2.6vw,32px);font-weight:400;line-height:1.1}.fx .project-copy p{color:var(--ink);margin:0;font-size:clamp(17px,1.7vw,20px);line-height:1.6}@media (max-width:800px){.fx .project-head{grid-template-columns:1fr}}.fx .project-cols{grid-template-columns:minmax(0,1fr) minmax(0,2fr);align-items:start;gap:40px 72px;padding-top:24px;display:grid}.fx .project-cols .project-facts{padding-top:0;position:sticky;top:24px}.fx .project-cols .project-facts dl>div{grid-template-columns:1fr;gap:2px;padding:8px 0}.fx .project-cols .project-copy{max-width:none;padding-top:0}.fx .project-cols .project-copy p{color:var(--muted)}@media (max-width:800px){.fx .project-cols{grid-template-columns:1fr}.fx .project-cols .project-facts{position:static}.fx .project-cols .project-facts dl>div{grid-template-columns:minmax(110px,1fr) minmax(0,4fr);gap:16px;padding:20px 0}.fx .project-cols .project-copy p{color:var(--ink)}}.fx .project-copy .h3{font-family:var(--font-mono), ui-monospace, Menlo, monospace;letter-spacing:-.02em;margin:0;font-size:clamp(20px,2.1vw,24px);font-weight:400;line-height:1.2}.nav-links a{text-transform:uppercase;letter-spacing:.06em;font-size:12px}.fx .links-url{overflow-wrap:anywhere}.fx .work-more{justify-content:center;margin-top:32px;display:flex}.fx .project-body{max-width:1280px}.fx .project-cover{aspect-ratio:16/9}.fx .project-body .project-cols{width:100%;max-width:1000px;margin-inline:auto}.fx .project-bento{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"a a""b c""b d";gap:24px;display:grid}.fx .bento-tile{background:var(--surface);border-radius:28px;overflow:hidden}.fx .bento-tile img{object-fit:cover;width:100%;height:100%;display:block}.fx .bento-1{grid-area:a}.fx .bento-2{grid-area:b}.fx .bento-3{grid-area:c}.fx .bento-4{grid-area:d}@media (max-width:700px){.fx .project-bento{grid-template-columns:1fr;grid-template-areas:"a""b""c""d";gap:16px}.fx .bento-tile{border-radius:20px}}.fx .back-row,.fx .project-head,.fx .project-body .project-cols,.fx .pager{max-width:1280px}.fx .project-bento.bento-n3{grid-template-areas:"a a""b c"}@media (max-width:700px){.fx .project-bento.bento-n3{grid-template-areas:"a""b""c"}}.fx .bento-1{aspect-ratio:16/9}.fx .bento-1 img{object-position:top center}@media (max-width:700px){.fx .bento-1{aspect-ratio:4/3}}.fx .project-bento.bento-n2{grid-template-columns:2.45fr 1fr;grid-template-areas:"a b"}.fx .project-bento.bento-n2 .bento-1{aspect-ratio:auto}@media (max-width:700px){.fx .project-bento.bento-n2{grid-template-columns:1fr;grid-template-areas:"a""b"}}.fx .about-portrait{background:var(--surface);border-radius:50%;width:144px;height:144px;margin:0 auto 32px;position:relative;overflow:hidden}.fx .about-portrait img{object-fit:cover;width:100%;height:100%;transition:opacity .35s;position:absolute;inset:0}.fx .about-portrait .portrait-bw{opacity:0}@media (hover:hover){.fx .about-portrait:hover .portrait-bw{opacity:1}}.fx .about-portrait{margin-bottom:20px}.fx .name-chip{border:1px solid var(--line);background:color-mix(in srgb, var(--bg) 60%, #fff);border-radius:999px;align-items:center;gap:12px;width:fit-content;margin:0 auto 36px;padding:8px 20px 8px 10px;font-size:15px;display:flex;box-shadow:0 4px 14px #0000000d}:root[data-theme=dark] .fx .name-chip{background:color-mix(in srgb, var(--bg) 85%, #fff)}.fx .name-chip-dot{background:color-mix(in srgb, var(--accent) 22%, transparent);border-radius:50%;place-items:center;width:24px;height:24px;display:grid}.fx .name-chip-dot:after{content:"";background:var(--accent);border-radius:50%;width:12px;height:12px}.fx .name-chip-name{font-weight:500}.fx .name-chip-sep{background:var(--line);width:1px;height:18px}.fx .name-chip-place{color:var(--muted);margin-left:-4px}.fx .name-chip svg{color:var(--muted)}.fx.fx-page>.sec:first-of-type{border-top:0;padding-top:36px}.fx .project-bento.bento-split{grid-template-columns:repeat(6,minmax(0,1fr));grid-template-areas:"a a a a a a""b b b b c c"}.fx .project-bento.bento-split .bento-1{aspect-ratio:16/9}.fx .project-bento.bento-split .bento-2{aspect-ratio:3/2}.fx .project-bento.bento-split .bento-3{aspect-ratio:auto}@media (max-width:700px){.fx .project-bento.bento-split{grid-template-columns:1fr;grid-template-areas:"a""b""c"}.fx .project-bento.bento-split .bento-1{aspect-ratio:4/3}.fx .project-bento.bento-split .bento-3{aspect-ratio:4/5}}.fx .bento-tile video{object-fit:cover;width:100%;height:100%;display:block}.nf-top{padding:120px var(--pad) 0;text-align:center}.nf-title{font-family:var(--font-serif), "Comic Sans MS", cursive;letter-spacing:0;font-size:clamp(34px,5vw,64px);font-weight:400;line-height:1.05}.nf-kicker{color:var(--muted);font-family:var(--font-mono), ui-monospace, Menlo, monospace;letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px;font-size:11px;display:block}.nf-balloons{height:clamp(150px,23vw,310px);margin-top:16px}.nf-links{padding:8px var(--pad) 72px;flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.nf-links .btn{font-size:15px}@media (max-width:700px){.nf-top{padding-top:104px}.nf-balloons{height:36vw}}.btn svg{flex:none;width:1.15em;height:1.15em}.btn.btn-sm{gap:8px;padding:8px 14px;font-size:13px}.btn.btn-lg{gap:12px;padding:16px 28px;font-size:16px}.btn.btn-icon{justify-content:center;gap:0;width:44px;height:44px;padding:0}.btn.btn-icon.btn-sm{width:34px;height:34px}.btn.btn-icon.btn-lg{width:56px;height:56px}.btn:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.fx .sg{border-top:0;gap:40px;max-width:860px;margin-inline:auto;display:grid}.fx .sg-h{color:var(--muted);margin:0 0 12px}.fx .sg-row{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding:14px 0;display:flex}.fx .sg-label{width:36px;color:var(--muted)}.fx .about-more{border-top:0;padding-top:0}.fx .about-bio{text-align:center;max-width:640px;color:var(--muted);font-family:var(--font-mono), ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;gap:16px;margin:0 auto 48px;font-size:14px;line-height:1.5;display:grid}.fx .about-bio p{margin:0}.fx .about-more .pillars{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:0}@media (max-width:800px){.fx .about-more .pillars{grid-template-columns:1fr}}.fx .pillars .about-list{color:var(--muted);font-family:var(--font-mono), ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;margin:0;padding:0;font-size:14px;line-height:1.5}.fx .pillars .about-list li{border:0;padding:0 0 6px;display:block}.nav{gap:40px}.nav-links{gap:32px}.nav-actions{gap:10px}@media (max-width:560px){.nav,.nav-links{gap:18px}}.nf-top{padding-top:clamp(140px,20vh,240px)}.nf-balloons{margin-top:clamp(16px,4vh,48px)}.nf-links{padding-bottom:clamp(120px,20vh,240px)}@media (max-width:700px){.nf-top{padding-top:clamp(120px,16vh,180px)}}.footer-links{flex-wrap:wrap;gap:4px 0;margin-top:10px;font-size:13px;display:flex}.footer-links li+li:before{content:"•";color:var(--muted);margin:0 10px}.footer-links a{text-transform:uppercase;letter-spacing:.06em;font-size:12px;text-decoration:none}@media (hover:hover){.footer-links a:hover{text-decoration:underline}}.footer-links a[aria-current=page]{color:var(--muted);opacity:.6;pointer-events:none;text-decoration:none}.fx .footer-mail{font-size:20px}.fx .name-chip-dot{background:#2ea05a2e}.fx .name-chip-dot:after{background:#2a8a52;animation:2s ease-out infinite chip-pulse}:root[data-theme=dark] .fx .name-chip-dot{background:#50c87833}:root[data-theme=dark] .fx .name-chip-dot:after{--pulse:#5bd08a8c;background:#5bd08a}.fx .name-chip-dot:after{--pulse:#2a8a5280}@keyframes chip-pulse{0%{box-shadow:0 0 0 0 var(--pulse)}70%,to{box-shadow:0 0 0 10px #0000}}@media (prefers-reduced-motion:reduce){.fx .name-chip-dot:after{animation:none}}@media (pointer:coarse){.icon-btn{width:44px;height:44px}.nav-links a{padding-block:12px;display:inline-block}.btn.btn-sm{min-height:40px}.footer-links a{padding-block:10px;display:inline-block}.footer-mail{padding-block:8px}}@media (max-width:380px){.nav{gap:12px;padding-inline:14px}.nav-links{gap:12px}.nav-links a{letter-spacing:.04em}}
