@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+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: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+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: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+??,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:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/public-sans-vietnamese-400-normal.TxZB8OSn.woff2)format("woff2"),url(/_astro/public-sans-vietnamese-400-normal.BO1meqcx.woff)format("woff");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:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/public-sans-latin-ext-400-normal.mk90oQqJ.woff2)format("woff2"),url(/_astro/public-sans-latin-ext-400-normal.B02wwOdZ.woff)format("woff");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:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/public-sans-latin-400-normal.8Rpg0ruU.woff2)format("woff2"),url(/_astro/public-sans-latin-400-normal.SBbinRkI.woff)format("woff");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{--color-accent:#1a1a1a;--color-accent-hover:color-mix(in oklch, var(--color-accent), black 12%);--color-accent-soft:color-mix(in oklch, var(--color-accent), transparent 84%);--color-on-accent:#fff;--color-bg:#fff;--color-surface:#f7f7f5;--color-soft:#fafafa;--color-text:#1a1a1a;--color-muted:#8a8a8a;--color-line:#ececec;--color-line-strong:#d8d8d8;--font-display:"Fraunces Variable", Georgia, "Times New Roman", serif;--font-body:"Public Sans", -apple-system, system-ui, sans-serif;--content-width:1160px;--prose-width:68ch;--page-pad:clamp(1rem, 3vw, 2rem);--baseline:1.5rem;--hairline:.5px solid var(--color-line);--focus-ring:0 0 0 3px var(--color-accent-soft);--header-height:4.75rem}*,:before,:after{box-sizing:border-box}html{background:var(--color-bg);min-width:320px;color:var(--color-text);font-family:var(--font-body);text-rendering:optimizelegibility;font-size:16px}body{background:var(--color-bg);min-width:320px;margin:0}::selection{background:var(--color-accent-soft);color:var(--color-text)}button,input,textarea,select{font:inherit}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}a{color:inherit;text-decoration:none}a:not(.brand,.button){background-image:linear-gradient(var(--color-accent), var(--color-accent));background-position:0 100%;background-repeat:no-repeat;background-size:0 1px;transition:background-size .18s,color .18s}a:not(.brand,.button):hover{color:var(--color-accent-hover);background-size:100% 1px}.viewer-link{background-image:none}:focus-visible{outline:1px solid var(--color-accent);outline-offset:3px;box-shadow:var(--focus-ring)}.section{width:min(var(--content-width), calc(100% - var(--page-pad) * 2));margin-inline:auto;padding-block:clamp(2rem,4vw,3.25rem)}.page-head{border-bottom:var(--hairline);position:relative}.page-head:after{content:"";width:4.5rem;height:1px;margin-top:calc(var(--baseline) * 1.25);background:var(--color-accent);display:block}.hero{border-bottom:var(--hairline);align-content:center;min-height:28vh;padding-block:clamp(2rem,5vw,3rem);display:grid;position:relative}.eyebrow{margin:0 0 calc(var(--baseline) * .85);color:var(--color-accent);font-family:var(--font-display);text-transform:uppercase;align-items:center;gap:.75rem;font-size:.75rem;font-weight:700;display:inline-flex}.eyebrow:before{content:"";background:currentColor;width:2.25rem;height:1px}h1,h2,h3,.eyebrow,.brand,p{margin-top:0}h1,h2,h3{max-width:12.5ch;font-family:var(--font-display);font-variation-settings:"opsz" 72, "SOFT" 20, "WONK" 1;font-weight:650}h1{margin-bottom:calc(var(--baseline) * 1.1);font-size:clamp(2.75rem,6vw,4.75rem);line-height:.98}h2{margin-bottom:var(--baseline);font-size:clamp(1.65rem,3.5vw,2.5rem);line-height:1.05}h3{margin-bottom:calc(var(--baseline) * .4);font-size:1.3rem;line-height:1.08}p{line-height:1.75}.lead{max-width:var(--prose-width);color:var(--color-muted);font-size:clamp(1.05rem,1.5vw,1.2rem);line-height:1.8}.action-row{margin-top:calc(var(--baseline) * 1.5);flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;display:flex}.button{border:1px solid var(--color-accent);background:var(--color-accent);min-height:2.85rem;color:var(--color-on-accent);letter-spacing:.01em;justify-content:center;align-items:center;padding:.72rem 1.4rem;font-size:.85rem;font-weight:700;transition:background .18s,border-color .18s,color .18s;display:inline-flex}.button:hover{border-color:var(--color-accent-hover);background:var(--color-accent-hover);color:var(--color-on-accent)}.button-outline{color:var(--color-accent);background:0 0}.button-outline:hover{color:var(--color-accent-hover);background:0 0}.text-link{font-weight:700}.feature-list{background:var(--color-line);border:var(--hairline);grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:1px;display:grid}.feature-list>*{background:var(--color-bg);min-height:10rem;padding:clamp(1.5rem,3vw,2.25rem)}.feature-list p:not(.eyebrow){max-width:var(--prose-width);color:var(--color-muted)}.prose-grid{grid-template-columns:minmax(12rem,.75fr) minmax(0,1.25fr);gap:clamp(2.5rem,7vw,6rem);display:grid}.prose-grid p{max-width:var(--prose-width);color:var(--color-muted)}.work-list{background:var(--color-line);border:var(--hairline);gap:1px;display:grid}.work-card{background:var(--color-bg);grid-template-columns:minmax(10rem,.38fr) minmax(0,.82fr) minmax(16rem,1fr);align-items:start;gap:clamp(1.25rem,4vw,3rem);min-height:13rem;padding:clamp(1.5rem,4vw,3rem);display:grid}.work-card h2{max-width:15ch;font-size:clamp(1.85rem,4vw,3.75rem)}.work-card p{color:var(--color-muted)}.entry-meta{color:var(--color-muted);letter-spacing:0;text-transform:uppercase;flex-wrap:wrap;gap:.45rem 1rem;font-size:.78rem;font-weight:700;display:flex}.content-index,.article-layout{grid-template-columns:minmax(11rem,.45fr) minmax(0,1.55fr);align-items:start;gap:clamp(2rem,6vw,5rem);display:grid}.index-sidebar,.article-toc{top:calc(var(--header-height) + 1.5rem);position:sticky}.tag-cloud,.article-toc nav{flex-wrap:wrap;gap:.65rem;margin:0;padding:0;display:flex}.tag-cloud a{border:var(--hairline);background:var(--color-bg);min-height:2.1rem;color:var(--color-muted);align-items:center;padding:.35rem .7rem;font-size:.82rem;font-weight:700;display:inline-flex}.tag-cloud a[aria-current]{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-on-accent)}.entry-list{background:var(--color-line);border:var(--hairline);gap:1px;display:grid}.entry-card{background:var(--color-bg);min-height:13rem;padding:clamp(1.5rem,4vw,3rem)}.entry-card h2{max-width:15ch;font-size:clamp(1.85rem,4vw,3.75rem)}.entry-card p,.prose p,.prose li{color:var(--color-muted)}.entry-card .entry-meta,.article-head .entry-meta{margin-bottom:var(--baseline)}.article-head .entry-meta{margin-top:calc(var(--baseline) * 1.35)}.article-head:after{display:none}.post-nav-section{padding-block-start:0}.post-nav{background:var(--color-line);border:var(--hairline);grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;display:grid}.post-nav>*{background:var(--color-bg);padding:clamp(1.25rem,3vw,2rem)}.post-nav a{background-image:none;align-content:start;gap:.55rem;display:grid}.post-nav-label{color:var(--color-muted);letter-spacing:0;text-transform:uppercase;font-size:.78rem;font-weight:700}.post-nav-title{font-family:var(--font-display);font-size:1.2rem;font-weight:650;line-height:1.2}.post-nav-next{text-align:right}.related-list{border-top:var(--hairline);margin:0;padding:0;list-style:none}.related-list li{padding-block:calc(var(--baseline) * .85);border-bottom:var(--hairline);flex-wrap:wrap;justify-content:space-between;gap:.45rem 1rem;display:flex}.related-list a{font-family:var(--font-display);font-size:1.1rem;font-weight:650}.related-list time{color:var(--color-muted);letter-spacing:0;text-transform:uppercase;font-size:.78rem;font-weight:700}.article-toc nav{flex-direction:column;align-items:flex-start}.article-toc a{color:var(--color-muted);font-size:.9rem;font-weight:700}.prose{max-width:var(--prose-width)}.prose h2,.prose h3,.prose [id]{scroll-margin-top:calc(var(--header-height) + 1.5rem)}.prose h2,.prose h3{max-width:18ch;margin-top:calc(var(--baseline) * 2.2)}.prose h2:first-child,.prose h3:first-child{margin-top:0}.prose a{font-weight:700}.prose ul,.prose ol{padding-left:1.2rem}.overlay{z-index:200;display:none;position:fixed;inset:0}.overlay:target{display:block}body:has(.overlay:target){overflow:hidden}.overlay .overlay-backdrop{background:#1a1a1a99;position:absolute;inset:0}.overlay-panel{width:min(var(--content-width), calc(100% - var(--page-pad) * 2));background:var(--color-bg);border:var(--hairline);max-height:calc(100vh - clamp(2rem,8vw,6rem));margin:clamp(1rem,4vw,3rem) auto;position:relative;overflow-y:auto}.overlay-bar{z-index:1;background:var(--color-bg);border-bottom:var(--hairline);justify-content:flex-end;padding:12px 16px;display:flex;position:sticky;top:0}.overlay .overlay-close{color:var(--color-muted);background-image:none;font-size:16px}.overlay .overlay-close:hover{color:var(--color-text)}@media (width<=760px){.work-card,.feature-list,.prose-grid,.content-index,.article-layout{grid-template-columns:1fr}.index-sidebar,.article-toc{position:static}.post-nav{grid-template-columns:1fr}.post-nav>span{display:none}.post-nav-next{text-align:left}h1,h2,h3{max-width:100%}}
