@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-opsz-normal-CfYZpDVp.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-opsz-normal-BFQXbQ-f.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-opsz-normal-BmPQvyvo.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-opsz-normal-BM0NlUE_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-opsz-normal-Ci9T9ieq.woff2)format("woff2-variations");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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-opsz-normal-DpK-iCPk.woff2)format("woff2-variations");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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-opsz-normal-BwkfbSeq.woff2)format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.woff2)format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-vietnamese-wght-normal-DadHysG0.woff2)format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.woff2)format("woff2-variations");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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2)format("woff2-variations");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}:root{--bg:#fff;--text:#111;--muted:#6e6e6e;--faint:#a1a1a1;--line:#ebebeb;--card:#f5f5f4;--sans:"Inter Variable", system-ui, sans-serif;--mono:"Geist Mono Variable", ui-monospace, monospace;--gutter:clamp(16px, 4vw, 24px);--col:560px;--wide:1040px;--radius:20px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0b0b0b;--text:#ededed;--muted:#9a9a9a;--faint:#666;--line:#222;--card:#161616;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--muted);font:400 15.5px/1.65 var(--sans);letter-spacing:-.008em;font-feature-settings:"cv11", "ss03";-webkit-font-smoothing:antialiased;margin:0}img,video{max-width:100%;height:auto;display:block}h1,h2,h3,p,ul,figure{margin:0}h1,h3{font-size:inherit;color:var(--text);font-weight:500}ul{padding:0;list-style:none}a{color:var(--text);text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:3px;text-decoration-thickness:1.5px;transition:text-decoration-color .2s}a:hover{text-decoration-color:currentColor}:focus-visible{outline:2px solid var(--text);outline-offset:3px;border-radius:6px}.col,.wide{width:100%;padding-inline:var(--gutter);margin-inline:auto}.col{max-width:calc(var(--col) + 2 * var(--gutter))}.wide{max-width:calc(var(--wide) + 2 * var(--gutter))}.label{font:450 12px/1.4 var(--mono);letter-spacing:.02em;text-transform:uppercase;color:var(--faint)}.intro{gap:36px;padding-top:clamp(64px,14vw,128px);display:grid}.me{align-items:center;gap:14px;display:flex}.avatar{object-fit:cover;color:#fff;width:44px;height:44px;font:500 14px/1 var(--sans);letter-spacing:.02em;background:linear-gradient(140deg,#3b3b3b,#111);border-radius:12px;flex:none;place-items:center;display:grid;box-shadow:0 0 0 1px #0000000f}.me__name,.me__role{line-height:1.35}.bio{text-wrap:pretty;gap:16px;display:grid}.bio__lead{color:var(--text);font-weight:500}.actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pill{background:var(--card);height:36px;color:var(--text);font:500 14px/1 var(--sans);letter-spacing:-.005em;cursor:pointer;border:0;border-radius:999px;align-items:center;padding:0 16px;text-decoration:none;transition:transform .15s,opacity .2s,background-color .2s;display:inline-flex}.pill:hover{background:var(--line)}.pill:active{transform:scale(.96)}.pill--solid,.pill--solid:hover{background:var(--text);color:var(--bg)}.pill--solid:hover{opacity:.85}.hint{font:400 12px/1 var(--mono);color:var(--faint);margin-left:6px}kbd{background:var(--card);min-width:20px;height:20px;box-shadow:inset 0 -1px 0 var(--line);font:inherit;color:var(--muted);border-radius:5px;place-items:center;padding:0 5px;display:inline-grid}@media (hover:none){.hint{display:none}}.rows{gap:12px;padding-top:clamp(64px,10vw,96px);display:grid}.row{color:var(--muted);align-items:baseline;gap:12px;padding-block:6px;text-decoration:none;display:flex}.row__name{color:var(--text);white-space:nowrap;font-weight:500;transition:opacity .2s}.row__rule{border-top:1px solid var(--line);flex:1;min-width:16px;transform:translateY(-4px)}.row__what{white-space:nowrap}.row__year{font:400 13px/1 var(--mono);color:var(--faint);font-variant-numeric:tabular-nums}.row:hover .row__name{opacity:.6}@media (width<=520px){.row__what{display:none}}.projects{gap:clamp(80px,12vw,136px);padding-top:clamp(56px,9vw,88px);display:grid}.project{gap:12px;scroll-margin-top:32px;display:grid}.pair{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}@media (width<=640px){.pair{grid-template-columns:1fr}}.card{border-radius:var(--radius);background:var(--card);isolation:isolate;position:relative;overflow:hidden}.card:after{content:"";border-radius:inherit;pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #0000000d}.card>img,.card>video{object-fit:cover;width:100%;height:100%}.screen{border-radius:10px;box-shadow:0 0 0 1px #0000000f,0 2px 6px #0000000d,0 24px 48px -16px #00000038}.card--bb{background:#efe8e1}.card--marlo{background:#e3ead9;place-items:center;padding:clamp(16px,3.5vw,32px);display:grid}.card--marlo .screen{border-radius:8px}.card--film{aspect-ratio:16/9;background:#e1ff6b}.card--pad{padding:clamp(16px,4.5vw,48px)}.browser{background:#fff;border-radius:clamp(8px,1.2vw,12px);overflow:hidden;box-shadow:0 0 0 1px #00000014,0 2px 6px #0000000f,0 32px 64px -24px #00000059}.browser__bar{background:#f6f5f4;border-bottom:1px solid #e8e6e3;align-items:center;height:clamp(22px,3.2vw,38px);padding-inline:clamp(9px,1.4vw,16px);display:flex;position:relative}.browser__dots{--dot:clamp(6px, .9vw, 11px);width:var(--dot);height:var(--dot);box-shadow:calc(var(--dot) * 1.7) 0 #febc2e, calc(var(--dot) * 3.4) 0 #28c840;background:#ff5f57;border-radius:50%}.browser__url{font:400 clamp(8px, 1vw, 12px) / 1.5 var(--mono);color:#8a8784;white-space:nowrap;background:#fff;border-radius:6px;padding:2px 14px;position:absolute;left:50%;transform:translate(-50%)}@media (width<=520px){.browser__path{display:none}}.browser img{width:100%}.card--bertha{background:#ecebe7}.caption{justify-content:space-between;align-items:baseline;gap:24px;padding:12px 4px 0;display:flex}.caption p{text-wrap:pretty;max-width:34em}.caption .label{flex:none}@media (width<=640px){.caption{flex-direction:column;gap:4px}.caption .label{order:-1}}.quote{gap:8px;margin:0;padding:20px 4px 0;display:grid}.quote p{max-width:34em;color:var(--text);text-wrap:pretty}.about,.contact{text-wrap:pretty;gap:16px;padding-top:clamp(96px,14vw,144px);display:grid}.contact a{overflow-wrap:anywhere}.foot{font:400 12px/1 var(--mono);color:var(--faint);font-variant-numeric:tabular-nums;justify-content:space-between;padding-top:clamp(72px,10vw,112px);padding-bottom:40px;display:flex}.toast{background:var(--text);color:var(--bg);font:500 14px/1 var(--sans);opacity:0;pointer-events:none;border-radius:999px;padding:10px 16px;transition:opacity .2s,transform .3s cubic-bezier(.2,.7,.2,1);position:fixed;bottom:24px;left:50%;transform:translate(-50%,8px)}.toast.is-on{opacity:1;transform:translate(-50%)}.js [data-reveal]{opacity:0;filter:blur(4px);transition:opacity .8s,transform .8s cubic-bezier(.2,.7,.2,1),filter .8s;transition-delay:var(--delay,0s);transform:translateY(10px)}.js [data-reveal].is-in{opacity:1;filter:none;transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js [data-reveal]{opacity:1;filter:none;transition:none;transform:none}}
