/*! tailwindcss v4.0.10 | MIT License | https://tailwindcss.com */@layer theme{:host,:root{--font-sans:var(--font-body);--font-serif:var(--font-heading);--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--container-3xl:48rem;--container-5xl:64rem;--text-sm:.875rem;--text-base:1rem;--text-base--line-height:calc(1.5/1);--font-weight-semibold:600;--radius-md:.375rem;--radius-lg:.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-font-feature-settings:var(--font-sans--font-feature-settings);--default-font-variation-settings:var(--font-sans--font-variation-settings);--default-mono-font-family:var(--font-mono);--default-mono-font-feature-settings:var(--font-mono--font-feature-settings);--default-mono-font-variation-settings:var(--font-mono--font-variation-settings);--color-foreground:var(--foreground);--color-muted-foreground:var(--muted-foreground);--color-border:var(--border);--color-primary:var(--primary);--color-accent:var(--accent)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1;color:color-mix(in oklab,currentColor 50%,transparent)}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.relative{position:relative}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing)*0)}.mx-2\.5{margin-inline:calc(var(--spacing)*2.5)}.mx-auto{margin-inline:auto}.mt-0{margin-top:calc(var(--spacing)*0)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-5{margin-top:calc(var(--spacing)*5)}.mt-\[50px\]{margin-top:50px}.mt-auto{margin-top:auto}.mr-5{margin-right:calc(var(--spacing)*5)}.mb-2\.5{margin-bottom:calc(var(--spacing)*2.5)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-\[15px\]{margin-bottom:15px}.mb-\[30px\]{margin-bottom:30px}.box-border{box-sizing:border-box}.block{display:block}.contents{display:contents}.flex{display:flex}.hidden{display:none}.inline-block{display:inline-block}.table{display:table}.h-\[240px\]{height:240px}.h-\[300px\]{height:300px}.w-\[240px\]{width:240px}.w-full{width:100%}.max-w-3xl{max-width:var(--container-3xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-\[34rem\]{max-width:34rem}.min-w-0{min-width:calc(var(--spacing)*0)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.animate-\[fade-up_0\.45s_var\(--ease-standard\)_both\]{animation:fade-up .45s var(--ease-standard)both}.animate-\[fade-up_0\.55s_var\(--ease-standard\)_0\.08s_both\]{animation:fade-up .55s var(--ease-standard)80ms both}.animate-\[fade-up_0\.55s_var\(--ease-standard\)_both\]{animation:fade-up .55s var(--ease-standard)both}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-none{list-style-type:none}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.gap-2{gap:calc(var(--spacing)*2)}.gap-10{gap:calc(var(--spacing)*10)}.gap-12{gap:calc(var(--spacing)*12)}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-border{border-color:var(--color-border)}.border-primary\/30{border-color:color-mix(in oklab,var(--color-primary)30%,transparent)}.bg-accent{background-color:var(--color-accent)}.bg-transparent{background-color:#0000}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing)*0)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-8{padding-block:calc(var(--spacing)*8)}.pt-5{padding-top:calc(var(--spacing)*5)}.pb-5{padding-bottom:calc(var(--spacing)*5)}.pb-7{padding-bottom:calc(var(--spacing)*7)}.pb-\[30px\]{padding-bottom:30px}.text-center{text-align:center}.text-left{text-align:left}.font-sans{font-family:var(--font-sans)}.font-serif{font-family:var(--font-serif)}.text-\[0\.9rem\]{font-size:.9rem}.text-\[0\.72rem\]{font-size:.72rem}.text-\[0\.78rem\]{font-size:.78rem}.text-\[1\.4rem\]{font-size:1.4rem}.text-\[1\.05rem\]{font-size:1.05rem}.text-\[1\.5rem\]{font-size:1.5rem}.text-\[2\.5rem\]{font-size:2.5rem}.text-\[2\.75rem\]{font-size:2.75rem}.leading-\[1\.6\]{--tw-leading:1.6;line-height:1.6}.leading-\[1\.08\]{--tw-leading:1.08;line-height:1.08}.leading-\[1\.75\]{--tw-leading:1.75;line-height:1.75}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.text-foreground{color:var(--color-foreground)}.text-inherit{color:inherit}.text-muted-foreground{color:var(--color-muted-foreground)}.text-primary{color:var(--color-primary)}.uppercase{text-transform:uppercase}.no-underline{text-decoration-line:none}.opacity-70{opacity:.7}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-\[var\(--ease-standard\)\]{--tw-ease:var(--ease-standard);transition-timing-function:var(--ease-standard)}@media (hover:hover){.group-hover\:scale-\[1\.03\]:is(:where(.group):hover *){scale:1.03}.group-hover\:text-primary:is(:where(.group):hover *){color:var(--color-primary)}}.group-focus-visible\:scale-\[1\.03\]:is(:where(.group):focus-visible *){scale:1.03}.group-focus-visible\:text-primary:is(:where(.group):focus-visible *){color:var(--color-primary)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:-translate-y-\[5px\]:hover{--tw-translate-y:calc(5px*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:text-primary:hover{color:var(--color-primary)}}.focus-visible\:-translate-y-\[5px\]:focus-visible{--tw-translate-y:calc(5px*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.focus-visible\:text-primary:focus-visible{color:var(--color-primary)}@media (prefers-reduced-motion:reduce){.motion-reduce\:animate-none{animation:none}.motion-reduce\:transition-none{transition-property:none}}@media (width<900px){.max-\[900px\]\:gap-10{gap:calc(var(--spacing)*10)}}@media (width<768px){.max-\[768px\]\:mx-2{margin-inline:calc(var(--spacing)*2)}.max-\[768px\]\:mx-auto{margin-inline:auto}.max-\[768px\]\:mt-6{margin-top:calc(var(--spacing)*6)}.max-\[768px\]\:h-\[250px\]{height:250px}.max-\[768px\]\:flex-col-reverse{flex-direction:column-reverse}.max-\[768px\]\:gap-7{gap:calc(var(--spacing)*7)}.max-\[768px\]\:px-5{padding-inline:calc(var(--spacing)*5)}.max-\[768px\]\:px-\[15px\]{padding-inline:15px}.max-\[768px\]\:py-6{padding-block:calc(var(--spacing)*6)}.max-\[768px\]\:text-center{text-align:center}.max-\[768px\]\:text-\[1\.3rem\]{font-size:1.3rem}.max-\[768px\]\:text-\[2\.25rem\]{font-size:2.25rem}.max-\[768px\]\:text-\[2rem\]{font-size:2rem}}@media (width<480px){.max-\[480px\]\:mx-1\.5{margin-inline:calc(var(--spacing)*1.5)}.max-\[480px\]\:mt-5{margin-top:calc(var(--spacing)*5)}.max-\[480px\]\:mr-\[15px\]{margin-right:15px}.max-\[480px\]\:mb-5{margin-bottom:calc(var(--spacing)*5)}.max-\[480px\]\:h-\[200px\]{height:200px}.max-\[480px\]\:w-\[200px\]{width:200px}.max-\[480px\]\:gap-\[30px\]{gap:30px}.max-\[480px\]\:rounded-md{border-radius:var(--radius-md)}.max-\[480px\]\:px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.max-\[480px\]\:px-4{padding-inline:calc(var(--spacing)*4)}.max-\[480px\]\:pb-\[25px\]{padding-bottom:25px}.max-\[480px\]\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.max-\[480px\]\:text-\[0\.8rem\]{font-size:.8rem}.max-\[480px\]\:text-\[0\.9rem\]{font-size:.9rem}.max-\[480px\]\:text-\[1\.2rem\]{font-size:1.2rem}.max-\[480px\]\:text-\[1\.8rem\]{font-size:1.8rem}.max-\[480px\]\:text-\[1\.25rem\]{font-size:1.25rem}.max-\[480px\]\:text-\[2rem\]{font-size:2rem}}}@font-face{font-family:Noto Serif SC Subset;src:url(/fonts/noto-serif-sc-subset.woff2)format("woff2");font-display:swap}@font-face{font-family:Noto Sans SC Subset;src:url(/fonts/noto-sans-sc-subset.woff2)format("woff2");font-display:swap}:root{--font-heading:var(--font-heading-latin),"Noto Serif SC Subset","Noto Serif SC","Songti SC","STSong",Georgia,serif;--font-body:var(--font-body-latin),"Noto Sans SC Subset","Noto Sans SC","PingFang SC","Microsoft YaHei",system-ui,sans-serif;--font-code:"JetBrains Mono","Fira Code","SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.563rem;--text-3xl:1.953rem;--ease-standard:cubic-bezier(.22,1,.36,1);--background:#fff;--surface:#fafafa;--foreground:#1a1a1a;--muted-foreground:#6b6b6b;--primary:#6d4aff;--primary-hover:#5a3ae0;--on-primary:#fff;--selection:#e5deff;--secondary:#f5f5f5;--accent:#eaeaea;--border:#eaeaea;--card-bg:#f8f9fa;--overlay-bg:#00000080;--email-box-bg:white;--email-address-bg:#f5f5f5;--code-bg:#f8f9fa;--code-text:#24292e;--code-border:#0000001a;--code-control-bg:#e9ecef;--code-control-hover:#dee2e6;--code-title-bar-bg:#e9ecef;--code-dot-close:#ff5f56;--code-dot-minimize:#ffbd2e;--code-dot-maximize:#27c93f;--inline-code-bg:#afb8c133;--code-scrollbar-track:#0000000d;--code-scrollbar-thumb:#00000026;--code-scrollbar-thumb-hover:#50505073;--code-shadow:0 4px 16px #0000001a;--code-control-shadow:0 2px 5px #00000014;--code-control-shadow-hover:0 4px 8px #0000001f;--code-success-bg:#27c93f;--code-danger-bg:#ff5f56;--code-status-text:#121212;--syntax-keyword:#8250df;--syntax-string:#0a7f45;--syntax-number:#0550ae;--syntax-comment:#6e7781;--syntax-function:#953800;--syntax-operator:#0550ae;--syntax-variable:#24292f;--syntax-deleted:#cf222e;--syntax-inserted:#116329;--callout-shadow:0 2px 4px #0000000d;--callout-warning-border:#f59e0b;--callout-warning-bg:#fffbeb;--callout-warning-title:#b45309;--callout-tip-border:#10b981;--callout-tip-bg:#f0fdf4;--callout-tip-title:#047857;--callout-important-border:#ef4444;--callout-important-bg:#fef2f2;--callout-important-title:#b91c1c;color-scheme:light}[data-theme=dark]{--background:#121212;--surface:#1a1a1a;--foreground:#ececec;--muted-foreground:#9a9a9a;--primary:#a78bfa;--primary-hover:#bba4fc;--on-primary:#121212;--selection:#2e2640;--secondary:#1e1e1e;--accent:#2a2a2a;--border:#2a2a2a;--card-bg:#1a1a1a;--overlay-bg:#000000b3;--email-box-bg:#1e1e1e;--email-address-bg:#2d2d2d;--code-bg:#282c34;--code-text:#abb2bf;--code-border:#ffffff1a;--code-control-bg:#3e4451;--code-control-hover:#4b5263;--code-title-bar-bg:#21252b;--inline-code-bg:#6e76814d;--code-scrollbar-track:#0000004d;--code-scrollbar-thumb:#ffffff26;--code-scrollbar-thumb-hover:#ffffff4d;--code-shadow:0 4px 16px #00000047;--code-control-shadow:0 2px 5px #00000038;--code-control-shadow-hover:0 4px 8px #00000052;--code-status-text:#121212;--syntax-keyword:#ff7b72;--syntax-string:#a5d6ff;--syntax-number:#79c0ff;--syntax-comment:#8b949e;--syntax-function:#d2a8ff;--syntax-operator:#79c0ff;--syntax-variable:#ffa657;--syntax-deleted:#ffa198;--syntax-inserted:#7ee787;--callout-shadow:0 2px 4px #00000026;--callout-warning-border:#f59e0b;--callout-warning-bg:#4a2c0d;--callout-warning-title:#fde68a;--callout-tip-border:#10b981;--callout-tip-bg:#064e3b;--callout-tip-title:#a7f3d0;--callout-important-border:#ef4444;--callout-important-bg:#7f1d1d;--callout-important-title:#fecaca;color-scheme:dark}::selection{background-color:var(--selection)}:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.skip-link{top:var(--space-3);left:var(--space-3);z-index:1300;border:1px solid var(--border);background:var(--email-box-bg);color:var(--foreground);box-shadow:var(--code-control-shadow);transform:translateY(calc(-100% - var(--space-5)));transition:transform .2s var(--ease-standard);border-radius:6px;padding:.45rem .75rem;text-decoration:none;position:fixed}.skip-link:focus-visible{transform:translateY(0)}[aria-current=page]{text-decoration:underline;-webkit-text-decoration-color:var(--primary);text-decoration-color:var(--primary);text-underline-offset:.35em;text-decoration-thickness:2px}@keyframes fade-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}body{font-family:var(--font-body);background-color:var(--background);width:100%;min-height:100vh;color:var(--foreground);transition:background-color .3s var(--ease-standard),color .3s var(--ease-standard);box-sizing:border-box;flex-direction:column;margin:0;padding:0;line-height:1.6;display:flex;overflow-x:hidden}html{scroll-behavior:smooth}.site-header{box-sizing:border-box;width:100%;padding:var(--space-5)}.site-nav{flex-wrap:wrap;width:min(1200px,100%);margin:0 auto}.site-nav,.theme-toggle{align-items:center;display:flex}.theme-toggle{cursor:pointer;color:var(--foreground);transition:background-color .2s var(--ease-standard),color .2s var(--ease-standard);background:0 0;border:none;border-radius:50%;justify-content:center;margin-left:0;padding:.25rem}.theme-toggle:focus-visible,.theme-toggle:hover{background-color:var(--accent);color:var(--primary)}.theme-toggle svg{width:20px;height:20px}.search-trigger{width:28px;height:28px;margin-left:auto;margin-right:var(--space-2);color:var(--foreground);cursor:pointer;transition:background-color .2s var(--ease-standard),color .2s var(--ease-standard);background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.search-trigger:focus-visible,.search-trigger:hover{background-color:var(--accent);color:var(--primary)}.search-overlay{z-index:1200;background:var(--overlay-bg);padding:min(12vh,5rem)var(--space-4)var(--space-4);overscroll-behavior:contain;justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0}.search-panel{border:1px solid var(--border);background:var(--email-box-bg);border-radius:8px;width:min(680px,100%);max-height:min(72dvh,720px);overflow:hidden;box-shadow:0 18px 50px #0003}.search-field-wrap{border-bottom:1px solid var(--border);align-items:center;display:flex}.search-field{min-width:0;color:var(--foreground);font:inherit;background:0 0;border:0;outline:none;flex:1;padding:1rem}.search-close{width:44px;height:44px;color:var(--muted-foreground);cursor:pointer;transition:color .2s var(--ease-standard),background-color .2s var(--ease-standard);background:0 0;border:0;font-size:1.4rem}.search-close:focus-visible,.search-close:hover{background-color:var(--accent);color:var(--foreground)}.search-results{max-height:calc(min(72dvh,720px) - 57px);padding:var(--space-2);overflow:auto}.search-result{gap:var(--space-1);color:var(--foreground);transition:background-color .16s var(--ease-standard),border-color .16s var(--ease-standard),box-shadow .16s var(--ease-standard);border:1px solid #0000;border-radius:6px;padding:.8rem;text-decoration:none;display:grid}.search-result.is-active,.search-result:focus-visible,.search-result:hover,.search-result[aria-selected=true]{background:var(--secondary);border-color:color-mix(in srgb,var(--primary)28%,transparent);box-shadow:inset 2px 0 0 var(--primary)}.search-result-section{align-items:center;gap:var(--space-2);color:var(--primary);font-size:var(--text-sm);text-transform:capitalize;display:flex}.search-result-external{border:1px solid var(--border);text-transform:none;border-radius:999px;padding:.1rem .35rem;font-size:.72rem;line-height:1.2}.search-empty,.search-result span:last-child,.search-result-external{color:var(--muted-foreground)}.search-load-error{justify-items:start;gap:var(--space-3);padding:var(--space-3);display:grid}.search-load-error p{margin:0}.search-retry{border:1px solid var(--border);background:var(--secondary);color:var(--foreground);cursor:pointer;font:inherit;font-size:var(--text-sm);border-radius:6px;padding:.4rem .8rem;font-weight:600}.search-retry:focus-visible,.search-retry:hover{border-color:var(--primary);background:var(--primary);color:var(--on-primary)}h1,h2,h3{font-family:var(--font-heading)}.theme-toggle-placeholder{flex:0 0 28px;width:28px;height:28px;margin-left:0}.article-layout{gap:clamp(var(--space-5),4vw,var(--space-7));box-sizing:border-box;grid-template-columns:minmax(0,64rem) clamp(9rem,10vw,11.5rem);justify-content:center;max-width:min(1500px,100% - 3rem);margin:2rem auto;padding:1rem;display:grid}.reading-progress{z-index:1100;background:0 0;height:3px;position:fixed;top:0;left:0;right:0}.reading-progress-bar{background:var(--primary);transform-origin:0;will-change:transform;width:100%;height:100%;transition:transform .12s linear;transform:scaleX(0)}.article-content{min-width:0}.article-header{margin-bottom:2rem}.article-header h1{color:var(--foreground);overflow-wrap:anywhere;font-size:2.5rem;font-weight:700;line-height:1.2}.article-meta{gap:var(--space-2);color:var(--muted-foreground);flex-wrap:wrap;align-items:center;display:flex}.article-tags{margin-top:var(--space-3)}.article-adjacent-nav{gap:var(--space-4);margin-top:var(--space-7);padding-top:var(--space-5);border-top:1px solid var(--border);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.article-adjacent-nav a{color:var(--foreground);overflow-wrap:anywhere;transition:color .2s var(--ease-standard),transform .2s var(--ease-standard);text-decoration:none}.article-adjacent-nav a:focus-visible,.article-adjacent-nav a:hover{color:var(--primary);transform:translateY(-2px)}.article-adjacent-label{color:var(--muted-foreground);font-size:var(--text-sm);margin-bottom:var(--space-1);display:block}.article-adjacent-title{color:var(--primary);font-weight:700}.article-adjacent-nav a:nth-child(2){text-align:right}.article-adjacent-spacer{min-height:1px}.table-of-contents{max-height:calc(100vh - 4rem);padding:.15rem 0 .15rem var(--space-4);border-left:1px solid var(--border);color:var(--muted-foreground);scrollbar-width:thin;background:0 0;align-self:start;font-size:.86rem;line-height:1.45;position:sticky;top:2rem;overflow:auto}.toc-title{margin-top:0;margin-bottom:var(--space-2);color:var(--muted-foreground);letter-spacing:.08em;text-transform:uppercase;font-size:.76rem;font-weight:700}.toc-list{margin:0;padding:0;list-style:none}.toc-list li{margin-bottom:.08rem}.toc-list .toc-depth-2{padding-left:0}.toc-list .toc-depth-3{padding-left:.55rem}.toc-list .toc-depth-4{padding-left:1rem}.toc-list .toc-depth-5,.toc-list .toc-depth-6{padding-left:1.35rem}.toc-list a{color:inherit;overflow-wrap:anywhere;opacity:.78;transition:color .2s var(--ease-standard),opacity .2s var(--ease-standard),transform .2s var(--ease-standard);padding:.26rem 0 .26rem .7rem;text-decoration:none;display:block;position:relative}.toc-list a:before{content:"";left:calc(-1*var(--space-4) - 1px);width:2px;transition:background-color .2s var(--ease-standard),transform .2s var(--ease-standard);background:0 0;border-radius:999px;position:absolute;top:.45rem;bottom:.45rem}.toc-list a.active,.toc-list a:hover,.toc-list a[aria-current=location]{color:var(--primary);opacity:1}.toc-list a:hover{transform:translate(2px)}.toc-list a.active,.toc-list a[aria-current=location]{font-weight:700}.toc-depth-2 a{color:var(--foreground);opacity:.86;font-size:.98em;font-weight:650}.toc-list a.active:before,.toc-list a[aria-current=location]:before{background:var(--primary)}.toc-depth-3 a{font-size:.95em}.toc-depth-4 a{font-size:.88em}.toc-depth-5 a,.toc-depth-6 a{font-size:.82em}.table-of-contents-mobile{display:none}.tag-cloud{gap:var(--space-3);flex-wrap:wrap;display:flex}.tag-cloud-link{align-items:center;gap:var(--space-2);border:1px solid var(--border);color:var(--foreground);background:var(--surface);transition:border-color .2s var(--ease-standard),color .2s var(--ease-standard),transform .2s var(--ease-standard);border-radius:9999px;padding:.5rem .85rem;text-decoration:none;display:inline-flex}.tag-cloud-link:focus-visible,.tag-cloud-link:hover{color:var(--primary);border-color:var(--primary);transform:translateY(-2px)}.tag-cloud-count{background:var(--accent);min-width:1.6em;color:var(--muted-foreground);text-align:center;transition:background-color .2s var(--ease-standard),color .2s var(--ease-standard);border-radius:999px;padding:.08rem .42rem;font-size:.78em;font-weight:700;line-height:1.35}.tag-cloud-link:focus-visible .tag-cloud-count,.tag-cloud-link:hover .tag-cloud-count{background:var(--primary);color:var(--on-primary)}.blog-grid>li:first-child .blog-post{animation-delay:20ms}.blog-grid>li:nth-child(2) .blog-post{animation-delay:70ms}.blog-grid>li:nth-child(3) .blog-post{animation-delay:.12s}.blog-grid>li:nth-child(4) .blog-post{animation-delay:.17s}.blog-grid>li:nth-child(5) .blog-post{animation-delay:.22s}.blog-grid>li:nth-child(n+6) .blog-post{animation-delay:.27s}.scroll-to-top{background-color:var(--background);width:40px;height:40px;color:var(--foreground);border:1px solid var(--border);cursor:pointer;opacity:0;visibility:hidden;transition:opacity .3s var(--ease-standard),visibility .3s var(--ease-standard),transform .3s var(--ease-standard),box-shadow .3s var(--ease-standard);z-index:1000;border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed;bottom:30px;right:30px;box-shadow:0 2px 6px #0000001a}.scroll-to-top:focus-visible,.scroll-to-top:hover{transform:translateY(-3px);box-shadow:0 4px 8px #00000026}.scroll-to-top.visible{opacity:1;visibility:visible}[data-theme=dark] .scroll-to-top{background-color:var(--background);color:var(--foreground);box-shadow:0 2px 6px #0000004d}.social-icon{vertical-align:middle;background-color:var(--foreground);width:30px;height:30px;-webkit-mask:var(--social-icon-url)center/contain no-repeat;mask:var(--social-icon-url)center/contain no-repeat;transition:transform .25s var(--ease-standard),background-color .25s var(--ease-standard);display:inline-block}.social-link:focus-visible .social-icon,.social-link:hover .social-icon{background-color:var(--primary);transform:scale(1.2)}@media (width<=768px){.social-icon{width:28px;height:28px}}@media (width<=480px){.social-icon{width:25px;height:25px}}@media (prefers-reduced-motion:reduce){.social-link:focus-visible .social-icon,.social-link:hover .social-icon{transform:none}}.email-info-overlay{background-color:var(--overlay-bg);z-index:1000;box-sizing:border-box;overscroll-behavior:contain;justify-content:center;align-items:center;padding:15px;display:flex;position:fixed;inset:0}.email-info-box{background-color:var(--email-box-bg);text-align:center;box-sizing:border-box;border-radius:8px;width:100%;max-width:400px;max-height:min(100%,560px);padding:24px;overflow-y:auto;box-shadow:0 4px 20px #00000026}.email-info-title{margin:0;font-weight:700}.email-address-container{margin:20px 0;position:relative}.email-address{word-break:break-all;color:var(--foreground);background-color:var(--email-address-bg);text-align:left;border-radius:6px;margin:0;padding:10px 40px 10px 10px;font-size:1.1rem;font-weight:600;display:block}.copy-button{cursor:pointer;color:var(--muted-foreground);transition:background-color .2s var(--ease-standard),color .2s var(--ease-standard),transform .2s var(--ease-standard);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:5px;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.copy-button:focus-visible,.copy-button:hover{background-color:var(--accent);color:var(--foreground)}.copy-button:has(polyline){color:var(--primary)}.copy-button svg{width:18px;height:18px}.email-copy-status{min-height:1.4em;color:var(--muted-foreground);font-size:var(--text-sm);margin:-8px 0 12px}.ok-button{background-color:var(--primary);color:var(--on-primary);cursor:pointer;transition:background-color .2s var(--ease-standard),box-shadow .2s var(--ease-standard),color .2s var(--ease-standard),transform .2s var(--ease-standard);border:none;border-radius:6px;margin-top:10px;padding:10px 40px;font-size:1rem;font-weight:500;box-shadow:0 2px 4px #0003}.ok-button:focus-visible,.ok-button:hover{background-color:var(--primary-hover);transform:translateY(-1px)}.ok-button:active{transform:translateY(1px)}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.blog-post,.content,.image-container{animation:none}.article-adjacent-nav a:focus-visible,.article-adjacent-nav a:hover,.blog-post:focus-visible,.blog-post:focus-visible img,.blog-post:hover,.blog-post:hover img,.ok-button:active,.ok-button:focus-visible,.ok-button:hover,.scroll-to-top:focus-visible,.scroll-to-top:hover,.tag-cloud-link:focus-visible,.tag-cloud-link:hover,.toc-list a:hover{transform:none}}@media (width<=768px){.site-header{padding:15px}.scroll-to-top{width:35px;height:35px;bottom:20px;right:20px}.article-layout{flex-direction:column;max-width:min(76ch,100%);display:flex}.article-content{order:1}.table-of-contents{display:none}.table-of-contents-mobile{margin-bottom:var(--space-5);padding:var(--space-4);border:1px solid var(--border);background:var(--surface);color:var(--foreground);border-radius:8px;order:0;display:block}.article-header h1{font-size:2rem}.table-of-contents-mobile summary{cursor:pointer;color:var(--primary);font-weight:700}.table-of-contents-mobile .toc-list{margin-top:var(--space-3);max-height:min(52vh,420px);overflow:auto}.email-info-box{padding:20px}.email-address{font-size:1rem}.ok-button{padding:8px 30px;font-size:.9rem}}@media (width<=480px){body{line-height:1.5}.site-header{padding:15px 10px}.search-overlay{padding:var(--space-3);align-items:stretch}.search-panel{max-height:calc(100vh - (var(--space-3)*2));max-height:calc(100dvh - (var(--space-3)*2))}.search-results{max-height:calc(100vh - (var(--space-3)*2) - 57px);max-height:calc(100dvh - (var(--space-3)*2) - 57px)}.search-field{padding:.85rem}.search-result{padding:.72rem}.article-header h1{font-size:1.8rem}.article-adjacent-nav{gap:var(--space-3);grid-template-columns:1fr}.article-adjacent-nav a:nth-child(2){text-align:left}.scroll-to-top{bottom:15px;right:15px}.email-info-box{padding:15px}.email-address{padding-right:35px;font-size:.9rem}.copy-button svg{width:16px;height:16px}.ok-button{padding:8px 25px;font-size:.85rem}}@property --tw-rotate-x{syntax:"*";inherits:false;initial-value:rotateX(0)}@property --tw-rotate-y{syntax:"*";inherits:false;initial-value:rotateY(0)}@property --tw-rotate-z{syntax:"*";inherits:false;initial-value:rotateZ(0)}@property --tw-skew-x{syntax:"*";inherits:false;initial-value:skewX(0)}@property --tw-skew-y{syntax:"*";inherits:false;initial-value:skewY(0)}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}.markdown-body{font-size:var(--text-lg,1.1rem);line-height:1.7;color:var(--foreground);overflow-wrap:break-word}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{color:var(--foreground);font-weight:600;margin-top:1.5em;margin-bottom:.75em;line-height:1.3;scroll-margin-top:7rem;overflow-wrap:anywhere}.markdown-body h1{font-size:2.25em}.markdown-body h1,.markdown-body h2{border-bottom:1px solid var(--border);padding-bottom:.3em}.markdown-body h2{font-size:1.75em}.markdown-body h3{font-size:1.375em}.markdown-body h4{font-size:1.125em}.markdown-body h5{font-size:1em}.markdown-body h6{color:var(--muted-foreground);font-size:.9em;letter-spacing:.04em;text-transform:uppercase}.markdown-body p{margin-bottom:1.25em}.markdown-body mark,.markdown-body strong{color:var(--foreground)}.markdown-body mark{background-color:var(--selection);padding:.1em .25em;border-radius:4px}.markdown-body del{color:var(--muted-foreground);text-decoration-thickness:.08em}.markdown-body abbr[title],.markdown-body dfn[title]{cursor:help;text-decoration:underline dotted;text-decoration-thickness:.08em;text-underline-offset:.18em}.markdown-body cite,.markdown-body dfn{color:var(--foreground);font-style:italic}.markdown-body time{color:inherit}.markdown-body sub,.markdown-body sup{position:relative;font-size:.72em;line-height:0;vertical-align:baseline}.markdown-body sup{top:-.5em}.markdown-body sub{bottom:-.25em}.markdown-body a{color:var(--primary);text-decoration:none;text-decoration-thickness:.08em;text-underline-offset:.2em;font-weight:500;overflow-wrap:anywhere;transition:color .2s var(--ease-standard),text-decoration-color .2s var(--ease-standard)}.markdown-body a:focus-visible,.markdown-body a:hover{text-decoration:underline;text-decoration-color:currentColor}.markdown-body ol,.markdown-body ul{margin-bottom:1.25em;padding-left:1.8em}.markdown-body ul{list-style:disc outside}.markdown-body ol{list-style:decimal outside}.markdown-body ul ul{list-style-type:circle}.markdown-body ul ul ul{list-style-type:square}.markdown-body ol li,.markdown-body ul li{margin-bottom:.5em}.markdown-body ul li::marker{color:var(--muted-foreground)}.markdown-body ol li::marker{color:var(--muted-foreground);font-weight:500}.markdown-body dl{margin:1.25em 0}.markdown-body dt{color:var(--foreground);font-weight:700}.markdown-body dd{margin:.35em 0 .9em 1.25em;color:var(--muted-foreground)}.markdown-body .contains-task-list{padding-left:1.45em}.markdown-body .task-list-item{margin-left:0}.markdown-body input[type=checkbox]{width:1em;height:1em;margin:0 .5em .15em -1.4em;accent-color:var(--primary);cursor:default;opacity:1;vertical-align:middle}.markdown-body li:has(>input[type=checkbox]){list-style:none}.markdown-body blockquote{margin:1.5em 0;padding:.8em 1.5em;border-left:4px solid var(--primary);background-color:var(--secondary);color:var(--muted-foreground);font-style:normal;border-radius:4px}.markdown-body blockquote p:last-child{margin-bottom:0}.markdown-body hr{border:0;height:1px;background-color:var(--border);margin:2.5em 0}.markdown-body figure{margin:1.7em auto}.markdown-body img{max-width:100%;height:auto;border-radius:8px;margin:1.5em auto;display:block;background-color:var(--accent)}.markdown-body figure img{margin:0 auto}.markdown-body figcaption{margin-top:.65em;color:var(--muted-foreground);font-size:.88em;line-height:1.5;text-align:center}.markdown-body .markdown-table-scroll{width:100%;margin:1.5em 0;overflow-x:auto;border:1px solid var(--border);border-radius:8px;background:var(--background)}.markdown-body .markdown-table-scroll:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.markdown-body table{width:max-content;min-width:100%;border-collapse:collapse;border-spacing:0;font-size:.95em}.markdown-body td,.markdown-body th{padding:.7em .85em;border:1px solid var(--border);text-align:left;vertical-align:top}.markdown-body .markdown-table-scroll td:first-child,.markdown-body .markdown-table-scroll th:first-child{border-left:0}.markdown-body .markdown-table-scroll td:last-child,.markdown-body .markdown-table-scroll th:last-child{border-right:0}.markdown-body .markdown-table-scroll tr:first-child td,.markdown-body .markdown-table-scroll tr:first-child th{border-top:0}.markdown-body .markdown-table-scroll tr:last-child td{border-bottom:0}.markdown-body th{background-color:var(--secondary);color:var(--foreground);font-weight:700}.markdown-body tr:nth-child(2n) td{background-color:var(--surface)}.markdown-body pre{position:relative;margin:1.5rem 0;padding:0;border-radius:8px;overflow:hidden;background-color:var(--pre-bg);color:var(--pre-text);border:1px solid var(--pre-border);box-shadow:var(--code-shadow);--window-controls-width:70px;--pre-bg:var(--code-bg);--pre-text:var(--code-text);--pre-border:var(--code-border);--copy-btn-bg:var(--code-control-bg);--copy-btn-text:var(--code-text);--copy-btn-hover:var(--code-control-hover);--lang-badge-bg:var(--code-control-bg);--lang-badge-text:var(--code-text);--expand-btn-bg:var(--code-control-bg);--expand-btn-text:var(--code-text);--expand-btn-hover:var(--code-control-hover);--title-bar-bg:var(--code-title-bar-bg);--window-dot-close:var(--code-dot-close);--window-dot-minimize:var(--code-dot-minimize);--window-dot-maximize:var(--code-dot-maximize);--window-dot-border:var(--code-border);--scrollbar-track:var(--code-scrollbar-track);--scrollbar-thumb:var(--code-scrollbar-thumb)}.markdown-body pre .window-controls{position:absolute;top:0;left:0;right:0;height:30px;background-color:var(--title-bar-bg);display:flex;align-items:center;padding:0 12px;border-bottom:1px solid var(--pre-border);z-index:10}.markdown-body pre .window-dots{display:flex;align-items:center}.markdown-body pre .window-dot{width:12px;height:12px;margin-right:6px;border-radius:50%;border:1px solid var(--window-dot-border)}.markdown-body pre .window-dot.close{background-color:var(--window-dot-close)}.markdown-body pre .window-dot.minimize{background-color:var(--window-dot-minimize)}.markdown-body pre .window-dot.maximize{background-color:var(--window-dot-maximize)}.markdown-body pre .code-block-language{position:absolute;top:0;left:var(--window-controls-width,70px);right:var(--window-controls-width,70px);height:30px;line-height:30px;text-align:center;font-size:.8rem;font-weight:500;color:var(--lang-badge-text);background-color:var(--title-bar-bg);z-index:10;pointer-events:none}.markdown-body pre .code-container{padding:40px 20px 20px;overflow-x:auto;font-family:JetBrains Mono,Fira Code,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.95rem;line-height:1.6}.markdown-body pre .code-container:focus-visible{outline:2px solid var(--primary);outline-offset:-4px}.markdown-body pre .code-block-copy-button{position:absolute;top:3.5px;right:12px;min-width:4.5rem;padding:.25rem .6rem;font-size:.8rem;font-weight:500;line-height:1.35;color:var(--copy-btn-text);background-color:var(--copy-btn-bg);border:1px solid transparent;border-radius:5px;cursor:pointer;text-align:center;white-space:nowrap;transition:background-color .2s var(--ease-standard),border-color .2s var(--ease-standard),box-shadow .2s var(--ease-standard),color .2s var(--ease-standard),opacity .2s var(--ease-standard),transform .2s var(--ease-standard);z-index:11;opacity:.8}.markdown-body pre .code-block-copy-button:hover{background-color:var(--primary);color:var(--on-primary);border-color:var(--primary);opacity:1;transform:translateY(-1px);box-shadow:var(--code-control-shadow)}.markdown-body pre .code-block-copy-button:focus-visible{opacity:1;border-color:var(--primary)}.markdown-body pre .code-block-copy-button.is-copied{background-color:var(--code-success-bg);color:var(--code-status-text);border-color:transparent;opacity:1}.markdown-body pre .code-block-copy-button.is-failed{background-color:var(--code-danger-bg);color:var(--code-status-text);border-color:transparent;opacity:1}.markdown-body pre.code-block-collapsed .code-container{max-height:320px;overflow-y:auto;mask-image:linear-gradient(180deg,rgba(0,0,0,1) 85%,rgba(0,0,0,0));-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,1) 85%,rgba(0,0,0,0))}.markdown-body .code-block-expand-button{display:block;width:fit-content;margin:.8rem auto;padding:.5rem 1.2rem;font-size:.875rem;font-weight:500;color:var(--expand-btn-text);background-color:var(--expand-btn-bg);border:1px solid transparent;border-radius:6px;cursor:pointer;transition:background-color .2s var(--ease-standard),border-color .2s var(--ease-standard),box-shadow .2s var(--ease-standard),color .2s var(--ease-standard),transform .2s var(--ease-standard);box-shadow:var(--code-control-shadow)}.markdown-body .code-block-expand-button:hover{background-color:var(--primary);color:var(--on-primary);border-color:var(--primary);transform:translateY(-2px);box-shadow:var(--code-control-shadow-hover)}.markdown-body .code-block-expand-button:focus-visible{border-color:var(--primary);box-shadow:var(--code-control-shadow-hover)}.markdown-body pre .code-container::-webkit-scrollbar{height:10px;width:10px}.markdown-body pre .code-container::-webkit-scrollbar-track{background:var(--scrollbar-track);border-radius:8px}.markdown-body pre.code-block-collapsed .code-container::-webkit-scrollbar-track{background:linear-gradient(to bottom,var(--title-bar-bg) 0,var(--title-bar-bg) 29px,var(--pre-bg) 30px,var(--pre-bg) 39px,var(--scrollbar-track) 40px,var(--scrollbar-track) 100%);border-radius:8px}.markdown-body pre .code-container::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:8px;border:2px solid transparent;background-clip:padding-box}.markdown-body pre .code-container::-webkit-scrollbar-thumb:hover{background:var(--code-scrollbar-thumb-hover)}.markdown-body :not(pre)>code{padding:.2em .4em;margin:0;font-size:.9em;background-color:var(--inline-code-bg);border-radius:4px;font-family:JetBrains Mono,Fira Code,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.markdown-body kbd{display:inline-block;padding:.15em .45em;border:solid var(--border);border-width:1px 1px 2px;border-radius:5px;background-color:var(--secondary);color:var(--foreground);font-family:var(--font-code);font-size:.85em;line-height:1.4}.markdown-body pre code{font-family:inherit;font-size:inherit;padding:0;background:transparent;display:block}.markdown-body pre code.hljs{display:block;overflow-x:auto;color:inherit;background:transparent}.markdown-body pre code .hljs-comment,.markdown-body pre code .hljs-quote{color:var(--syntax-comment);font-style:italic}.markdown-body pre code .hljs-doctag,.markdown-body pre code .hljs-keyword,.markdown-body pre code .hljs-link,.markdown-body pre code .hljs-literal,.markdown-body pre code .hljs-section,.markdown-body pre code .hljs-selector-tag{color:var(--syntax-keyword)}.markdown-body pre code .hljs-bullet,.markdown-body pre code .hljs-regexp,.markdown-body pre code .hljs-string,.markdown-body pre code .hljs-symbol,.markdown-body pre code .hljs-template-variable{color:var(--syntax-string)}.markdown-body pre code .hljs-built_in,.markdown-body pre code .hljs-builtin-name,.markdown-body pre code .hljs-formula,.markdown-body pre code .hljs-number,.markdown-body pre code .hljs-params{color:var(--syntax-number)}.markdown-body pre code .hljs-operator{color:var(--syntax-operator)}.markdown-body pre code .hljs-attribute,.markdown-body pre code .hljs-class,.markdown-body pre code .hljs-function,.markdown-body pre code .hljs-name,.markdown-body pre code .hljs-selector-attr,.markdown-body pre code .hljs-selector-class,.markdown-body pre code .hljs-selector-id,.markdown-body pre code .hljs-selector-pseudo,.markdown-body pre code .hljs-tag,.markdown-body pre code .hljs-title,.markdown-body pre code .hljs-title.function_,.markdown-body pre code .hljs-type{color:var(--syntax-function)}.markdown-body pre code .hljs-attr,.markdown-body pre code .hljs-meta,.markdown-body pre code .hljs-meta .hljs-keyword,.markdown-body pre code .hljs-meta .hljs-string,.markdown-body pre code .hljs-property,.markdown-body pre code .hljs-template-tag,.markdown-body pre code .hljs-variable{color:var(--syntax-variable)}.markdown-body pre code .hljs-subst{color:inherit}.markdown-body pre code .hljs-deletion{color:var(--syntax-deleted)}.markdown-body pre code .hljs-addition{color:var(--syntax-inserted)}.markdown-body pre code .hljs-emphasis{font-style:italic}.markdown-body pre code .hljs-strong{font-weight:700}.markdown-body .callout{--callout-accent:var(--primary);--callout-background:var(--secondary);--callout-title-color:var(--primary);padding:1em 1.5em;margin:1.5em 0;border-left:4px solid var(--callout-accent);border-radius:6px;background-color:var(--callout-background);box-shadow:var(--callout-shadow)}.markdown-body .callout-title{font-weight:700;margin-bottom:.5em;display:flex;align-items:center;gap:.5em;color:var(--callout-title-color)}.markdown-body .callout-type-name{font-size:.9em}.markdown-body .callout-content p:last-child{margin-bottom:0}.markdown-body details:not(.callout){margin:1.4em 0;border:1px solid var(--border);border-radius:8px;background:var(--surface);overflow:hidden}.markdown-body details:not(.callout)[open]{background:color-mix(in srgb,var(--primary) 4%,var(--surface))}.markdown-body details:not(.callout) summary{cursor:pointer;padding:.8em 1em;color:var(--foreground);font-weight:700}.markdown-body details:not(.callout) summary::marker{color:var(--primary)}.markdown-body details:not(.callout) summary::-webkit-details-marker{color:var(--primary)}.markdown-body details:not(.callout) summary:focus-visible,.markdown-body details:not(.callout) summary:hover{color:var(--primary)}.markdown-body details:not(.callout)[open] summary{border-bottom:1px solid var(--border)}.markdown-body details:not(.callout)>:not(summary){margin-left:1em;margin-right:1em}.markdown-body details:not(.callout)>:last-child{margin-bottom:1em}.markdown-body details.callout{padding:0}.markdown-body details.callout .callout-title{margin-bottom:0;padding:1em 1.5em;cursor:pointer;list-style:none}.markdown-body details.callout .callout-title::-webkit-details-marker{display:none}.markdown-body details.callout .callout-title::marker{content:""}.markdown-body details.callout .callout-title:after{content:"";width:.45em;height:.45em;margin-left:auto;border-right:2px solid;border-bottom:2px solid;transform:rotate(45deg) translateY(-.12em);transition:transform .2s var(--ease-standard)}.markdown-body details.callout[open] .callout-title:after{transform:rotate(225deg) translate(-.05em,-.05em)}.markdown-body details.callout .callout-content{padding:0 1.5em 1em}.markdown-body .callout-info,.markdown-body .callout-note,.markdown-body .callout-todo{--callout-accent:var(--primary);--callout-background:var(--secondary);--callout-title-color:var(--primary)}.markdown-body .callout-attention,.markdown-body .callout-caution,.markdown-body .callout-faq,.markdown-body .callout-help,.markdown-body .callout-question,.markdown-body .callout-warning{--callout-accent:var(--callout-warning-border);--callout-background:var(--callout-warning-bg);--callout-title-color:var(--callout-warning-title)}.markdown-body .callout-check,.markdown-body .callout-done,.markdown-body .callout-success,.markdown-body .callout-tip{--callout-accent:var(--callout-tip-border);--callout-background:var(--callout-tip-bg);--callout-title-color:var(--callout-tip-title)}.markdown-body .callout-bug,.markdown-body .callout-danger,.markdown-body .callout-error,.markdown-body .callout-fail,.markdown-body .callout-failure,.markdown-body .callout-important,.markdown-body .callout-missing{--callout-accent:var(--callout-important-border);--callout-background:var(--callout-important-bg);--callout-title-color:var(--callout-important-title)}.markdown-body .callout-example{--callout-accent:var(--primary);--callout-background:color-mix(in srgb,var(--primary) 9%,var(--background));--callout-title-color:var(--primary)}.markdown-body .callout-cite,.markdown-body .callout-quote{--callout-accent:var(--muted-foreground);--callout-background:var(--surface);--callout-title-color:var(--muted-foreground)}.markdown-body .katex-display{margin:1em 0;padding-bottom:.15em;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.markdown-body .footnotes,.markdown-body [data-footnotes]{margin-top:2.5em;padding-top:1em;border-top:1px solid var(--border);color:var(--muted-foreground);font-size:.92em}.markdown-body .footnotes ol,.markdown-body [data-footnotes] ol{padding-left:1.45em}.markdown-body .footnotes li,.markdown-body [data-footnotes] li{margin-bottom:.45em}.markdown-body .footnotes li:target,.markdown-body [data-footnotes] li:target{border-radius:6px;background:color-mix(in srgb,var(--primary) 9%,transparent)}.markdown-body [data-footnote-ref]{margin-left:.08em;font-size:.75em;font-weight:700;text-decoration:none}.markdown-body .anchor-heading-link,.markdown-body [data-footnote-backref]{color:var(--primary);text-decoration:none}.markdown-body .anchor-heading-link{opacity:0;margin-left:.5em;transition:opacity .2s var(--ease-standard)}.markdown-body h1:hover .anchor-heading-link,.markdown-body h2:hover .anchor-heading-link,.markdown-body h3:hover .anchor-heading-link,.markdown-body h4:hover .anchor-heading-link,.markdown-body h5:hover .anchor-heading-link,.markdown-body h6:hover .anchor-heading-link{opacity:1}.markdown-body .anchor-heading-link:focus-visible,.markdown-body h1:focus-within .anchor-heading-link,.markdown-body h2:focus-within .anchor-heading-link,.markdown-body h3:focus-within .anchor-heading-link,.markdown-body h4:focus-within .anchor-heading-link,.markdown-body h5:focus-within .anchor-heading-link,.markdown-body h6:focus-within .anchor-heading-link{opacity:1}.markdown-body-tag{display:inline-block;background-color:var(--accent);border:1px solid transparent;color:var(--foreground);padding:.25em .75em;border-radius:9999px;font-size:.9rem;font-weight:500;margin-right:.5rem;margin-bottom:.5rem;line-height:1.4;text-decoration:none;transition:background-color .2s var(--ease-standard),border-color .2s var(--ease-standard),color .2s var(--ease-standard)}.markdown-body-tag:where(a){text-decoration:none}.markdown-body-tag:focus-visible,.markdown-body-tag:hover{background-color:color-mix(in srgb,var(--primary) 12%,var(--accent));border-color:color-mix(in srgb,var(--primary) 35%,transparent);color:var(--primary)}[data-theme=dark] .markdown-body-tag{background-color:var(--accent);color:var(--foreground)}@media (max-width:480px){.markdown-body pre .code-block-language{left:56px;right:74px;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.markdown-body pre .code-container{padding:40px 14px 16px;font-size:.85rem}.markdown-body pre .code-block-copy-button{right:8px;min-width:4rem;padding:.25rem .45rem}}