.code-surface-body .shiki-output pre.shiki{font-size:var(--fs-13);line-height:var(--lh-170);font-family:var(--mono-font);box-sizing:border-box;width:max-content;min-width:100%;margin:0;padding:0;background:0 0!important}.code-surface-body .shiki-output code{counter-reset:shiki-ln;background:0 0;border:0;padding:0;font-family:inherit;display:block}.code-surface-body .shiki-output .line:before{content:counter(shiki-ln);width:1.6rem;margin-right:var(--space-5);text-align:right;color:rgba(var(--paper-rgb), .2);-webkit-user-select:none;user-select:none;display:inline-block}.code-surface-body .shiki-fallback{color:var(--paper-2);white-space:pre;font-size:var(--fs-13);line-height:var(--lh-170);font-family:var(--mono-font);animation:1.4s ease-in-out infinite shikiPulse}.code-surface-body .shiki-fallback code{background:0 0;border:0;padding:0;font-family:inherit}@media (prefers-reduced-motion:reduce){.code-surface-body .shiki-fallback{opacity:.7;animation:none}}.code-surface-body--collapsed .code-surface-clip{max-height:20rem}.code-surface-toggle{width:100%;padding:var(--space-2);border:none;border-top:1px solid var(--rule);box-shadow:none;color:var(--paper-3);font-size:var(--fs-11);font-family:var(--mono-font);letter-spacing:var(--ls-12);cursor:pointer;transition:color var(--dur-200) ease;background:0 0;border-radius:0;outline:none;justify-content:center;align-items:center;gap:.45em;display:flex;position:relative}.code-surface-toggle-chevron{opacity:.7;font-size:.7em}.code-surface-body--collapsed .code-surface-toggle:before{content:"";background:linear-gradient(to top, rgba(var(--ground-rgb), .85), transparent);pointer-events:none;height:3.5rem;position:absolute;bottom:100%;left:0;right:0}.mm-sandbox{margin:var(--space-6) 0;background:var(--corner-frame);cursor:grab;height:420px;position:relative;overflow:hidden}.mm-sandbox:active{cursor:grabbing}.mm-toolbar{z-index:20;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);background:rgba(var(--ground-rgb), .92);border:1px solid var(--rule);border-radius:var(--r-2);opacity:0;transition:transform var(--dur-300) var(--easing-standard), opacity var(--dur-300) var(--easing-standard);pointer-events:none;box-shadow:var(--elev-2);display:flex;position:absolute;top:8px;left:50%;transform:translate(-50%)translateY(-120%)}.mm-toolbar--visible{opacity:1;pointer-events:auto;transform:translate(-50%)translateY(0)}.mm-toolbar-group{gap:var(--space-1);align-items:center;display:flex}.mm-toolbar-hint{font-family:var(--mono-font);font-size:var(--fs-10);color:var(--paper-3);white-space:nowrap;padding-left:var(--space-1-5);border-left:1px solid var(--rule);margin-left:var(--space-1)}.mm-menu{position:relative}.mm-menu-trigger{border-radius:var(--r-2);width:34px;height:34px;color:var(--paper-3);cursor:pointer;transition:border-color var(--dur-150), color var(--dur-150);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:flex;position:relative}.mm-menu-trigger:hover,.mm-menu-trigger:focus,.mm-menu-trigger:focus-visible{box-shadow:none;color:var(--paper);background:0 0;outline:none}.mm-menu-trigger--open{border-color:var(--rule);color:var(--paper);background:0 0}.mm-menu-trigger svg{flex-shrink:0;width:16px;height:16px;display:block}.mm-menu-trigger[data-tooltip]:after{content:attr(data-tooltip);padding:var(--space-1) var(--space-2);background:rgba(var(--ground-rgb), .96);border:1px solid var(--rule);color:var(--paper-2);font-family:var(--mono-font);font-size:var(--fs-10);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--dur-150) ease;z-index:100;font-weight:400;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%)}.mm-menu-trigger[data-tooltip]:not(.mm-menu-trigger--open):hover:after{opacity:1}.mm-menu-dropdown{background:rgba(var(--ground-rgb), .96);border:1px solid var(--rule);border-radius:var(--r-2);min-width:150px;padding:var(--space-1);z-index:50;animation:.15s ease-out mmDropIn;position:absolute;top:calc(100% + 6px);left:0}@keyframes mmDropIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.mm-menu-label{font-family:var(--mono-font);font-size:var(--fs-10);color:var(--paper-3);padding:var(--space-1) var(--space-2) var(--space-1);letter-spacing:var(--ls-12)}.mm-menu-item{align-items:center;gap:var(--space-1-5);width:100%;padding:var(--space-1-5) var(--space-2);color:var(--paper-2);font-size:var(--fs-12);cursor:pointer;transition:color var(--dur-100);text-align:left;background:0 0;border:none;border-radius:0;display:flex}.mm-menu-item:hover{color:var(--paper);background:0 0}.mm-menu-item--active{color:var(--paper);text-underline-offset:3px;background:0 0;text-decoration:underline}.mm-menu-item-icon{font-size:var(--fs-14);text-align:center;flex-shrink:0;width:1.2rem}.mm-expand-btn{z-index:15;border-radius:var(--r-2);background:rgba(var(--ground-rgb), .92);border:1px solid var(--rule);width:34px;height:34px;color:var(--paper-2);cursor:pointer;transition:color var(--dur-200), border-color var(--dur-200);box-shadow:none;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;bottom:10px;right:10px}.mm-expand-btn:hover,.mm-expand-btn:focus{color:var(--paper);background:rgba(var(--ground-rgb), .92);border-color:var(--paper-3);box-shadow:none}.mm-expand-btn svg{stroke:currentColor;fill:none;width:16px;height:16px;display:block}.mm-expand-btn[data-tooltip]:after{content:attr(data-tooltip);padding:var(--space-1) var(--space-2);background:rgba(var(--ground-rgb), .96);border:1px solid var(--rule);color:var(--paper-2);font-family:var(--mono-font);font-size:var(--fs-10);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--dur-150) ease;z-index:100;font-weight:400;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.mm-expand-btn:hover[data-tooltip]:after{opacity:1}.mermaid-render{justify-content:center;align-items:center;display:flex}.mermaid-render svg{max-width:none;height:auto}.mm-fullscreen-overlay{z-index:var(--z-fullscreen);background:rgba(var(--ground-rgb), .95);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.mm-fullscreen-container{background:var(--corner-frame);flex-direction:column;width:94vw;max-width:1600px;height:90vh;display:flex;overflow:hidden}.mm-fullscreen-toolbar{padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--rule);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.mm-fullscreen-toolbar .mm-toolbar-group{gap:var(--space-1);display:flex}.mm-toolbar-right{align-items:center;gap:var(--space-3);display:flex}.mm-close-btn{border-radius:var(--r-round);border:1px solid var(--paper-3);width:30px;height:30px;color:var(--paper-2);cursor:pointer;font-size:var(--fs-14);transition:border-color var(--dur-150), color var(--dur-150);box-shadow:none;background:0 0;justify-content:center;align-items:center;padding:0;display:flex}.mm-close-btn:hover,.mm-close-btn:focus{border-color:var(--paper);color:var(--paper);box-shadow:none;background:0 0}.mm-fullscreen-canvas{cursor:grab;flex:1;overflow:hidden}.mm-fullscreen-canvas:active{cursor:grabbing}.mermaid-error{margin:var(--space-6) 0;padding:var(--space-0-5) 0 var(--space-0-5) var(--space-4-5);border-left:1px solid var(--paper-3);font-size:var(--fs-14)}.mermaid-error span{color:var(--paper-3);font-family:var(--mono-font);font-size:var(--fs-11);margin-bottom:var(--space-2);display:block}.mermaid-error pre{color:var(--paper-2);font-size:var(--fs-13);white-space:pre-wrap;margin:0}@media (width<=768px){.mm-sandbox{height:320px}.mm-toolbar{border-radius:var(--r-10);left:8px;right:8px;transform:translate(0)translateY(-120%)}.mm-toolbar--visible{transform:translate(0)translateY(0)}.mm-toolbar-hint{display:none}.mm-fullscreen-container{border-radius:0;width:100vw;height:100vh}}.mm-toolbar-actions{align-items:center;gap:var(--space-0-5);padding-left:var(--space-1);margin-left:var(--space-0-5);border-left:1px solid var(--white-10);display:flex}.mm-action-btn{align-items:center;gap:var(--space-1);padding:var(--space-1-5);border-radius:var(--r-2);box-shadow:none;color:var(--paper-3);cursor:pointer;transition:color var(--dur-150) ease;background:0 0;border:none;outline:none;display:inline-flex}.mm-action-btn:hover,.mm-action-btn:focus,.mm-action-btn:focus-visible{color:var(--paper);box-shadow:none;background:0 0;border-color:#0000;outline:none}.mm-action-btn--dl{padding:var(--space-1-5) var(--space-2)}.mm-action-ext{font-family:var(--mono-font);font-size:var(--fs-10);letter-spacing:var(--ls-2);font-weight:400}.mm-theme-ink{--pele-bg:transparent;--pele-fg:var(--paper);--pele-muted:var(--paper-3);--pele-line:var(--paper-2);--pele-surface:rgba(var(--paper-rgb), .05);--pele-surface-alt:rgba(var(--paper-rgb), .1);--pele-border:var(--paper-3);--pele-accent:var(--amber);--pele-font:var(--cjk-font);--pele-font-mono:var(--mono-font);--pele-radius:2px;--mm-export-bg:var(--ground)}.mm-theme-light{--pele-bg:transparent;--pele-fg:#1f1d1a;--pele-muted:#6f6b64;--pele-line:#3a3732;--pele-surface:#f4f1ea;--pele-surface-alt:#e8e4da;--pele-border:#a8a39a;--pele-accent:#9a6b1f;--pele-font:var(--cjk-font);--pele-font-mono:var(--mono-font);--pele-radius:2px;--mm-export-bg:#fbf9f4}.mermaid-render.mm-theme-light svg{background:var(--mm-export-bg)}.mm-role-ok :is(rect,path,polygon,ellipse),.mm-role-mark :is(rect,path,polygon,ellipse){fill:var(--pele-surface-alt);stroke:var(--pele-fg)}.mm-role-alt :is(rect,path,polygon,ellipse){fill:#0000;stroke:var(--pele-muted)}.mm-role-alt .pele-label{fill:var(--pele-muted)}.mm-role-bad :is(rect,path,polygon,ellipse){fill:#0000;stroke:var(--pele-muted);stroke-dasharray:2 3}.mm-role-bad .pele-label{fill:var(--pele-muted);opacity:.8}.mm-mark-dot{fill:var(--amber);filter:drop-shadow(0 0 4px rgba(var(--amber-rgb), .7))}.mm-sandbox--static{padding:var(--space-8);justify-content:center;align-items:center;display:flex}.mm-sandbox--static .mermaid-render svg{max-width:100%;height:auto;max-height:100%}.ac{gap:var(--space-6);font-family:var(--serif);color:var(--paper);display:grid}.ac-head{justify-content:space-between;align-items:baseline;gap:var(--space-3);flex-wrap:wrap;display:flex}.ac-head h2{font-size:var(--fs-22);margin:0;font-weight:600}.ac-head span{font-family:var(--mono-font);font-size:var(--fs-10);letter-spacing:var(--ls-12);color:var(--paper-3)}.ac-empty,.ac-closed{font-size:var(--fs-14);color:var(--paper-2);margin:0}.ac-closed{padding-top:var(--space-4);font-family:var(--mono-font);font-size:var(--fs-11);color:var(--paper-3);border-top:1px solid var(--rule)}:where(.ac-lang,.ac-font) :where(button){all:unset;box-sizing:border-box;cursor:pointer}.ac-lang{gap:var(--space-3);display:inline-flex;position:relative}.ac-lang button{color:var(--paper-3);transition:color var(--dur-200) ease;position:relative}.ac-lang button:hover,.ac-lang button:focus-visible{color:var(--paper-2)}.ac-lang button[aria-current=true]{color:var(--paper)}.ac-lang-dot{bottom:calc(-1 * var(--space-2));background:var(--amber);border-radius:var(--r-round);pointer-events:none;width:3px;height:3px;transition:left var(--dur-500) var(--easing-out);position:absolute;left:0;translate:-50%}.ac-lang .is-na{opacity:.45}.ar-font-narrow{display:none}@media (width<=1099px){.ar-font-narrow{display:inline-block}}.ac-font{pointer-events:auto;display:inline-block;position:relative}.ac-font-btn{font-family:var(--mono-font);font-size:var(--fs-10);letter-spacing:var(--ls-6);color:var(--paper-3);white-space:nowrap;transition:color var(--dur-200) ease}.ac-font-btn:hover,.ac-font-btn:focus-visible,.ac-font-btn[aria-expanded=true]{color:var(--paper)}.ac-font-list{bottom:calc(100% + var(--space-2));gap:var(--space-1);white-space:nowrap;animation:ac-up var(--dur-300) var(--easing-out);margin:0;padding:0;list-style:none;display:grid;position:absolute;left:0}@keyframes ac-up{0%{opacity:0;transform:translateY(var(--space-1))}}.ac-font-list button{padding-left:var(--space-3);font-size:var(--fs-14);color:var(--paper-2);transition:color var(--dur-200) ease;position:relative}.ac-font-list button:hover,.ac-font-list button:focus-visible,.ac-font-list button[aria-pressed=true]{color:var(--paper)}.ac-font-list button[aria-pressed=true]:before{content:"";background:var(--amber);border-radius:var(--r-round);width:3px;height:3px;position:absolute;top:50%;left:0;translate:0 -50%}.rs{font-family:var(--serif);color:var(--paper);display:grid;position:relative}.rs-sky{width:100%;height:120px;display:block}.rs-row{border:0;grid-template-columns:repeat(3,minmax(0,1fr));min-inline-size:0;margin:0;padding:0;display:grid}.rs-row button{all:unset;box-sizing:border-box;justify-self:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);font-size:var(--fs-13);color:var(--paper-2);cursor:pointer;border:1px solid var(--rule);transition:color var(--dur-200) ease, border-color var(--dur-200) ease;align-items:baseline;display:inline-flex}.rs-row em{font-family:var(--mono-font);font-size:var(--fs-11);color:var(--paper-3);font-style:normal}.rs-row button:hover,.rs-row button:focus-visible{color:var(--paper);border-color:var(--paper-2)}.rs-row button[aria-pressed=true]{color:var(--paper);border-color:var(--amber)}.rs-row button[aria-pressed=true] em{color:var(--amber)}.blog-image-clickable{cursor:zoom-in;border-radius:var(--r-2);max-width:100%}.blog-image-exif--visible{opacity:1;transform:translate(-50%)translateY(0)}.blog-image-exif span{align-items:center;gap:var(--space-1-5);letter-spacing:var(--ls-1);display:inline-flex}.image-lightbox-content{display:contents}.image-lightbox-img{object-fit:contain;border-radius:var(--r-2);cursor:default;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;background-position:50%;background-size:cover;max-width:92vw;max-height:86vh}.blog-image-zoom.is-zoomed img{visibility:hidden}.image-lightbox-cap{max-width:min(92vw,720px);margin:var(--space-3) 0 0;font-size:var(--fs-13);line-height:var(--lh-170);color:var(--paper-3);text-align:center;cursor:default}body:has(.image-lightbox-overlay) .snav{visibility:hidden}.image-lightbox-close{z-index:2;border:1px solid var(--paper-3);border-radius:var(--r-round);width:40px;height:40px;color:var(--paper-2);cursor:pointer;transition:border-color var(--dur-200) ease, color var(--dur-200) ease;background:0 0;padding:0;position:fixed;top:1.5rem;right:1.5rem}.image-lightbox-close:before,.image-lightbox-close:after{content:"";background:currentColor;width:14px;height:1px;position:absolute;top:50%;left:50%}.image-lightbox-close:before{transform:translate(-50%,-50%)rotate(45deg)}.image-lightbox-close:after{transform:translate(-50%,-50%)rotate(-45deg)}.image-lightbox-close:hover,.image-lightbox-close:focus-visible{border-color:var(--paper);color:var(--paper);outline:none}.image-lightbox-overlay.is-closing{background-color:#0000}.image-lightbox-overlay.is-closing :is(.image-lightbox-cap,.image-lightbox-close){opacity:0}.image-lightbox-cap,.image-lightbox-close{transition:opacity var(--dur-250) ease}.blog-post-container ::-webkit-scrollbar{width:5px;height:5px}.blog-post-container ::-webkit-scrollbar-track{background:0 0}.blog-post-container ::-webkit-scrollbar-thumb{background:rgba(var(--brand-rgb), .25);border-radius:var(--r-full)}.blog-post-container ::-webkit-scrollbar-thumb:hover{background:rgba(var(--brand-rgb), .45)}.blog-post-container *{scrollbar-width:thin;scrollbar-color:var(--white-15) transparent}.blog-post-container{min-height:100vh;padding-bottom:var(--space-16);background:0 0;position:relative;overflow:clip}.blog-post-dim-overlay{background:rgba(var(--surface-0-rgb), .8);pointer-events:none;z-index:0;position:absolute;inset:0}.blog-post-container .post-content{-webkit-user-select:none;user-select:none}.post-title{font-size:var(--fs-36);color:#fff;font-weight:700;line-height:var(--lh-130);letter-spacing:var(--ls-n2)}.post-content{color:var(--white-80);font-size:var(--fs-16);line-height:var(--lh-185);letter-spacing:var(--ls-1);hanging-punctuation:first allow-end last;text-spacing-trim:trim-start;text-autospace:normal;line-break:strict;text-wrap:pretty}.post-content :is(h2,h3,h4){text-wrap:balance}.post-content sup a[data-fn-content]:after{content:attr(data-fn-content);min-width:220px;max-width:min(420px,80vw);padding:var(--space-2-5) var(--space-3-5);background:rgba(var(--surface-1-rgb), .95);border:1px solid rgba(var(--brand-rgb), .35);border-radius:var(--r-10);color:var(--white-80);font-size:var(--fs-14);font-weight:400;line-height:var(--lh-160);letter-spacing:var(--ls-1);text-align:left;white-space:normal;pointer-events:none;opacity:0;visibility:hidden;transition:opacity var(--dur-200) ease, transform var(--dur-200) ease, visibility var(--dur-200);box-shadow:0 16px 40px var(--black-50), 0 0 24px rgba(var(--brand-rgb), .2);z-index:30;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(4px)}.post-content sup a[data-fn-content]:hover:after,.post-content sup a[data-fn-content]:focus-visible:after{opacity:1;visibility:visible;transform:translate(-50%)translateY(0)}.post-content h2{font-size:var(--fs-24);margin:var(--space-10) 0 var(--space-4);color:#fff;padding-bottom:var(--space-2);border-bottom:1px solid var(--white-06);font-weight:700}.post-content h3{font-size:var(--fs-20);margin:var(--space-8) 0 var(--space-3);color:var(--white-95);font-weight:600}.post-content h4{font-size:var(--fs-18);margin:var(--space-6) 0 var(--space-2-5);color:var(--white-90)}.post-content h1,.post-content h2,.post-content h3,.post-content h4{scroll-margin-top:6rem}.post-content p{margin:0 0 var(--space-5)}.post-content a{color:var(--paper);-webkit-text-decoration:underline dotted;text-decoration:underline dotted;-webkit-text-decoration-color:var(--paper-3);text-decoration-color:var(--paper-3);text-underline-offset:4px;transition:text-decoration-color var(--dur-200)}.post-content a:hover{-webkit-text-decoration-color:var(--paper);text-decoration-color:var(--paper)}.post-content blockquote{margin:var(--space-6) 0;padding:var(--space-0-5) 0 var(--space-0-5) var(--space-4-5);border-left:1px dotted var(--paper-3);color:var(--paper-2)}.post-content ul,.post-content ol{padding-left:var(--space-6);margin:var(--space-4) 0}.post-content ul:not([class]){list-style:outside}.post-content ol:not([class]){list-style:decimal}.post-content :is(ul,ol):not([class]) ul:not([class]){list-style:circle}.post-content li{margin:var(--space-1-5) 0}.post-content code{background:rgba(var(--paper-rgb), .07);color:var(--paper);border-radius:var(--r-2);font-size:.86em;font-family:var(--mono-font);padding:.1em .38em}.post-content img{border-radius:var(--r-2);max-width:100%;margin:0}.post-content hr{border:none;border-top:1px solid var(--rule);margin:var(--space-8) 0}.post-content table{border-collapse:collapse;width:100%;margin:var(--space-6) 0;font-size:var(--fs-14);line-height:var(--lh-160)}.post-content th,.post-content td{padding:var(--space-2-5) var(--space-3-5) var(--space-2-5) 0;text-align:left;vertical-align:top;border:0}.post-content th{border-bottom:1px solid var(--rule);font-family:var(--mono-font);font-size:var(--fs-11);letter-spacing:var(--ls-6);color:var(--paper-3);padding-top:0;font-weight:400}.post-content td{border-bottom:1px dotted var(--rule)}.post-extras{margin-top:var(--space-8);padding-top:var(--space-8);border-top:1px solid var(--white-06)}@media (width<=950px){.post-title{font-size:var(--fs-24)}}.blog-signature{margin-top:var(--space-4);margin-bottom:var(--space-4);justify-content:flex-end;width:100%;margin-left:auto;display:flex}.blog-signature svg{width:10rem;max-width:100%}.blog-post-container .code-block-wrapper,.blog-post-container .terminal-block{-webkit-user-select:text;user-select:text}.blog-post-container .mdx-video,.blog-post-container video,.blog-post-container audio{-webkit-user-select:auto;user-select:auto}.blog-post-container.loading,.blog-post-container.error{justify-content:center;align-items:center;min-height:100vh;display:flex}.blog-toast{background:rgba(var(--surface-1-rgb), .95);color:#fff;padding:var(--space-2-5) var(--space-4-5);border-radius:var(--r-full);border:1px solid rgba(var(--brand-rgb), .3);box-shadow:var(--elev-4);font-size:var(--fs-14);z-index:var(--z-toast);-webkit-backdrop-filter:blur(var(--blur-12));backdrop-filter:blur(var(--blur-12));position:fixed;top:80px;left:50%;transform:translate(-50%)}.posts-nav{padding:var(--space-10) 0 var(--space-2) 0}.prev-next-nav{gap:var(--space-3-5);margin:var(--space-12) 0 var(--space-6);grid-template-columns:1fr 1fr;display:grid}.prev-next-card{gap:var(--space-1-5);padding:var(--space-3-5) var(--space-4-5);border-radius:var(--r-12);background:var(--white-02);border:1px solid var(--white-06);color:var(--white-80);transition:border-color var(--dur-300), background var(--dur-300), transform var(--dur-300), box-shadow var(--dur-300);flex-direction:column;min-height:72px;text-decoration:none;display:flex}.prev-next-card:hover{border-color:rgba(var(--brand-rgb), .35);background:rgba(var(--brand-rgb), .06);box-shadow:0 0 20px rgba(var(--brand-rgb), .08), 0 8px 24px var(--black-25);transform:translateY(-2px)}.prev-next-next{text-align:right;align-items:flex-end}.prev-next-label{font-size:var(--fs-12);color:var(--white-40);letter-spacing:var(--ls-4)}.prev-next-card:hover .prev-next-label{color:var(--brand-light)}.prev-next-title{font-size:var(--fs-16);color:var(--white-90);font-weight:500;line-height:var(--lh-140);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.prev-next-placeholder{display:block}@media (width<=640px){.prev-next-nav{grid-template-columns:1fr}}.series-nav{margin:var(--space-10) 0 var(--space-6);padding:var(--space-5-5) var(--space-6);background:rgba(var(--brand-rgb), .06);border:1px solid rgba(var(--brand-rgb), .2);border-radius:var(--r-12);-webkit-backdrop-filter:blur(var(--blur-8));backdrop-filter:blur(var(--blur-8))}.series-nav-header{gap:var(--space-1);margin-bottom:var(--space-3-5);padding-bottom:var(--space-3-5);border-bottom:1px dashed var(--white-08);flex-direction:column;display:flex}.series-nav-label{font-size:var(--fs-11);letter-spacing:var(--ls-18);text-transform:uppercase;color:var(--brand-light)}.series-nav-name{font-size:var(--fs-18);background:linear-gradient(135deg, var(--lavender-soft) 0%, var(--brand) 60%, var(--magenta) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0;font-weight:600}.series-nav-progress{font-size:var(--fs-12);color:var(--white-55)}.series-nav-list{gap:var(--space-2);counter-reset:series-counter;flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.series-nav-item{align-items:center;gap:var(--space-3);padding:var(--space-1-5) var(--space-2);border-radius:var(--r-8);transition:background var(--dur-200) ease;grid-template-columns:28px 1fr;display:grid}.series-nav-item:hover{background:var(--white-04)}.series-nav-num{border-radius:var(--r-6);background:var(--white-06);width:26px;height:26px;color:var(--white-55);font-size:var(--fs-12);justify-content:center;align-items:center;font-weight:600;display:inline-flex}.series-nav-title{color:var(--white-80);font-size:var(--fs-16);line-height:var(--lh-150);transition:color var(--dur-200) ease;text-decoration:none}a.series-nav-title:hover{color:var(--brand-light)}.series-nav-item.is-current{background:rgba(var(--brand-rgb), .1)}.series-nav-item.is-current .series-nav-num{background:linear-gradient(135deg, var(--brand), var(--magenta));color:#fff}.series-nav-item.is-current .series-nav-title{color:var(--lavender-soft);font-weight:600}.post-content.drop-cap-first>p:first-of-type:first-letter{float:left;color:var(--post-accent);text-shadow:0 0 20px var(--post-accent-glow);margin-top:.05em;margin-right:.1em;font-family:Georgia,Noto Serif SC,Noto Serif TC,serif;font-size:3.8em;font-weight:700;line-height:.8}.post-content .footnotes{margin-top:var(--space-12);padding-top:var(--space-6);border-top:1px dashed var(--white-15);font-size:var(--fs-14);color:var(--white-70)}.post-content .footnotes h2{font-size:var(--fs-16);letter-spacing:var(--ls-6);text-transform:uppercase;color:var(--white-50);margin-bottom:var(--space-3)}.post-content sup a[data-footnote-ref],.post-content a.footnote-ref,.post-content a[id^=user-content-fnref-]{padding:0 var(--space-1);margin:0 var(--space-px);border-radius:var(--r-4);background:rgba(var(--brand-rgb), .1);color:var(--brand-light);transition:background var(--dur-200) ease;font-size:.78em;font-weight:600;text-decoration:none;display:inline-block;position:relative}.post-content sup a[data-footnote-ref]:hover,.post-content a.footnote-ref:hover{background:rgba(var(--brand-rgb), .3);color:#fff}::view-transition-old(root){animation:.2s ease-out both blogFadeOut}::view-transition-new(root){animation:blogFadeIn .26s var(--easing-standard) both}@keyframes blogFadeOut{to{opacity:0}}@keyframes blogFadeIn{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){::view-transition-old(root){animation:none}::view-transition-new(root){animation:none}}.post-content .markdown-alert{padding:var(--space-0-5) 0 var(--space-0-5) var(--space-4-5);margin:var(--space-6) 0;border-left:1px solid var(--paper-3);color:var(--paper-2)}.post-content .markdown-alert-title{margin-bottom:var(--space-1-5);font-family:var(--mono-font);font-size:var(--fs-11);letter-spacing:var(--ls-12);color:var(--paper-3);font-weight:400;display:block}.post-content .markdown-alert-title svg{display:none}.post-content :is(.markdown-alert-important,.markdown-alert-warning,.markdown-alert-caution){border-left-color:var(--paper)}.post-content :is(.markdown-alert-important,.markdown-alert-warning,.markdown-alert-caution) .markdown-alert-title{align-items:center;gap:var(--space-2);color:var(--paper-2);display:flex}.post-content :is(.markdown-alert-important,.markdown-alert-warning,.markdown-alert-caution) .markdown-alert-title:before{content:"";border-radius:var(--r-round);background:var(--amber);width:4px;height:4px;box-shadow:0 0 6px rgba(var(--amber-rgb), .7)}.post-content .markdown-alert p{margin:var(--space-1) 0;color:inherit;font-size:var(--fs-16)}.post-content .markdown-alert p:last-child{margin-bottom:0}.heading-anchor{color:var(--post-accent);opacity:0;transition:opacity var(--dur-200) ease;-webkit-user-select:none;user-select:none;border-bottom:none;margin-left:.4em;font-weight:400;text-decoration:none}.post-content h1:hover .heading-anchor,.post-content h2:hover .heading-anchor,.post-content h3:hover .heading-anchor,.post-content h4:hover .heading-anchor{opacity:.5}.heading-anchor:hover,.heading-anchor:focus-visible{opacity:1;border-bottom:none}.blog-image-wrapper{margin:var(--space-6) auto;flex-direction:column;align-items:center;width:fit-content;max-width:100%;display:flex;position:relative}.blog-image-exif{align-items:center;gap:var(--space-3);padding:var(--space-1-5) var(--space-3-5);background:rgba(var(--ground-rgb), .85);border:1px solid var(--rule);font-family:var(--mono-font);font-size:var(--fs-11);color:var(--paper-2);white-space:nowrap;pointer-events:none;z-index:5;opacity:0;max-width:95%;transition:opacity var(--dur-400) ease, transform var(--dur-400) var(--easing-standard);display:flex;position:absolute;bottom:8px;left:50%;overflow:hidden;transform:translate(-50%)translateY(10px)}.image-lightbox-overlay{z-index:var(--z-fullscreen);background:rgba(var(--ground-rgb), .95);cursor:zoom-out;animation:lightbox-in var(--dur-300) ease;transition:background-color var(--dur-300) ease;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@keyframes lightbox-in{0%{background-color:#0000}}.code-block-wrapper{border:1px solid var(--rule);border-radius:var(--r-6);background:rgba(var(--paper-rgb), .03);margin:var(--space-6) 0;overflow:hidden}.code-block-wrapper ::-webkit-scrollbar{width:6px;height:6px}.code-block-wrapper ::-webkit-scrollbar-track{background:var(--white-02);border-radius:var(--r-full)}.code-block-wrapper ::-webkit-scrollbar-thumb{background:var(--white-15);border-radius:var(--r-full);transition:background var(--dur-200)}.code-block-wrapper ::-webkit-scrollbar-thumb:hover{background:var(--white-20)}.code-block-wrapper *{scrollbar-width:thin;scrollbar-color:var(--white-15) transparent}.code-block-header{padding:var(--space-2) var(--space-4) 0;background:0 0;justify-content:space-between;align-items:center;display:flex}.language-name{font-family:var(--mono-font);font-size:var(--fs-10);color:var(--paper-3);letter-spacing:var(--ls-12)}.copy-button{color:var(--paper-3);padding:var(--space-1) 0;font-family:var(--mono-font);font-size:var(--fs-10);letter-spacing:var(--ls-12);cursor:pointer;transition:color var(--dur-200);background:0 0;border:0;border-radius:0}.copy-button:hover,.copy-button:focus,.copy-button:focus-visible{color:var(--paper);box-shadow:none;background:0 0;border-color:#0000;outline:none}.terminal-block{margin:var(--space-6) 0;border-radius:var(--r-6);background:rgba(var(--paper-rgb), .03);border:1px solid var(--rule);overflow:hidden}.terminal-bar{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--rule);display:flex}.terminal-glyph{color:var(--paper-3);font-family:var(--mono-font);font-size:var(--fs-11);letter-spacing:var(--ls-n4)}.terminal-title{font-size:var(--fs-10);letter-spacing:var(--ls-12);color:var(--paper-3);font-family:var(--mono-font)}.terminal-block .copy-button{margin-left:auto}.terminal-body{padding:var(--space-3-5) 0 var(--space-4);overflow-x:auto}.terminal-body .shiki-output,.terminal-body .shiki-fallback{margin:0}.terminal-body .shiki-output pre.shiki{padding:0 var(--space-4-5);font-size:var(--fs-14);line-height:var(--lh-170);font-family:var(--mono-font);box-sizing:border-box;width:max-content;min-width:100%;margin:0;background:0 0!important}.terminal-body .shiki-output code{background:0 0;border:0;padding:0;font-family:inherit;display:block}.terminal-body .shiki-fallback{padding:0 var(--space-4-5);color:var(--white-80);white-space:pre;font-size:var(--fs-14);line-height:var(--lh-170);font-family:var(--mono-font);margin:0}.terminal-block ::-webkit-scrollbar{height:7px}.terminal-block ::-webkit-scrollbar-thumb{background:var(--white-15);border-radius:var(--r-4)}.terminal-cursor-line{padding:var(--space-1) var(--space-4-5) 0;align-items:center;gap:.5em;display:flex}.terminal-prompt-sym{color:var(--paper-3);font-family:var(--mono-font);font-size:var(--fs-14)}.terminal-cursor{background:var(--amber);width:.4rem;height:1rem;animation:1.05s step-end infinite terminal-blink;display:inline-block}@keyframes terminal-blink{0%,50%{opacity:1}50.01%,to{opacity:0}}@media (prefers-reduced-motion:reduce){.terminal-cursor{opacity:.7;animation:none}}.code-surface-body .shiki-output,.code-surface-body .shiki-fallback{padding:var(--space-4-5) var(--space-5) var(--space-5);margin:0;overflow-x:auto}.code-surface-body .shiki-output .line{counter-increment:shiki-ln}@keyframes shikiPulse{0%,to{opacity:.55}50%{opacity:.9}}.code-surface-clip{transition:max-height var(--dur-400) var(--easing-standard);overflow:hidden}.code-surface-toggle:hover,.code-surface-toggle:focus,.code-surface-toggle:focus-visible{color:var(--paper);box-shadow:none;background:0 0;border-color:#0000;outline:none}.language-name{text-transform:none;align-items:center;display:inline-flex}.language-emoji{display:none}.subscribe-overlay{z-index:var(--z-modal);padding:var(--space-4);background:rgba(var(--ground-rgb), .75);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.subscribe-modal{gap:var(--space-4);width:min(400px,100%);padding:var(--space-8) var(--space-8) var(--space-6);background:rgba(var(--ground-rgb), .96);border:1px solid var(--rule);display:grid;position:relative}.subscribe-close{top:var(--space-3);right:var(--space-3);width:28px;height:28px;color:var(--paper-3);cursor:pointer;transition:color var(--dur-200) ease;background:0 0;border:0;padding:0;position:absolute}.subscribe-close:before,.subscribe-close:after{content:"";background:currentColor;width:12px;height:1px;position:absolute;top:50%;left:50%}.subscribe-close:before{transform:translate(-50%,-50%)rotate(45deg)}.subscribe-close:after{transform:translate(-50%,-50%)rotate(-45deg)}.subscribe-close:hover,.subscribe-close:focus-visible{color:var(--paper);outline:none}.subscribe-title{font-family:var(--serif);font-size:var(--fs-22);color:var(--paper);margin:0;font-weight:600}.subscribe-lead{margin:calc(-1 * var(--space-2)) 0 0;font-size:var(--fs-14);line-height:var(--lh-170);color:var(--paper-2)}.subscribe-email{font-family:var(--mono-font);font-size:var(--fs-13);color:var(--paper)}.subscribe-form{gap:var(--space-4);display:grid}.subscribe-field{gap:var(--space-1);display:grid}.subscribe-field span{font-family:var(--mono-font);font-size:var(--fs-10);letter-spacing:var(--ls-12);color:var(--paper-3)}.subscribe-field input{padding:var(--space-1) 0;font:inherit;font-size:var(--fs-16);color:var(--paper);border:0;border-bottom:1px solid var(--rule);appearance:none;background:0 0;border-radius:0;outline:none}.subscribe-field input:focus{border-bottom-color:var(--paper-2)}.subscribe-field input::placeholder{color:var(--paper-3)}.subscribe-actions{align-items:center;gap:var(--space-4);display:flex}.subscribe-submit{padding:var(--space-2) var(--space-4);font-size:var(--fs-14);color:var(--paper);border:1px solid var(--rule);cursor:pointer;transition:border-color var(--dur-200) ease;background:0 0;border-radius:0;justify-self:start}.subscribe-submit:hover,.subscribe-submit:focus-visible{border-color:var(--amber);outline:none}.subscribe-submit:disabled,.subscribe-quiet:disabled{opacity:.5;cursor:wait}.subscribe-quiet{font-size:var(--fs-13);color:var(--paper-3);text-decoration:underline;-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0}.subscribe-quiet:hover,.subscribe-quiet:focus-visible{color:var(--paper);outline:none}.subscribe-msg{font-size:var(--fs-13);color:var(--paper-2)}.subscribe-msg.error{color:var(--amber)}.subscribe-privacy{padding-top:var(--space-3);border-top:1px dotted var(--rule);font-family:var(--mono-font);font-size:var(--fs-10);letter-spacing:var(--ls-4);line-height:var(--lh-170);color:var(--paper-3);margin:0}.back-to-blog-link{align-items:center;gap:var(--space-2);margin-top:var(--space-6);padding:var(--space-2-5) var(--space-6);border-radius:var(--r-8);background:rgba(var(--brand-rgb), .15);border:1px solid rgba(var(--brand-rgb), .3);color:var(--post-accent);font-size:var(--fs-14);transition:all var(--dur-200);text-decoration:none;display:inline-flex}.back-to-blog-link:hover{background:rgba(var(--brand-rgb), .25)}.error-content{text-align:center;z-index:1;color:#fff}.error-icon{font-size:var(--fs-48);margin-bottom:var(--space-4)}.error-content h1{font-size:var(--fs-24);margin-bottom:var(--space-2)}.error-content p{color:var(--post-muted);margin-bottom:var(--space-4)}@keyframes post-enter{0%{transform:translateY(26px)}to{transform:translateY(0)}}.blog-image-zoom{font:inherit;color:inherit;cursor:zoom-in;background:0 0;border:none;max-width:100%;padding:0;display:block}.blog-image-zoom:hover,.blog-image-zoom:focus,.blog-image-zoom:focus-visible{box-shadow:none;background:0 0;border-color:#0000}.ar-page{--ar-col:680px;color:var(--paper)}.ar-col{z-index:1;width:min(var(--ar-col), calc(100% - var(--space-8)));padding-top:var(--page-top);margin-left:max(56px,50% - 560px);position:relative}.ar-col:before{content:"";inset:0 calc(-1 * var(--space-12));z-index:-1;background:rgba(var(--ground-rgb), .85);-webkit-mask-image:linear-gradient(to right, transparent, #000 var(--space-12), #000 calc(100% - var(--space-12)), transparent), linear-gradient(to bottom, transparent, #000 var(--space-24), #000 calc(100% - var(--space-24)), transparent);mask-image:linear-gradient(to right, transparent, #000 var(--space-12), #000 calc(100% - var(--space-12)), transparent), linear-gradient(to bottom, transparent, #000 var(--space-24), #000 calc(100% - var(--space-24)), transparent);pointer-events:none;position:absolute;-webkit-mask-composite:source-in;mask-composite:intersect}.ar-col.is-retuning,.ar-col.is-drawing{-webkit-mask-image:linear-gradient(to bottom, #000 calc(var(--scan,0px) - 2px), transparent calc(var(--scan,0px) + 24px));mask-image:linear-gradient(to bottom, #000 calc(var(--scan,0px) - 2px), transparent calc(var(--scan,0px) + 24px))}.ar-retune-line{z-index:var(--z-float);background:linear-gradient(to right, transparent, var(--paper-2) 12%, var(--paper-2) 88%, transparent);height:1px;box-shadow:0 0 10px rgba(var(--paper-rgb), .35);pointer-events:none;position:fixed;top:0}:where(.ar-page) :where(.ar-act button,.ar-act a,.ar-kick a,.ar-tags a,.ar-tags button,.ar-side a,.ar-same a){all:unset;box-sizing:border-box;cursor:pointer}.ar-page :is(.ar-act button,.ar-act a,.ar-kick a,.ar-tags a,.ar-tags button,.ar-side a,.ar-same a):focus-visible{outline:1px solid var(--paper-2);outline-offset:3px}.ar-label{margin:0 0 var(--space-3);font-family:var(--mono-font);font-size:var(--fs-10);letter-spacing:var(--ls-18);text-transform:uppercase;color:var(--paper-3)}.ar-head{gap:var(--space-2);margin-bottom:var(--space-12);display:grid}.ar-kick{gap:var(--space-3);font-size:var(--fs-13);color:var(--paper-2);margin:0;display:flex}.ar-kick a{transition:color var(--dur-200) ease}.ar-kick a:hover{color:var(--paper)}.ar-head h1{margin:var(--space-2) 0 0;font-size:var(--fs-36);font-weight:600;line-height:var(--lh-130);text-wrap:balance}.ar-sub{font-size:var(--fs-18);line-height:var(--lh-150);color:var(--paper-2);margin:0}.ar-meta{gap:var(--space-2) var(--space-5);margin-top:var(--space-3);font-family:var(--mono-font);font-size:var(--fs-11);color:var(--paper-3);flex-wrap:wrap;align-items:baseline;display:flex}.ar-tags{gap:var(--space-1) var(--space-4);font-size:var(--fs-12);color:var(--paper-3);flex-wrap:wrap;display:flex}.ar-tags button{transition:color var(--dur-200) ease}.ar-tags button:hover{color:var(--paper)}.ar-tags button[aria-expanded=true]{color:var(--paper);text-decoration:underline;-webkit-text-decoration-color:var(--amber);text-decoration-color:var(--amber);text-underline-offset:4px}.ar-tag-shelf{margin-top:var(--space-4);animation:ar-shelf var(--dur-400) var(--easing-out)}@keyframes ar-shelf{0%{opacity:0;transform:translateY(calc(-1 * var(--space-1)))}}.ar-tag-none{font-size:var(--fs-13);color:var(--paper-3);margin:0}.ar-notice{margin:0 0 var(--space-8);padding:var(--space-4) var(--space-5);background:linear-gradient(var(--paper-3), var(--paper-3)) left top / 12px 1px no-repeat, linear-gradient(var(--paper-3), var(--paper-3)) left top / 1px 12px no-repeat, linear-gradient(var(--paper-3), var(--paper-3)) right top / 12px 1px no-repeat, linear-gradient(var(--paper-3), var(--paper-3)) right top / 1px 12px no-repeat, linear-gradient(var(--paper-3), var(--paper-3)) left bottom / 12px 1px no-repeat, linear-gradient(var(--paper-3), var(--paper-3)) left bottom / 1px 12px no-repeat, linear-gradient(var(--paper-3), var(--paper-3)) right bottom / 12px 1px no-repeat, linear-gradient(var(--paper-3), var(--paper-3)) right bottom / 1px 12px no-repeat}.ar-notice-hd{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);font-family:var(--mono-font);font-size:var(--fs-10);letter-spacing:var(--ls-12);color:var(--amber);display:flex}.ar-notice-hd i{background:var(--amber);border-radius:var(--r-round);width:6px;height:6px}.ar-notice p{font-size:var(--fs-13);line-height:var(--lh-170);color:var(--paper-2);margin:0}.ar-notice a{margin-left:var(--space-2);color:var(--paper);text-decoration:underline;-webkit-text-decoration-color:var(--paper-3);text-decoration-color:var(--paper-3);text-underline-offset:3px;white-space:nowrap}.ar-notice a:hover,.ar-notice a:focus-visible{-webkit-text-decoration-color:var(--amber);text-decoration-color:var(--amber)}@property --cl{syntax:"<length>";inherits:false;initial-value:0}.ar-sum{--cl:0px;margin:0 0 var(--space-12);padding:var(--space-5) var(--space-6);background:linear-gradient(var(--paper-3), var(--paper-3)) left top / var(--cl) 1px no-repeat, linear-gradient(var(--paper-3), var(--paper-3)) left top / 1px var(--cl) no-repeat, linear-gradient(var(--paper-3), var(--paper-3)) right top / var(--cl) 1px no-repeat, linear-gradient(var(--paper-3), var(--paper-3)) right top / 1px var(--cl) no-repeat, linear-gradient(var(--paper-3), var(--paper-3)) left bottom / var(--cl) 1px no-repeat, linear-gradient(var(--paper-3), var(--paper-3)) left bottom / 1px var(--cl) no-repeat, linear-gradient(var(--paper-3), var(--paper-3)) right bottom / var(--cl) 1px no-repeat, linear-gradient(var(--paper-3), var(--paper-3)) right bottom / 1px var(--cl) no-repeat;transition:--cl var(--dur-700) ease;position:relative}.ar-sum.is-on{--cl:12px}.ar-sum .c{opacity:0;color:var(--paper);transition:opacity var(--dur-500) ease, color var(--dur-1000) ease}.ar-sum .c.in,.ar-sum.is-plain .c{opacity:1;color:inherit}.ar-sum.is-plain .c{transition:none}.ar-sum-ai{opacity:0;transition:opacity var(--dur-500) ease}.ar-sum.is-done .ar-sum-ai{opacity:1}.ar-sum .ar-link{color:inherit;background:linear-gradient(var(--paper-3), var(--paper-3)) 0 100% / 0 1px no-repeat;transition:background-size var(--dur-700) var(--easing-out), color var(--dur-200) ease;text-decoration:none}.ar-sum.is-done .ar-link{background-size:100% 1px}.ar-sum .ar-link:hover,.ar-sum .ar-link:focus-visible{color:var(--paper);background-image:linear-gradient(var(--paper), var(--paper))}.ar-gut{top:var(--space-5);font-family:var(--mono-font);font-size:var(--fs-11);color:var(--paper-3);position:absolute;left:-56px}.ar-sum-hd{gap:var(--space-3);margin-bottom:var(--space-2);font-family:var(--mono-font);font-size:var(--fs-10);letter-spacing:var(--ls-12);color:var(--paper-3);display:flex}.ar-sum p{font-size:var(--fs-14);line-height:var(--lh-185);color:var(--paper-2);margin:0}.ar-page .post-content{counter-reset:ch;color:rgba(var(--paper-rgb), .9)}.ar-page .post-content h2{counter-increment:ch;color:var(--paper);border-bottom:0;padding-bottom:0;position:relative}.ar-page .post-content h2:before{content:counter(ch, decimal-leading-zero);font-family:var(--mono-font);font-size:var(--fs-11);color:var(--paper-3);font-weight:400;position:absolute;top:.55em;left:-56px}.ar-page .post-content :is(h3,h4){color:var(--paper)}.ar-page .post-content a{color:var(--paper);text-decoration:underline;-webkit-text-decoration-color:var(--paper-3);text-decoration-color:var(--paper-3);text-underline-offset:3px;transition:text-decoration-color var(--dur-200) ease}.ar-page .post-content a:hover{color:var(--paper);-webkit-text-decoration-color:var(--amber);text-decoration-color:var(--amber)}.ar-page .post-content.drop-cap-first>p:first-of-type:first-letter{font-family:var(--serif);color:var(--paper);text-shadow:none;font-weight:600}.ar-col,.ar-side{transition:opacity var(--dur-300) ease}.ar-page.is-leaving :is(.ar-col,.ar-side){opacity:0}.ar-page.is-fetching .ar-col{opacity:.35}.ar-page.is-swapped .ar-col{animation:ar-swap .6s var(--easing-out) both}@keyframes ar-swap{0%{opacity:0;translate:0 var(--space-4)}to{opacity:1;translate:0}}html:is([data-pt=out],[data-pt=fly]) .ar-page.is-unfold :is(.ar-col,.ar-side){clip-path:inset(0 0 0 100%)}html:not([data-pt=out],[data-pt=fly]) .ar-page.is-unfold .ar-col{animation:ar-unfold .9s var(--easing-out) both}@keyframes ar-unfold{0%{clip-path:inset(0 0 0 100%);translate:var(--space-6) 0}to{clip-path:inset(0);translate:0}}.ar-side{top:50%;left:var(--space-4);z-index:2;position:fixed;translate:0 -50%}.ar-side ol{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.ar-side-a{gap:var(--space-3);height:14px;font-size:var(--fs-13);color:var(--paper-2);transition:color var(--dur-200) ease;align-items:center;display:flex}.ar-side-a i{width:var(--len);background:var(--paper-3);height:1px;transition:background var(--dur-200) ease;flex:none}.ar-side-a span{white-space:nowrap;text-overflow:ellipsis;max-width:0;text-shadow:0 0 8px var(--ground);opacity:0;transition:max-width var(--dur-300) var(--easing-out), opacity var(--dur-200) ease;overflow:hidden}.ar-side:is(:hover,:focus-within) .ar-side-a span{opacity:1;max-width:260px}.ar-side:before{content:"";inset:calc(-1 * var(--space-6)) calc(-1 * var(--space-24)) calc(-1 * var(--space-6)) calc(-1 * var(--space-4));z-index:-1;background:linear-gradient(90deg, var(--ground) 70%, rgba(var(--ground-rgb), 0));opacity:0;pointer-events:none;transition:opacity var(--dur-300) ease;position:absolute}.ar-side:is(:hover,:focus-within):before{opacity:1}.ar-side-a:hover{color:var(--paper)}.ar-side .is-on i{background:var(--amber)}.ar-side .is-on .ar-side-a{color:var(--paper)}.ar-side-cat{gap:var(--space-px);margin:var(--space-5) 0 0;font-size:var(--fs-12);color:var(--paper-2);opacity:0;transition:opacity var(--dur-200) ease;display:grid}.ar-side-cat span{font-family:var(--mono-font);font-size:var(--fs-10);color:var(--paper-3)}.ar-side:is(:hover,:focus-within) .ar-side-cat{opacity:1}.ar-end{gap:var(--space-12);margin-top:var(--space-12);padding-top:var(--space-8);border-top:1px solid var(--rule);display:grid}.ar-act{gap:var(--space-2) var(--space-6);font-size:var(--fs-14);color:var(--paper-2);flex-wrap:wrap;display:flex}.ar-act>*{transition:color var(--dur-200) ease}.ar-act>:hover{color:var(--paper)}.ar-act .is-on{color:var(--amber)}.ar-act em{margin-left:var(--space-1);font-family:var(--mono-font);font-size:var(--fs-11);font-style:normal}.ar-same ul{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.ar-same li{grid-template-columns:48px minmax(0,1fr);align-items:baseline;display:grid}.ar-same time{font-family:var(--mono-font);font-size:var(--fs-11);color:var(--paper-3)}.ar-same a{font-size:var(--fs-14);color:var(--paper-2);transition:color var(--dur-200) ease}.ar-same a:hover{color:var(--paper)}.ar-page .prev-next-nav{gap:var(--space-6);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.ar-page .prev-next-card{gap:var(--space-1);box-shadow:none;color:var(--paper-2);transition:color var(--dur-200) ease;background:0 0;border:0;padding:0;text-decoration:none;display:grid}.ar-page .prev-next-card:hover{color:var(--paper);background:0 0;transform:none}.ar-page .prev-next-next{text-align:right}.ar-page .prev-next-label{font-family:var(--mono-font);font-size:var(--fs-10);letter-spacing:var(--ls-12);color:var(--paper-3)}.ar-page .prev-next-title{font-size:var(--fs-14);color:inherit;font-weight:600}@media (width<=1099px){.ar-col{margin:0 auto}.ar-side,.ar-gut,.ar-page .post-content h2:before{display:none}.ar-head h1{font-size:var(--fs-28)}}@media (width<=1279px){.ar-side{display:none}}.signature-svg-container svg{height:auto;display:block;overflow:visible}.signature-path{fill:none;stroke:var(--paper-2);stroke-width:7px;stroke-linecap:round;stroke-linejoin:round}.signature-dot{fill:var(--paper-2);opacity:0;transition:opacity var(--dur-150) var(--easing-out)}.signature-dot.is-on,.is-written .signature-dot{opacity:1}.signature-pen{opacity:0;pointer-events:none}.signature-pen-tip{fill:var(--amber)}.signature-pen-glow{fill:rgba(var(--amber-rgb), .18)}.is-written .signature-pen{display:none}.lhp-card{z-index:var(--z-menu);background:rgba(var(--ground-rgb), .96);border:1px solid var(--rule);pointer-events:auto;width:300px;position:fixed;overflow:hidden}.lhp-img,.lhp-fallback,.lhp-skel{width:100%;height:158px;display:block}.lhp-img{object-fit:cover;background:rgba(var(--paper-rgb), .03);border-bottom:1px solid var(--rule)}.lhp-fallback{justify-content:center;align-items:center;gap:var(--space-2-5);background:rgba(var(--paper-rgb), .03);border-bottom:1px solid var(--rule);flex-direction:column;display:flex}.lhp-favicon{border-radius:var(--r-2);filter:grayscale();opacity:.7;width:24px;height:24px}.lhp-site{font-family:var(--mono-font);font-size:var(--fs-11);color:var(--paper-3);letter-spacing:var(--ls-6)}.lhp-skel{background:linear-gradient(90deg, var(--white-02) 25%, var(--white-06) 37%, var(--white-02) 63%);background-size:200% 100%;animation:1.5s ease-in-out infinite bp-shimmer}.lhp-body{padding:var(--space-3) var(--space-3-5) var(--space-3)}.lhp-title{font-size:var(--fs-14);color:var(--paper);font-weight:400;line-height:var(--lh-140);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.lhp-desc{margin-top:var(--space-1);font-size:var(--fs-13);color:var(--paper-3);line-height:var(--lh-150);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}@media (prefers-reduced-motion:reduce){.lhp-skel{animation:none}}@media (hover:none){.lhp-card{display:none}}.vp{z-index:3;width:fit-content;max-width:100%;margin:0 auto;line-height:0;position:relative}.vp--sized{width:auto;height:auto;max-height:min(70vh,620px)}.vp-video{cursor:pointer;background:0 0;display:block}.vp--sized .vp-video{object-fit:contain;width:100%;height:100%}.vp:not(.vp--sized):not(.vp--fullscreen) .vp-video{width:auto;max-width:100%;max-height:min(70vh,620px)}.vp--fullscreen{background:#000;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.vp--fullscreen .vp-video{max-width:100vw;max-height:100vh}.vp-bigplay{z-index:2;width:3.4rem;height:3.4rem;padding:0 0 0 var(--space-0-5);border:1px solid var(--paper-2);border-radius:var(--r-round);background:rgba(var(--ground-rgb), .35);color:var(--paper);font-size:var(--fs-16);cursor:pointer;box-shadow:none;transition:border-color var(--dur-150) ease, background var(--dur-150) ease;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.vp-bigplay:hover,.vp-bigplay:focus,.vp-bigplay:focus-visible{background:rgba(var(--ground-rgb), .55);border-color:var(--paper);box-shadow:none;outline:none}.vp-bigplay:focus:not(:focus-visible){background:rgba(var(--ground-rgb), .35);border-color:var(--paper-2)}.vp-bar{z-index:2;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);border-radius:var(--r-2);background:rgba(var(--ground-rgb), .78);border:1px solid var(--rule);line-height:var(--lh-100);opacity:0;transition:opacity var(--dur-200) ease, transform var(--dur-200) ease;pointer-events:none;display:flex;position:absolute;bottom:.5rem;left:.5rem;right:.5rem;transform:translateY(4px)}.vp-bar--show{opacity:1;pointer-events:auto;transform:none}.vp-btn{border-radius:var(--r-2);width:1.85rem;height:1.85rem;box-shadow:none;color:var(--paper-2);font-size:var(--fs-13);cursor:pointer;transition:background var(--dur-150) ease, color var(--dur-150) ease;background:0 0;border:0;outline:none;flex:none;justify-content:center;align-items:center;padding:0;text-decoration:none;display:inline-flex}.vp .vp-btn{border-bottom:none}.vp-btn:hover,.vp-btn:focus,.vp-btn:active,.vp-btn:focus-visible{color:var(--paper);box-shadow:none;background:0 0;border-color:#0000;outline:none}.vp-btn:focus:not(:focus-visible){color:var(--paper-2);background:0 0}.vp-btn:focus-visible{outline:1px solid var(--paper-3);outline-offset:-1px}a.vp-btn,a.vp-btn:hover,a.vp-btn:focus,a.vp-btn:active{color:var(--paper-2);text-shadow:none;text-decoration:none}a.vp-btn:hover,a.vp-btn:focus-visible{color:var(--paper)}.vp-progress{cursor:pointer;outline:none;flex:auto;align-items:center;min-width:3rem;height:16px;display:flex;position:relative}.vp-progress-track,.vp-progress-fill{height:1px;position:absolute;left:0}.vp-progress-track{background:var(--paper-3);right:0}.vp-progress-fill{background:var(--paper);height:2px}.vp-progress-knob{border-radius:var(--r-round);background:var(--amber);width:7px;height:7px;box-shadow:0 0 8px rgba(var(--amber-rgb), .6);transition:transform var(--dur-150) ease;position:absolute;transform:translate(-50%)}.vp-progress:hover .vp-progress-knob,.vp-progress:focus-visible .vp-progress-knob{transform:translate(-50%)scale(1.3)}.vp-progress:focus-visible .vp-progress-track{background:var(--paper-2)}.vp-time{font-family:var(--mono-font);font-size:var(--fs-10);font-variant-numeric:tabular-nums;color:var(--paper-3);white-space:nowrap;flex:none}@media (width<=480px){.vp-time{display:none}}.vp-diag{margin:var(--space-3) 0 0;padding:var(--space-3);border:1px solid var(--white-15);border-radius:var(--r-8);background:var(--black-55);max-height:22rem;color:var(--white-80);font-size:var(--fs-11);line-height:var(--lh-150);white-space:pre-wrap;word-break:break-all;-webkit-user-select:text;user-select:text;overflow:auto}.vp-diag-btn{margin:var(--space-3) auto 0;padding:var(--space-1-5) var(--space-3-5);border-radius:var(--r-8);font-size:var(--fs-12);display:block}.mdx-note{margin:var(--space-7) 0;padding:var(--space-0-5) 0 var(--space-0-5) var(--space-4-5);border-left:1px solid var(--paper-3)}.mdx-note-label{margin-bottom:var(--space-1-5);font-family:var(--mono-font);font-size:var(--fs-11);letter-spacing:var(--ls-12);color:var(--paper-3)}.mdx-note-quote{display:none}.mdx-note-content{color:var(--paper-2);font-size:var(--fs-16);line-height:var(--lh-170)}.mdx-note-content>:first-child{margin-top:0}.mdx-note-content>:last-child{margin-bottom:0}.annot{font:inherit;color:inherit;text-align:inherit;cursor:help;background:0 0;border:none;outline:none;padding:0;display:inline;position:relative}.annot-text{border-bottom:1px dotted var(--paper-3);padding-bottom:var(--space-px);position:relative}.annot-text:after{content:"";background:var(--paper);transform-origin:0;height:1px;transition:transform var(--dur-300) var(--easing-standard);position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.annot:hover .annot-text:after,.annot:focus-visible .annot-text:after,.annot[data-open=true] .annot-text:after{transform:scaleX(1)}.annot-card{z-index:30;width:max-content;min-width:11rem;max-width:19rem;padding:var(--space-3) var(--space-3-5);--annot-bg-rgb:var(--ground-rgb);background:rgba(var(--annot-bg-rgb), .96);border:1px solid var(--rule);box-shadow:none;color:var(--paper-2);font-size:var(--fs-13);line-height:var(--lh-160);text-align:left;white-space:normal;opacity:0;transform-origin:0 100%;pointer-events:none;transition:opacity var(--dur-200) ease, transform var(--dur-200) var(--easing-back);border-radius:0;position:absolute;bottom:calc(100% + 9px);left:0;transform:translateY(6px)scale(.98)}.annot:hover .annot-card,.annot:focus-within .annot-card,.annot[data-open=true] .annot-card{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.annot-card:after{content:"";border:6px solid #0000;border-top-color:rgba(var(--annot-bg-rgb), .95);position:absolute;top:100%;left:1.1rem}.annot-card-label{font-family:var(--mono-font);font-size:var(--fs-10);letter-spacing:var(--ls-12);color:var(--paper-3);margin-bottom:var(--space-1);display:block}.annot-card-body{display:block}.annot-card--portal{opacity:1;pointer-events:auto;animation:.16s annot-portal-in;position:fixed;bottom:auto;left:auto;transform:translateY(-100%)}.annot-card--portal.annot-card--below{transform:none}@keyframes annot-portal-in{0%{opacity:0}to{opacity:1}}.annot-card--below:after{border-top-color:#0000;border-bottom-color:rgba(var(--annot-bg-rgb), .95);top:auto;bottom:100%}.spoiler{font:inherit;color:inherit;text-align:inherit;cursor:pointer;border-radius:var(--r-4);padding:0 var(--space-1);background:var(--white-06);filter:blur(var(--blur-8));transition:filter var(--dur-400) ease, background var(--dur-400) ease;-webkit-user-select:none;user-select:none;border:none;outline:none}.spoiler:hover{background:var(--white-10)}.spoiler--revealed{filter:none;background:rgba(var(--paper-rgb), .06);-webkit-user-select:text;user-select:text;cursor:text}.mdx-chart{margin:var(--space-7) 0;padding:var(--space-4) var(--space-2-5) var(--space-2);background:var(--corner-frame)}.mdx-chart-title{margin:0 0 var(--space-2-5) var(--space-1-5);font-family:var(--mono-font);font-size:var(--fs-11);letter-spacing:var(--ls-12);color:var(--paper-3);font-weight:400}.mdx-chart-loading{height:300px;margin:var(--space-7) 0;background:var(--corner-frame)}.mdx-chart-empty{margin:var(--space-7) 0;padding:var(--space-5);border-radius:var(--r-10);border:1px dashed rgba(var(--red-300-rgb), .35);color:rgba(var(--red-300-rgb), .8);font-size:var(--fs-14);text-align:center}.mdx-chart-tip{padding:var(--space-2) var(--space-2-5);background:rgba(var(--ground-rgb), .96);border:1px solid var(--rule)}.mdx-chart-tip-label{font-size:var(--fs-12);color:var(--white-50);margin-bottom:var(--space-0-5)}.mdx-chart-tip-value{font-size:var(--fs-16);color:#b5a8ff;font-weight:600}.mdx-chart-tip-row{align-items:center;gap:var(--space-2);font-size:var(--fs-13);margin-top:var(--space-0-5);display:flex}.mdx-chart-tip-swatch{border-radius:var(--r-2);flex:none;width:.6rem;height:.6rem}.mdx-chart-tip-name{color:var(--white-60);margin-right:var(--space-2-5)}.mdx-chart-tip-row .mdx-chart-tip-value{font-size:var(--fs-14);color:#fff;margin-left:auto}.mdx-chart .recharts-legend-item-text{color:var(--white-60)}.mdx-chart-interactive{margin:var(--space-7) 0;padding:var(--space-4) var(--space-2-5) var(--space-4-5);background:var(--corner-frame)}.mdx-chart-interactive .mdx-chart{background:0 0;margin:0}.mdx-chart-sliders{gap:var(--space-2);margin:var(--space-3) var(--space-2-5) 0;display:grid}.mdx-chart-slider{align-items:center;gap:var(--space-3);font-size:var(--fs-13);grid-template-columns:minmax(4rem,6rem) 1fr 4rem;display:grid}.mdx-chart-slider-label{color:var(--white-60);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.mdx-chart-slider input[type=range]{accent-color:#3987e5;cursor:pointer;width:100%}.mdx-chart-slider-value{text-align:right;color:var(--white-80);font-variant-numeric:tabular-nums;font-size:var(--fs-13)}.mdx-ruby rt{color:var(--white-55);font-size:.55em;font-weight:400}.mdx-mention{border-radius:var(--r-2);border:1px solid var(--rule);color:var(--paper);font-size:.88em;font-weight:500;line-height:var(--lh-150);white-space:nowrap;vertical-align:baseline;transition:background var(--dur-200) ease, border-color var(--dur-200) ease, color var(--dur-200) ease;background:0 0;align-items:center;gap:.32em;margin:0 .06em;padding:.05em .5em .05em .42em;text-decoration:none;display:inline-flex}.mdx-mention svg{opacity:.9;flex:none;font-size:.95em}.mdx-mention:hover{border-color:var(--paper-3)}.mdx-mention:hover svg{opacity:1}.post-content a.mdx-mention{color:var(--paper);border:1px solid var(--rule);text-decoration:none}.post-content a.mdx-mention:hover{color:var(--paper);border-color:var(--paper-3)}.mdx-codetabs{margin:var(--space-6) 0;border:1px solid var(--rule);border-radius:var(--r-6);background:rgba(var(--paper-rgb), .03);overflow:hidden}.mdx-codetabs-bar{gap:var(--space-4);padding:0 var(--space-4);border-bottom:1px solid var(--rule);display:flex;overflow-x:auto}.mdx-codetabs-tab{padding:var(--space-2-5) 0 var(--space-2);box-shadow:none;color:var(--paper-3);font-size:var(--fs-12);font-weight:400;font-family:var(--mono-font);cursor:pointer;transition:border-color var(--dur-200) ease, color var(--dur-200) ease;background:0 0;border:none;border-bottom:1px solid #0000;border-radius:0;outline:none;flex:none;align-items:center;display:inline-flex}.mdx-codetabs-tab-icon{display:none}.mdx-codetabs-tab:hover,.mdx-codetabs-tab:focus,.mdx-codetabs-tab:focus-visible,.mdx-codetabs-tab:active{box-shadow:none;border-color:#0000;outline:none}.mdx-codetabs-tab:hover{color:var(--paper-2);background:0 0}.mdx-codetabs-tab.active,.mdx-codetabs-tab.active:hover,.mdx-codetabs-tab.active:focus{border-bottom-color:var(--paper);color:var(--paper);box-shadow:none;background:0 0}.mdx-codetabs ::-webkit-scrollbar{width:7px;height:7px}.mdx-codetabs ::-webkit-scrollbar-track{background:0 0}.mdx-codetabs ::-webkit-scrollbar-thumb{background:var(--white-15);border-radius:var(--r-4)}.mdx-codetabs ::-webkit-scrollbar-thumb:hover{background:var(--white-20)}.mdx-codetabs *{scrollbar-width:thin;scrollbar-color:var(--white-15) transparent}.mdx-tabs{margin:var(--space-7) 0;background:var(--corner-frame)}.mdx-tabs-bar{gap:var(--space-1) var(--space-5);padding:var(--space-3) var(--space-5-5) 0;border-bottom:1px solid var(--rule);flex-wrap:wrap;display:flex}.mdx-tabs-pill{padding:var(--space-1-5) 0 var(--space-2);box-shadow:none;color:var(--paper-3);font-size:var(--fs-14);cursor:pointer;transition:border-color var(--dur-200) ease, color var(--dur-200) ease;background:0 0;border:none;border-bottom:1px solid #0000;border-radius:0;outline:none;margin-bottom:-1px;font-family:inherit;font-weight:400}.mdx-tabs-pill:hover,.mdx-tabs-pill:focus,.mdx-tabs-pill:focus-visible{color:var(--paper-2);box-shadow:none;background:0 0;border-color:#0000;outline:none}.mdx-tabs-pill.active,.mdx-tabs-pill.active:hover,.mdx-tabs-pill.active:focus{border-bottom-color:var(--paper);color:var(--paper);box-shadow:none;background:0 0}.mdx-tabs-panel{padding:var(--space-4-5) var(--space-5-5)}.mdx-tabs-panel>.mdx-tab>:first-child{margin-top:0}.mdx-tabs-panel>.mdx-tab>:last-child{margin-bottom:0}.mdx-math-block{margin:var(--space-6) 0;text-align:center;overflow-x:auto}.mdx-math-loading{height:2.4rem;margin:var(--space-6) 0}.mdx-math-inline{white-space:nowrap}.mdx-sketch{margin:var(--space-7) 0;text-align:center}.mdx-sketch-canvas{overflow-x:auto}.mdx-sketch-canvas--loading{min-height:180px}.mdx-sketch-loading{min-height:220px;margin:var(--space-7) 0;background:var(--corner-frame)}.mdx-sketch-caption{margin-top:var(--space-2-5);font-size:var(--fs-13);line-height:var(--lh-170);color:var(--paper-3);text-align:left}.mdx-sketch-error{margin:var(--space-6) 0;padding:var(--space-4) var(--space-5);border-radius:var(--r-10);border:1px dashed rgba(var(--red-300-rgb), .35);background:rgba(var(--red-300-rgb), .06);color:var(--red-300);font-size:var(--fs-14)}.mdx-sketch-error pre{margin:var(--space-1-5) 0 0;white-space:pre-wrap;word-break:break-word;font-size:var(--fs-13);opacity:.9}.mdx-error{margin:var(--space-6) 0;padding:var(--space-4) var(--space-5);border-radius:var(--r-10);border:1px solid rgba(var(--red-300-rgb), .4);background:rgba(var(--red-300-rgb), .06);color:var(--red-300);font-size:var(--fs-14)}.mdx-error pre{margin:var(--space-2) 0 0;white-space:pre-wrap;word-break:break-word;font-size:var(--fs-13);opacity:.9}.mdx-diff .shiki-output code{display:grid}.mdx-diff .shiki-output .line.diff-line-add{background:rgba(var(--diff-add-rgb), .15);box-shadow:inset 3px 0 var(--diff-add)}.mdx-diff .shiki-output .line.diff-line-del{background:rgba(var(--diff-del-rgb), .15);box-shadow:inset 3px 0 var(--diff-del)}.mdx-diff-stat{gap:var(--space-2);font-size:var(--fs-12);font-variant-numeric:tabular-nums;display:inline-flex}.mdx-diff-stat-add{color:var(--diff-add)}.mdx-diff-stat-del{color:var(--diff-del)}.mdx-install{margin:var(--space-6) 0}.mdx-imgcompare{margin:var(--space-7) 0}.mdx-imgcompare-frame{border-radius:var(--r-2);position:relative;overflow:hidden}.mdx-imgcompare-frame img{width:100%;display:block}.mdx-imgcompare-badge{z-index:2;padding:var(--space-0-5) var(--space-2);font-family:var(--mono-font);font-size:var(--fs-11);letter-spacing:var(--ls-12);color:var(--paper);background:rgba(var(--ground-rgb), .7);pointer-events:none;position:absolute;top:.6rem}.mdx-imgcompare-badge--before{left:.6rem}.mdx-imgcompare-badge--after{right:.6rem}.mdx-imgcompare-loading{background:var(--corner-frame);height:320px}.mdx-imgcompare figcaption{margin-top:var(--space-2-5);font-size:var(--fs-13);line-height:var(--lh-170);color:var(--paper-3)}.mdx-kbd{padding:var(--space-0-5) var(--space-2);margin:0 var(--space-0-5);font-size:.82em;line-height:var(--lh-140);font-family:var(--mono-font);color:var(--paper);border:1px solid var(--paper-3);border-radius:var(--r-2);background:0 0;border-bottom-width:2px;display:inline-block}.mdx-details{margin:var(--space-3) 0;border:1px solid var(--rule);border-radius:var(--r-6);overflow:hidden}.mdx-details-summary{cursor:pointer;padding:var(--space-3) var(--space-4-5);color:var(--paper);-webkit-user-select:none;user-select:none;align-items:baseline;font-weight:400;list-style:none;display:flex}.mdx-details-summary::-webkit-details-marker{display:none}.mdx-details-summary:before{content:"+";width:1.4em;font-family:var(--mono-font);color:var(--paper-3);flex:none}.mdx-details[open] .mdx-details-summary:before{content:"−"}.mdx-details{interpolate-size:allow-keywords}.mdx-details::details-content{block-size:0;transition:block-size var(--dur-300) var(--easing-standard), content-visibility var(--dur-300) allow-discrete;overflow:hidden}.mdx-details[open]::details-content{block-size:auto}.mdx-details-summary:hover:before{color:var(--paper)}.mdx-details-body{padding:var(--space-1) var(--space-4-5) var(--space-1-5)}.mdx-details-body>:first-child{margin-top:var(--space-1)}.mdx-steps{counter-reset:mdx-step;margin:var(--space-7) 0;padding-left:var(--space-2)}.mdx-step{counter-increment:mdx-step;padding:0 0 var(--space-6) var(--space-8);border-left:1px dotted var(--paper-3);position:relative}.mdx-step:last-child{border-left-color:#0000;padding-bottom:0}.mdx-step:before{content:counter(mdx-step, decimal-leading-zero);width:1.7rem;padding:var(--space-0-5) 0;font-family:var(--mono-font);font-size:var(--fs-11);letter-spacing:var(--ls-12);line-height:var(--lh-140);text-align:center;color:var(--paper-2);background:var(--ground);position:absolute;top:.15rem;left:-.85rem}.mdx-step-title{color:var(--paper);margin-bottom:var(--space-1-5);font-weight:600}.mdx-step-body>:first-child{margin-top:0}.mdx-filetree{margin:var(--space-6) 0;padding:var(--space-3-5) var(--space-4-5);background:var(--corner-frame);font-family:var(--mono-font);font-size:var(--fs-14);line-height:var(--lh-185);overflow-x:auto}.mdx-filetree-row{align-items:center;gap:var(--space-2);color:var(--paper-2);white-space:nowrap;display:flex}.mdx-filetree-row--folder{color:var(--paper);font-weight:400}.mdx-filetree-icon{font-size:var(--fs-14);color:var(--paper-3);filter:grayscale();opacity:.7}.mdx-stats{gap:var(--space-3-5);margin:var(--space-7) 0;flex-wrap:wrap;display:flex}.mdx-stat{padding:var(--space-4) var(--space-4-5);background:var(--corner-frame);flex:130px;position:relative}.mdx-stat-value{font-size:var(--fs-28);color:var(--paper);font-weight:400;line-height:var(--lh-110);font-variant-numeric:tabular-nums}.mdx-stat-unit{font-family:var(--mono-font);font-size:var(--fs-11);color:var(--paper-3);margin-left:var(--space-1);font-weight:400}.mdx-stat-label{margin-top:var(--space-2);font-size:var(--fs-13);color:var(--paper-2)}.mdx-stat-hint{margin-top:var(--space-0-5);font-family:var(--mono-font);font-size:var(--fs-11);color:var(--paper-3)}.mdx-stat-trend{position:absolute;top:1rem;right:1.1rem}.mdx-stat-trend--up{border-left:5px solid #0000;border-right:5px solid #0000;border-bottom:7px solid var(--paper-2);width:0;height:0}.mdx-stat-trend--down{border-left:5px solid #0000;border-right:5px solid #0000;border-top:7px solid var(--paper-3);width:0;height:0}.mdx-stat-trend--flat{background:var(--paper-3);width:10px;height:1px}.mdx-video{margin:var(--space-7) 0}.mdx-youtube{margin:var(--space-7) 0;aspect-ratio:16/9;border-radius:var(--r-2);background:var(--ground);position:relative;overflow:hidden}.mdx-youtube-frame{border:0;width:100%;height:100%;display:block}.mdx-youtube-facade{cursor:pointer;width:100%;height:100%;box-shadow:none;background-color:#000;background-position:50%;background-size:cover;border:0;outline:none;justify-content:center;align-items:center;margin:0;padding:0;display:flex;position:relative}.mdx-youtube-facade:hover,.mdx-youtube-facade:focus-visible{box-shadow:none;outline:none}.mdx-youtube-facade:after{content:"";background:var(--black-20);transition:background var(--dur-200);position:absolute;inset:0}.mdx-youtube-facade:hover:after{background:var(--black-06)}.mdx-youtube-play{z-index:1;border:1px solid var(--paper-2);border-radius:var(--r-round);width:3.4rem;height:3.4rem;color:var(--paper);font-size:var(--fs-18);padding-left:var(--space-1);background:0 0;justify-content:center;align-items:center;display:flex;position:relative}.mdx-refs{margin:var(--space-12) 0 var(--space-7)}.mdx-refs-title{margin-bottom:var(--space-2);font-family:var(--mono-font);font-size:var(--fs-11);letter-spacing:var(--ls-12);color:var(--paper-3);font-weight:400}.mdx-refs-list{counter-reset:mdx-ref;gap:var(--space-2-5);margin:0;padding:0;list-style:none;display:grid}.mdx-refs-row{counter-increment:mdx-ref;align-items:baseline;gap:var(--space-1) var(--space-3-5);font-size:var(--fs-14);line-height:var(--lh-160);flex-wrap:wrap;display:flex}.mdx-refs-row:before{content:counter(mdx-ref, decimal-leading-zero);width:1.6rem;font-family:var(--mono-font);font-size:var(--fs-10);color:var(--paper-3);flex:none}.mdx-refs-label{color:var(--paper-2);flex:0 auto;font-weight:400}.mdx-refs-links{gap:var(--space-1) var(--space-3-5);flex-wrap:wrap;display:flex}.mdx-refs .mdx-refs-link{font-family:var(--mono-font);font-size:var(--fs-11);color:var(--paper-3);text-decoration:underline;-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule);text-underline-offset:3px;transition:text-decoration-color var(--dur-150) ease, color var(--dur-150) ease;border-bottom:0;align-items:center;display:inline-flex}.mdx-refs .mdx-refs-link:hover{color:var(--paper);-webkit-text-decoration-color:var(--paper-3);text-decoration-color:var(--paper-3)}.mdx-refs-icon{display:none}.mdx-poll{margin:var(--space-7) 0;padding:var(--space-4-5) var(--space-5);background:var(--corner-frame)}.mdx-poll-q{font-size:var(--fs-16);color:var(--paper);margin-bottom:var(--space-3-5);font-weight:400}.mdx-poll-list{gap:var(--space-1-5);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.mdx-poll-opt{justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;min-height:2.5rem;padding:var(--space-2) var(--space-3-5);border:1px solid var(--rule);border-radius:var(--r-2);box-shadow:none;color:var(--paper-2);font-size:var(--fs-14);text-align:left;cursor:pointer;transition:background var(--dur-150) ease, color var(--dur-150) ease;background:0 0;outline:none;font-family:inherit;display:flex;position:relative;overflow:hidden}.mdx-poll-opt:hover:not(:disabled),.mdx-poll-opt:focus-visible:not(:disabled){border-color:var(--paper-3);box-shadow:none;color:var(--paper);background:0 0;outline:none}.mdx-poll-opt:disabled{cursor:default}.mdx-poll-opt--mine{border-color:var(--paper-3);color:var(--paper)}.mdx-poll-bar{background:rgba(var(--paper-rgb), .06);transition:width var(--dur-500) var(--easing-standard);pointer-events:none;position:absolute;top:0;bottom:0;left:0}.mdx-poll-opt--mine .mdx-poll-bar{background:rgba(var(--paper-rgb), .1)}.mdx-poll-opt-label{align-items:center;gap:var(--space-2);min-width:0;display:inline-flex;position:relative}.mdx-poll-check{border-radius:var(--r-round);background:var(--amber);flex:none;width:.35rem;height:.35rem}.mdx-poll-pct{font-family:var(--mono-font);font-size:var(--fs-11);font-variant-numeric:tabular-nums;color:var(--paper-3);flex:none;position:relative}.mdx-poll-opt--mine .mdx-poll-pct{color:var(--paper-2)}.mdx-poll-foot{align-items:center;gap:var(--space-3);margin-top:var(--space-3);font-family:var(--mono-font);font-size:var(--fs-11);color:var(--paper-3);display:flex}.mdx-poll-peek{box-shadow:none;color:var(--paper-2);font-size:var(--fs-11);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;outline:none;padding:0;font-family:inherit;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.mdx-poll-peek:hover,.mdx-poll-peek:focus-visible{box-shadow:none;color:var(--paper);background:0 0;outline:none}.mdx-poll-voted{color:var(--paper-3);margin-left:auto}.annot:hover,.annot:focus,.annot:focus-visible{box-shadow:none;background:0 0;border-color:#0000}.spoiler:hover,.spoiler:focus,.spoiler:focus-visible{box-shadow:none;border-color:#0000}.spoiler:focus{background:var(--white-10)}.orbit-toc{z-index:2;pointer-events:none;height:100vh;font-family:var(--serif);color:var(--paper);position:fixed;inset:0}.orbit-toc.is-off{display:none}.orbit-toc-cv{width:100%;height:100%;position:absolute;inset:0}.orbit-toc-hd,.orbit-toc-ft,.orbit-toc-list{transition:opacity var(--dur-400) ease}html[data-pt] .orbit-toc-list{opacity:0}.orbit-toc-list li{position:absolute;top:0;left:0}.orbit-toc-hd{gap:var(--space-3);font-family:var(--mono-font);font-size:var(--fs-10);letter-spacing:var(--ls-12);white-space:nowrap;color:var(--paper-3);align-items:baseline;display:flex}.orbit-toc-hd b{color:var(--amber);font-weight:400}.orbit-toc-list{margin:0;padding:0;list-style:none}.orbit-toc-list li{pointer-events:auto;transition:opacity var(--dur-300) ease}:where(.orbit-toc) :where(button){all:unset;box-sizing:border-box;cursor:pointer}.orbit-toc button:focus-visible{outline:1px solid var(--paper-2);outline-offset:3px}.orbit-toc-list button{gap:var(--space-2);max-width:100%;font-size:var(--fs-13);line-height:var(--lh-140);color:var(--paper-3);text-shadow:0 0 8px var(--ground);transition:color var(--dur-200) ease;align-items:baseline;display:flex}.orbit-toc-list .is-deep button{font-size:var(--fs-12)}.orbit-toc-t{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.orbit-toc-min{font-family:var(--mono-font);font-size:var(--fs-10);color:var(--paper-3);opacity:0;transition:opacity var(--dur-200) ease;flex:none}.orbit-toc-list .is-past button{color:var(--paper-2)}.orbit-toc-list .is-on button,.orbit-toc-list .is-ping button,.orbit-toc-list button:hover{color:var(--paper)}.orbit-toc-list button:hover .orbit-toc-min{opacity:1}.orbit-toc.is-rest .orbit-toc-list li{opacity:0}.orbit-toc.is-rest.is-pinging .orbit-toc-list li,.orbit-toc.is-rest .orbit-toc-list li:focus-within{opacity:1}.orbit-toc.is-rest:has(.orbit-toc-list:hover) .orbit-toc-list li{opacity:1}.orbit-toc.is-quiet .orbit-toc-list li:not(.is-on,.is-ping){opacity:.15}.orbit-toc.is-quiet:has(.orbit-toc-list:hover) .orbit-toc-list li{opacity:1}.orbit-toc-ft{gap:var(--space-6);align-items:baseline;display:flex}.orbit-toc-ft>button{pointer-events:auto;font-family:var(--mono-font);font-size:var(--fs-10);letter-spacing:var(--ls-6);color:var(--paper-3);white-space:nowrap;transition:color var(--dur-200) ease}.orbit-toc-ft>button:hover{color:var(--paper)}.orbit-toc.is-leaving .orbit-toc-hd,.orbit-toc.is-leaving .orbit-toc-ft,.orbit-toc.is-leaving .orbit-toc-list{opacity:0;transition:opacity var(--dur-200) ease}
