:root{color-scheme:light;--paper:#fff;--canvas:#fff;--ink:#252525;--muted:#666;--line:#dcdcdc;--soft-line:#ececec;--surface:#f7f7f7;--secondary-ink:#686868;--faint:#6f6f6f;--hover-surface:#fafafa;--prose-ink:#2e2e2e;--heading-ink:#171717;--quote-ink:#666;--quote-line:#777;--preview-background:#565656;--panel-shadow:0 18px 60px #00000008;--sidebar-width:236px;--content-width:1100px;--article-width:830px;--font-sans:"Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans KR", "Malgun Gothic", sans-serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace}:root[data-theme=dark]{color-scheme:dark;--paper:#121212;--canvas:#121212;--ink:#f0f0ed;--muted:#92928e;--line:#363634;--soft-line:#292927;--surface:#1a1a19;--secondary-ink:#b5b5b0;--faint:#90908b;--hover-surface:#181817;--prose-ink:#d7d7d2;--heading-ink:#f0f0ed;--quote-ink:#aaaaa5;--quote-line:#6d6d69;--preview-background:#deded9;--panel-shadow:0 18px 60px #0000002e}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--canvas)}body{min-width:320px;min-height:100vh;color:var(--ink);background:var(--canvas);font-family:var(--font-sans);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.75}a{color:inherit;text-underline-offset:.2em}img,svg{max-width:100%;height:auto;display:block}button,input,textarea,select{font:inherit}::selection{color:var(--paper);background:var(--ink)}:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.skip-link{z-index:100;color:var(--paper);background:var(--ink);padding:.6rem .85rem;position:fixed;top:1rem;left:1rem;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.site-sidebar{z-index:10;width:var(--sidebar-width);background:var(--paper);position:fixed;inset:0 auto 0 0;overflow-y:auto}.site-sidebar:after{background:linear-gradient(to bottom, transparent, var(--line) 12%, var(--line) 88%, transparent);content:"";width:1px;position:absolute;top:48px;bottom:48px;right:0}.site-sidebar__inner{flex-direction:column;min-height:100%;padding:56px 30px 32px;display:flex}.site-brand{letter-spacing:-.04em;font-size:1.05rem;font-weight:600;text-decoration:none;display:inline-block;position:relative}.site-brand:after{background:var(--ink);content:"";border-radius:50%;width:5px;height:5px;position:absolute;top:.15rem;right:-.65rem}.category-nav{margin-top:3.2rem}.category-nav__heading,.section-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.category-nav__heading{border-bottom:1px solid var(--soft-line);cursor:pointer;margin-bottom:1rem;padding-bottom:.55rem;list-style:none}.category-nav__heading::-webkit-details-marker{display:none}.category-nav__heading:after{color:var(--muted);content:"+";font-family:var(--font-mono);margin-left:.2rem;font-size:.8rem}.category-nav__disclosure[open] .category-nav__heading:after{content:"−"}.category-nav__heading h2,.section-heading :is(h1,h2){margin:0;font-size:.78rem;font-weight:650}.category-nav__heading span,.section-heading span{color:var(--muted);font-family:var(--font-mono);text-transform:uppercase;font-size:.64rem}.category-list,.post-list{margin:0;padding:0;list-style:none}.category-list a{color:var(--secondary-ink);text-align:left;justify-content:flex-start;align-items:center;padding-block:.34rem;font-size:.78rem;text-decoration:none;transition:color .16s;display:flex;position:relative}.category-list a:before{background:var(--ink);content:"";width:0;height:1px;transition:width .16s;position:absolute;top:50%;left:-18px;transform:translateY(-50%)}.category-list a:hover{color:var(--ink);text-decoration:underline}.category-list a:hover:before,.category-list a[aria-current=page]:before{width:12px}.category-list a[aria-current=page]{color:var(--ink);font-weight:700}.category-list a>span:first-child{margin-right:auto}.category-count{color:var(--muted);font-family:var(--font-mono);margin-left:1rem;font-size:.65rem}.site-nav{border-top:1px solid var(--soft-line);flex-direction:column;gap:.45rem;margin-top:3.2rem;padding-top:1.5rem;display:flex}.site-nav a{width:fit-content;color:var(--secondary-ink);font-size:.78rem;text-decoration:none;position:relative}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--ink);font-weight:700;text-decoration:underline}.site-nav a[aria-current=page]:before{background:var(--ink);content:"";border-radius:50%;width:4px;height:4px;position:absolute;top:50%;left:-.8rem;transform:translateY(-50%)}.sidebar-footer{color:var(--muted);margin-top:auto;padding-top:4rem}.sidebar-footer small{font-family:var(--font-mono);margin-top:.25rem;font-size:.62rem;display:block}.theme-toggle{min-height:36px;color:var(--muted);cursor:pointer;font-family:var(--font-mono);background:0 0;border:0;align-items:center;gap:.55rem;margin-left:-.2rem;padding:.15rem .2rem;font-size:.68rem;display:inline-flex}.theme-toggle:hover{color:var(--ink)}.theme-toggle__track{border:1px solid var(--secondary-ink);border-radius:999px;width:28px;height:14px;position:relative}.theme-toggle__thumb{background:var(--ink);border-radius:50%;width:8px;height:8px;transition:transform .16s;position:absolute;top:2px;left:2px}:root[data-theme=dark] .theme-toggle__thumb{transform:translate(14px)}.site-main{min-height:100vh;margin-left:var(--sidebar-width);background:var(--paper);padding:64px clamp(32px,6vw,96px) 110px}.page-heading,.post-header{width:min(100%, var(--content-width));text-align:center;margin-inline:auto}.page-heading{margin-bottom:3rem}.page-heading h1,.post-header h1{letter-spacing:-.045em;text-wrap:balance;margin:0;font-size:clamp(1.7rem,3vw,2.15rem);font-weight:500;line-height:1.35}.page-heading>p:last-child:not(.eyebrow){max-width:580px;color:var(--muted);margin:.9rem auto 0;font-size:.85rem}.eyebrow{color:var(--muted);letter-spacing:.04em;margin:0 0 .55rem;font-size:.7rem;font-weight:500}.eyebrow a{text-decoration:none}.eyebrow a:hover{color:var(--ink);text-decoration:underline}.content-panel,.post-layout{width:min(100%, var(--content-width));background:var(--paper);border:1px solid var(--soft-line);box-shadow:var(--panel-shadow);margin-inline:auto}.content-panel{padding:0 clamp(16px,3vw,36px) 1.25rem}.section-heading{border-bottom:1px solid var(--line);min-height:58px}.section-heading:before{background:var(--ink);content:"";border-radius:50%;flex:none;width:6px;height:6px;margin-right:-.3rem}.section-heading :is(h1,h2){margin-right:auto}.post-list>li{border-bottom:1px solid var(--soft-line)}.post-list>li:last-child{border-bottom:0}.post-card{grid-template-columns:32px minmax(0,1fr) 28px;align-items:center;gap:1rem;padding-block:1.55rem;transition:background-color .18s,padding .18s,margin .18s;display:grid;position:relative}.post-card:hover,.post-card:focus-within{background:var(--hover-surface);margin-inline:-.8rem;padding-inline:.8rem}.post-index{color:var(--faint);font-family:var(--font-mono);font-size:.66rem}.post-card__meta{color:var(--muted);flex-wrap:wrap;gap:.45rem;margin:0 0 .3rem;font-size:.7rem;display:flex}.post-card__meta a{text-decoration:none}.post-card__meta a:hover{text-decoration:underline}.post-card :is(h2,h3){letter-spacing:-.025em;margin:0;font-size:clamp(1rem,2vw,1.2rem);font-weight:500;line-height:1.5}.post-card :is(h2,h3) a{text-decoration:none}.post-card :is(h2,h3) a:hover{text-decoration:underline}.post-card__arrow{color:var(--muted);text-align:center;font-size:.8rem;text-decoration:none;transition:color .16s,transform .16s}.post-card:is(:hover,:focus-within) .post-card__arrow{color:var(--ink);transform:translate(2px,-2px)}.empty-state{min-height:210px;color:var(--muted);justify-content:center;align-items:center;gap:.65rem;font-size:.82rem;display:flex}.empty-state p{margin:0}.post-header{margin-bottom:0;padding:0 1rem 3.4rem;position:relative}.post-header:after{background:var(--ink);content:"";width:32px;height:1px;margin:auto;position:absolute;bottom:1.8rem;left:0;right:0}.post-meta{color:var(--faint);justify-content:center;align-items:center;gap:0;margin:1rem 0 0;display:flex}.post-meta>div{align-items:center;display:flex}.post-meta>div+div:before{content:"|";margin-inline:.75rem}.post-meta dt{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.post-meta dd{margin:0;font-size:.75rem}.post-layout{padding:clamp(38px,6vw,72px) clamp(28px,6vw,72px)}.table-of-contents{max-width:var(--article-width);color:var(--muted);background:var(--surface);border:1px solid var(--soft-line);margin:0 auto 2.5rem;font-size:.78rem}.table-of-contents summary{color:var(--ink);cursor:pointer;padding:.7rem .9rem;font-weight:600}.table-of-contents nav{border-top:1px solid var(--soft-line);padding:0 1rem .9rem}.table-of-contents ol{margin:0;padding:.8rem 0 0 1.25rem}.table-of-contents li{margin-top:.25rem}.table-of-contents li[data-depth="3"]{margin-left:.7rem}.table-of-contents li[data-depth="4"]{margin-left:1.4rem}.table-of-contents a{text-decoration:none}.table-of-contents a:hover{color:var(--ink);text-decoration:underline}.prose{max-width:var(--article-width);color:var(--prose-ink);word-break:keep-all;overflow-wrap:break-word;margin-inline:auto;font-size:clamp(.98rem,1.4vw,1.08rem);line-height:1.95}.prose>:first-child{margin-top:0}.prose h2,.prose h3,.prose h4{color:var(--heading-ink);letter-spacing:-.04em;scroll-margin-top:2rem;font-weight:700;line-height:1.4}.prose h2{margin:3.8rem 0 1.25rem;font-size:clamp(1.6rem,3vw,2rem)}.prose h3{margin:3rem 0 1rem;font-size:1.4rem}.prose h4{margin:2.5rem 0 .8rem;font-size:1.15rem}.prose p,.prose ul,.prose ol,.prose blockquote,.prose pre,.prose table,.prose .equation,.prose .katex-display{margin-block:1.45rem}.prose a{font-weight:550}.prose blockquote{color:var(--quote-ink);border-left:3px solid var(--quote-line);margin-inline:0;padding:.3rem 0 .3rem 1.25rem}.prose code:not(pre code){background:var(--surface);border:1px solid var(--soft-line);font-family:var(--font-mono);border-radius:3px;padding:.14em .35em;font-size:.87em}.prose pre{max-width:100%;font-size:.82rem;line-height:1.7;overflow-x:auto;white-space:pre!important;word-wrap:normal!important;border-radius:0!important;padding:1.25rem!important}.prose table{border-collapse:collapse;width:100%;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--line);text-align:left;padding:.7rem .85rem}.prose th{background:var(--surface);white-space:nowrap}.prose img{width:auto;margin-block:2rem;margin-inline:auto}.equation,.katex-display{max-width:100%;padding:1rem 0;overflow:auto hidden}.preview-banner{width:min(100%, var(--content-width));color:var(--paper);background:var(--preview-background);text-align:center;margin:0 auto 2rem;padding:.7rem 1rem;font-size:.72rem}.preview-banner strong{margin-right:.5rem}@media (width<=980px){:root{--sidebar-width:210px}.site-sidebar__inner{padding-inline:24px}.site-main{padding-inline:28px}}@media (width<=760px){.post-card:hover,.post-card:focus-within{margin-inline:0;padding-inline:0}.site-sidebar{border-right:0;border-bottom:1px solid var(--line);width:100%;position:static;overflow:visible}.site-sidebar:after{display:none}.site-sidebar__inner{grid-template-columns:1fr auto;gap:1.25rem 2rem;min-height:auto;padding:24px;display:grid}.category-nav{grid-column:1/-1;margin-top:.5rem}.category-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1.5rem;display:grid}.site-nav{border-top:0;align-items:flex-end;margin-top:0;padding-top:0}.sidebar-footer{border-top:1px solid var(--soft-line);grid-column:1/-1;margin-top:0;padding-top:1rem}.sidebar-footer small{display:none}.site-main{margin-left:0;padding:40px 18px 72px}.post-header{padding-bottom:3rem}.post-layout{padding:36px 24px}.prose{word-break:normal}}@media (width<=480px){.site-sidebar__inner{grid-template-columns:1fr}.site-nav{flex-direction:row;align-items:flex-start}.category-list{grid-template-columns:1fr}.post-card{grid-template-columns:24px minmax(0,1fr);gap:.7rem}.post-card__arrow{display:none}.post-meta{flex-wrap:wrap}.post-meta>div:last-child{justify-content:center;width:100%}.post-meta>div:last-child:before{display:none}.post-layout{padding-inline:20px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.category-list a,.category-list a:before,.post-card,.post-card__arrow,.theme-toggle__thumb{transition:none}}
