@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-vietnamese-opsz-normal.Czevyj-6.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-ext-opsz-normal.CJcjJNj7.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-opsz-normal.DihXLNYH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-vietnamese-opsz-italic.DxWqP7Ku.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-ext-opsz-italic.CGbN9UgK.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-opsz-italic.lSdLDfvT.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#faf8f2;--ink:#14110d;--soft:#8a8073;--mid:#4a443c;--line:#e4ddce;--mark:#f1542a;--serif:"Fraunces Variable", Georgia, "Times New Roman", serif}*{box-sizing:border-box;margin:0;padding:0}html{scrollbar-gutter:stable;-webkit-text-size-adjust:100%}body{overflow-x:clip;background:var(--paper);color:var(--ink);font-family:var(--serif);font-weight:300;font-optical-sizing:auto;-webkit-font-smoothing:antialiased;min-height:100vh;padding:clamp(2rem,4vw,4rem)}::selection{background:var(--mark);color:var(--paper)}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--mark);outline-offset:3px}img{display:block}.top{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.name{font-weight:300;font-size:clamp(1.5rem,2.2vw,1.9rem);letter-spacing:-.01em}.mark{display:block;flex:0 0 auto;transition:transform .2s ease}.mark svg{width:clamp(38px,3vw,48px);height:auto;display:block}.mark:hover{transform:translateY(-2px) rotate(-4deg)}.mid{display:grid;grid-template-columns:auto 1fr;gap:clamp(2rem,4vw,4rem);align-items:start;margin-top:clamp(1.5rem,5vh,3.5rem)}nav{display:flex;flex-direction:column;gap:.05rem}nav button{all:unset;cursor:pointer;user-select:none;font-weight:300;font-size:clamp(2.5rem,4.2vw,3.5rem);line-height:1.12;letter-spacing:-.015em;color:var(--ink);width:max-content;transition:color .18s}nav button:hover,nav button.on{color:var(--mark)}.stage{min-width:0}.grp{display:none}.grp.show{display:block;animation:fade .28s ease}@keyframes fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.sub{font-weight:400;font-size:.85rem;letter-spacing:.16em;text-transform:uppercase;color:var(--soft);margin-bottom:.9rem}.sub.gap{margin-top:2.2rem}.deck{display:flex;gap:clamp(1.5rem,3vw,3rem);align-items:flex-start}.works{flex:0 0 auto;width:min(340px,24vw);display:flex;flex-direction:column;align-items:flex-start;gap:.3rem}.work{font-size:clamp(1.15rem,1.5vw,1.4rem);line-height:1.4;letter-spacing:-.005em;color:var(--soft);cursor:default;transition:color .16s}.work[href]{cursor:pointer}.work.on{color:var(--ink)}.work:hover{color:var(--mark)}.viewer{flex:1;min-width:0}.sheet{height:min(57vh,520px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.sheet.more{-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 56px),transparent);mask-image:linear-gradient(to bottom,#000 calc(100% - 56px),transparent)}.sheet .cells{width:min(100%,calc(var(--cols,2) * var(--cap,440px)));display:grid;grid-template-columns:repeat(var(--cols,2),minmax(0,1fr));gap:.8rem;align-content:start}.sheet img{width:100%;aspect-ratio:3/2;object-fit:cover;cursor:pointer;border:1px solid rgba(20,17,13,.1);background:var(--paper);opacity:0;transition:filter .2s ease}.sheet .cells.uncropped img{aspect-ratio:auto;object-fit:contain;width:auto;height:auto;justify-self:start;max-width:min(100%,var(--cap,560px));max-height:min(58vh,520px)}.sheet img:hover{filter:brightness(1.09)}.sheet.in .cells img{animation:settle .42s ease forwards}@keyframes settle{0%{opacity:0}to{opacity:1}}body.noscroll{overflow:hidden}.slides{position:fixed;inset:0;z-index:100;background:#14110d;display:flex;align-items:center;justify-content:center;padding:clamp(1.5rem,5vw,4rem)}.slides[hidden]{display:none}.slides img{max-width:88vw;max-height:84vh;object-fit:contain;cursor:pointer}.slides .x{all:unset;position:absolute;top:1.4rem;right:1.6rem;z-index:3;font-size:1.05rem;color:#c8bfb0;cursor:pointer;transition:color .18s}.slides .x:hover{color:var(--mark)}.slides .arrow{all:unset;display:none;position:absolute;top:0;bottom:0;width:clamp(3.5rem,8vw,6rem);cursor:pointer;font-size:2.6rem;line-height:1;color:#8d8478;text-align:center;align-items:center;justify-content:center;transition:color .18s;z-index:2}.slides.multi .arrow{display:flex}.slides .arrow:hover{color:var(--paper)}.slides .prev{left:0}.slides .next{right:0}.slides .n{position:absolute;bottom:1.6rem;left:50%;transform:translate(-50%);font-size:.85rem;letter-spacing:.16em;color:#8d8478}.vinfo{margin-top:1.4rem}.vmeta{font-size:.95rem;line-height:1.6;color:var(--soft)}.vmeta:empty{display:none}.vblurb{font-size:1.05rem;line-height:1.65;color:var(--mid);margin-top:.7rem}.vblurb:empty{display:none}.vlink{display:inline-block;margin-top:1rem;font-size:1rem;color:var(--mid);border-bottom:1px solid var(--line);padding-bottom:.1rem;transition:color .18s,border-color .18s}.vlink:hover{color:var(--mark);border-color:var(--mark)}.vlink:empty{display:none}.item{display:block}.shot{width:100%;aspect-ratio:4/3;overflow:hidden;border:1px solid rgba(20,17,13,.09);background:var(--paper)}.shot-web{aspect-ratio:1366/860}.shot img{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .5s ease}.shot-web img{object-position:top}.item:hover .shot img{transform:scale(1.02)}.cap{font-weight:300;font-size:1.5rem;line-height:1.25;letter-spacing:-.01em;color:var(--mid);margin-top:.65rem;transition:color .18s}.item:hover .cap{color:var(--mark)}.work-row{display:flex;gap:clamp(2rem,3.5vw,3.5rem);align-items:flex-start;flex-wrap:wrap}.work-row .sl{width:min(560px,46vw)}.phones{display:flex;gap:.6rem}.iphone{position:relative;height:340px;width:auto;aspect-ratio:9/19.3;background:#14110d;border-radius:26px;padding:5px;box-shadow:0 8px 24px #14110d21}.iphone .screen{height:100%;aspect-ratio:9/19.3;border-radius:21px;overflow:hidden;background:#fff}.iphone .screen img{width:100%;height:100%;object-fit:cover;object-position:top}.iphone:after{content:"";position:absolute;top:9px;left:50%;transform:translate(-50%);width:26%;height:8px;background:#14110d;border-radius:7px;z-index:2}.about-row{display:flex;gap:3.5rem;align-items:flex-start;flex-wrap:wrap}.about-row p{font-weight:300;font-size:1.9rem;line-height:1.5;max-width:24rem}.about-row .email{display:inline-block;margin-top:1.6rem;font-weight:300;font-size:1.5rem;color:var(--mid);transition:color .18s}.about-row .email:hover{color:var(--mark)}.about-row .item{width:min(420px,40vw)}.social{position:fixed;bottom:clamp(1.25rem,3vw,2.5rem);left:clamp(1.25rem,4vw,3rem);display:flex;gap:clamp(.9rem,1.5vw,1.4rem);z-index:50}.social a{font-size:clamp(.8rem,1vw,.9rem);letter-spacing:.04em;color:var(--soft);transition:color .18s}.social a:hover{color:var(--mark)}@media(max-width:860px){.mid{grid-template-columns:1fr;margin-top:3rem}.deck{flex-direction:column;gap:1.6rem}.works{width:100%}.work{font-size:1.35rem}.viewer{width:100%;max-width:none}.sheet{height:auto;overflow:visible}.sheet.more{-webkit-mask-image:none;mask-image:none}.sheet .cells{width:100%}.sheet .cells.uncropped img{max-width:100%;max-height:60vh}.work-row .sl,.about-row .item{width:100%}.social{position:static;margin-top:2.5rem}}@media(prefers-reduced-motion:reduce){.grp.show{animation:none}.item:hover .shot img{transform:none}}
