:root{color-scheme:dark;--color-bg:#070c0a;--color-surface:#0c1411;--color-surface-raised:#111c18;--color-surface-hover:#15231e;--color-border:#e8e8ef1a;--color-border-strong:#e8e8ef2e;--color-text:#e8e8ef;--color-text-secondary:#a6aaa8;--color-text-muted:#747b77;--color-accent:#00d4aa;--color-accent-strong:#00e8c0;--color-accent-soft:#00d4aa1a;--font-sans:"Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans KR", sans-serif;--shell-width:1120px;--header-height:64px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;min-height:100vh;color:var(--color-text);background:linear-gradient(#ffffff03 1px, transparent 1px), linear-gradient(90deg, #ffffff03 1px, transparent 1px), var(--color-bg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-size:48px 48px;margin:0;font-size:16px;font-weight:400;line-height:1.65}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}p,h1,h2,h3,h4,ul,ol,dl,dd,figure,blockquote{margin:0}ul,ol{padding:0}::selection{color:#03100c;background:var(--color-accent)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.shell{width:min(calc(100% - 48px), var(--shell-width));margin-inline:auto}.skip-link{z-index:1000;color:#03100c;background:var(--color-accent);border-radius:var(--radius-sm);padding:10px 14px;font-weight:700;transition:transform .16s;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.site-header{z-index:100;height:var(--header-height);border-bottom:1px solid var(--color-border);backdrop-filter:blur(16px);background:#070c0ae6;position:sticky;top:0}.site-header__inner{width:min(calc(100% - 48px), var(--shell-width));justify-content:space-between;align-items:center;gap:32px;height:100%;margin-inline:auto;display:flex}.brand{letter-spacing:-.02em;align-items:center;gap:10px;min-height:44px;font-size:1.02rem;font-weight:750;display:inline-flex}.brand__mark{width:auto;height:30px;display:block}.brand__name{color:var(--color-text)}.brand__name span{color:var(--color-text-secondary);font-weight:500}.site-nav{align-items:center;gap:8px;display:flex}.site-nav a{min-height:40px;color:var(--color-text-secondary);border-radius:var(--radius-sm);align-items:center;padding:0 12px;font-size:.9rem;font-weight:600;transition:color .16s,background-color .16s;display:inline-flex}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--color-text);background:#ffffff0d}.site-nav__language{border:1px solid #00d4aa40;margin-left:4px;color:var(--color-accent)!important}.site-nav__language:hover{border-color:var(--color-accent)}html[lang=en] .blog-intro p,html[lang=en] .post-card h2,html[lang=en] .post-card .excerpt,html[lang=en] .sidebar-card p,html[lang=en] .post-header h1,html[lang=en] .post-description,html[lang=en] .post-content h2,html[lang=en] .post-content h3,html[lang=en] .post-content p,html[lang=en] .post-content li,html[lang=en] .related-title{word-break:normal}.site-footer{border-top:1px solid var(--color-border);margin-top:88px}.site-footer__inner{width:min(calc(100% - 48px), var(--shell-width));justify-content:space-between;align-items:center;gap:32px;min-height:132px;margin-inline:auto;padding:32px 0;display:flex}.site-footer__brand{margin-bottom:5px;font-size:.95rem;font-weight:700}.site-footer__copy,.site-footer__meta{color:var(--color-text-muted);font-size:.82rem}.site-footer__meta{text-align:right}.tip,.warning,.summary-box{color:var(--color-text-secondary);background:var(--color-surface);border-radius:0 var(--radius-md) var(--radius-md) 0;margin:30px 0;padding:18px 20px}.tip{border-left:3px solid var(--color-accent);background:#00d4aa12}.warning{background:#ffcb6b12;border-left:3px solid #ffcb6b}.summary-box{border-radius:var(--radius-md);background:#4ade800f;border:1px solid #4ade803d}.tip strong,.summary-box h3{color:var(--color-accent-strong)}.warning strong{color:#ffe0a3}.tip>:last-child,.warning>:last-child,.summary-box>:last-child{margin-bottom:0}.table-wrapper{border:1px solid var(--color-border);border-radius:var(--radius-md);-webkit-overflow-scrolling:touch;margin:26px 0 32px;overflow-x:auto}table{border-collapse:collapse;width:100%;margin:26px 0 32px;font-size:.9rem}.table-wrapper table{margin:0}th,td{border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top;word-break:keep-all;padding:12px 14px}tr:last-child td{border-bottom:0}th{color:var(--color-text);background:var(--color-surface-raised);white-space:nowrap;font-size:.82rem;font-weight:700}td{color:var(--color-text-secondary)}code{color:#8af6df;border:1px solid var(--color-border);word-break:break-word;background:#fff1;border-radius:4px;padding:.14em .4em;font-family:Consolas,SFMono-Regular,monospace;font-size:.86em}pre,pre[class*=language-]{color:#d4d8e4;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);margin:26px 0 34px;padding:24px;font-size:.86rem;line-height:1.7;position:relative;overflow-x:auto;background:#050806!important}pre code,pre[class*=language-] code{color:inherit;font:inherit;background:0 0;border:0;padding:0}.code-block{margin:26px 0 34px;position:relative}.code-block pre{margin:0}.copy-btn{min-width:48px;min-height:40px;color:var(--color-text-secondary);background:var(--color-surface-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);cursor:pointer;padding:0 10px;position:absolute;top:8px;right:10px}.copy-btn:hover{color:var(--color-accent);border-color:var(--color-accent)}@media (width<=720px){.shell,.site-header__inner,.site-footer__inner{width:min(calc(100% - 32px), var(--shell-width))}.brand__name span{display:none}.site-header__inner{gap:12px}.site-nav{gap:2px}.site-nav a{padding-inline:8px;font-size:.85rem}.code-block pre{padding-top:56px}.site-footer{margin-top:64px}.site-footer__inner{flex-direction:column;justify-content:center;align-items:flex-start;gap:12px;min-height:144px}.site-footer__meta{text-align:left}}@media (width<=400px){.brand__name{display:none}}@media (width<=520px){.site-nav a[data-secondary]{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
