@font-face{font-family:UMSUNGJUN Code;src:url(/fonts/d2coding-blog.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}.post{max-width:748px;font-family:"Pretendard Site", "Pretendard Blog", var(--font-body);margin:0 auto;padding:40px 24px 112px}.post-th{margin-bottom:40px}.post h1{letter-spacing:-.025em;font-size:48px;line-height:60px}.post .meta{color:var(--muted);flex-wrap:wrap;gap:4px 10px;margin:20px 0 0;font-size:14px;display:flex}.post .meta a{color:var(--muted);text-underline-offset:3px}.post .meta a:hover{color:var(--text)}.prose{margin-top:56px;font-size:17px;line-height:1.6}.prose>*,.prose blockquote>*{margin:0 0 32px}.prose blockquote>:last-child{margin-bottom:0}.prose h2,.prose h3,.prose h4{text-wrap:wrap}.prose h2{letter-spacing:-.02em;margin:72px 0 16px;font-size:30px;line-height:1.55}.prose h3{letter-spacing:-.015em;margin:48px 0 12px;font-size:24px;line-height:1.6}.prose h4{margin:40px 0 12px;font-size:19px}.prose ul,.prose ol{padding-left:1.4em}.prose ul{list-style:outside}.prose ol{list-style:decimal}.prose li{margin-bottom:16px}.prose li>ul,.prose li>ol{margin-top:16px;margin-bottom:0}.prose li>p{margin:0 0 16px}.prose a{text-decoration:underline;-webkit-text-decoration-color:var(--muted);text-decoration-color:var(--muted);text-underline-offset:4px}.prose a:hover{-webkit-text-decoration-color:var(--text);text-decoration-color:var(--text)}.prose strong{font-weight:700}.prose hr{border:0;border-top:1px solid var(--line)}.prose :not(pre)>code{background:var(--surface);border-radius:4px;padding:2px 5px;font-size:.9em}.prose blockquote{border-left:3px solid var(--text);color:var(--text-2);padding:2px 0 2px 18px}.prose figure{margin:40px 0}.prose figure img,.prose figure video{border:1px solid var(--line);border-radius:12px;max-width:100%;height:auto;margin:0 auto}.prose video{background:var(--surface);display:block}.prose figcaption{text-align:center;color:var(--muted);margin-top:10px;font-size:14px}.prose figcaption b{color:var(--text-2)}.prose .yt{width:fit-content;max-width:100%;margin:0 auto;display:block;position:relative}.prose .yt .play{background:#1b1b1fc7;border-radius:50%;width:64px;height:64px;margin:-32px 0 0 -32px;position:absolute;top:50%;left:50%}.prose .yt .play:after{content:"";border-top:12px solid #0000;border-bottom:12px solid #0000;border-left:18px solid #fff;position:absolute;top:20px;left:26px}.prose .yt:hover .play{background:#1b1b1f}.prose .tbl{overflow-x:auto}.prose table{border-collapse:collapse;width:100%;font-size:15px}.prose th,.prose td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:10px 12px}.prose th{border-bottom-color:var(--text);font-weight:700}.code{border:1px solid var(--line);background:var(--bg);border-radius:8px;position:relative;overflow:hidden}.code .lang{font:500 11px var(--font-code);color:var(--muted);text-transform:lowercase;position:absolute;top:8px;right:12px}.code pre{word-break:normal;overflow-wrap:normal;margin:0;padding:16px 16px 16px 0;font-size:14px;line-height:1.65;overflow-x:auto}.code pre code{grid-template-columns:auto minmax(0,1fr);display:grid}.code .ln{color:var(--muted);text-align:right;-webkit-user-select:none;user-select:none;white-space:pre;padding:0 14px 0 16px}.code .src{white-space:pre}.post-end{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;margin-top:64px;padding-top:24px;display:flex}.post-end .chips{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.pn{grid-template-columns:1fr 1fr;gap:12px;margin-top:32px;display:grid}.pn a{border:1px solid var(--line);border-radius:12px;padding:16px 18px;font-weight:600;line-height:1.5;text-decoration:none}.pn a:hover{background:var(--surface)}.pn a span{color:var(--muted);margin-bottom:4px;font-size:13px;font-weight:500;display:block}.pn a.next{text-align:right}.rel{margin-top:56px}.rel h2{margin-bottom:16px;font-size:20px}.rel h2 a{text-underline-offset:4px}.rel .grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.rel .grid a{font-size:15px;font-weight:600;line-height:1.45;text-decoration:none}.rel .grid a:hover{text-underline-offset:3px;text-decoration:underline}.rel .grid .th{margin-bottom:10px}.comments{border-top:1px solid var(--line);min-height:160px;margin-top:56px;padding-top:32px}@media (max-width:720px){.post{padding:20px 16px 96px}.post h1{font-size:32px;line-height:40px}.prose h2{margin-top:56px;font-size:26px}.prose h3{font-size:21px}.rel .grid,.pn{grid-template-columns:minmax(0,1fr)}.pn a.next{text-align:left}}:root{--hl-keyword:#c2255c;--hl-string:#0b6e4f;--hl-number:#1c5fbf;--hl-function:#7048e8;--hl-type:#a1490b;--hl-property:#1a6fa0;--hl-comment:#6b6b73;--hl-regexp:#237a35;--hl-meta:#5c5f66}:root[data-theme=dark]{--hl-keyword:#ff7aa8;--hl-string:#63e6be;--hl-number:#74c0fc;--hl-function:#b197fc;--hl-type:#ffa94d;--hl-property:#66d9e8;--hl-comment:#8e8e96;--hl-regexp:#8ce99a;--hl-meta:#a6a7ad}.hljs-keyword,.hljs-selector-tag,.hljs-tag .hljs-name,.hljs-name{color:var(--hl-keyword)}.hljs-string,.hljs-template-string,.hljs-symbol{color:var(--hl-string)}.hljs-number,.hljs-literal{color:var(--hl-number)}.hljs-title.function_,.hljs-title,.hljs-section{color:var(--hl-function)}.hljs-built_in,.hljs-type,.hljs-title.class_,.hljs-attr,.hljs-attribute{color:var(--hl-type)}.hljs-property,.hljs-variable.language_,.hljs-params{color:var(--hl-property)}.hljs-comment,.hljs-quote{color:var(--hl-comment);font-style:italic}.hljs-regexp,.hljs-bullet,.hljs-addition{color:var(--hl-regexp)}.hljs-meta,.hljs-punctuation,.hljs-operator{color:var(--hl-meta)}.hljs-deletion{color:var(--hl-keyword)}
