@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}.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}portfolio-folder{--s:1;--hair:calc(1px / var(--s));z-index:10;pointer-events:none;color:var(--ink-inverse);font-family:var(--serif);display:block;position:fixed;inset:0}portfolio-folder[data-place=page]{height:100vh;position:absolute;inset:0 0 auto}html.js:not(.folder-ready) .folder-scene{visibility:hidden}.folder-stage{perspective:var(--perspective,1800px);perspective-origin:50%;position:absolute;inset:0;overflow:clip}.folder-desk{background:var(--desk);opacity:0;position:absolute;inset:0}.folder-scene,.folder-stack,.folder-nav,.folder-list,.folder{width:0;height:0;transform-style:preserve-3d;margin:0;padding:0;position:absolute;top:0;left:0}.folder-scene{top:50%;left:50%}.folder-list{list-style:none}.folder-back,.folder-cover{left:calc(var(--fw) / -2);width:var(--fw);background-color:var(--swatch);background-blend-mode:soft-light;box-shadow:inset 0 0 0 var(--hair) var(--hairline-desk);pointer-events:auto;background-image:url(/_astro/grain.Dqp9ehTc.png);background-size:160px 160px;position:absolute}.folder-back{top:calc(var(--fh) / -2);height:var(--fh)}.folder-cover{--pad:calc(var(--fw) * .032);--band:calc(var(--cover-h) * .075);top:calc(var(--fh) / 2 - var(--cover-h));height:var(--cover-h);transform-origin:50% 100%;cursor:pointer}.folder-edge{left:calc(var(--edge-w) / -2);top:calc(var(--fh) / 2 - var(--edge-h));width:var(--edge-w);height:var(--edge-h);background:var(--paper);box-shadow:inset 0 0 0 var(--hair) var(--hairline-paper);position:absolute}.folder-tab{top:calc(var(--fh) / -2 - var(--tab-h) + var(--hair));left:calc(var(--fw) / -2 + var(--slot) * var(--tab-w));width:var(--tab-w);height:var(--tab-h);align-items:center;gap:calc(6px / var(--s));padding:0 calc(var(--tab-shoulder,12px) + 6px / var(--s));color:var(--ink);white-space:nowrap;pointer-events:auto;outline:none;text-decoration:none;display:flex;position:absolute;transform:translateZ(.3px);container-type:inline-size}.folder-tab-shape{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.folder-tab-fill{fill:var(--swatch)}.folder-tab-line{fill:none;stroke:var(--hairline-desk);stroke-width:var(--hair)}.folder-tab-name,.folder-tab-meta{position:relative}.folder-tab-name{text-overflow:clip;font-size:calc(16px / var(--s));line-height:1;overflow:hidden}.folder-tab-meta{font-family:var(--mono);font-size:calc(11px / var(--s));letter-spacing:.06em;margin-left:auto}@container (width<=80px){.folder-tab-meta{display:none}}.folder-tab:focus-visible .folder-tab-line{stroke:var(--focus);stroke-width:calc(2.5px / var(--s))}.folder-visual{inset:var(--pad) var(--pad) calc(var(--band) + var(--pad));box-shadow:0 0 0 var(--hair) #0000001f;position:absolute;overflow:hidden}.folder-visual img{object-fit:cover;width:100%;height:100%;display:block}.folder-pending{inset:var(--pad) var(--pad) calc(var(--band) + var(--pad));padding:calc(var(--pad) * 1.2);border:var(--hair) dashed #16120f59;color:var(--ink);font:400 calc(11px / var(--s)) / 1 var(--mono);letter-spacing:.06em;text-transform:uppercase;place-items:end start;margin:0;display:grid;position:absolute}.folder-sticker{left:calc(var(--pad) * 1.8);top:calc(var(--pad) * 1.8);width:40%;padding:calc(4px / var(--s)) calc(8px / var(--s));color:var(--ink);box-shadow:0 0 0 var(--hair) var(--hairline-paper);font:400 calc(10px / var(--s)) / 1.25 var(--mono);letter-spacing:.06em;text-transform:uppercase;background:#fff;grid-template-columns:max-content 1fr;margin:0;display:grid;position:absolute}.folder-sticker dt,.folder-sticker dd{padding:calc(4px / var(--s)) 0;border-top:var(--hair) solid var(--hairline-paper);text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.folder-sticker dt{padding-right:calc(12px / var(--s));color:var(--muted-paper)}.folder-sticker :is(dt,dd):nth-child(-n+2){border-top:0}.folder-band{height:var(--band);box-shadow:inset 0 var(--hair) 0 #0000001f;display:flex;position:absolute;bottom:0;left:0;right:0}.folder-band span{flex-basis:0}.folder-shadow{left:calc(var(--fw) * -.62);top:calc((var(--stack-depth) + var(--fw) * .2) / -2);width:calc(var(--fw) * 1.24);height:calc(var(--stack-depth) + var(--fw) * .2);opacity:.9;transform:translate3d(0, calc(var(--fh) / 2), calc(var(--stack-depth) / -2)) rotateX(90deg);background:url(/_astro/contact-shadow.VvQwjqhD.png) 50%/100% 100% no-repeat;position:absolute}.folder-reel,.folder-standin{left:calc(var(--vw) / -2);top:calc(var(--vh) / -2);width:var(--vw);height:var(--vh);position:absolute}.folder-reel{color:var(--ink);pointer-events:auto;backface-visibility:hidden;cursor:pointer;background:#0b0a09;display:block;overflow:hidden}.folder-reel video,.folder-reel-poster{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.folder-reel-print{box-shadow:inset 0 0 0 calc(var(--vw) * .014) var(--paper);position:absolute;inset:0}.folder-reel-label{background:var(--paper);font:400 calc(var(--vw) * .032) / 1 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:.5em .8em;position:absolute;bottom:5%;left:3%}.folder-reel:focus-visible{outline:calc(var(--vw) * .01) solid var(--focus)}.folder-standin{visibility:hidden;background:var(--paper);pointer-events:none;overflow:clip}.folder-standin-page{width:100%;position:absolute;top:0;left:0}.folder-chrome{z-index:2;padding:22px var(--margin);font:400 16px/1 var(--serif);pointer-events:none;justify-content:space-between;align-items:baseline;display:flex;position:absolute;top:0;left:0;right:0}portfolio-folder[data-chrome=paper] .folder-chrome{color:var(--ink)}portfolio-folder[data-page=reel] .folder-chrome{visibility:hidden}.folder-chrome a{pointer-events:auto;color:inherit;text-decoration:none}.folder-chrome a:hover{text-underline-offset:.2em;text-decoration:underline 1px}.folder-debug{z-index:3;width:25rem;max-height:calc(100% - 140px);box-shadow:0 0 0 1px var(--hairline-paper);color:var(--ink);font:11px/1.45 var(--mono);pointer-events:auto;background:#faf9f6f2;padding:8px 10px;position:absolute;top:56px;right:12px;overflow:auto}.folder-debug pre{font:inherit;margin:0}.folder-tune summary{cursor:pointer;margin-top:6px}.folder-tune fieldset{border:1px solid var(--hairline-paper);margin:8px 0 0;padding:4px 6px 6px}.folder-tune legend{padding:0 4px;font-weight:500}.folder-tune label{grid-template-columns:10rem 1fr 3rem;align-items:center;gap:6px;display:grid}.folder-tune label:has(input[type=checkbox]){grid-template-columns:auto 1fr}.folder-tune-bar{gap:16px;margin-top:6px;display:flex}.folder-tune button{font:inherit;margin-top:6px}.folder-tune .folder-tune-replay{margin:0 0 0 4px;padding:0 6px}html:not(.js) portfolio-folder{pointer-events:auto;height:auto;position:static}html:not(.js) :is(.folder-stage,.folder-scene,.folder-stack,.folder-nav,.folder-list,.folder){perspective:none;width:auto;height:auto;box-shadow:none;background:0 0;position:static;overflow:visible}html:not(.js) :is(.folder-desk,.folder-shadow,.folder-back,.folder-edge,.folder-cover,.folder-standin,.folder-debug-root,.folder-tab-shape){display:none}html:not(.js) .folder-list{padding:16px var(--margin);flex-wrap:wrap;gap:8px;display:flex}html:not(.js) .folder-tab{background:var(--swatch);width:auto;height:auto;padding:8px 14px;font-size:16px;position:static;transform:none}html:not(.js) .folder-tab :is(.folder-tab-name,.folder-tab-meta){font-size:16px}html:not(.js) .folder-reel{width:auto;height:40vh;margin:16px var(--margin);box-shadow:none;display:block;position:relative;top:auto;left:auto}html:not(.js) .folder-reel-label{font-size:14px}html:not(.js) .folder-chrome{position:static}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-vietnamese-opsz-normal.BjhtXyW2.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:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-ext-opsz-normal.BQn1nviT.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:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-opsz-normal.s-izfB6B.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:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-vietnamese-opsz-italic.DTr-ymY4.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:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-ext-opsz-italic.CSPGnFdO.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:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-opsz-italic.kJKFiXvB.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff)format("woff")}:root{--desk:#121110;--desk-raised:#1c1b19;--paper:#faf9f6;--ink:#16120f;--ink-inverse:#f4f4f2;--muted-desk:#8a8a86;--muted-paper:#6b6a66;--hairline-paper:#16120f29;--hairline-desk:#f4f4f22e;--focus:#e8ff47;--serif:"Newsreader Variable", "Newsreader", Georgia, serif;--mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--margin:clamp(20px, 4.4vw, 64px);--gutter:20px;--rail-space:72px}*,:before,:after{box-sizing:border-box;margin:0}html{scroll-behavior:auto;background:var(--desk);color:var(--ink-inverse);font-family:var(--serif);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}body{background:var(--desk);min-height:100vh}body[data-page=sheet]{background:var(--paper);color:var(--ink)}img,video{max-width:100%;height:auto;display:block}a{color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:3px}[tabindex="-1"]:focus{outline:none}.skip-link{left:var(--margin);z-index:20;background:var(--paper);color:var(--ink);font:400 14px/1 var(--mono);padding:8px 12px;position:absolute;top:8px;transform:translateY(-200%)}.skip-link:focus{transform:none}.t-display{letter-spacing:-.015em;font-size:clamp(56px,8.4vw,120px);font-weight:400;line-height:.95}.t-heading{font-size:32px;font-weight:400;line-height:1.1}.t-body{font-size:19px;line-height:1.5}.t-meta{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:400;line-height:1.3}.label-table{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;grid-template-columns:max-content 1fr;margin:0;font-size:11px;line-height:1.3;display:grid}.label-table :is(dt,dd){border-top:1px solid var(--hairline-paper);margin:0;padding:7px 0}.label-table dt{color:var(--muted-paper);padding-right:28px}.label-table :is(dt,dd):nth-last-child(-n+2){border-bottom:1px solid var(--hairline-paper)}.home-stage{height:100vh}html:not(.js) .home-stage{display:none}.home-index{padding:120px var(--margin) 0}.home-heading{color:var(--muted-desk);margin-bottom:20px}.index-list{border-top:1px solid var(--hairline-desk);margin:0;padding:0;list-style:none}.index-list>li:nth-child(5){border-top:1px solid var(--hairline-desk);margin-top:36px}.index-row{border-bottom:1px solid var(--hairline-desk);grid-template-columns:2.6rem 6px 1fr auto;align-items:center;gap:22px;padding:20px 14px;text-decoration:none;display:grid}.index-row:hover{background:var(--desk-raised)}.index-num,.index-meta{color:var(--muted-desk)}.index-bar{background:var(--swatch);align-self:stretch}.index-name{font-size:40px;line-height:1}.index-meta{text-align:right}.home-contact{padding:140px var(--margin) 56px;gap:14px;display:grid}.home-contact .t-meta{color:var(--muted-desk)}.contact-link{justify-self:start;font-size:clamp(32px,4vw,56px);line-height:1;text-decoration:none}.contact-link:hover,.index-row:hover .index-name{text-underline-offset:.12em;text-decoration:underline 1px}.colophon{color:var(--muted-desk);margin-top:64px}.drawer{padding:76px var(--margin) 12px}.drawer-reel{aspect-ratio:16/7;box-shadow:0 0 0 5px var(--paper);margin-bottom:22px;display:block;position:relative;overflow:hidden}.drawer-reel img{object-fit:cover;width:100%;height:100%}.drawer-reel span{background:var(--paper);color:var(--ink);padding:6px 8px;position:absolute;bottom:10px;left:10px}.drawer-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.drawer-list>li:nth-child(5){margin-top:16px}.drawer-row{color:var(--ink);text-decoration:none;display:block}.drawer-tab{width:46%;margin-left:calc(var(--slot) * 54% / 6.5);background:var(--swatch);border-radius:7px 7px 0 0;align-items:center;gap:10px;padding:12px 14px 10px;font-size:17px;line-height:1;display:flex}.drawer-tab .t-meta{margin-left:auto}.drawer-strip{background:var(--swatch);height:64px;display:block;position:relative;overflow:hidden}.drawer-strip img{object-fit:cover;width:100%;height:100%}.sheet{background:var(--paper);min-height:100vh;color:var(--ink);font-family:var(--serif);position:relative}.sheet-punch{left:calc(var(--margin) / 2 - 6px);flex-direction:column;justify-content:center;gap:18vh;height:100vh;display:flex;position:absolute;top:0}.sheet-punch i{background:var(--desk);opacity:.9;border-radius:50%;width:12px;height:12px}.sheet-head,.sheet-body{column-gap:var(--gutter);padding:0 var(--margin);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.sheet-head{padding-top:104px}.sheet-kicker{color:var(--muted-paper);grid-column:1/-1;margin-bottom:22px}.sheet-title{grid-column:1/span 8;margin:0}.sheet-head .label-table{grid-column:9/-1;align-self:end}.sheet-hero{aspect-ratio:16/9;background:var(--swatch);grid-column:1/-1;margin:44px 0 0;overflow:hidden}.sheet-hero img{object-fit:cover;width:100%;height:100%}.sheet-hero--pending{color:var(--ink);place-items:end start;padding:24px;display:grid}.sheet-body{row-gap:0;padding-top:112px}.sheet-text{grid-column:3/span 7}.sheet-text+.sheet-text{margin-top:64px}.sheet-text h2{margin-bottom:18px}.sheet-text p{max-width:64ch}.sheet-text p+p{margin-top:1em}.sheet-media{gap:var(--gutter);grid-column:1/-1;grid-template-columns:1fr 1fr;margin:96px 0;display:grid}.sheet-media>*{grid-column:1/-1;margin:0}.sheet-media>video{grid-column:auto;width:100%}.sheet-media :is(img,video){width:100%}.sheet-foot{margin:140px var(--margin) 0;padding:36px 0 calc(var(--rail-space) + 64px);border-top:1px solid var(--hairline-paper)}.sheet-next{flex-wrap:wrap;align-items:baseline;gap:0 .28em;font-size:clamp(40px,6.4vw,92px);line-height:1;text-decoration:none;display:inline-flex}.sheet-next:hover .sheet-next-name{text-underline-offset:.1em;text-decoration:underline 1px}.lab-grid{gap:28px var(--gutter);grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.lab-card summary{cursor:pointer;gap:10px;list-style:none;display:grid}.lab-card summary::-webkit-details-marker{display:none}.lab-poster{aspect-ratio:4/3;background:color-mix(in srgb, var(--swatch) 45%, var(--paper));box-shadow:inset 0 0 0 1px var(--hairline-paper);color:var(--ink);place-items:center;display:grid}.lab-poster img{object-fit:cover;width:100%;height:100%}.lab-card summary:hover .lab-poster{background:color-mix(in srgb, var(--swatch) 70%, var(--paper))}.lab-caption{justify-content:space-between;gap:12px;font-size:19px;display:flex}.lab-caption .t-meta{color:var(--muted-paper)}.lab-card[open]{grid-column:1/-1}.lab-card[open] .lab-poster{display:none}.lab-run{aspect-ratio:16/7;background:var(--desk);color:var(--ink-inverse);place-items:center;margin-top:10px;display:grid}.lab-run video{width:100%;height:100%}.id-card{box-shadow:0 0 0 1px var(--hairline-paper);background:#fff;grid-column:1/span 8;grid-template-columns:minmax(120px,200px) 1fr;gap:28px;margin-top:44px;padding:24px;display:grid}.id-photo{aspect-ratio:3/4;background:var(--swatch);place-items:end start;padding:10px;display:grid}.id-name{margin-bottom:10px;font-size:clamp(40px,4.6vw,64px);line-height:1}.id-text .t-body{max-width:34ch}.id-text .label-table{margin-top:28px}.cv{grid-column:3/span 7}.cv h2,.about-contact h2{margin-bottom:18px}.about-contact{margin-top:4px}.about-contact .contact-link{display:inline-block}body[data-page=reel]{overflow:hidden}.reel-page{background:#0b0a09;position:fixed;inset:0}.reel-video{object-fit:cover;width:100%;height:100%}.reel-close{top:18px;right:var(--margin);background:var(--paper);color:var(--ink);padding:8px 12px;text-decoration:none;position:absolute}@media (width<=899.98px){.home-stage,.home-index{display:none}.sheet-head{padding-top:84px}.sheet-title,.sheet-head .label-table,.sheet-text,.cv,.id-card{grid-column:1/-1}.sheet-head .label-table,.sheet-hero{margin-top:28px}.sheet-media>video{grid-column:1/-1}.lab-grid{grid-template-columns:1fr 1fr}.id-card{grid-template-columns:1fr}.id-photo{max-width:160px}.sheet-punch{display:none}.index-row{grid-template-columns:6px 1fr}}@media (width>=900px){.drawer{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
