@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/be-vietnam-pro-vietnamese-400-normal-CRcqvyg1.woff2)format("woff2"),url(/assets/be-vietnam-pro-vietnamese-400-normal-BuGn0gnm.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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/be-vietnam-pro-latin-ext-400-normal-CiZNW1ec.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-ext-400-normal-DYBYyMQr.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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/be-vietnam-pro-latin-400-normal-PpnXBOrz.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-400-normal-bXgqVju9.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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/be-vietnam-pro-vietnamese-500-normal-DREgrEoJ.woff2)format("woff2"),url(/assets/be-vietnam-pro-vietnamese-500-normal-CfdwVo8-.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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/be-vietnam-pro-latin-ext-500-normal-h0Fp6aX0.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-ext-500-normal-CK0UkkKf.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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/be-vietnam-pro-latin-500-normal-B6LVzGNe.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-500-normal-BJkVuMHw.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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/be-vietnam-pro-vietnamese-600-normal-nyU-ZL2p.woff2)format("woff2"),url(/assets/be-vietnam-pro-vietnamese-600-normal-DkpCIyan.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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/be-vietnam-pro-latin-ext-600-normal-BNd8euf0.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-ext-600-normal-BeUwKxhG.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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/be-vietnam-pro-latin-600-normal-BZDkUTrt.woff2)format("woff2"),url(/assets/be-vietnam-pro-latin-600-normal-5IO4e7bK.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:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-cyrillic-ext-400-normal-CWV284fw.woff2)format("woff2"),url(/assets/source-serif-4-cyrillic-ext-400-normal-DLkyKLvH.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-cyrillic-400-normal-C44pakCn.woff2)format("woff2"),url(/assets/source-serif-4-cyrillic-400-normal-B8Z6Jvzv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-greek-400-normal-Cw5-AHNN.woff2)format("woff2"),url(/assets/source-serif-4-greek-400-normal-BccYJ-vZ.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-vietnamese-400-normal-BbG3LG1A.woff2)format("woff2"),url(/assets/source-serif-4-vietnamese-400-normal-DR1UuFon.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:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-latin-ext-400-normal-Cp7z-ARB.woff2)format("woff2"),url(/assets/source-serif-4-latin-ext-400-normal-CEpydyUl.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:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-latin-400-normal-DJ5YJwmz.woff2)format("woff2"),url(/assets/source-serif-4-latin-400-normal-Dn3IlU-Z.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:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-cyrillic-ext-600-normal-D_E8FDgP.woff2)format("woff2"),url(/assets/source-serif-4-cyrillic-ext-600-normal-DiT2IGQm.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-cyrillic-600-normal-BDP5YDHD.woff2)format("woff2"),url(/assets/source-serif-4-cyrillic-600-normal-DFnC3vAY.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-greek-600-normal-DdRkKr-1.woff2)format("woff2"),url(/assets/source-serif-4-greek-600-normal-DhXQw1Kl.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-vietnamese-600-normal-CznyfUKR.woff2)format("woff2"),url(/assets/source-serif-4-vietnamese-600-normal-B0WJbuqT.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:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-latin-ext-600-normal-0sIUyHMO.woff2)format("woff2"),url(/assets/source-serif-4-latin-ext-600-normal-C6NNqpJh.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:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-latin-600-normal-DouSKlru.woff2)format("woff2"),url(/assets/source-serif-4-latin-600-normal-DMD1h6_f.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:#e8eef2;--ink:#152028;--muted:#5a6570;--line:#c5ced6;--accent:#1f6b63;--field:#f4f7f9;--danger:#8a1f1f;--measure:40rem;color:var(--ink);background:var(--paper);font-family:Be Vietnam Pro,system-ui,sans-serif;line-height:1.55}*,:before,:after{box-sizing:border-box}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{min-height:100dvh;margin:0}#root{flex-direction:column;min-height:100dvh;display:flex}a{color:inherit;text-underline-offset:.2em}a:hover{color:var(--accent)}button,a,input[type=checkbox],label.check{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sr-only,.skip-link{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link:focus{clip:auto;background:var(--paper);width:auto;height:auto;color:var(--accent);z-index:10;margin:0;padding:.4rem .75rem;position:absolute;top:1rem;left:1rem;overflow:visible}.rule{border:0;border-top:1px solid var(--line);margin:0}.site-header__inner,.site-footer__inner,main{width:min(calc(100% - 2rem), var(--measure));margin-inline:auto}.site-header__inner{justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 0;display:flex}.wordmark{color:var(--ink);white-space:nowrap;font-family:"Source Serif 4",Georgia,serif;font-size:1.35rem;font-weight:600;text-decoration:none}nav{align-items:center;display:flex}.menu-btn{color:var(--ink);background:0 0;border:0;padding:.5rem;display:none}.nav-list{align-items:center;gap:1.25rem;margin:0;padding:0;list-style:none;display:flex}.nav-list a{font-weight:500;text-decoration:none}.nav-list a.active,.nav-search.active{color:var(--accent)}.nav-search{padding:.15rem;display:flex}main{flex:1;padding:2rem 0 3rem}main.is-wide{width:min(100% - 2rem,48rem)}.mast{border-bottom:1px solid var(--line);margin-bottom:2rem;padding:.25rem 0 2rem}.mast h1,main>section>h1,.about>h1,.prose>header>h1,.admin h1{margin:0 0 1rem;font-family:"Source Serif 4",Georgia,serif;font-size:clamp(1.85rem,4vw,2.5rem);font-weight:600;line-height:1.2}.about p,.lede{color:var(--muted);margin:0 0 1rem}.about .md{font-size:1.05rem}.about .md a{color:var(--accent)}.lede code,.admin code{font-size:.9em}.recent h2,.year-group h2,.about h2{margin:2rem 0 .75rem;font-family:"Source Serif 4",Georgia,serif;font-size:1.2rem;font-weight:600}.post-list{margin:0;padding:0;list-style:none}.post-card{border-bottom:1px solid var(--line);padding:1.25rem 0}.post-card h3{margin:0;font-family:"Source Serif 4",Georgia,serif;font-size:1.3rem;font-weight:600}.post-card h3 a{color:var(--ink);text-decoration:none}.post-card h3 a:hover{color:var(--accent);text-decoration:underline}.post-card time,.prose time{color:var(--muted);margin:.35rem 0 .5rem;font-size:.9rem;display:block}.post-card p{margin:0}.post-card__tags{flex-wrap:wrap;gap:.6rem .9rem;margin-top:.65rem;font-size:.9rem;display:flex}.post-card__tags a{color:var(--muted);text-decoration:none}.post-card__tags a:hover{color:var(--accent)}.more{margin:1.5rem 0 0}.more a{color:var(--accent)}.year-group{margin-top:1.75rem}.tag-cloud{flex-wrap:wrap;gap:.75rem 1.25rem;margin:1.25rem 0 0;padding:0;list-style:none;display:flex}.tag-cloud a{font-weight:500;text-decoration:none}.tag-cloud a:hover{color:var(--accent)}.social{align-items:center;display:flex}.social__icons{flex-wrap:wrap;gap:.1rem;display:flex}.social__link{color:var(--muted);padding:.35rem;display:inline-flex}.social__link:hover{color:var(--ink)}.site-footer{border-top:1px solid var(--line);margin-top:auto}.site-footer__inner{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:1.25rem 0 2rem;font-size:.9rem;display:flex}.crumb{margin:0 0 .75rem}.crumb a{text-decoration:none}.search-field input{width:100%;font:inherit;border:1px solid var(--line);background:var(--field);color:var(--ink);margin:.5rem 0 1.25rem;padding:.65rem .75rem}.resume{margin:0;padding:0;list-style:none}.resume li+li{margin-top:1.25rem}.resume h3{margin:0;font-size:1.15rem}.resume__meta{color:var(--muted);margin:.2rem 0 .4rem}.status{color:var(--muted)}.status.error{color:var(--danger)}.prose header{margin-bottom:1.75rem}.md{font-family:"Source Serif 4",Georgia,serif;font-size:1.125rem;line-height:1.7}.md>*+*{margin-top:1rem}.md h2,.md h3{margin-top:1.75rem}.md a{color:var(--accent)}.md pre,.md code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em}.md pre{border:1px solid var(--line);background:var(--field);padding:.9rem;overflow-x:auto}.md img{max-width:100%;height:auto}.admin-head{justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.5rem;display:flex}.admin-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.admin-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:1rem;padding:.9rem 0;display:flex}.button,.text-button{font:inherit;border-radius:0}.button{background:var(--ink);color:var(--paper);border:0;min-height:44px;padding:.55rem .9rem;text-decoration:none;display:inline-block}.button:hover{background:var(--accent);color:#fff}.button:disabled{opacity:.6;cursor:not-allowed}.button--ghost{color:var(--ink);border:1px solid var(--line);background:0 0;align-self:flex-start}.button--ghost:hover{background:var(--field);color:var(--ink)}.admin-nav{flex-wrap:wrap;gap:1rem 1.5rem;margin:0 0 1.75rem;display:flex}.admin-nav a{color:var(--accent)}.text-button{color:var(--danger);background:0 0;border:0;min-height:44px;padding:.5rem}.text-button--ink{color:var(--ink);text-align:left;padding-left:0;font-weight:600}.card-fields{border:0;border-top:1px solid var(--line);flex-direction:column;gap:.75rem;margin:0;padding:1rem 0 .25rem;display:flex}.card-fields legend{padding:0;font-weight:600}.writer{flex-direction:column;gap:.85rem;display:flex}.writer__title input{border:0;border-bottom:1px solid var(--line);width:100%;color:var(--ink);background:0 0;padding:.35rem 0 .6rem;font-family:"Source Serif 4",Georgia,serif;font-size:clamp(1.5rem,3vw,2rem);font-weight:600}.writer__tabs{gap:.5rem;display:flex}.writer__tabs button{font:inherit;color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;padding:.4rem .2rem}.writer__tabs button.is-active{color:var(--ink);border-bottom-color:var(--accent)}.toolbar{flex-wrap:wrap;gap:.35rem;display:flex}.toolbar button{font:inherit;background:var(--field);border:1px solid var(--line);color:var(--ink);min-height:40px;padding:.4rem .65rem;font-size:.9rem}.writer__body textarea{font:inherit;border:1px solid var(--line);background:var(--field);width:100%;min-height:min(32rem,70dvh);color:var(--ink);resize:vertical;padding:.85rem .75rem;line-height:1.6}.writer__preview{min-height:min(32rem,70dvh);padding:.5rem 0 1rem}.writer__more{border-top:1px solid var(--line);padding-top:.75rem}.writer__more summary{cursor:pointer;color:var(--muted);padding:.35rem 0;font-weight:500}.writer__more .editor__fields{margin-top:.85rem}.writer__bar{background:var(--paper);justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 0 .25rem;display:flex;position:sticky;bottom:0}.panel{max-width:var(--measure)}.panel code{font-size:.9em}.editor{grid-template-columns:1fr;gap:1.5rem;display:grid}.editor__fields{flex-direction:column;gap:.85rem;display:flex}.editor label{flex-direction:column;gap:.35rem;font-weight:500;display:flex}.editor input,.editor textarea{font:inherit;border:1px solid var(--line);background:var(--field);color:var(--ink);width:100%;padding:.55rem .65rem}.editor textarea{resize:vertical;min-height:16rem}.editor .check{flex-direction:row;align-items:center;min-height:44px}.preview-label{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:.75rem;font-size:.85rem}.editor__preview{border-top:1px solid var(--line);padding-top:1rem}.muted{color:var(--muted)}.site-header{border-bottom:1px solid var(--line)}@media (width<=639px){.site-header__inner{flex-wrap:wrap;align-items:flex-start}.menu-btn{margin-left:auto;display:inline-flex}.nav-list{flex-direction:column;align-items:stretch;gap:0;width:100%;padding:.5rem 0 .25rem;display:none}.nav-list.is-open{display:flex}.nav-list a{text-align:center;padding:.75rem .5rem;display:block}}@media (width>=960px){.editor{grid-template-columns:1fr 1fr;align-items:start}.editor__preview{border-top:0;border-left:1px solid var(--line);padding:0 0 0 1.5rem;position:sticky;top:1rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.social__link:hover{transform:none}}
