.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/_astro/archivo-vietnamese-wdth-normal.rJmnGBSt.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/_astro/archivo-latin-ext-wdth-normal.7khWdh9v.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/_astro/archivo-latin-wdth-normal.DY7AcnAa.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:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-ext-wght-normal.DHTKMUil.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:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-wght-normal.B1g8a0vD.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-greek-wght-normal.BpXpdlRW.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:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-vietnamese-wght-normal.BsaNuasd.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:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-ext-wght-normal.BVZ5su8S.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-wght-normal.DMe4EKeb.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(/_astro/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(/_astro/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(/_astro/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(/_astro/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(/_astro/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(/_astro/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}@property --f{syntax:"<integer>";inherits:true;initial-value:0}:root{--ground:#dcd9d3;--label:#efede8;--ink:#151412;--ink-2:#504d47;--rule:#1514124d;--rule-soft:#15141224;--tally:#c8201a;--tally-ink:#fff;--font-display:"Archivo Variable", "Helvetica Neue", Arial, sans-serif;--font-read:"Source Serif 4 Variable", Georgia, serif;--font-mono:"Geist Mono Variable", ui-monospace, "SF Mono", Menlo, monospace;--step--1:clamp(.78rem, .76rem + .1vw, .85rem);--step-0:clamp(1rem, .96rem + .2vw, 1.125rem);--step-1:clamp(1.25rem, 1.15rem + .5vw, 1.6rem);--step-2:clamp(1.7rem, 1.4rem + 1.4vw, 2.6rem);--step-3:clamp(2.4rem, 1.7rem + 3.2vw, 4.4rem);--step-name:clamp(2.6rem, 17vw, 6rem);--gutter:clamp(1rem, .5rem + 2.2vw, 2.5rem);--space-1:.5rem;--space-2:1rem;--space-3:clamp(1.5rem, 1.2rem + 1vw, 2rem);--space-4:clamp(2.5rem, 2rem + 2vw, 4rem);--space-5:clamp(4rem, 3rem + 5vw, 8rem);--max:90rem;--ease:cubic-bezier(.2, .7, .2, 1);color-scheme:light}*,:before,:after{box-sizing:border-box}html{background:var(--ground);-webkit-text-size-adjust:100%;scroll-padding-top:5rem}body{background:var(--ground);min-height:100dvh;color:var(--ink);font-family:var(--font-read);font-size:var(--step-0);font-optical-sizing:auto;flex-direction:column;margin:0;line-height:1.6;display:flex}main{flex:1}main:focus{outline:none}.tap{padding-block:.7rem;display:inline-block}img,video{max-width:100%;height:auto;display:block}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.02em;text-wrap:balance;margin:0;font-weight:300;font-stretch:112%;line-height:1}p{text-wrap:pretty;margin:0}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:2px}::selection{background:var(--ink);color:var(--label)}.wrap{width:100%;max-width:var(--max);padding-inline:var(--gutter);margin-inline:auto}.skip{left:var(--gutter);z-index:50;background:var(--ink);color:var(--label);font-family:var(--font-display);padding:.6rem 1rem;position:absolute;top:-4rem}.skip:focus{top:.75rem}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.label{font-family:var(--font-display);font-weight:560;font-stretch:78%;font-size:var(--step--1);letter-spacing:.09em;text-transform:uppercase;line-height:1.25}.mono{font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.02em}.hire{background:var(--tally);color:var(--tally-ink);font-family:var(--font-display);font-weight:650;font-stretch:100%;font-size:var(--step-0);letter-spacing:.01em;white-space:nowrap;transition:background-color .2s var(--ease), transform .2s var(--ease);border-radius:999px;align-items:center;gap:.65rem;padding:.8rem 1.25rem;text-decoration:none;display:inline-flex}.hire:hover{background:#a81812}.hire:active{transform:translateY(1px)}.hire:focus-visible{outline-color:var(--ink);outline-offset:4px}.hire .rec{background:var(--tally-ink);border-radius:50%;width:.6rem;height:.6rem;animation:2.4s step-end 5 rec}@keyframes rec{50%{opacity:.25}}.hire--lg{font-size:var(--step-1);padding:1.1rem 1.9rem}.site-header{z-index:20;background:var(--ground);border-bottom:1px solid var(--rule);position:sticky;top:0}.site-header .wrap{align-items:center;gap:var(--space-3);min-height:4rem;display:flex}.mark{font-family:var(--font-display);font-weight:700;font-stretch:100%;font-size:var(--step-0);letter-spacing:-.01em;white-space:nowrap;margin-right:auto;text-decoration:none}.nav{gap:clamp(.9rem,.4rem + 2vw,2rem);display:flex}.nav a{border-bottom:1px solid #0000;padding:.85rem .2rem;text-decoration:none}.nav a[aria-current=page]{border-bottom-color:var(--ink)}.nav a:hover{border-bottom-color:var(--ink-2)}.site-header .hire{font-size:var(--step--1);padding:.55rem 1rem}@media (width<=34rem){.site-header .wrap{flex-wrap:wrap;row-gap:.4rem;padding-block:.6rem}.nav{border-top:1px solid var(--rule-soft);order:3;justify-content:space-between;width:100%;padding-top:.2rem}}.site-footer{border-top:1px solid var(--rule);padding-block:var(--space-4);margin-top:var(--space-5)}.site-footer .wrap{gap:var(--space-3);grid-template-columns:1fr;display:grid}.site-footer .close{font-family:var(--font-display);font-size:var(--step-3);letter-spacing:-.02em;max-width:14ch;font-weight:300;font-stretch:112%;line-height:1.02}.site-footer ul{flex-wrap:wrap;align-items:center;gap:0 1.5rem;margin:0;padding:0;list-style:none;display:flex}@media (width>=52rem){.site-footer .wrap{grid-template-columns:1fr auto;align-items:end}.site-footer .foot-meta{grid-column:1/-1}}.section{padding-top:var(--space-5)}.section-head{justify-content:space-between;align-items:baseline;gap:var(--space-2);border-top:1px solid var(--ink);margin-bottom:var(--space-3);padding-top:.7rem;display:flex}.section-head a{text-underline-offset:.3em}.hero{padding-top:clamp(2rem,1rem + 5vw,5rem)}.hero h1{font-size:var(--step-name);letter-spacing:-.045em;text-wrap:balance;font-weight:250;font-stretch:125%;line-height:.88}.hero h1 span{display:block}@media (width>=52rem){.hero h1{white-space:nowrap;font-size:clamp(5rem,10.3vw,9.6rem)}.hero h1 span{display:inline}.hero h1 span+span:before{content:" "}}.hero-foot{gap:var(--space-3);margin-top:var(--space-4);align-items:end;display:grid}.hero-foot p{font-size:var(--step-1);max-width:34ch;line-height:1.35}.hero-foot .actions{flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;display:flex}@media (width>=52rem){.hero-foot{grid-template-columns:1fr auto}}.text-link{font-family:var(--font-display);font-weight:500}.shelf{border-bottom:1px solid var(--ink);margin:0;padding:0;list-style:none}.shelf li{border-top:1px solid var(--rule)}.shelf li:first-child{border-top:1px solid var(--ink)}.tape{gap:var(--space-2) var(--space-3);padding-block:var(--space-3);transition:transform .45s var(--ease);grid-template-columns:1fr;text-decoration:none;display:grid;position:relative}.tape-title{font-size:var(--step-2);font-weight:400;font-stretch:105%;line-height:1.02}.tape-sum{color:var(--ink-2);max-width:44ch;font-size:var(--step-0);margin-top:.7rem}.tape-label{background:var(--label);border:1px solid var(--rule);border-top:4px solid var(--ink);grid-template-columns:auto 1fr;align-content:start;gap:.35rem 1rem;padding:.9rem 1rem;display:grid}.tape-label dt{color:var(--ink-2)}.tape-label dd{margin:0}.burn{z-index:1;color:#fff;background:#151412b8;padding:.1rem .4rem;position:absolute;bottom:.5rem;left:.6rem}.tape-cover{background:var(--ink);aspect-ratio:4/3;position:relative;overflow:hidden}.tape-cover .card{background:var(--ink);height:100%;color:var(--label);align-content:start;gap:.6rem;padding:1.1rem 1.1rem 2.6rem;display:grid}.tape-cover .card-kicker{color:var(--label);opacity:.8}.tape-cover .card-title{font-family:var(--font-display);font-weight:300;font-stretch:112%;font-size:var(--step-2);letter-spacing:-.02em;line-height:1.02}.tape-cover img{object-fit:cover;width:100%;height:100%;transition:transform .6s var(--ease)}@media (width>=52rem){.tape{grid-template-columns:minmax(0,1.15fr) minmax(0,.9fr) minmax(0,.9fr);align-items:start;column-gap:0}.tape>div:first-child{padding-right:var(--space-3)}.tape-label{z-index:2;position:relative}.tape-cover{transition:transform .45s var(--ease);transform:translate(-14%)}.tape-cover .card{padding-left:calc(14% + 1.1rem)}}@media (hover:hover) and (width>=52rem){.tape:hover .tape-cover,.tape:focus-visible .tape-cover{transform:translate(0)}.tape:hover .tape-cover img,.tape:focus-visible .tape-cover img{transform:scale(1.03)}.tape:hover .tape-title,.tape:focus-visible .tape-title{text-underline-offset:.12em;text-decoration:underline 1px}}@media (width>=52rem) and (width<=66rem){.tape{grid-template-columns:1fr 1fr}.tape>div:first-child{padding:0 0 var(--space-2);grid-column:1/-1}}.about-teaser{gap:var(--space-3);align-items:start;display:grid}.teaser-photo{max-width:24rem;margin:0}.teaser-photo img{aspect-ratio:4/5;object-fit:cover;object-position:50% 20%;width:100%}@media (width>=52rem){.about-teaser{gap:var(--space-4);grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr)}}.oncam{gap:var(--space-3);grid-template-columns:1fr;align-items:start;display:grid}@media (width>=52rem){.oncam{grid-template-columns:1.6fr 1fr}}.ig-frame{background:var(--label);border:1px solid var(--rule);max-width:26rem}.ig-frame iframe{border:0;width:100%;height:38rem;display:block}.project-cover.project-cover--clip{background:0 0}.project-cover--clip .clip-frame{max-height:80vh}.clip{flex-direction:column;gap:.8rem;display:flex}.clip-frame{aspect-ratio:16/9;background:var(--ink);position:relative;overflow:hidden}.clip-frame img,.clip-frame iframe{object-fit:cover;border:0;width:100%;height:100%}.clip-play{cursor:pointer;color:#fff;background:linear-gradient(#0000 45%,#15141280);border:0;place-items:end;width:100%;padding:1rem;display:grid;position:absolute;inset:0}.clip-play .btn{background:var(--label);color:var(--ink);font-family:var(--font-display);border-radius:999px;align-items:center;gap:.6rem;padding:.7rem 1.1rem;font-weight:600;display:inline-flex}.clip-play .tri{border-left:.7rem solid;border-block:.45rem solid #0000;width:0;height:0}.clip-cap{flex-wrap:wrap;justify-content:space-between;gap:1rem;display:flex}.prose{max-width:62ch}.prose>*+*{margin-top:1.1em}.prose ul{padding-left:1.2em}.prose li+li{margin-top:.4em}.prose strong{font-family:var(--font-display);letter-spacing:.01em;font-size:.9em;font-weight:650}.project-head{padding-top:var(--space-4)}.project-head h1{font-size:var(--step-3);max-width:18ch;font-stretch:112%}.project-meta{margin-top:var(--space-3);border-block:1px solid var(--ink);grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:1rem 2rem;padding-block:1rem;display:grid}.project-meta dt{color:var(--ink-2);margin-bottom:.2rem}.project-meta dd{margin:0}.project-link{margin-top:var(--space-3)}.project-cover{margin-top:var(--space-3);background:var(--ink)}.project-cover img{object-fit:cover;width:100%;max-height:80vh}.project-body{padding-top:var(--space-4);gap:var(--space-3);display:grid}@media (width>=52rem){.project-body{grid-template-columns:14rem 1fr}}.project-clip{max-width:20rem;margin:0 auto}.project-clip video{aspect-ratio:9/16;background:var(--ink);object-fit:contain;width:100%;display:block}.project-clip figcaption{color:var(--ink-2);text-align:center;margin-top:.5rem}.gallery{column-count:var(--cols,1);column-gap:var(--space-3);max-width:calc(var(--cols,1) * 24rem);margin-inline:auto}@media (width<=52rem){.gallery{column-count:1;max-width:26rem}}.gallery figure{margin:0 0 var(--space-3);break-inside:avoid}.gallery img{width:100%;height:auto}.gallery figcaption{color:var(--ink-2);text-align:center;margin-top:.5rem}.pager{justify-content:space-between;gap:var(--space-2);margin-top:var(--space-5);border-top:1px solid var(--ink);flex-wrap:wrap;padding-top:.7rem;display:flex}.about-grid{gap:var(--space-4);padding-top:var(--space-4);display:grid}@media (width>=52rem){.about-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:start}.about-photo{position:sticky;top:6rem}}.about-photo img{aspect-ratio:4/5;object-fit:cover;object-position:50% 20%;width:100%}.about-photo figcaption{color:var(--ink-2);margin-top:.6rem}.page-title{font-size:var(--step-3);padding-top:var(--space-4);font-stretch:118%}.lede{font-size:var(--step-1);max-width:36ch;line-height:1.4}.facts{border-top:1px solid var(--ink);margin:0;padding:0;list-style:none}.facts li{border-bottom:1px solid var(--rule);gap:.2rem 1.5rem;padding-block:.9rem;display:grid}.facts .when{color:var(--ink-2)}.facts .what{font-family:var(--font-display);font-weight:500;font-stretch:105%;font-size:var(--step-1);line-height:1.15}@media (width>=40rem){.facts li{grid-template-columns:11rem 1fr}}.skills{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.skills li{background:var(--label);border:1px solid var(--rule);padding:.4rem .8rem}.on-set{max-width:28rem;margin:0}.on-set img{aspect-ratio:4/5;object-fit:cover;object-position:50% 40%;width:100%}.on-set figcaption{color:var(--ink-2);margin-top:.5rem}.stack{gap:var(--space-4);display:grid}.btn-line{border:1px solid var(--ink);font-family:var(--font-display);transition:background-color .2s var(--ease), color .2s var(--ease);border-radius:999px;align-items:center;gap:.6rem;padding:.8rem 1.25rem;font-weight:600;text-decoration:none;display:inline-flex}.btn-line:hover{background:var(--ink);color:var(--label)}.contact-email{font-family:var(--font-display);letter-spacing:-.03em;overflow-wrap:anywhere;margin-block:var(--space-3);font-size:clamp(1.4rem,.5rem + 4.6vw,4rem);font-weight:300;font-stretch:112%;line-height:1.05;display:block}.rows{border-top:1px solid var(--ink);margin:0;padding:0;list-style:none}.rows li{border-bottom:1px solid var(--rule);justify-content:space-between;gap:1rem;padding-block:1rem;display:flex}.rows a{font-family:var(--font-display);font-size:var(--step-1);font-weight:400}.timecode,.ruler{display:none}@supports (animation-timeline:scroll()) and (counter-reset:a round(down, 1.5, 1)){@media (prefers-reduced-motion:no-preference){.ruler{z-index:30;background:repeating-linear-gradient(to bottom, var(--rule) 0 1px, transparent 1px 12px) right / 12px 100% no-repeat, repeating-linear-gradient(to bottom, var(--ink) 0 1px, transparent 1px 120px) right / 22px 100% no-repeat;pointer-events:none;width:22px;height:100dvh;display:block;position:fixed;top:0;right:0}.ruler:after{content:"";background:var(--ink);transform-origin:top;width:3px;animation:linear both grow scroll(root);position:absolute;inset:0 0 0 auto;transform:scaleY(0)}.timecode{z-index:30;left:var(--gutter);background:var(--label);border:1px solid var(--rule);color:var(--ink);pointer-events:none;counter-reset:mm round(down, calc(var(--f) / 1500), 1) ss round(down, mod(calc(var(--f) / 25), 60), 1) ff mod(var(--f), 25);padding:.2rem .5rem;animation:linear both frames scroll(root);display:block;position:fixed;bottom:.9rem}.timecode:after{content:"TC 00:" counter(mm, decimal-leading-zero) ":" counter(ss, decimal-leading-zero) ":" counter(ff, decimal-leading-zero)}@media (width<=40rem){.timecode{display:none}}}}@keyframes grow{to{transform:scaleY(1)}}@keyframes frames{0%{--f:0}to{--f:4500}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.reveal{animation:linear both rise view();animation-range:entry entry 35%}}}@keyframes rise{0%{opacity:0;translate:0 1.2rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}.hire .rec{animation:none}}::view-transition-group(root){animation-duration:.3s}
