@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans+JP:wght@400;500;600;700&display=swap";pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
  Theme: GitHub Dark
  Description: Dark theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

  Outdated base version: https://github.com/primer/github-syntax-dark
  Current colors taken from GitHub's CSS
*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#79c0ff}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-code,.hljs-comment,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}:root{color-scheme:dark;font-family:IBM Plex Sans JP,sans-serif;color:#e4e7eb;background:#111315;line-height:1.65;font-weight:400;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh}a{color:inherit;text-decoration:none}code,pre{font-family:IBM Plex Mono,monospace}#app,.site-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:288px;padding:24px 22px;background:#0e1012;border-right:1px solid rgba(255,255,255,.08)}.sidebar-inner{display:flex;height:100%;flex-direction:column;gap:18px}.site-kicker{margin:0;color:#9ccfff;font-family:IBM Plex Mono,monospace;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase}.site-title{font-size:1.9rem;font-weight:600;letter-spacing:-.03em}.site-summary{margin:0;color:#e4e7eba3;font-size:.9rem}.side-nav{display:grid;gap:10px;margin-top:12px}.side-nav-link{padding:8px 0;border-bottom:1px solid rgba(255,255,255,.07);color:#e4e7ebad;transition:border-color .16s ease,color .16s ease,transform .16s ease}.side-nav-link:hover,.side-nav-link.is-active{border-color:#ffffff29;color:#9ccfff;transform:translate(2px)}.search-panel{display:grid;gap:12px;margin-top:18px;padding-top:18px;border-top:1px solid rgba(255,255,255,.14)}.search-label{color:#e4e7ebb3;font-family:IBM Plex Mono,monospace;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase}.search-caption{margin:-4px 0 2px;color:#e4e7eb8f;font-size:.82rem;line-height:1.5}.search-select,.search-input{width:100%;padding:10px 12px;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#e4e7eb;background-color:#15181b;font-family:IBM Plex Sans JP,sans-serif;font-size:.9rem}.search-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,#9ccfff 50%),linear-gradient(135deg,#9ccfff 50%,transparent 50%);background-position:calc(100% - 18px) calc(50% - 2px),calc(100% - 12px) calc(50% - 2px);background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:34px}.search-select:focus,.search-input:focus{outline:none;border-color:#9ccfff}.search-button{width:fit-content;padding:0;border:0;color:#9ccfff;background:transparent;cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:.82rem}.content-shell{margin-left:288px;min-height:100vh;padding:30px 38px}.page-card{width:min(1040px,100%);padding:8px 0 48px}.page-label{margin:0 0 12px;color:#9ccfff;font-family:IBM Plex Mono,monospace;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase}.page-title{margin:0;font-size:clamp(1.35rem,2.5vw,2rem);line-height:1.14;letter-spacing:-.03em}.page-description{max-width:52rem;margin:12px 0 0;color:#e4e7eb9e;font-size:.95rem}.home-section{margin-top:34px}.section-heading{display:grid;gap:4px;margin-bottom:14px}.section-kicker{margin:0;color:#9ccfffd1;font-family:IBM Plex Mono,monospace;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase}.section-title{margin:0;font-size:1.05rem;font-weight:600;letter-spacing:-.02em}.series-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;align-items:start}.series-card{padding:18px;border:1px solid rgba(255,255,255,.08);border-radius:16px;align-self:start;background:linear-gradient(180deg,#9ccfff0f,#9ccfff04),#14181b}.series-card-expandable{cursor:pointer;transition:border-color .16s ease,transform .16s ease,background .16s ease}.series-card-expandable:hover,.series-card-expandable.is-expanded{border-color:#9ccfff33;transform:translateY(-1px)}.series-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.series-toggle{color:#9ccfffdb;font-family:IBM Plex Mono,monospace;font-size:.75rem}.series-meta{margin:0 0 10px;color:#9ccfffdb;font-family:IBM Plex Mono,monospace;font-size:.74rem}.series-title{margin:0;font-size:1.05rem;font-weight:600}.series-summary{margin:10px 0 0;color:#e4e7eb9e;font-size:.9rem}.series-links{display:flex;flex-wrap:wrap;gap:14px;margin-top:16px}.series-link{color:#9ccfff;font-family:IBM Plex Mono,monospace;font-size:.8rem}.series-link.is-muted{color:#e4e7ebb3}.series-docs-panel{margin-top:18px;padding-top:18px;border-top:1px solid rgba(255,255,255,.08)}.series-docs-list{display:grid;gap:0}.series-doc-item{padding:14px 0 16px;border-top:1px solid rgba(255,255,255,.06)}.series-doc-item:first-child{padding-top:0;border-top:0}.series-pagination{margin-top:18px}.search-summary{margin:18px 0 0;color:#e4e7ebad;font-family:IBM Plex Mono,monospace;font-size:.8rem}.search-summary-value,.search-summary-count{color:#9ccfff}.article-stack{display:grid;gap:0;margin-top:28px}.article-card{padding:18px 0 20px;border-top:1px solid rgba(255,255,255,.08)}.article-meta{margin:0 0 8px;color:#9ccfffdb;font-family:IBM Plex Mono,monospace;font-size:.76rem}.article-title{margin:0;font-size:1.02rem;font-weight:600;letter-spacing:-.01em}.article-title a:hover{color:#9ccfff}.article-excerpt{margin:8px 0 0;color:#e4e7eb9e;font-size:.92rem}.tag-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.tag-chip{padding:0;color:#9ccfff;font-family:IBM Plex Mono,monospace;font-size:.72rem}.tag-chip:before{content:"#";margin-right:1px}.pagination{display:flex;align-items:center;gap:14px;margin-top:26px}.pagination-button{padding:0;border:0;color:#e4e7eb;background:transparent;cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:.82rem}.pagination-button:disabled{opacity:.42;cursor:not-allowed}.pagination-status{color:#e4e7eb9e;font-family:IBM Plex Mono,monospace;font-size:.8rem}.empty-state{margin-top:24px;color:#e4e7eb9e;font-size:.92rem}.article-page .article-body{margin-top:24px}.article-layout{display:grid;grid-template-columns:220px minmax(0,760px);gap:40px;align-items:start;margin-top:24px}.article-toc{position:sticky;top:24px}.article-toc-label{margin:0 0 12px;color:#e4e7eb99;font-family:IBM Plex Mono,monospace;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase}.article-toc nav{display:grid;gap:8px}.article-toc-link{color:#e4e7ebb8;font-size:.87rem;line-height:1.5}.article-toc-link:hover{color:#9ccfff}.article-toc-link.is-sub{padding-left:12px;font-size:.82rem}.article-body{min-width:0}.article-body h2,.prose-block h2{margin:28px 0 10px;font-size:1.12rem}.article-body h3,.prose-block h3{margin:20px 0 8px;font-size:1rem}.article-body p,.prose-block p{margin:0 0 14px;color:#e4e7ebd6;font-size:.95rem}.article-body ul{margin:0 0 16px;padding-left:1.2rem;color:#e4e7ebd6;font-size:.95rem}.article-body blockquote{margin:18px 0 22px;padding:10px 0 10px 16px;border-left:3px solid rgba(156,207,255,.42);background:#ffffff05}.article-body blockquote p{margin:0 0 10px;color:#e4e7ebbd}.article-body blockquote p:last-child{margin-bottom:0}.article-body pre{overflow-x:auto;margin:18px 0 22px;padding:16px 18px;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:#161b22;box-shadow:inset 0 1px #ffffff08;font-size:.88rem;line-height:1.7}.article-body pre code{display:block;min-width:max-content;color:inherit;background:transparent;counter-reset:line}.article-body pre code .code-line{display:block;padding-left:3.2rem;position:relative}.article-body pre code .code-line:before{content:counter(line);counter-increment:line;position:absolute;left:0;width:2.2rem;color:#e4e7eb5c;text-align:right;-webkit-user-select:none;user-select:none}.article-body :not(pre)>code{padding:.12rem .38rem;border:1px solid rgba(255,255,255,.08);border-radius:6px;background:#171a1d;color:#9ccfff;font-size:.88em}.article-body a{color:#9ccfff;text-decoration:underline;text-decoration-color:#9ccfffb3;text-underline-offset:.16em}.article-body a:hover{color:#b7ddff}.article-body img{display:block;max-width:100%;height:auto;margin:18px 0 22px;border-radius:12px;border:1px solid rgba(255,255,255,.08);box-shadow:0 10px 30px #0000003d}.heading-anchor{color:inherit}.heading-anchor:hover{color:#9ccfff}.inline-back-link{display:inline-flex;margin-top:24px;color:#9ccfff;font-size:.9rem}.contact-list{display:grid;gap:8px;margin-top:24px}.contact-list a{padding:10px 0;border-bottom:1px solid rgba(255,255,255,.08);color:#9ccfff}@media(max-width:960px){.sidebar{position:static;width:auto;padding:20px;border-right:0;border-bottom:1px solid rgba(255,255,255,.08)}.content-shell{margin-left:0;padding:20px}.page-card{padding:0 0 28px}.article-layout{grid-template-columns:1fr;gap:20px}.article-toc{position:static}}
