@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-vietnamese-wght-normal.Czsa-EzN.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:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-ext-wght-normal.C-3rgBeH.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:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-wght-normal.CCVVNp6i.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:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/_astro/ibm-plex-sans-cyrillic-ext-wght-normal.d45eAU9y.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/_astro/ibm-plex-sans-cyrillic-wght-normal.BAAhND-U.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/_astro/ibm-plex-sans-greek-wght-normal.CmyJS8uq.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/_astro/ibm-plex-sans-vietnamese-wght-normal.Dg1JeJN0.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:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/_astro/ibm-plex-sans-latin-ext-wght-normal.CIII54If.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:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/_astro/ibm-plex-sans-latin-wght-normal.IvpUvPa2.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:Local CJK Sans;src:local(PingFang SC),local(Microsoft YaHei),local(Noto Sans CJK SC)}:root{color-scheme:dark;--ink:#11141b;--ink-soft:#181d27;--paper:#e9e6de;--paper-soft:#b6b6b0;--line:#343a47;--signal:#7f96ff;--warm:#f0b56b;--focus:#b6c2ff;--display:"Newsreader Variable", "Noto Serif SC", "Songti SC", serif;--body:"IBM Plex Sans Variable", "Local CJK Sans", system-ui, sans-serif;--max:1240px}:root[data-theme=light]{color-scheme:light;--ink:#efede6;--ink-soft:#e1ded5;--paper:#171a21;--paper-soft:#555c67;--line:#c8c4ba;--signal:#455dc9;--warm:#9c5c1a;--focus:#334fc2}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--ink);min-width:320px;color:var(--paper);font-family:var(--body);text-rendering:optimizelegibility;margin:0;font-size:17px;line-height:1.68}a{color:inherit;text-underline-offset:.22em}a:hover{color:var(--signal)}button,input{font:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:4px}.skip-link{z-index:50;background:var(--paper);color:var(--ink);padding:.55rem .8rem;position:fixed;top:1rem;left:1rem;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.site-shell{width:min(calc(100% - 40px), var(--max));margin-inline:auto}.site-header{border-bottom:1px solid var(--line);grid-template-columns:1fr auto 1fr;align-items:center;gap:2rem;min-height:88px;display:grid}.wordmark{letter-spacing:-.02em;align-items:center;gap:.7rem;width:max-content;font-weight:650;text-decoration:none;display:inline-flex}.wordmark-mark{border:1px solid var(--paper-soft);width:30px;height:30px;color:var(--warm);font-family:var(--display);border-radius:50%;place-items:center;font-style:italic;display:grid}.site-header nav{gap:1.65rem;font-size:.86rem;display:flex}.site-header nav a{color:var(--paper-soft);text-decoration:none}.site-header nav a[aria-current=page]{color:var(--paper)}.theme-toggle{color:var(--paper-soft);cursor:pointer;background:0 0;border:0;justify-self:end;align-items:center;gap:.55rem;padding:.45rem 0;font-size:.82rem;display:inline-flex}.theme-toggle:hover{color:var(--paper)}.hero{padding:clamp(5rem,11vw,9.5rem) 0 4rem}.hero-kicker{border-bottom:1px solid var(--line);color:var(--paper-soft);letter-spacing:.12em;text-transform:uppercase;justify-content:space-between;gap:1rem;padding-bottom:1rem;font-size:.75rem;display:flex}.status{align-items:center;gap:.55rem;display:flex}.status i{background:var(--warm);border-radius:50%;width:7px;height:7px}.hero-grid{grid-template-columns:minmax(0,2.2fr) minmax(240px,.8fr);align-items:end;gap:clamp(3rem,8vw,8rem);padding-top:2rem;display:grid}.eyebrow{color:var(--signal);letter-spacing:.16em;text-transform:uppercase;margin:0 0 1.15rem;font-size:.73rem;font-weight:650}h1,h2,h3,p{margin-top:0}h1{max-width:900px;font-family:var(--display);letter-spacing:-.055em;margin-bottom:0;font-size:clamp(3.45rem,8.9vw,8.75rem);font-weight:430;line-height:.91}h1 em{color:var(--warm);font-weight:330}.hero-note{max-width:30rem;color:var(--paper-soft);font-size:.95rem}.hero-note p:first-child{color:var(--paper);font-weight:620}.daze-line{grid-template-columns:1fr auto auto;align-items:center;gap:0;margin-top:clamp(3rem,8vw,6rem);display:grid}.daze-line span{background:var(--signal);height:1px}.daze-line i{background:var(--signal);width:9px;height:9px;transform:rotate(45deg)}.daze-line b{border:1px solid var(--signal);border-radius:50%;width:72px;height:72px}.home-section{border-top:1px solid var(--line);padding:clamp(4rem,8vw,7rem) 0}.section-heading{grid-template-columns:minmax(160px,.6fr) 1.4fr;align-items:baseline;gap:2rem;margin-bottom:3rem;display:grid}.section-heading p{color:var(--paper-soft);letter-spacing:.1em;text-transform:uppercase;font-size:.78rem}h2{font-family:var(--display);letter-spacing:-.035em;font-size:clamp(2rem,4vw,4.3rem);font-weight:430;line-height:1.05}.featured-entry{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:minmax(160px,.6fr) 1.25fr auto;align-items:start;gap:2rem;padding:2rem 0;display:grid}.entry-meta{color:var(--paper-soft);flex-direction:column;font-size:.78rem;display:flex}.featured-entry h3{font-family:var(--display);margin-bottom:.7rem;font-size:clamp(1.7rem,3vw,2.6rem);font-weight:470;line-height:1.1}.featured-entry h3 a{text-decoration:none}.featured-entry p{max-width:55ch;color:var(--paper-soft);margin-bottom:0}.arrow-link{font-size:2rem;text-decoration:none}.split-section{grid-template-columns:1fr 1fr;gap:clamp(3rem,9vw,9rem);display:grid}.topic-list{border-top:1px solid var(--line)}.topic-list a{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;gap:1rem;padding:1.25rem 0;text-decoration:none;display:grid}.topic-list small{color:var(--paper-soft)}.site-footer{border-top:1px solid var(--line);color:var(--paper-soft);justify-content:space-between;gap:2rem;padding:2.5rem 0 3rem;font-size:.78rem;display:flex}.site-footer p{margin:0}.page-intro,.blog-intro{border-bottom:1px solid var(--line);padding:clamp(5rem,11vw,9rem) 0 clamp(4rem,8vw,7rem)}.page-intro h1,.blog-intro h1,.article-header h1,.not-found h1{max-width:1050px;font-family:var(--display);letter-spacing:-.05em;margin-bottom:1.5rem;font-size:clamp(3.4rem,8vw,8rem);font-weight:430;line-height:.95}.page-intro>p:last-child,.blog-intro>div:last-child>p,.not-found>p:not(.eyebrow){max-width:54ch;color:var(--paper-soft)}.compact-intro{padding-bottom:3rem}.compact-intro h1{font-size:clamp(3.4rem,7vw,6.5rem)}.plain-grid{grid-template-columns:.8fr 1.2fr;gap:clamp(3rem,8vw,8rem);padding:clamp(4rem,8vw,7rem) 0;display:grid}.plain-grid h2{font-size:clamp(2.2rem,4vw,4rem)}.project-placeholder{border-bottom:1px solid var(--line);grid-template-columns:.5fr 1fr 1fr;gap:2rem;padding:3rem 0 clamp(5rem,9vw,8rem);display:grid}.project-placeholder span,.project-placeholder p{color:var(--paper-soft)}.project-placeholder h2{margin:0}.not-found{min-height:68vh;padding:clamp(6rem,13vw,11rem) 0}.text-button{color:var(--signal);margin-top:1rem;font-weight:650;display:inline-block}.blog-intro{grid-template-columns:1.5fr .5fr;align-items:end;gap:clamp(3rem,8vw,8rem);display:grid}.blog-tools{flex-wrap:wrap;gap:.75rem 1.25rem;font-size:.82rem;display:flex}.post-list article{border-bottom:1px solid var(--line);grid-template-columns:minmax(160px,.5fr) 1.25fr auto;align-items:start;gap:2rem;padding:2.4rem 0;display:grid}.post-list h2{margin-bottom:.7rem;font-size:clamp(1.8rem,3vw,3rem)}.post-list h2 a{text-decoration:none}.post-list p{max-width:60ch;color:var(--paper-soft);margin:0}.reading-progress{z-index:40;height:2px;position:fixed;inset:0 0 auto}.reading-progress span{background:var(--signal);transform-origin:0;width:100%;height:100%;display:block;transform:scaleX(0)}.article-header{border-bottom:1px solid var(--line);padding:clamp(5rem,11vw,9rem) 0 3.5rem}.article-header h1{max-width:980px;font-size:clamp(3.4rem,7.2vw,7rem)}.article-deck{max-width:68ch;color:var(--paper-soft);font-size:clamp(1rem,1.5vw,1.2rem)}.article-meta{color:var(--paper-soft);flex-wrap:wrap;gap:.8rem 1.8rem;margin-top:2rem;font-size:.78rem;display:flex}.article-grid{grid-template-columns:minmax(170px,.45fr) minmax(0,1.55fr);gap:clamp(3rem,8vw,8rem);padding:clamp(4rem,8vw,7rem) 0;display:grid}.toc{color:var(--paper-soft);align-self:start;font-size:.8rem;position:sticky;top:2rem}.toc p{color:var(--paper);font-weight:650}.toc ol{margin:0;padding-left:1.2rem}.toc li+li{margin-top:.6rem}.toc a{text-decoration:none}.prose{max-width:740px;font-size:clamp(1.04rem,1.3vw,1.16rem)}.prose.compact{font-size:1rem}.prose p{margin-bottom:1.45em}.prose h2{margin:2.4em 0 .75em;scroll-margin-top:2rem;font-size:clamp(2rem,4vw,3.4rem)}.prose h3{font-family:var(--display);margin:2em 0 .65em;font-size:1.65rem}.prose blockquote{border-left:2px solid var(--warm);color:var(--paper-soft);margin:2rem 0;padding-left:1.5rem}.prose pre{border:1px solid var(--line);padding:1.25rem;font-size:.88rem;overflow-x:auto}.prose :not(pre)>code{background:var(--ink-soft);color:var(--warm);padding:.12em .35em}.article-footer{border-top:1px solid var(--line);color:var(--paper-soft);justify-content:space-between;gap:2rem;padding:2.5rem 0 5rem;display:flex}.article-footer a{color:var(--paper)}.archive-list{margin:0;padding:1rem 0 clamp(5rem,9vw,8rem);list-style:none}.archive-list li{border-bottom:1px solid var(--line);grid-template-columns:minmax(150px,.4fr) 1.6fr;gap:2rem;padding:1.35rem 0;display:grid}.archive-list time{color:var(--paper-soft);font-size:.82rem}.archive-list a{font-family:var(--display);font-size:1.4rem;text-decoration:none}.tag-cloud{flex-wrap:wrap;gap:.8rem;padding:3rem 0 clamp(6rem,10vw,9rem);display:flex}.tag-cloud a{border:1px solid var(--line);padding:.75rem 1rem;text-decoration:none}.tag-cloud sup{color:var(--paper-soft);margin-left:.45rem}.search-panel{max-width:820px;min-height:45vh;padding:3rem 0 6rem}.search-panel pagefind-search>p{color:var(--paper-soft)}pagefind-input,pagefind-summary,pagefind-results{--pagefind-ui-primary:var(--signal);--pagefind-ui-text:var(--paper);--pagefind-ui-background:var(--ink);--pagefind-ui-border:var(--line);--pagefind-ui-tag:var(--ink-soft);--pagefind-ui-border-width:1px;--pagefind-ui-border-radius:0;--pagefind-ui-font:var(--body)}@media (width<=800px){.site-header{grid-template-columns:1fr auto}.site-header nav{grid-area:2/1/auto/-1;padding-bottom:1rem;overflow-x:auto}.hero-grid,.split-section{grid-template-columns:1fr}.hero-grid{gap:2.5rem}.section-heading,.featured-entry,.blog-intro,.plain-grid,.article-grid,.project-placeholder,.post-list article{grid-template-columns:1fr}.toc{position:static}.arrow-link{display:none}}@media (width<=520px){.site-shell{width:min(calc(100% - 28px), var(--max))}.theme-label{display:none}.site-header nav{gap:1.2rem}h1{font-size:clamp(3.2rem,17vw,5rem)}.hero-kicker{align-items:flex-start}.site-footer{flex-direction:column;gap:.6rem}.article-footer{flex-direction:column}.archive-list li{grid-template-columns:1fr;gap:.3rem}.topic-list a{grid-template-columns:1fr;gap:.2rem}}@media (prefers-reduced-motion:no-preference){.hero-grid>*,.hero-kicker,.daze-line{animation:.6s both arrive}.hero-grid>:last-child{animation-delay:90ms}.daze-line{animation-delay:.18s}@keyframes arrive{0%{opacity:0;transform:translateY(12px)}}}
