:root{--fg: #1a1a1a;--fg-muted: #6b6b6b;--fg-faint: #a8a8a8;--bg: #fafaf7;--rule: #e6e4de;--accent: #1a1a1a;--max: 38rem;--max-wide: 44rem;--serif: "Source Han Serif SC", "Noto Serif SC", "Noto Serif CJK SC", "Songti SC", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--serif-ja: "Source Han Serif JP", "Noto Serif JP", "Noto Serif CJK JP", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;--mono: ui-monospace, "SF Mono", Menlo, Monaco, "Cascadia Mono", Consolas, monospace}@media (prefers-color-scheme: dark){:root{--fg: #e8e6e0;--fg-muted: #9a968c;--fg-faint: #5a574f;--bg: #141412;--rule: #2a2925;--accent: #e8e6e0}}*{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:var(--serif);font-weight:400;line-height:1.75;color:var(--fg);background:var(--bg);font-feature-settings:"palt" 1,"kern" 1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:lang(ja){font-family:var(--serif-ja)}main{max-width:var(--max);margin:0 auto;padding:6rem 1.5rem 8rem}@media (max-width: 640px){main{padding:3rem 1.25rem 5rem}}a{color:inherit;text-decoration:none;border-bottom:1px solid var(--rule);transition:border-color .2s ease}a:hover{border-bottom-color:var(--fg)}h1,h2,h3,h4{font-weight:500;line-height:1.4;letter-spacing:.01em}h1{font-size:1.5rem;margin-bottom:.5rem}h2{font-size:1.2rem;margin-top:2.5rem;margin-bottom:.75rem}h3{font-size:1.05rem;margin-top:2rem;margin-bottom:.5rem}h4{font-size:.97rem;margin-top:1.75rem;margin-bottom:.5rem;color:var(--fg-muted);font-weight:500}p,ul,ol,blockquote{margin-bottom:1.25rem}blockquote{border-left:2px solid var(--rule);padding-left:1.25rem;color:var(--fg-muted);font-style:normal}code{font-family:var(--mono);font-size:.9em;background:var(--rule);padding:.1em .35em;border-radius:3px}pre{background:var(--rule);padding:1rem;border-radius:4px;overflow-x:auto;margin-bottom:1.25rem}pre code{background:none;padding:0}ul,ol{padding-left:1.5rem}hr{border:0;border-top:1px solid var(--rule);margin:3rem 0}.portico{margin-bottom:6rem;text-align:left}.portico p{margin-bottom:.5rem;color:var(--fg-muted);font-size:1.05rem;line-height:1.5}.portico p:first-child{color:var(--fg)}.post-list{list-style:none;padding:0;margin:0}.post-list li{padding:.85rem 0;border-bottom:1px solid var(--rule);display:flex;justify-content:space-between;align-items:baseline;gap:1.5rem}.post-list li:last-child{border-bottom:none}.post-list a{border-bottom:none;flex:1}.post-list a:hover{color:var(--fg);opacity:.6}.post-list .meta{color:var(--fg-faint);font-size:.85rem;white-space:nowrap;font-variant-numeric:tabular-nums}.post-list .lang-tag{color:var(--fg-faint);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;margin-right:.5rem}.post-header{margin-bottom:3rem}.post-header .meta{color:var(--fg-faint);font-size:.85rem;font-variant-numeric:tabular-nums;margin-top:.75rem}.series-link{display:inline-block;font-size:.8rem;color:var(--fg-faint);letter-spacing:.04em;margin-bottom:1rem;border-bottom:none}.series-link:hover{color:var(--fg)}.series-link .num{font-variant-numeric:tabular-nums;margin-left:.25rem}.post-content{font-size:1rem}.post-content p,.post-content ul,.post-content ol,.post-content blockquote{margin-bottom:1.5rem}.post-content p{line-height:1.85}.post-content h2{margin-top:3.5rem;margin-bottom:1.25rem;font-size:1.25rem;font-weight:500}.post-content h3{margin-top:2.5rem;margin-bottom:.75rem;font-size:1.05rem;font-weight:500}.post-content h4{margin-top:2rem;margin-bottom:.5rem;font-size:.97rem;font-weight:500;color:var(--fg);letter-spacing:.02em}.post-content li{margin-bottom:.5rem;line-height:1.75}.post-content blockquote{border-left:2px solid var(--rule);padding:.15rem 0 .15rem 1.5rem;margin:2rem 0;color:var(--fg-muted);font-size:.97rem;line-height:1.8}.post-content blockquote p{margin-bottom:.75rem;line-height:1.8}.post-content blockquote p:last-child{margin-bottom:0}.post-content>blockquote:first-child{margin-top:0;margin-bottom:3rem;font-size:1rem;color:var(--fg);border-left-width:3px}.post-content hr{border:0;text-align:center;margin:4rem 0;height:1rem;position:relative}.post-content hr:after{content:"·  ·  ·";letter-spacing:.2em;color:var(--fg-faint);font-size:1.2rem;position:absolute;left:50%;top:0;transform:translate(-50%)}.post-content .epigraph,.post-content aside.epigraph{display:block;font-style:italic;text-align:center;margin:3rem auto;padding:0;color:var(--fg-muted);border:none;letter-spacing:.05em;line-height:2.1;font-size:.97rem;max-width:28rem}.post-content strong{font-weight:600;color:var(--fg)}.post-content em{font-style:italic}.post-content img{max-width:100%;height:auto;margin:2rem 0;display:block}.post-content sup,.post-content sub{font-size:.75em;line-height:0;vertical-align:baseline;position:relative}.post-content sup{top:-.5em}.post-content sub{bottom:-.25em}.site-footer{margin-top:5rem;padding-top:2rem;border-top:1px solid var(--rule);color:var(--fg-faint);font-size:.8rem;display:flex;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}.site-footer a{border-bottom:none;color:var(--fg-faint)}.site-footer a:hover{color:var(--fg)}.lang-switcher{display:flex;gap:1rem}.back-link{display:inline-block;margin-bottom:2rem;color:var(--fg-faint);font-size:.9rem;border-bottom:none}.back-link:hover{color:var(--fg)}.toc{margin:0 0 3rem;padding:1.25rem 1.5rem;background:transparent;border:1px solid var(--rule);border-radius:2px;font-size:.92rem}.toc summary{cursor:pointer;list-style:none;color:var(--fg-muted);letter-spacing:.05em;font-size:.8rem;text-transform:uppercase;user-select:none}.toc summary::-webkit-details-marker{display:none}.toc summary:before{content:"▸";display:inline-block;margin-right:.5rem;transition:transform .15s ease;color:var(--fg-faint)}.toc[open] summary:before{transform:rotate(90deg)}.toc ul{list-style:none;padding-left:0;margin:1rem 0 0}.toc li{margin:.4rem 0;line-height:1.4}.toc li.depth-3{padding-left:1.25rem;font-size:.88rem}.toc li.depth-4{padding-left:2.5rem;font-size:.85rem;color:var(--fg-faint)}.toc a{border-bottom:none;color:var(--fg-muted)}.toc a:hover{color:var(--fg)}.post-content :is(h2,h3,h4){scroll-margin-top:2rem}
