:root{--bg:#f6f7f8;--surface:#ffffff;--fg:#1d2327;--muted:#5d6870;--line:#d9dee2;--accent:#0f6b6b;--accent-soft:#dcefee;--code-bg:#eceff1;--font-body:"Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", "Noto Sans JP", system-ui, sans-serif;--font-mono:ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace}@media(prefers-color-scheme:dark){:root{--bg:#161b20;--surface:#1e252b;--fg:#e4e8eb;--muted:#9aa6ae;--line:#323c44;--accent:#6fc7c2;--accent-soft:#1f3a3a;--code-bg:#262f36;color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:16.5px;line-height:1.9;padding:0 max(16px,env(safe-area-inset-right))4rem max(16px,env(safe-area-inset-left))}.site-header,main,.site-footer{max-width:41rem;margin-inline:auto}.site-header{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap;padding-block:1.6rem 1.2rem;border-bottom:1px solid var(--line);margin-bottom:2.4rem}.site-title{font-weight:700;font-size:1.15rem;color:var(--fg);text-decoration:none;letter-spacing:.02em}.site-header nav{display:flex;gap:1.1rem;font-size:.9rem}.site-header nav a{color:var(--muted);text-decoration:none}.site-header nav a:hover,.site-title:hover{color:var(--accent)}a{color:var(--accent);text-underline-offset:.2em}a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.lead,.empty{color:var(--muted);margin:0 0 1.6rem}.post-list,.term-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.post-item{padding:.9rem 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:.15rem}.post-meta{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:.82rem;font-variant-numeric:tabular-nums}.kind{font-size:.74rem;color:var(--accent);background:var(--accent-soft);padding:.05rem .5rem;border-radius:3px;text-decoration:none;line-height:1.7}.post-title{color:var(--fg);text-decoration:none;font-weight:600;line-height:1.6}.post-title:hover{text-decoration:underline;text-decoration-color:var(--accent)}.list-title{font-size:1.3rem;margin:0 0 1.2rem}.term-list li{display:flex;justify-content:space-between;padding:.6rem 0;border-bottom:1px solid var(--line)}.term-list span{color:var(--muted);font-variant-numeric:tabular-nums}.pager{display:flex;justify-content:space-between;gap:1rem;margin-top:1.6rem;font-size:.9rem;color:var(--muted)}.article-header{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.8rem}.article-header h1{font-size:1.55rem;line-height:1.5;margin:0;text-wrap:balance}.article-body>*{margin:0 0 1.15rem}.article-body h2{font-size:1.15rem;line-height:1.6;margin:2.2rem 0 .9rem}.article-body h3{font-size:1.02rem;margin:1.8rem 0 .8rem}.article-body ul,.article-body ol{padding-left:1.4em}.article-body li+li{margin-top:.4rem}.article-body blockquote{margin-inline:0;padding-left:1rem;border-left:3px solid var(--line);color:var(--muted)}code{font-family:var(--font-mono);font-size:.88em;background:var(--code-bg);padding:.1em .35em;border-radius:3px;overflow-wrap:anywhere}pre{background:var(--code-bg)!important;border-radius:5px;padding:.9rem 1.1rem;overflow-x:auto;line-height:1.65;font-size:.84rem}pre code{background:0 0;padding:0;font-size:inherit;overflow-wrap:normal}@media(prefers-color-scheme:dark){pre span{color:inherit!important;background:0 0!important}}.article-body table{display:block;overflow-x:auto;border-collapse:collapse;font-size:.9rem;line-height:1.65}.article-body th,.article-body td{text-align:left;vertical-align:top;padding:.55rem .9rem .55rem 0;border-bottom:1px solid var(--line);min-width:6rem}.article-body th{font-weight:600;color:var(--muted);font-size:.8rem}.figure{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:1rem}.figure pre.mermaid{background:0 0!important;padding:0;margin:0;text-align:center}.article-tags{display:flex;gap:.9rem;flex-wrap:wrap;margin-top:2.4rem;padding-top:1rem;border-top:1px solid var(--line);font-size:.86rem}.article-tags a{color:var(--muted);text-decoration:none}.site-footer{margin-top:4rem;padding-top:1.2rem;border-top:1px solid var(--line);color:var(--muted);font-size:.84rem}.site-footer p{margin:0}