@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-vietnamese-wght-normal.CnvboYUG.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-wght-normal.Ca2vKHc0.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-wght-normal.ukD16Tqj.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-wght-italic.BicUS2cM.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-wght-italic.BfTTTDIL.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-wght-italic.Py8at3oI.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:DM Mono;font-style:normal;font-display:swap;font-weight:300;src:url(/_astro/dm-mono-latin-300-normal.CNmLoeDX.woff2) format("woff2"),url(/_astro/dm-mono-latin-300-normal.CT8u5j2n.woff) format("woff")}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/dm-mono-latin-400-normal.4GdczIuU.woff2) format("woff2"),url(/_astro/dm-mono-latin-400-normal.-0xN8mdc.woff) format("woff")}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f5f2ed;--ink: #1a1814;--muted: #5c5956;--accent: #c94f2a;--rule: #dedad4;--card-bg: #efece7;--card-hover: #e8e4de}html{font-size:16px;scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:DM Mono,monospace;font-weight:300;line-height:1.7;min-height:100vh;display:flex;flex-direction:column}main{flex:1}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.032;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");background-size:300px}.scroll-nav{position:fixed;top:1.25rem;left:50%;transform:translate(-50%) translateY(-140%);z-index:100;opacity:0;transition:transform .35s cubic-bezier(.16,1,.3,1),opacity .3s ease;pointer-events:none}.scroll-nav--visible{transform:translate(-50%) translateY(0);opacity:1;pointer-events:auto}.scroll-nav__bar{display:flex;align-items:center;background:var(--card-bg);border:1px solid var(--rule);box-shadow:0 4px 24px #1a181414;padding:.3rem .4rem;gap:.1rem;white-space:nowrap}.scroll-nav__item{background:none;border:none;cursor:pointer;font-family:DM Mono,monospace;font-size:.62rem;font-weight:300;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding:.4rem .85rem;position:relative;transition:color .2s}.scroll-nav__item:after{content:"";position:absolute;bottom:0;left:.85rem;right:.85rem;height:1px;background:var(--accent);transform:scaleX(0);transition:transform .2s ease}.scroll-nav__item:hover,.scroll-nav__item--active{color:var(--ink)}.scroll-nav__item--active:after{transform:scaleX(1)}.scroll-nav__divider{display:block;width:1px;height:12px;background:var(--rule);margin:0 .3rem;align-self:center;flex-shrink:0}.scroll-nav__link{text-decoration:none}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.hero{max-width:980px;margin:0 auto;padding:5rem 3rem 4rem}.hero-identity{display:flex;align-items:center;justify-content:space-between;margin-bottom:2.5rem;padding-bottom:2rem;border-bottom:1px solid var(--rule);animation:fadeUp .5s ease both}.hero-identity-left{display:flex;flex-direction:row;align-items:center;gap:.8rem}.hero-nav{display:flex;gap:2rem}.hero-nav a{font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);text-decoration:none;transition:color .2s}.hero-nav a:hover{color:var(--accent)}.menu-btn{display:none}.hero-name{font-family:Fraunces Variable,serif;font-weight:300;font-style:italic;font-size:2.4rem;color:var(--ink);letter-spacing:-.01em}.hero-sep{color:var(--rule);font-size:.9rem}.hero-role{font-size:.65rem;text-transform:uppercase;letter-spacing:.18em;color:#fff;background:var(--accent);padding:.25em .65em}.hero-body{display:grid;grid-template-columns:240px 1fr;gap:3rem;align-items:stretch}.hero-photo-wrap{width:240px;overflow:hidden;border-radius:20px;border:1px solid var(--rule);box-shadow:0 4px 20px #1a18141a}.hero-photo{width:100%;height:100%;object-fit:cover;object-position:center 8%;display:block}.hero-content h1{font-family:Fraunces Variable,serif;font-size:clamp(2.2rem,5vw,3.8rem);font-weight:300;line-height:1.08;letter-spacing:-.02em;margin-bottom:1.25rem}.hero-content h1 .h1-line{display:block;opacity:0;animation:fadeUp .65s ease forwards}.hero-content h1 .h1-line:nth-child(1){animation-delay:.15s}.hero-content h1 .h1-line:nth-child(2){animation-delay:.35s}.hero-content h1 em{font-style:italic;color:var(--accent)}.hero .tagline{font-size:.9rem;color:var(--muted);max-width:480px;margin-bottom:2.5rem;line-height:1.9}.hero .tagline a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:1px;transition:color .2s}.hero .tagline a:hover{color:var(--accent)}.hero .cta-row{display:flex;gap:1rem;flex-wrap:wrap}.btn{display:inline-block;padding:.6rem 1.4rem;font-family:DM Mono,monospace;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;border:1px solid var(--ink);color:var(--ink);transition:background .2s,color .2s,border-color .2s}.btn:hover,.btn.filled{background:var(--ink);color:var(--bg)}.btn.filled:hover{background:var(--accent);border-color:var(--accent)}section{max-width:980px;margin:0 auto;padding:4rem 3rem;border-top:1px solid var(--rule)}section .section-label{display:flex;align-items:center;gap:.7rem;font-size:.62rem;text-transform:uppercase;letter-spacing:.22em;color:var(--muted);margin-bottom:2.5rem}section .section-label .num{color:var(--ink);letter-spacing:.1em}.about-text p{font-size:.92rem;color:var(--ink);margin-bottom:1.2rem;max-width:620px;line-height:1.85}.about-text a{color:inherit;text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:1px;transition:color .2s}.about-text a:hover{color:var(--accent)}.work-grid{display:flex;flex-direction:column;gap:16px}.work-card{background:var(--card-bg);padding:2.2rem;border-top:2px solid transparent;transition:border-color .2s,background .2s}.work-card:hover{border-top-color:var(--accent);background:var(--card-hover)}.card-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.6rem}.work-card h3{font-family:Fraunces Variable,serif;font-size:1.1rem;font-weight:400;letter-spacing:-.01em}.card-index{font-size:.6rem;letter-spacing:.18em;color:var(--muted);flex-shrink:0}.card-tag{font-size:.6rem;text-transform:uppercase;letter-spacing:.14em;padding:.2em .6em;border:1px solid var(--rule);color:var(--muted);flex-shrink:0}.work-card p{font-size:.84rem;color:var(--muted);line-height:1.75}.work-card .card-links{margin-top:1.1rem;display:flex;gap:1.4rem}.work-card .card-links a{font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:1px;transition:color .2s}.work-card .card-links a:hover{color:var(--accent)}.elsewhere-row{display:flex;flex-wrap:wrap;align-items:center;gap:0}.elsewhere-row a{font-family:Fraunces Variable,serif;font-style:italic;font-weight:300;font-size:1.05rem;color:var(--ink);text-decoration:none;padding:0 .9rem;transition:color .2s}.elsewhere-row a:first-child{padding-left:0}.elsewhere-row a:hover{color:var(--accent)}.elsewhere-sep{color:var(--rule);font-size:.9rem;line-height:1;user-select:none}.contact-hero{padding-top:3rem}.contact-eyebrow{font-size:.62rem;text-transform:uppercase;letter-spacing:.22em;color:var(--accent);margin-bottom:1rem}.contact-h1{font-family:Fraunces Variable,serif;font-size:clamp(2.4rem,6vw,4rem);font-weight:300;line-height:1.08;letter-spacing:-.02em;margin-bottom:1.25rem}.contact-h1 em{font-style:italic;color:var(--accent)}.contact-tagline{font-size:.9rem;color:var(--muted);max-width:480px;line-height:1.9}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.contact-card{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--card-bg);text-decoration:none;color:var(--ink);border-top:2px solid transparent;transition:border-color .2s,background .2s}.contact-card:hover{border-top-color:var(--accent);background:var(--card-hover)}.contact-icon{width:18px;height:18px;flex-shrink:0;color:var(--accent)}.contact-card-label{font-size:.56rem;text-transform:uppercase;letter-spacing:.16em;color:var(--muted);margin-bottom:.15rem}.contact-card-value{font-family:DM Mono,monospace;font-size:.82rem;font-weight:300;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}a.contact-card .contact-card-value{width:fit-content;border-bottom:1px solid var(--accent);padding-bottom:1px}.copy-btn{flex-shrink:0;display:flex;align-items:center;background:none;border:none;padding:.25rem;cursor:pointer;color:var(--muted);transition:color .2s}.copy-btn:hover{color:var(--ink)}.copy-btn:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.copy-icon{width:16px;height:16px}.contact-card-value{user-select:text}.contact-card-text{flex:1;min-width:0}.contact-card-value{user-select:text;transition:color .15s}.contact-card-value.copied-text{color:var(--accent);font-family:DM Mono,monospace;font-style:normal;font-size:.75rem;letter-spacing:.06em}@media (max-width: 640px){.contact-grid{grid-template-columns:1fr}}footer{border-top:1px solid var(--rule);width:100%}.footer-inner{max-width:980px;margin:0 auto;padding:1.75rem 3rem;display:flex;justify-content:space-between;align-items:center}footer span{font-size:.65rem;color:var(--muted);letter-spacing:.1em;text-transform:uppercase}.not-found{max-width:980px;margin:0 auto;padding:8rem 3rem}.not-found .eyebrow{font-size:.68rem;text-transform:uppercase;letter-spacing:.18em;color:var(--accent);margin-bottom:1.5rem}.not-found h1{font-family:Fraunces Variable,serif;font-size:clamp(2.8rem,6vw,4.5rem);font-weight:300;line-height:1.1;letter-spacing:-.02em;margin-bottom:1.5rem}.not-found p{font-size:.92rem;color:var(--muted);margin-bottom:2.5rem}@media (max-width: 640px){.hero,section,.footer-inner,.not-found{padding-left:1.25rem;padding-right:1.25rem}.hero{padding-top:1.5rem;padding-bottom:2.5rem}section{padding-top:2.5rem;padding-bottom:2.5rem}.hero-identity{margin-bottom:1.5rem;padding-bottom:1.25rem}.hero-name{font-size:1.9rem;white-space:nowrap}.hero-role{font-size:.6rem;letter-spacing:.12em;white-space:nowrap}.hero-nav{display:none}.hero-identity-left{gap:.5rem}.hero-body{grid-template-columns:1fr;gap:1.75rem}.hero-photo-wrap{width:75%;aspect-ratio:1;border-radius:14px;margin:0 auto}.hero-content h1{font-size:clamp(2rem,8vw,3rem)}}@media (max-width: 375px){.hero-name{font-size:1.8rem}.hero-role{font-size:.55;letter-spacing:.08em;padding:.2em .5em}}
