.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}:root{color-scheme:light;--bg: #f7f4ee;--bg-soft: #efebe2;--surface: #fdfbf6;--header-bg: rgba(247, 244, 238, .92);--text: #2b2721;--text-soft: #57514a;--muted: #6f675b;--accent: #b2452c;--accent-ink: #93361f;--accent-soft: rgba(178, 69, 44, .09);--border: #e4ddd0;--border-strong: #cfc6b4;--code-bg: #eee9de;--mark-bg: rgba(178, 69, 44, .15);--shadow-sm: 0 1px 2px rgba(43, 39, 33, .05);--shadow-md: 0 2px 6px rgba(43, 39, 33, .05), 0 12px 32px rgba(43, 39, 33, .07);--font-serif: "Noto Serif SC", "Source Han Serif SC", "Source Han Serif CN", "Songti SC", "STSong", "SimSun", serif;--font-sans: system-ui, -apple-system, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;--font-mono: ui-monospace, "Cascadia Code", "SF Mono", "JetBrains Mono", Consolas, "Liberation Mono", monospace;--w-page: 68rem;--w-prose: 40rem;--radius: 10px}[data-theme=dark]{color-scheme:dark;--bg: #191713;--bg-soft: #201d18;--surface: #1e1b16;--header-bg: rgba(25, 23, 19, .9);--text: #d9d3c6;--text-soft: #b4ac9c;--muted: #918a7b;--accent: #d97a5c;--accent-ink: #e28a6d;--accent-soft: rgba(217, 122, 92, .13);--border: #2d2923;--border-strong: #413b31;--code-bg: #221f19;--mark-bg: rgba(217, 122, 92, .2);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 2px 6px rgba(0, 0, 0, .3), 0 12px 32px rgba(0, 0, 0, .35)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:1.0625rem;line-height:1.85;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background-color .25s ease,color .25s ease}.container{max-width:var(--w-page);margin-inline:auto;padding-inline:1.5rem}a{color:var(--accent);text-decoration:none;text-underline-offset:.2em}a:hover{color:var(--accent-ink);text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}::selection{background:var(--accent-soft)}::marker{color:var(--muted)}.skip-link{position:absolute;left:-999px;top:0;z-index:100;background:var(--accent);color:#fff;padding:.5rem 1rem;border-radius:0 0 var(--radius) 0}.skip-link:focus{left:0;color:#fff;text-decoration:none}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.site-header{position:sticky;top:0;z-index:50;background:var(--header-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.site-header-inner{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.5rem;padding-block:.85rem}.brand{display:inline-flex;align-items:baseline;gap:.45rem;font-family:var(--font-serif);font-size:1.3rem;font-weight:600;letter-spacing:.04em;color:var(--text)}.brand:hover{color:var(--text);text-decoration:none}.brand:after{content:"";width:.45em;height:.45em;border-radius:50%;background:var(--accent);transform:translateY(-.05em)}.site-nav{margin-left:auto;display:flex;align-items:center;gap:1.25rem;font-size:.95rem}.site-nav a{color:var(--text-soft);padding-block:.15rem}.site-nav a:hover{color:var(--text);text-decoration:none}.site-nav a[aria-current=page]{color:var(--accent)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:2.15rem;height:2.15rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-soft);cursor:pointer;transition:color .2s,border-color .2s}.theme-toggle:hover{color:var(--accent);border-color:var(--border-strong)}.theme-toggle svg{width:1.05rem;height:1.05rem}.theme-toggle .icon-sun{display:none}[data-theme=dark] .theme-toggle .icon-sun{display:block}[data-theme=dark] .theme-toggle .icon-moon{display:none}.site-footer{margin-top:5rem;border-top:1px solid var(--border);padding-block:2.2rem 3rem;font-size:.9rem;color:var(--muted)}.site-footer-inner{display:flex;flex-wrap:wrap;gap:.75rem 2rem;align-items:baseline}.site-footer a{color:var(--muted)}.site-footer a:hover{color:var(--accent)}.site-footer .foot-right{margin-left:auto}.hero{padding-block:4.5rem 3.5rem}.hero h1{margin:0;font-family:var(--font-serif);font-size:clamp(2.6rem,7vw,4rem);font-weight:700;letter-spacing:.06em;line-height:1.25}.hero h1 .dot{color:var(--accent)}.hero .tagline{margin:.9rem 0 0;font-size:1.15rem;color:var(--text-soft);letter-spacing:.02em}.hero .lede{margin:.4rem 0 0;max-width:34em;color:var(--muted);font-size:.98rem}.section-head{display:flex;align-items:baseline;gap:1rem;margin:3rem 0 1.1rem;padding-bottom:.55rem;border-bottom:1px solid var(--border)}.section-head h2{margin:0;font-family:var(--font-serif);font-size:1.25rem;font-weight:600;letter-spacing:.05em}.section-head .more{margin-left:auto;font-size:.9rem;color:var(--muted)}.section-head .more:hover{color:var(--accent)}.featured-grid{display:grid;gap:1.1rem}@media(min-width:46rem){.featured-grid.two{grid-template-columns:1fr 1fr}}.featured-card{display:grid;grid-template-columns:11.5rem 1fr;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:border-color .2s,box-shadow .2s,transform .2s}.featured-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.featured-card .cover{width:100%;height:100%;min-height:9.5rem;object-fit:cover;display:block;border-right:1px solid var(--border)}.cover-fallback{background:radial-gradient(circle at 82% 18%,var(--accent-soft) 0 18%,transparent 19%),linear-gradient(135deg,var(--bg-soft),var(--surface))}.featured-card .cover-fallback{border-right:1px solid var(--border)}.featured-card .body{padding:1.1rem 1.3rem;min-width:0}.featured-card h3{margin:.35rem 0 .45rem;font-family:var(--font-serif);font-size:1.28rem;font-weight:600;line-height:1.5}.featured-card h3 a{color:var(--text)}.featured-card h3 a:hover{color:var(--accent);text-decoration:none}@media(max-width:40rem){.featured-card{grid-template-columns:1fr}.featured-card .cover,.featured-card .cover-fallback{height:9rem;border-right:0;border-bottom:1px solid var(--border)}}.post-list{list-style:none;margin:0;padding:0}.post-list li{padding-block:1.35rem;border-bottom:1px solid var(--border)}.post-list li:first-child{padding-top:.35rem}.post-item .title{margin:.15rem 0 .4rem;font-family:var(--font-serif);font-size:1.22rem;font-weight:600;line-height:1.55}.post-item .title a{color:var(--text)}.post-item .title a:hover{color:var(--accent);text-decoration:none}.post-item .summary{margin:0 0 .55rem;color:var(--text-soft);font-size:.96rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.meta-row{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .9rem;font-size:.84rem;color:var(--muted)}.meta-row .sep:before{content:"·";margin-right:.9rem;color:var(--border-strong)}.featured-badge{color:var(--accent);font-weight:600;letter-spacing:.1em}time{font-variant-numeric:tabular-nums}.tag{display:inline-block;padding:.08rem .6rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-soft);font-size:.8rem;line-height:1.7;transition:color .2s,border-color .2s}.tag:hover{color:var(--accent);border-color:var(--accent);text-decoration:none}.tag-list{display:flex;flex-wrap:wrap;gap:.5rem}.tag-list .tag{font-size:.9rem;padding:.22rem .85rem}.tag-list .tag .count{color:var(--muted);font-size:.8em;margin-left:.25rem}.home-more-row{display:flex;flex-wrap:wrap;gap:1rem 1.8rem;padding-block:1.4rem;font-size:.95rem}.page-head{padding-block:3rem 1.8rem}.page-head h1{margin:0;font-family:var(--font-serif);font-size:clamp(1.9rem,4.5vw,2.5rem);font-weight:700;letter-spacing:.04em}.page-head .sub{margin:.6rem 0 0;color:var(--muted);font-size:.98rem}.crumb{display:inline-block;margin-bottom:1rem;font-size:.88rem;color:var(--muted)}.crumb:hover{color:var(--accent)}.archive-year{margin:2.6rem 0 .6rem;font-family:var(--font-serif);font-size:1.5rem;font-weight:600}.archive-year .count{font-family:var(--font-sans);font-size:.9rem;font-weight:400;color:var(--muted);margin-left:.6rem}.archive-list{list-style:none;margin:0;padding:0}.archive-list li{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 1.2rem;padding-block:.55rem;border-bottom:1px dashed var(--border)}.archive-list time{color:var(--muted);font-size:.88rem;min-width:6.2em}.archive-list a{color:var(--text)}.archive-list a:hover{color:var(--accent);text-decoration:none}.post-wrap{display:grid;grid-template-columns:minmax(0,var(--w-prose));justify-content:center}@media(min-width:72rem){.post-wrap.has-toc{grid-template-columns:minmax(0,var(--w-prose)) 12.5rem;gap:3.5rem;justify-content:center}}.post-header{padding-block:2.8rem 0}.post-header h1{margin:.7rem 0 .8rem;font-family:var(--font-serif);font-size:clamp(1.7rem,4.5vw,2.3rem);font-weight:700;line-height:1.45;letter-spacing:.02em}.post-header .summary-lead{margin:1rem 0 0;padding-left:.9rem;border-left:3px solid var(--accent);color:var(--text-soft);font-size:1rem}.post-divider{border:0;border-top:1px solid var(--border);margin-block:1.8rem 2.4rem}.toc{font-size:.86rem;line-height:1.7}.toc .toc-title{font-size:.8rem;letter-spacing:.12em;color:var(--muted);margin:0 0 .5rem}.toc ol{list-style:none;margin:0;padding:0}.toc ol ol{padding-left:.9rem}.toc .toc-h3{font-size:.96em}.toc a{display:block;padding-block:.18rem;color:var(--muted);border-left:2px solid transparent;padding-left:.7rem;margin-left:-.72rem}.toc a:hover{color:var(--text);text-decoration:none}.toc a.is-active{color:var(--accent);border-left-color:var(--accent)}.toc-aside{display:none}@media(min-width:72rem){.post-wrap.has-toc .toc-aside{display:block;position:sticky;top:4.6rem;align-self:start;max-height:calc(100vh - 6rem);overflow-y:auto;padding-block-end:1rem}.toc-mobile{display:none}}.toc-mobile{margin:0 0 2.2rem}.toc-mobile summary{cursor:pointer;font-size:.92rem;color:var(--text-soft);padding:.55rem .9rem;background:var(--bg-soft);border-radius:var(--radius);user-select:none}.toc-mobile summary:hover{color:var(--accent)}.toc-mobile[open] summary{border-radius:var(--radius) var(--radius) 0 0}.toc-mobile .toc{padding:.6rem .9rem .8rem;background:var(--bg-soft);border-radius:0 0 var(--radius) var(--radius)}.prose{font-size:1.03rem;line-height:1.95;overflow-wrap:break-word}.prose>*:first-child{margin-top:0}.prose h2,.prose h3,.prose h4{font-family:var(--font-serif);font-weight:600;line-height:1.5;scroll-margin-top:5.5rem;letter-spacing:.02em}.prose h2{margin:2.4em 0 .8em;font-size:1.45rem;padding-bottom:.35rem;border-bottom:1px solid var(--border)}.prose h3{margin:2em 0 .7em;font-size:1.18rem}.prose h4{margin:1.6em 0 .5em;font-size:1.03rem}.prose p{margin:1.05em 0}.prose a{text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent) 45%,transparent)}.prose a:hover{text-decoration-color:currentColor}.prose ul,.prose ol{margin:1em 0;padding-left:1.6em}.prose li{margin-block:.35em}.prose li>ul,.prose li>ol{margin-block:.3em}.prose blockquote{margin:1.4em 0;padding:.2em 1.2em;border-left:3px solid var(--accent);background:var(--bg-soft);border-radius:0 var(--radius) var(--radius) 0;color:var(--text-soft)}.prose blockquote p{margin:.7em 0}.prose img{max-width:100%;height:auto;border-radius:var(--radius);box-shadow:var(--shadow-sm)}.prose video,.prose audio{display:block;width:100%;max-width:100%;border-radius:var(--radius);background:var(--code-bg);border:1px solid var(--border)}.prose video{aspect-ratio:16 / 9;height:auto}.prose audio{height:44px}.prose hr{border:0;border-top:1px solid var(--border);margin:2.6em auto;width:60%}.prose table{width:100%;margin:1.5em 0;border-collapse:collapse;font-size:.92rem;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--border);padding:.5em .85em;text-align:left}.prose th{background:var(--bg-soft);font-weight:600}.prose tr:nth-child(2n) td{background:color-mix(in srgb,var(--bg-soft) 45%,transparent)}.prose code{font-family:var(--font-mono);font-size:.88em;background:var(--code-bg);padding:.12em .42em;border-radius:5px}.prose pre{margin:1.5em 0;padding:1.05rem 1.2rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--code-bg)!important;overflow-x:auto;font-size:.86rem;line-height:1.75}.prose pre code{background:none;padding:0;font-size:inherit}.astro-code span{color:var(--shiki-light)}[data-theme=dark] .astro-code span{color:var(--shiki-dark)}.prose .astro-code,[data-theme=dark] .prose .astro-code{color:var(--text)}.post-footer-nav{margin-top:3rem;padding-top:1.6rem;border-top:1px solid var(--border);display:grid;gap:.9rem}@media(min-width:40rem){.post-footer-nav{grid-template-columns:1fr 1fr}}.prev-next a{display:block;padding:.85rem 1.1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);transition:border-color .2s}.prev-next a:hover{border-color:var(--accent);text-decoration:none}.prev-next .label{display:block;font-size:.8rem;color:var(--muted);margin-bottom:.15rem}.prev-next .pn-title{font-family:var(--font-serif);font-weight:600;font-size:.98rem;line-height:1.5}.prev-next.next{text-align:right}.related-posts{margin-top:2.4rem}.related-posts h2{font-family:var(--font-serif);font-size:1.1rem;letter-spacing:.05em;margin:0 0 .7rem}.related-posts ul{list-style:none;margin:0;padding:0}.related-posts li{padding-block:.45rem;border-bottom:1px dashed var(--border);display:flex;flex-wrap:wrap;gap:.3rem 1rem;align-items:baseline}.related-posts a{color:var(--text)}.related-posts a:hover{color:var(--accent);text-decoration:none}.related-posts time{color:var(--muted);font-size:.85rem}#reading-progress{position:fixed;top:0;left:0;right:0;height:2px;background:var(--accent);transform-origin:0 50%;transform:scaleX(0);z-index:60;pointer-events:none}.pagination{display:flex;align-items:center;justify-content:center;gap:1.1rem;padding-block:2.4rem .5rem;font-size:.95rem}.pagination .page-info{color:var(--muted);font-variant-numeric:tabular-nums}.pagination a,.pagination span.disabled{padding:.35rem 1rem;border:1px solid var(--border);border-radius:999px;background:var(--surface)}.pagination a{color:var(--text-soft)}.pagination a:hover{color:var(--accent);border-color:var(--accent);text-decoration:none}.pagination span.disabled{color:var(--border-strong);cursor:default}.search-form{display:flex;gap:.6rem;margin-bottom:1.2rem}.search-input{flex:1;width:100%;font:inherit;font-size:1.05rem;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.65rem 1rem}.search-input::placeholder{color:var(--muted)}.search-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.search-status{color:var(--muted);font-size:.92rem;margin:0 0 .8rem}.search-empty,.search-noresult{padding:2.2rem 1.4rem;border:1px dashed var(--border-strong);border-radius:var(--radius);text-align:center;color:var(--muted)}.search-noresult strong{color:var(--text-soft);word-break:break-all}mark{background:var(--mark-bg);color:inherit;border-radius:2px;padding-inline:1px}.about-card{display:flex;flex-wrap:wrap;align-items:center;gap:1.6rem;padding:1.8rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.avatar,.avatar-fallback{width:6rem;height:6rem;border-radius:50%;object-fit:cover;flex-shrink:0}.avatar-fallback{display:inline-flex;align-items:center;justify-content:center;background:var(--accent-soft);border:1px solid var(--border);color:var(--accent);font-family:var(--font-serif);font-size:2.1rem;font-weight:600}.about-card h2{margin:0;font-family:var(--font-serif);font-size:1.45rem;letter-spacing:.04em}.about-card .about-bio{margin:.45rem 0 0;color:var(--text-soft);max-width:36em}.about-bio p+p{margin-top:.5em}.about-links{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.4rem}.about-links a{display:inline-block;padding:.3rem 1rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-soft);font-size:.9rem}.about-links a:hover{color:var(--accent);border-color:var(--accent);text-decoration:none}.about-body{margin-top:2.2rem}.error-page{text-align:center;padding-block:6rem 4rem}.error-page .code{font-family:var(--font-serif);font-size:4.5rem;font-weight:700;color:var(--accent);line-height:1}.error-page p{color:var(--text-soft)}.noscript-note{background:var(--bg-soft);border:1px dashed var(--border-strong);border-radius:var(--radius);padding:1rem 1.2rem;color:var(--muted);font-size:.92rem}@media(max-width:40rem){.site-header-inner{padding-block:.7rem}.site-nav{gap:.95rem;font-size:.9rem;width:100%;order:3;margin-left:0}.hero{padding-block:3rem 2.4rem}.page-head{padding-block:2.2rem 1.4rem}.post-header{padding-block:2rem 0}}.icon-link{display:inline-flex;align-items:center;justify-content:center;width:2.15rem;height:2.15rem;color:var(--text-soft)}.icon-link:hover{color:var(--accent)}.icon-link svg{width:1.05rem;height:1.05rem}.project-list{display:flex;flex-direction:column}.project{display:grid;grid-template-columns:1fr;gap:.4rem 1.8rem;padding-block:1.6rem;border-bottom:1px dashed var(--border)}@media(min-width:46rem){.project.has-cover{grid-template-columns:14rem 1fr;align-items:start}}.project-cover{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface)}.project-cover img{display:block;width:100%;aspect-ratio:16 / 10;object-fit:cover}.project-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem .8rem}.project-name{margin:0;font-family:var(--font-serif);font-size:1.3rem;font-weight:600;letter-spacing:.02em}.project-status{font-size:.8rem;color:var(--accent);border:1px solid var(--accent);border-radius:2px;padding:.02rem .5rem;white-space:nowrap}.project-year{font-size:.84rem;color:var(--muted);font-variant-numeric:tabular-nums}.project-desc{margin:.35rem 0 .6rem;color:var(--text-soft);max-width:44em}.project-stack{display:flex;flex-wrap:wrap;gap:.4rem}.project-links{display:flex;gap:1.2rem;margin-top:.7rem;font-size:.92rem}.project-links a{color:var(--text-soft);border-bottom:1px solid var(--border-strong)}.project-links a:hover{color:var(--accent);border-bottom-color:var(--accent);text-decoration:none}.series-desc{margin:.8rem 0 0}.series-index{display:flex;flex-direction:column;gap:2.2rem}.series-item-name{margin:0 0 .4rem;font-family:var(--font-serif);font-size:1.35rem;font-weight:600;display:flex;align-items:baseline;gap:.6rem}.series-item-name a{color:var(--text)}.series-item-name a:hover{color:var(--accent);text-decoration:none}.series-item-name .count{font-family:var(--font-sans);font-size:.85rem;color:var(--muted);font-weight:400}.series-item-desc{margin:0 0 .6rem;color:var(--text-soft);max-width:42em}.series-item-list{list-style:none;margin:0;padding:0}.series-item-list li{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 1rem;padding-block:.45rem;border-bottom:1px dashed var(--border)}.series-item-list a{color:var(--text)}.series-item-list a:hover{color:var(--accent);text-decoration:none}.series-item-list time{color:var(--muted);font-size:.85rem}.series-item-list .more{margin-left:auto;font-size:.88rem;color:var(--muted)}.series-detail{list-style:none;margin:0;padding:0;counter-reset:series}.series-detail>li{display:flex;gap:1.1rem;padding-block:1.1rem;border-bottom:1px dashed var(--border)}.series-order{flex-shrink:0;width:2.2rem;height:2.2rem;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-strong);border-radius:50%;font-family:var(--font-serif);color:var(--accent);font-size:.95rem}.series-detail-title{font-family:var(--font-serif);font-weight:600;font-size:1.12rem;color:var(--text);display:inline-block}.series-detail-title:hover{color:var(--accent);text-decoration:none}.series-detail-summary{color:var(--muted);font-size:.92rem}.series-box{margin-top:1.6rem;border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0;background:var(--bg-soft);padding:.9rem 1.1rem}.series-box-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem .7rem}.series-kicker{font-size:.78rem;letter-spacing:.2em;color:var(--muted)}.series-box-name{font-family:var(--font-serif);font-weight:600;color:var(--text)}.series-box-name:hover{color:var(--accent);text-decoration:none}.series-box-count{margin-left:auto;font-size:.84rem;color:var(--muted);font-variant-numeric:tabular-nums}.series-box-bar{height:3px;background:var(--border);border-radius:999px;margin-block:.6rem;overflow:hidden}.series-box-bar span{display:block;height:100%;background:var(--accent)}.series-box-nav{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;margin-top:.55rem;font-size:.9rem}.series-box-nav a{color:var(--text-soft)}.series-box-nav a:hover{color:var(--accent)}.series-box-disabled{color:var(--muted);font-size:.9rem}.post-actions{display:flex;gap:.7rem;margin-top:1.3rem}.bookmark-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .9rem;border:1px solid var(--border);border-radius:2px;background:transparent;color:var(--text-soft);font-size:.9rem;cursor:pointer;font-family:var(--font-sans)}.bookmark-btn:hover{color:var(--accent);border-color:var(--accent);text-decoration:none}.bookmark-btn svg{width:.95rem;height:.95rem}.bookmark-btn.is-marked{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.bookmark-btn.is-marked svg{fill:var(--accent)}.code-block{margin:1.5em 0;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.code-block .astro-code{margin:0!important;border:none!important;border-radius:0!important}.code-block-head{display:flex;align-items:center;gap:.8rem;padding:.4rem .9rem;background:var(--bg-soft);border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:.76rem;color:var(--muted)}.code-block-name{color:var(--text-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.code-block-right{margin-left:auto;display:inline-flex;align-items:center;gap:.7rem;flex-shrink:0}.code-block-lang{text-transform:uppercase;letter-spacing:.06em}.code-copy{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text-soft);padding:.06rem .55rem;border-radius:2px;cursor:pointer}.code-copy:hover{color:var(--accent);border-color:var(--accent)}.continue-card{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem 1rem;border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0;background:var(--bg-soft);padding:.9rem 1.2rem}.continue-card:hover{text-decoration:none;border-bottom-color:var(--border-strong)}.continue-label{font-size:.78rem;letter-spacing:.2em;color:var(--muted)}.continue-title{font-family:var(--font-serif);font-weight:600;font-size:1.12rem;color:var(--text)}.continue-card:hover .continue-title{color:var(--accent)}.continue-more{margin-left:auto;font-size:.9rem;color:var(--accent)}.mark-list{list-style:none;margin:0;padding:0}.mark-list li{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 1rem;padding-block:.7rem;border-bottom:1px dashed var(--border)}.mark-title{color:var(--text);font-family:var(--font-serif);font-weight:600}.mark-title:hover{color:var(--accent);text-decoration:none}.mark-meta{color:var(--muted);font-size:.85rem;font-variant-numeric:tabular-nums}.mark-remove{margin-left:auto;border:1px solid var(--border);background:transparent;color:var(--muted);font-size:.8rem;padding:.05rem .6rem;border-radius:2px;cursor:pointer;font-family:var(--font-sans)}.mark-remove:hover{color:var(--accent);border-color:var(--accent)}.section-count{margin-left:auto;color:var(--muted);font-size:.85rem}.empty-state{border:1px dashed var(--border-strong);border-radius:var(--radius);padding:2rem 1.4rem;text-align:center;color:var(--muted);line-height:2}#marks-section,#recent-section,.continue-section{margin-top:2.2rem}#marks-section .section-head,#recent-section .section-head,.continue-section .section-head{margin-top:0}.notes-list{margin-top:1rem}.note-section{padding-block:1.5rem;border-bottom:1px dashed var(--border)}.note-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 1rem}.note-title{margin:0;font-family:var(--font-serif);font-size:1.22rem;font-weight:600}.note-pin{margin-right:.3rem;font-size:.9em}.note-anchor{color:var(--border-strong);font-family:var(--font-mono)}.note-anchor:hover{color:var(--accent)}.note-body{margin-top:.3rem;font-size:.98rem}.note-body .code-block,.note-body pre{margin:.8em 0}.tag-chip{cursor:pointer;font-family:var(--font-sans)}.devlog-timeline{margin-top:1rem}.devlog-month{margin:2.2rem 0 .8rem;font-family:var(--font-serif);font-size:1.25rem}.devlog-month:first-child{margin-top:.4rem}.devlog-list{list-style:none;margin:0;padding:0 0 0 1.2rem;border-left:1px solid var(--border)}.devlog-entry{position:relative;display:flex;gap:1rem;padding-block:1rem}.devlog-dot{position:absolute;left:-1.2rem;top:1.7rem;width:.72rem;height:.72rem;border-radius:50%;background:var(--muted);transform:translate(-50%);border:2px solid var(--bg)}.devlog-dot.kind-决策{background:var(--accent)}.devlog-dot.kind-问题{background:transparent;border:2px solid var(--accent)}.devlog-entry-body{min-width:0;flex:1}.devlog-kind{font-size:.76rem;padding:.03rem .5rem;border:1px solid var(--border-strong);border-radius:2px;color:var(--text-soft)}.devlog-kind.kind-决策{color:var(--accent);border-color:var(--accent)}.devlog-kind.kind-问题{color:var(--accent);border-style:dashed}.devlog-project{color:var(--muted);font-size:.84rem}.devlog-title{margin:.25rem 0 .2rem;font-family:var(--font-serif);font-size:1.12rem;font-weight:600}.devlog-title a{color:var(--text)}.devlog-title a:hover{color:var(--accent);text-decoration:none}.devlog-summary{margin:0 0 .3rem;color:var(--text-soft);font-size:.94rem}.devlog-more{font-size:.86rem;color:var(--muted)}.devlog-more:hover{color:var(--accent)}.path-progress{display:flex;align-items:center;gap:1rem;margin-bottom:1.4rem}.path-progress-bar{flex:1;height:4px;background:var(--border);border-radius:999px;overflow:hidden}.path-progress-bar span{display:block;height:100%;background:var(--accent);transition:width .2s ease}.path-progress-count{color:var(--muted);font-size:.86rem;font-variant-numeric:tabular-nums;white-space:nowrap}.path-check{border:none;background:none;padding:0;cursor:pointer;font-family:inherit}.path-check .series-order{transition:background-color .2s,color .2s,border-color .2s}.path-check.done .series-order{background:var(--accent);border-color:var(--accent);color:var(--bg)}.path-steps li.step-done .series-detail-title{color:var(--muted)}.path-step-note{margin:.15rem 0 0;color:var(--muted);font-size:.9rem}.now-section{margin-top:2.2rem}.now-section .section-head{margin-top:0}.now-doing{list-style:none;margin:0;padding:0}.now-doing li{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;padding-block:.55rem;border-bottom:1px dashed var(--border)}.now-doing time{color:var(--muted);font-size:.88rem;font-variant-numeric:tabular-nums;min-width:5.5em}.now-uses{display:grid;gap:1.4rem}@media(min-width:46rem){.now-uses{grid-template-columns:1fr 1fr}}.now-use-cat{margin:0 0 .5rem;font-family:var(--font-serif);font-size:1.02rem;color:var(--text)}.now-uses ul{list-style:none;margin:0;padding:0}.now-uses li{padding-block:.4rem;border-bottom:1px dashed var(--border);display:flex;flex-wrap:wrap;gap:.2rem .8rem;align-items:baseline}.now-use-name{font-weight:500}.now-use-note{color:var(--muted);font-size:.88rem}.verified-chip{display:inline-block;font-size:.8rem;color:var(--accent);border:1px solid var(--accent);border-radius:2px;padding:.05rem .55rem}.updates-box{margin-top:1.2rem;border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--bg-soft)}.updates-box summary{cursor:pointer;padding:.6rem 1rem;font-size:.92rem;color:var(--text-soft);user-select:none}.updates-box summary:hover{color:var(--accent)}.updates-count{color:var(--muted);font-size:.85em}.updates-box ul{list-style:none;margin:0;padding:.2rem 1rem .8rem}.updates-box li{display:flex;flex-wrap:wrap;gap:.3rem 1rem;padding-block:.35rem;font-size:.9rem}.updates-box time{color:var(--muted);font-variant-numeric:tabular-nums}.draft-banner{margin-top:1.6rem;padding:.7rem 1.1rem;border:1px dashed var(--accent);border-radius:var(--radius);background:var(--accent-soft);color:var(--accent-ink);font-size:.92rem}[data-theme=dark] .draft-banner{color:var(--accent)}.discussion{margin-top:2.6rem;padding-top:1.4rem;border-top:1px solid var(--border)}.discussion h2{font-family:var(--font-serif);font-size:1.1rem;letter-spacing:.05em;margin:0 0 .4rem}.discussion-tip{margin:0 0 .8rem;color:var(--muted);font-size:.92rem}.discussion-actions{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center}.palette-open{border:1px solid var(--border);background:var(--surface);border-radius:4px;padding:.15rem .5rem;cursor:pointer}.palette-open kbd{font-family:var(--font-mono);font-size:.72rem;color:var(--muted)}.palette-open:hover kbd{color:var(--accent)}.palette-root{position:fixed;inset:0;z-index:200}.palette-overlay{position:absolute;inset:0;background:#14110c73;backdrop-filter:blur(2px)}.palette-panel{position:relative;max-width:34rem;margin:12vh auto 0;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-md);overflow:hidden}.palette-input{width:100%;border:none;border-bottom:1px solid var(--border);background:transparent;color:var(--text);font:inherit;font-size:1.05rem;padding:.85rem 1.1rem}.palette-input:focus{outline:none}.palette-list{list-style:none;margin:0;padding:.4rem;max-height:22rem;overflow-y:auto}.palette-list li{display:flex;align-items:center;gap:.8rem;padding:.5rem .7rem;border-radius:6px;cursor:pointer;color:var(--text-soft)}.palette-list li.is-active{background:var(--accent-soft);color:var(--accent)}.palette-group{flex-shrink:0;font-size:.72rem;color:var(--muted);border:1px solid var(--border);border-radius:2px;padding:0 .35rem}.palette-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.palette-hint{margin:0;padding:.45rem 1.1rem .6rem;border-top:1px solid var(--border);color:var(--muted);font-size:.78rem}.demo-box{margin:1.5em 0;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.demo-head{display:flex;align-items:center;gap:.8rem;padding:.4rem .9rem;background:var(--bg-soft);border-bottom:1px solid var(--border)}.demo-label{font-size:.76rem;color:var(--muted);letter-spacing:.08em}.demo-head .code-copy{margin-left:auto}.demo-editor{display:block;width:100%;min-height:180px;border:none;border-bottom:1px dashed var(--border);background:var(--surface);color:var(--text);font-family:var(--font-mono);font-size:.84rem;line-height:1.7;padding:.8rem 1rem;resize:vertical}.demo-editor:focus{outline:none;background:var(--bg)}.demo-frame{display:block;width:100%;height:220px;border:none;background:var(--surface)}.glossary-link{text-decoration:underline dotted var(--border-strong);text-underline-offset:.25em;color:inherit}.glossary-link:hover{color:var(--accent);text-decoration-color:var(--accent)}.glossary-groups{margin-top:.6rem}.glossary-cat{margin:2.4rem 0 .8rem;font-family:var(--font-serif);font-size:1.15rem;padding-bottom:.4rem;border-bottom:1px solid var(--border)}.glossary-item{padding-block:1.1rem;border-bottom:1px dashed var(--border)}.glossary-item:target{background:var(--accent-soft);border-radius:var(--radius);padding-inline:.8rem}.glossary-term{margin:0 0 .3rem;font-family:var(--font-serif);font-size:1.15rem}.glossary-def{margin:0;color:var(--text-soft)}.glossary-body{font-size:.94rem;margin-top:.4rem}.glossary-body>:first-child{margin-top:0}.share-modal{position:fixed;inset:0;z-index:210;background:#14110c80;display:flex;align-items:center;justify-content:center;padding:1.5rem}.share-panel{max-width:min(92vw,46rem);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:1rem}.share-panel img{display:block;width:100%;border-radius:calc(var(--radius) - 4px);border:1px solid var(--border)}.share-actions{display:flex;gap:.7rem;margin-top:.9rem;justify-content:flex-end}.share-actions button{font:inherit;font-size:.9rem;padding:.3rem 1rem;border:1px solid var(--border);border-radius:2px;background:transparent;color:var(--text-soft);cursor:pointer}.share-actions button:hover{color:var(--accent);border-color:var(--accent)}.share-actions button:first-child{background:var(--accent);border-color:var(--accent);color:#fff}.share-actions button:first-child:hover{background:var(--accent-ink);color:#fff}.stale-banner{margin-top:1.6rem;padding:.7rem 1.1rem;border:1px dashed var(--border-strong);border-left:3px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0;background:var(--bg-soft);color:var(--text-soft);font-size:.92rem}.stale-banner a{color:var(--accent)}.review-list{list-style:none;margin:0;padding:0}.review-row{display:flex;align-items:center;gap:1rem;padding-block:.9rem;border-bottom:1px dashed var(--border)}.review-main{min-width:0;flex:1}.review-main a{color:var(--text);font-family:var(--font-serif);font-weight:600}.review-main a:hover{color:var(--accent);text-decoration:none}.review-badge{flex-shrink:0;font-size:.78rem;color:var(--accent);border:1px dashed var(--accent);border-radius:2px;padding:.05rem .55rem}.compare-grid{display:grid;gap:.9rem;margin:1.5em 0}@media(min-width:46rem){.compare-grid{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}}.compare-card{border:1px solid var(--border);border-top:3px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);padding:.85rem 1rem;font-size:.9rem}.compare-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem;margin-bottom:.5rem;padding-bottom:.4rem;border-bottom:1px dashed var(--border)}.compare-name{font-family:var(--font-serif);font-weight:600;font-size:1.05rem}.compare-complexity{margin-left:auto;font-size:.74rem;padding:.02rem .5rem;border:1px solid var(--border-strong);border-radius:2px;color:var(--muted)}.compare-complexity[data-level=低]{color:var(--accent);border-color:var(--accent)}.compare-complexity[data-level=高]{color:var(--muted);border-style:dashed}.compare-card p{margin:.3rem 0}.compare-label{color:var(--muted);font-size:.78rem;margin-right:.4rem;letter-spacing:.08em}.compare-pros .compare-label{color:var(--accent)}.compare-cons .compare-label{color:var(--muted)}.level-badge{font-size:.78rem;padding:.03rem .55rem;border-radius:2px;border:1px solid var(--border-strong);color:var(--text-soft);white-space:nowrap}.level-入门{color:var(--accent);border-color:var(--accent)}.level-深入{border-style:dashed}.prereq-label{color:var(--muted);font-size:.8rem;letter-spacing:.1em}.prereq-item{font-size:.82rem;padding:.05rem .6rem;border:1px dashed var(--border-strong);border-radius:2px;color:var(--text-soft)}.env-box{margin-top:1.2rem;border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--bg-soft);padding:.7rem 1rem;display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;align-items:baseline}.env-label{font-size:.78rem;letter-spacing:.16em;color:var(--muted)}.env-box ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem 1.4rem}.env-box li{display:flex;gap:.45rem;align-items:baseline;font-size:.9rem}.env-name{color:var(--text-soft)}.env-box code{font-size:.82rem}.adr-list{list-style:none;margin:0;padding:0}.adr-row{display:flex;align-items:center;gap:1rem;padding-block:1rem;border-bottom:1px dashed var(--border)}.adr-main{min-width:0;flex:1}.adr-title{font-family:var(--font-serif);font-weight:600;font-size:1.12rem;color:var(--text)}.adr-title:hover{color:var(--accent);text-decoration:none}.adr-summary{margin:.25rem 0 .2rem;color:var(--text-soft);font-size:.92rem}.adr-status{flex-shrink:0;font-size:.78rem;padding:.05rem .55rem;border-radius:2px;border:1px solid var(--border-strong);color:var(--text-soft)}.adr-status.status-接受{color:var(--accent);border-color:var(--accent)}.adr-status.status-提议{border-style:dashed}.adr-status.status-已废弃,.adr-status.status-已被替代{color:var(--muted);text-decoration:line-through;border-style:dashed}.radar-rings{margin-top:.6rem}.radar-ring{margin-top:2rem}.radar-ring-title{font-family:var(--font-serif);font-size:1.2rem;margin:0 0 .8rem;padding-bottom:.4rem;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:.6rem}.radar-ring-title:before{content:"";width:.65rem;height:.65rem;border-radius:50%;background:var(--border-strong)}.ring-使用中:before{background:var(--accent)}.ring-在学习:before{background:transparent;border:2px solid var(--accent)}.ring-想尝试:before{background:var(--border-strong)}.radar-items{display:grid;gap:.8rem}@media(min-width:46rem){.radar-items{grid-template-columns:repeat(auto-fill,minmax(16rem,1fr))}}.radar-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:.7rem .95rem}.radar-item-head{display:flex;align-items:baseline;gap:.6rem}.radar-item-name{font-family:var(--font-serif);font-weight:600}.radar-item-cat{margin-left:auto;font-size:.74rem;color:var(--muted);border:1px solid var(--border);border-radius:2px;padding:0 .4rem}.radar-item-note{margin:.3rem 0 0;color:var(--text-soft);font-size:.88rem}.devlog-dot.kind-文章{background:var(--text-soft)}.devlog-dot.kind-日志{background:transparent;border:2px solid var(--muted)}:root{--prose-size: 1.03rem;--prose-lh: 1.95;--prose-w: var(--w-prose)}.prose{font-size:var(--prose-size);line-height:var(--prose-lh);overflow-wrap:break-word}.post-wrap{grid-template-columns:minmax(0,var(--prose-w))}@media(min-width:72rem){.post-wrap.has-toc{grid-template-columns:minmax(0,var(--prose-w)) 12.5rem}}.prefs-pop{position:relative}.prefs-panel{position:absolute;top:calc(100% + .5rem);left:0;z-index:120;min-width:17rem;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:.9rem 1.1rem}.prefs-row{display:flex;align-items:center;gap:.6rem;padding-block:.4rem}.prefs-row+.prefs-row{border-top:1px dashed var(--border)}.prefs-name{flex-shrink:0;width:3.2em;font-size:.84rem;color:var(--muted)}.prefs-seg{display:inline-flex;border:1px solid var(--border);border-radius:4px;overflow:hidden}.prefs-seg button{font:inherit;font-size:.82rem;border:none;background:transparent;color:var(--text-soft);padding:.18rem .7rem;cursor:pointer;border-left:1px solid var(--border)}.prefs-seg button:first-child{border-left:none}.prefs-seg button[aria-pressed=true]{background:var(--accent);color:#fff}.prefs-reset{margin-top:.5rem;font-size:.8rem;color:var(--muted);background:none;border:none;cursor:pointer;padding:0;font-family:var(--font-sans)}.prefs-reset:hover{color:var(--accent)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr));gap:.8rem;margin-block:1rem .5rem}.stat-num{font-family:var(--font-serif);font-size:1.9rem;font-weight:700;color:var(--accent);line-height:1.1}.stat-label{font-size:.82rem;color:var(--muted)}.resume-section{margin-top:2.2rem}.resume-section .section-head{margin-top:0}.resume-skills{display:grid;gap:1.2rem}@media(min-width:46rem){.resume-skills{grid-template-columns:repeat(auto-fit,minmax(17rem,1fr))}}.resume-skill-cat{margin:0 0 .4rem;font-family:var(--font-serif);font-size:1rem;color:var(--text)}.resume-skills ul{list-style:none;margin:0;padding:0}.resume-skills li{padding-block:.4rem;border-bottom:1px dashed var(--border)}.resume-skill-link{color:var(--text);border-bottom:1px solid var(--border-strong)}.resume-skill-link:hover{color:var(--accent);border-bottom-color:var(--accent);text-decoration:none}.resume-skill-arrow{color:var(--muted);font-size:.85em;margin-left:.3rem}.resume-skill-note{color:var(--muted);font-size:.85rem}.resume-exp{list-style:none;margin:0;padding:0}.resume-exp li{padding-block:1.1rem;border-bottom:1px dashed var(--border)}.resume-period{color:var(--muted);font-size:.86rem;font-variant-numeric:tabular-nums}.resume-role{margin:.2rem 0 .3rem;font-family:var(--font-serif);font-size:1.15rem}.resume-org{color:var(--text-soft);font-size:.95rem}.resume-summary{margin:0;color:var(--text-soft)}.resume-highlights{margin:.5rem 0 0;padding-left:1.3em;color:var(--text-soft);font-size:.94rem}.terminal{max-width:40rem;margin:0 auto;border:1px solid var(--border-strong);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-md);text-align:left;background:var(--code-bg)}.term-bar{display:flex;align-items:center;gap:.45rem;padding:.5rem .8rem;border-bottom:1px solid var(--border);background:var(--bg-soft)}.term-dot{width:.72rem;height:.72rem;border-radius:50%;background:var(--border-strong)}.term-dot:first-child{background:var(--accent)}.term-title{margin-left:auto;font-family:var(--font-mono);font-size:.76rem;color:var(--muted)}.term-body{padding:1rem 1.2rem 1.2rem;font-family:var(--font-mono);font-size:.9rem;line-height:2;color:var(--text-soft)}.term-body p{margin:0;white-space:pre-wrap;word-break:break-all}.term-prompt{color:var(--accent);margin-right:.5rem}.term-out{color:var(--muted)}.term-err{color:var(--accent)}.term-caret{display:inline-block;width:.55em;background:var(--accent);animation:caret-blink 1.1s steps(1) infinite}@keyframes caret-blink{50%{opacity:0}}@media print{.site-header,.site-footer,.skip-link,#reading-progress,.toc-aside,.toc-mobile,.palette-root,.palette-open,.post-actions,.discussion,.share-modal,.prefs-pop,#theme-toggle,.icon-link,.crumb{display:none!important}html,body{background:#fff!important;color:#000!important;font-size:11pt}.container{max-width:100%!important;padding:0!important}.post-wrap,.post-wrap.has-toc{display:block!important}.prose,.post-wrap{--prose-size: 11pt;--prose-w: 100%;max-width:100%!important;color:#000!important}.prose pre,.prose code,.prose table,.prose blockquote{border-color:#bbb!important;background:#f5f5f5!important;color:#000!important;box-shadow:none!important}.prose a{color:#000!important;text-decoration:underline}.prose h2,.prose h3,.post-header h1,.page-head h1{color:#000!important;break-after:avoid}.prose pre,.prose table,.prose img,.series-box{break-inside:avoid}.astro-code span{color:var(--shiki-light)!important}}.graph-wrap{position:relative;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.graph-svg{display:block;width:100%;height:62vh;min-height:24rem;touch-action:none;font-family:var(--font-sans)}.graph-toolbar{position:absolute;top:.7rem;left:.7rem;z-index:5;display:flex;align-items:center;gap:.4rem}.graph-hint{font-size:.78rem;color:var(--muted);margin-left:.4rem}.graph-tooltip{position:absolute;top:.7rem;right:.7rem;z-index:5;background:var(--bg);border:1px solid var(--border-strong);border-radius:6px;padding:.3rem .7rem;font-size:.84rem;color:var(--text-soft);max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.graph-legend{display:flex;flex-wrap:wrap;gap:.4rem 1.1rem;padding:.6rem .9rem;border-top:1px dashed var(--border);font-size:.8rem;color:var(--muted)}.graph-legend-item{display:inline-flex;align-items:center;gap:.35rem}.graph-legend-item i{width:.6rem;height:.6rem;border-radius:50%;background:var(--border-strong)}.prose h2[id],.prose h3[id]{position:relative}.heading-anchor{position:absolute;left:-1.4em;top:.1em;border:none;background:none;color:var(--border-strong);font-size:.85em;cursor:pointer;opacity:0;transition:opacity .15s;padding:.1em;font-family:var(--font-mono)}.prose h2[id]:hover .heading-anchor,.prose h3[id]:hover .heading-anchor,.heading-anchor:focus-visible,.heading-anchor.copied{opacity:1}.heading-anchor:hover,.heading-anchor.copied{color:var(--accent)}@media(max-width:46rem){.heading-anchor{left:-1.1em}}.lang-switch{display:flex;flex-wrap:wrap;align-items:baseline;gap:.3rem .8rem;margin-bottom:.9rem;font-size:.88rem;color:var(--muted)}.lang-switch a{color:var(--accent);border-bottom:1px solid var(--accent)}.lang-switch a:hover{text-decoration:none;color:var(--accent-ink)}.code-verified{font-size:.72rem;color:var(--muted)}.code-verified.is-ok{color:var(--accent)}.ask-submit{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem;padding-block:.4rem 1.4rem}.ask-list{margin-top:.4rem}.ask-item{border-bottom:1px dashed var(--border)}.ask-item summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem .8rem;padding-block:1rem;cursor:pointer;user-select:none}.ask-item summary:hover .ask-q{color:var(--accent)}.ask-q-mark,.ask-a-mark{flex-shrink:0;width:1.5rem;height:1.5rem;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-strong);border-radius:50%;font-family:var(--font-serif);font-size:.85rem;color:var(--muted);transform:translateY(.2rem)}.ask-a-mark{color:var(--accent);border-color:var(--accent)}.ask-q{font-family:var(--font-serif);font-weight:600;font-size:1.06rem;color:var(--text);min-width:0}.ask-meta{margin-left:auto;color:var(--muted);font-size:.82rem;display:flex;gap:.8rem}.ask-a{display:flex;gap:.8rem;padding:0 0 1.2rem}.ask-a-body{font-size:.95rem;min-width:0}.ask-a-body p{margin:.2em 0}.subscribe-embed iframe{width:100%;min-height:22rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.ai-answer{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:1rem 1.3rem;margin-top:.8rem}.ai-sources{margin-top:1.2rem}.ai-sources-title{font-family:var(--font-serif);font-size:1rem;margin:0 0 .4rem}.ai-sources ul{list-style:none;margin:0;padding:0}.ai-sources li{padding-block:.4rem;border-bottom:1px dashed var(--border)}.ai-sources a{color:var(--text)}.ai-sources a:hover{color:var(--accent)}.prose>p{position:relative}.anno-btn{position:absolute;left:-1.5em;top:.15em;border:none;background:none;color:var(--border-strong);font-size:.9em;cursor:pointer;opacity:0;padding:.1em;transition:opacity .15s}.prose>p:hover .anno-btn,.anno-btn:focus-visible{opacity:1}.anno-btn:hover{color:var(--accent)}@media(max-width:46rem){.anno-btn{left:-1.15em}}.prose>p.has-anno:before{content:"";position:absolute;left:-.9rem;top:.3em;bottom:.3em;width:3px;border-radius:2px;background:var(--accent-soft)}.anno-card{margin-top:.6rem;padding:.55rem .9rem;border:1px dashed var(--accent);border-radius:var(--radius);background:var(--accent-soft);position:relative}.anno-label{display:block;font-size:.72rem;letter-spacing:.18em;color:var(--accent);margin-bottom:.2rem}.anno-text{margin:0;font-size:.92rem;color:var(--text-soft);white-space:pre-wrap}.anno-del{position:absolute;top:.45rem;right:.6rem;border:none;background:none;color:var(--muted);font-size:.78rem;cursor:pointer;font-family:var(--font-sans)}.anno-del:hover{color:var(--accent)}.anno-editor{margin-top:.6rem}.anno-input{width:100%;font:inherit;font-size:.92rem;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:6px;padding:.5rem .7rem;resize:vertical}.anno-editor-row{display:flex;gap:.5rem;margin-top:.45rem}.anno-inline{color:var(--text-soft);font-size:.9rem;flex-basis:100%}@media print{.anno-btn,.anno-card,.anno-editor,#anno-toggle{display:none!important}}.board-grid{display:grid;gap:.9rem;margin-top:1rem}@media(min-width:50rem){.board-grid{grid-template-columns:repeat(4,1fr)}}.board-col{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:.7rem .85rem;min-height:7rem}.board-col-update{border-style:dashed}.board-col-title{margin:0 0 .6rem;font-family:var(--font-serif);font-size:1rem;display:flex;align-items:baseline;gap:.5rem;padding-bottom:.4rem;border-bottom:1px dashed var(--border)}.board-col-title .count{font-family:var(--font-sans);font-size:.78rem;color:var(--muted)}.board-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}.board-card{border:1px solid var(--border);border-left:3px solid var(--border-strong);border-radius:6px;padding:.5rem .7rem;font-size:.9rem}.board-card.published{border-left-color:var(--accent)}.board-title{font-weight:600;color:var(--text);display:block}.board-title:hover{color:var(--accent);text-decoration:none}.board-draft-tag{color:var(--accent);font-size:.78rem}.board-edit{display:inline-block;margin-top:.25rem;font-size:.8rem;color:var(--muted)}.board-edit:hover{color:var(--accent)}.board-empty{color:var(--muted);font-size:.85rem;margin:.4rem 0 0}.img-drop{display:flex;align-items:center;gap:1rem;border:1px dashed var(--border-strong);border-radius:var(--radius);padding:1.6rem 1.4rem;margin-bottom:1.2rem;transition:border-color .2s,background-color .2s}.img-drop.is-over{border-color:var(--accent);background:var(--accent-soft)}.img-work{margin-top:.6rem}.img-preview-row{display:flex;flex-wrap:wrap;gap:1.2rem;align-items:flex-start;margin-bottom:1rem}.img-preview-row img{max-width:min(100%,22rem);max-height:16rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-soft)}.img-stats{margin:0;display:flex;flex-direction:column;gap:.6rem;font-size:.9rem}.img-stats div{display:flex;gap:.6rem}.img-stats dt{color:var(--muted);min-width:3.2em}.img-stats dd{margin:0;color:var(--text-soft)}.img-field{display:block;margin-top:.9rem}.img-field span{display:block;font-size:.84rem;color:var(--muted);margin-bottom:.35rem}.img-work .prefs-row{margin-top:.6rem}mark.hl-mark{background:var(--mark-bg);color:inherit;padding:.05em .15em;border-radius:3px}.hl-card{margin-top:.6rem;border:1px solid var(--border-strong);border-left:3px solid var(--border-strong);border-radius:0 var(--radius) var(--radius) 0;background:var(--bg-soft);padding:.55rem .9rem;position:relative}.hl-card blockquote{margin:0 0 .3rem;font-size:.88rem;color:var(--muted);border:none;background:none;padding:0}.hl-note{margin:0;font-size:.92rem;color:var(--text-soft)}.hl-float{position:fixed;z-index:150;border:1px solid var(--accent);background:var(--surface);color:var(--accent);font:inherit;font-size:.82rem;padding:.22rem .7rem;border-radius:999px;cursor:pointer;box-shadow:var(--shadow-md)}.hl-float:hover{background:var(--accent);color:#fff}#anno-list li.hl-item{flex-wrap:wrap}#anno-list .hl-item blockquote{flex-basis:100%;margin:.1rem 0;padding-left:.8rem;border-left:2px solid var(--border-strong);color:var(--muted);font-size:.88rem}.cite-pop{position:relative;display:inline-flex;gap:.5rem;margin-left:.6rem}.cite-pop button{font:inherit;font-size:.84rem;border:1px solid var(--border);border-radius:2px;background:var(--surface);color:var(--text-soft);padding:.2rem .7rem;cursor:pointer}.cite-pop button:hover{color:var(--accent);border-color:var(--accent)}@media print{.cite-pop,.hl-float,.hl-card{display:none!important}}.ex-wrap,.quiz-wrap{margin:1.5em 0;display:flex;flex-direction:column;gap:.9rem}.ex-card,.quiz-card{border:1px solid var(--border);border-left:3px solid var(--border-strong);border-radius:0 var(--radius) var(--radius) 0;background:var(--surface);padding:.8rem 1rem}.ex-head{display:flex;align-items:baseline;gap:.8rem;margin-bottom:.5rem}.ex-tag{flex-shrink:0;font-size:.74rem;letter-spacing:.1em;color:var(--accent);border:1px solid var(--accent);border-radius:2px;padding:0 .4rem}.ex-task{margin:0;font-weight:500}.ex-card .anno-input{margin-top:.4rem}.ex-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:.5rem}.ex-hint,.ex-answer{flex-basis:100%;font-size:.9rem;color:var(--text-soft);border-top:1px dashed var(--border);padding-top:.5rem;margin-top:.3rem}.ex-answer{color:var(--accent)}.quiz-q{margin:0 0 .5rem;font-weight:500}.quiz-opts{display:flex;flex-direction:column;gap:.35rem}.quiz-opt{display:flex;gap:.6rem;align-items:baseline;border:1px solid var(--border);border-radius:6px;padding:.4rem .7rem;cursor:pointer;font-size:.95rem}.quiz-opt:hover{border-color:var(--border-strong)}.quiz-card.is-answered .quiz-opt{cursor:default}.quiz-opt.is-right{border-color:var(--accent);background:var(--accent-soft)}.quiz-opt.is-wrong{border-style:dashed;opacity:.75}.quiz-feedback{margin:.6rem 0 0;font-size:.9rem}.quiz-feedback.ok{color:var(--accent)}.quiz-feedback.no{color:var(--muted)}.viz-box{margin:1.5em 0;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.viz-stage{padding:1rem 1.2rem;min-height:10rem;display:flex;gap:2rem;align-items:flex-end;flex-wrap:wrap}.viz-bar{display:flex;align-items:center;gap:.6rem;padding:.5rem 1.2rem .8rem;border-top:1px dashed var(--border);flex-wrap:wrap}.viz-col{width:4.5%;min-width:1.1rem;background:var(--border-strong);border-radius:3px 3px 0 0;transition:height .18s ease,background-color .18s}.viz-col.is-cmp{background:var(--accent)}.viz-col.is-done{opacity:.45}.viz-cell{min-width:5rem;padding:.45rem .9rem;border:1px solid var(--border-strong);border-radius:6px;background:var(--bg-soft);text-align:center;font-family:var(--font-mono);font-size:.9rem}.viz-bottom{border-style:dashed;color:var(--muted);font-family:var(--font-sans)}.viz-wf{flex:1;min-width:12rem;display:flex;flex-direction:column;gap:.5rem;align-self:stretch;justify-content:flex-end}.viz-wf-title{margin:0 0 .2rem;font-size:.88rem;color:var(--text-soft)}.viz-track{height:1.1rem;border:1px dashed var(--border);border-radius:4px;overflow:hidden}.viz-track span{display:block;height:100%;width:0;border-radius:3px}.plan-list{margin-top:1rem}.plan-item{display:flex;flex-wrap:wrap;gap:.8rem 1.4rem;align-items:center;padding-block:1.2rem;border-bottom:1px dashed var(--border)}.plan-main{flex:1;min-width:0}.plan-status{font-size:.78rem;color:var(--accent);border:1px solid var(--accent);border-radius:2px;padding:0 .5rem}.plan-votes{color:var(--muted);font-size:.86rem}.plan-vote-num{font-family:var(--font-serif);font-size:1.05rem;color:var(--text)}.plan-title{margin:.3rem 0 .25rem;font-family:var(--font-serif);font-size:1.15rem}.plan-desc{margin:0;color:var(--text-soft);font-size:.94rem}.plan-vote.is-voted{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.tts-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem}.tts-rate{display:inline-flex;align-items:center;gap:.4rem;font-size:.84rem;color:var(--muted)}.tts-rate select{font:inherit;font-size:.84rem;border:1px solid var(--border);border-radius:4px;background:var(--surface);color:var(--text);padding:.2rem .4rem}.refactor-grid{display:grid;gap:.8rem;margin:1.5em 0}@media(min-width:50rem){.refactor-grid{grid-template-columns:1fr 1fr}}.refactor-pane{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;min-width:0}.refactor-pane-head{padding:.35rem .9rem;background:var(--bg-soft);border-bottom:1px solid var(--border);font-size:.78rem;letter-spacing:.1em;color:var(--muted)}.refactor-pane:first-child .refactor-pane-head{color:var(--muted)}.refactor-pane:last-child .refactor-pane-head{color:var(--accent)}.refactor-pane pre{margin:0;border:none;border-radius:0;height:100%}.tldr-card{margin-top:1.4rem;border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0;background:var(--bg-soft);padding:.9rem 1.2rem}.tldr-badge{display:inline-block;font-size:.74rem;letter-spacing:.18em;color:var(--accent);font-weight:600;margin-bottom:.5rem}.tldr-grid{display:grid;gap:.8rem 2rem}@media(min-width:46rem){.tldr-grid{grid-template-columns:repeat(auto-fit,minmax(13rem,1fr))}}.tldr-grid h4{margin:0 0 .3rem;font-family:var(--font-sans);font-size:.8rem;letter-spacing:.12em;color:var(--muted);font-weight:600}.tldr-grid ul{list-style:none;margin:0;padding:0}.tldr-grid li{padding-block:.15rem;font-size:.92rem;color:var(--text-soft)}.tldr-grid li:before{content:"·";color:var(--accent);margin-right:.45em;font-weight:700}.tldr-code code{font-size:.82rem}.reveal-box{position:relative;margin:1.5em 0;border-radius:var(--radius);overflow:hidden}.reveal-box pre{margin:0!important}.reveal-cover{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;background:var(--bg-soft);color:var(--text-soft);font:inherit;font-size:.92rem;letter-spacing:.06em}.reveal-cover:hover{color:var(--accent);background:var(--accent-soft)}.demo-box{position:relative}.demo-selftest-cover{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;background:var(--bg-soft);color:var(--text-soft);font:inherit;font-size:.9rem;min-height:10rem}.demo-selftest-cover:hover{color:var(--accent)}body.selftest .demo-frame{filter:blur(5px)}@media print{.reveal-cover,.demo-selftest-cover{display:none!important}.reveal-box pre,.demo-frame{filter:none!important}}.md-preview{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);padding:1rem 1.2rem;min-height:14rem;font-size:.96rem}.diff-out{margin-top:.9rem;border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto;font-family:var(--font-mono);font-size:.85rem;line-height:1.75;background:var(--code-bg)}.diff-line{padding:.08rem .9rem;white-space:pre}.diff-add{background:#4f7d4f29;color:var(--text)}.diff-del{background:#b2452c24;color:var(--text)}.diff-ctx{color:var(--muted)}.gi-presets{display:grid;grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));gap:.45rem;margin-bottom:.9rem}.gi-item{display:flex;gap:.5rem;align-items:center;border:1px solid var(--border);border-radius:6px;padding:.4rem .7rem;cursor:pointer;font-size:.9rem;color:var(--text-soft)}.gi-item:hover{border-color:var(--accent)}.cron-next{margin:0;padding-left:1.4em;color:var(--text-soft);font-size:.9rem;line-height:2}.commit-grid{display:grid;gap:.7rem}@media(min-width:46rem){.commit-grid{grid-template-columns:1fr 1fr}}.ct-results{list-style:none;margin:.4rem 0 0;padding:0}.ct-results li{padding-block:.35rem;border-bottom:1px dashed var(--border);font-size:.92rem}.ct-pass{color:var(--accent)}.ct-fail{color:var(--muted)}.ct-sample{border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.2rem;margin-top:.9rem}.ct-sample p{margin:.3rem 0}.tools-tabs{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:1.4rem}.tools-tab{font:inherit;font-size:.92rem;padding:.35rem 1.1rem;border:1px solid var(--border);border-radius:2px;background:var(--surface);color:var(--text-soft);cursor:pointer}.tools-tab:hover{color:var(--accent);border-color:var(--accent)}.tools-tab.is-active{background:var(--accent);border-color:var(--accent);color:#fff}.tool-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:1.2rem}.tool-row{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}.tool-row .tool-area,.tool-row .search-input{flex:1;min-width:0}.re-row .tool-flags{flex:0 0 6rem;font-family:var(--font-mono)}.tool-area{width:100%;font-family:var(--font-mono);font-size:.88rem;line-height:1.7;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:.7rem .9rem;resize:vertical}.tool-area:focus{outline:none;border-color:var(--accent)}.tool-title{margin:0 0 .6rem;font-family:var(--font-serif);font-size:1rem}.tool-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem;margin-top:.7rem}.tool-status{color:var(--muted);font-size:.88rem}.tool-out{margin:.9rem 0 0;padding:.8rem 1rem;background:var(--code-bg);border:1px solid var(--border);border-radius:var(--radius);font-family:var(--font-mono);font-size:.86rem;line-height:1.7;color:var(--text);white-space:pre-wrap;word-break:break-all;overflow-x:auto}.tool-grid{display:grid;gap:1.4rem}@media(min-width:46rem){.tool-grid{grid-template-columns:1fr 1fr}}.tool-box{border:1px dashed var(--border);border-radius:var(--radius);padding:1rem}.ts-row{display:flex;flex-wrap:wrap;gap:.3rem .8rem;padding-block:.3rem;align-items:baseline}.ts-key{color:var(--muted);font-size:.82rem;min-width:6.5em}.ts-row code{font-size:.88rem}.tool-mono{font-family:var(--font-mono);color:var(--muted)}.re-match-item{list-style:none;padding-block:.35rem;border-bottom:1px dashed var(--border);display:flex;flex-wrap:wrap;gap:.3rem .9rem;font-family:var(--font-mono);font-size:.86rem}.re-group{color:var(--muted)}.re-matches{margin:.6rem 0 0;padding:0}.tool-params{margin-top:1rem}.url-param-table{width:100%;border-collapse:collapse;font-size:.9rem}.url-param-table td{border:1px solid var(--border);padding:.4rem .8rem;font-family:var(--font-mono);word-break:break-all}.url-param-table td:first-child{color:var(--accent);width:30%}.tool-err{color:var(--accent);font-size:.88rem}.color-pick-col{display:flex;flex-direction:column;gap:.9rem;align-items:flex-start}.color-picker,#color-picker{width:100%;height:5.5rem;border:1px solid var(--border);border-radius:var(--radius);background:none;cursor:pointer;padding:.2rem}.color-swatch{width:100%;height:5.5rem;border:1px solid var(--border);border-radius:var(--radius)}.color-fields{display:flex;flex-direction:column;gap:.7rem;flex:1;min-width:0}.viz-col.is-pivot{background:var(--text)}.hanoi-peg{flex:1;display:flex;flex-direction:column-reverse;align-items:center;gap:.3rem;border-bottom:3px solid var(--border-strong);padding-bottom:.4rem;min-height:12rem}.hanoi-peg.is-hot{border-bottom-color:var(--accent)}.hanoi-peg-name{font-family:var(--font-serif);color:var(--muted);font-size:.9rem;margin-top:.4rem}.hanoi-disc{height:1.6rem;border-radius:999px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-family:var(--font-mono)}.queue-tag{color:var(--muted);font-size:.8rem;white-space:nowrap;align-self:center}.sql-schema{border:1px dashed var(--border-strong);border-radius:var(--radius);padding:.6rem 1rem;margin-bottom:.6rem}.sql-schema-tables{display:flex;flex-wrap:wrap;gap:.4rem 1rem;margin-top:.3rem}.sql-schema-tables code{font-size:.84rem}.lab-frame{width:100%;height:16rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin-top:.9rem}.http-kv{display:flex;flex-direction:column;gap:.4rem;margin-top:.7rem}.http-kv:before{content:attr(data-label);font-size:.78rem;letter-spacing:.14em;color:var(--muted)}.http-kv-row{display:flex;gap:.5rem}.http-kv-row input{flex:1;min-width:0}.http-kv-row .code-copy{flex-shrink:0;width:2rem;text-align:center}.ci-svg,.erd-svg{width:100%;height:auto;font-family:var(--font-sans);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.erd-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.erd-wrap .erd-svg{border:none;border-radius:0;min-width:40rem}.ci-steps{margin:.4rem 0 0;padding-left:1.4em;color:var(--text-soft);font-size:.92rem;line-height:1.9}.oa-layout{display:grid;gap:1.2rem;margin-top:.9rem}@media(min-width:50rem){.oa-layout{grid-template-columns:16rem 1fr;align-items:start}}.oa-list{list-style:none;margin:0;padding:0;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.oa-endpoint{display:flex;align-items:center;gap:.6rem;padding:.5rem .8rem;border-bottom:1px dashed var(--border);cursor:pointer;font-size:.9rem}.oa-endpoint:last-child{border-bottom:none}.oa-endpoint:hover{background:var(--bg-soft)}.oa-endpoint.is-active{background:var(--accent-soft)}.oa-method{flex-shrink:0;font-family:var(--font-mono);font-size:.72rem;font-weight:700;color:#fff;border-radius:3px;padding:.1rem .45rem;min-width:3.2rem;text-align:center}.oa-get{background:#4f7d4f}.oa-post{background:var(--accent)}.oa-put{background:#3d6b8f}.oa-patch{background:#8f6a3d}.oa-delete{background:#8f3d5e}.oa-path{font-family:var(--font-mono);font-size:.86rem;color:var(--text);word-break:break-all}.oa-detail{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);padding:1rem 1.3rem;min-height:10rem}.oa-detail h3{font-family:var(--font-sans);font-size:.85rem;letter-spacing:.1em;color:var(--muted);margin:1.1em 0 .4em}.upgrade-notes{display:flex;flex-direction:column;gap:.9rem}.upgrade-note{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:.8rem 1rem}.upgrade-note .resume-skill-name{font-family:var(--font-serif);font-weight:600}.upgrade-note code{font-size:.84rem}.upgrade-note ul{margin:.45rem 0 0;padding-left:1.3em;color:var(--text-soft);font-size:.92rem}.dep-major{color:var(--accent);font-weight:600}.err-item{border-bottom:1px dashed var(--border)}.err-item summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem .8rem;padding-block:.85rem;cursor:pointer;user-select:none}.err-item summary:hover .err-title{color:var(--accent)}.err-lang{flex-shrink:0;font-size:.76rem;color:var(--accent);border:1px solid var(--accent);border-radius:2px;padding:0 .5rem}.err-title{font-family:var(--font-serif);font-weight:600;color:var(--text)}.err-body{padding:.2rem 0 1rem;font-size:.94rem}.err-pattern code{display:inline-block;background:var(--code-bg);border:1px solid var(--border);border-radius:4px;padding:.15rem .6rem;font-size:.86rem;word-break:break-all}.err-summary{color:var(--text-soft)}.prose .astro-code code{counter-reset:code-line}.prose .astro-code code .line{counter-increment:code-line;display:block}.prose .astro-code code .line:before{content:counter(code-line);display:inline-block;width:2.2em;margin-right:1.2em;text-align:right;color:var(--muted);opacity:.4;font-size:.85em;user-select:none}.prose .astro-code code .line.is-hl{background:color-mix(in srgb,var(--accent) 12%,transparent);box-shadow:inset 3px 0 0 var(--accent);border-radius:2px}.line-copy-hint{float:right;font-size:.72rem;color:var(--accent);padding-left:1rem;user-select:none}.code-tabs{margin:1.2rem 0}.code-tabs .code-block{margin:0}.code-tabs .code-block[hidden]{display:none}.code-tabs-head{display:flex;gap:.2rem;border:1px solid var(--border);border-bottom:none;border-radius:var(--radius) var(--radius) 0 0;background:var(--bg-soft);padding:.25rem .4rem 0;overflow-x:auto}.code-tabs-btn{border:none;background:transparent;font:inherit;font-size:.8rem;color:var(--muted);padding:.35rem .9rem;border-radius:6px 6px 0 0;cursor:pointer}.code-tabs-btn:hover{color:var(--text)}.code-tabs-btn.is-active{background:var(--surface);color:var(--text);font-weight:600;box-shadow:0 -2px 0 var(--accent) inset}.code-tabs-panes .code-block{border-top-left-radius:0}.shortcuts-panel[hidden]{display:none}.prose .astro-code code{counter-reset:shiki-line}.prose .astro-code code span.line{counter-increment:shiki-line;display:block}.prose .astro-code code span.line:before{content:counter(shiki-line);display:inline-block;width:2.2em;margin-right:1.2em;text-align:right;color:var(--muted);opacity:.35;font-size:.85em;user-select:none}.prose .footnotes{margin-top:2.4em;font-size:.86em;color:var(--text-soft);border-top:1px solid var(--border);padding-top:.7rem}.prose .footnotes h2{font-family:var(--font-sans);font-size:.8rem;letter-spacing:.12em;color:var(--muted);margin:0 0 .4rem}.prose .footnotes ol{padding-left:1.5em}.prose .footnotes li{margin-block:.25rem}.prose sup a,.prose sup[data-footnote-ref]{color:var(--accent);text-decoration:none;font-size:.78em;padding:0 .1em}.prose sup a:hover{text-decoration:underline}.prose .data-footnote-backref{text-decoration:none;font-size:.85em}.prose a[target=_blank]:after{content:" ↗";font-size:.78em;color:var(--muted);text-decoration:none}.back-to-top{position:fixed;right:1.4rem;bottom:1.4rem;z-index:90;width:2.5rem;height:2.5rem;border:1px solid var(--border-strong);border-radius:50%;background:var(--surface);color:var(--text-soft);font-size:1.1rem;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .2s;display:flex;align-items:center;justify-content:center}.back-to-top.is-visible{opacity:1;pointer-events:auto}.back-to-top:hover{color:var(--accent);border-color:var(--accent)}.lightbox{position:fixed;inset:0;z-index:220;background:#000000c7;display:flex;align-items:center;justify-content:center;cursor:zoom-out;padding:2rem}.lightbox img{max-width:min(94vw,72rem);max-height:92vh;border-radius:var(--radius);box-shadow:0 8px 40px #00000059}.code-block .code-body-wrapper{position:relative}.code-block .code-body-wrapper.is-collapsed{max-height:22rem;overflow:hidden}.code-block .code-collapse-fade{position:absolute;bottom:0;left:0;right:0;height:4.5rem;background:linear-gradient(transparent,var(--code-bg));display:flex;align-items:flex-end;justify-content:center;padding-bottom:.5rem}.code-block .code-expand-btn{border:1px solid var(--border-strong);border-radius:999px;background:var(--surface);color:var(--text-soft);font:inherit;font-size:.8rem;padding:.2rem 1rem;cursor:pointer}.code-block .code-expand-btn:hover{color:var(--accent);border-color:var(--accent)}.shortcuts-panel{position:fixed;inset:0;z-index:200;background:#00000073;display:flex;align-items:center;justify-content:center;padding:1.5rem}.shortcuts-box{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:1.2rem 1.6rem 1rem;max-width:26rem;width:100%}.shortcuts-box h2{font-family:var(--font-serif);font-size:1.05rem;margin:0 0 .8rem}.shortcuts-box table{width:100%;border-collapse:collapse;font-size:.88rem}.shortcuts-box td{padding:.35rem 0;border-bottom:1px dashed var(--border)}.shortcuts-box td:first-child{font-family:var(--font-mono);font-size:.82rem;color:var(--accent);white-space:nowrap;padding-right:1rem}.shortcuts-box td:last-child{color:var(--text-soft)}.shortcuts-box .close-hint{margin:.7rem 0 0;font-size:.78rem;color:var(--muted);text-align:center}.toc-num{color:var(--accent);font-weight:600;margin-right:.35em;font-variant-numeric:tabular-nums}.code-star{border:none;background:none;color:var(--border-strong);cursor:pointer;font-size:.95rem;padding:0 .2rem}.code-star.is-saved{color:var(--accent)}.code-fullscreen{border:none;background:none;color:var(--muted);cursor:pointer;font-size:.9rem;padding:0 .2rem}.code-fullscreen:hover{color:var(--accent)}.code-block.is-fullscreen{position:fixed;inset:0;z-index:230;border-radius:0;background:var(--bg);overflow:auto}.code-block.is-fullscreen .code-block-head{position:sticky;top:0;z-index:2}.fn-popover{position:absolute;z-index:140;max-width:22rem;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:.6rem .9rem;font-size:.88rem;color:var(--text-soft);line-height:1.7}.fn-popover .fn-back{display:none}.post-outline{position:fixed;right:1.2rem;top:50%;transform:translateY(-50%);z-index:80;display:flex;flex-direction:column;gap:.5rem;align-items:center}.post-outline a{display:block;width:8px;height:8px;border-radius:50%;background:var(--border-strong);transition:background-color .2s,transform .2s}.post-outline a:hover,.post-outline a.is-current{background:var(--accent);transform:scale(1.3)}.post-outline a.toc-h3-dot{width:6px;height:6px}@media(max-width:72rem){.post-outline{display:none}}.feedback-bar{margin-top:1.4rem;padding:.8rem 1.2rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-soft);display:flex;align-items:center;gap:.8rem;font-size:.92rem;color:var(--text-soft)}.feedback-btn{border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text-soft);font:inherit;font-size:.9rem;padding:.25rem .9rem;cursor:pointer}.feedback-btn:hover{border-color:var(--accent);color:var(--accent)}.feedback-btn.is-chosen{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.search-history{margin-top:.5rem}.search-history-title{font-size:.78rem;color:var(--muted);margin:0 0 .3rem}.search-history-item{display:inline-block;font-size:.84rem;color:var(--text-soft);border:1px solid var(--border);border-radius:4px;padding:.1rem .55rem;margin-right:.4rem;margin-bottom:.3rem;cursor:pointer}.search-history-item:hover{color:var(--accent);border-color:var(--accent)}.search-history-clear{font-size:.78rem;color:var(--muted);background:none;border:none;cursor:pointer;padding:0;font-family:var(--font-sans)}.search-history-clear:hover{color:var(--accent)}.tag-graph-wrap{margin-top:1.2rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.tag-graph-svg{width:100%;height:22rem;font-family:var(--font-sans)}.stats-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.8rem;margin-block:1rem}.stats-trend{margin-top:.6rem}.stats-trend-row{display:flex;align-items:center;gap:.6rem;padding-block:.25rem}.stats-trend-label{min-width:3.5em;color:var(--muted);font-size:.84rem;text-align:right}.stats-trend-bar{flex:1;height:1.2rem;background:var(--bg-soft);border-radius:4px;overflow:hidden}.stats-trend-bar span{display:block;height:100%;background:var(--accent);border-radius:3px;min-width:2px}.stats-trend-num{min-width:2.5em;color:var(--text-soft);font-size:.84rem;font-variant-numeric:tabular-nums}.snippet-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:.8rem 1rem;margin-bottom:.8rem}.snippet-card .snippet-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .8rem;margin-bottom:.4rem;font-size:.82rem;color:var(--muted)}.snippet-card .snippet-meta a{color:var(--text);font-weight:600}.snippet-card .snippet-meta a:hover{color:var(--accent)}.snippet-card pre{margin:.4rem 0;padding:.6rem .9rem;background:var(--code-bg);border:1px solid var(--border);border-radius:6px;overflow-x:auto;font-size:.84rem;line-height:1.7}.prefs-val{font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));gap:.7rem;margin:1.2rem 0 1.6rem}.stat-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:.9rem 1rem;display:flex;flex-direction:column;gap:.15rem}.stat-card strong{font-size:1.5rem;font-variant-numeric:tabular-nums}.stat-card span{font-size:.82rem;color:var(--muted)}.stats-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:1.1rem 1.3rem;margin-bottom:1.2rem}.stats-card h2{margin:0 0 .8rem;font-size:1.05rem}.stats-bar{height:.7rem}.heatmap{display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,12px);grid-auto-columns:12px;gap:3px;overflow-x:auto;padding-bottom:.4rem}.heat-cell{width:12px;height:12px;border-radius:2px;background:var(--bg-soft);border:1px solid color-mix(in srgb,var(--border) 60%,transparent)}.heat-1{background:color-mix(in srgb,var(--accent) 25%,var(--bg-soft))}.heat-2{background:color-mix(in srgb,var(--accent) 45%,var(--bg-soft))}.heat-3{background:color-mix(in srgb,var(--accent) 70%,var(--bg-soft))}.heat-4{background:var(--accent)}.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(10.5rem,1fr));gap:.7rem}.badge-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-soft);padding:.8rem .9rem;display:flex;flex-direction:column;gap:.2rem;opacity:.55;filter:grayscale(.9);transition:opacity .25s,filter .25s}.badge-card.is-got{opacity:1;filter:none;border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:var(--surface)}.badge-card strong{font-size:.95rem}.badge-icon{font-size:1.5rem;line-height:1}.badge-desc{font-size:.78rem;color:var(--muted)}.badge-prog{font-size:.75rem;color:var(--muted);font-variant-numeric:tabular-nums}.badge-got{font-size:.72rem;color:var(--accent);font-weight:600}.stats-activity{list-style:none;margin:0;padding:0}.stats-activity li{padding:.45rem 0;border-bottom:1px dashed var(--border);font-size:.92rem}.stats-activity li:last-child{border-bottom:none}.act-icon{margin-right:.3rem}.links-group{margin-bottom:1.8rem}.links-group-title{font-size:1.05rem;margin:0 0 .8rem}.links-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:.8rem}.link-card{display:flex;gap:.8rem;align-items:flex-start;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:.9rem 1rem;text-decoration:none;color:var(--text);transition:border-color .2s,transform .2s}.link-card:hover{border-color:var(--accent);transform:translateY(-2px)}.link-avatar{flex-shrink:0;width:2.6rem;height:2.6rem;border-radius:50%;background:var(--accent-soft, var(--bg-soft));color:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem;overflow:hidden}.link-avatar img{width:100%;height:100%;object-fit:cover}.link-body{display:flex;flex-direction:column;gap:.15rem;min-width:0}.link-name{font-weight:600;display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}.link-owner{font-size:.78rem;color:var(--muted);font-weight:400}.link-summary{font-size:.84rem;color:var(--muted);line-height:1.6}.link-url{font-size:.75rem;color:var(--muted);font-family:var(--font-mono);opacity:.8}.status-table td{vertical-align:top}.status-num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:600}.status-unit{font-size:.75rem;color:var(--muted);font-weight:400}.status-coverage{display:flex;flex-direction:column;gap:.7rem}.status-cov-head{display:flex;justify-content:space-between;font-size:.88rem;margin-bottom:.25rem}.status-bar{height:.5rem}.status-host{font-weight:600;font-family:var(--font-mono);font-size:.88rem}.status-urls{display:flex;flex-direction:column;gap:.1rem;margin-top:.15rem}.status-urls a{font-size:.78rem;color:var(--muted);font-family:var(--font-mono);word-break:break-all}.status-urls a:hover{color:var(--accent)}.rss-tag-link{margin-left:.8rem;font-size:.85rem;white-space:nowrap}.jcr-frame{display:none}.jcr-out{margin-top:.8rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--code-bg);min-height:8rem;max-height:26rem;overflow:auto;padding:.6rem .9rem;font-family:var(--font-mono);font-size:.84rem;line-height:1.7}.jcr-out:empty:after{content:"输出会显示在这里。";color:var(--muted)}.jcr-line{display:flex;gap:.7rem;padding:.15rem 0;white-space:pre-wrap;word-break:break-all}.jcr-type{flex-shrink:0;opacity:.65;min-width:4.2em}.jcr-warn .jcr-type{color:#a07020}.jcr-error{color:var(--accent)}.jcr-error .jcr-type{opacity:1;font-weight:700}.img-drop{margin:.8rem 0;border:2px dashed var(--border-strong);border-radius:var(--radius);background:var(--bg-soft);color:var(--muted);text-align:center;padding:2.4rem 1rem;cursor:pointer;transition:border-color .2s,background .2s}.img-drop:hover,.img-drop.is-over{border-color:var(--accent);color:var(--accent);background:var(--surface)}.img-cmp-item{margin:0;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface)}.img-cmp-item img{width:100%;max-height:15rem;object-fit:contain;background:repeating-conic-gradient(var(--bg-soft) 0 25%,var(--surface) 0 50%) 0 0 / 20px 20px}.img-cmp-item figcaption{padding:.45rem .7rem;font-size:.8rem;color:var(--muted);border-top:1px solid var(--border)}.reviz-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:.8rem;overflow:auto;margin:.6rem 0}.reviz-svg{display:block;min-width:100%}.reviz-match{margin-top:.6rem}.reviz-result{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:.7rem .9rem;font-family:var(--font-mono);font-size:.86rem;line-height:1.8;white-space:pre-wrap;word-break:break-all}.reviz-result mark{background:color-mix(in srgb,var(--accent) 25%,transparent);color:var(--text);border-radius:2px;padding:0 1px}.egg-terminal{margin:2.4rem auto 0;max-width:40rem}.egg-form{display:flex;align-items:center;gap:.55rem;padding:.55rem .9rem;border-top:1px solid var(--border)}.egg-input{flex:1;border:none;background:transparent;color:var(--text);font-family:var(--font-mono);font-size:.88rem;outline:none}.egg-terminal.is-won .term-title{color:var(--accent);font-weight:700}.pwd-checks{display:flex;flex-direction:column;gap:.3rem;font-size:.88rem}.pwd-checks label{display:flex;align-items:center;gap:.4rem;cursor:pointer}.hc-filters{display:flex;flex-wrap:wrap;gap:.4rem}.hc-filters .code-copy.is-active{background:var(--accent-soft, var(--bg-soft));border-color:var(--accent);color:var(--accent)}.hc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.7rem;margin-top:1rem}.hc-card{display:flex;flex-direction:column;gap:.15rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:.75rem .9rem}.hc-code{font-family:var(--font-mono);font-weight:700;font-size:1.15rem}.hc-1xx{color:#3d6b8f}.hc-2xx{color:#4f7d4f}.hc-3xx{color:#8f6a3d}.hc-4xx{color:var(--accent)}.hc-5xx{color:#8f3d5e}.hc-name{font-family:var(--font-mono);font-size:.8rem;color:var(--text)}.hc-zh{font-size:.8rem;color:var(--muted);line-height:1.6}.pal-scheme{margin-bottom:1.1rem}.pal-title{font-size:.95rem;margin:0 0 .4rem;display:flex;align-items:baseline;gap:.6rem}.pal-row{display:flex;flex-wrap:wrap;gap:.5rem}.pal-swatch{width:7.4rem;height:4.2rem;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;position:relative;overflow:hidden}.pal-swatch span{position:absolute;left:.35rem;bottom:.25rem;font-family:var(--font-mono);font-size:.7rem;background:#ffffffbf;color:#222;padding:0 .25rem;border-radius:3px}.fc-toolbar{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;margin-bottom:1.2rem}.fc-stage{text-align:center}.fc-card{width:min(100%,30rem);min-height:13rem;border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);background:var(--surface);color:var(--text);font:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;padding:1.6rem 1.4rem;cursor:pointer;transition:border-color .2s,box-shadow .2s,transform .12s;position:relative}.fc-card:hover{border-color:var(--accent);box-shadow:0 4px 18px color-mix(in srgb,var(--accent) 14%,transparent)}.fc-card:active{transform:scale(.99)}.fc-card.is-flipped{border-color:var(--accent)}.fc-term{font-size:1.7rem;font-weight:700}.fc-def{font-size:1rem;line-height:1.8;color:var(--text);max-width:24rem}.fc-hint{position:absolute;bottom:.7rem;font-size:.75rem;color:var(--muted)}.fc-actions{display:flex;justify-content:center;gap:.6rem;margin-top:1rem}.fc-empty{text-align:center;padding:3rem 0;color:var(--muted)}.path-cert-btn{margin-left:auto}.cert-pop{animation:cert-pop .5s ease}@keyframes cert-pop{0%{transform:scale(.9);opacity:0}60%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}@keyframes page-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}body{animation:page-enter .32s ease-out}#read-pos-bar{position:fixed;right:1.2rem;bottom:5.4rem;z-index:60;display:flex;align-items:center;gap:.6rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);box-shadow:0 6px 24px #00000024;padding:.45rem .6rem .45rem 1rem;font-size:.85rem}#read-pos-bar button{border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:999px;padding:.25rem .8rem;font:inherit;font-size:.8rem;cursor:pointer}#read-pos-bar button[aria-label=关闭]{border:none;background:none;color:var(--muted);padding:.25rem .4rem;font-size:1rem;line-height:1}.mk-article{margin-bottom:1.6rem}.mk-article-title{font-size:1rem;display:flex;align-items:baseline;gap:.6rem;margin:0 0 .7rem}.mk-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:.9rem 1.1rem;margin-bottom:.8rem}.mk-explain{font-size:.86rem;color:var(--muted)}.mdt-preview{margin-top:.8rem}.mdt-preview table{width:100%}#update-note{position:fixed;left:50%;bottom:1.2rem;transform:translate(-50%);z-index:60;display:flex;align-items:center;gap:.8rem;max-width:min(92vw,34rem);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);background:var(--surface);box-shadow:0 6px 24px #00000024;padding:.6rem .8rem .6rem 1rem;font-size:.85rem}#update-note button{flex-shrink:0;border:1px solid var(--border);background:none;color:var(--accent);border-radius:6px;padding:.25rem .7rem;font:inherit;font-size:.8rem;cursor:pointer}.mermaid-holder{margin:1.2rem 0;padding:1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow-x:auto;text-align:center}.mermaid-holder svg{max-width:100%;height:auto}.mermaid-holder.is-err pre{text-align:left;margin-top:.5rem;padding:.6rem .9rem;background:var(--code-bg);border-radius:6px;font-size:.84rem}.palette-root[hidden],.shortcuts-panel[hidden]{display:none!important}@media(max-width:40rem){.site-nav{flex-wrap:wrap;row-gap:.45rem}.site-nav .icon-link,.site-nav .theme-toggle{margin-left:auto}.post-actions{flex-wrap:wrap}.prefs-panel{left:auto;right:0;min-width:min(17rem,calc(100vw - 3rem))}}.prose .astro-code code .line.is-deeplink{background:color-mix(in srgb,var(--accent) 22%,transparent);box-shadow:inset 3px 0 0 var(--accent);animation:deeplink-flash 1.2s ease}@keyframes deeplink-flash{0%{background:color-mix(in srgb,var(--accent) 40%,transparent)}to{background:color-mix(in srgb,var(--accent) 22%,transparent)}}.icon-link{position:relative}.fc-badge{position:absolute;top:-.3rem;right:-.45rem;min-width:1.1rem;height:1.1rem;border-radius:999px;background:var(--accent);color:#fff;font-size:.66rem;font-weight:700;line-height:1.1rem;text-align:center;padding:0 .25rem}.giscus-wrap{margin-top:2.4rem;padding-top:1.6rem;border-top:1px solid var(--border)}.giscus-wrap h2{margin:0 0 .4rem}#sw-update-bar{position:fixed;left:50%;bottom:1.2rem;transform:translate(-50%);z-index:90;display:flex;align-items:center;gap:.8rem;border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);background:var(--surface);box-shadow:0 6px 24px #00000029;padding:.6rem .8rem .6rem 1rem;font-size:.85rem}#sw-update-bar button{border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:6px;padding:.25rem .75rem;font:inherit;font-size:.8rem;cursor:pointer}#sw-update-bar button[aria-label=关闭]{border:none;background:none;color:var(--muted);font-size:1rem;padding:.2rem .4rem}[data-palette=sepia]{color-scheme:light;--bg: #f3ecdb;--bg-soft: #eae1cb;--surface: #faf5e9;--header-bg: rgba(243, 236, 219, .92);--text: #42381f;--text-soft: #5c5138;--muted: #6e6248;--accent: #a0522d;--accent-ink: #7e3f20;--accent-soft: rgba(160, 82, 45, .1);--border: #ddd0b1;--border-strong: #c4b48d;--code-bg: #ece3cd;--mark-bg: rgba(160, 82, 45, .16)}[data-palette=pine]{color-scheme:light;--bg: #eff3ef;--bg-soft: #e3eae3;--surface: #fafcfa;--header-bg: rgba(239, 243, 239, .92);--text: #22302a;--text-soft: #48584f;--muted: #5b6b60;--accent: #2d6a4f;--accent-ink: #1f5140;--accent-soft: rgba(45, 106, 79, .1);--border: #ccdacd;--border-strong: #aebfb1;--code-bg: #e2ebe3;--mark-bg: rgba(45, 106, 79, .16)}html[data-font=sans] .prose,html[data-font=sans] .post-header,html[data-font=sans] .series-box,html[data-font=sans] .tldr-card{font-family:var(--font-sans)}.write-page{max-width:72rem}.stash-bar{display:flex;align-items:center;gap:.8rem;border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);background:var(--surface);padding:.6rem .9rem;margin-bottom:1rem;font-size:.88rem}.stash-bar button{border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:6px;padding:.25rem .8rem;font:inherit;font-size:.82rem;cursor:pointer}.stash-bar button[aria-label=关闭]{border:none;background:none;color:var(--muted);font-size:1rem}.write-layout{display:grid;grid-template-columns:16rem 1fr;gap:1.4rem;align-items:start}@media(max-width:56rem){.write-layout{grid-template-columns:1fr}}.write-side{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:.8rem;position:sticky;top:4.6rem;max-height:calc(100vh - 6rem);overflow-y:auto}.write-side-head{margin-bottom:.6rem}.write-list{list-style:none;margin:0;padding:0}.write-item{border-bottom:1px dashed var(--border)}.write-item:last-child{border-bottom:none}.write-item.is-draft{opacity:.75}.write-item-open{width:100%;border:none;background:none;color:var(--text);font:inherit;text-align:left;padding:.45rem .3rem;cursor:pointer;display:flex;flex-direction:column;gap:.1rem;border-radius:6px}.write-item-open:hover{background:var(--bg-soft)}.write-item-title{font-weight:600;font-size:.86rem;line-height:1.5}.write-main{display:flex;flex-direction:column;gap:.7rem}.write-title{width:100%;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font-family:var(--font-serif);font-size:1.3rem;font-weight:700;padding:.6rem .9rem}.write-title:focus,.write-content:focus{outline:none;border-color:var(--accent)}.write-meta{display:grid;grid-template-columns:1fr 10rem 1fr;gap:.5rem}@media(max-width:40rem){.write-meta{grid-template-columns:1fr}}.write-content{width:100%;min-height:26rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--code-bg);color:var(--text);font-family:var(--font-mono);font-size:.9rem;line-height:1.8;padding:.9rem 1rem;resize:vertical}.write-actions{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}
