@layer foundation{@font-face{font-family:Phosphor;src:url(/_astro/Phosphor.DtdjzkpE.woff2)format("woff2");font-weight:400;font-style:normal;font-display:block}:root{color-scheme:light dark;--color-bg:#f2f2ed;--color-surface:#e8e8e1;--color-text:#232320;--color-muted:#62625c;--color-border:#cecec5;--color-border-strong:#98988f;--color-accent:#1f57c3;--color-code:#e5e5de;--color-selection:#cbd9f8;--page-width:87rem;--reading-width:45rem;--radius-inline:.375rem;--radius-icon:.625rem;--radius-content:1.25rem;--radius-cover:1.5rem;--font-sans:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--font-serif:Georgia, "Songti SC", STSong, SimSun, "Noto Serif CJK SC", serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace}@media (prefers-color-scheme:dark){:root{--color-bg:#20211f;--color-surface:#292a27;--color-text:#f0efe9;--color-muted:#aaa9a2;--color-border:#3e3f3a;--color-border-strong:#6b6c64;--color-accent:#7ca2f7;--color-code:#292a27;--color-selection:#304d84}}}@layer base{.ph{speak:never;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-style:normal;font-weight:400;line-height:1;font-family:Phosphor!important}.ph.ph-check:before{content:""}.ph.ph-copy:before{content:""}.ph.ph-warning-circle:before{content:""}*,:before,:after{box-sizing:border-box}html{background:var(--color-bg);min-width:20rem;font-family:var(--font-sans);text-rendering:optimizelegibility}body{min-height:100dvh;color:var(--color-text);background:var(--color-bg);margin:0;font-size:1rem;line-height:1.65}::selection{color:var(--color-text);background:var(--color-selection)}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:.07em}a:hover{color:var(--color-accent)}a:focus-visible,[type=search]:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px}img{max-width:100%}}@layer layout{.skip-link{z-index:10;color:var(--color-bg);background:var(--color-text);padding:.55rem .8rem;font-size:.82rem;text-decoration:none;position:fixed;top:.75rem;left:.75rem;transform:translateY(-200%)}.skip-link:focus{color:var(--color-bg);transform:translateY(0)}.site-header,.site-footer,.site-main{width:min(calc(100% - clamp(2rem, 5vw, 4.5rem)), var(--page-width));margin-inline:auto}.site-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;min-height:4.5rem;display:flex}.site-title{font-family:var(--font-serif);margin:0;font-size:1.5rem;font-weight:400;line-height:1;text-decoration:none}.site-title a{color:inherit;text-decoration:none}.site-header nav{align-items:center;gap:1.5rem;font-size:.82rem;display:flex}.site-header nav a{color:var(--color-muted);padding-block:.3rem;text-decoration:none}.site-header nav a[aria-current=page]{color:var(--color-text);border-bottom:1px solid var(--color-accent)}.site-main{min-height:calc(100dvh - 10rem)}.site-footer{border-top:1px solid var(--color-border);color:var(--color-muted);justify-content:space-between;gap:2rem;padding-block:1.6rem;font-size:.74rem;display:flex}@media (width<=48rem){.site-header,.site-footer,.site-main{width:min(calc(100% - 2rem), var(--page-width))}.site-header{min-height:4rem}.site-footer{flex-direction:column;gap:.45rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}}@layer components{.tag-list{color:var(--color-muted);flex-wrap:wrap;gap:.35rem 1rem;margin:1.35rem 0 0;padding:0;font-size:.76rem;list-style:none;display:flex}.tag-list li:before{content:"#";color:var(--color-accent)}}@layer pages{.archive-section{padding-bottom:clamp(5rem,9vw,8rem);scroll-margin-top:1rem}.home-lead{padding-block:clamp(3.5rem,6vw,5rem) clamp(5rem,8vw,7rem);scroll-margin-top:1rem}.section-heading{border-top:1px solid var(--color-text);padding-block:.85rem}.section-heading h2{margin:0;font-size:.76rem;font-weight:650}.lead-story{grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;gap:clamp(2.5rem,5vw,5rem);display:grid}.lead-story--text-only{grid-template-columns:repeat(12,minmax(0,1fr))}.lead-story-copy{flex-direction:column;grid-column:1/span 6;justify-content:space-between;min-height:min(49rem,100dvh - 11rem);padding-block:.25rem clamp(1rem,3vw,2.5rem);display:flex}.home-intro{max-width:35rem;font-family:var(--font-serif);margin:0;font-size:clamp(1.25rem,2vw,1.65rem);line-height:1.5}.lead-story-details{max-width:43rem;padding-top:3rem}.lead-story-details h2{font-family:var(--font-serif);margin:0 0 clamp(2.25rem,4vw,3.5rem);font-size:1rem;font-weight:400}.lead-story-details time,.archive-copy time{color:var(--color-muted);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:.73rem}.lead-story-details h3{max-width:15ch;font-family:var(--font-serif);margin:1.35rem 0 0;font-size:clamp(2.65rem,4vw,3.85rem);font-weight:400;line-height:1.12}.lead-story-details h3 a,.archive-copy h3 a{text-decoration:none}.lead-story-details>p{max-width:40rem;color:var(--color-muted);margin:1.6rem 0 0;font-size:1.05rem}.lead-cover,.archive-cover{color:inherit;text-decoration:none;display:block}.lead-cover{grid-column:8/-1;justify-self:end;width:min(100%,31rem)}.lead-cover img,.archive-cover img{border:1px solid var(--color-border);background:var(--color-surface);width:100%;height:auto;display:block}.empty-state{min-height:18rem;color:var(--color-muted);font-family:var(--font-serif);margin:0;padding-top:3rem;font-size:1.5rem}.home-empty{min-height:calc(100dvh - 14rem)}.home-empty h2{font-family:var(--font-serif);margin:8rem 0 0;font-size:1rem;font-weight:400}.archive-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:4.5rem clamp(2.5rem,6vw,6rem);padding-top:2.5rem;display:grid}.archive-post{border-top:1px solid var(--color-border);grid-template-columns:minmax(0,1fr) 7.5rem;align-items:start;gap:1.5rem;padding-top:1.2rem;display:grid}.archive-post--text-only{grid-template-columns:1fr}.archive-copy h3{font-family:var(--font-serif);margin:.8rem 0 0;font-size:clamp(1.55rem,2.5vw,2.15rem);font-weight:400;line-height:1.2}.archive-copy p{color:var(--color-muted);margin:.8rem 0 0;font-size:.9rem}.archive-cover{width:7.5rem}@media (hover:hover){.lead-cover img,.archive-cover img{transition:transform .18s}.lead-cover:hover img,.archive-cover:hover img{transform:translateY(-3px)}}@media (width<=48rem){.archive-grid,.archive-post{grid-template-columns:1fr}.home-lead{padding-top:3rem}.lead-story{grid-template-columns:1fr;gap:3rem}.lead-story-copy{grid-column:1;min-height:auto;padding-block:0}.home-intro{max-width:22rem;font-size:1.25rem}.lead-story-details{padding-top:5rem}.lead-story-details h2{margin-bottom:2.5rem}.lead-story-details h3{font-size:clamp(2.35rem,12vw,3.7rem)}.lead-cover{grid-column:1;justify-self:end;width:min(84%,24rem)}.archive-grid{gap:3.5rem}.archive-post{gap:1.5rem}.archive-cover{grid-row:1;justify-self:end;width:min(42%,9rem)}}@media (width<=26rem){.lead-story-details h3{overflow-wrap:anywhere}.lead-cover{width:92%}}.article-page{padding-block:2.25rem clamp(6rem,10vw,9rem)}.article-hero{grid-template-columns:minmax(0,7fr) minmax(17rem,4fr);align-items:start;gap:clamp(3rem,9vw,8rem);padding-bottom:clamp(4rem,8vw,7rem);display:grid}.article-hero--text-only{grid-template-columns:minmax(0,54rem)}.article-heading{padding-top:clamp(0rem,4vw,3rem)}.article-heading h1{max-width:12ch;font-family:var(--font-serif);margin:0;font-size:clamp(2.75rem,6vw,5.5rem);font-weight:400;line-height:1.08}.article-heading>p{max-width:40rem;color:var(--color-muted);margin:1.75rem 0 0;font-size:clamp(1rem,1.6vw,1.16rem)}.article-meta{color:var(--color-muted);font-family:var(--font-mono);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:baseline;gap:1rem 2rem;margin-top:2rem;font-size:.74rem;display:flex}.article-meta .tag-list{font-family:var(--font-sans);margin:0}.article-cover{justify-self:end;width:min(100%,25rem);margin:0}.article-cover img{border:1px solid var(--color-border);border-radius:var(--radius-cover);background:var(--color-surface);width:100%;height:auto;display:block}.article-body{border-top:1px solid var(--color-border);padding-top:clamp(3.5rem,7vw,6rem)}.article-reading--with-toc{grid-template-columns:minmax(0, 1fr) minmax(0, var(--reading-width)) minmax(0, 1fr);align-items:start;gap:clamp(2rem,4vw,4rem);display:grid}.article-reading--with-toc .prose{grid-column:2;margin-inline:0}.article-toc{width:min(100%,14rem);max-height:calc(100dvh - 3rem);font-family:var(--font-sans);scrollbar-color:var(--color-border-strong) transparent;grid-area:1/1;justify-self:end;padding-right:.45rem;position:sticky;top:1.5rem;overflow-y:auto}.article-toc details{border-top:1px solid var(--color-text);padding-top:.75rem}.article-toc summary{cursor:pointer;justify-content:space-between;align-items:center;gap:1rem;font-size:.76rem;font-weight:650;list-style:none;display:flex}.article-toc summary::-webkit-details-marker{display:none}.article-toc summary:after{content:"+";color:var(--color-muted);font-family:var(--font-mono);font-weight:400}.article-toc details[open] summary:after{content:"-"}.article-toc nav{margin-top:1.15rem}.article-toc ul{margin:0;padding:0;list-style:none}.article-toc li+li{margin-top:.72rem}.article-toc a{color:var(--color-muted);border-left:2px solid #0000;padding-left:.65rem;font-size:.78rem;line-height:1.45;text-decoration:none;display:block}.article-toc-item--depth-3 a{padding-left:1.45rem;font-size:.73rem}.article-toc a:hover,.article-toc a[aria-current=location]{color:var(--color-text)}.article-toc a[aria-current=location]{border-left-color:var(--color-accent)}@supports (corner-shape:squircle){.article-cover img{corner-shape:squircle}}@media (width<=68rem){.article-reading--with-toc{grid-template-columns:minmax(0,1fr);gap:0}.article-reading--with-toc .article-toc,.article-reading--with-toc .prose{width:min(100%, var(--reading-width));grid-column:1;justify-self:center}.article-toc{max-height:none;margin-bottom:2.5rem;padding-right:0;position:static;overflow:visible}.article-toc details{border-bottom:1px solid var(--color-border);padding:.85rem 0}}@media (width<=48rem){.article-hero{grid-template-columns:1fr}.article-page{padding-top:1.75rem}.article-hero{gap:3rem;padding-bottom:4.5rem}.article-heading{padding-top:0}.article-heading h1{font-size:clamp(2.6rem,13vw,4rem)}.article-cover{grid-column:1;justify-self:center;width:min(84%,24rem)}.article-body{padding-top:3.5rem}}@media (width<=26rem){.article-heading h1{overflow-wrap:anywhere}.article-cover{width:92%}}.search-page{padding-block:clamp(4rem,8vw,7rem) clamp(6rem,10vw,9rem)}.search-heading h1{max-width:12ch;font-family:var(--font-serif);margin:0;font-size:clamp(2.75rem,6vw,5.5rem);font-weight:400;line-height:1.08}.search-form{width:min(100%, var(--reading-width));margin-top:clamp(3rem,6vw,5rem)}.search-form label{margin-bottom:.7rem;font-size:.8rem;font-weight:650;display:block}.search-form-row{grid-template-columns:minmax(0,1fr) auto;display:grid}.search-form input,.search-form button{border:1px solid var(--color-border-strong);min-height:3.25rem;font:inherit}.search-form input{min-width:0;color:var(--color-text);background:var(--color-bg);border-right:0;padding:.75rem .9rem}.search-form input::placeholder{color:var(--color-muted);opacity:1}.search-form button{min-width:5.25rem;color:var(--color-bg);background:var(--color-text);cursor:pointer;padding:.75rem 1.15rem;font-size:.82rem}.search-form button:hover{color:var(--color-bg);background:var(--color-accent);border-color:var(--color-accent)}.search-form button:active{transform:translateY(1px)}.search-status{border-bottom:1px solid var(--color-text);color:var(--color-muted);font-family:var(--font-mono);font-variant-numeric:tabular-nums;margin:clamp(3.5rem,7vw,6rem) 0 0;padding-bottom:.8rem;font-size:.73rem}.search-results{width:min(100%,68rem)}.search-result{grid-template-columns:minmax(8rem, 12rem) minmax(0, var(--reading-width));border-bottom:1px solid var(--color-border);column-gap:clamp(2rem,6vw,6rem);padding-block:clamp(2rem,4vw,3rem);display:grid}.search-result[hidden]{display:none}.search-result time{color:var(--color-muted);font-family:var(--font-mono);font-variant-numeric:tabular-nums;grid-area:1/1/span 4;font-size:.73rem}.search-result h2,.search-result>p,.search-result .tag-list{grid-column:2}.search-result h2{font-family:var(--font-serif);margin:-.2rem 0 0;font-size:clamp(1.65rem,3vw,2.35rem);font-weight:400;line-height:1.2}.search-result h2 a{text-decoration:none}.search-result>p{max-width:60ch;color:var(--color-muted);margin:1rem 0 0;font-size:.92rem}.search-result .tag-list{margin-top:1rem}.search-empty{min-height:18rem;color:var(--color-muted);font-family:var(--font-serif);margin:0;padding-top:3rem;font-size:1.5rem}@media (width<=48rem){.search-page{padding-top:3.5rem}.search-heading h1{font-size:clamp(2.6rem,13vw,4rem)}.search-form{margin-top:3rem}.search-result{grid-template-columns:minmax(0,1fr);row-gap:.8rem}.search-result time,.search-result h2,.search-result>p,.search-result .tag-list{grid-column:1}.search-result time{grid-row:auto}.search-result h2{margin-top:0}}}@layer content{.prose{width:min(100%, var(--reading-width));font-family:var(--font-serif);margin-inline:auto;font-size:clamp(1.02rem,1.3vw,1.09rem);line-height:1.92}.prose :where(h2,h3,h4){color:var(--color-text);scroll-margin-top:1.5rem;font-weight:650;line-height:1.35}.prose h2{margin:4rem 0 1.2rem;font-size:clamp(1.65rem,3vw,2rem)}.prose h3{margin:3rem 0 1rem;font-size:1.35rem}.prose h4{margin:2.5rem 0 .8rem;font-size:1.1rem}.prose :where(p,ul,ol,blockquote,pre,table){margin-block:1.45rem}.prose :where(ul,ol){padding-left:1.5rem}.prose li+li{margin-top:.45rem}.prose a{color:var(--color-accent)}.prose strong{font-weight:700}.prose :not(pre)>code{border:1px solid var(--color-border);border-radius:var(--radius-inline);background:var(--color-code);font-family:var(--font-mono);padding:.12em .32em;font-size:.86em}.prose pre{border:1px solid var(--color-border);border-radius:var(--radius-content);background:var(--color-code);font-family:var(--font-mono);scrollbar-color:var(--color-border-strong) transparent;padding:1.15rem 1.25rem;font-size:.86rem;line-height:1.65;overflow-x:auto}.prose pre code{font:inherit}.prose .code-block{margin-block:1.45rem;position:relative}.prose .code-block pre{margin-block:0;padding-top:1.15rem;padding-right:6rem}.code-copy{z-index:1;border:1px solid var(--color-border-strong);border-radius:var(--radius-icon);width:2rem;height:2rem;color:var(--color-muted);background:var(--color-bg);cursor:pointer;opacity:0;place-items:center;padding:0;font-size:1rem;transition:opacity .16s,color .16s,border-color .16s,background-color .16s,transform .16s;display:inline-grid;position:absolute;top:.65rem;right:.65rem}.code-block:hover .code-copy,.code-block:focus-within .code-copy,.code-copy[data-state]{opacity:1}.code-copy:hover{color:var(--color-text);border-color:var(--color-accent)}.code-copy[data-state=success]{color:var(--color-accent);border-color:var(--color-accent)}.code-copy[data-state=error]{color:var(--color-text);border-color:var(--color-text);background:var(--color-surface)}.code-copy:active{transform:translateY(1px)}.prose blockquote{border-left:3px solid var(--color-accent);color:var(--color-muted);margin-inline:0;padding:.2rem 0 .2rem 1.4rem;font-size:1.08em}.prose blockquote>:first-child{margin-top:0}.prose blockquote>:last-child{margin-bottom:0}.prose img{border:1px solid var(--color-border);border-radius:var(--radius-content);width:auto;max-width:100%;height:auto;margin-inline:auto;display:block}.prose p:has(>img){margin-block:3rem .55rem}.prose p:has(>img)+p:has(>em:only-child){color:var(--color-muted);font-family:var(--font-sans);text-align:center;margin-top:0;font-size:.76rem;line-height:1.6}.prose table{border-collapse:collapse;width:100%;font-family:var(--font-sans);font-size:.9rem;display:block;overflow-x:auto}.prose :where(th,td){border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top;min-width:8rem;padding:.7rem .85rem}.prose th{color:var(--color-text);font-weight:650}.prose hr{border:0;border-top:1px solid var(--color-border-strong);margin-block:4rem}@supports (corner-shape:squircle){.prose :not(pre)>code,.prose pre,.prose img,.code-copy{corner-shape:squircle}}@media (hover:none),(pointer:coarse){.code-copy{opacity:1}}@media (width<=48rem){.prose{font-size:1.02rem;line-height:1.88}}}
