@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_next/static/media/space-grotesk-vietnamese-wght-normal.D0rl6rjA.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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_next/static/media/space-grotesk-latin-ext-wght-normal.D9tNdqV9.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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_next/static/media/space-grotesk-latin-wght-normal.BhU9QXUp.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{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--background:#fcfcfa;--text-primary:#191918;--text-secondary:#6f6b65;--text-tertiary:#77736e;--border:#e7e7e2;--color-accent:#9b5a3c;--color-accent-hover:#7d432c;--color-accent-subtle:#9b5a3c24;--font-sans:"Space Grotesk Variable", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--container:760px;--article:680px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:40px;--space-8:52px;--space-9:64px;--section-gap:46px;--motion-preference:no-preference}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*{box-sizing:border-box;box-shadow:none;border-radius:0}html{background:var(--background);color:var(--text-primary);scroll-behavior:auto}body{background:var(--background);min-height:100%;color:var(--text-primary);font-family:var(--font-sans);overflow-wrap:anywhere;margin:0;font-size:17px;line-height:1.65}.preview-banner{justify-content:center;align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:13px;display:flex}.preview-banner form{margin:0}.preview-banner button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:1px solid;padding:0}.preview-banner button:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px}a{color:inherit;text-underline-offset:.18em;text-decoration-color:#0000;text-decoration-thickness:1px;transition:color .15s,text-decoration-color .15s}a:hover{-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent)}a:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px}ul,ol,dl,p,h1,h2,h3{margin-block:0}ul,ol{padding:0}.site-shell,.detail-page{width:100%;max-width:var(--container);margin-inline:auto;padding:56px 24px}.skip-link{top:var(--space-4);left:var(--space-4);z-index:10;padding:var(--space-2) var(--space-3);background:var(--text-primary);color:var(--background);position:fixed;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.site-header{justify-content:space-between;align-items:baseline;gap:var(--space-5);display:flex}.site-wordmark{align-items:baseline;gap:var(--space-4);min-width:0;display:flex}.site-title{flex:none;font-size:15px;font-weight:600;line-height:1.3;text-decoration:none}.rotating-phrase{width:174px;color:var(--text-tertiary);opacity:1;font-size:13px;line-height:1.5;transition:opacity .21s,transform .21s;display:none;transform:translateY(0)}.rotating-phrase[data-visible=false]{opacity:0;transform:translateY(4px)}.page-transition{animation:.19s ease-out both page-enter}@keyframes page-enter{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.header-links,.footer-links{gap:var(--space-4);flex-wrap:wrap;list-style:none;display:flex}.header-links{font-size:14px;line-height:1.5}.introduction{margin-top:var(--space-9);position:relative}.introduction h1,.detail-header h1{max-width:var(--article);letter-spacing:-.02em;font-size:30px;font-weight:500;line-height:1.28}.introduction-body{max-width:620px;color:var(--text-secondary);margin-top:20px;font-size:17px;line-height:1.64}.introduction-body>*+*,.section-description+.now-list{margin-top:var(--space-4)}.section-description,.section-prose{color:var(--text-secondary)}.content-section{margin-top:var(--section-gap)}.now-section{margin-top:48px}.section-heading{padding-bottom:var(--space-2);border-bottom:1px solid var(--border);font-size:19px;font-weight:600;line-height:1.3}.section-body,.footer-body{margin-top:16px}.now-list{gap:var(--space-2);display:grid}.now-row{align-items:baseline;gap:var(--space-4);grid-template-columns:112px minmax(0,1fr);display:grid}.now-row dt,.section-meta,.item-meta,.dated-list time,.notes-list time,.detail-meta,.eyebrow{color:var(--text-tertiary);font-family:var(--font-mono);font-size:13px;line-height:1.5}.now-row dd{margin:0}.section-meta{margin-top:16px}.project-list,.research-list,.dated-list,.notes-list,.related ul{gap:17px;list-style:none;display:grid}.project-list li,.research-list li{gap:5px;display:grid}.item-heading{align-items:baseline;gap:var(--space-5);grid-template-columns:minmax(0,1fr) auto;min-width:0;text-decoration:none;display:grid}:is(.item-heading:hover .item-title,.item-heading:focus-visible .item-title){text-decoration:underline;-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent);text-underline-offset:.18em;text-decoration-thickness:1px}.row-arrow{color:var(--text-tertiary);transition:color .15s,transform .15s}:is(.item-heading:hover .row-arrow,.item-heading:focus-visible .row-arrow){color:var(--color-accent);transform:translate(2px)}.project-meta{gap:var(--space-2);flex-wrap:wrap;display:flex}.project-status.is-ongoing{color:var(--color-accent)}.project-meta a{text-decoration-color:currentColor}.item-title{color:var(--text-primary);font-size:17px;font-weight:600;line-height:1.45}.item-summary{color:var(--text-secondary);font-size:15px;font-weight:400;line-height:1.55}.item-meta{margin-top:0}.more-link{margin-top:16px;display:inline-block}.dated-list a{align-items:baseline;gap:var(--space-5);grid-template-columns:minmax(0,1fr) auto;text-decoration:none;display:grid}.dated-list a:hover .item-title,.notes-list a:hover span{text-decoration:underline;-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent);text-underline-offset:.18em}.dated-list a:focus-visible .item-title{text-decoration:underline;-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent);text-underline-offset:.18em}.notes-list a:focus-visible span{text-decoration:underline;-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent);text-underline-offset:.18em}.notes-list{gap:var(--space-2)}.notes-list a{align-items:baseline;gap:var(--space-4);grid-template-columns:112px minmax(0,1fr);text-decoration:none;display:grid}.prose{max-width:var(--article)}.prose>*+*{margin-top:16px}.prose ul,.prose ol{padding-left:var(--space-5)}.prose blockquote{padding-left:var(--space-4);border-left:1px solid var(--border);color:var(--text-secondary);margin-inline:0}.prose figure{margin-inline:0}.prose figcaption,.prose caption{color:var(--text-tertiary);font-family:var(--font-mono);text-align:left;font-size:13px;line-height:1.5}.prose img{width:auto;height:auto;display:block}.code-block pre{margin:var(--space-2) 0 0;padding:var(--space-4) 0;border-block:1px solid var(--border);white-space:pre}.table-scroll{max-width:100%;overflow-x:auto}.prose table{width:100%}.prose th,.prose td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.empty-state h1{font-size:21px;line-height:1.3}.empty-state p{margin-top:var(--space-5);color:var(--text-secondary)}.error-actions{gap:var(--space-5);margin-top:var(--space-5);display:flex}.error-actions button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:1px solid;padding:0}.error-actions button:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px}.site-footer{margin-top:var(--section-gap);font-size:14px;line-height:1.5}.footer-body{gap:var(--space-5);display:grid}.back-link{font-size:14px}.detail-header{max-width:var(--article);margin-top:var(--section-gap)}.detail-header h1{margin-top:var(--space-2)}.detail-meta{margin-top:var(--space-4)}.article-prose{margin-top:40px}.article-prose h2{margin-top:40px;font-size:19px;line-height:1.3}.article-prose h3{margin-top:var(--space-6);font-size:17px;line-height:1.45}.article-prose pre,.article-prose code{font-family:var(--font-mono)}.article-prose pre{max-width:100%;overflow-x:auto}.article-prose img,.article-prose table{max-width:100%}.article-prose table{border-collapse:collapse;display:block;overflow-x:auto}.related{margin-top:var(--section-gap)}.related ul{margin-top:var(--space-5);gap:var(--space-3)}.detail-back{margin-top:var(--section-gap);display:inline-block}.standfirst{color:var(--text-secondary);font-size:18px;line-height:1.6}.project-links{gap:var(--space-4);flex-wrap:wrap;display:flex}.source-list,.change-log{padding-left:var(--space-5)}.change-log li{padding-left:var(--space-2)}.change-log time{color:var(--text-tertiary);font-family:var(--font-mono);font-size:13px;display:block}.archive-page{width:100%;max-width:var(--container);margin-inline:auto;padding:56px 24px}.archive-header{margin-top:var(--section-gap)}.archive-header h1{padding-bottom:var(--space-2);border-bottom:1px solid var(--border);letter-spacing:-.02em;font-size:30px;font-weight:500;line-height:1.28}.archive-header p{margin-top:var(--space-4);color:var(--text-secondary)}.archive-list{gap:24px;margin-top:40px;list-style:none;display:grid}.archive-list a{gap:var(--space-5);grid-template-columns:minmax(0,1fr) auto;text-decoration:none;display:grid}.archive-list a>span:first-child{display:grid}.archive-list a>span:first-child>span{color:var(--text-secondary)}.archive-list strong{font-size:17px;font-weight:600}:is(.archive-list a:hover strong,.archive-list a:focus-visible strong){text-underline-offset:.18em;text-decoration:underline}.archive-meta{color:var(--text-tertiary);font-family:var(--font-mono);text-align:right;font-size:13px;line-height:1.5}.archive-notes,.empty-message{margin-top:40px}.about-work{max-width:var(--article);margin-top:var(--section-gap)}.about-work h2{padding-bottom:var(--space-2);border-bottom:1px solid var(--border);font-size:19px;font-weight:600;line-height:1.3}.about-work-list{gap:17px;margin-top:16px;list-style:none;display:grid}.about-work-list a{gap:var(--space-1);text-decoration:none;display:grid}:is(.about-work-list a:hover .item-title,.about-work-list a:focus-visible .item-title){text-decoration:underline;-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent);text-underline-offset:.18em}.about-work-heading{justify-content:space-between;align-items:baseline;gap:var(--space-5);display:flex}@media (prefers-color-scheme:dark){:root{--background:#161615;--text-primary:#ecece8;--text-secondary:#a6a39d;--text-tertiary:#85817b;--border:#343431;--color-accent:#d08a68;--color-accent-hover:#e19a77;--color-accent-subtle:#d08a6829}}@media (min-width:760px){.rotating-phrase{display:inline-block}}@media (max-width:640px){.site-shell,.detail-page,.archive-page{padding:var(--space-7) 20px}.site-header{align-items:flex-start;gap:var(--space-4);flex-direction:column}.introduction{margin-top:48px}.introduction h1,.detail-header h1{font-size:28px}.content-section,.site-footer,.now-section{margin-top:44px}.now-list{gap:var(--space-4)}.now-row,.dated-list a,.notes-list a{gap:var(--space-1);grid-template-columns:minmax(0,1fr)}.notes-list{gap:var(--space-4)}.notes-list a span{grid-row:1}.notes-list a time{grid-row:2}.about-work-heading{align-items:start;gap:var(--space-1);flex-direction:column}.archive-list a{gap:var(--space-2);grid-template-columns:minmax(0,1fr)}.archive-meta{text-align:left}}@media (prefers-reduced-motion:reduce){:root{--motion-preference:reduce}a{transition:none}.page-transition{animation:none}.rotating-phrase,.row-arrow{transition:none}}
