:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--ink:#1a1a1a;--muted:#5f6368;--link:#0b6bcb;--rule:#e5e7eb;--code-bg:#f6f8fa;--select:#cfe3fa;--col:40rem;--sans:-apple-system, BlinkMacSystemFont, "Hiragino Sans", "Noto Sans JP", "Yu Gothic UI", Meiryo, system-ui, sans-serif;--serif:Charter, "Iowan Old Style", Georgia, serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, "Noto Sans Mono", monospace}html[lang=en]{--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--col:36rem}*{box-sizing:border-box}html{background:var(--bg);color:var(--ink);-webkit-text-size-adjust:100%}body{font-family:var(--sans);margin:0;font-size:17px;line-height:1.9}::selection{background:var(--select)}a{color:var(--link);text-underline-offset:.18em;text-decoration-thickness:1px}a:focus-visible{outline:2px solid var(--link);outline-offset:2px;border-radius:2px}.wrap{max-width:calc(var(--col) + 40px);margin:0 auto;padding:0 20px}.site-header{padding:40px 0 0}.site-name{letter-spacing:-.01em;color:var(--ink);font-size:20px;font-weight:700;text-decoration:none}.site-name:hover{color:var(--link)}main{padding:56px 0 96px}h1{letter-spacing:-.02em;text-wrap:balance;overflow-wrap:anywhere;margin:0;font-size:2.125rem;font-weight:800;line-height:1.3}.meta{color:var(--muted);font-variant-numeric:tabular-nums;margin:12px 0 40px;font-size:15px}.intro{margin:0 0 56px}.intro h1{font-size:2.5rem}.author{margin:20px 0 0}.author-name{overflow-wrap:anywhere;margin:0;font-weight:700}.author-bio{color:var(--muted);overflow-wrap:anywhere;margin:2px 0 0}.author-links{flex-wrap:wrap;gap:4px 20px;margin:10px 0 0;padding:0;font-size:15px;list-style:none;display:flex}.posts{border-top:1px solid var(--rule);margin:0;padding:0;list-style:none}.posts li{border-bottom:1px solid var(--rule);grid-template-columns:10.5rem minmax(0,1fr);align-items:baseline;gap:16px;display:grid}.posts time{color:var(--muted);font-variant-numeric:tabular-nums;padding:14px 0;font-size:15px}.posts a{min-height:44px;color:var(--ink);overflow-wrap:anywhere;padding:14px 0;font-weight:600;line-height:1.6;text-decoration:none;display:block}.posts a:hover,.posts a:focus-visible{color:var(--link);text-decoration:underline}.empty{color:var(--muted);border-top:1px solid var(--rule);margin:0;padding:24px 0}.prose>*+*{margin-top:1.4em}.prose{overflow-wrap:anywhere}.prose p,.prose li{text-wrap:pretty}.prose h2{letter-spacing:-.01em;margin:2.4em 0 0;font-size:1.5rem;font-weight:800;line-height:1.4}.prose h3{margin:2em 0 0;font-size:1.2rem;font-weight:700;line-height:1.5}.prose h2+*,.prose h3+*{margin-top:.7em}.prose ul,.prose ol{padding-left:1.4em}.prose li+li{margin-top:.3em}.prose blockquote{color:#3c4043;border-left:2px solid #d4d7dc;margin-left:0;margin-right:0;padding-left:1.2em}.prose code{font-family:var(--mono);background:#f1f3f4;border-radius:4px;padding:.1em .35em;font-size:.88em}.prose pre,pre.mermaid{font-family:var(--mono)}.prose pre{scrollbar-color:#c9ccd1 transparent;scrollbar-width:thin;border-radius:6px;padding:16px 20px;font-size:14.5px;line-height:1.65;overflow-x:auto;background:var(--code-bg)!important}.prose pre code{font-size:inherit;background:0 0;padding:0}.table-scroll{overflow-x:auto}.prose table{scrollbar-color:#c9ccd1 transparent;scrollbar-width:thin;border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;max-width:100%;font-size:15px;display:block;overflow-x:auto}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--rule);white-space:nowrap;padding:8px 12px 8px 0}.prose th{border-bottom-color:#c9ccd1;font-weight:700}.prose img{max-width:100%;height:auto;display:block}.prose pre.mermaid[data-processed]{white-space:normal;text-align:center;font-size:inherit;line-height:inherit;margin-left:0;margin-right:0;padding:0;overflow-x:auto;background:0 0!important}pre.mermaid svg{max-width:none;height:auto;margin:0 auto;display:block}pre.mermaid svg *{filter:none!important}.back{border-top:1px solid var(--rule);margin-top:72px;padding-top:24px;font-size:15px}.lead{margin:16px 0 32px}html[lang=en] .prose{font-family:var(--serif);font-size:19px;line-height:1.7}html[lang=en] .prose :is(h2,h3,h4,th,td){font-family:var(--sans)}@media (width<=600px){.site-header{padding-top:24px}main{padding:40px 0 72px}h1{font-size:1.75rem}.intro{margin-bottom:40px}.intro h1{font-size:2rem}.posts li{grid-template-columns:minmax(0,1fr);gap:0;padding:12px 0}.posts time{padding:0}.posts a{min-height:0;padding:2px 0 0}.prose h2{font-size:1.3rem}.prose pre{border-radius:0;margin-left:-20px;margin-right:-20px;padding:14px 20px;font-size:13.5px}}
