/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-font-weight:initial;--tw-content:""}}}:root{--radius-large:1rem;--content-delay:.15s;--wallpaper-opacity:.8;--wallpaper-blur:0px;--card-transparent-opacity:.5;--primary:oklch(.7 .14 var(--hue));--page-bg:oklch(.95 .01 var(--hue));--card-bg:#fff;--card-bg-transparent:#fff;--btn-content:oklch(.55 .12 var(--hue));--btn-regular-bg:oklch(.95 .025 var(--hue));--btn-regular-bg-hover:oklch(.9 .05 var(--hue));--btn-regular-bg-active:oklch(.85 .08 var(--hue));--btn-plain-bg-hover:oklch(.95 .025 var(--hue));--btn-plain-bg-active:oklch(.98 .01 var(--hue));--btn-card-bg-hover:oklch(.98 .005 var(--hue));--btn-card-bg-active:oklch(.9 .03 var(--hue));--enter-btn-bg:var(--btn-regular-bg);--enter-btn-bg-hover:var(--btn-regular-bg-hover);--enter-btn-bg-active:var(--btn-regular-bg-active);--deep-text:oklch(.25 .02 var(--hue));--title-active:oklch(.6 .1 var(--hue));--line-divider:#00000014;--line-color:#0000001a;--meta-divider:#0003;--content-meta:#000000b3;--inline-code-bg:var(--btn-regular-bg);--inline-code-color:var(--btn-content);--selection-bg:oklch(.9 .05 var(--hue));--codeblock-selection:var(--selection-bg);--codeblock-bg:oklch(.97 .005 var(--hue));--codeblock-topbar-bg:oklch(.94 .01 var(--hue));--license-block-bg:#00000008;--link-underline:oklch(.93 .04 var(--hue));--link-hover:oklch(.95 .025 var(--hue));--link-active:oklch(.9 .05 var(--hue));--float-panel-bg:#fff;--scrollbar-bg:#0006;--scrollbar-bg-hover:#00000080;--scrollbar-bg-active:#0009;--display-light-icon:1;--display-dark-icon:0;--admonitions-color-tip:oklch(70% .14 180);--admonitions-color-note:oklch(70% .14 250);--admonitions-color-important:oklch(70% .14 310);--admonitions-color-warning:oklch(70% .14 60);--admonitions-color-caution:oklch(60% .2 25);--toc-badge-bg:oklch(.9 .045 var(--hue));--toc-btn-hover:oklch(.92 .015 var(--hue));--toc-btn-active:oklch(.9 .015 var(--hue));--toc-width:calc((100vw - var(--page-width)) / 2 - 1rem);--toc-item-active:oklch(.7 .13 var(--hue))}:root.dark{--primary:oklch(.75 .14 var(--hue));--page-bg:oklch(.16 .014 var(--hue));--card-bg:oklch(.23 .015 var(--hue));--card-bg-transparent:oklch(.23 .015 var(--hue));--btn-content:oklch(.75 .1 var(--hue));--btn-regular-bg:oklch(.33 .035 var(--hue));--btn-regular-bg-hover:oklch(.38 .04 var(--hue));--btn-regular-bg-active:oklch(.43 .045 var(--hue));--btn-plain-bg-hover:oklch(.3 .035 var(--hue));--btn-plain-bg-active:oklch(.27 .025 var(--hue));--btn-card-bg-hover:oklch(.3 .03 var(--hue));--btn-card-bg-active:oklch(.35 .035 var(--hue));--line-divider:#ffffff14;--line-color:#ffffff1a;--meta-divider:#fff3;--content-meta:#fff9;--selection-bg:oklch(.4 .08 var(--hue));--codeblock-bg:oklch(.17 .015 var(--hue));--codeblock-topbar-bg:oklch(.12 .015 var(--hue));--license-block-bg:var(--codeblock-bg);--link-underline:oklch(.4 .08 var(--hue));--link-hover:oklch(.4 .08 var(--hue));--link-active:oklch(.35 .07 var(--hue));--float-panel-bg:oklch(.19 .015 var(--hue));--scrollbar-bg:#fff6;--scrollbar-bg-hover:#ffffff80;--scrollbar-bg-active:#fff9;--display-light-icon:0;--display-dark-icon:1;--toc-badge-bg:var(--btn-regular-bg);--toc-btn-hover:oklch(.22 .02 var(--hue));--toc-btn-active:oklch(.25 .02 var(--hue));--toc-item-active:oklch(.35 .07 var(--hue))}body.wallpaper-transparent{--card-bg-transparent:rgb(255 255 255/var(--card-transparent-opacity,.8))}:root.dark body.wallpaper-transparent{--card-bg-transparent:rgb(23 23 23/var(--card-transparent-opacity,.8))}#navbar>div{background:var(--card-bg);border-radius:var(--radius-large)}@media (min-width:1280px){#banner-wrapper~* #navbar[data-transparent-mode=semi]>div,body:has(#banner-wrapper) #navbar[data-transparent-mode=semi]>div{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff8c;border:1px solid #ffffff8c;box-shadow:0 4px 16px #0000001a}}@media not all and (min-width:1280px){#banner-wrapper~* #navbar[data-transparent-mode=semi][data-is-home=true]>div,body:has(#banner-wrapper) #navbar[data-transparent-mode=semi][data-is-home=true]>div{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff8c;border:1px solid #ffffff8c;box-shadow:0 4px 16px #0000001a}}@media (min-width:1280px){:root.dark #banner-wrapper~* #navbar[data-transparent-mode=semi]>div,:root.dark body:has(#banner-wrapper) #navbar[data-transparent-mode=semi]>div{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#0000008c;border:1px solid #0000008c;box-shadow:0 4px 16px #0003}}@media not all and (min-width:1280px){:root.dark #banner-wrapper~* #navbar[data-transparent-mode=semi][data-is-home=true]>div,:root.dark body:has(#banner-wrapper) #navbar[data-transparent-mode=semi][data-is-home=true]>div{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#0000008c;border:1px solid #0000008c;box-shadow:0 4px 16px #0003}}@media (min-width:1280px){#banner-wrapper~* #navbar[data-transparent-mode=full]>div,:root.dark #banner-wrapper~* #navbar[data-transparent-mode=full]>div,:root.dark body:has(#banner-wrapper) #navbar[data-transparent-mode=full]>div,body:has(#banner-wrapper) #navbar[data-transparent-mode=full]>div{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:1px solid #0000}}@media not all and (min-width:1280px){#banner-wrapper~* #navbar[data-transparent-mode=full][data-is-home=true]>div,:root.dark #banner-wrapper~* #navbar[data-transparent-mode=full][data-is-home=true]>div,:root.dark body:has(#banner-wrapper) #navbar[data-transparent-mode=full][data-is-home=true]>div,body:has(#banner-wrapper) #navbar[data-transparent-mode=full][data-is-home=true]>div{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:1px solid #0000}}@media (min-width:1280px){#banner-wrapper~* #navbar[data-transparent-mode=semifull]>div,body:has(#banner-wrapper) #navbar[data-transparent-mode=semifull]>div{box-shadow:none;background:0 0;border:1px solid #0000}}@media not all and (min-width:1280px){#banner-wrapper~* #navbar[data-transparent-mode=semifull][data-is-home=true]>div,body:has(#banner-wrapper) #navbar[data-transparent-mode=semifull][data-is-home=true]>div{box-shadow:none;background:0 0;border:1px solid #0000}}@media (min-width:1280px){#banner-wrapper~* #navbar[data-transparent-mode=semifull].scrolled>div,body:has(#banner-wrapper) #navbar[data-transparent-mode=semifull].scrolled>div{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff8c;border:1px solid #ffffff8c;box-shadow:0 4px 16px #0000001a}:root.dark #banner-wrapper~* #navbar[data-transparent-mode=semifull].scrolled>div,:root.dark body:has(#banner-wrapper) #navbar[data-transparent-mode=semifull].scrolled>div{background:#0000008c;border:1px solid #0000008c;box-shadow:0 4px 16px #0003}}@media not all and (min-width:1280px){#banner-wrapper~* #navbar[data-transparent-mode=semifull][data-is-home=true].scrolled>div,body:has(#banner-wrapper) #navbar[data-transparent-mode=semifull][data-is-home=true].scrolled>div{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff8c;border:1px solid #ffffff8c;box-shadow:0 4px 16px #0000001a}:root.dark #banner-wrapper~* #navbar[data-transparent-mode=semifull][data-is-home=true].scrolled>div,:root.dark body:has(#banner-wrapper) #navbar[data-transparent-mode=semifull][data-is-home=true].scrolled>div{background:#0000008c;border:1px solid #0000008c;box-shadow:0 4px 16px #0003}}@media (min-width:768px) and (not (min-width:1280px)){#navbar>div{border-radius:1rem}}@media not all and (min-width:480px){#navbar>div{border-radius:.5rem;width:100%;max-width:none;margin:0;padding-left:1rem;padding-right:1rem}}@media not all and (min-width:768px){#navbar>div{-webkit-backdrop-filter:none;backdrop-filter:none;width:100%;max-width:none;margin-left:0;margin-right:0}#banner-wrapper~* #display-setting,#banner-wrapper~* #mobile-toc-panel,#banner-wrapper~* #nav-menu-panel,#banner-wrapper~* #search-panel,#banner-wrapper~* .dropdown-content,#banner-wrapper~* .float-panel,body:has(#banner-wrapper) #display-setting,body:has(#banner-wrapper) #mobile-toc-panel,body:has(#banner-wrapper) #nav-menu-panel,body:has(#banner-wrapper) #search-panel,body:has(#banner-wrapper) .dropdown-content,body:has(#banner-wrapper) .float-panel{-webkit-backdrop-filter:none;backdrop-filter:none}}@media (min-width:1280px){#banner-wrapper~* #display-setting,#banner-wrapper~* #mobile-toc-panel,#banner-wrapper~* #nav-menu-panel,#banner-wrapper~* #search-panel,#banner-wrapper~* .dropdown-content,#banner-wrapper~* .float-panel,body:has(#banner-wrapper) #display-setting,body:has(#banner-wrapper) #mobile-toc-panel,body:has(#banner-wrapper) #nav-menu-panel,body:has(#banner-wrapper) #search-panel,body:has(#banner-wrapper) .dropdown-content,body:has(#banner-wrapper) .float-panel{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffffd9;box-shadow:0 4px 16px #00000014}:root.dark #banner-wrapper~* #display-setting,:root.dark #banner-wrapper~* #mobile-toc-panel,:root.dark #banner-wrapper~* #nav-menu-panel,:root.dark #banner-wrapper~* #search-panel,:root.dark #banner-wrapper~* .dropdown-content,:root.dark #banner-wrapper~* .float-panel,:root.dark body:has(#banner-wrapper) #display-setting,:root.dark body:has(#banner-wrapper) #mobile-toc-panel,:root.dark body:has(#banner-wrapper) #nav-menu-panel,:root.dark body:has(#banner-wrapper) #search-panel,:root.dark body:has(#banner-wrapper) .dropdown-content,:root.dark body:has(#banner-wrapper) .float-panel{background:#181926d9;box-shadow:0 4px 16px #0000002e}}@media not all and (min-width:1280px){#banner-wrapper~* #navbar[data-is-home=true] .dropdown-content,#banner-wrapper~* #navbar[data-is-home=true] .float-panel,#banner-wrapper~* #navbar[data-is-home=true]~* #display-setting,body:has(#banner-wrapper) #navbar[data-is-home=true] #display-setting,body:has(#banner-wrapper) #navbar[data-is-home=true] #mobile-toc-panel,body:has(#banner-wrapper) #navbar[data-is-home=true] #nav-menu-panel,body:has(#banner-wrapper) #navbar[data-is-home=true] #search-panel,body:has(#banner-wrapper) #navbar[data-is-home=true] .dropdown-content,body:has(#banner-wrapper) #navbar[data-is-home=true] .float-panel,body:has(#banner-wrapper) #navbar[data-is-home=true]~* #display-setting{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffffd9;box-shadow:0 4px 16px #00000014}:root.dark #banner-wrapper~* #navbar[data-is-home=true] .dropdown-content,:root.dark #banner-wrapper~* #navbar[data-is-home=true] .float-panel,:root.dark #banner-wrapper~* #navbar[data-is-home=true]~* #display-setting,:root.dark body:has(#banner-wrapper) #navbar[data-is-home=true] #display-setting,:root.dark body:has(#banner-wrapper) #navbar[data-is-home=true] #mobile-toc-panel,:root.dark body:has(#banner-wrapper) #navbar[data-is-home=true] #nav-menu-panel,:root.dark body:has(#banner-wrapper) #navbar[data-is-home=true] #search-panel,:root.dark body:has(#banner-wrapper) #navbar[data-is-home=true] .dropdown-content,:root.dark body:has(#banner-wrapper) #navbar[data-is-home=true] .float-panel,:root.dark body:has(#banner-wrapper) #navbar[data-is-home=true]~* #display-setting{background:#181926d9;box-shadow:0 4px 16px #0000002e}}:root{--shadow-sm:0 2px 8px #0000000d;--shadow-lg:0 4px 16px #00000014;--radius-std:.75rem;--nav-bg:var(--card-bg);--nav-blur:none;--nav-shadow:var(--shadow-sm);--nav-radius:var(--radius-std);--panel-bg:var(--card-bg-transparent);--panel-blur:blur(20px)}:root.dark{--shadow-sm:0 2px 8px #00000026;--shadow-lg:0 4px 16px #0000002e}#navbar[data-dynamic-transparent=semi]{--nav-bg:var(--card-bg-transparent);--nav-blur:blur(8px);--nav-shadow:var(--shadow-lg)}#navbar[data-dynamic-transparent=none]{--nav-bg:var(--card-bg);--nav-blur:none;--nav-shadow:var(--shadow-sm);--panel-bg:var(--card-bg);--panel-blur:none}@media (min-width:1280px){body.wallpaper-transparent #navbar[data-transparent-mode=full]{--nav-bg:transparent;--nav-blur:none;--nav-shadow:none;--nav-radius:0}}@media not all and (min-width:1280px){body.wallpaper-transparent #navbar[data-transparent-mode=full][data-is-home=true]{--nav-bg:transparent;--nav-blur:none;--nav-shadow:none;--nav-radius:0}}body.wallpaper-transparent #navbar[data-transparent-mode=semifull]:not(.scrolled),body.wallpaper-transparent #navbar[data-transparent-mode=semifull][data-is-home=true]:not(.scrolled){--nav-bg:transparent;--nav-blur:none;--nav-shadow:none;--nav-radius:0}body.wallpaper-transparent #navbar[data-transparent-mode=semifull].scrolled{--nav-bg:var(--card-bg-transparent);--nav-blur:blur(8px);--nav-shadow:var(--shadow-lg);--nav-radius:var(--radius-std)}#navbar>div{background:var(--nav-bg);-webkit-backdrop-filter:var(--nav-blur);backdrop-filter:var(--nav-blur);box-shadow:var(--nav-shadow);border-radius:var(--nav-radius);will-change:background,backdrop-filter,box-shadow;outline:none;transition:all .3s cubic-bezier(.4,0,.2,1);border:none!important}:is(.dropdown-content,#nav-menu-panel,#mobile-toc-panel,#display-setting,#search-panel,.float-panel){background:var(--panel-bg);-webkit-backdrop-filter:var(--panel-blur);backdrop-filter:var(--panel-blur);box-shadow:var(--shadow-lg);border:none;transition:background .3s,-webkit-backdrop-filter .3s,backdrop-filter .3s}@media (min-width:1280px){body.wallpaper-transparent :is(.dropdown-content,#display-setting,#search-panel){background:#ffffffd9}:root.dark body.wallpaper-transparent :is(.dropdown-content,#display-setting,#search-panel){background:#181926d9}}@media not all and (min-width:1280px){#navbar>div{border-radius:.5rem;width:100%;max-width:none;margin:0}body:has(#navbar[data-dynamic-transparent=none]) #search-panel #search-bar-inside{background:#00000014}:root.dark body:has(#navbar[data-dynamic-transparent=none]) #search-panel #search-bar-inside{background:#ffffff26}#navbar:not([data-is-home=true]) :is(#nav-menu-panel,#mobile-toc-panel,#search-panel,#display-setting){background:var(--card-bg);-webkit-backdrop-filter:none;backdrop-filter:none}}.fancybox__container{--fancybox-bg:#000000e6;--fancybox-thumbs-width:64px;--fancybox-thumbs-ratio:1;--fancybox-thumbs-border-radius:4px}.fancybox__toolbar{background:linear-gradient(#000000b3,#0000);padding:8px}.fancybox__caption,.fancybox__toolbar{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.fancybox__caption{color:#fff;text-align:center;background:linear-gradient(#0000,#000c);border-radius:8px;margin:0 1rem 1rem;padding:1rem;font-size:1rem}.fancybox__nav{--carousel-button-svg-width:24px;--carousel-button-svg-height:24px}.fancybox__thumbs{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;border-radius:8px;padding:2px}.fancybox__thumb{border:2px solid #0000;border-radius:4px;transition:all .2s;overflow:hidden}.fancybox__thumb.is-loading{background:#ffffff1a}.fancybox__thumb:hover{border-color:#ffffff80;transform:scale(1.05)}.fancybox__thumb.is-active{border-color:#fff}.fancybox__button{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;border:1px solid #ffffff1a;border-radius:50%;width:44px;height:44px;transition:all .2s}.fancybox__button:hover{background:#000000b3;border-color:#ffffff4d;transform:scale(1.1)}.fancybox__button svg{filter:drop-shadow(0 1px 2px #00000080)}.fancybox__infobar{color:#fff;padding:0 8px;font-size:.9rem}@media not all and (min-width:768px){.fancybox__toolbar{padding:4px}.fancybox__button{width:36px;height:36px}.fancybox__caption{margin:0 .5rem .5rem;padding:.5rem;font-size:.9rem}.fancybox__thumbs{--fancybox-thumbs-width:48px}}@media not all and (min-width:480px){.fancybox__button{width:32px;height:32px}.fancybox__caption{padding:.4rem;font-size:.8rem}.fancybox__thumbs{--fancybox-thumbs-width:40px}}.expressive-code{position:relative}.expressive-code .mermaid-fullscreen-btn{background:var(--btn-regular-bg);color:var(--btn-content);box-shadow:0 1px 2px #00000014}.expressive-code .mermaid-fullscreen-btn:hover{background:var(--btn-regular-bg-hover)}.expressive-code .frame{--tw-shadow:0 0 #0000!important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}.expressive-code .title{font-family:var(--ec-codeFontFml,"JetBrains Mono Variable",ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace)}.expressive-code .copy-btn{all:initial;top:calc(var(--spacing,.25rem) * 3);right:calc(var(--spacing,.25rem) * 3);z-index:20;height:calc(var(--spacing,.25rem) * 8);width:calc(var(--spacing,.25rem) * 8);cursor:pointer;border-radius:var(--radius-lg,.5rem);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));opacity:0;transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4,0,.2,1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));--tw-ease:var(--ease-in-out,cubic-bezier(.4,0,.2,1));transition-timing-function:var(--ease-in-out,cubic-bezier(.4,0,.2,1));position:absolute}.expressive-code .copy-btn:active{--tw-scale-x:90%;--tw-scale-y:90%;--tw-scale-z:90%;scale:var(--tw-scale-x) var(--tw-scale-y)}.expressive-code .copy-btn{background:var(--btn-regular-bg);justify-content:center;align-items:center;display:flex;box-shadow:0 1px 2px #0000000d}.expressive-code .copy-btn:hover{background:var(--btn-regular-bg-hover)}.expressive-code .copy-btn-icon{pointer-events:none;height:calc(var(--spacing,.25rem) * 4);width:calc(var(--spacing,.25rem) * 4);--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4,0,.2,1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));fill:var(--btn-content);position:absolute;top:50%;left:50%}.expressive-code .copy-btn .copy-icon{opacity:1;fill:var(--btn-content)}.expressive-code .copy-btn .success-icon{opacity:0;fill:var(--btn-content)}.expressive-code .copy-btn.success .copy-icon{fill:var(--deep-text);opacity:0}.expressive-code .copy-btn.success .success-icon,.expressive-code .frame:hover .copy-btn{opacity:1}.expressive-code .frame code,.expressive-code .frame pre{-webkit-user-select:text;user-select:text}.expressive-code code span.line:before{-webkit-user-select:none;user-select:none}.expressive-code.auto-collapsible .frame{position:relative}.expressive-code.auto-collapsible .collapse-toggle-btn{all:initial;z-index:20;width:2rem;height:2rem;color:var(--btn-content);background:var(--btn-regular-bg);cursor:pointer;opacity:0;border-radius:.5rem;justify-content:center;align-items:center;transition:opacity .15s,background-color .15s,transform .15s;display:flex;position:absolute;top:.75rem;right:3.5rem;box-shadow:0 1px 2px #0000000d}.expressive-code.auto-collapsible .collapse-toggle-btn:focus-visible,.expressive-code.auto-collapsible .frame:hover .collapse-toggle-btn,.expressive-code.auto-collapsible.collapsed .collapse-toggle-btn{opacity:1}.expressive-code.auto-collapsible .collapse-toggle-btn:hover{background:var(--btn-regular-bg-hover)}.expressive-code.auto-collapsible .collapse-toggle-btn:active{transform:scale(.9)}.expressive-code.auto-collapsible .collapse-toggle-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.expressive-code.auto-collapsible .collapse-toggle-btn svg{pointer-events:none;width:1rem;height:1rem;transition:transform .2s}.expressive-code.auto-collapsible.collapsed .collapse-toggle-btn svg{transform:rotate(180deg)}.expressive-code.auto-collapsible .frame pre{transition:max-height .25s;position:relative}.expressive-code.auto-collapsible.collapsed .frame pre{max-height:var(--code-collapse-preview-height,16rem);overflow:hidden}.expressive-code.auto-collapsible.collapsed .frame pre:after{content:"";background:linear-gradient(to bottom,transparent,var(--codeblock-bg));pointer-events:none;height:4.5rem;position:absolute;bottom:0;left:0;right:0}@media not all and (min-width:768px){.expressive-code .copy-btn{width:1.75rem;height:1.75rem;top:.5rem;right:.5rem}.expressive-code .copy-btn-icon{width:.875rem;height:.875rem}.expressive-code.auto-collapsible .collapse-toggle-btn{width:1.75rem;height:1.75rem;top:.5rem;right:3rem}.expressive-code.auto-collapsible .collapse-toggle-btn svg{width:.875rem;height:.875rem}.expressive-code [data-language]:before{display:none!important}}@media (prefers-color-scheme:light){.expressive-code .copy-btn{box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a}}:root:not(.dark) .expressive-code .copy-btn{box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a}@media print{.expressive-code.auto-collapsible.collapsed .frame pre{max-height:none!important}.expressive-code .collapse-toggle-btn,.expressive-code .copy-btn,.expressive-code.auto-collapsible.collapsed .frame pre:after{display:none!important}}.rehype-code-group{border-radius:var(--radius-large);background:var(--codeblock-bg);margin:1.5rem 0;overflow:hidden}.rehype-code-group .rcg-tab-container{background:var(--codeblock-bg);border-bottom:1px solid var(--line-divider);flex-wrap:wrap;gap:.25rem;padding:.45rem .55rem 0;display:flex}.rehype-code-group .rcg-tab{color:var(--tw-prose-body);cursor:pointer;font:inherit;background:0 0;border:0;border-bottom:2px solid #0000;padding:.55rem .75rem;font-size:.875rem;transition:color .15s,border-color .15s}.rehype-code-group .rcg-tab.active,.rehype-code-group .rcg-tab:hover{color:var(--primary);border-bottom-color:var(--primary)}.rehype-code-group .rcg-tab:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.rehype-code-group .rcg-block>.expressive-code{margin:0!important}.rehype-code-group .rcg-block>:first-child{margin-top:0}.rehype-code-group .rcg-block>:last-child{margin-bottom:0}.float-panel{z-index:50;will-change:transform,opacity;transform-origin:top}.float-panel:not(.float-panel-closed){pointer-events:auto;transform:scaleY(1)scaleX(1)}.float-panel-closed{pointer-events:none;transform:scaleY(0)scaleX(.8)}#mobile-toc-panel{transform-origin:100% 0}#mobile-toc-panel.float-panel-closed{transform:scaleY(0)scaleX(.7)}#display-setting{transform-origin:100% 0}#display-setting.float-panel-closed{transform:scaleY(0)scaleX(.6)}#search-panel{transform-origin:top}#search-panel.float-panel-closed{transform:scaleY(0)scaleX(.8)}#nav-menu-panel{transform-origin:100% 0}#nav-menu-panel.float-panel-closed{transform:scaleY(0)scaleX(.65)}#wallpaper-mode-panel{transform-origin:100% 0}#wallpaper-mode-panel.float-panel-closed{transform:scaleY(0)scaleX(.5)}@media not all and (min-width:768px){.float-panel-closed{transform:scaleY(0)scaleX(.85)}#mobile-toc-panel.float-panel-closed{transform:scaleY(0)scaleX(.8)}#wallpaper-mode-panel.float-panel-closed{transform:scaleY(0)scaleX(.7)}}@media (hover:none) and (pointer:coarse){.float-panel{touch-action:manipulation}}.custom-md h1{font-size:var(--text-3xl,1.875rem);line-height:var(--tw-leading,var(--text-3xl--line-height,calc(2.25 / 1.875)))}.custom-md :is(h1,h2,h3,h4,h5,h6) .anchor{margin:calc(var(--spacing,.25rem) * -.5);padding:calc(var(--spacing,.25rem) * .5);opacity:0;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4,0,.2,1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));-webkit-user-select:none;user-select:none;margin-inline-start:.2ch;text-decoration-line:none}.custom-md :is(h1,h2,h3,h4,h5,h6) .anchor .anchor-icon{margin-inline:.45ch}.custom-md :is(h1,h2,h3,h4,h5,h6):hover .anchor{opacity:1}.custom-md a:not(.no-styling){--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--primary);text-decoration-line:underline;-webkit-text-decoration-color:var(--link-underline);text-decoration-color:var(--link-underline);text-underline-offset:4px;-webkit-box-decoration-break:clone;box-decoration-break:clone;overflow-wrap:anywhere;background-image:none;text-decoration-style:dashed;text-decoration-thickness:1px;position:relative}.custom-md a:not(.no-styling):active,.custom-md a:not(.no-styling):hover{background:var(--btn-plain-bg-hover);border-bottom:1px dashed var(--link-hover);text-decoration:none}.custom-md code{border-radius:var(--radius-md,.375rem);background-color:var(--inline-code-bg);padding-inline:var(--spacing,.25rem);padding-block:calc(var(--spacing,.25rem) * .5);color:var(--inline-code-color);font-family:var(--ec-codeFontFml,"JetBrains Mono Variable","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);overflow:hidden}.custom-md code:after,.custom-md code:before{content:none}.custom-md code{counter-reset:line}.custom-md code span.line:before{margin-right:calc(var(--spacing,.25rem) * 4);width:calc(var(--spacing,.25rem) * 4);color:#ffffff40;display:inline-block}@supports (color:color-mix(in lab,red,red)){.custom-md code span.line:before{color:color-mix(in oklab,var(--color-white,#fff) 25%,transparent)}}.custom-md code span.line:before{-webkit-user-select:none;user-select:none;content:counter(line);counter-increment:line;direction:rtl}.custom-md code span.line:last-child:empty,.custom-md code span.line:last-child:has(>span:empty:only-child){display:none}.custom-md :not(pre)>code{overflow-wrap:anywhere;word-break:break-word}.custom-md :is(h1,h2,h3){margin-top:calc(var(--spacing,.25rem) * 4);margin-bottom:calc(var(--spacing,.25rem) * 2)}:is(.custom-md ul,.custom-md ol) li::marker{color:var(--primary)}.custom-md blockquote{font-style:normal;font-weight:inherit;border-color:#0000;position:relative}.custom-md blockquote:before{height:100%;width:var(--spacing,.25rem);background-color:var(--btn-regular-bg);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4,0,.2,1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));--tw-content:"";content:var(--tw-content);border-radius:3.40282e+38px;display:block;position:absolute;left:0}.custom-md blockquote p:after,.custom-md blockquote p:before{--tw-content:none;content:none}.custom-md .table-wrapper{border-radius:var(--radius-large);-webkit-overflow-scrolling:touch;width:100%;margin:0;overflow-x:auto}.custom-md .table-wrapper::-webkit-scrollbar{width:6px;height:6px}.custom-md .table-wrapper::-webkit-scrollbar-track{margin:0 calc(var(--radius-large) + 2px);background:0 0}.custom-md .table-wrapper::-webkit-scrollbar-thumb{background:var(--scrollbar-bg);border-radius:4px}.custom-md .table-wrapper::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-bg-hover)}.custom-md .table-wrapper::-webkit-scrollbar-thumb:active{background:var(--scrollbar-bg-active)}.custom-md .image-grid{grid-template-columns:repeat(var(--image-grid-columns),minmax(0,1fr));gap:.75rem;margin:1.5rem 0;display:grid}.custom-md .image-grid__item{flex-direction:column;min-width:0;margin:0;display:flex}.custom-md .image-grid__link{aspect-ratio:var(--image-grid-aspect-ratio);border-radius:var(--radius-large);background:var(--btn-regular-bg);line-height:0;display:block;overflow:hidden}.custom-md .image-grid__link:active,.custom-md .image-grid__link:hover{background:var(--btn-regular-bg);border-bottom:0}.custom-md .image-grid__link>img{aspect-ratio:auto;object-position:center;transition:transform .18s;object-fit:var(--image-grid-fit)!important;border-radius:0!important;width:100%!important;max-width:none!important;height:100%!important;margin:0!important;padding:0!important;display:block!important}.custom-md .image-grid__link:hover>img{transform:scale(1.03)}.custom-md .image-grid__caption{color:var(--tw-prose-body);text-align:center;margin-top:auto;padding-top:.45rem;font-size:.875rem;line-height:1.35}@media not all and (min-width:768px){.custom-md .image-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.custom-md .image-grid[data-columns="1"]{grid-template-columns:1fr}}@media not all and (min-width:480px){.custom-md .image-grid{grid-template-columns:1fr}}.custom-md table{border-collapse:separate;background-color:var(--card-bg);border-spacing:0;border:1px solid var(--line-divider);border-radius:var(--radius-large);width:100%;margin:0;overflow:hidden}.custom-md td,.custom-md th{padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:calc(var(--spacing,.25rem) * 3);white-space:nowrap;border-bottom:1px solid var(--line-divider);border-right:1px solid var(--line-divider);transition:none}.custom-md th{background-color:var(--btn-regular-bg);color:var(--btn-content);text-align:left;font-weight:600}.custom-md tr:last-child td{border-bottom:none}.custom-md td:last-child,.custom-md th:last-child{border-right:none}.custom-md tr:nth-child(2n){background-color:var(--codeblock-bg)}.custom-md tr:hover td{background-color:var(--btn-plain-bg-hover);transition:none}.custom-md .katex-display{margin-block:calc(var(--spacing,.25rem) * 4);box-sizing:border-box;-webkit-overflow-scrolling:touch;width:100%;padding-top:.5rem;padding-bottom:6px;overflow:auto hidden}.custom-md .katex-display::-webkit-scrollbar{width:6px;height:6px}.custom-md .katex-display::-webkit-scrollbar-track{background:0 0}.custom-md .katex-display::-webkit-scrollbar-thumb{background:var(--scrollbar-bg);border-radius:4px}.custom-md .katex-display::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-bg-hover)}.custom-md .katex-display::-webkit-scrollbar-thumb:active{background:var(--scrollbar-bg-active)}.custom-md .katex-display>.katex{width:fit-content;min-width:calc(100% - 2px);display:block}.custom-md .katex-display>.katex:has(.tag)>.katex-html{box-sizing:border-box;padding-right:3rem;display:block}.custom-md .expressive-code :is(ul,ol) li::marker{color:inherit}:root:not(.dark) .custom-md spoiler{--_spoiler-mask:var(--primary)}@supports (color:color-mix(in lab,red,red)){:root:not(.dark) .custom-md spoiler{--_spoiler-mask:color-mix(in oklch,var(--primary) 55%,#fff 45%)}}.toc-scroll-container{-webkit-overflow-scrolling:touch;scroll-behavior:smooth;padding-right:.125rem;overflow:hidden auto}.toc-content{contain:layout;flex-direction:column;align-items:stretch;gap:.28rem;padding:.125rem 0;overflow:visible}.toc-content,.toc-item{box-sizing:border-box;width:100%;max-width:100%;display:flex;position:relative}.toc-item{color:inherit;border-radius:.875rem;flex-shrink:0;align-items:center;gap:.55rem;min-width:0;min-height:2.2rem;padding:.48rem .62rem;text-decoration:none;transition:background-color .14s,transform .14s,color .14s;overflow:hidden}.toc-item:hover{background:var(--toc-btn-hover)}@supports (color:color-mix(in lab,red,red)){.toc-item:hover{background:color-mix(in oklab,var(--toc-btn-hover) 84%,transparent)}}.toc-item:hover{transform:translate(1px)}.toc-item:active{background:var(--toc-btn-active)}@supports (color:color-mix(in lab,red,red)){.toc-item:active{background:color-mix(in oklab,var(--toc-btn-active) 88%,transparent)}}.toc-item.toc-level-1{padding-left:1.08rem}.toc-item.toc-level-2{padding-left:1.62rem}.toc-label{text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box;letter-spacing:.01em;flex:1;min-width:0;max-width:calc(100% - 2.4rem);font-size:.86rem;line-height:1.3;overflow:hidden}.toc-label-primary{color:var(--content-meta)}@supports (color:color-mix(in lab,red,red)){.toc-label-primary{color:color-mix(in oklab,var(--content-meta) 78%,var(--primary))}}.toc-label-secondary{color:var(--content-meta)}@supports (color:color-mix(in lab,red,red)){.toc-label-secondary{color:color-mix(in oklab,var(--content-meta) 88%,transparent)}}.toc-badge{border-radius:.5rem;flex-shrink:0;place-items:center;width:1.35rem;height:1.35rem;font-size:.68rem;font-weight:700;line-height:1;display:grid}.toc-badge-index{background:var(--toc-badge-bg);color:var(--btn-content)}.toc-badge-dot{background:var(--primary);border-radius:999px;width:.48rem;height:.48rem}@supports (color:color-mix(in lab,red,red)){.toc-badge-dot{background:color-mix(in oklab,var(--primary) 26%,var(--line-color))}}.toc-badge-dot-sm{background:var(--primary);width:.34rem;height:.34rem}@supports (color:color-mix(in lab,red,red)){.toc-badge-dot-sm{background:color-mix(in oklab,var(--primary) 16%,var(--line-color))}}.toc-item.visible .toc-badge-dot,.toc-item.visible .toc-badge-dot-sm{background:var(--primary)}.toc-active-indicator{background:var(--toc-btn-hover);border:2px dashed var(--toc-btn-hover);z-index:-1;border-radius:.75rem;transition:top .18s,height .18s,opacity .14s,background .14s,border-color .14s;position:absolute;left:0;right:0}.group:hover .toc-active-indicator{border-color:var(--toc-btn-active);background:0 0}@media not all and (min-width:768px){.toc-item{border-radius:.78rem;padding:.44rem .58rem}.toc-item.toc-level-1{padding-left:.94rem}.toc-item.toc-level-2{padding-left:1.34rem}}.scrollbar-base.os-scrollbar{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4,0,.2,1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));pointer-events:unset}.scrollbar-base.os-scrollbar.os-scrollbar-horizontal{height:calc(var(--spacing,.25rem) * 4);padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:var(--spacing,.25rem)}.scrollbar-base.os-scrollbar.os-scrollbar-horizontal .os-scrollbar-track .os-scrollbar-handle{height:var(--spacing,.25rem);border-radius:3.40282e+38px}.scrollbar-base.os-scrollbar.os-scrollbar-horizontal:hover .os-scrollbar-track .os-scrollbar-handle{height:calc(var(--spacing,.25rem) * 2)}.scrollbar-base.os-scrollbar.os-scrollbar-vertical{width:calc(var(--spacing,.25rem) * 4);padding-inline:var(--spacing,.25rem);padding-block:var(--spacing,.25rem)}.scrollbar-base.os-scrollbar.os-scrollbar-vertical .os-scrollbar-track .os-scrollbar-handle{width:var(--spacing,.25rem);border-radius:3.40282e+38px}.scrollbar-base.os-scrollbar.os-scrollbar-vertical:hover .os-scrollbar-track .os-scrollbar-handle{width:calc(var(--spacing,.25rem) * 2)}.os-scrollbar.scrollbar-auto{--os-handle-bg:var(--scrollbar-bg);--os-handle-bg-hover:var(--scrollbar-bg-hover);--os-handle-bg-active:var(--scrollbar-bg-active)}.os-scrollbar.scrollbar-dark{--os-handle-bg:var(--scrollbar-bg-dark);--os-handle-bg-hover:var(--scrollbar-bg-hover-dark);--os-handle-bg-active:var(--scrollbar-bg-active-dark)}.os-scrollbar.scrollbar-light{--os-handle-bg:var(--scrollbar-bg-light);--os-handle-bg-hover:var(--scrollbar-bg-hover-light);--os-handle-bg-active:var(--scrollbar-bg-active-light)}:root{--breakpoint-mobile:768px;--breakpoint-tablet:1280px;--breakpoint-desktop:1920px;--widget-gap-mobile:.75rem;--widget-gap-tablet:1rem;--widget-gap-desktop:1.25rem;--widget-animation-duration:.3s;--widget-animation-timing:ease-in-out;--sidebar-width-mobile:100%;--sidebar-width-tablet:280px;--sidebar-width-desktop:320px;--widget-min-height:60px;--widget-max-height-mobile:200px;--widget-max-height-tablet:300px;--widget-max-height-desktop:400px}.widget-container{min-height:var(--widget-min-height);transition:all var(--widget-animation-duration) var(--widget-animation-timing);overflow:hidden}.widget-container:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.widget-container.widget-hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.sidebar-top-section{margin-bottom:1rem}.sidebar-sticky-section{z-index:10;position:sticky;top:1rem}.widget-container[data-widget-type=profile]{min-height:120px}@media not all and (min-width:768px){.widget-container[data-widget-type=profile]{min-height:100px}}.widget-container[data-widget-type=announcement]{min-height:80px}@media not all and (min-width:768px){.widget-container[data-widget-type=announcement]{min-height:60px;font-size:.875rem}}.widget-container[data-widget-type=categories],.widget-container[data-widget-type=tags]{scrollbar-width:thin;scrollbar-color:#9ca3af80 transparent;overflow-y:auto}.widget-container[data-widget-type=categories]::-webkit-scrollbar,.widget-container[data-widget-type=tags]::-webkit-scrollbar{width:4px}.widget-container[data-widget-type=categories]::-webkit-scrollbar-track,.widget-container[data-widget-type=tags]::-webkit-scrollbar-track{background:0 0}.widget-container[data-widget-type=categories]::-webkit-scrollbar-thumb,.widget-container[data-widget-type=tags]::-webkit-scrollbar-thumb{background-color:#9ca3af80;border-radius:2px}.widget-container[data-widget-type=toc]{max-height:400px;overflow-y:auto}@media not all and (min-width:768px){.widget-container[data-widget-type=toc]{display:none}}.widget-container[data-widget-type=music-player]{min-height:100px;max-height:150px}@media not all and (min-width:768px){.widget-container[data-widget-type=music-player]{min-height:80px;max-height:120px}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.widget-animation-fade{animation:fadeIn var(--widget-animation-duration) var(--widget-animation-timing) forwards}.widget-animation-slide{animation:slideIn var(--widget-animation-duration) var(--widget-animation-timing) forwards}.widget-animation-scale{animation:scaleIn var(--widget-animation-duration) var(--widget-animation-timing) forwards}.widget-container{opacity:0}.widget-container.widget-animated{opacity:1}.widget-loading{position:relative;overflow:hidden}.widget-loading:before{content:"";background:linear-gradient(90deg,#0000,#fff3,#0000);width:100%;height:100%;animation:shimmer 1.5s infinite;position:absolute;top:0;left:-100%}@keyframes shimmer{0%{left:-100%}to{left:100%}}.widget-error{color:#dc2626;background-color:#fef2f2;border:2px dashed #ef4444}.widget-empty,.widget-error{text-align:center;justify-content:center;align-items:center;min-height:80px;font-size:.875rem;display:flex}.widget-empty{color:#6b7280;background-color:#f9fafb;border:2px dashed #d1d5db}@media (prefers-color-scheme:dark){.widget-container:hover{box-shadow:0 4px 12px #0000004d}.widget-container.widget-hover{box-shadow:0 4px 12px #0006}.widget-error{color:#fca5a5;background-color:#450a0a;border-color:#f87171}.widget-empty{color:#9ca3af;background-color:#111827;border-color:#4b5563}.widget-loading:before{background:linear-gradient(90deg,#0000,#ffffff1a,#0000)}}@media (prefers-contrast:high){.widget-container{border:2px solid}.widget-container:hover{border-width:3px}}@media (prefers-reduced-motion:reduce){.widget-animation-fade,.widget-animation-scale,.widget-animation-slide,.widget-container{transition:none;animation:none}.widget-container{opacity:1;transform:none}.widget-container:hover{transform:none}}.widget-hidden{display:none!important}.widget-visible{display:block!important}.widget-compact{padding:.5rem!important;font-size:.875rem!important}.widget-expanded{padding:1.5rem!important;font-size:1rem!important}[data-debug=true] .widget-container{border:1px solid #3b82f6;position:relative}[data-debug=true] .widget-container:before{content:attr(data-widget-type) " [" attr(data-widget-order) "]";color:#fff;z-index:1000;background:#3b82f6;padding:2px 4px;font-size:10px;position:absolute;top:-1px;left:-1px}@font-face{font-family:Zen Maru Gothic;src:url(/fonts/ZenMaruGothic-Medium.ttf)format("truetype");font-display:swap;font-weight:500}@font-face{font-family:Loli;src:url(/fonts/loli.ttf)format("truetype");font-display:swap}:root{--font-body:"Zen Maru Gothic";--font-cjk:"Loli";--page-width:90rem;--banner-height-extend:30vh}body,html{min-height:100%}body{background:var(--page-bg);color:#000000e6;margin:0}.dark body{color:#ffffffe6}button,input{font:inherit}a{color:inherit}.markdown-shell .custom-md{min-width:0}.custom-md .admonition{position:relative}.custom-md .admonition .bdm-title{align-items:center;margin-bottom:.25rem;font-weight:700;display:flex}.custom-md .bdm-tip{border-color:var(--admonitions-color-tip)}.custom-md .bdm-tip .bdm-title{color:var(--admonitions-color-tip)}.custom-md .bdm-note{border-color:var(--admonitions-color-note)}.custom-md .bdm-note .bdm-title{color:var(--admonitions-color-note)}.custom-md .bdm-important{border-color:var(--admonitions-color-important)}.custom-md .bdm-important .bdm-title{color:var(--admonitions-color-important)}.custom-md .bdm-warning{border-color:var(--admonitions-color-warning)}.custom-md .bdm-warning .bdm-title{color:var(--admonitions-color-warning)}.custom-md .bdm-caution{border-color:var(--admonitions-color-caution)}.custom-md .bdm-caution .bdm-title{color:var(--admonitions-color-caution)}.image-grid{grid-template-columns:repeat(var(--image-grid-columns),minmax(0,1fr));gap:.75rem;margin:1.25rem 0;display:grid}.image-grid__item{background:var(--btn-regular-bg);border-radius:.75rem;min-width:0;margin:0;overflow:hidden}.image-grid__link{aspect-ratio:var(--image-grid-aspect-ratio);display:block;overflow:hidden}.image-grid__link img{object-fit:var(--image-grid-fit);border-radius:0;width:100%;height:100%;margin:0}.image-grid__caption{color:#0009;padding:.55rem .7rem;font-size:.75rem}.dark .image-grid__caption{color:#fff9}@media (max-width:767px){.image-grid{grid-template-columns:repeat(min(2,var(--image-grid-columns)),minmax(0,1fr))}}.mermaid,.plantuml{background:var(--codeblock-bg);text-align:center;border-radius:.75rem;margin:1.5rem 0;padding:1rem;overflow-x:auto}.plantuml img{max-width:100%;margin:auto}.card-github{border:1px solid var(--line-divider);background:var(--card-bg);border-radius:.75rem;margin:1rem 0;padding:1rem;text-decoration:none;display:block}.gc-titlebar{align-items:center;gap:.35rem;font-weight:700;display:flex}.gc-description{color:#0000008c;margin-top:.5rem}.dark .gc-description{color:#ffffff8c}.page-enter{animation:fade-in-up .5s both}@keyframes fade-in-up{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:none}}@keyframes banner-ken-burns{0%{transform:scale(1.03)}to{transform:scale(1.13)}}.banner-kb{animation:banner-ken-burns var(--banner-kb-duration) ease-out forwards;animation-play-state:inherit}.banner-kb.banner-crossfade{animation:banner-ken-burns var(--banner-kb-duration) ease-out forwards,banner-crossfade var(--banner-fade-duration) ease-in-out both;animation-play-state:inherit}@keyframes banner-crossfade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.banner-kb,.banner-kb.banner-crossfade{animation:none}}@keyframes loading{0%{transform:translate(-110%)}55%{transform:translate(75%)}to{transform:translate(170%)}}@media (min-width:1280px){body.enable-banner #banner-wrapper{height:65vh}body.enable-banner #banner-wrapper,body.enable-banner #main-grid{transform:translateY(var(--banner-height-extend))}body.enable-banner #top-row{height:calc(65vh - 4.5rem)}}.fullscreen-wallpaper{transition:opacity .5s}body.wallpaper-transparent .fullscreen-wallpaper{opacity:var(--wallpaper-opacity);filter:blur(var(--wallpaper-blur))}body.wallpaper-transparent{background:0 0}@media (min-width:768px){html[data-page-scaling=true] body{zoom:var(--page-scale,1)}}body[data-tag-style=classic] .post-tag-classic{border:1px solid var(--primary)}@supports (color:color-mix(in lab,red,red)){body[data-tag-style=classic] .post-tag-classic{border:1px solid color-mix(in oklch,var(--primary) 45%,transparent)}}body[data-tag-style=new] .post-tag-new{border:1px solid #0000;transition:background-color .15s,color .15s}body[data-tag-style=new] .post-tag-new:hover{background:var(--primary);color:#fff}.code-copy{z-index:2;background:var(--btn-regular-bg);color:var(--btn-content);cursor:pointer;border:0;border-radius:.45rem;padding:.3rem .55rem;font-size:.72rem;position:absolute;top:.55rem;right:.55rem}.custom-md pre{position:relative}.sakura-petal{background:url(/sakura.webp) 50%/contain no-repeat;width:1rem;height:1rem;animation:sakura-fall linear infinite;position:absolute;top:-4rem}@keyframes sakura-fall{0%{transform:translateY(-5vh)rotate(0)}50%{transform:translate(5vw,50vh)rotate(220deg)}to{transform:translate(-4vw,110vh)rotate(480deg)}}@media (max-width:767px){#top-row{height:0;position:relative;overflow:visible}#navbar-wrapper{padding:.5rem;position:fixed;inset:0 0 auto}#navbar>div{border-radius:var(--radius-large)}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@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}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}