:root{--bg:#f6f6f2;--surface:#ffffff;--surface-soft:#fbfcff;--text:#1f252d;--muted:#6d7682;--line:#e6e9ee;--accent:#5f7fff;--max:760px;--radius:14px;--shadow-soft:0 8px 24px rgba(22, 30, 44, 0.06);--code-bg:#e9edf3;--toc-sticky-top:84px;--toc-toggle-offset:2rem;--toc-toggle-size:48px;--toc-overlay-bg:rgba(0, 0, 0, .4);--toc-blur-amount:8px;--toc-drawer-width:85%;--toc-drawer-max-width:360px;--toc-drawer-transition-duration:.3s;--toc-drawer-slide-offset:100%;--toc-drawer-ease:cubic-bezier(.4, 0, .2, 1);--toc-drawer-ease-spring:cubic-bezier(.34, 1.56, .64, 1)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#111722;--surface:#171f2a;--surface-soft:#1b2431;--text:#e7edf6;--muted:#9faabd;--line:#273446;--accent:#9fb4ff;--shadow-soft:0 8px 24px rgba(0, 0, 0, 0.22);--code-bg:#0f1622}}:root[data-theme=dark]{--bg:#111722;--surface:#171f2a;--surface-soft:#1b2431;--text:#e7edf6;--muted:#9faabd;--line:#273446;--accent:#9fb4ff;--shadow-soft:0 8px 24px rgba(0, 0, 0, 0.22);--code-bg:#0f1622}*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:clip}body{margin:0;overflow-x:clip;min-height:100vh;display:flex;flex-direction:column;background:var(--bg);color:var(--text);font-family:inter,pingfang sc,noto sans sc,system-ui,sans-serif;line-height:1.8}a{color:inherit;text-decoration:none;transition:color .2s ease,transform .2s ease}a:hover{color:var(--accent)}.container{width:min(1100px,92vw);margin:0 auto}#reading-progress{position:fixed;top:0;left:0;height:2px;width:0;z-index:1000;background:linear-gradient(90deg,var(--accent),#7ed1ff)}.site-header{position:sticky;top:0;z-index:200;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg),var(--surface-soft) 26%);backdrop-filter:blur(8px)}.nav{min-height:64px;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:0 clamp(16px,4vw,42px)}.brand{font-weight:700;font-size:1.02rem;letter-spacing:.01em}.menu{display:inline-flex;align-items:center;gap:.8rem}.menu-primary{display:inline-flex;align-items:center;gap:.55rem;padding-right:.25rem;border-right:1px solid color-mix(in srgb,var(--line),transparent 22%)}.menu-link{color:var(--muted);padding:.28rem .55rem;border-radius:8px;font-size:.94rem}.menu-link:hover{color:var(--text);background:color-mix(in srgb,var(--surface),transparent 45%)}.menu-link.is-active{color:var(--text);background:color-mix(in srgb,var(--accent),transparent 88%);border:1px solid color-mix(in srgb,var(--accent),transparent 68%)}.menu-link.is-active:hover{color:var(--text)}.theme-toggle{border:1px solid var(--line);background:color-mix(in srgb,var(--surface),transparent 15%);color:var(--muted);border-radius:999px;padding:.18rem .55rem;font:inherit;line-height:1.2;cursor:pointer;transition:color .2s ease,border-color .2s ease,background-color .2s ease}.theme-toggle:hover{color:var(--text);border-color:var(--accent)}.page-shell{flex:1 0 auto;padding:2.2rem min(4vw,2.4rem)3rem;animation:fadein .28s ease both}@keyframes fadein{from{opacity:0}to{opacity:1}}h1,h2,h3{line-height:1.3;margin:0 0 .8rem}h1{font-size:clamp(1.75rem,3vw,2.5rem)}h2,h3,h4,h5,h6{scroll-margin-top:calc(var(--toc-sticky-top) + 1rem)}p{margin:0 0 1rem}.home-intro{width:min(var(--max),100%);margin:0 auto;padding:2.2rem 0 1.2rem}.taxonomy-links{width:min(var(--max),100%);margin:0 auto 1rem;display:flex;gap:.6rem;flex-wrap:wrap}.home-section{margin-top:1.4rem}.section-head{width:min(var(--max),100%);margin:0 auto .7rem;display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.section-head h2{margin-bottom:0;font-size:clamp(1.2rem,2.2vw,1.5rem)}.section-link{color:var(--muted);font-size:.92rem}.section-link:hover{color:var(--accent)}.list-head{width:min(var(--max),100%);margin:0 auto 1rem;text-align:center}.list-head h1{margin-bottom:0}.taxonomy-links a,.terms a,.term-card{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:.22rem .72rem;font-size:.9rem}.post-list{width:min(var(--max),100%);margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.2rem}.post-card{background:color-mix(in srgb,var(--surface),var(--surface-soft) 26%);border:1px solid var(--line);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow-soft);transition:transform .2s ease}.post-card:hover{transform:translateY(-3px)}.cover-link{display:block;border-radius:calc(var(--radius) - 2px);overflow:hidden;margin-bottom:.8rem;aspect-ratio:16/9;position:relative}.cover{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease;position:absolute;left:0;top:0}.cover-link:hover .cover{transform:scale(1.03)}.post-meta{color:var(--muted);font-size:.9rem}.post-title{margin:0 0 .35rem;font-size:clamp(1.12rem,2vw,1.35rem)}.post-title a{color:var(--text)}.post-title a:hover{color:var(--accent)}.post-summary{color:color-mix(in srgb,var(--text),var(--muted) 20%)}.post-list-compact{width:min(var(--max),100%);margin:0 auto;border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in srgb,var(--surface),var(--surface-soft) 15%);overflow:hidden}.post-row{padding:.9rem 1rem;border-bottom:1px solid color-mix(in srgb,var(--line),transparent 12%)}.post-row:last-child{border-bottom:0}.post-row-title{margin:0 0 .28rem;font-size:clamp(1.03rem,1.8vw,1.2rem)}.post-row-title a{color:var(--text)}.post-row-title a:hover{color:var(--accent)}.post-row-meta{margin:0 0 .2rem;color:var(--muted);font-size:.86rem}.post-row-summary{margin:0 0 .35rem;color:color-mix(in srgb,var(--text),var(--muted) 22%);font-size:.92rem}.post-row-terms{margin:0;color:var(--muted);font-size:.86rem}.post-row-terms a{color:var(--muted)}.post-row-terms a:hover{color:var(--accent)}.post-card-tags{margin:.35rem 0 0;font-size:.86rem}.post-card-tags a{color:var(--muted)}.post-card-tags a:hover{color:var(--accent)}.single{width:min(1280px,100%);margin:0 auto}.single-header{margin-bottom:1rem}.single-layout{display:grid;grid-template-columns:1fr;gap:2rem;align-items:start}.single-layout.has-toc{grid-template-columns:minmax(0,1fr)min(var(--max),100%)minmax(180px,1fr);gap:0}.single-layout.has-toc .single-main{grid-column:2}.single-layout.has-toc .toc-wrap{grid-column:3;padding-left:1.5rem}.single-main{min-width:0;width:min(var(--max),100%);margin:0 auto}.single-layout:not(.has-toc) .single-main{margin:0 auto}.single-summary{color:color-mix(in srgb,var(--text),var(--muted) 25%);margin-bottom:.7rem}.toc-wrap{position:sticky;top:var(--toc-sticky-top);margin:1.5rem 0;padding:.2rem 0;background:0 0;align-self:start;max-height:calc(100vh - 120px);overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:transparent transparent;transition:scrollbar-color .3s ease}.toc-wrap:hover{scrollbar-color:var(--line)transparent}.toc-wrap::-webkit-scrollbar{width:4px}.toc-wrap::-webkit-scrollbar-track{background:0 0}.toc-wrap::-webkit-scrollbar-thumb{background-color:transparent;border-radius:4px;transition:background-color .3s ease}.toc-wrap:hover::-webkit-scrollbar-thumb{background-color:var(--line)}.toc-wrap::-webkit-scrollbar-thumb:hover{background-color:var(--muted)}.toc-wrap nav ul,.toc-drawer-content nav ul{list-style:none;padding:0;margin:0}.toc-wrap nav ul ul,.toc-drawer-content nav ul ul{padding-left:.6rem}.toc-wrap nav,.toc-drawer-content nav{position:relative}.toc-indicator{position:absolute;left:0;top:0;width:1px;height:0;border-radius:999px;background:color-mix(in srgb,var(--accent),white 10%);box-shadow:0 0 10px color-mix(in srgb,var(--accent),transparent 40%);opacity:0;transform:translateY(0);transition:transform .3s cubic-bezier(.25,.8,.25,1),height .3s cubic-bezier(.25,.8,.25,1),opacity .25s ease}.toc-indicator.is-visible{opacity:.95}.toc-wrap nav a,.toc-drawer-content nav a{display:block;color:color-mix(in srgb,var(--muted),transparent 20%);text-decoration:none;font-size:.88rem;line-height:1.55;padding:.42rem 0 .42rem .7rem;min-height:36px;transition:color .25s ease,transform .16s ease;overflow:hidden;white-space:normal;word-break:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;position:relative;opacity:.84}.toc-wrap nav a:hover,.toc-drawer-content nav a:hover{color:var(--text);transform:translateX(2px);opacity:1}.toc-wrap nav a.toc-level-3,.toc-drawer-content nav a.toc-level-3,.toc-wrap nav a.toc-level-4,.toc-drawer-content nav a.toc-level-4,.toc-wrap nav a.toc-level-5,.toc-drawer-content nav a.toc-level-5,.toc-wrap nav a.toc-level-6,.toc-drawer-content nav a.toc-level-6{padding-left:1.15rem;font-size:.84rem;color:color-mix(in srgb,var(--muted),transparent 28%)}.toc-wrap nav a.active,.toc-drawer-content nav a.active{color:color-mix(in srgb,var(--text),white 12%);opacity:1}.toc-toggle{display:none;position:fixed;bottom:var(--toc-toggle-offset);right:var(--toc-toggle-offset);z-index:999;padding:0;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:color-mix(in srgb,var(--surface),transparent 10%);color:color-mix(in srgb,var(--muted),transparent 12%);font-size:.7rem;cursor:pointer;box-shadow:var(--shadow-soft);opacity:.72;transition:color .2s ease,border-color .2s ease,transform .2s ease,opacity .2s ease}.toc-toggle:hover{color:var(--text);border-color:var(--accent);opacity:1;transform:scale(1.06)}.toc-toggle-icon{display:flex;align-items:center;justify-content:center}.toc-drawer{display:none;position:fixed;inset:0;z-index:1000;background:var(--toc-overlay-bg);backdrop-filter:blur(0);visibility:hidden;opacity:0;pointer-events:none;transition:opacity .25s ease,visibility .25s ease,backdrop-filter .25s ease}.toc-drawer.open{visibility:visible;opacity:1;pointer-events:auto;backdrop-filter:blur(var(--toc-blur-amount))}.toc-drawer-inner{background:var(--surface);width:var(--toc-drawer-width);max-width:var(--toc-drawer-max-width);margin:0 0 0 auto;height:100%;display:flex;flex-direction:column;box-shadow:-4px 0 24px rgba(0,0,0,.18);transform:translateX(var(--toc-drawer-slide-offset));transition:transform var(--toc-drawer-transition-duration)var(--toc-drawer-ease-spring)}.toc-drawer.open .toc-drawer-inner{transform:translateX(0)}@media(max-width:1024px){.toc-drawer.open{animation:drawer-blur-in .3s var(--toc-drawer-ease-spring)forwards}@keyframes drawer-blur-in{from{backdrop-filter:blur(0);opacity:0}to{backdrop-filter:blur(var(--toc-blur-amount));opacity:1}}}.toc-drawer-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.2rem;border-bottom:1px solid var(--line)}.toc-drawer-header h3{margin:0;font-size:1.1rem;font-weight:600}.toc-drawer-close{border:none;background:0 0;color:var(--muted);font-size:2rem;line-height:1;cursor:pointer;padding:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:color .2s ease,background-color .2s ease}.toc-drawer-close:hover{color:var(--text);background:color-mix(in srgb,var(--line),transparent 12%)}.toc-drawer-content{flex:1;overflow-y:auto;padding:1rem 1.2rem}.toc-wrap[hidden],.toc-drawer[hidden],.toc-toggle[hidden]{display:none !important}body.toc-drawer-open .post-content,body.toc-drawer-open .site-header{pointer-events:none;user-select:none}.post-content img{max-width:100%;height:auto;display:block;margin:1rem auto;border-radius:12px;cursor:zoom-in}.lazy-image{opacity:.65;filter:blur(10px);transition:opacity .35s ease,filter .35s ease}.lazy-image.loaded{opacity:1;filter:blur(0)}.image-lightbox{position:fixed;inset:0;display:grid;place-items:center;background:rgba(0,0,0,.78);opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:1200}.image-lightbox.open{opacity:1;pointer-events:auto}.image-lightbox img{max-width:92vw;max-height:88vh;border-radius:12px}pre{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);padding:.95rem 1rem;margin:1rem 0 1.2rem;background:var(--code-bg);box-shadow:var(--shadow-soft);line-height:1.65;font-size:.92rem;tab-size:2}.highlight{border:1px solid var(--line);border-radius:var(--radius);margin:1.5rem 0;background:var(--code-bg);overflow-x:auto}.highlight pre{border:0;box-shadow:none;margin:0;border-radius:0;background:0 0}.highlight table,.highlight td,.highlight tr{border:0 !important}.highlight>div:not(.code-toolbar),.highlight pre,.highlight pre[style]{background-color:var(--code-bg) !important}.code-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.52rem .72rem;border-bottom:1px solid color-mix(in srgb,var(--line),transparent 12%);background:color-mix(in srgb,var(--surface),var(--code-bg) 42%)}.code-lang{font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;color:color-mix(in srgb,var(--muted),var(--text) 22%);font-weight:600}.code-copy{border:1px solid color-mix(in srgb,var(--line),transparent 4%);background:color-mix(in srgb,var(--surface),transparent 12%);color:var(--muted);border-radius:8px;padding:.2rem .5rem;font-size:.78rem;line-height:1.2;cursor:pointer;transition:color .2s ease,border-color .2s ease,background-color .2s ease}.code-copy:hover{color:var(--text);border-color:var(--accent)}.highlight .chroma,.highlight .chroma code,.highlight .chroma pre{background:0 0 !important}.highlight .chroma{color:#1f2328}.highlight .chroma .err{color:#f6f8fa;background-color:#82071e}.highlight .chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.highlight .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.highlight .chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.highlight .chroma .hl{background-color:#dedede}.highlight .chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.highlight .chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.highlight .chroma .line{display:flex}.highlight .chroma .k{color:#cf222e}.highlight .chroma .kc{color:#cf222e}.highlight .chroma .kd{color:#cf222e}.highlight .chroma .kn{color:#cf222e}.highlight .chroma .kp{color:#cf222e}.highlight .chroma .kr{color:#cf222e}.highlight .chroma .kt{color:#cf222e}.highlight .chroma .na{color:#1f2328}.highlight .chroma .nc{color:#1f2328}.highlight .chroma .no{color:#0550ae}.highlight .chroma .nd{color:#0550ae}.highlight .chroma .ni{color:#6639ba}.highlight .chroma .nl{color:#900;font-weight:700}.highlight .chroma .nn{color:#24292e}.highlight .chroma .nx{color:#1f2328}.highlight .chroma .nt{color:#0550ae}.highlight .chroma .nb{color:#6639ba}.highlight .chroma .bp{color:#6a737d}.highlight .chroma .nv{color:#953800}.highlight .chroma .vc{color:#953800}.highlight .chroma .vg{color:#953800}.highlight .chroma .vi{color:#953800}.highlight .chroma .vm{color:#953800}.highlight .chroma .nf{color:#6639ba}.highlight .chroma .fm{color:#6639ba}.highlight .chroma .s{color:#0a3069}.highlight .chroma .sa{color:#0a3069}.highlight .chroma .sb{color:#0a3069}.highlight .chroma .sc{color:#0a3069}.highlight .chroma .dl{color:#0a3069}.highlight .chroma .sd{color:#0a3069}.highlight .chroma .s2{color:#0a3069}.highlight .chroma .se{color:#0a3069}.highlight .chroma .sh{color:#0a3069}.highlight .chroma .si{color:#0a3069}.highlight .chroma .sx{color:#0a3069}.highlight .chroma .sr{color:#0a3069}.highlight .chroma .s1{color:#0a3069}.highlight .chroma .ss{color:#032f62}.highlight .chroma .m{color:#0550ae}.highlight .chroma .mb{color:#0550ae}.highlight .chroma .mf{color:#0550ae}.highlight .chroma .mh{color:#0550ae}.highlight .chroma .mi{color:#0550ae}.highlight .chroma .il{color:#0550ae}.highlight .chroma .mo{color:#0550ae}.highlight .chroma .o{color:#0550ae}.highlight .chroma .ow{color:#0550ae}.highlight .chroma .p{color:#1f2328}.highlight .chroma .c{color:#57606a}.highlight .chroma .ch{color:#57606a}.highlight .chroma .cm{color:#57606a}.highlight .chroma .c1{color:#57606a}.highlight .chroma .cs{color:#57606a}.highlight .chroma .cp{color:#57606a}.highlight .chroma .cpf{color:#57606a}.highlight .chroma .gd{color:#82071e;background-color:#ffebe9}.highlight .chroma .ge{color:#1f2328}.highlight .chroma .gi{color:#116329;background-color:#dafbe1}.highlight .chroma .go{color:#1f2328}.highlight .chroma .gl{text-decoration:underline}.highlight .chroma .w{color:#fff}.highlight .chroma .ne{color:#1f2328}.highlight .chroma .py{color:#1f2328}.highlight .chroma .l{color:#1f2328}.highlight .chroma .ld{color:#1f2328}.highlight .chroma .gr{color:#1f2328}.highlight .chroma .gh{color:#1f2328}.highlight .chroma .gp{color:#1f2328}.highlight .chroma .gs{color:#1f2328}.highlight .chroma .gu{color:#1f2328}.highlight .chroma .gt{color:#1f2328}:root[data-theme=dark] .highlight .chroma{color:#e6edf3}:root[data-theme=dark] .highlight .chroma .err{color:#f85149}:root[data-theme=dark] .highlight .chroma .lnlinks{outline:none;text-decoration:none;color:inherit}:root[data-theme=dark] .highlight .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}:root[data-theme=dark] .highlight .chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}:root[data-theme=dark] .highlight .chroma .hl{background-color:#6e7681}:root[data-theme=dark] .highlight .chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#737679}:root[data-theme=dark] .highlight .chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#6e7681}:root[data-theme=dark] .highlight .chroma .line{display:flex}:root[data-theme=dark] .highlight .chroma .k{color:#ff7b72}:root[data-theme=dark] .highlight .chroma .kc{color:#79c0ff}:root[data-theme=dark] .highlight .chroma .kd{color:#ff7b72}:root[data-theme=dark] .highlight .chroma .kn{color:#ff7b72}:root[data-theme=dark] .highlight .chroma .kp{color:#79c0ff}:root[data-theme=dark] .highlight .chroma .kr{color:#ff7b72}:root[data-theme=dark] .highlight .chroma .kt{color:#ff7b72}:root[data-theme=dark] .highlight .chroma .nc{color:#f0883e;font-weight:700}:root[data-theme=dark] .highlight .chroma .no{color:#79c0ff;font-weight:700}:root[data-theme=dark] .highlight .chroma .nd{color:#d2a8ff;font-weight:700}:root[data-theme=dark] .highlight .chroma .ni{color:#ffa657}:root[data-theme=dark] .highlight .chroma .ne{color:#f0883e;font-weight:700}:root[data-theme=dark] .highlight .chroma .nl{color:#79c0ff;font-weight:700}:root[data-theme=dark] .highlight .chroma .nn{color:#ff7b72}:root[data-theme=dark] .highlight .chroma .py{color:#79c0ff}:root[data-theme=dark] .highlight .chroma .nt{color:#7ee787}:root[data-theme=dark] .highlight .chroma .nv{color:#79c0ff}:root[data-theme=dark] .highlight .chroma .vc{color:#79c0ff}:root[data-theme=dark] .highlight .chroma .vg{color:#79c0ff}:root[data-theme=dark] .highlight .chroma .vi{color:#79c0ff}:root[data-theme=dark] .highlight .chroma .vm{color:#79c0ff}:root[data-theme=dark] .highlight .chroma .nf{color:#d2a8ff;font-weight:700}:root[data-theme=dark] .highlight .chroma .fm{color:#d2a8ff;font-weight:700}:root[data-theme=dark] .highlight .chroma .l{color:#a5d6ff}:root[data-theme=dark] .highlight .chroma .ld{color:#79c0ff}:root[data-theme=dark] .highlight .chroma .s{color:#a5d6ff}:root[data-theme=dark] .highlight .chroma .sa{color:#79c0ff}:root[data-theme=dark] .highlight .chroma .sb{color:#a5d6ff}:root[data-theme=dark] .highlight .chroma .sc{color:#a5d6ff}:root[data-theme=dark] .highlight .chroma .dl{color:#79c0ff}:root[data-theme=dark] .highlight .chroma .sd{color:#a5d6ff}:root[data-theme=dark] .highlight .chroma .s2{color:#a5d6ff}:root[data-theme=dark] .highlight .chroma .se{color:#79c0ff}:root[data-theme=dark] .highlight .chroma .sh{color:#79c0ff}:root[data-theme=dark] .highlight .chroma .si{color:#a5d6ff}:root[data-theme=dark] .highlight .chroma .sx{color:#a5d6ff}:root[data-theme=dark] .highlight .chroma .sr{color:#79c0ff}:root[data-theme=dark] .highlight .chroma .s1{color:#a5d6ff}:root[data-theme=dark] .highlight .chroma .ss{color:#a5d6ff}:root[data-theme=dark] .highlight .chroma .m{color:#a5d6ff}:root[data-theme=dark] .highlight .chroma .mb{color:#a5d6ff}:root[data-theme=dark] .highlight .chroma .mf{color:#a5d6ff}:root[data-theme=dark] .highlight .chroma .mh{color:#a5d6ff}:root[data-theme=dark] .highlight .chroma .mi{color:#a5d6ff}:root[data-theme=dark] .highlight .chroma .il{color:#a5d6ff}:root[data-theme=dark] .highlight .chroma .mo{color:#a5d6ff}:root[data-theme=dark] .highlight .chroma .o{color:#ff7b72;font-weight:700}:root[data-theme=dark] .highlight .chroma .ow{color:#ff7b72;font-weight:700}:root[data-theme=dark] .highlight .chroma .c{color:#8b949e;font-style:italic}:root[data-theme=dark] .highlight .chroma .ch{color:#8b949e;font-style:italic}:root[data-theme=dark] .highlight .chroma .cm{color:#8b949e;font-style:italic}:root[data-theme=dark] .highlight .chroma .c1{color:#8b949e;font-style:italic}:root[data-theme=dark] .highlight .chroma .cs{color:#8b949e;font-weight:700;font-style:italic}:root[data-theme=dark] .highlight .chroma .cp{color:#8b949e;font-weight:700;font-style:italic}:root[data-theme=dark] .highlight .chroma .cpf{color:#8b949e;font-weight:700;font-style:italic}:root[data-theme=dark] .highlight .chroma .gd{color:#ffa198;background-color:#490202}:root[data-theme=dark] .highlight .chroma .ge{font-style:italic}:root[data-theme=dark] .highlight .chroma .gr{color:#ffa198}:root[data-theme=dark] .highlight .chroma .gh{color:#79c0ff;font-weight:700}:root[data-theme=dark] .highlight .chroma .gi{color:#56d364;background-color:#0f5323}:root[data-theme=dark] .highlight .chroma .go{color:#8b949e}:root[data-theme=dark] .highlight .chroma .gp{color:#8b949e}:root[data-theme=dark] .highlight .chroma .gs{font-weight:700}:root[data-theme=dark] .highlight .chroma .gu{color:#79c0ff}:root[data-theme=dark] .highlight .chroma .gt{color:#ff7b72}:root[data-theme=dark] .highlight .chroma .gl{text-decoration:underline}:root[data-theme=dark] .highlight .chroma .w{color:#6e7681}:root[data-theme=dark] .highlight .chroma .na{color:#e6edf3}:root[data-theme=dark] .highlight .chroma .nx{color:#e6edf3}:root[data-theme=dark] .highlight .chroma .nb{color:#e6edf3}:root[data-theme=dark] .highlight .chroma .bp{color:#e6edf3}:root[data-theme=dark] .highlight .chroma .p{color:#e6edf3}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .highlight .chroma{color:#e6edf3}:root:not([data-theme=light]) .highlight .chroma .err{color:#f85149}:root:not([data-theme=light]) .highlight .chroma .lnlinks{outline:none;text-decoration:none;color:inherit}:root:not([data-theme=light]) .highlight .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}:root:not([data-theme=light]) .highlight .chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}:root:not([data-theme=light]) .highlight .chroma .hl{background-color:#6e7681}:root:not([data-theme=light]) .highlight .chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#737679}:root:not([data-theme=light]) .highlight .chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#6e7681}:root:not([data-theme=light]) .highlight .chroma .line{display:flex}:root:not([data-theme=light]) .highlight .chroma .k{color:#ff7b72}:root:not([data-theme=light]) .highlight .chroma .kc{color:#79c0ff}:root:not([data-theme=light]) .highlight .chroma .kd{color:#ff7b72}:root:not([data-theme=light]) .highlight .chroma .kn{color:#ff7b72}:root:not([data-theme=light]) .highlight .chroma .kp{color:#79c0ff}:root:not([data-theme=light]) .highlight .chroma .kr{color:#ff7b72}:root:not([data-theme=light]) .highlight .chroma .kt{color:#ff7b72}:root:not([data-theme=light]) .highlight .chroma .nc{color:#f0883e;font-weight:700}:root:not([data-theme=light]) .highlight .chroma .no{color:#79c0ff;font-weight:700}:root:not([data-theme=light]) .highlight .chroma .nd{color:#d2a8ff;font-weight:700}:root:not([data-theme=light]) .highlight .chroma .ni{color:#ffa657}:root:not([data-theme=light]) .highlight .chroma .ne{color:#f0883e;font-weight:700}:root:not([data-theme=light]) .highlight .chroma .nl{color:#79c0ff;font-weight:700}:root:not([data-theme=light]) .highlight .chroma .nn{color:#ff7b72}:root:not([data-theme=light]) .highlight .chroma .py{color:#79c0ff}:root:not([data-theme=light]) .highlight .chroma .nt{color:#7ee787}:root:not([data-theme=light]) .highlight .chroma .nv{color:#79c0ff}:root:not([data-theme=light]) .highlight .chroma .vc{color:#79c0ff}:root:not([data-theme=light]) .highlight .chroma .vg{color:#79c0ff}:root:not([data-theme=light]) .highlight .chroma .vi{color:#79c0ff}:root:not([data-theme=light]) .highlight .chroma .vm{color:#79c0ff}:root:not([data-theme=light]) .highlight .chroma .nf{color:#d2a8ff;font-weight:700}:root:not([data-theme=light]) .highlight .chroma .fm{color:#d2a8ff;font-weight:700}:root:not([data-theme=light]) .highlight .chroma .l{color:#a5d6ff}:root:not([data-theme=light]) .highlight .chroma .ld{color:#79c0ff}:root:not([data-theme=light]) .highlight .chroma .s{color:#a5d6ff}:root:not([data-theme=light]) .highlight .chroma .sa{color:#79c0ff}:root:not([data-theme=light]) .highlight .chroma .sb{color:#a5d6ff}:root:not([data-theme=light]) .highlight .chroma .sc{color:#a5d6ff}:root:not([data-theme=light]) .highlight .chroma .dl{color:#79c0ff}:root:not([data-theme=light]) .highlight .chroma .sd{color:#a5d6ff}:root:not([data-theme=light]) .highlight .chroma .s2{color:#a5d6ff}:root:not([data-theme=light]) .highlight .chroma .se{color:#79c0ff}:root:not([data-theme=light]) .highlight .chroma .sh{color:#79c0ff}:root:not([data-theme=light]) .highlight .chroma .si{color:#a5d6ff}:root:not([data-theme=light]) .highlight .chroma .sx{color:#a5d6ff}:root:not([data-theme=light]) .highlight .chroma .sr{color:#79c0ff}:root:not([data-theme=light]) .highlight .chroma .s1{color:#a5d6ff}:root:not([data-theme=light]) .highlight .chroma .ss{color:#a5d6ff}:root:not([data-theme=light]) .highlight .chroma .m{color:#a5d6ff}:root:not([data-theme=light]) .highlight .chroma .mb{color:#a5d6ff}:root:not([data-theme=light]) .highlight .chroma .mf{color:#a5d6ff}:root:not([data-theme=light]) .highlight .chroma .mh{color:#a5d6ff}:root:not([data-theme=light]) .highlight .chroma .mi{color:#a5d6ff}:root:not([data-theme=light]) .highlight .chroma .il{color:#a5d6ff}:root:not([data-theme=light]) .highlight .chroma .mo{color:#a5d6ff}:root:not([data-theme=light]) .highlight .chroma .o{color:#ff7b72;font-weight:700}:root:not([data-theme=light]) .highlight .chroma .ow{color:#ff7b72;font-weight:700}:root:not([data-theme=light]) .highlight .chroma .c{color:#8b949e;font-style:italic}:root:not([data-theme=light]) .highlight .chroma .ch{color:#8b949e;font-style:italic}:root:not([data-theme=light]) .highlight .chroma .cm{color:#8b949e;font-style:italic}:root:not([data-theme=light]) .highlight .chroma .c1{color:#8b949e;font-style:italic}:root:not([data-theme=light]) .highlight .chroma .cs{color:#8b949e;font-weight:700;font-style:italic}:root:not([data-theme=light]) .highlight .chroma .cp{color:#8b949e;font-weight:700;font-style:italic}:root:not([data-theme=light]) .highlight .chroma .cpf{color:#8b949e;font-weight:700;font-style:italic}:root:not([data-theme=light]) .highlight .chroma .gd{color:#ffa198;background-color:#490202}:root:not([data-theme=light]) .highlight .chroma .ge{font-style:italic}:root:not([data-theme=light]) .highlight .chroma .gr{color:#ffa198}:root:not([data-theme=light]) .highlight .chroma .gh{color:#79c0ff;font-weight:700}:root:not([data-theme=light]) .highlight .chroma .gi{color:#56d364;background-color:#0f5323}:root:not([data-theme=light]) .highlight .chroma .go{color:#8b949e}:root:not([data-theme=light]) .highlight .chroma .gp{color:#8b949e}:root:not([data-theme=light]) .highlight .chroma .gs{font-weight:700}:root:not([data-theme=light]) .highlight .chroma .gu{color:#79c0ff}:root:not([data-theme=light]) .highlight .chroma .gt{color:#ff7b72}:root:not([data-theme=light]) .highlight .chroma .gl{text-decoration:underline}:root:not([data-theme=light]) .highlight .chroma .w{color:#6e7681}:root:not([data-theme=light]) .highlight .chroma .na{color:#e6edf3}:root:not([data-theme=light]) .highlight .chroma .nx{color:#e6edf3}:root:not([data-theme=light]) .highlight .chroma .nb{color:#e6edf3}:root:not([data-theme=light]) .highlight .chroma .bp{color:#e6edf3}:root:not([data-theme=light]) .highlight .chroma .p{color:#e6edf3}}pre code{font-family:jetbrains mono,cascadia code,sfmono-regular,Consolas,monospace;background:0 0;border:0;padding:0;color:inherit}:not(pre)>code{font-family:jetbrains mono,cascadia code,sfmono-regular,Consolas,monospace;font-size:.88em;padding:.12rem .38rem;border-radius:7px;border:1px solid color-mix(in srgb,var(--line),transparent 8%);background:color-mix(in srgb,var(--surface-soft),var(--bg) 28%);color:color-mix(in srgb,var(--text),var(--accent) 16%)}.chroma{border-radius:calc(var(--radius) - 2px)}.chroma .lnt,.chroma .ln,.chroma .lntd:first-child{color:color-mix(in srgb,var(--muted),var(--text) 8%)}.terms-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.8rem}.term-card{border-radius:12px;padding:.58rem .8rem;background:var(--surface);display:inline-flex;justify-content:space-between}.pagination{width:min(var(--max),100%);margin:1.2rem auto 0;display:flex;align-items:center;justify-content:space-between;gap:.7rem}.page-link{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:.28rem .74rem;font-size:.9rem}.page-state{color:var(--muted);font-size:.9rem}.site-footer{margin-top:auto;border-top:1px solid var(--line);background:color-mix(in srgb,var(--bg),var(--surface-soft) 20%)}.footer-wrap{min-height:70px;display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:.93rem;gap:1rem;padding:0 clamp(16px,4vw,42px)}.footer-main,.footer-links{margin:0}.footer-links a{color:var(--muted)}.footer-links a:hover{color:var(--text)}@media(max-width:1024px){.post-list{grid-template-columns:minmax(0,1fr)}.single-layout,.single-layout.has-toc{grid-template-columns:minmax(0,1fr);gap:2rem}.single-layout.has-toc .single-main{grid-column:1}.toc-wrap{display:none}.toc-toggle{display:block}.toc-drawer{display:block}}@media(max-width:480px){.toc-toggle{--toc-toggle-offset:1.25rem}}@media(max-width:560px){.post-content a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.nav{min-height:58px}.menu{gap:.55rem}.menu-primary{gap:.35rem;padding-right:.2rem}.menu-link{padding:.4rem .6rem;font-size:.95rem;display:inline-flex;align-items:center;min-height:44px}.nav,.footer-wrap{padding-inline:12px}.footer-wrap{flex-direction:column;justify-content:center;gap:.2rem}.post-content h1{font-size:1.6rem;margin-top:1.2rem}.post-content h2{font-size:1.4rem;margin-top:1.2rem}.post-content h3{font-size:1.2rem;margin-top:1rem}.post-content a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}}blockquote{margin:1.2rem 0;padding:.6rem 1.2rem;border-left:4px solid var(--accent);background:color-mix(in srgb,var(--surface),var(--surface-soft) 40%);color:var(--muted);border-radius:0 calc(var(--radius) - 6px)calc(var(--radius) - 6px)0;font-size:.98em}blockquote p{margin-bottom:.8rem}blockquote p:last-child{margin-bottom:0}.post-content,.page-shell{word-break:break-word;overflow-wrap:break-word}img{max-width:100%;height:auto}.post-content table{display:block;max-width:100%;overflow-x:auto;word-break:normal;margin:1.5rem 0;border-collapse:collapse}.post-content table th,.post-content table td{border:1px solid var(--line);padding:.5rem 1rem}