:root{--font-serif: "Times New Roman", Times, "Noto Serif KR", serif;--font-mono: "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--color-text: #1a1a1a;--color-muted: #757575;--color-faint: #9e9e9e;--color-rule: #e0e0e0;--color-bg: #ffffff;--color-code-bg: #f7f7f7;--color-link: #1a1a1a;--measure: 42rem}*{box-sizing:border-box}html{font-size:17px}body{margin:0;font-family:var(--font-serif);color:var(--color-text);background:var(--color-bg);line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.container{max-width:var(--measure);margin:0 auto;padding:0 1.25rem}.site-header{padding:2.75rem 0 1.5rem;border-bottom:1px solid var(--color-rule)}.site-header .container{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.site-title{font-size:1.15rem;font-weight:700;letter-spacing:.01em;margin:0}.site-title a{text-decoration:none;color:var(--color-text)}.site-nav{font-size:.95rem}.site-nav a{color:var(--color-muted);text-decoration:none;margin-left:1.25rem}.site-nav a:hover{color:var(--color-text)}.site-footer{margin-top:5rem;padding:1.5rem 0 3rem;border-top:1px solid var(--color-rule);font-size:.85rem;color:var(--color-faint)}.site-footer a{color:var(--color-faint)}.post-list{list-style:none;margin:3rem 0 0;padding:0}.post-list li{margin-bottom:2.25rem}.post-list .post-date{font-size:.85rem;color:var(--color-faint);font-variant-numeric:oldstyle-nums}.post-list .post-title{display:block;font-size:1.35rem;font-weight:700;color:var(--color-text);text-decoration:none;margin:.15rem 0 .25rem;line-height:1.3}.post-list .post-title:hover{text-decoration:underline;text-underline-offset:3px}.post-list .post-desc{margin:0;color:var(--color-muted);font-size:.98rem}.draft-badge{display:inline-block;font-size:.7rem;font-family:var(--font-mono);color:#b3261e;border:1px solid #b3261e;border-radius:3px;padding:0 .35em;vertical-align:middle;margin-left:.5em}.post-header{margin:3.5rem 0 2.5rem;text-align:center}.post-header h1{font-size:1.9rem;font-weight:700;line-height:1.25;margin:0 0 .75rem}.post-meta{font-size:.9rem;color:var(--color-faint);font-variant-numeric:oldstyle-nums}.post-meta .tags{font-style:italic}.prose{font-size:1rem}.prose h1,.prose h2,.prose h3,.prose h4{font-weight:700;line-height:1.3;margin:2.25rem 0 .75rem}.prose h2{font-size:1.4rem}.prose h3{font-size:1.15rem}.prose h4{font-size:1rem;font-style:italic}.prose p{margin:0 0 1.1rem}.prose a{color:var(--color-link);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--color-faint)}.prose a:hover{text-decoration-color:var(--color-text)}.prose blockquote{margin:1.5rem 0;padding:0 0 0 1.25rem;border-left:2px solid var(--color-rule);color:var(--color-muted);font-style:italic}.prose hr{border:none;border-top:1px solid var(--color-rule);margin:2.5rem auto;width:40%}.prose img{max-width:100%;height:auto;display:block;margin:1.75rem auto}.prose figure{margin:1.75rem 0}.prose figcaption{text-align:center;font-size:.85rem;color:var(--color-muted);font-style:italic}.prose ul,.prose ol{margin:0 0 1.1rem;padding-left:1.6rem}.prose li{margin-bottom:.3rem}.prose table{border-collapse:collapse;margin:1.75rem auto;font-size:.92rem}.prose th,.prose td{padding:.4rem .9rem;border-top:1px solid var(--color-rule);border-bottom:1px solid var(--color-rule);text-align:left}.prose th{border-top:2px solid var(--color-text);border-bottom:1px solid var(--color-text)}.prose tbody tr:last-child td{border-bottom:2px solid var(--color-text)}.prose code{font-family:var(--font-mono);font-size:.82em}.prose :not(pre)>code{background:var(--color-code-bg);padding:.12em .35em;border-radius:3px}.prose pre{background:var(--color-code-bg)!important;border:1px solid var(--color-rule);border-radius:4px;padding:1rem 1.25rem;overflow-x:auto;margin:1.5rem 0;line-height:1.5}.prose .katex-display{overflow-x:auto;overflow-y:hidden;padding:.25rem 0}.lang-switch{font-size:.85rem;color:var(--color-faint);margin-bottom:1.75rem;text-align:center}.lang-switch button{font-family:var(--font-serif);font-size:inherit;background:none;border:none;padding:0;color:var(--color-faint);cursor:pointer}.lang-switch button:hover{color:var(--color-muted)}.lang-switch button.active{color:var(--color-text);font-weight:700}.lang-block{display:none}.lang-block.active{display:block}@media(max-width:600px){html{font-size:16px}.post-header h1{font-size:1.6rem}}
