@font-face{font-family:Crimson Pro Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/crimson-pro-vietnamese-wght-normal.Djpar-EE.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:Crimson Pro Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/crimson-pro-latin-ext-wght-normal.4mBZvMWv.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:Crimson Pro Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/crimson-pro-latin-wght-normal.C4R2PX-h.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/archivo-vietnamese-wght-normal.XAtsl5Q_.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/archivo-latin-ext-wght-normal.C4zznr8T.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/archivo-latin-wght-normal.E0tuGl4L.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:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/space-mono-vietnamese-400-normal.BNOj0Qhp.woff2)format("woff2"),url(/_astro/space-mono-vietnamese-400-normal.B0PMp_xB.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:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/space-mono-latin-ext-400-normal.DTLbW2xa.woff2)format("woff2"),url(/_astro/space-mono-latin-ext-400-normal.D4cJI_B-.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:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/space-mono-latin-400-normal.Rg4St2Dn.woff2)format("woff2"),url(/_astro/space-mono-latin-400-normal._3DlpgIW.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}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/space-mono-vietnamese-700-normal.DWQgDHuA.woff2)format("woff2"),url(/_astro/space-mono-vietnamese-700-normal.D-KrLuLr.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:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/space-mono-latin-ext-700-normal.B2s3bDs2.woff2)format("woff2"),url(/_astro/space-mono-latin-ext-700-normal.B_E7P90g.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:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/space-mono-latin-700-normal.mWgeinG7.woff2)format("woff2"),url(/_astro/space-mono-latin-700-normal.D7A851RN.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{--paper:#fbfaf7;--page-bg:#edebe4;--card:#fff;--accent-tint:#fbf1e4;--ink:#14201f;--ink-2:#46534f;--ink-3:#7b8785;--accent:#b45309;--accent-deep:#7c3a05;--rule:#e4e2da;--serif:"Crimson Pro Variable", "Crimson Pro", Georgia, serif;--sans:"Archivo Variable", "Archivo", system-ui, sans-serif;--mono:"Space Mono", ui-monospace, "Cascadia Code", Consolas, monospace;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--radius-sm:6px;--radius-md:8px;--radius-lg:10px;--radius-xl:12px;--radius-2xl:14px;--radius-3xl:16px;--radius-full:999px;--elevation-1:0 1px 2px #0000000f, 0 4px 12px #0000000d;--elevation-2:0 2px 4px #00000014, 0 12px 32px #0000001a;--ease-standard:cubic-bezier(.4, 0, .2, 1);--ease-emphasized:cubic-bezier(.16, 1, .3, 1);--duration-fast:.12s;--duration-base:.18s;--duration-slow:.26s;--measure:68ch}*,:before,:after{box-sizing:border-box}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-text-size-adjust:100%}body{background:var(--page-bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;flex-direction:column;min-height:100vh;margin:0;font-size:1rem;line-height:1.6;display:flex}h1,h2,h3,h4,h5,h6{font-family:var(--serif);color:var(--ink);margin:0 0 var(--space-4);letter-spacing:-.01em;font-weight:700;line-height:1.15}h1{font-size:clamp(2rem,5vw,2.6rem)}h2{font-size:clamp(1.5rem,3.5vw,2rem)}h3{font-size:1.35rem;font-weight:600}h4{font-size:1.1rem;font-weight:600}p{margin:0 0 var(--space-5);color:var(--ink-2);max-width:var(--measure)}h1+p{color:var(--ink);font-size:1.15rem}a{color:var(--accent);text-underline-offset:2px;transition:color var(--duration-fast) var(--ease-standard);text-decoration-thickness:1px}a:hover{color:var(--accent-deep)}strong{color:var(--ink);font-weight:600}hr{border:0;border-top:1px solid var(--rule);margin:var(--space-10) 0}code{font-family:var(--mono);background:var(--accent-tint);color:var(--accent-deep);border-radius:var(--radius-sm);padding:.1em .4em;font-size:.9em}pre{background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--elevation-1);overflow-x:auto}pre code{color:var(--ink);background:0 0;padding:0;font-size:.875rem}img{max-width:100%;height:auto}::selection{background:var(--accent-tint);color:var(--accent-deep)}.wrap{width:100%;max-width:72ch;padding-inline:var(--space-6);margin-inline:auto}.wrap--wide{max-width:960px}main.wrap{padding-block:var(--space-12) var(--space-16);flex:1}.site-header{background:color-mix(in srgb, var(--page-bg) 88%, transparent);border-bottom:1px solid var(--rule);-webkit-backdrop-filter:saturate(140%)blur(6px);backdrop-filter:saturate(140%)blur(6px);z-index:10;position:sticky;top:0}.nav{gap:var(--space-2) var(--space-6);padding-block:var(--space-4);font-family:var(--mono);letter-spacing:.03em;flex-wrap:wrap;align-items:baseline;font-size:.8125rem;display:flex}.nav .nav-brand{color:var(--ink);margin-right:auto;font-weight:700;text-decoration:none}.nav .nav-brand .brand-accent{color:var(--accent)}.nav a{color:var(--ink-2);text-decoration:none}.nav a:hover{color:var(--accent)}.nav a[aria-current=page]{color:var(--accent);font-weight:700}.site-footer{border-top:1px solid var(--rule);background:var(--paper);padding-block:var(--space-8);margin-top:var(--space-16)}.footer-inner{gap:var(--space-4) var(--space-8);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.footer-prompt{font-family:var(--mono);color:var(--ink-2);font-size:.8125rem}.footer-prompt .prompt-sigil{color:var(--accent)}.footer-links{gap:var(--space-5);font-family:var(--mono);letter-spacing:.03em;font-size:.75rem;display:flex}.footer-links a{color:var(--ink-3);text-decoration:none}.footer-links a:hover{color:var(--accent)}.footer-built{font-family:var(--mono);color:var(--ink-3);letter-spacing:.02em;font-size:.75rem}.prompt{font-family:var(--mono);color:var(--ink-2);font-size:.9375rem}.prompt .prompt-sigil{color:var(--accent);font-weight:700}.prompt .cursor{vertical-align:-.15em;background:var(--accent);width:.55em;height:1.05em;margin-left:.15em;animation:1.1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.hero{padding-block:var(--space-12) var(--space-8);position:relative}.hero:before{content:"";inset:calc(-1 * var(--space-6)) calc(-1 * var(--space-6)) auto;background-image:radial-gradient(var(--rule) 1px, transparent 1px);opacity:.55;z-index:-1;pointer-events:none;background-size:22px 22px;height:340px;position:absolute;-webkit-mask-image:linear-gradient(#000,#0000);mask-image:linear-gradient(#000,#0000)}.hero-name{margin-bottom:var(--space-4);font-size:clamp(2.5rem,8vw,4rem);font-weight:700;line-height:1.02}.hero-tagline{font-family:var(--serif);color:var(--ink-2);max-width:30ch;margin-bottom:var(--space-6);font-size:clamp(1.25rem,3.5vw,1.6rem);font-weight:500}.launchpad{gap:var(--space-3);flex-wrap:wrap;display:flex}.launchpad a{font-family:var(--mono);letter-spacing:.02em;color:var(--ink);background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius-full);padding:var(--space-2) var(--space-5);box-shadow:var(--elevation-1);transition:border-color var(--duration-base) var(--ease-standard), color var(--duration-fast) var(--ease-standard), transform var(--duration-base) var(--ease-emphasized);font-size:.875rem;text-decoration:none}.launchpad a:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-2px)}.now-building{margin-top:var(--space-10);padding:var(--space-4) var(--space-5);background:var(--accent-tint);border:1px solid var(--rule);border-radius:var(--radius-lg);max-width:var(--measure)}.now-building .now-label{font-family:var(--mono);text-transform:uppercase;letter-spacing:.12em;color:var(--accent-deep);margin-bottom:var(--space-1);font-size:.6875rem;display:block}.now-building p{color:var(--ink);margin:0}.card-grid{gap:var(--space-6);margin-top:var(--space-8);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.card{background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius-2xl);padding:var(--space-6);box-shadow:var(--elevation-1);transition:box-shadow var(--duration-base) var(--ease-standard), transform var(--duration-base) var(--ease-emphasized);flex-direction:column;display:flex;position:relative}.card:hover{box-shadow:var(--elevation-2);transform:translateY(-2px)}.card h3{margin-bottom:var(--space-3)}.card p{color:var(--ink-2)}.card-flagship{background:var(--card);border-top:3px solid var(--accent)}.card-head{align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.card-head h3{margin-bottom:0}.badge{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;border-radius:var(--radius-full);padding:.2em .6em;font-size:.625rem}.badge-flagship{background:var(--accent-tint);color:var(--accent-deep);border:1px solid color-mix(in srgb, var(--accent) 25%, transparent)}.badge-wip{background:var(--paper);color:var(--ink-3);border:1px solid var(--rule)}.tags{gap:var(--space-2);padding-top:var(--space-5);flex-wrap:wrap;margin-top:auto;list-style:none;display:flex}.tag{font-family:var(--mono);letter-spacing:.02em;color:var(--accent-deep);background:var(--accent-tint);border:1px solid color-mix(in srgb, var(--accent) 18%, transparent);border-radius:var(--radius-full);padding:.15rem .6rem;font-size:.75rem}.post-list{margin:var(--space-8) 0 0;padding:0;list-style:none}.post-list li{padding-block:var(--space-6);border-bottom:1px solid var(--rule)}.post-list li:first-child{padding-top:0}.post-list .post-title{font-family:var(--serif);margin:0 0 var(--space-2);font-size:1.5rem;font-weight:600}.post-list .post-title a{color:var(--ink);text-decoration:none}.post-list .post-title a:hover{color:var(--accent)}.post-list .post-desc{margin:var(--space-2) 0 0}.post-date{font-family:var(--mono);letter-spacing:.03em;color:var(--ink-3);text-transform:uppercase;font-size:.75rem}.post-header{margin-bottom:var(--space-8)}.post-header h1{margin-bottom:var(--space-3)}.post-meta{align-items:center;gap:var(--space-3) var(--space-4);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.post-meta .tags{margin:0;padding:0}.prose,.prose>*{max-width:var(--measure)}.prose h2{margin-top:var(--space-10)}.prose h3{margin-top:var(--space-8)}.prose p{font-size:1.0625rem}.prose a{color:var(--accent);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent)}.prose a:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.prose ul,.prose ol{color:var(--ink-2);padding-left:var(--space-6);margin-bottom:var(--space-5);max-width:var(--measure)}.prose li{margin-bottom:var(--space-2)}.prose blockquote{margin:var(--space-6) 0;padding:var(--space-2) var(--space-5);border-left:3px solid var(--accent);background:var(--accent-tint);border-radius:0 var(--radius-md) var(--radius-md) 0;color:var(--ink-2);font-style:italic}.back-link{margin-top:var(--space-10);font-family:var(--mono);font-size:.8125rem;text-decoration:none;display:inline-block}.contact-list{margin:var(--space-8) 0 0;gap:var(--space-1);max-width:34ch;padding:0;list-style:none;display:grid}.contact-row{align-items:baseline;gap:var(--space-4);padding-block:var(--space-3);border-bottom:1px solid var(--rule);display:flex}.contact-row .contact-label{font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);min-width:8ch;font-size:.75rem}.contact-row a{text-decoration:none}.contact-row a:hover{text-decoration:underline}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.prompt .cursor{opacity:1;animation:none}}.hero-subhead{font-family:var(--serif);color:var(--ink-2);max-width:46ch;margin-bottom:var(--space-6);font-size:clamp(1.25rem,3vw,1.6rem);font-weight:500}.hero-prompt{margin-bottom:var(--space-6)}.hero-intro{color:var(--ink-2);max-width:58ch;margin-bottom:var(--space-8);font-size:1.0625rem}.home-featured{margin-top:var(--space-16)}.section-label{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-size:.75rem;font-weight:700}.post-meta-line{align-items:baseline;gap:var(--space-2) var(--space-3);margin:0 0 var(--space-2);flex-wrap:wrap;display:flex}.post-readtime{font-family:var(--mono);letter-spacing:.03em;color:var(--ink-3);font-size:.75rem}.post-dot{color:var(--ink-3)}.post-featured{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;border-radius:var(--radius-full);background:var(--accent-tint);color:var(--accent-deep);border:1px solid color-mix(in srgb, var(--accent) 25%, transparent);padding:.15em .6em;font-size:.625rem}.about-photo{margin:0 0 var(--space-8);max-width:240px}.about-photo img{aspect-ratio:1;object-fit:cover;border:1px solid var(--rule);border-radius:var(--radius-xl);width:100%;height:auto;box-shadow:var(--elevation-1);display:block}.about-photo figcaption{margin-top:var(--space-2);font-family:var(--mono);letter-spacing:.03em;color:var(--ink-3);font-size:.6875rem}.about-currently{margin-top:var(--space-10);margin-bottom:var(--space-2)}.about-currently-text{color:var(--ink)}.card-descriptor{font-family:var(--serif);color:var(--ink);margin-bottom:var(--space-3);font-size:1.0625rem;font-style:italic}.working-subhead{margin-top:var(--space-10);font-size:1.35rem}.help-list{margin:var(--space-5) 0 var(--space-8);gap:var(--space-5);max-width:var(--measure);padding:0;list-style:none;display:grid}.help-list li{padding-left:var(--space-5);border-left:2px solid var(--rule);color:var(--ink-2)}.help-list strong{color:var(--ink)}.working-close{font-size:1.0625rem}@media (width<=640px){main.wrap{padding-block:var(--space-8) var(--space-12)}.footer-inner{flex-direction:column;align-items:flex-start}.card-grid{grid-template-columns:1fr}}
