@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/source-serif-4-latin-var.woff2) format("woff2")}@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/source-serif-4-latin-var-italic.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-400.woff2) format("woff2")}:root{--radius: 4px;--radius-lg: 10px;--maxw: 1080px;--measure: 38rem;--ease: cubic-bezier(.22, .61, .36, 1);--t-note: 13px;--t-ui: 16px;--t-body: 19px;--t-lede: clamp(20px, 2.1vw, 23px);--t-h3: clamp(25px, 2.6vw, 30px);--t-h2: clamp(30px, 3.6vw, 40px);--t-h1: clamp(36px, 5.6vw, 60px);--s1: 8px;--s2: 12px;--s3: 16px;--s4: 24px;--s5: 32px;--s6: 48px;--s7: 72px;--s8: 104px;--serif: "Source Serif 4", "Iowan Old Style", Georgia, "Times New Roman", serif;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono: "IBM Plex Mono", ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--paper: #ffffff;--brand-ink: #2d3242}[data-theme=light]{--bg: #ffffff;--bg-2: #f6f7f9;--surface: #f6f7f9;--surface-2: #eef0f4;--rule-section: rgba(23, 26, 33, .55);--rule-figure: rgba(23, 26, 33, .34);--border-strong: rgba(23, 26, 33, .22);--border: rgba(23, 26, 33, .11);--text: #171a21;--muted: #454b55;--faint: #5a6068;--nav-bg: rgba(255, 255, 255, .88);--shadow: none;--shadow-sm: none;--glow-op: 0;--accent: #2d3242;--accent-text: #ffffff;--ink-accent: #a04033;--grad: #2d3242;--grad-soft: rgba(160, 64, 51, .1);--device-shadow: none;--iphone-bezel: #eef0f4;--iphone-screen-bg: #ffffff}[data-theme=dark]{--bg: #101319;--bg-2: #171b23;--surface: #171b23;--surface-2: #1e222b;--rule-section: rgba(230, 232, 236, .55);--rule-figure: rgba(230, 232, 236, .3);--border-strong: rgba(230, 232, 236, .22);--border: rgba(230, 232, 236, .12);--text: #e6e8ec;--muted: #aeb4bf;--faint: #969ca8;--nav-bg: rgba(16, 19, 25, .88);--shadow: none;--shadow-sm: none;--glow-op: 0;--accent: #dfe4ef;--accent-text: #101319;--ink-accent: #d4715e;--grad: #dfe4ef;--grad-soft: rgba(212, 113, 94, .14);--device-shadow: none;--iphone-bezel: #1e222b;--iphone-screen-bg: #171b23}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{margin:0;font-family:var(--serif);background:var(--bg, #ffffff);color:var(--text, #171a21);font-size:var(--t-body);line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;transition:background .4s var(--ease),color .3s var(--ease)}a{color:inherit;text-decoration:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--font);font-weight:500;font-size:var(--t-ui);line-height:1;cursor:pointer;padding:var(--s2) var(--s4);border-radius:var(--radius);border:1px solid transparent;white-space:nowrap;text-decoration:none;transition:opacity .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease)}.btn-primary{background:var(--accent);color:var(--accent-text)}.btn-primary:hover{opacity:.85}.btn-ghost{background:none;color:var(--muted);border:0;border-radius:0;border-bottom:1px solid var(--border);padding:13px 2px}.btn-ghost:hover{color:var(--text);border-bottom-color:var(--text)}.btn-lg{font-size:var(--t-ui);padding:var(--s3) var(--s4)}.btn-lg.btn-ghost{padding:15px 2px}.btn-sm{padding:var(--s1) var(--s2);font-size:var(--t-ui)}.btn[disabled]{opacity:.5;cursor:default}h1,h2,h3,h4,h5,h6{font-family:var(--serif);font-weight:400;line-height:1.15;text-wrap:balance}h4,h5,h6{font-weight:600;line-height:1.25}button,input,select,textarea{font-family:var(--font)}:lang(ja){--serif: "Source Serif 4", "Hiragino Mincho ProN", "Yu Mincho", YuMincho, "Noto Serif JP", "MS Mincho", serif;font-family:var(--serif);font-feature-settings:"palt" 1}:lang(ja) h1,:lang(ja) h2,:lang(ja) h3,:lang(ja) p,:lang(ja) li{line-break:strict;overflow-wrap:anywhere}.prose{color:var(--text);font-family:var(--serif);font-size:var(--t-body);line-height:1.7;max-width:var(--measure)}.prose>*:first-child{margin-top:0}.prose h2{font-size:var(--t-h3);font-weight:400;line-height:1.2;margin:var(--s6) 0 18px;padding-top:8px;scroll-margin-top:var(--s8)}.prose h3{font-size:var(--t-lede);font-weight:500;margin:var(--s5) 0 12px;scroll-margin-top:var(--s8)}.prose h4{font-size:var(--t-body);font-weight:600;margin:var(--s5) 0 10px;scroll-margin-top:var(--s8)}.prose p{margin:0 0 var(--s4)}.prose a{color:var(--text);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;font-weight:inherit}.prose a:hover{text-decoration-thickness:2px}.prose ul,.prose ol{margin:0 0 var(--s4);padding-left:26px}.prose li{margin:8px 0}.prose li::marker{color:var(--muted)}.prose li>ul,.prose li>ol{margin:8px 0}.prose strong{font-weight:600;color:var(--text)}.prose hr{border:0;border-top:1px solid var(--border-strong);margin:var(--s6) 0}.prose blockquote{margin:var(--s4) 0;padding:2px 0 2px 22px;border-left:2px solid var(--muted);background:none;border-radius:0;color:var(--muted);font-style:italic}.prose blockquote p{margin:10px 0}.prose code{font-family:var(--mono);font-size:.82em;background:var(--surface-2);border:1px solid var(--border);border-radius:3px;padding:.12em .4em}.prose pre{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);padding:18px 20px;overflow-x:auto;margin:0 0 var(--s4)}.prose pre code{background:none;border:0;padding:0;font-size:var(--t-ui);line-height:1.65;color:var(--text)}.prose .table-scroll,.prose table{margin:0 0 var(--s4)}.prose table{width:100%;border-collapse:collapse;font-size:var(--t-ui);border:1px solid var(--border-strong);border-radius:var(--radius);overflow:hidden}.prose thead th{background:var(--surface-2);text-align:left;font-family:var(--font);font-weight:600;font-size:var(--t-note);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.prose th,.prose td{padding:12px 16px;border-bottom:1px solid var(--border);vertical-align:top}.prose tbody tr:last-child td{border-bottom:0}.prose tbody tr:hover{background:var(--surface)}.prose td code,.prose th code{white-space:nowrap}.prose img{max-width:100%;height:auto;border-radius:var(--radius);display:block;margin:var(--s4) 0}@media(max-width:560px){.prose{font-size:var(--t-ui)}.prose table{display:block;overflow-x:auto;white-space:nowrap}}.prose .mdx{margin:0 0 24px;padding:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden}.prose .mdx-playground{margin:0 0 30px;border-color:var(--border-strong);box-shadow:var(--shadow)}.prose .mdx-playground .mdx-code,.prose .mdx-playground .mdx-out{min-height:210px}.prose .mdx-playground .mdx-code{font-size:14px}.prose .mdx-cap{display:flex;align-items:center;gap:9px;padding:12px 16px;font-family:var(--font);font-size:13px;font-weight:600;letter-spacing:-.01em;color:var(--text);background:var(--grad-soft);border-bottom:1px solid var(--border)}.prose .mdx-cap:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ink-accent);flex:none}.prose .mdx-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}@media(max-width:760px){.prose .mdx-grid{grid-template-columns:minmax(0,1fr)}}.prose .mdx.is-live .mdx-pane-src{cursor:text}.prose .mdx.is-live:focus-within{border-color:var(--border-strong)}.prose .mdx-pane{min-width:0;display:flex;flex-direction:column}.prose .mdx-pane-src{border-right:1px solid var(--border)}@media(max-width:760px){.prose .mdx-pane-src{border-right:0;border-bottom:1px solid var(--border)}}.prose .mdx-bar{display:flex;align-items:center;gap:8px;padding:9px 14px;border-bottom:1px solid var(--border);background:var(--bg-2);min-height:38px}.prose .mdx-tag{font-family:var(--font);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}.prose .mdx-hint{font-family:var(--font);font-size:11px;font-weight:500;color:var(--ink-accent);opacity:.85}.prose .mdx-hint:not(:empty):before{content:"·";margin-right:8px;color:var(--faint)}.prose .mdx-reset{margin-left:auto;border:1px solid var(--border-strong);background:transparent;color:var(--muted);font:inherit;font-family:var(--font);font-size:11px;font-weight:600;padding:3px 10px;border-radius:999px;cursor:pointer;transition:color .2s var(--ease),border-color .2s var(--ease)}.prose .mdx-reset:hover{color:var(--text);border-color:var(--text)}.prose .mdx-code{margin:0;padding:16px 18px;background:none;border:0;border-radius:0;box-shadow:none;font-family:var(--mono);font-size:13.5px;line-height:1.65;color:var(--text);-moz-tab-size:2;tab-size:2;overflow-x:auto;flex:1}.prose .mdx-code code{font-size:inherit;line-height:inherit}.prose textarea.mdx-input{display:block;width:100%;resize:none;overflow:hidden;white-space:pre-wrap;overflow-wrap:break-word;outline:none;transition:background .2s var(--ease)}.prose textarea.mdx-input:focus{background:color-mix(in srgb,var(--ink-accent) 6%,transparent)}.prose .mdx-out{padding:16px 18px;flex:1;min-width:0;font-size:15px;line-height:1.6}.prose .mdx-out>*:first-child{margin-top:0}.prose .mdx-out>*:last-child{margin-bottom:0}.prose .mdx-out p{margin:0 0 12px}.prose .mdx-out ul,.prose .mdx-out ol{margin:0 0 12px;padding-left:22px}.prose .mdx-out li{margin:4px 0}.prose .mdx-out img{margin:8px 0;border-radius:var(--radius)}.prose .mdx-out hr{margin:16px 0}.prose .mdx-out blockquote{margin:0 0 12px;padding:4px 0 4px 14px}.prose .mdx-out table{margin:0;font-size:13.5px}.prose .mdx-out th,.prose .mdx-out td{padding:7px 10px}.prose .mdx-out pre{margin:0 0 12px;padding:12px 14px;border-radius:var(--radius)}.prose .mdx-out pre code{font-size:13px}.prose .mdx-out .mdx-h{margin:0 0 10px;font-weight:500;letter-spacing:-.02em;line-height:1.25;scroll-margin-top:0}.prose .mdx-out .mdx-h1{font-size:25px}.prose .mdx-out .mdx-h2{font-size:21px}.prose .mdx-out .mdx-h3{font-size:18px}.prose .mdx-out .mdx-h4{font-size:16px}.prose .mdx-out .mdx-h5,.prose .mdx-out .mdx-h6{font-size:15px;color:var(--muted)}.prose .mdx-out .mdx-h+*{margin-top:0}.prose .mdx-out li>input[type=checkbox]{margin-right:6px}.prose pre.mermaid{margin:0 0 22px;padding:16px 18px;border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface);font-family:var(--mono);font-size:13px;line-height:1.6;color:var(--muted);overflow-x:auto}.prose .mdx-out pre.mermaid{margin:0 0 12px}.prose .mdx-diagram{margin:0 0 22px;padding:18px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow-x:auto;text-align:center}.prose .mdx-out .mdx-diagram{margin:0 0 12px;padding:12px}.prose .mdx-diagram svg{max-width:100%;height:auto}.prose pre.mdx-diagram-error{border-color:var(--ink-accent);border-style:solid;color:var(--ink-accent)}.prose .mdx-math-raw,.prose .mdx-math-error{font-size:.9em}.prose .mdx-math-error{color:var(--ink-accent);border-color:var(--ink-accent)}.prose .katex-display{overflow-x:auto;overflow-y:hidden;padding:4px 0}
