:root{--fg:#1a1a1a;--muted:#6b6b6b;--line:#e2e2e2;--bg:#fff;--accent:#1b4d8f;--mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace}@media(prefers-color-scheme:dark){:root{--fg:#e8e8e8;--muted:#9a9a9a;--line:#333;--bg:#151515;--accent:#7fb0ea}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;font:16px/1.75 -apple-system,BlinkMacSystemFont,Pretendard,Apple SD Gothic Neo,Malgun Gothic,system-ui,sans-serif;-webkit-text-size-adjust:100%}.wrap{max-width:44rem;margin:0 auto;padding:0 1.25rem}a{color:var(--accent);text-underline-offset:.2em}a:hover{text-decoration-thickness:2px}hr{border:0;border-top:1px solid var(--line);margin:2.5rem 0}header.site{border-bottom:1px solid var(--line);padding:1.25rem 0;margin-bottom:2.5rem}header.site nav{display:flex;gap:1.1rem;flex-wrap:wrap;align-items:baseline}header.site .brand{font-weight:700;color:var(--fg);text-decoration:none;margin-right:auto}header.site nav a{color:var(--muted);text-decoration:none;font-size:.92rem}header.site nav a:hover,header.site nav a[aria-current]{color:var(--fg)}main.wrap{flex:1 0 auto;width:100%}footer.site{border-top:1px solid var(--line);margin-top:4rem;padding:1.5rem 0 3rem;color:var(--muted);font-size:.85rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}h1{font-size:1.7rem;line-height:1.35;margin:0 0 .5rem}h2{font-size:1.25rem;margin:2.5rem 0 .75rem;padding-top:.25rem}h3{font-size:1.05rem;margin:1.75rem 0 .5rem}p,li{overflow-wrap:break-word}blockquote{margin:1.5rem 0;padding:.1rem 0 .1rem 1rem;border-left:3px solid var(--line);color:var(--muted)}code{font-family:var(--mono);font-size:.87em;background:#7f7f7f21;padding:.12em .35em;border-radius:3px}pre{background:#7f7f7f17;padding:1rem;border-radius:6px;overflow-x:auto;font-size:.85rem}pre code{background:none;padding:0}table{border-collapse:collapse;width:100%;font-size:.92rem;display:block;overflow-x:auto}th,td{border:1px solid var(--line);padding:.45rem .6rem;text-align:left}img{max-width:100%;height:auto}.summary{border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:6px;padding:.9rem 1.1rem 1rem;margin:0 0 2rem;background:#7f7f7f0d}.summary h2{font-size:.8rem;letter-spacing:.06em;color:var(--muted);margin:0 0 .5rem;padding:0}.summary ul{margin:0;padding-left:1.2rem}.summary li{margin:.25rem 0;font-size:.95rem}pre.mermaid{background:none;padding:0;text-align:center;visibility:hidden;min-height:6rem}pre.mermaid[data-processed]{visibility:visible}pre.mermaid svg{max-width:100%;height:auto}.meta{font-size:.82rem;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:.6rem .85rem;margin:1.25rem 0 2rem;display:grid;grid-template-columns:auto 1fr;gap:.15rem .9rem}.meta dt{color:var(--muted)}.meta dd{margin:0;color:var(--fg)}.draft{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.03em;border:1px solid currentColor;border-radius:3px;padding:.05em .4em;color:#b45309;margin-left:.5rem;vertical-align:.15em}.list{list-style:none;padding:0;margin:0}.list li{padding:.9rem 0;border-bottom:1px solid var(--line)}.list a{font-weight:600;text-decoration:none}.list a:hover{text-decoration:underline}.list .desc{color:var(--muted);font-size:.9rem;margin:.2rem 0 0}.list time{color:var(--muted);font-size:.8rem;font-variant-numeric:tabular-nums}.lead{color:var(--muted);font-size:1.02rem}.ord{display:inline-block;min-width:2.1em;color:var(--muted);font-variant-numeric:tabular-nums}.stub-title{font-weight:600;color:var(--muted)}.postnav{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin:3rem 0 0;padding-top:1.25rem;border-top:1px solid var(--line)}.postnav .pn{display:flex;flex-direction:column;gap:.25rem;border:1px solid var(--line);border-radius:6px;padding:.7rem .85rem;text-decoration:none;color:var(--fg);min-width:0}.postnav .pn:hover{border-color:var(--accent)}.postnav .pn[aria-disabled]{opacity:.45;pointer-events:none}.postnav .pn-k{font-size:.78rem;color:var(--muted)}.postnav .pn-t{font-size:.9rem;line-height:1.35}.postnav .next{text-align:right}@media(max-width:34rem){.postnav{grid-template-columns:1fr}.postnav .next{text-align:left}}
