:root{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;scroll-behavior:smooth;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,Noto Sans SC,sans-serif}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,input{font:inherit}html[data-background-index]:not([data-background-ready]) [data-background-slide]{opacity:0;transition:none}html[data-background-index="0"]:not([data-background-ready]) [data-background-slide]:first-child,html[data-background-index="1"]:not([data-background-ready]) [data-background-slide]:nth-child(2),html[data-background-index="2"]:not([data-background-ready]) [data-background-slide]:nth-child(3){opacity:1}::selection{color:#101322;background:#a494e9}@media (prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,:before,:after{transition:none!important}}.home-body{--theme-image:var(--initial-theme-image,url(/images/flower-meadow-1-hd.webp));isolation:isolate;color:#303a3b;background:#f8f8f5;flex-direction:column;min-height:100vh;display:flex;position:relative;overflow-x:hidden}.home-body:before{content:"";z-index:0;pointer-events:none;background-image:var(--theme-image);filter:blur(36px)saturate(.75);opacity:.5;background-position:50%;background-size:cover;position:fixed;inset:-45px}.home-body main,.home-body .home-footer{z-index:1;position:relative}.home-body main{flex-direction:column;flex:1;display:flex}.landing-hero{isolation:isolate;background:#fafaf8;flex:1 0 auto;height:min(850px,94svh);min-height:610px;position:relative;overflow:hidden}.landing-slides,.landing-slide{width:100%;height:100%;position:absolute;inset:0}.landing-slides{z-index:0}.landing-slide{object-fit:cover;object-position:center 45%;opacity:0;transition:opacity 1.15s;display:block}.landing-slide:first-child{object-position:54% 43%}.landing-slide:nth-child(2){object-position:53% 47%}.landing-slide:nth-child(3){object-position:51% 41%}.landing-slide.is-active{opacity:1}.welcome-copy{z-index:2;text-align:left;width:max-content;max-width:calc(100% - 24px);position:absolute;top:calc(55% - 38px);left:50%;transform:translate(-50%,-50%)}.welcome-copy h1{color:#293a35;letter-spacing:-.035em;white-space:nowrap;text-shadow:0 2px 15px #ffffffd9;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(42px,5vw,72px);font-style:italic;font-weight:400;line-height:1.2}.hero-links{justify-content:flex-start;gap:14px;margin-top:0;display:flex}.hero-link{color:#293a35;align-items:center;width:46px;height:44px;display:flex;position:relative}.hero-link-icon{backdrop-filter:blur(14px)saturate(1.15);background:#ffffff1f;border:1px solid #ffffff85;border-radius:50%;place-items:center;width:36px;height:36px;transition:transform .2s,background .2s,box-shadow .2s;display:grid;box-shadow:0 5px 20px #1e281f17,inset 0 1px #fff6}.hero-link-icon svg{width:26px;height:26px}.hero-link:after{content:attr(data-tooltip);z-index:6;color:#fff;letter-spacing:.02em;opacity:0;pointer-events:none;white-space:nowrap;background:#233028e6;border-radius:5px;padding:5px 8px;font:600 11px DM Sans,sans-serif;transition:opacity .15s,transform .15s;position:absolute;top:calc(100% + 3px);left:50%;transform:translate(-50%,-4px);box-shadow:0 4px 13px #0000002b}.hero-link:hover .hero-link-icon,.hero-link:focus-visible .hero-link-icon{background:#ffffff45;transform:translateY(-4px);box-shadow:0 9px 24px #1e281f33,inset 0 1px #ffffffad}.hero-link:hover:after,.hero-link:focus-visible:after{opacity:1;transform:translate(-50%)}.hero-link:focus-visible{outline-offset:6px;border-radius:4px;outline:2px solid #356147}.slide-controls{z-index:5;backdrop-filter:blur(13px);background:#ffffff70;border:1px solid #ffffffbf;border-radius:999px;align-items:center;gap:12px;padding:8px 10px;display:flex;position:absolute;bottom:79px;right:7%;box-shadow:0 5px 24px #2f3a311f}.slide-arrow,.slide-dot{cursor:pointer;color:#3f5146;background:0 0;border:0}.slide-arrow{place-items:center;width:28px;height:28px;padding:0 0 3px;font-size:27px;line-height:1;display:grid}.slide-arrow:hover{color:#879d71}.slide-dots{align-items:center;gap:7px;display:flex}.slide-dot{background:#3e544359;border-radius:50%;width:7px;height:7px;padding:0;transition:width .3s,background .3s}.slide-dot.is-active{background:#617e62;border-radius:9px;width:19px}.slide-arrow:focus-visible,.slide-dot:focus-visible{outline-offset:3px;outline:2px solid #356147}.hero-wave{z-index:4;pointer-events:none;width:100%;height:150px;display:block;position:absolute;bottom:-1px;left:0}.hero-wave path{fill:#fafaf8}.home-body .home-footer{color:#89968d;backdrop-filter:blur(16px);background:#fafaf89e;border:0;justify-content:space-between;padding:25px max(36px,50vw - 525px);font-size:11px;display:flex}.home-body .home-footer a{color:#657b6c}@media (width<=900px){.landing-hero{height:min(760px,93svh)}}@media (width<=600px){.landing-hero{height:min(720px,91svh);min-height:570px}.landing-slide:first-child{object-position:57% center}.landing-slide:nth-child(2){object-position:54% center}.landing-slide:nth-child(3){object-position:52% center;transform-origin:top;transform:scale(1.13)}.welcome-copy{top:calc(57% - 34px)}.welcome-copy h1{letter-spacing:-.055em;font-size:clamp(25px,7.5vw,31px)}.hero-links{gap:12px}.hero-link{width:44px}.hero-link-icon{width:32px;height:32px}.hero-link-icon svg{width:24px;height:24px}.slide-controls{padding:6px 9px;bottom:91px;right:20px}.hero-wave{height:155px}.home-body .home-footer{padding:22px;line-height:1.7}.home-body .home-footer span:last-child{display:inline}}@media (prefers-reduced-motion:reduce){.landing-slide,.slide-dot{transition:none}}.blog-body{--blog-bg:#24282b;--blog-subtle:#14171a2e;--blog-text:#f0f2f4;--blog-muted:#c4cbd0;--blog-border:#e5ebf033;--blog-link:#9dd3ff;isolation:isolate;background:var(--blog-bg);min-height:100vh;color:var(--blog-text);flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans SC,Helvetica,Arial,sans-serif;line-height:1.5;display:flex}.blog-body:after{content:"";pointer-events:none;position:fixed;inset:0}.blog-background{z-index:-2;pointer-events:none;position:fixed;inset:0}.blog-background-slide{object-fit:cover;object-position:center 38%;opacity:0;width:100%;height:100%;transition:opacity 1.15s;position:absolute;inset:0}.blog-background-slide.is-active{opacity:1}.blog-body:after{z-index:-1;background:#14171aa8}.blog-body main{flex:1}.blog-body ::selection{color:#18212a;background:#9dd3ff}.blog-body a:focus-visible{outline:2px solid var(--blog-link);outline-offset:4px;border-radius:3px}.blog-header{z-index:20;background:0 0;position:relative}.blog-header-inner{justify-content:space-between;align-items:center;width:min(1040px,100% - 64px);height:72px;margin:auto;display:flex}.blog-brand{letter-spacing:-.4px;font-size:21px;font-weight:600}.blog-header nav{align-items:center;gap:8px;display:flex}.blog-icon-link{width:34px;height:34px;color:var(--blog-muted);border-radius:6px;place-items:center;display:grid}.blog-icon-link svg{width:20px;height:20px}.blog-icon-link:hover{color:var(--blog-text);background:#e5ebf01a}.blog-shell{width:min(1040px,100% - 64px);margin:auto}.blog-index{padding-block:48px 80px}.post-list{background:0 0}.list-heading{justify-content:space-between;align-items:center;padding:14px 0;display:flex}.list-heading h1{margin:0;font-size:16px;font-weight:600}.list-heading>span{color:var(--blog-muted);font-size:12px}.post-row{isolation:isolate;padding:24px 0;transition:transform .2s;position:relative}.post-row:before{content:"";z-index:-1;opacity:0;pointer-events:none;background:#e5ebf00f;border-radius:10px;transition:opacity .2s;position:absolute;inset:6px -14px;box-shadow:0 10px 24px #00000029,inset 0 1px #ffffff12}.post-row:has(a:focus-visible){transform:translateY(-3px)}.post-row:has(a:focus-visible):before{opacity:1}@media (hover:hover) and (pointer:fine){.post-row:hover{transform:translateY(-3px)}.post-row:hover:before{opacity:1}}@media (prefers-reduced-motion:reduce){.post-row,.post-row:before{transition:none}.post-row:hover,.post-row:has(a:focus-visible){transform:none}}.post-row-title{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.post-row h2{margin:0;font-size:20px;font-weight:600;line-height:1.5}.post-row h2 a{color:var(--blog-link)}.post-row h2 a:hover{text-underline-offset:3px;text-decoration:underline}.post-row-main p{max-width:760px;color:var(--blog-muted);margin:8px 0 12px;font-size:14px;line-height:1.75}.post-row-meta{color:var(--blog-muted);font-size:12px}.demo-pill{border:1px solid var(--blog-border);background:var(--blog-subtle);color:var(--blog-muted);white-space:nowrap;border-radius:999px;padding:1px 7px;font-size:11px;font-weight:400;display:inline-block}.blog-footer{border-top:1px solid var(--blog-border);width:min(1040px,100% - 64px);color:var(--blog-muted);flex-shrink:0;justify-content:space-between;align-items:center;margin-inline:auto;padding-block:24px;font-size:12px;display:flex}.blog-footer a:hover{color:var(--blog-link);text-decoration:underline}.article-shell{padding-block:32px 72px}.article-back{color:var(--blog-muted);font-size:13px}.article-back:hover{color:var(--blog-link)}.article-heading{max-width:780px;padding-block:32px 28px}.article-heading h1{letter-spacing:-.5px;margin:0 0 16px;font-size:clamp(26px,3vw,34px);font-weight:600;line-height:1.4}.article-heading>p{color:var(--blog-muted);margin:0;font-size:16px;line-height:1.75}.article-meta{color:var(--blog-muted);flex-wrap:wrap;align-items:center;gap:12px 18px;margin-top:20px;font-size:12px;display:flex}.article-columns{border-top:1px solid var(--blog-border);grid-template-columns:minmax(0,760px) minmax(180px,1fr);gap:48px;padding-top:32px;display:grid}.prose{overflow-wrap:anywhere;min-width:0;font-size:16px;line-height:1.85}.prose>:first-child{margin-top:0}.prose p{margin:0 0 20px}.prose h2,.prose h3{scroll-margin-top:96px;font-weight:600;line-height:1.4}.prose h2{border-bottom:1px solid var(--blog-border);margin:36px 0 16px;padding-bottom:8px;font-size:24px}.prose h3{margin:28px 0 16px;font-size:20px}.prose a{color:var(--blog-link);text-underline-offset:3px;text-decoration:underline}.prose blockquote{border-left:4px solid var(--blog-border);color:var(--blog-muted);margin:24px 0;padding:0 16px}.prose blockquote p{margin:0}.prose pre{border:1px solid var(--blog-border);border-radius:6px;margin:24px 0;padding:16px 20px;font-size:13px;line-height:1.65;overflow-x:auto;background:#0e111470!important}.prose code{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace}.prose code:not(pre code){background:#e5ebf01f;border-radius:4px;padding:2px 5px;font-size:.875em}.prose pre code{display:block}.prose ul,.prose ol{margin-block:16px 24px;padding-left:28px}.prose li{margin-block:5px}.prose img{max-width:100%;height:auto}.prose table{border-collapse:collapse;width:max-content;max-width:100%;margin-block:24px;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--blog-border);padding:6px 13px}.prose tr:nth-child(2n){background:var(--blog-subtle)}.prose .katex-display{padding-block:10px;overflow:auto hidden}.prose .mermaid{border:1px solid var(--blog-border);background:var(--blog-subtle);text-align:center;border-radius:6px;margin-block:24px;padding:20px;overflow-x:auto}.prose .mermaid svg{width:max(100%,620px);height:auto;max-width:none!important}.article-toc{border-left:1px solid var(--blog-border);padding-left:20px}.toc-sticky{position:sticky;top:104px}.toc-label{color:var(--blog-text);margin-bottom:16px;font-size:13px;font-weight:600}.article-toc nav{flex-direction:column;gap:12px;display:flex}.article-toc nav a,.article-toc p{color:var(--blog-muted);font-size:13px;line-height:1.6}.article-toc nav a:hover{color:var(--blog-link)}.article-toc nav a.toc-level-3{padding-left:12px}.article-tags{border-top:1px solid var(--blog-border);flex-wrap:wrap;gap:8px;margin-top:36px;padding-top:24px;display:flex}.article-tags a{color:var(--blog-link);background:#9dd3ff1f;border-radius:999px;padding:2px 10px;font-size:12px}.article-tags a:hover{background:#9dd3ff38}.article-return{margin-top:24px;font-size:13px}.comments{border-top:1px solid var(--blog-border);margin-top:36px;padding-top:24px}.comments h2{margin-top:0}.search-page,.tag-page{padding-block:32px 80px}.search-page h1,.tag-page h1{margin:32px 0 12px;font-size:28px;font-weight:600}.search-page>p,.tag-page>p{color:var(--blog-muted);margin:0;font-size:14px;line-height:1.75}.search-box{border:1px solid var(--blog-border);background:var(--blog-subtle);color-scheme:dark;border-radius:6px;align-items:center;gap:10px;width:min(640px,100%);margin-top:24px;padding:8px 12px;display:flex}.search-box>span{color:var(--blog-muted);font-size:24px;line-height:1}.search-box input{width:100%;min-width:0;color:var(--blog-text);background:0 0;border:0;outline:0;padding:2px 0;font-size:15px}.search-box input::placeholder{color:var(--blog-muted)}.search-box:focus-within{border-color:var(--blog-link);box-shadow:0 0 0 3px #9dd3ff2e}.search-count{margin-top:16px!important;font-size:13px!important}.search-page .post-list,.tag-page .post-list{margin-top:24px}#search-results:empty{display:none}@media (width<=900px){.article-columns{grid-template-columns:minmax(0,1fr);gap:24px}.article-toc{border-left:0;border-bottom:1px solid var(--blog-border);grid-row:1;padding:0 0 20px}.toc-sticky{position:static}.article-toc nav{flex-flow:wrap;gap:8px 20px}.article-toc nav a.toc-level-3{padding-left:0}}@media (width<=600px){.blog-header-inner,.blog-shell,.blog-footer{width:calc(100% - 32px)}.blog-header-inner{height:64px}.blog-brand{font-size:18px}.blog-header nav{gap:4px}.blog-index{padding-block:28px 56px}.list-heading{padding:12px 0}.post-row{padding:20px 0}.post-row-title{gap:8px}.post-row h2{font-size:18px}.post-row-main p{font-size:14px}.blog-footer{padding-block:20px}.article-shell{padding-block:24px 56px}.article-heading{padding-block:24px}.article-heading>p{font-size:15px}.article-columns{padding-top:24px}.prose{font-size:15px}.prose h2{font-size:22px}.prose h3{font-size:18px}.prose pre{padding:14px 16px;font-size:12px}.search-page,.tag-page{padding-block:24px 56px}.search-page h1,.tag-page h1{margin-top:24px;font-size:26px}}
