:root{--paper: #fbfaf7;--paper-2: #f4f2ec;--hairline: #e6e2d9;--hairline-strong: #cfcaba;--ink: #232320;--ink-soft: #67655e;--ink-faint: #8f8d84;--accent: #2c6e63;--accent-weak: rgba(44, 110, 99, .14);--measure: 42rem;--sans: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", "YuGothic", "Noto Sans JP", Meiryo, system-ui, sans-serif;--serif: "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Yu Mincho", "YuMincho", "Noto Serif JP", "Times New Roman", serif;--mono: "SFMono-Regular", "SF Mono", Menlo, Consolas, "Roboto Mono", monospace}@media (prefers-color-scheme: dark){:root{--paper: #16181a;--paper-2: #22262a;--hairline: #2c3034;--hairline-strong: #43494f;--ink: #e6e3dc;--ink-soft: #9d9c95;--ink-faint: #74746d;--accent: #6fbfb0;--accent-weak: rgba(111, 191, 176, .16)}}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.9;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"palt" 1;overflow-wrap:break-word}.wrap{max-width:var(--measure);width:100%;margin:0 auto;padding:0 1.5rem}header.site{border-bottom:1px solid var(--hairline)}header.site .wrap{display:flex;align-items:baseline;justify-content:space-between;padding-top:1.4rem;padding-bottom:1.4rem}.wordmark{font-family:var(--serif);font-size:1.15rem;letter-spacing:.02em;color:var(--ink);text-decoration:none}.wordmark .dot{color:var(--accent)}.site-note{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}article{padding-top:3.2rem;padding-bottom:4rem}h1{font-family:var(--serif);font-weight:600;font-size:clamp(1.95rem,5.5vw,2.7rem);line-height:1.45;letter-spacing:.01em;text-wrap:balance;margin:0 0 2.4rem}h1:after{content:"";display:block;width:2.4rem;height:2px;background:var(--accent);margin-top:1.4rem}h2{font-size:1.42rem;font-weight:700;line-height:1.6;letter-spacing:.01em;margin:3.4rem 0 1.1rem;text-wrap:balance}h3{font-size:1.14rem;font-weight:700;margin:2.4rem 0 .8rem}p{margin:0 0 1.5rem}a{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em;text-decoration-color:var(--accent-weak);transition:text-decoration-color .15s ease;overflow-wrap:anywhere;word-break:break-word}a:hover{text-decoration-color:var(--accent)}a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}blockquote{margin:2rem 0;padding:.2rem 0 .2rem 1.4rem;border-left:2px solid var(--accent);color:var(--ink-soft);font-size:1.06rem;line-height:1.85}blockquote p:last-child{margin-bottom:0}ul,ol{margin:0 0 1.5rem;padding-left:1.4rem}li{margin:.35rem 0}li::marker{color:var(--ink-faint)}code{font-family:var(--mono);font-size:.9em;background:var(--paper-2);padding:.1em .4em;border-radius:4px;overflow-wrap:anywhere}pre{background:var(--paper-2);padding:1rem 1.1rem;border-radius:8px;overflow-x:auto;line-height:1.7}pre code{background:none;padding:0;overflow-wrap:normal}img{max-width:100%;height:auto}table{display:block;max-width:100%;overflow-x:auto;margin:2rem 0;font-size:.92rem;line-height:1.7;font-variant-numeric:tabular-nums}th,td{padding:.6em 1.1em .6em 0;text-align:left;vertical-align:top;min-width:5.5em;border-bottom:1px solid var(--hairline)}th{font-size:.8rem;font-weight:600;letter-spacing:.05em;color:var(--ink-soft);padding-top:0;padding-bottom:.55em;border-bottom:1px solid var(--hairline-strong);white-space:nowrap}td:first-child{font-weight:600;min-width:7em}th:last-child,td:last-child{padding-right:0}hr{border:none;border-top:1px solid var(--hairline);margin:3rem 0}strong{font-weight:700}footer.site{border-top:1px solid var(--hairline)}footer.site .wrap{padding-top:2rem;padding-bottom:2.6rem;display:flex;justify-content:space-between;align-items:baseline;color:var(--ink-faint);font-size:.82rem}footer.site a{color:var(--ink-soft);text-decoration-color:var(--hairline)}@media (max-width: 640px){body{font-size:16px;line-height:1.85}.wrap{padding:0 1.15rem}article{padding-top:2.4rem;padding-bottom:3rem}h1{margin-bottom:2rem}h2{margin-top:2.8rem}header.site .wrap{padding-top:1.1rem;padding-bottom:1.1rem}header.site .wrap,footer.site .wrap{gap:.75rem}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{transition:none!important}}
