:root{--bg: #ffffff;--fg: #1b1b1f;--muted: #5c5f66;--border: #e3e4e8;--accent: #0b5cd5;--code-bg: #f6f7f9;--table-head: #f6f7f9;--measure: 44rem}@media(prefers-color-scheme:dark){:root{--bg: #16171a;--fg: #e8e9ec;--muted: #9a9ea8;--border: #2c2e34;--accent: #79aaff;--code-bg: #1e2025;--table-head: #1e2025}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:-apple-system,BlinkMacSystemFont,Pretendard,Apple SD Gothic Neo,Malgun Gothic,system-ui,sans-serif;font-size:1.0625rem;line-height:1.75}.wrap{max-width:var(--measure);margin:0 auto;padding:0 1.25rem}a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:2px}a:hover{text-decoration-thickness:2px}.skip{position:absolute;left:-9999px}.skip:focus{left:1rem;top:1rem;background:var(--bg);padding:.5rem 1rem;z-index:10}header.site{border-bottom:1px solid var(--border);padding:1.1rem 0;margin-bottom:2.5rem}header.site .row{display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap}header.site .brand{font-weight:700;font-size:1.05rem;text-decoration:none;color:var(--fg)}header.site .tagline{color:var(--muted);font-size:.875rem}header.site nav{margin-left:auto;display:flex;gap:1rem;font-size:.9rem}footer.site{border-top:1px solid var(--border);margin-top:4rem;padding:1.5rem 0 3rem;color:var(--muted);font-size:.875rem}h1,h2,h3{line-height:1.3;letter-spacing:-.01em}h1{font-size:1.9rem;margin:0 0 .5rem}h2{font-size:1.35rem;margin:2.5rem 0 .75rem}h3{font-size:1.1rem;margin:2rem 0 .5rem}.meta{color:var(--muted);font-size:.875rem}.prose table{width:100%;border-collapse:collapse;font-size:.9375rem;margin:1.5rem 0}.prose thead th{background:var(--table-head);text-align:left;font-weight:600}.prose th,.prose td{border:1px solid var(--border);padding:.5rem .7rem;vertical-align:top}.prose td.num,.prose th.num,.prose td[align=right],.prose th[align=right]{text-align:right;font-variant-numeric:tabular-nums}.table-scroll{overflow-x:auto;margin:1.5rem 0}.prose :where(code):not(pre code){background:var(--code-bg);padding:.12em .35em;border-radius:3px;font-size:.9em}.prose pre{background:var(--code-bg)!important;padding:.9rem 1rem;border-radius:6px;overflow-x:auto;font-size:.875rem;line-height:1.6}.prose blockquote{margin:1.5rem 0;padding:.25rem 0 .25rem 1rem;border-left:3px solid var(--border);color:var(--muted)}.prose img,.prose svg{max-width:100%;height:auto}.prose hr{border:0;border-top:1px solid var(--border);margin:2.5rem 0}.posts{list-style:none;padding:0;margin:0}.posts li{padding:1.25rem 0;border-bottom:1px solid var(--border)}.posts h2{margin:0 0 .3rem;font-size:1.15rem}.posts h2 a{color:var(--fg);text-decoration:none}.posts h2 a:hover{color:var(--accent);text-decoration:underline}.posts p{margin:.3rem 0 .5rem;color:var(--muted);font-size:.9375rem}.tags{display:flex;gap:.4rem;flex-wrap:wrap;list-style:none;padding:0;margin:0}.tags li{font-size:.78rem;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:.1rem .55rem}.sources{font-size:.875rem;color:var(--muted)}.sources ol{padding-left:1.2rem}.ad-slot{margin:2rem 0;min-height:90px;display:flex;align-items:center;justify-content:center}:root{--key-bg: #f0f6ff;--warn-bg: #fff8f0;--ex-bg: #f6f7f9;--ana-bg: #f4f9f4;--warn: #b45309;--ex: #5c5f66;--ana: #2f7d4f}@media(prefers-color-scheme:dark){:root{--key-bg: #16233a;--warn-bg: #2a2113;--ex-bg: #1e2025;--ana-bg: #16281c;--warn: #e0a355;--ex: #9a9ea8;--ana: #6fc292}}.prose .callout{border-left:3px solid;padding:.9rem 1.15rem;margin:1.9rem 0;border-radius:0 6px 6px 0;font-size:.9875rem}.prose .callout>:first-child{margin-top:0}.prose .callout>:last-child{margin-bottom:0}.prose .callout .label{display:flex;align-items:center;gap:.45rem;font-weight:700;font-size:.875rem;margin:0 0 .45rem;letter-spacing:-.01em}.prose .callout .label:before{content:"";width:1.1em;height:1.1em;flex:none;background:currentColor;-webkit-mask:var(--icon) center / contain no-repeat;mask:var(--icon) center / contain no-repeat}.prose .callout.analogy{border-color:var(--ana);background:var(--ana-bg)}.prose .callout.analogy .label{color:var(--ana);--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M9 18h6M10 22h4M12 2a7 7 0 0 0-4 12.7V17h8v-2.3A7 7 0 0 0 12 2z'/%3E%3C/svg%3E")}.prose .callout.key{border-color:var(--accent);background:var(--key-bg)}.prose .callout.key .label{color:var(--accent);--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Ccircle cx='12' cy='12' r='4.5'/%3E%3Ccircle cx='12' cy='12' r='1' fill='%23000'/%3E%3C/svg%3E")}.prose .callout.trap{border-color:var(--warn);background:var(--warn-bg)}.prose .callout.trap .label{color:var(--warn);--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 3 2.5 20h19L12 3z'/%3E%3Cpath d='M12 9v5'/%3E%3Cpath d='M12 17.5v.01'/%3E%3C/svg%3E")}.prose .callout.example{border-color:var(--border);background:var(--ex-bg)}.prose .callout.example .label{color:var(--ex);--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Crect x='4' y='2.5' width='16' height='19' rx='2'/%3E%3Cpath d='M8 7h8'/%3E%3Cpath d='M8 12h.01M12 12h.01M16 12h.01M8 16.5h.01M12 16.5h.01M16 16.5h.01'/%3E%3C/svg%3E")}.prose figure.viz{margin:2.1rem 0;padding:0}.prose figure.viz svg{display:block;width:100%;height:auto;max-width:40rem;margin:0 auto;overflow:visible}.prose figure.viz figcaption{margin-top:.7rem;font-size:.85rem;color:var(--muted);text-align:center;line-height:1.55}.prose figure.viz .ax{stroke:var(--border);stroke-width:1}.prose figure.viz .grid{stroke:var(--border);stroke-width:1;stroke-dasharray:3 4;opacity:.7}.prose figure.viz .lbl{fill:var(--muted);font-size:11px;font-family:inherit}.prose figure.viz .lbl-strong{fill:var(--fg);font-size:11.5px;font-weight:600;font-family:inherit}.prose figure.viz .s1{stroke:var(--accent);fill:var(--accent)}.prose figure.viz .s2{stroke:var(--warn);fill:var(--warn)}.prose figure.viz .s3{stroke:var(--muted);fill:var(--muted)}.prose figure.viz .limit{stroke:#d1495b;stroke-width:1.5;stroke-dasharray:5 4}.prose figure.viz .limit-lbl{fill:#d1495b;font-size:11px;font-weight:600;font-family:inherit}.prose figure.viz .bar-ok{fill:var(--accent);opacity:.85}.prose figure.viz .bar-bad{fill:#d1495b;opacity:.85}.prose figure.viz .box{fill:var(--code-bg);stroke:var(--border)}.prose figure.viz .arrow{stroke:var(--muted);stroke-width:1.5;fill:none}.prose figure.viz .seg-read{fill:var(--accent);opacity:.85}.prose figure.viz .seg-write{fill:var(--warn);opacity:.9}.prose figure.viz .seg-full{fill:#d1495b;opacity:.85}.prose figure.viz .seg-txt{fill:#fff;font-size:11.5px;font-weight:600;font-family:inherit}.prose figure.viz .bar-dim{fill:var(--muted);opacity:.35}.prose figure.viz polyline.s1,.prose figure.viz polyline.s2,.prose figure.viz polyline.s3{fill:none}
