.sidebar-auth-error[data-v-eca3b9fa]{box-sizing:border-box;position:fixed;bottom:18px;left:80px;z-index:1500;max-width:min(340px,calc(100vw - 96px));padding:12px;border:2px solid var(--bl-ink);background:var(--bl-c-surface);box-shadow:var(--bl-shadow-sm);color:var(--bl-ink);font:var(--type-b2)}.sidebar-auth-error button[data-v-eca3b9fa]{margin-left:8px;border:2px solid var(--bl-ink);background:var(--bl-accent);color:var(--bl-ink);font:var(--type-l1-m)}.sidebar[data-v-eca3b9fa]{--rail-width: 64px;--item-size: 40px;--sidebar-ease: cubic-bezier(.2, .8, .2, 1);position:fixed;inset:0 auto 0 0;z-index:100;display:flex;flex-direction:column;box-sizing:border-box;width:var(--rail-width);padding:14px 12px 12px;overflow:hidden;background:var(--bl-c-surface, #fffdf8);box-shadow:inset -3px 0 0 var(--bl-ink, #171717);transition:width .26s var(--sidebar-ease)}.sidebar.is-expanded[data-v-eca3b9fa]{width:232px}.sidebar-brand[data-v-eca3b9fa]{display:flex;align-items:center;flex:0 0 var(--item-size);margin-bottom:14px;border-radius:3px;color:var(--bl-ink, #171717);text-decoration:none}.brand-block[data-v-eca3b9fa]{border:2px solid var(--bl-ink, #171717);border-radius:3px;background:var(--bl-accent, #a9e3c8);box-shadow:2px 2px 0 var(--bl-ink, #171717)}.brand-name[data-v-eca3b9fa]{font:var(--type-h1)}.brand-tail[data-v-eca3b9fa]{position:absolute;left:46px;top:50%;white-space:nowrap;opacity:0;color:var(--bl-ink, #171717);font:var(--type-h1);transform:translateY(-50%);clip-path:inset(-6px 100% -6px 0);transition:clip-path .26s var(--sidebar-ease),opacity .12s ease}.sidebar-brand[data-v-eca3b9fa]{position:relative}.is-expanded .brand-tail[data-v-eca3b9fa]{opacity:1;clip-path:inset(-6px -2px -6px 0);transition-delay:40ms}.sidebar-nav[data-v-eca3b9fa],.sidebar-footer[data-v-eca3b9fa]{display:flex;flex-direction:column;gap:6px;min-width:0}.sidebar-nav[data-v-eca3b9fa]{flex:1;min-height:0;overflow:hidden auto;scrollbar-width:none}.sidebar-nav[data-v-eca3b9fa]::-webkit-scrollbar{display:none}.sidebar-footer[data-v-eca3b9fa]{flex-shrink:0;padding-top:10px}.sidebar-divider[data-v-eca3b9fa]{flex-shrink:0;height:3px;margin:8px 0;background:var(--bl-ink, #171717)}.sidebar-item[data-v-eca3b9fa]{display:flex;align-items:center;flex-shrink:0;box-sizing:border-box;width:100%;min-height:var(--item-size);padding:0;border:2px solid transparent;border-radius:3px;overflow:hidden;background:transparent;color:var(--bl-ink-soft, #4b4741);font:var(--type-l1-m);text-align:left;text-decoration:none;cursor:pointer;transition:background-color .12s ease,color .12s ease,border-color .12s ease,box-shadow .12s ease}.sidebar-icon[data-v-eca3b9fa]{display:grid;place-items:center;flex:0 0 var(--item-size);width:var(--item-size);height:var(--item-size)}.sidebar-label[data-v-eca3b9fa]{flex:1;min-width:0;padding-left:6px;padding-right:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:0;transform:translate(-6px);transition:opacity .1s ease,transform .22s var(--sidebar-ease)}.is-expanded .sidebar-label[data-v-eca3b9fa]{opacity:1;transform:translate(0);transition:opacity .18s ease 60ms,transform .24s var(--sidebar-ease) 40ms}.sidebar-item[data-v-eca3b9fa]:hover{border-color:var(--bl-ink, #171717);background:var(--bl-surface-alt, #ece5d6);box-shadow:2px 2px 0 var(--bl-ink, #171717);color:var(--bl-ink, #171717)}.sidebar-item.is-active[data-v-eca3b9fa]{border-color:var(--bl-ink, #171717);background:var(--bl-accent, #a9e3c8);box-shadow:2px 2px 0 var(--bl-ink, #171717);color:var(--bl-ink, #171717)}.sidebar-item-danger[data-v-eca3b9fa]:hover{border-color:var(--bl-ink, #171717);background:color-mix(in srgb,var(--bl-danger, #a3372c) 16%,var(--bl-c-surface, #fffdf8));color:var(--bl-danger, #a3372c)}.sidebar-item[data-v-eca3b9fa]:focus-visible,.sidebar-brand[data-v-eca3b9fa]:focus-visible{outline:3px solid var(--bl-ink, #171717);outline-offset:2px}.sidebar-touch-toggle[data-v-eca3b9fa],.sidebar-mobile-toggle[data-v-eca3b9fa],.sidebar-mobile-backdrop[data-v-eca3b9fa]{display:none}.sidebar-chevron[data-v-eca3b9fa]{transition:transform .22s var(--sidebar-ease)}.is-expanded .sidebar-chevron[data-v-eca3b9fa]{transform:rotate(180deg)}@media(hover:none){.sidebar-touch-toggle[data-v-eca3b9fa]{display:flex}}.settings-backdrop[data-v-eca3b9fa]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:199}.settings-panel[data-v-eca3b9fa]{position:fixed;left:80px;bottom:80px;z-index:200;display:flex;flex-direction:column;gap:10px;box-sizing:border-box;min-width:272px;padding:18px;border:3px solid var(--bl-ink, #171717);border-radius:3px;background:var(--bl-c-surface, #fffdf8);box-shadow:8px 8px 0 var(--bl-ink, #171717);color:var(--bl-ink, #171717)}.settings-title[data-v-eca3b9fa]{margin:0;font:var(--type-h1)}.settings-label[data-v-eca3b9fa]{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--bl-ink-soft, #4b4741);font:var(--type-l1)}.settings-swatches[data-v-eca3b9fa]{display:flex;flex-wrap:wrap;gap:8px}.settings-swatch[data-v-eca3b9fa]{width:26px;height:26px;padding:0;border:2px solid var(--bl-ink, #171717);border-radius:3px;cursor:pointer;transition:transform .1s ease,box-shadow .1s ease}.settings-swatch[data-v-eca3b9fa]:hover{transform:translate(-1px,-1px);box-shadow:2px 2px 0 var(--bl-ink, #171717)}.settings-swatch.is-active[data-v-eca3b9fa]{box-shadow:3px 3px 0 var(--bl-ink, #171717);transform:translate(-1px,-1px)}.settings-select[data-v-eca3b9fa]{box-sizing:border-box;max-width:150px;padding:6px 8px;border:2px solid var(--bl-ink, #171717);border-radius:2px;background:var(--bl-c-surface, #fffdf8);color:var(--bl-ink, #171717);font:var(--type-l1)}.settings-actions[data-v-eca3b9fa]{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.settings-btn[data-v-eca3b9fa]{padding:8px 14px;border:2px solid var(--bl-ink, #171717);border-radius:2px;background:var(--bl-c-surface, #fffdf8);box-shadow:2px 2px 0 var(--bl-ink, #171717);color:var(--bl-ink, #171717);font:var(--type-l1-m);cursor:pointer;transition:transform .1s ease,box-shadow .1s ease}.settings-btn[data-v-eca3b9fa]:hover{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--bl-ink, #171717)}.settings-btn--primary[data-v-eca3b9fa]{background:var(--bl-accent, #a9e3c8)}.settings-btn[data-v-eca3b9fa]:focus-visible,.settings-swatch[data-v-eca3b9fa]:focus-visible,.settings-select[data-v-eca3b9fa]:focus-visible{outline:3px solid var(--bl-ink, #171717);outline-offset:2px}@media(max-width:767px){.sidebar[data-v-eca3b9fa]{inset:0 0 auto 0;z-index:120;width:100%;height:56px;padding:8px 12px;flex-direction:row;align-items:center;overflow:hidden;box-shadow:inset 0 -3px 0 var(--bl-ink, #171717);transition:width .26s var(--sidebar-ease),height .26s var(--sidebar-ease),inset .26s var(--sidebar-ease)}.sidebar-brand[data-v-eca3b9fa]{width:40px;margin:0}.sidebar-nav[data-v-eca3b9fa],.sidebar-footer[data-v-eca3b9fa]{display:none}.sidebar-mobile-toggle[data-v-eca3b9fa]{display:grid;place-items:center;width:40px;height:40px;margin-left:auto;padding:0;border:2px solid var(--bl-ink, #171717);border-radius:3px;background:var(--bl-c-surface, #fffdf8);box-shadow:2px 2px 0 var(--bl-ink, #171717);color:var(--bl-ink, #171717);cursor:pointer}.sidebar.is-expanded[data-v-eca3b9fa]{inset:10px auto 10px 10px;width:min(300px,calc(100vw - 20px));height:calc(100dvh - 20px);padding:14px 12px 12px;flex-direction:column;align-items:stretch;border:3px solid var(--bl-ink, #171717);border-radius:3px;box-shadow:8px 8px 0 var(--bl-ink, #171717)}.sidebar.is-expanded .sidebar-brand[data-v-eca3b9fa]{width:100%;margin-bottom:14px}.sidebar.is-expanded .sidebar-mobile-toggle[data-v-eca3b9fa]{position:absolute;top:14px;right:12px}.sidebar.is-expanded .sidebar-nav[data-v-eca3b9fa],.sidebar.is-expanded .sidebar-footer[data-v-eca3b9fa]{display:flex}.sidebar.is-expanded .sidebar-touch-toggle[data-v-eca3b9fa]{display:none}.sidebar-mobile-backdrop[data-v-eca3b9fa]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:110;display:block;background:color-mix(in srgb,var(--bl-ink, #171717) 55%,transparent)}.settings-panel[data-v-eca3b9fa]{left:50%;bottom:auto;top:50%;width:min(360px,calc(100vw - 20px));min-width:0;transform:translate(-50%,-50%)}}@media(prefers-reduced-motion:reduce){.sidebar[data-v-eca3b9fa],.brand-tail[data-v-eca3b9fa],.sidebar-label[data-v-eca3b9fa],.sidebar-chevron[data-v-eca3b9fa]{transition:none}}.auth-overlay[data-v-f789eb37]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:12px}.auth-backdrop[data-v-f789eb37]{position:absolute;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--bl-ink, #171717) 55%,transparent)}.auth-panel[data-v-f789eb37]{position:relative;box-sizing:border-box;width:100%;max-width:420px;max-height:calc(100dvh - 24px);overflow-y:auto;padding:24px;border:3px solid var(--bl-ink, #171717);border-radius:3px;background:var(--bl-c-surface, #fffdf8);box-shadow:8px 8px 0 var(--bl-ink, #171717);color:var(--bl-ink, #171717)}.auth-close[data-v-f789eb37]{position:absolute;top:14px;right:14px;display:grid;place-items:center;width:32px;height:32px;padding:0;border:2px solid var(--bl-ink, #171717);border-radius:2px;background:var(--bl-c-surface, #fffdf8);box-shadow:2px 2px 0 var(--bl-ink, #171717);color:var(--bl-ink, #171717);font:var(--type-h1);cursor:pointer;transition:transform .1s ease,box-shadow .1s ease,background-color .1s ease}.auth-close[data-v-f789eb37]:hover{background:var(--bl-surface-alt, #ece5d6);box-shadow:1px 1px 0 var(--bl-ink, #171717);transform:translate(1px,1px)}.auth-tabs[data-v-f789eb37]{display:flex;gap:4px;margin:0 0 20px;padding:4px;border:2px solid var(--bl-ink, #171717);border-radius:2px;background:var(--bl-surface-alt, #ece5d6)}.auth-tab[data-v-f789eb37]{flex:1 1 0;min-width:0;padding:8px 10px;border:2px solid transparent;border-radius:2px;background:transparent;color:var(--bl-ink-soft, #4b4741);font:var(--type-l1-m);cursor:pointer;transition:background-color .12s ease,color .12s ease,border-color .12s ease,box-shadow .12s ease}.auth-tab[data-v-f789eb37]:hover{background:var(--bl-c-surface, #fffdf8);color:var(--bl-ink, #171717)}.auth-tab.is-active[data-v-f789eb37]{border-color:var(--bl-ink, #171717);background:var(--bl-accent, #a9e3c8);box-shadow:2px 2px 0 var(--bl-ink, #171717);color:var(--bl-ink, #171717)}.auth-form[data-v-f789eb37]{display:flex;flex-direction:column;gap:12px}.auth-remember[data-v-f789eb37]{display:flex;align-items:center;gap:9px;color:var(--bl-ink);font:var(--type-l1);cursor:pointer}.auth-remember input[data-v-f789eb37]{width:18px;height:18px;margin:0;accent-color:var(--bl-primary);cursor:pointer}.auth-remember__duration[data-v-f789eb37]{color:var(--bl-ink-soft);font:var(--type-s1)}.auth-remember input[data-v-f789eb37]:focus-visible{outline:2px solid var(--bl-ink);outline-offset:3px}.auth-field[data-v-f789eb37]{display:block;min-width:0}.auth-field--grow[data-v-f789eb37]{flex:1 1 auto}.auth-label[data-v-f789eb37]{display:block;margin-bottom:5px;color:var(--bl-ink, #171717);font:var(--type-l1)}.auth-input[data-v-f789eb37]{box-sizing:border-box;width:100%;min-width:0;padding:10px 12px;border:2px solid var(--bl-ink, #171717);border-radius:2px;background:var(--bl-c-surface, #fffdf8);color:var(--bl-ink, #171717);font:var(--type-l1)}.auth-input[data-v-f789eb37]::-moz-placeholder{color:var(--bl-ink-faint, #7d766a);opacity:1}.auth-input[data-v-f789eb37]::placeholder{color:var(--bl-ink-faint, #7d766a);opacity:1}.auth-input.is-invalid[data-v-f789eb37]{border-color:var(--bl-danger, #a3372c)}.auth-hint[data-v-f789eb37]{margin:-6px 0 0;color:var(--bl-danger, #a3372c);font:var(--type-b2)}.auth-error[data-v-f789eb37]{margin:0;padding:10px 12px 10px 16px;border:2px solid var(--bl-danger, #a3372c);border-radius:2px;background:color-mix(in srgb,var(--bl-danger, #a3372c) 10%,var(--bl-c-surface, #fffdf8));color:var(--bl-danger, #a3372c);font:var(--type-b2-m)}.auth-success[data-v-f789eb37]{margin:0;color:color-mix(in srgb,var(--bl-ok, #a7d9a0) 35%,var(--bl-ink, #171717));font:var(--type-b2-m)}.auth-code-row[data-v-f789eb37]{display:flex;gap:8px;align-items:flex-end}.auth-btn[data-v-f789eb37]{display:inline-flex;align-items:center;justify-content:center;gap:8px;box-sizing:border-box;margin-top:4px;padding:11px 18px;border:2px solid var(--bl-ink, #171717);border-radius:2px;background:var(--bl-c-surface, #fffdf8);box-shadow:3px 3px 0 var(--bl-ink, #171717);color:var(--bl-ink, #171717);font:var(--type-l1-m);cursor:pointer;transition:transform .11s ease,box-shadow .11s ease,background-color .11s ease}.auth-btn[data-v-f789eb37]:hover{background:var(--bl-surface-alt, #ece5d6);box-shadow:5px 5px 0 var(--bl-ink, #171717);transform:translate(-2px,-2px)}.auth-btn[data-v-f789eb37]:active{box-shadow:none;transform:translate(2px,2px)}.auth-btn--primary[data-v-f789eb37]{background:var(--bl-accent, #a9e3c8)}.auth-btn--code[data-v-f789eb37]{flex:0 0 auto;margin-top:0;padding:10px 14px;white-space:nowrap}.auth-btn[data-v-f789eb37]:disabled{cursor:not-allowed;opacity:.45;box-shadow:none;transform:none}.auth-spinner[data-v-f789eb37]{display:inline-block;box-sizing:border-box;width:16px;height:16px;border:2px solid var(--bl-ink, #171717);background:var(--bl-c-surface, #fffdf8);animation:auth-spin-f789eb37 .9s steps(8,end) infinite}@keyframes auth-spin-f789eb37{to{transform:rotate(360deg)}}.auth-close[data-v-f789eb37]:focus-visible,.auth-tab[data-v-f789eb37]:focus-visible,.auth-input[data-v-f789eb37]:focus-visible,.auth-btn[data-v-f789eb37]:focus-visible{outline:3px solid var(--bl-ink, #171717);outline-offset:2px}@media(max-width:480px){.auth-panel[data-v-f789eb37]{padding:18px;box-shadow:5px 5px 0 var(--bl-ink, #171717)}.auth-code-row[data-v-f789eb37]{flex-direction:column;align-items:stretch}.auth-btn--code[data-v-f789eb37]{width:100%}}@media(prefers-reduced-motion:reduce){.auth-close[data-v-f789eb37],.auth-tab[data-v-f789eb37],.auth-btn[data-v-f789eb37]{transition:none}.auth-spinner[data-v-f789eb37]{animation:none}}.app-content{min-width:0;padding-left:64px}@media(max-width:767px){.app-content{padding-top:56px;padding-left:0}}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
  Theme: GitHub
  Description: Light theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

  Outdated base version: https://github.com/primer/github-syntax-light
  Current colors taken from GitHub's CSS
*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:PingFang SC,Microsoft YaHei,Hiragino Sans GB,Noto Sans SC,-apple-system,BlinkMacSystemFont,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:JetBrains Mono,Consolas,Microsoft YaHei,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--primary: #42b883}html,body,#app{min-width:0;max-width:100%}body{margin:0;overflow-x:hidden;background:var(--bl-c-paper, #f4f0e8)}.container{width:100%}@media(min-width:640px){.container{max-width:640px}}@media(min-width:768px){.container{max-width:768px}}@media(min-width:1024px){.container{max-width:1024px}}@media(min-width:1280px){.container{max-width:1280px}}@media(min-width:1536px){.container{max-width:1536px}}.content-wrap .md-editor{height:auto;border-style:none}.content-wrap .md-editor-preview-wrapper{padding:0}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.z-\[299\]{z-index:299}.z-\[49\]{z-index:49}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.min-w-\[120px\]{min-width:120px}.flex-1{flex:1 1 0%}.flex-shrink{flex-shrink:1}.border-collapse{border-collapse:collapse}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.border{border-width:1px}.py-24{padding-top:6rem;padding-bottom:6rem}.text-center{text-align:center}.uppercase{text-transform:uppercase}.italic{font-style:italic}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.md-editor-preview-wrapper blockquote{border-left:5px solid var(--bl-c-ink, #171717)!important}.md-editor-code-head{z-index:1!important}:root{--bl-c-paper: #f4f0e8;--bl-c-surface: #fffdf8;--bl-c-sunken: #ece5d6;--bl-c-ink: #171717;--bl-c-ink-soft: #4b4741;--bl-c-ink-faint: #7d766a;--bl-c-yellow: #f6d365;--bl-c-blue: #9cc4ee;--bl-c-pink: #f2aec2;--bl-c-green: #a7d9a0;--bl-c-red: #a3372c}:root,.blog-shell{--bl-canvas: var(--bl-c-paper);--bl-surface: var(--bl-c-surface);--bl-surface-alt: var(--bl-c-sunken);--bl-ink: var(--bl-c-ink);--bl-ink-soft: var(--bl-c-ink-soft);--bl-ink-faint: var(--bl-c-ink-faint);--bl-primary: var(--primary, #42b883);--bl-accent: color-mix(in srgb, var(--bl-primary) 68%, var(--bl-surface));--bl-accent-strong: color-mix(in srgb, var(--bl-primary) 88%, var(--bl-surface));--bl-accent-soft: color-mix(in srgb, var(--bl-primary) 14%, var(--bl-surface));--bl-on-accent: var(--bl-c-ink);--bl-note: var(--bl-c-yellow);--bl-info: var(--bl-c-blue);--bl-mark: var(--bl-c-pink);--bl-ok: var(--bl-c-green);--bl-danger: var(--bl-c-red);--bl-font-ui: var(--font-ui);--bl-font-mono: var(--font-mono);--bl-line-w-thin: 2px;--bl-line-w: 3px;--bl-line-w-fat: 5px;--bl-line-thin: var(--bl-line-w-thin) solid var(--bl-ink);--bl-line: var(--bl-line-w) solid var(--bl-ink);--bl-shadow-xs: 2px 2px 0 var(--bl-ink);--bl-shadow-sm: 3px 3px 0 var(--bl-ink);--bl-shadow: 5px 5px 0 var(--bl-ink);--bl-shadow-lg: 8px 8px 0 var(--bl-ink);--bl-radius: 3px;--bl-radius-sm: 2px;--bl-ease: cubic-bezier(.2, .8, .2, 1)}.blog-shell{min-height:100vh;background-color:var(--bl-canvas);color:var(--bl-ink);font:var(--type-b2);letter-spacing:0}.blog-shell .bl-page{box-sizing:border-box;width:100%;max-width:1200px;margin:0 auto;padding:26px 16px 72px}.blog-shell .bl-page--narrow{max-width:880px}.blog-shell .bl-page--wide{max-width:1360px}.blog-shell .bl-page--center{display:flex;min-height:calc(100dvh - 56px);align-items:center;justify-content:center}.blog-shell .bl-stack{display:flex;flex-direction:column;gap:18px;min-width:0}.blog-shell .bl-stack--tight{gap:10px}.blog-shell .bl-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;min-width:0}.blog-shell .bl-rule{height:var(--bl-line-w);margin:22px 0;border:0;background:var(--bl-ink)}.blog-shell .bl-rule--thin{height:var(--bl-line-w-thin)}.blog-shell .bl-rule--dashed{height:0;border:0;border-top:var(--bl-line-w-thin) dashed var(--bl-ink);background:none}.blog-shell .bl-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 18px;margin:0 0 22px}.blog-shell .bl-head__main{min-width:0}.blog-shell .bl-head__title{margin:0;color:var(--bl-ink);overflow-wrap:anywhere;font:var(--type-x2);letter-spacing:0;font-synthesis:none}.blog-shell .bl-head__kicker{display:inline-block;margin-left:10px;padding:2px 8px;border:var(--bl-line-thin);border-radius:var(--bl-radius-sm);background:var(--bl-accent);box-shadow:var(--bl-shadow-xs);color:var(--bl-on-accent);text-transform:uppercase;vertical-align:middle;font:var(--type-s1);letter-spacing:0}.blog-shell .bl-head__sub{margin:8px 0 0;color:var(--bl-ink-soft);font:var(--type-b2);letter-spacing:0}.blog-shell .bl-subhead{display:flex;align-items:center;gap:8px;margin:0 0 12px;color:var(--bl-ink);font:var(--type-h2);letter-spacing:0}.blog-shell .bl-subhead:before{content:"";flex:0 0 auto;width:12px;height:12px;border:var(--bl-line-thin);background:var(--bl-accent);pointer-events:none}.blog-shell .bl-subhead__en{color:var(--bl-ink-soft);text-transform:uppercase;font:var(--type-s1);letter-spacing:0}.blog-shell .bl-btn{display:inline-flex;box-sizing:border-box;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border:var(--bl-line-thin);border-radius:var(--bl-radius-sm);background:var(--bl-surface);box-shadow:var(--bl-shadow-sm);color:var(--bl-ink);text-align:center;text-decoration:none;cursor:pointer;transition:transform .12s var(--bl-ease),box-shadow .12s var(--bl-ease),background-color .12s var(--bl-ease);font:var(--type-l1-m);letter-spacing:0}.blog-shell .bl-btn:hover{background:var(--bl-surface-alt);box-shadow:var(--bl-shadow);transform:translate(-2px,-2px)}.blog-shell .bl-btn:active{box-shadow:none;transform:translate(2px,2px)}.blog-shell .bl-btn--primary{background:var(--bl-accent)}.blog-shell .bl-btn--primary:hover{background:var(--bl-accent-strong)}.blog-shell .bl-btn--danger{color:var(--bl-danger)}.blog-shell .bl-btn--danger:hover{background:color-mix(in srgb,var(--bl-danger) 12%,var(--bl-surface))}.blog-shell .bl-btn--lg{padding:14px 28px;box-shadow:var(--bl-shadow);font:var(--type-l1-m);letter-spacing:0}.blog-shell .bl-btn--sm{padding:6px 12px;box-shadow:var(--bl-shadow-xs);font:var(--type-l1-m);letter-spacing:0}.blog-shell .bl-btn--block{display:flex;width:100%}.blog-shell .bl-btn--icon{width:38px;height:38px;padding:0;flex:0 0 auto}.blog-shell .bl-btn--icon.bl-btn--sm{width:30px;height:30px}.blog-shell .bl-btn--quiet{padding:2px 0;border:0;background:none;box-shadow:none;color:inherit;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;font:var(--type-l1-m);letter-spacing:0}.blog-shell .bl-btn--quiet:hover{background:none;box-shadow:none;color:var(--bl-primary);transform:none}.blog-shell .bl-btn:disabled{cursor:not-allowed;opacity:.45;box-shadow:none;transform:none}.blog-shell .bl-btn--danger:active,.blog-shell .bl-btn--primary:active{transform:translate(2px,2px)}.blog-shell .bl-btn[aria-pressed=true]{border-color:var(--bl-ink);background:var(--bl-accent);box-shadow:inset var(--bl-shadow-sm);color:var(--bl-ink);font:var(--type-l1-m);letter-spacing:0}.blog-shell .bl-btn[aria-pressed=true]:hover{background:var(--bl-accent-strong);box-shadow:inset var(--bl-shadow-sm);transform:none}.blog-shell .bl-btn[aria-pressed=true]:active{box-shadow:inset 1px 1px 0 var(--bl-ink);transform:none}.blog-shell .bl-card{position:relative;box-sizing:border-box;min-width:0;border:var(--bl-line);border-radius:var(--bl-radius);background:var(--bl-surface);box-shadow:var(--bl-shadow-sm)}.blog-shell .bl-panel{box-sizing:border-box;min-width:0;border:var(--bl-line);border-radius:var(--bl-radius);background:var(--bl-surface);box-shadow:var(--bl-shadow-sm)}.blog-shell .bl-panel__head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:var(--bl-line-thin);background:var(--bl-surface-alt)}.blog-shell .bl-panel__title{margin:0;color:var(--bl-ink);font:var(--type-h2);letter-spacing:0}.blog-shell .bl-panel__body{padding:14px}.blog-shell .bl-panel__body--flush{padding:0}.blog-shell .bl-post{position:relative;box-sizing:border-box;min-width:0;padding:18px 18px 16px 26px;border:var(--bl-line);border-radius:var(--bl-radius);background:var(--bl-surface);box-shadow:var(--bl-shadow-sm);cursor:pointer;transition:transform .14s var(--bl-ease),box-shadow .14s var(--bl-ease),background-color .14s var(--bl-ease)}.blog-shell .bl-post:before{content:"";position:absolute;top:-3px;bottom:-3px;left:-3px;width:9px;border:var(--bl-line);border-right:0;border-radius:var(--bl-radius) 0 0 var(--bl-radius);background:var(--bl-accent);pointer-events:none}.blog-shell .bl-post:hover{background:var(--bl-surface);box-shadow:var(--bl-shadow-lg);transform:translate(-3px,-3px)}.blog-shell .bl-post:focus-visible{outline:var(--bl-line-w) solid var(--bl-ink);outline-offset:3px}.blog-shell .bl-post__index{display:inline-block;margin-bottom:8px;padding:1px 7px;border:var(--bl-line-thin);border-radius:var(--bl-radius-sm);background:var(--bl-note);box-shadow:var(--bl-shadow-xs);font:var(--type-s1);letter-spacing:0}.blog-shell .bl-post__title{margin:0 0 8px;color:var(--bl-ink);overflow-wrap:anywhere;font:var(--type-h2);letter-spacing:0}.blog-shell .bl-post:hover .bl-post__title{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:4px}.blog-shell .bl-post__path{display:inline-block;max-width:100%;margin:0 0 8px;padding:2px 8px;border:var(--bl-line-thin);border-radius:var(--bl-radius-sm);background:var(--bl-surface-alt);color:var(--bl-ink-soft);overflow-wrap:anywhere;font:var(--type-s1);letter-spacing:0}.blog-shell .bl-post__summary{margin:0 0 12px;padding-left:12px;border-left:var(--bl-line-w-thin) solid var(--bl-ink);color:var(--bl-ink-soft);overflow-wrap:anywhere;font:var(--type-b1);letter-spacing:0}.blog-shell .bl-post__meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;color:var(--bl-ink-soft);font:var(--type-s1);letter-spacing:0}.blog-shell .bl-post__meta-item{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.blog-shell .bl-tag{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:3px 9px;border:var(--bl-line-thin);border-radius:var(--bl-radius-sm);background:var(--bl-surface);box-shadow:var(--bl-shadow-xs);color:var(--bl-ink);overflow-wrap:anywhere;cursor:pointer;transition:transform .1s var(--bl-ease),box-shadow .1s var(--bl-ease),background-color .1s var(--bl-ease);font:var(--type-l1-m);letter-spacing:0}.blog-shell .bl-tag:hover{background:var(--bl-surface-alt);transform:translate(-1px,-1px);box-shadow:var(--bl-shadow-sm)}.blog-shell .bl-tag.is-active{background:var(--bl-accent);box-shadow:var(--bl-shadow-sm);font:var(--type-l1-m);letter-spacing:0}.blog-shell .bl-tag.is-related{background:var(--bl-note)}.blog-shell .bl-tag--plain{cursor:default;box-shadow:none}.blog-shell .bl-tag--plain:hover{background:var(--bl-surface);transform:none;box-shadow:none}.blog-shell .bl-count{display:inline-grid;box-sizing:border-box;min-width:22px;margin-left:6px;padding:0 5px;place-items:center;border:var(--bl-line-thin);border-radius:var(--bl-radius-sm);background:var(--bl-note);color:var(--bl-ink);font-variant-numeric:tabular-nums;vertical-align:middle;font:var(--type-s1);letter-spacing:0}.blog-shell .bl-label{display:block;margin:0 0 6px;color:var(--bl-ink);font:var(--type-l1);letter-spacing:0}.blog-shell .bl-input,.blog-shell .bl-select,.blog-shell .bl-textarea{box-sizing:border-box;width:100%;max-width:100%;min-width:0;padding:10px 12px;border:var(--bl-line-thin);border-radius:var(--bl-radius-sm);background:var(--bl-surface);color:var(--bl-ink);font:var(--type-l1);letter-spacing:0}.blog-shell .bl-textarea{resize:vertical}.blog-shell .bl-input::-moz-placeholder,.blog-shell .bl-textarea::-moz-placeholder{color:var(--bl-ink-faint);opacity:1}.blog-shell .bl-input::placeholder,.blog-shell .bl-textarea::placeholder{color:var(--bl-ink-faint);opacity:1}.blog-shell .bl-input:disabled,.blog-shell .bl-select:disabled,.blog-shell .bl-textarea:disabled{cursor:not-allowed;opacity:.5}.blog-shell .bl-input:focus-visible,.blog-shell .bl-select:focus-visible,.blog-shell .bl-textarea:focus-visible{outline:var(--bl-line-w) solid var(--bl-ink);outline-offset:1px}.blog-shell .bl-search{display:flex;box-sizing:border-box;min-width:0;max-width:100%;align-items:center;gap:8px;padding:9px 12px;border:var(--bl-line-thin);border-radius:var(--bl-radius-sm);background:var(--bl-surface);color:var(--bl-ink-soft)}.blog-shell .bl-search:focus-within{box-shadow:var(--bl-shadow-xs)}.blog-shell .bl-search svg{flex:0 0 auto}.blog-shell .bl-search input{box-sizing:border-box;width:100%;min-width:0;flex:1 1 auto;padding:0;border:0;border-radius:0;background:transparent;color:var(--bl-ink);outline:none;font:var(--type-l1);letter-spacing:0}.blog-shell .bl-empty{box-sizing:border-box;padding:34px 20px;border:var(--bl-line-w) dashed var(--bl-ink);border-radius:var(--bl-radius-sm);background:var(--bl-surface-alt);color:var(--bl-ink-soft);text-align:center;font:var(--type-b1);letter-spacing:0}.blog-shell .bl-error{margin:12px 0;padding:12px 14px 12px 18px;border:var(--bl-line-thin);border-radius:var(--bl-radius-sm);background:color-mix(in srgb,var(--bl-danger) 10%,var(--bl-surface));box-shadow:inset 5px 0 0 var(--bl-danger);color:var(--bl-danger);font:var(--type-b2);letter-spacing:0}.blog-shell .bl-notice{box-sizing:border-box;margin:12px 0;padding:12px 14px;border:var(--bl-line-thin);border-radius:var(--bl-radius-sm);background:var(--bl-note);box-shadow:var(--bl-shadow-xs);color:var(--bl-ink);font:var(--type-b2);letter-spacing:0}.blog-shell .bl-loading{display:flex;justify-content:center;padding:48px 0}.blog-shell .bl-spinner{display:inline-block;box-sizing:border-box;width:34px;height:34px;border:var(--bl-line);background:var(--bl-surface);box-shadow:var(--bl-shadow-xs);animation:bl-spin .9s steps(8,end) infinite}@keyframes bl-spin{to{transform:rotate(360deg)}}.blog-shell .md-editor{--md-bk-color: var(--bl-surface);--md-bk-color-outstand: var(--bl-surface-alt);--md-bk-hover-color: var(--bl-accent-soft);--md-border-color: var(--bl-ink);--md-scrollbar-bg-color: var(--bl-surface-alt);--md-scrollbar-thumb-color: var(--bl-ink-faint)}.blog-shell .content-wrap .md-editor{margin:0;padding:26px 28px;border:var(--bl-line);border-radius:var(--bl-radius);background:var(--bl-surface);box-shadow:var(--bl-shadow-sm)}.blog-shell .md-editor-preview{--md-theme-border-color: var(--bl-ink);--md-theme-border-color-inset: var(--bl-ink);--md-theme-radius-s: 2px;--md-theme-radius-m: 3px;--md-theme-link-color: var(--bl-primary);--md-theme-link-hover-color: var(--bl-primary);--md-theme-code-inline-color: var(--bl-ink);--md-theme-code-inline-bg-color: var(--bl-c-yellow);--md-theme-code-block-bg-color: var(--bl-surface-alt);--md-theme-code-block-color: var(--bl-ink);--md-theme-code-copy-tips-color: var(--bl-surface);--md-theme-code-copy-tips-bg-color: var(--bl-ink);color:var(--bl-ink-soft);overflow-wrap:anywhere;font:var(--type-b1);letter-spacing:0}.blog-shell .md-editor-preview h1,.blog-shell .md-editor-preview h2,.blog-shell .md-editor-preview h3,.blog-shell .md-editor-preview h4,.blog-shell .md-editor-preview h5,.blog-shell .md-editor-preview h6{margin:1.6em 0 .7em;color:var(--bl-ink);font:var(--type-h1);letter-spacing:0}.blog-shell .md-editor-preview h1{font:var(--type-h1);letter-spacing:0}.blog-shell .md-editor-preview h2{padding-left:12px;border-left:var(--bl-line-w-fat) solid var(--bl-accent);font:var(--type-h1);letter-spacing:0}.blog-shell .md-editor-preview h3,.blog-shell .md-editor-preview h4{font:var(--type-h2);letter-spacing:0}.blog-shell .md-editor-preview p{margin:.9em 0}.blog-shell .md-editor-preview a{color:var(--bl-primary);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}.blog-shell .md-editor-preview blockquote{margin:1.2em 0;padding:12px 16px;border:var(--bl-line-thin);border-left:var(--bl-line-w-fat) solid var(--bl-ink);border-radius:var(--bl-radius-sm);background:var(--bl-surface-alt);color:var(--bl-ink-soft)}.blog-shell .md-editor-preview blockquote>p:first-child{margin-top:0}.blog-shell .md-editor-preview blockquote>p:last-child{margin-bottom:0}.blog-shell .md-editor-preview code{padding:1px 5px;border:var(--bl-line-thin);border-radius:var(--bl-radius-sm);background:var(--bl-c-yellow);color:var(--bl-ink)}.blog-shell .md-editor-preview pre{margin:1.4em 0;padding:14px 16px;border:var(--bl-line);border-radius:var(--bl-radius-sm);background:var(--bl-surface-alt);box-shadow:var(--bl-shadow-sm);overflow-x:auto;max-width:100%;color:var(--bl-ink);font:var(--type-c1);letter-spacing:0}.blog-shell .md-editor-preview pre code{padding:0;border:0;border-radius:0;background:transparent;color:inherit;font:var(--type-c1);letter-spacing:0}.blog-shell .md-editor-preview details.md-editor-code{margin:1.4em 0;border:var(--bl-line);border-radius:var(--bl-radius-sm);background:var(--bl-surface-alt);box-shadow:var(--bl-shadow-sm)}.blog-shell .md-editor-preview details.md-editor-code>pre{margin:0;padding:12px 14px;border:0;border-radius:0;background:transparent;box-shadow:none}.blog-shell .md-editor-preview details.md-editor-code>pre>code{display:block;padding:0;border:0;border-radius:0;background:transparent;color:var(--bl-ink);font:var(--type-c1);letter-spacing:0}.blog-shell .md-editor-preview details.md-editor-code>summary.md-editor-code-head{display:flex;align-items:center;justify-content:space-between;gap:10px;height:auto;min-height:34px;margin:0;padding:4px 8px 4px 10px;border-block-end:var(--bl-line-thin);border-start-start-radius:var(--bl-radius-sm);border-start-end-radius:var(--bl-radius-sm);background:var(--bl-surface-alt);color:var(--bl-ink);font:var(--type-s1);letter-spacing:0}.blog-shell .md-editor-preview details.md-editor-code>summary.md-editor-code-head .md-editor-code-flag{display:flex;align-items:center;gap:5px;margin-inline-start:0}.blog-shell .md-editor-preview details.md-editor-code>summary.md-editor-code-head .md-editor-code-flag span{display:block;width:9px;height:9px;margin-block-start:0;border:var(--bl-line-thin);border-radius:0;background:var(--bl-note)}.blog-shell .md-editor-preview details.md-editor-code>summary.md-editor-code-head .md-editor-code-flag span:nth-of-type(1){background:var(--bl-mark)}.blog-shell .md-editor-preview details.md-editor-code>summary.md-editor-code-head .md-editor-code-flag span:nth-of-type(2){background:var(--bl-note)}.blog-shell .md-editor-preview details.md-editor-code>summary.md-editor-code-head .md-editor-code-flag span:nth-of-type(3){background:var(--bl-ok)}.blog-shell .md-editor-preview details.md-editor-code>summary.md-editor-code-head .md-editor-code-action .md-editor-code-lang{padding:1px 6px;border:var(--bl-line-thin);border-radius:var(--bl-radius-sm);background:var(--bl-note);color:var(--bl-ink);text-transform:uppercase;font:var(--type-s1);letter-spacing:0}.blog-shell .md-editor-preview details.md-editor-code>summary.md-editor-code-head .md-editor-code-action .md-editor-code-lang:empty{display:none}.blog-shell .md-editor-preview details.md-editor-code>summary.md-editor-code-head .md-editor-code-action .md-editor-copy-button{padding:1px 6px;border:var(--bl-line-thin);border-radius:var(--bl-radius-sm);background:var(--bl-surface);color:var(--bl-ink);transition:background-color .12s var(--bl-ease),color .12s var(--bl-ease);font:var(--type-s1);letter-spacing:0}.blog-shell .md-editor-preview details.md-editor-code>summary.md-editor-code-head .md-editor-code-action .md-editor-copy-button:hover{background:var(--bl-ink);color:var(--bl-surface)}.blog-shell .md-editor-preview details.md-editor-code>summary.md-editor-code-head .md-editor-code-action .md-editor-collapse-tips .md-editor-icon{width:14px;height:14px;color:var(--bl-ink)}.blog-shell .md-editor-preview details.md-editor-code>summary.md-editor-code-head .md-editor-code-action .md-editor-copy-button[data-is-icon]:before{border:var(--bl-line-thin);border-radius:var(--bl-radius-sm);box-shadow:var(--bl-shadow-xs);font:var(--type-s1);letter-spacing:0}.blog-shell .md-editor-preview table{display:block;width:100%;max-width:100%;margin:1.2em 0;border-collapse:collapse;overflow-x:auto}.blog-shell .md-editor-preview th,.blog-shell .md-editor-preview td{padding:8px 12px;border:var(--bl-line-thin);text-align:left}.blog-shell .md-editor-preview th{background:var(--bl-accent);color:var(--bl-ink);font:var(--type-b2-m);letter-spacing:0}.blog-shell .md-editor-preview tr:nth-child(2n) td{background:var(--bl-surface-alt)}.blog-shell .md-editor-preview img,.blog-shell .md-editor-preview video{max-width:100%;border:var(--bl-line);border-radius:var(--bl-radius-sm);box-shadow:var(--bl-shadow-sm);background-color:transparent}.blog-shell .md-editor-preview hr{height:var(--bl-line-w);margin:28px 0;border:0;background:var(--bl-ink)}.blog-shell .md-editor-preview ul,.blog-shell .md-editor-preview ol{padding-left:1.4em}.blog-shell .md-editor-preview li{margin:.35em 0}.blog-shell .toc-sidebar .md-editor-catalog-wrapper{padding-left:12px;border-left:var(--bl-line)}.blog-shell .toc-sidebar .md-editor-catalog-link{color:var(--bl-ink-soft);font:var(--type-b2);letter-spacing:0}.blog-shell .toc-sidebar .md-editor-catalog-link span:hover{color:var(--bl-primary)}.blog-shell .toc-sidebar .md-editor-catalog-active>span{color:var(--bl-ink);font:var(--type-b2-m);letter-spacing:0}.blog-shell .toc-sidebar .md-editor-catalog-indicator{background:var(--bl-accent)}.blog-shell .bl-sticker{display:inline-block;padding:4px 10px;border:var(--bl-line-thin);border-radius:var(--bl-radius-sm);background:var(--bl-note);box-shadow:var(--bl-shadow-xs);color:var(--bl-ink);text-transform:uppercase;transform:rotate(-2deg);font:var(--type-s1);letter-spacing:0}.blog-shell .bl-sticker--accent{background:var(--bl-accent)}.blog-shell .bl-sticker--mark{background:var(--bl-mark);transform:rotate(1.5deg)}.blog-shell .bl-stat{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border:var(--bl-line-thin);border-radius:var(--bl-radius-sm);background:var(--bl-surface);box-shadow:var(--bl-shadow-xs)}.blog-shell .bl-stat__value{font-variant-numeric:tabular-nums;font:var(--type-x2);letter-spacing:0;font-synthesis:none}.blog-shell .bl-stat__label{color:var(--bl-ink-soft);font:var(--type-s1);letter-spacing:0}.blog-shell .bl-avatar{display:grid;flex:0 0 auto;place-items:center;width:38px;height:38px;border:var(--bl-line-thin);border-radius:var(--bl-radius-sm);background:var(--bl-accent);box-shadow:var(--bl-shadow-xs);color:var(--bl-ink);-webkit-user-select:none;-moz-user-select:none;user-select:none;font:var(--type-h2);letter-spacing:0}.blog-shell .bl-avatar--lg{width:120px;height:120px;font:var(--type-h2);letter-spacing:0}.blog-shell :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:var(--bl-line-w) solid var(--bl-ink);outline-offset:2px}@media(prefers-reduced-motion:reduce){.blog-shell *,.blog-shell *:before,.blog-shell *:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}@media(max-width:767px){.blog-shell .bl-page{padding:18px 14px 56px}.blog-shell .bl-head{margin-bottom:16px}.blog-shell .bl-post{padding:16px 14px 14px 22px}.blog-shell .bl-post__meta{font:var(--type-s1);letter-spacing:0}.blog-shell .bl-stat__value{font:var(--type-x2);letter-spacing:0;font-synthesis:none}.blog-shell .content-wrap .md-editor{padding:20px 18px}}@media(max-width:420px){.blog-shell .bl-head__kicker{margin-left:0}.blog-shell .bl-btn{padding:9px 14px;font:var(--type-l1-m);letter-spacing:0}.blog-shell .bl-btn--lg{padding:12px 20px;font:var(--type-l1-m);letter-spacing:0}.blog-shell .content-wrap .md-editor{padding:16px 13px}}.blog-shell .md-editor .md-editor-preview{font:var(--type-b1);letter-spacing:0}.blog-shell .md-editor .md-editor-preview :is(p,li,blockquote){font:inherit}.blog-shell .md-editor .md-editor-preview :is(h1,h2){font:var(--type-h1);letter-spacing:0}.blog-shell .md-editor .md-editor-preview :is(h3,h4,h5,h6){font:var(--type-h2);letter-spacing:0}.blog-shell .md-editor .md-editor-preview table{font:var(--type-b2)}.blog-shell .md-editor .md-editor-preview th{font:var(--type-b2-m)}.blog-shell .md-editor .md-editor-preview td{font:var(--type-b2)}.blog-shell .md-editor .md-editor-preview :not(pre)>code{font-family:var(--font-mono);font-size:inherit;line-height:inherit}.blog-shell .md-editor .md-editor-preview details.md-editor-code>pre>code{font:var(--type-c1)}.blog-shell .bl-textarea{font:var(--type-b1)}.blog-shell .md-editor .md-editor-preview button.ai-keyword{display:inline;padding:0 2px;border:0;border-bottom:1px dotted var(--bl-primary);border-radius:2px;background:transparent;color:var(--bl-primary);font:var(--type-b1);cursor:pointer}.blog-shell .md-editor .md-editor-preview button.ai-keyword:hover{background:var(--bl-accent-soft)}.blog-shell .md-editor .md-editor-preview button.ai-keyword:focus-visible{outline:2px solid var(--bl-ink);outline-offset:2px}@font-face{font-family:"Fusion Pixel 12px Prop zh_hans";src:url(/assets/fusion-pixel-12px-proportional-zh_hans.otf-DnN5rkFw.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--font-ui: "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", "Noto Sans SC", -apple-system, BlinkMacSystemFont, sans-serif;--font-pixel: "Fusion Pixel 12px Prop zh_hans", var(--font-ui);--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;--type-x1: 400 2.25rem/3rem var(--font-pixel);--type-x2: 400 1.5rem/2rem var(--font-pixel);--type-h1: 600 1.25rem/1.75rem var(--font-ui);--type-h2: 600 1rem/1.5rem var(--font-ui);--type-b1: 400 1rem/1.75rem var(--font-ui);--type-b2: 400 .875rem/1.375rem var(--font-ui);--type-b2-m: 500 .875rem/1.375rem var(--font-ui);--type-l1: 400 .875rem/1.25rem var(--font-ui);--type-l1-m: 500 .875rem/1.25rem var(--font-ui);--type-s1: 400 .75rem/1.125rem var(--font-ui);--type-c1: 400 .875rem/1.375rem var(--font-mono)}html{font-size:100%}body{font:var(--type-b2)}:where(h1){font:var(--type-x2);font-synthesis:none;letter-spacing:0;overflow-wrap:anywhere}:where(h2){font:var(--type-h1)}:where(h3,h4,h5,h6){font:var(--type-h2)}:where(button){font:var(--type-l1-m)}:where(input,select,textarea,label){font:var(--type-l1)}:where(table){font:var(--type-b2)}:where(th){font:var(--type-b2-m)}:where(pre,pre code){font:var(--type-c1)}:where(code){font-family:var(--font-mono)}:where(strong,b){font-weight:600}:root .type-x1{font:var(--type-x1);font-synthesis:none;letter-spacing:0}:root .type-x2{font:var(--type-x2);font-synthesis:none;letter-spacing:0}:root .type-h1{font:var(--type-h1);letter-spacing:0}:root .type-h2{font:var(--type-h2);letter-spacing:0}:root .type-b1{font:var(--type-b1);letter-spacing:0}:root .type-b2{font:var(--type-b2);letter-spacing:0}:root .type-b2-m{font:var(--type-b2-m);letter-spacing:0}:root .type-l1{font:var(--type-l1);letter-spacing:0}:root .type-l1-m{font:var(--type-l1-m);letter-spacing:0}:root .type-s1{font:var(--type-s1);letter-spacing:0}:root .type-c1{font:var(--type-c1);letter-spacing:0}:where(time,table,input,.type-x1,.type-x2,.type-b2,.type-l1,.type-s1){font-variant-numeric:tabular-nums}
