.site-footer[data-astro-cid-sz7xmlte]{border-top:1px solid var(--color-border);background:color-mix(in srgb,var(--color-surface) 94%,transparent)}.footer-inner[data-astro-cid-sz7xmlte]{display:flex;justify-content:space-between;gap:clamp(32px,5vw,64px);padding-block:clamp(32px,4vw,44px)}.footer-primary[data-astro-cid-sz7xmlte],.footer-secondary[data-astro-cid-sz7xmlte]{display:grid;gap:12px}.footer-secondary[data-astro-cid-sz7xmlte]{justify-items:end;text-align:end}.footer-tagline[data-astro-cid-sz7xmlte]{font-family:var(--font-title);font-size:.95rem;font-weight:600;color:var(--color-main);letter-spacing:.02em}.copy[data-astro-cid-sz7xmlte],.icp-info[data-astro-cid-sz7xmlte]{color:var(--color-faint);font-family:var(--font-mono);font-size:.75rem}.icp-info[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--color-theme)}.locale-list[data-astro-cid-sz7xmlte]{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px 18px}.locale-list[data-astro-cid-sz7xmlte] a{display:inline-flex;min-height:32px;align-items:center;color:var(--color-muted);font-family:var(--font-mono);font-size:.78rem}.locale-list[data-astro-cid-sz7xmlte] a:hover{color:var(--color-theme)}@media(max-width:720px){.footer-inner[data-astro-cid-sz7xmlte]{flex-direction:column;gap:28px;padding-block:32px}.footer-secondary[data-astro-cid-sz7xmlte]{justify-items:start;text-align:start}.locale-list[data-astro-cid-sz7xmlte]{justify-content:flex-start}}.theme-toggle[data-astro-cid-x3pjskd3]{display:inline-grid;width:40px;height:40px;place-items:center;border:1px solid var(--border);border-radius:9999px;color:var(--text-secondary);background:var(--bg-surface);cursor:pointer;transition:all .2s ease}.theme-toggle[data-astro-cid-x3pjskd3]:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-subtle)}.theme-light[data-astro-cid-x3pjskd3]{display:none}:root[data-theme=dark] .theme-light[data-astro-cid-x3pjskd3],html.dark .theme-light[data-astro-cid-x3pjskd3]{display:inline-block}:root[data-theme=dark] .theme-dark[data-astro-cid-x3pjskd3],html.dark .theme-dark[data-astro-cid-x3pjskd3]{display:none}@media(prefers-color-scheme:dark){:root:not([data-theme=light]):not(.light) .theme-light[data-astro-cid-x3pjskd3]{display:inline-block}:root:not([data-theme=light]):not(.light) .theme-dark[data-astro-cid-x3pjskd3]{display:none}}.site-header[data-astro-cid-3ef6ksr2]{position:sticky;top:0;z-index:50;height:var(--header-height);border-bottom:1px solid var(--border);background-color:color-mix(in srgb,var(--bg-primary) 85%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.header-inner[data-astro-cid-3ef6ksr2]{max-width:var(--container-wide, 1160px);margin-inline:auto;padding-inline:var(--page-gutter);display:flex;align-items:center;justify-content:space-between;height:100%;gap:16px}.brand[data-astro-cid-3ef6ksr2]{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--text-primary)}.brand-seal[data-astro-cid-3ef6ksr2]{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:2px;background:var(--accent);color:#fff;font-family:var(--font-title);font-size:11.5px;font-weight:700;line-height:1;letter-spacing:-.05em;box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent),0 2px 4px #b9382633;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:transform .2s ease;flex-shrink:0}.brand[data-astro-cid-3ef6ksr2]:hover .brand-seal[data-astro-cid-3ef6ksr2]{transform:rotate(-3deg) scale(1.05)}.brand-name[data-astro-cid-3ef6ksr2]{font-family:var(--font-interface);font-size:1.125rem;font-weight:800;letter-spacing:-.03em;color:var(--text-primary)}.desktop-nav[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:4px}.desktop-nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{position:relative;display:inline-flex;align-items:center;padding:6px 14px;font-size:.96875rem;font-weight:500;color:var(--text-secondary);border-radius:var(--radius-small);text-decoration:none;transition:all .2s ease}.desktop-nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]:hover{color:var(--text-primary);background:var(--bg-muted)}.desktop-nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2].active{color:var(--text-primary);font-weight:600;background:var(--bg-muted)}.desktop-nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2].active:after{content:"";position:absolute;bottom:-1px;left:12px;right:12px;height:2px;border-radius:9999px;background:var(--accent)}.header-tools[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:10px}.lang-pill[data-astro-cid-3ef6ksr2]{display:inline-flex;align-items:center;gap:3px;padding:5px 12px;border-radius:9999px;border:1px solid var(--border);background:var(--bg-surface);font-family:var(--font-mono);font-size:.8125rem;font-weight:500;color:var(--text-secondary);text-decoration:none;font-variant-numeric:tabular-nums;transition:all .2s ease}.lang-pill[data-astro-cid-3ef6ksr2]:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-subtle)}.lang-pill[data-astro-cid-3ef6ksr2] span[data-astro-cid-3ef6ksr2].active{color:var(--accent);font-weight:700}.lang-pill[data-astro-cid-3ef6ksr2] .sep[data-astro-cid-3ef6ksr2]{color:var(--text-muted);opacity:.6}.mobile-menu[data-astro-cid-3ef6ksr2]{display:none}@media(max-width:860px){.desktop-nav[data-astro-cid-3ef6ksr2]{display:none}.mobile-menu[data-astro-cid-3ef6ksr2]{display:block}.mobile-menu[data-astro-cid-3ef6ksr2][open]:before{content:"";position:fixed;inset:var(--header-height) 0 0;z-index:-1;background:color-mix(in srgb,var(--text-primary) 18%,transparent)}.mobile-menu[data-astro-cid-3ef6ksr2] summary[data-astro-cid-3ef6ksr2]{display:grid;width:40px;height:40px;place-items:center;border-radius:var(--radius-small);border:1px solid var(--border);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;list-style:none}.mobile-menu[data-astro-cid-3ef6ksr2] summary[data-astro-cid-3ef6ksr2]::-webkit-details-marker{display:none}.mobile-menu[data-astro-cid-3ef6ksr2][open] summary[data-astro-cid-3ef6ksr2]{color:var(--accent);border-color:var(--accent)}.mobile-panel[data-astro-cid-3ef6ksr2]{position:absolute;top:var(--header-height);inset-inline:0;width:100%;max-height:calc(100dvh - var(--header-height));overflow-y:auto;padding:16px var(--page-gutter) 24px;border-bottom:1px solid var(--border);background:var(--bg-surface);box-shadow:0 18px 40px #0000001f}.mobile-panel[data-astro-cid-3ef6ksr2] nav[data-astro-cid-3ef6ksr2]{display:grid}.mobile-panel[data-astro-cid-3ef6ksr2] nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{display:flex;min-height:44px;align-items:center;border-bottom:1px solid var(--border);color:var(--text-secondary);font-weight:600;font-size:1rem;text-decoration:none}.mobile-panel[data-astro-cid-3ef6ksr2] nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2].active{color:var(--accent)}.mobile-tools[data-astro-cid-3ef6ksr2]{margin-top:16px;display:flex;justify-content:flex-end}}.back-to-top[data-astro-cid-wlspcwf4]{position:fixed;bottom:max(1.5rem,env(safe-area-inset-bottom));right:max(1.5rem,env(safe-area-inset-right));z-index:40;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease,transform .25s cubic-bezier(.16,1,.3,1);transform:translateY(12px)}.back-to-top[data-astro-cid-wlspcwf4].show{opacity:1;visibility:visible;transform:translateY(0)}button[data-astro-cid-wlspcwf4]{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:9999px;background-color:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border);cursor:pointer;box-shadow:0 4px 14px #00000014;transition:transform .2s ease,border-color .2s ease,color .2s ease,background-color .2s ease}button[data-astro-cid-wlspcwf4]:hover{transform:translateY(-2px);border-color:var(--accent);color:var(--accent);background-color:var(--accent-subtle)}button[data-astro-cid-wlspcwf4]:active{transform:translateY(0)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{scroll-behavior:smooth;-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none;hanging-punctuation:allow-end;word-break:auto-phrase}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}ul,ol{list-style:none}body{min-height:100vh}h1,h2,h3,h4{text-wrap:pretty}a{-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;color:currentColor;text-decoration:none;overflow-wrap:anywhere}p a{text-decoration:underline}img,picture{border:none;vertical-align:top;max-width:100%;height:auto;font-style:italic}video,canvas,svg{max-width:100%}input,button,textarea,select{font:inherit}textarea:not([rows]){min-height:3em}b,strong{font-weight:bolder}table{table-layout:fixed;border-collapse:collapse;width:100%}a,area,button,[role=button],input:not([type=range]),label,select,summary,textarea{touch-action:manipulation;font-family:inherit;font-size:inherit;font-weight:inherit;letter-spacing:inherit}button{cursor:pointer;background:none;border:none;font-size:inherit;color:inherit}:target{scroll-margin-block:5ex}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:root{--bg-primary: #F8F6F1;--bg-surface: #FFFEFC;--bg-muted: #F0EDE4;--text-primary: #23211E;--text-secondary: #55524C;--text-muted: #8C877D;--accent: #B93826;--accent-hover: #A12D1C;--accent-subtle: rgba(185, 56, 38, .08);--accent-gold: #B88B4A;--border: #E5E0D5;--border-strong: #CCC6B8;--dot-color: #E2DDD2;--color-theme: var(--accent);--color-theme-hover: var(--accent-hover);--color-accent: var(--accent-subtle);--color-base: var(--bg-primary);--color-surface: var(--bg-surface);--color-surface-high: var(--bg-surface);--color-main: var(--text-primary);--color-muted: var(--text-secondary);--color-faint: var(--text-muted);--color-border: var(--border);--color-border-strong: var(--border-strong);--color-code: var(--bg-muted);--color-caution: #B93826;--shadow-focus: 0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);--sp-xl: clamp(48px, 5.5vw, 64px);--sp-l: clamp(32px, 4vw, 48px);--sp-m: clamp(20px, 2.5vw, 28px);--sp-s: clamp(12px, 1.5vw, 16px);--sp-xs: 8px;--container: 1160px;--container-wide: 1160px;--container-article: 1080px;--reading: 740px;--page-gutter: clamp(16px, 3vw, 32px);--header-height: 64px;--radius: 6px;--radius-small: 4px;--font-title: "LXGW WenKai", "霞鹜文楷", "Kaiti SC", "STKaiti", "KaiTi", serif;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-serif: "Newsreader", "Source Han Serif SC", "Noto Serif SC", "Songti SC", "STSong", serif;--font-mono: "JetBrains Mono", "Fira Code", ui-monospace, SFMono-Regular, monospace;--font-interface: var(--font-sans);--font-body: var(--font-sans);--english-font: var(--font-sans);color:var(--text-primary);background-color:var(--bg-primary);accent-color:var(--accent);color-scheme:light;font-family:var(--font-sans);font-size:16px;font-weight:400;line-height:1.65;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}:root[data-theme=dark],html.dark{--bg-primary: #181816;--bg-surface: #20201D;--bg-muted: #282824;--text-primary: #E8E5DD;--text-secondary: #A8A49B;--text-muted: #737068;--accent: #D85842;--accent-hover: #E6735E;--accent-subtle: rgba(216, 88, 66, .15);--accent-gold: #D4A86A;--border: #2F2E2A;--border-strong: #42403B;--dot-color: #242320;--color-theme: var(--accent);--color-theme-hover: var(--accent-hover);--color-accent: var(--accent-subtle);--color-base: var(--bg-primary);--color-surface: var(--bg-surface);--color-surface-high: var(--bg-surface);--color-main: var(--text-primary);--color-muted: var(--text-secondary);--color-faint: var(--text-muted);--color-border: var(--border);--color-border-strong: var(--border-strong);--color-code: var(--bg-muted);--color-caution: #D85842;color-scheme:dark}@media(prefers-color-scheme:dark){:root:not([data-theme=light]):not(.light){--bg-primary: #181816;--bg-surface: #20201D;--bg-muted: #282824;--text-primary: #E8E5DD;--text-secondary: #A8A49B;--text-muted: #737068;--accent: #D85842;--accent-hover: #E6735E;--accent-subtle: rgba(216, 88, 66, .15);--accent-gold: #D4A86A;--border: #2F2E2A;--border-strong: #42403B;--dot-color: #242320;--color-theme: var(--accent);--color-theme-hover: var(--accent-hover);--color-accent: var(--accent-subtle);--color-base: var(--bg-primary);--color-surface: var(--bg-surface);--color-surface-high: var(--bg-surface);--color-main: var(--text-primary);--color-muted: var(--text-secondary);--color-faint: var(--text-muted);--color-border: var(--border);--color-border-strong: var(--border-strong);--color-code: var(--bg-muted);--color-caution: #D85842;color-scheme:dark}}html{background:var(--bg-primary);scroll-padding-top:calc(var(--header-height) + 24px)}body{min-width:0;min-height:100vh;overflow-x:clip;position:relative;background-color:var(--bg-primary);color:var(--text-primary)}body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.035'/%3E%3C/svg%3E");opacity:.75}:root[data-theme=dark] body:before,html.dark body:before{opacity:.025}.bg-dot-grid{background-image:radial-gradient(var(--dot-color) 1.25px,transparent 1.25px);background-size:24px 24px;mask-image:radial-gradient(ellipse 90% 80% at 50% 15%,#000 40%,#0003);-webkit-mask-image:radial-gradient(ellipse 90% 80% at 50% 15%,#000 40%,rgba(0,0,0,.2) 100%)}h1,h2,h3,h4,button,input,label{font-family:var(--font-interface);line-height:1.3}h1,h2,h3,h4{letter-spacing:-.025em;color:var(--text-primary)}p{margin-block-start:.8em;color:var(--text-secondary)}p a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:.18em}a,button,select,summary{transition:color .16s ease,border-color .16s ease,background-color .16s ease,opacity .16s ease}a:focus-visible,button:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}::-moz-selection{background:color-mix(in srgb,var(--accent) 24%,transparent)}::selection{background:color-mix(in srgb,var(--accent) 24%,transparent)}svg,path{fill:currentColor}img,video,canvas,iframe{max-inline-size:100%}[class^=material-icons]{vertical-align:middle;font-size:1.1em;line-height:1;display:inline-block;width:1em;height:1em;overflow:hidden}@media(max-width:640px){:root{--header-height: 60px}}.l-main{min-height:52vh;margin-block-start:0;padding-block:clamp(24px,3.5vw,40px) clamp(48px,6vw,80px)}.l-main.is-home{padding-block-start:0}.l-content{width:min(calc(100% - (var(--page-gutter) * 2)),var(--container-wide, 1160px));margin-inline:auto}.l-content-article{width:min(calc(100% - (var(--page-gutter) * 2)),var(--container-article, 1080px));margin-inline:auto}.l-footer{margin-block-start:0}@media(max-width:640px){.l-main{padding-block:16px 56px}.l-main.is-home{padding-block-start:0}}.container{width:100%}@media(min-width:640px){.container{max-width:640px}}@media(min-width:768px){.container{max-width:768px}}@media(min-width:1024px){.container{max-width:1024px}}@media(min-width:1280px){.container{max-width:1280px}}@media(min-width:1536px){.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.right-2{right:.5rem}.top-2{top:.5rem}.top-24{top:6rem}.mx-auto{margin-left:auto;margin-right:auto}.my-8{margin-top:2rem;margin-bottom:2rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-3{margin-bottom:.75rem}.mb-3\.5{margin-bottom:.875rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1\.5{margin-left:.375rem}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-14{margin-top:3.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.aspect-\[16\/9\]{aspect-ratio:16/9}.aspect-\[2\/3\]{aspect-ratio:2/3}.h-14{height:3.5rem}.h-4{height:1rem}.h-full{height:100%}.max-h-\[calc\(100vh-140px\)\]{max-height:calc(100vh - 140px)}.w-1{width:.25rem}.w-14{width:3.5rem}.w-24{width:6rem}.w-full{width:100%}.min-w-0{min-width:0px}.max-w-\[1120px\]{max-width:1120px}.max-w-none{max-width:none}.flex-1{flex:1 1 0%}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-12{gap:3rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-\[1px\]{border-radius:1px}.rounded-\[var\(--radius\)\]{border-radius:var(--radius)}.rounded-\[var\(--radius-small\)\]{border-radius:var(--radius-small)}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.border{border-width:1px}.border-l{border-left-width:1px}.border-l-\[3px\]{border-left-width:3px}.border-t{border-top-width:1px}.border-\[var\(--accent\)\]{border-color:var(--accent)}.border-\[var\(--border\)\]{border-color:var(--border)}.bg-\[var\(--accent\)\]{background-color:var(--accent)}.bg-\[var\(--bg-muted\)\]{background-color:var(--bg-muted)}.bg-\[var\(--bg-surface\)\]{background-color:var(--bg-surface)}.bg-black\/50{background-color:#00000080}.bg-black\/60{background-color:#0009}.object-cover{-o-object-fit:cover;object-fit:cover}.p-3\.5{padding:.875rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pl-3{padding-left:.75rem}.pl-5{padding-left:1.25rem}.pr-2{padding-right:.5rem}.pt-3{padding-top:.75rem}.pt-6{padding-top:1.5rem}.font-mono{font-family:JetBrains Mono,Fira Code,ui-monospace,SFMono-Regular,monospace}.font-serif{font-family:Newsreader,Songti SC,Noto Serif SC,Source Han Serif SC,serif}.font-title{font-family:var(--font-title),LXGW WenKai,霞鹜文楷,Kaiti SC,STKaiti,KaiTi,serif}.text-\[1\.1em\]{font-size:1.1em}.text-\[11\.5px\]{font-size:11.5px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13\.5px\]{font-size:13.5px}.text-\[13px\]{font-size:13px}.text-\[14\.5px\]{font-size:14.5px}.text-\[14px\]{font-size:14px}.text-\[15\.5px\]{font-size:15.5px}.text-\[18px\]{font-size:18px}.text-\[22px\]{font-size:22px}.text-\[27px\]{font-size:27px}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.italic{font-style:italic}.leading-\[1\.38\]{line-height:1.38}.leading-\[1\.4\]{line-height:1.4}.leading-\[1\.65\]{line-height:1.65}.leading-\[1\.68\]{line-height:1.68}.leading-\[1\.78\]{line-height:1.78}.leading-snug{line-height:1.375}.tracking-normal{letter-spacing:0em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-\[var\(--accent\)\]{color:var(--accent)}.text-\[var\(--border-strong\)\]{color:var(--border-strong)}.text-\[var\(--text-muted\)\]{color:var(--text-muted)}.text-\[var\(--text-primary\)\]{color:var(--text-primary)}.text-\[var\(--text-secondary\)\]{color:var(--text-secondary)}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-white\/90{color:#ffffffe6}.underline{text-decoration-line:underline}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow{--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(0 0 0 / .06));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-filter{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}html[lang^=zh] .prose-custom,html[lang^=zh] .article-shell{font-family:var(--font-serif);font-size:1.09375rem;line-height:1.82;letter-spacing:.015em;text-align:justify;text-justify:inter-ideograph}html[lang^=zh] .prose-custom h1,html[lang^=zh] .prose-custom h2,html[lang^=zh] .prose-custom h3,html[lang^=zh] .prose-custom h4,html[lang^=zh] .article-shell h1,html[lang^=zh] .article-shell h2,html[lang^=zh] .article-shell h3,html[lang^=zh] .article-shell h4{font-family:var(--font-title);letter-spacing:.01em}html[lang^=zh] .prose-custom blockquote,html[lang^=zh] .article-shell blockquote{font-family:var(--font-title);font-style:normal;letter-spacing:.015em}html[lang^=en] .prose-custom,html[lang^=en] .article-shell{font-family:var(--font-serif);font-size:1.0625rem;line-height:1.7;letter-spacing:-.003em}html[lang^=en] .prose-custom blockquote,html[lang^=en] .article-shell blockquote{font-family:var(--font-serif);font-style:italic}html[lang^=zh] p,html[lang^=zh] li{word-break:break-word;overflow-wrap:break-word}.seal-stamp{display:inline-flex;align-items:center;justify-content:center;padding:2px 6px;border:1px solid var(--accent);background:var(--accent-subtle);color:var(--accent);font-family:var(--font-title);font-size:.82rem;line-height:1.2;border-radius:2px;box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent);-webkit-user-select:none;-moz-user-select:none;user-select:none}.seal-stamp.seal-solid{background:var(--accent);color:#fff;font-weight:600}.font-mono-tabular,time,.date,[data-mono]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.book-cover-3d{position:relative;border-radius:3px 6px 6px 3px;box-shadow:0 4px 10px -2px #1c19171f,0 2px 4px -1px #1c191714}.book-cover-3d:after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(90deg,#ffffff40,#fff0 4%,#0000001f 6.5%,#ffffff2e 8.5%,#fff0 14%);pointer-events:none}:root[data-theme=dark] .prose-custom img,:root[data-theme=dark] .article-shell img,html.dark .prose-custom img,html.dark .article-shell img{filter:brightness(.9) contrast(1.04)}.medium-zoom-overlay{z-index:100;backdrop-filter:blur(8px)}.medium-zoom-image--opened{z-index:101;border-radius:8px;box-shadow:0 20px 48px #00000040}.prose-custom>*{margin-block:1.3em 0;margin-inline:0;min-width:0}.prose-custom>:first-child{margin-top:0}.prose-custom p{color:var(--text-primary);font-weight:400;margin-block-start:1em}.prose-custom h2{margin-block:2.5em .8em;padding-block-end:.35em;border-bottom:1px solid var(--border);font-size:clamp(1.4rem,2.2vw,1.75rem);font-weight:700;color:var(--text-primary);letter-spacing:-.025em}.prose-custom h3{margin-block:2em .6em;font-size:clamp(1.2rem,1.8vw,1.35rem);font-weight:700;color:var(--text-primary)}.prose-custom h4{margin-block:1.6em .4em;font-size:1.1rem;font-weight:600;color:var(--text-primary)}.prose-custom ul{list-style:disc;padding-inline-start:1.6em;margin-block-start:.8em}.prose-custom ol{list-style:decimal;padding-inline-start:1.6em;margin-block-start:.8em}.prose-custom li{margin-block-end:.5em;color:var(--text-secondary)}.prose-custom blockquote{padding:1.1em 1.4em;border-inline-start:3px solid var(--accent);background:var(--bg-muted);color:var(--text-secondary);border-radius:0 var(--radius-small) var(--radius-small) 0;margin-block:1.6em;line-height:1.75}.prose-custom blockquote p:first-child{margin-top:0}.prose-custom blockquote p:last-child{margin-bottom:0}.prose-custom :not(pre)>code{padding:.2em .4em;border-radius:4px;background:var(--bg-muted);color:var(--accent);font-family:var(--font-mono);font-size:.88em;overflow-wrap:anywhere;word-break:break-word;white-space:normal}.prose-custom pre{max-width:100%;overflow-x:auto;padding:1.1em 1.25em;border:1px solid var(--border);border-radius:var(--radius-small);background:var(--bg-muted)!important;font-family:var(--font-mono);font-size:.88rem;line-height:1.65;margin-block:1.5em;-webkit-overflow-scrolling:touch}.prose-custom pre code{overflow-wrap:normal;word-break:normal;white-space:pre}.prose-custom hr{margin-block:3.5em 2.5em;border:0;border-top:1px solid var(--border)}.prose-custom a{color:var(--accent);text-decoration:underline;text-underline-offset:.18em}.prose-custom img,.prose-custom video{display:block;max-width:100%;height:auto;margin-inline:auto;margin-block:1.8em;border-radius:var(--radius-small);background:var(--bg-muted);cursor:zoom-in;border:1px solid var(--border)}.prose-custom table{display:block;width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;table-layout:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;font-size:.92em;margin-block:1.5em}.prose-custom th,.prose-custom td{min-width:120px;padding:.65em .8em;border:1px solid var(--border);vertical-align:top}.prose-custom th{background:var(--bg-muted);color:var(--text-primary);text-align:start;white-space:nowrap;font-weight:600}body main.l-main>p.page-description,body main.l-main>p:not([class]){max-width:780px;color:var(--text-secondary);font-size:1.05rem;line-height:1.75}body main.l-main>*,body main.l-main section,body main.l-main li,body main.l-main a{min-width:0}body main.l-main .categories-grid,body main.l-main .tags-grid,body main.l-main .posts-grid{gap:clamp(16px,2vw,24px);grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}body main.l-main .category-card,body main.l-main .tag-card,body main.l-main .post-card,body main.l-main .content-section,body main.l-main .quick-link-card{background:var(--bg-surface)!important;border:1px solid var(--border)!important;border-radius:var(--radius)!important;box-shadow:none!important;transform:none!important;transition:all .2s ease}body main.l-main .category-card:hover,body main.l-main .tag-card:hover,body main.l-main .post-card:hover,body main.l-main .content-section:hover,body main.l-main .quick-link-card:hover{border-color:var(--accent)!important;transform:translateY(-2px)!important;box-shadow:0 8px 20px #0000000f!important}body main.l-main .category-card,body main.l-main .tag-card{min-height:96px;padding:22px 24px!important}body main.l-main .tag-card{justify-content:space-between;border-radius:var(--radius)!important}body main.l-main .tag-name,body main.l-main .category-name,body main.l-main .post-title{color:var(--text-primary)!important}body main.l-main .tag-count,body main.l-main .category-count,body main.l-main .posts-count,body main.l-main .post-date,body main.l-main time{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--text-muted)!important}body main.l-main .post-desc,body main.l-main .friend-description,body main.l-main .post-content p{display:block!important;overflow:visible!important;-webkit-line-clamp:unset!important;color:var(--text-secondary)!important}body main.l-main .tag-count,body main.l-main .tag,body main.l-main .tech-tag{border-radius:4px!important;background:var(--bg-muted)!important;color:var(--text-muted)!important}body main.l-main .post-card,body main.l-main .category-card,body main.l-main .tag-card,body main.l-main .quick-link-card,body main.l-main .content-section{min-width:0}body main.l-main .tag-header,body main.l-main .category-header{background:var(--bg-surface)!important;border:1px solid var(--border);border-radius:var(--radius)!important}body main.l-main .about-container{max-width:840px}body main.l-main .profile-section{align-items:flex-start;text-align:start}body main.l-main .avatar-wrapper{border:1px solid var(--border)!important;box-shadow:none!important}body main.l-main .social-link{border:1px solid var(--border);border-radius:var(--radius-small)!important;background:var(--bg-surface)!important;color:var(--text-secondary)!important}body main.l-main .social-link:hover{color:var(--accent)!important;border-color:var(--accent);box-shadow:none!important;transform:none!important}body main.l-main .section-title{color:var(--text-primary)!important}body main.l-main .feature-list li+li,body main.l-main .contact-list li+li{border-top:1px solid var(--border)}@media(max-width:640px){body main.l-main .categories-grid,body main.l-main .tags-grid,body main.l-main .posts-grid{grid-template-columns:1fr}body main.l-main .tag-header,body main.l-main .category-header{align-items:flex-start;padding:16px!important;text-align:start}body main.l-main .category-card,body main.l-main .tag-card{min-height:0;padding:18px!important}body main.l-main .profile-section{align-items:center;text-align:center}}.hover\:-translate-y-1:hover{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-\[var\(--accent\)\]:hover{border-color:var(--accent)}.hover\:bg-\[var\(--accent-subtle\)\]:hover{background-color:var(--accent-subtle)}.hover\:text-\[var\(--accent\)\]:hover{color:var(--accent)}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group:hover .group-hover\:-translate-y-1{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:-translate-y-2{--tw-translate-y: -.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:translate-x-1{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-\[1\.03\]{--tw-scale-x: 1.03;--tw-scale-y: 1.03;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:text-\[var\(--accent\)\]{color:var(--accent)}@media(min-width:640px){.sm\:mt-14{margin-top:3.5rem}.sm\:w-\[110px\]{width:110px}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.sm\:text-\[34px\]{font-size:34px}}@media(min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1280px){.xl\:block{display:block}.xl\:hidden{display:none}.xl\:grid-cols-\[minmax\(0\,740px\)_250px\]{grid-template-columns:minmax(0,740px) 250px}}
