@layer base{html:focus-within{scroll-behavior:smooth}:root{scrollbar-width:thin;--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track-piece{background:var(--joh-c-scrollbar-track-bg);border-radius:6px}::-webkit-scrollbar-thumb{background:var(--joh-c-scrollbar-track-bg);border-radius:6px}::-webkit-scrollbar-thumb:active{background:var(--joh-c-text-2)}@media (prefers-reduced-motion:reduce){*,:before,:after{background-attachment:initial!important;scroll-behavior:auto!important;transition-duration:0s!important;transition-delay:0s!important;animation-duration:1ms!important;animation-iteration-count:1!important;animation-delay:-1ms!important}}*,:before,:after{box-sizing:border-box}html,body{font-synthesis:style;text-autospace:normal}html{-webkit-text-size-adjust:100%;font-size:16px;line-height:1.4}html.dark{--lightningcss-light: ;--lightningcss-dark:initial;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{width:100%;min-width:320px;min-height:100vh;line-height:24px;font-family:var(--joh-font-family-base);color:var(--joh-c-text-1);background-color:var(--joh-c-bg);font-synthesis:style;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:16px;font-weight:400;overflow-x:hidden}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;font-size:16px;font-weight:400;line-height:24px}p{margin:0}strong,b{font-weight:600}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}ol,ul{margin:0;padding:0;list-style:none}blockquote{margin:0}pre,code,kbd,samp{font-family:var(--joh-font-family-mono)}img,svg,video,canvas,audio,iframe,embed,object{display:block}figure{margin:0}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{line-height:inherit;color:inherit;border:0;padding:0}button{background-color:#0000;background-image:none;padding:0;font-family:inherit}button:enabled,[role=button]:enabled{cursor:pointer}button:focus{outline:4px auto -webkit-focus-ring-color}button:focus-visible{outline:4px auto -webkit-focus-ring-color}button:focus:not(:focus-visible){outline:none!important}input:focus,textarea:focus,select:focus{outline:none}table{border-collapse:collapse}input{background-color:#0000}input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}input[type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}:-webkit-any(input:-ms-placeholder-shown,textarea:-ms-placeholder-shown){color:var(--joh-c-text-3)}:is(input:-ms-placeholder-shown,textarea:-ms-placeholder-shown){color:var(--joh-c-text-3)}:-webkit-any(input:placeholder-shown,textarea:placeholder-shown){color:var(--joh-c-text-3)}:is(input:placeholder-shown,textarea:placeholder-shown){color:var(--joh-c-text-3)}input::-moz-placeholder{color:var(--joh-c-text-3)}textarea::-moz-placeholder{color:var(--joh-c-text-3)}input::placeholder,textarea::placeholder{color:var(--joh-c-text-3)}input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}select{-webkit-appearance:none}fieldset{margin:0;padding:0}h1,h2,h3,h4,h5,h6,li,p{overflow-wrap:break-word}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=number]::-webkit-inner-spin-button{height:auto}[type=number]::-webkit-outer-spin-button{height:auto}a:not([class]){-webkit-text-decoration-skip-ink:auto;text-decoration-skip-ink:auto}img:not([src]),img[src=""]{opacity:0}svg:not(:root){overflow:hidden}button,input{overflow:visible}:root{--joh-c-white:#fff;--joh-c-black:#000;--joh-c-primary:#2076df;--joh-c-neutral:var(--joh-c-black);--joh-c-neutral-inverse:var(--joh-c-white)}html.dark{--joh-c-neutral:var(--joh-c-white);--joh-c-neutral-inverse:var(--joh-c-black)}:root{--joh-c-gray-1:#dddde3;--joh-c-gray-2:#e4e4e9;--joh-c-gray-3:#ebebef;--joh-c-gray-soft:#8e96aa24;--joh-c-indigo-1:#2076df;--joh-c-indigo-2:#00a0e9;--joh-c-indigo-3:#5672cd;--joh-c-indigo-soft:#646cff24;--joh-c-purple-1:#6f42c1;--joh-c-purple-2:#7e4cc9;--joh-c-purple-3:#8e5cd9;--joh-c-purple-soft:#9f7aea24;--joh-c-green-1:#18794e;--joh-c-green-2:#299764;--joh-c-green-3:#30a46c;--joh-c-green-soft:#10b98124;--joh-c-yellow-1:#915930;--joh-c-yellow-2:#946300;--joh-c-yellow-3:#9f6a00;--joh-c-yellow-soft:#eab30824;--joh-c-red-1:#b8272c;--joh-c-red-2:#d5393e;--joh-c-red-3:#e0575b;--joh-c-red-soft:#f43f5e24;--joh-c-sponsor:#db2777}html.dark{--joh-c-gray-1:#515c67;--joh-c-gray-2:#414853;--joh-c-gray-3:#32363f;--joh-c-gray-soft:#65758529;--joh-c-indigo-1:#a8b1ff;--joh-c-indigo-2:#5c73e7;--joh-c-indigo-3:#3e63dd;--joh-c-indigo-soft:#646cff29;--joh-c-purple-1:#c8abfa;--joh-c-purple-2:#a879e6;--joh-c-purple-3:#8e5cd9;--joh-c-purple-soft:#9f7aea29;--joh-c-green-1:#3dd68c;--joh-c-green-2:#30a46c;--joh-c-green-3:#298459;--joh-c-green-soft:#10b98129;--joh-c-yellow-1:#f9b44e;--joh-c-yellow-2:#da8b17;--joh-c-yellow-3:#a46a0a;--joh-c-yellow-soft:#eab30829;--joh-c-red-1:#f66f81;--joh-c-red-2:#f14158;--joh-c-red-3:#b62a3c;--joh-c-red-soft:#f43f5e29}:root{--joh-c-bg:#fff;--joh-c-bg-alt:#f6f6f7;--joh-c-bg-soft:#f6f6f7}html.dark{--joh-c-bg:#1b1b1f;--joh-c-bg-alt:#161618;--joh-c-bg-soft:#202127}:root{--joh-c-border:#c2c2c4;--joh-c-divider:#e2e2e3;--joh-c-gutter:#e2e2e3}html.dark{--joh-c-border:#3c3f44;--joh-c-divider:#2e2e32;--joh-c-gutter:#000}:root{--joh-c-text-1:#222;--joh-c-text-2:#222222c7;--joh-c-text-3:#2222228f;--joh-c-text-muted:#999}html.dark{--joh-c-text-1:#fffff5db;--joh-c-text-2:#ebebf599;--joh-c-text-3:#ebebf561;--joh-c-text-muted:#8b8b8b}:root{--joh-c-default-1:var(--joh-c-gray-1);--joh-c-default-2:var(--joh-c-gray-2);--joh-c-default-3:var(--joh-c-gray-3);--joh-c-default-soft:var(--joh-c-gray-soft);--joh-c-brand-1:var(--joh-c-indigo-1);--joh-c-brand-2:var(--joh-c-indigo-2);--joh-c-brand-3:var(--joh-c-indigo-3);--joh-c-brand-soft:var(--joh-c-indigo-soft);--joh-c-brand:var(--joh-c-brand-1);--joh-c-tip-1:var(--joh-c-brand-1);--joh-c-tip-2:var(--joh-c-brand-2);--joh-c-tip-3:var(--joh-c-brand-3);--joh-c-tip-soft:var(--joh-c-brand-soft);--joh-c-note-1:var(--joh-c-brand-1);--joh-c-note-2:var(--joh-c-brand-2);--joh-c-note-3:var(--joh-c-brand-3);--joh-c-note-soft:var(--joh-c-brand-soft);--joh-c-success-1:var(--joh-c-green-1);--joh-c-success-2:var(--joh-c-green-2);--joh-c-success-3:var(--joh-c-green-3);--joh-c-success-soft:var(--joh-c-green-soft);--joh-c-important-1:var(--joh-c-purple-1);--joh-c-important-2:var(--joh-c-purple-2);--joh-c-important-3:var(--joh-c-purple-3);--joh-c-important-soft:var(--joh-c-purple-soft);--joh-c-warning-1:var(--joh-c-yellow-1);--joh-c-warning-2:var(--joh-c-yellow-2);--joh-c-warning-3:var(--joh-c-yellow-3);--joh-c-warning-soft:var(--joh-c-yellow-soft);--joh-c-danger-1:var(--joh-c-red-1);--joh-c-danger-2:var(--joh-c-red-2);--joh-c-danger-3:var(--joh-c-red-3);--joh-c-danger-soft:var(--joh-c-red-soft);--joh-c-caution-1:var(--joh-c-red-1);--joh-c-caution-2:var(--joh-c-red-2);--joh-c-caution-3:var(--joh-c-red-3);--joh-c-caution-soft:var(--joh-c-red-soft);--joh-c-focus-ring:color-mix(in srgb, var(--joh-c-text-1) 12%, transparent)}html.dark{--joh-c-focus-ring:color-mix(in srgb, var(--joh-c-text-1) 18%, transparent)}:root{--joh-c-mark-bg:#00bfff5e}html.dark{--joh-c-mark-bg:#00bfff3d}:root{--joh-font-family-base:"Source Han Sans SC VF", "Source Han Serif SC VF", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--joh-font-family-serif:"Source Han Serif CN VF", "Times New Roman";--joh-font-family-mono:ui-monospace, "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace;font-optical-sizing:auto}:root:where(:lang(zh)){--joh-font-family-base:"Source Han Sans SC VF", "Source Han Serif SC VF", ui-sans-serif, system-ui, "PingFang SC", "Noto Sans CJK SC", "Noto Sans SC", "Heiti SC", "Microsoft YaHei", "DengXian", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"}:root{--joh-shadow-1:0 1px 2px #0000000a, 0 1px 2px #0000000f;--joh-shadow-2:0 3px 12px #00000012, 0 1px 4px #00000012;--joh-shadow-3:0 12px 32px #0000001a, 0 2px 6px #00000014;--joh-shadow-4:0 14px 44px #0000001f, 0 3px 9px #0000001f;--joh-shadow-5:0 18px 56px #00000029, 0 4px 12px #00000029;--joh-z-index-footer:10;--joh-z-index-header-hero:15;--joh-z-index-local-nav:20;--joh-z-index-nav:30;--joh-z-index-layout-top:40;--joh-z-index-backdrop:50;--joh-z-index-sidebar:60}@media (min-width:960px){:root{--joh-z-index-sidebar:25}}:root{--joh-layout-max-width:982px;--joh-icon-svg-arrow-down:url(data:image/svg+xml,%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20fill%3D%22none%22%20version%3D%221.1%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cg%3E%3Cg%20transform%3D%22matrix\(0%2C-1%2C1%2C0%2C-10.5859375%2C27.914794921875\)%22%3E%3Cpath%20d%3D%22M8.9573517109375%2C20.9574462109375L15.457628710937499%2C27.4573862109375C15.4711487109375%2C27.4708962109375%2C15.4849487109375%2C27.4839362109375%2C15.4990187109375%2C27.4965162109375C15.5130987109375%2C27.5124962109375%2C15.5277687109375%2C27.5281462109375%2C15.5430487109375%2C27.5434162109375C15.9335687109375%2C27.9339362109375%2C16.5667287109375%2C27.9339362109375%2C16.9572787109375%2C27.5433962109375L23.4572287109375%2C21.0430962109375C23.8477287109375%2C20.6525662109375%2C23.8477287109375%2C20.0194192109375%2C23.4572287109375%2C19.6289022109375C23.0667287109375%2C19.2383780109375%2C22.4335287109375%2C19.2383780109375%2C22.042928710937503%2C19.6289212109375L16.2504287109375%2C25.4217862109375L10.3715287109375%2C19.5431982109375C9.9809987109375%2C19.1526915109375%2C9.3478497109375%2C19.1526999109375%2C8.9573327109375%2C19.5432172109375C8.5668082109375%2C19.9337412109375%2C8.5668082109375%2C20.5669062109375%2C8.9573517109375%2C20.9574462109375Z%22%20fill-rule%3D%22evenodd%22%20fill%3D%22%23222222%22%20fill-opacity%3D%221%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E)}html{--joh-search-shell-key-modifier:"Ctrl"}html.mac{--joh-search-shell-key-modifier:"⌘"}:root{--joh-nav-height:64px;--joh-nav-logo-height:42px;--joh-c-nav-overlay-bg:#fffffff2}html.dark{--joh-c-nav-overlay-bg:#1b1b1ff2}:root{--joh-c-hero-heading-bg:#bfbfbf;--joh-c-hero-banner-bg:#222;--joh-c-journal-frontpage-bg:#222;--joh-c-hero-overlay:#0000001a;--joh-hero-gradient-overlay:linear-gradient(to bottom, #0000004d, transparent, #0009);--joh-hero-text-shadow:0 2px 8px #00000040, 0 4px 15px #0000004d;--joh-custom-block-font-size:.9375rem;--joh-custom-block-line-height:1.75;--joh-custom-block-border-radius:12px;--joh-custom-block-border-width:1px;--joh-c-custom-block-bg:color-mix(in srgb, var(--joh-c-bg) 92%, var(--joh-c-text-1) 8%);--joh-c-custom-block-code-bg:#ffffff80;--joh-c-custom-block-tip-bg:color-mix(in srgb, var(--joh-c-bg) 88%, var(--joh-c-success-1) 12%);--joh-c-custom-block-important-bg:color-mix(in srgb, var(--joh-c-bg) 88%, var(--joh-c-important-1) 12%);--joh-c-custom-block-warning-bg:color-mix(in srgb, var(--joh-c-bg) 88%, var(--joh-c-warning-1) 12%);--joh-c-custom-block-caution-bg:color-mix(in srgb, var(--joh-c-bg) 88%, var(--joh-c-caution-1) 12%);--joh-code-line-height:1.7;--joh-code-font-size:.875em;--joh-code-block-padding-top:1.25rem;--joh-code-block-padding-right:1.5rem;--joh-code-block-padding-bottom:1.25rem;--joh-code-block-padding-left:1.5rem;--joh-code-block-margin-block:16px;--joh-code-block-mobile-bleed:24px;--joh-code-block-mobile-item-radius:8px;--joh-code-lang-top:2px;--joh-code-lang-right:8px;--joh-code-lang-font-size:12px;--joh-code-lang-font-weight:500;--joh-code-line-number-width:32px;--joh-header-anchor-symbol:"#";--joh-c-scrollbar-track-bg:#0000001a}html.dark{--joh-c-scrollbar-track-bg:#ffffff1a}:root{--duration-stagger:40ms;--duration-micro:80ms;--duration-quick:.15s;--duration-fast:.25s;--duration-medium:.35s;--duration-slow:.4s;--duration-very-slow:.5s;--distance-micro:4px;--distance-small:6px;--distance-base:8px;--distance-medium:12px;--distance-large:30px;--ease-smooth-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:ease-in-out;--ease-out:ease-out;--ease-linear:linear;--ease-bounce:cubic-bezier(.34, 1.36, .64, 1);--ease-bounce-strong:cubic-bezier(.34, 3.85, .64, 1);--blur-small:2px;--blur-medium:3px;--blur-large:8px;--scale-large:.96;--scale-medium:.97;--scale-small:.98;--scale-tiny:.99;--text-swap-dur:var(--duration-quick);--text-swap-translate-y:var(--distance-base);--text-swap-blur:var(--blur-small);--text-swap-ease:var(--ease-out)}.t-text-swap{filter:blur();opacity:1;transition:transform var(--text-swap-dur) var(--text-swap-ease), filter var(--text-swap-dur) var(--text-swap-ease), opacity var(--text-swap-dur) var(--text-swap-ease);will-change:transform, filter, opacity;display:inline-block;transform:translateY(0)}.t-text-swap.is-exit{transform:translateY(calc(var(--text-swap-translate-y) * -1));filter:blur(var(--text-swap-blur));opacity:0}.t-text-swap.is-enter-start{transform:translateY(var(--text-swap-translate-y));filter:blur(var(--text-swap-blur));opacity:0;transition:none}@media (prefers-reduced-motion:reduce){.t-text-swap{transition:none!important}}.loading-dots:after{content:"...";vertical-align:baseline;text-align:left;width:3ch;line-height:1;animation:2s infinite dots;display:inline-block;overflow:hidden}@keyframes dots{0%{clip-path:inset(0 3ch 0 0);opacity:1}25%{clip-path:inset(0 2ch 0 0);opacity:1}50%{clip-path:inset(0 1ch 0 0);opacity:1}70%{clip-path:inset(0);opacity:1}to{clip-path:inset(0);opacity:0}}}@layer layouts{.Layout{flex-direction:column;min-height:100vh;display:flex}.Content{width:100%;min-height:calc(100svh - var(--joh-nav-height));flex:1}.Content:not(.has-aside)>.container>.Aside{display:none}.Content .container{max-width:var(--joh-layout-max-width);margin:0 auto}.Content .content{min-width:0}@media (min-width:420px){.Content{padding:0 16px}}@media (min-width:720px){.Content{padding:0 32px}}@media (min-width:1280px){.Content .container{justify-content:center;display:flex}.Content .content{flex:1}.Content .Aside{display:block}}}@layer components{@keyframes search-trigger-expand-out{0%{opacity:1}to{opacity:.12}}@keyframes search-trigger-settle-in{0%{opacity:.2}70%{opacity:1}to{opacity:1}}@keyframes search-trigger-collapse-out{0%{opacity:1}to{opacity:.1}}@keyframes search-trigger-return-in{0%{opacity:.16}to{opacity:1}}@supports (view-transition-name:none){@media (min-width:720px){html[data-search-transition=active] .NavBarSocialLink{view-transition-name:navbar-social-slot}}@media (max-width:719px){html[data-search-transition=active] .NavBarHamburger{view-transition-name:navbar-hamburger}}html[data-search-transition=active] body:not(.search) .NavBarSearch .SearchShell--compact[data-search-transition-target=site-search-trigger],html[data-search-transition=active] body.search #search .SearchShell--page[data-search-transition-target=site-search-trigger]{view-transition-name:site-search-trigger}@media (max-width:719px){html[data-search-transition=active] .NavBarSearch .SearchShell--compact,html[data-search-transition=active] #search .SearchShell--page{view-transition-name:none!important}}html[data-search-transition=active]::view-transition-group(root){animation:none}html[data-search-transition=active]::view-transition-old(root){animation:none}html[data-search-transition=active]::view-transition-new(root){animation:none}html[data-search-transition=active]::view-transition-group(site-search-trigger){z-index:20;animation-duration:.42s;animation-timing-function:cubic-bezier(.33,0,.13,1)}html[data-search-transition=active]::view-transition-group(navbar-social-slot){z-index:19;animation-duration:.32s;animation-timing-function:cubic-bezier(.33,0,.13,1)}html[data-search-transition=active]::view-transition-group(navbar-hamburger){z-index:21;animation-duration:.24s;animation-timing-function:cubic-bezier(.33,0,.13,1)}html[data-search-transition=active][data-search-transition-scope=enter-search]::view-transition-old(site-search-trigger){animation:.42s cubic-bezier(.33,0,.13,1) both search-trigger-expand-out}html[data-search-transition=active][data-search-transition-scope=enter-search]::view-transition-new(site-search-trigger){animation:.42s cubic-bezier(.33,0,.13,1) both search-trigger-settle-in}html[data-search-transition=active][data-search-transition-scope=leave-search]::view-transition-old(site-search-trigger){animation:.42s cubic-bezier(.33,0,.13,1) both search-trigger-collapse-out}html[data-search-transition=active][data-search-transition-scope=leave-search]::view-transition-new(site-search-trigger){animation:.42s cubic-bezier(.33,0,.13,1) both search-trigger-return-in}}.NavBar{--searchbox-width:48px;z-index:var(--joh-z-index-nav);width:100%;height:var(--joh-nav-height);white-space:nowrap;transition:background-color .5s;position:relative}.NavBar.open{background:var(--joh-c-nav-overlay-bg)!important;position:fixed!important;top:0!important}.NavBar.open~.Content{margin-top:var(--joh-nav-height)}.NavBar{background-color:var(--joh-c-bg)}@media (min-width:960px){.NavBar{margin-top:8px}}.NavBar .wrapper{padding:0 8px}@media (min-width:720px){.NavBar .wrapper{padding:0 32px}}.NavBar .container{max-width:var(--joh-layout-max-width);height:var(--joh-nav-height);justify-content:space-between;margin:0 auto;display:flex}.NavBar .title{height:calc(var(--joh-nav-height) - 1px);flex-shrink:0;transition:background-color .5s}.NavBar .content{flex-grow:1}.NavBar .content-body{height:var(--joh-nav-height);justify-content:flex-end;align-items:center;transition:background-color .5s;display:flex}@media (min-width:960px){.NavBar .content-body{background-color:#0000;position:relative}.NavBar .divider-line,.NavBar .divider{background-color:var(--joh-c-gutter)}}@media (max-width:719px){.NavBar .NavBarSocialLink{text-align:center;width:100%;font-size:18px!important;line-height:24px!important;display:inline-block!important}}.NavBar a.NavBarMenuLink.Link{line-height:var(--joh-nav-height);color:var(--joh-c-text-1);align-items:center;padding:0 12px;font-size:14px;font-weight:400;transition:color .25s;display:flex}.NavBar .NavBarTitle>.title{height:var(--joh-nav-height);color:var(--joh-c-text-1);border-bottom:1px solid #0000;align-items:center;font-size:20px;font-weight:700;transition:opacity .25s;display:flex}@media (max-width:719px){.NavBar .NavBarTitle>.title{display:none}}@media (min-width:960px){.NavBar .NavBarTitle>.title .title{flex-shrink:0}}.NavBar .NavBarTitle>.title .logo{height:var(--joh-nav-logo-height);margin-top:-8px;margin-right:8px}.NavBar .NavBarMenu{display:none}@media (min-width:720px){.NavBar .NavBarMenu{flex-grow:1;padding-left:24px;display:flex}}@media (min-width:960px){.NavBar .NavBarMenu{padding-left:32px}}.NavBar .NavBarSearch{cursor:text}@media (min-width:720px){.NavBar .NavBarSearch{margin-left:8px}}.NavBar .NavBarSearch .SearchShell--compact{box-sizing:border-box;width:var(--searchbox-width);height:55px;color:var(--joh-c-text-1);background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;gap:6px;margin:0;padding:0;transition:border-color .25s,background-color .25s,color .25s;display:flex;overflow:hidden}.NavBar .NavBarSearch .SearchShell--compact:hover{background:0 0}.NavBar .NavBarSearch .SearchShell--compact:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.NavBar .NavBarSearch .SearchShell--compact:focus:not(:focus-visible){outline:none!important}.NavBar .NavBarSearch .SearchShellIcon{opacity:1;background-color:currentColor;flex-shrink:0;order:2;width:1rem;height:1rem;position:absolute;right:14px}@media (min-width:720px){.NavBar .NavBarSearch .SearchShell--compact{border:solid 2px var(--joh-c-text-1);background-color:var(--joh-c-bg-alt);justify-content:space-between;width:205px;height:35px;padding:0 10px 0 12px}.NavBar .NavBarSearch .SearchShell--compact:hover{background:var(--joh-c-bg-alt)}.NavBar .NavBarSearch .SearchShellBody{flex:1 1 0;order:1;justify-content:flex-start;align-items:center;gap:8px;min-width:0;display:flex}.NavBar .NavBarSearch .SearchShellIcon{margin-left:80px;position:relative;right:0}}@media (max-width:719px){.NavBar .NavBarSearch .SearchShellBody{justify-content:center;align-items:center;width:100%;display:flex}.NavBar .NavBarSearch .SearchShellBody>:not(.SearchShellIcon){display:none}.NavBar .NavBarSearch .SearchShellIcon{right:24px}}.NavBar .NavBarSearch .SearchShellLabel,.NavBar .NavBarSearch .SearchShellInput{text-align:left;white-space:nowrap;width:auto;min-width:0;color:var(--joh-c-text-2);opacity:.9;flex:0 auto;font-size:13px;font-weight:500;transition:all .25s;display:none;overflow:hidden}.NavBar .NavBarSearch .SearchShellLabel{pointer-events:none}.NavBar .NavBarSearch .SearchShellInput{pointer-events:none;background:0 0;border:0;padding:0}.NavBar .NavBarSearch .SearchShell--compact:hover .SearchShellIcon,.NavBar .NavBarSearch .SearchShell--compact:hover .SearchShellLabel,.NavBar .NavBarSearch .SearchShell--compact:hover .SearchShellInput{color:var(--joh-c-text-1)}@media (min-width:720px){.NavBar .NavBarSearch .SearchShellLabel,.NavBar .NavBarSearch .SearchShellInput{max-width:calc(100% - 56px);color:var(--joh-c-text-2);display:contents}}.NavBar .NavBarSearch .SearchShellKeys{flex:none;align-items:center;display:none}@media (min-width:720px){.NavBar .NavBarSearch .SearchShellKeys{display:flex}}.NavBar .NavBarSearch .SearchShellKey{border:1px solid var(--joh-c-divider);width:auto;min-width:0;height:22px;color:var(--joh-c-text-2);background-color:var(--joh-c-bg-alt);line-height:22px;font-family:var(--joh-font-family-base);border-right:none;border-radius:4px 0 0 4px;padding-left:6px;font-size:12px;font-weight:500;transition:color .5s,border-color .5s;display:block}.NavBar .NavBarSearch .SearchShellKey+.SearchShellKey{border-right:1px solid var(--joh-c-divider);border-left:none;border-radius:0 4px 4px 0;padding-left:2px;padding-right:6px}.NavBar .NavBarSearch .SearchShellKeyModifier{font-size:0!important}.NavBar .NavBarSearch .SearchShellKeyModifier:after{content:var(--joh-search-shell-key-modifier);letter-spacing:normal;color:var(--joh-c-text-2);font-size:12px}.NavBar .NavBarSearch .SearchShellKeyModifier>*{display:none}@media (max-width:419px){.NavBar .NavBarSearch{margin-left:0}}.NavBar .NavBarHamburger{width:var(--searchbox-width);height:var(--joh-nav-height);justify-content:center;align-items:center;display:flex}@media (min-width:720px){.NavBar .NavBarHamburger{display:none}}.NavBar .NavBarHamburger .container{width:1.25rem;height:1.25rem;cursor:inherit;flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.NavBar .NavBarHamburger .container>span{background-color:var(--joh-c-text-2);border-radius:2px;width:100%;height:2px;transition:top .25s,background-color .25s,transform .25s;display:inline-block}.NavBar .NavBarHamburger .container>span:nth-child(2){margin:4px 0}.NavBar .NavBarHamburger.open .container>span:first-child{transform:rotate(45deg)translate(2.5px,2.5px)}.NavBar .NavBarHamburger.open .container>span:nth-child(2){transform:scaleX(0)}.NavBar .NavBarHamburger.open .container>span:nth-child(3){transform-origin:50%;transform:rotate(-45deg)translate(6px,-6px)}.NavBar .NavBarSocialLink{cursor:default}.NavBar .NavScreen.open{opacity:1;z-index:var(--joh-z-index-sidebar);display:block}.NavBar .NavScreen{z-index:-1;top:calc(var(--joh-nav-height) - 1px);background-color:var(--joh-c-nav-overlay-bg);pointer-events:auto;opacity:0;transition-behavior:allow-discrete;width:100%;transition:all .25s;transition-property:display opacity transform;padding:0 32px;display:none;position:fixed;bottom:0;left:0;right:0;overflow-y:auto}@starting-style{.NavBar .NavScreen{opacity:0;transform:translateY(8px)}}.NavBar .NavScreen .container,.NavBar .NavScreen .NavScreenMenu{flex-flow:column;justify-content:flex-start;align-items:center;max-width:288px;margin:0 auto;padding:24px 0 0;display:flex}:is(.NavBar .NavScreen .container,.NavBar .NavScreen .NavScreenMenu) .NavScreenMenuLink{color:var(--joh-c-text-1);padding:12px 0 11px;font-size:14px;font-weight:500;line-height:24px;transition:border-color .25s,color .25s;display:block}:is(.NavBar .NavScreen .container,.NavBar .NavScreen .NavScreenMenu) .NavScreenMenuGroupLink{color:var(--joh-c-text-1);margin-left:12px;font-size:14px;font-weight:400;line-height:32px;transition:color .25s;display:block}:is(.NavBar .NavScreen .container,.NavBar .NavScreen .NavScreenMenu) .NavBarSocialLink{opacity:1;margin-right:0}@media (min-width:720px){.NavBar .NavScreen{display:none}}.joh-tag{align-items:baseline;column-gap:.1em;display:inline-flex}.joh-tag:before{content:var(--joh-header-anchor-symbol);color:var(--joh-c-text-muted);-webkit-user-select:none;user-select:none;font-weight:500;text-decoration:none}.TagsList{flex-flow:wrap;justify-content:flex-start;row-gap:8px;margin-top:6px;display:flex}.TagsList a{white-space:nowrap;margin-right:8px;font-size:18px;font-weight:500;line-height:24px}.TagsList .tag-count{color:var(--joh-c-text-muted);font-size:.8rem;display:none}.Footer{z-index:var(--joh-z-index-footer);background-color:var(--joh-c-bg);padding:8px 20px 32px;position:relative}.Footer .container{max-width:var(--joh-layout-max-width);margin:0 auto}.Footer .footer-column:not(:first-child){padding-top:24px}.Footer .footer-tags h3,.Footer .footer-friendlinks h3{color:var(--joh-c-text-muted);cursor:pointer;font-size:.9rem}.Footer .footer-friendlinks .footer-list{margin-top:6px}.Footer .footer-friendlinks .footer-list a{margin-right:8px;font-size:18px;line-height:24px}.Footer .footer-siteinfo-nav a{--padding:16px;padding-right:var(--padding)}.Footer .footer-siteinfo-nav a:after{content:"/";left:calc(var(--padding) / 2);position:relative}.Footer .footer-siteinfo-nav a:first-child{font-weight:700}.Footer .footer-siteinfo-nav a:nth-last-child(2):after,.Footer .footer-siteinfo-nav a:last-child:after{content:""}@media (min-width:640px){.Footer .footer-siteinfo{grid-column-gap:16px;grid-template-columns:repeat(2,1fr)}.Footer .footer-siteinfo-meta{text-align:right;margin-left:auto}}.Footer .footer-siteinfo-meta{color:var(--joh-c-text-muted)}.Footer .footer-contact-link{width:100%;display:inline-block}.Footer .footer-siteinfo-meta,.Footer .footer-contact-link{font-size:1rem}.Footer .footer-siteinfo{grid-row-gap:24px;padding-top:24px;display:grid}.AsideOutline .content{border-left:1px solid var(--joh-c-divider);padding-left:16px;font-size:13px;font-weight:500;position:relative}.AsideOutline .outline-marker{z-index:0;opacity:0;background-color:var(--joh-c-text-1);border-radius:2px;width:2px;height:18px;transition:top .25s cubic-bezier(0,1,.5,1),background-color .5s,opacity .25s;position:absolute;left:-1px}.AsideOutline .outline-title{font-size:14px;font-weight:600;line-height:32px}.AsideOutline .outline-link{color:var(--joh-c-text-2);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:400;line-height:32px;transition:color .5s;display:block;overflow:hidden}.AsideOutline .outline-link:hover,.AsideOutline .outline-link.active{color:var(--joh-c-text-1);transition:color .25s}.AsideOutline .DocOutlineItem>li>ul{padding-left:16px;padding-right:16px}.Aside{flex-direction:column;flex-shrink:0;margin-left:32px;display:flex}.Aside .aside-container{scrollbar-width:none;width:224px;height:100vh;padding-top:16px;position:sticky;top:32px;overflow:hidden auto}.Aside .aside-container::-webkit-scrollbar{display:none}.Aside .content{width:100%;margin:0 auto;position:relative}@media (min-width:1280px){.Aside .content{order:1;margin:0}}@media (max-width:1279px){.Aside{display:none}}:is(.joh-context a[href*="://"],.joh-context a[target=_blank]):not(.no-icon):after{vertical-align:middle;content:"";background-color:currentColor;flex-shrink:0;width:1.25em;height:1.25em;margin-top:-.125em;margin-left:.25em;display:inline-block;-webkit-mask:url(/svg/link.svg) 50%/100% 100% no-repeat;mask:url(/svg/link.svg) 50%/100% 100% no-repeat}.external-link-icon-enabled :is(.joh-context a[href*="://"],.joh-context a[target=_blank]):after{color:currentColor}}@layer pages;@layer utilities{.visually-hidden{white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}@media (max-width:719px){.hide-in-mobile{display:none}}@media (max-width:959px){.hide-in-pad{display:none}}}
