:root{--bg: #e2e1e6;--text: #1e1c2a;--muted: #57546a;--faint: #b8b5c6;--purple: #5f48c4;--pink: #c4466c;--green: #2f7d4c;--select-bg: #d4d0e2;--on-pill: #f4f3f8;--mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, "PingFang SC", "Noto Sans Mono CJK SC", monospace;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", sans-serif;--radius: 10px;--measure: 42rem;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #15141c;--text: #e8e6f0;--muted: #8a879c;--faint: #4a485c;--purple: #8b74e6;--pink: #ec7395;--green: #5bbd7d;--select-bg: #2a2445;--on-pill: #161422;color-scheme:dark}}:root[data-theme=dark]{--bg: #15141c;--text: #e8e6f0;--muted: #8a879c;--faint: #4a485c;--purple: #8b74e6;--pink: #ec7395;--green: #5bbd7d;--select-bg: #2a2445;--on-pill: #161422;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font:400 1rem/1.7 var(--sans);-webkit-font-smoothing:antialiased;min-height:100dvh;display:flex;flex-direction:column}:lang(zh) body,body:lang(zh){line-height:1.85;letter-spacing:.02em}.wrap{width:100%;max-width:calc(var(--measure) + 2rem);margin:0 auto;padding:0 1rem}main{flex:1;padding:3.5rem 0 5rem}a{color:inherit;text-decoration-color:var(--faint);text-underline-offset:.2em}a:hover{text-decoration-color:var(--purple)}:focus-visible{outline:2px solid var(--pink);outline-offset:3px;border-radius:4px}h1,h2,h3{font-weight:600;line-height:1.3;letter-spacing:-.01em}h1{font-size:1.6rem;margin:0 0 .75rem}p{margin:0 0 1rem}.lede{font-size:1.1rem;color:var(--muted);margin-bottom:2.5rem}.mono{font-family:var(--mono)}.pane{position:relative;border:1px solid var(--faint);border-radius:var(--radius);padding:1.5rem 1.25rem 1.25rem;margin-top:3.25rem}.pane-title{position:absolute;top:0;left:.9rem;transform:translateY(-50%);margin:0;padding:0 .4rem;background:var(--bg);font:600 .78rem/1 var(--mono);color:var(--muted);letter-spacing:.02em}.pill{display:inline-block;padding:.2rem .45rem;border-radius:4px;background:var(--purple);color:var(--on-pill);font:700 .72rem/1 var(--mono)}.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:4rem}.wordmark{font:700 1rem/1 var(--mono);color:var(--purple);text-decoration:none;display:inline-flex;align-items:baseline;gap:.45rem}.wordmark .cn{color:var(--muted);font-weight:400;font-size:.85em}.tabs,.controls{display:flex;align-items:center;font:400 .8rem/1 var(--mono);white-space:nowrap}.tabs{gap:1.1rem;margin-left:auto}.controls{gap:.75rem}.tabs a{color:var(--muted);text-decoration:none;padding:.35rem 0 .3rem;border-bottom:2px solid transparent}.tabs a .key{color:var(--faint);margin-right:.35rem}.tabs a:hover{color:var(--text)}.tabs a[aria-current=page]{color:var(--purple);font-weight:700;border-bottom-color:var(--purple)}.tabs a[aria-current=page] .key{color:inherit}.lang{display:flex;align-items:center;gap:.35rem}.lang a{color:var(--muted);text-decoration:none;padding:.2rem .3rem}.lang a:hover{color:var(--text)}.theme-toggle{appearance:none;border:0;background:none;color:var(--muted);padding:.25rem;cursor:pointer;display:inline-grid;place-items:center}.theme-toggle:hover{color:var(--text)}.theme-toggle svg{width:1rem;height:1rem}@media(max-width:40rem){.site-header .wrap{height:auto;padding-top:.9rem;padding-bottom:.4rem;flex-wrap:wrap;row-gap:.6rem}.controls{margin-left:auto}.tabs{order:3;flex-basis:100%;margin-left:0;gap:1.1rem;overflow-x:auto}.tabs a .key{display:none}}.hero h1{font:700 clamp(3rem,12vw,5rem) / 1 var(--mono);letter-spacing:-.05em;margin:0 0 .6rem;color:var(--purple)}.hero h1:lang(zh){letter-spacing:.04em}.hero .cn{font-family:var(--mono);color:var(--muted);letter-spacing:.35em;margin-bottom:2.25rem}.hero .tagline{font-size:clamp(1.2rem,3.5vw,1.4rem);font-weight:600;line-height:1.5;max-width:32rem;margin-bottom:.9rem}.hero .intro{color:var(--muted);max-width:34rem}.button{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.25rem;padding:.6rem 1rem;font:700 .82rem/1 var(--mono);color:var(--on-pill);background:var(--purple);border:0;border-radius:0;box-shadow:0 1px 2px #0000001f,0 3px 8px -2px #0000002e;text-decoration:none;cursor:pointer;transition:box-shadow .12s,transform .12s}.button:before{content:"›"}.button:hover{filter:brightness(1.08)}.button:active{transform:translateY(1px);box-shadow:0 1px 1px #0000001f}.rows{list-style:none;margin:0;padding:0;counter-reset:row;display:grid;gap:1.1rem}.rows li{counter-increment:row;display:grid;grid-template-columns:2rem 1fr;gap:0 .5rem}.rows li:before{content:counter(row,decimal-leading-zero);font:400 .75rem/1.9 var(--mono);color:var(--faint)}.rows h3{font-size:1rem;margin:0 0 .15rem}.rows p{margin:0;color:var(--muted);font-size:.95rem}.table{list-style:none;margin:0 -.75rem;padding:0}.table .head,.table a{display:grid;grid-template-columns:7rem 1fr;gap:1rem;padding:.55rem .75rem}.table .head{font:700 .72rem/1 var(--mono);color:var(--muted);padding-top:0}.table a{position:relative;border-radius:6px;text-decoration:none}.table a:hover,.table a:focus-visible{background:var(--select-bg);outline:none}.table a:hover:before,.table a:focus-visible:before{content:"▌";position:absolute;left:-.1rem;top:50%;transform:translateY(-50%);color:var(--pink);font:400 1rem/1 var(--mono)}.table time{font:400 .78rem/1.9 var(--mono);color:var(--muted)}.table .title{display:block;font-weight:600}.table .desc{display:block;color:var(--muted);font-size:.9rem}@media(max-width:40rem){.table .head{display:none}.table a{grid-template-columns:1fr;gap:.1rem}}.more{display:inline-block;margin-top:1rem;font:400 .8rem/1 var(--mono);color:var(--muted);text-decoration:none}.more:hover{color:var(--text)}.post-meta{font:400 .78rem/1 var(--mono);color:var(--muted);margin-bottom:2.5rem}.prose{font-size:1.05rem}.prose h2{font-size:1.15rem;margin-top:2.75rem}.prose a{text-decoration-color:var(--purple)}.prose blockquote{margin:1.5rem 0;padding-left:1.1rem;border-left:2px solid var(--faint);color:var(--muted)}.prose code{font-family:var(--mono);font-size:.88em;border:1px solid var(--faint);padding:.05em .3em;border-radius:4px}.prose pre{font-size:.85rem;line-height:1.6;padding:1rem 1.25rem;border:1px solid var(--faint);border-radius:var(--radius);overflow-x:auto;background:transparent!important}.prose pre code{border:0;padding:0}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .astro-code,:root:not([data-theme=light]) .astro-code span{color:var(--shiki-dark)!important}}:root[data-theme=dark] .astro-code,:root[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important}.prose img{max-width:100%;height:auto;border-radius:var(--radius)}.prose hr{border:0;border-top:1px solid var(--faint);margin:2.5rem 0}.back{display:inline-block;margin-top:3rem;font:400 .8rem/1 var(--mono);color:var(--muted);text-decoration:none}.back:hover{color:var(--text)}.form{display:grid;gap:1.1rem}.form label{display:grid;gap:.4rem;font:700 .72rem/1 var(--mono);color:var(--muted)}.form input,.form textarea{font:400 1rem/1.5 var(--sans);color:var(--text);background:transparent;border:1px solid var(--muted);border-radius:6px;padding:.6rem .75rem;width:100%}.form input::placeholder,.form textarea::placeholder{color:var(--faint)}.form input:focus,.form textarea:focus{outline:none;border-color:var(--pink)}.form textarea{min-height:9rem;resize:vertical}.form .button{justify-self:start;margin-top:.25rem}.hp{position:absolute;left:-9999px}.email-link{font-family:var(--mono);text-decoration-color:var(--purple)}.state{text-align:center;padding:5rem 0 2rem}.state .headline{font-weight:700;font-size:1.15rem;margin-bottom:.4rem}.state .ok{color:var(--green);font-family:var(--mono);margin-right:.4rem}.state p{color:var(--muted)}.site-footer{font:400 .75rem/1 var(--mono);color:var(--muted)}.site-footer .wrap{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-top:1.5rem;padding-bottom:1.5rem}.hints .k{color:var(--text);font-weight:700}.sep{color:var(--faint)}@media not ((hover:hover)and (pointer:fine)){.hints{display:none}}.site-footer a{color:inherit;text-decoration:none}.site-footer a:hover{color:var(--text)}
