:root{--desktop:#3a6ea5;--face:#d4d0c8;--hilight:#ffffff;--light:#e9e7e3;--shadow:#808080;--dkshadow:#404040;--window:#ffffff;--text:#000000;--muted:#505050;--title-a:#0a246a;--title-b:#a6caf0;--title-text:#ffffff;--title-inactive-a:#808080;--select:#0a246a;--select-text:#ffffff;--link:#0033cc;--visited:#6b2e8f;--info:#ffffe1;--info-border:#000000;--mark:#ffff00;--draft:#b00000;--current:#eceae4;--ui-font:Tahoma, "돋움", Dotum, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;--text-font:"맑은 고딕", "Malgun Gothic", "Apple SD Gothic Neo", "Noto Sans KR", sans-serif;--mono-font:"Lucida Console", Consolas, "D2Coding", "Courier New", monospace;--article-size:15px;--raised:inset -1px -1px var(--dkshadow), inset 1px 1px var(--hilight), inset -2px -2px var(--shadow), inset 2px 2px var(--light);--sunken:inset -1px -1px var(--hilight), inset 1px 1px var(--shadow), inset -2px -2px var(--light), inset 2px 2px var(--dkshadow);--pressed:inset -1px -1px var(--hilight), inset 1px 1px var(--dkshadow), inset -2px -2px var(--light), inset 2px 2px var(--shadow);--thin-sunken:inset -1px -1px var(--hilight), inset 1px 1px var(--shadow);color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--desktop:#16222f;--face:#3c3c3c;--hilight:#6e6e6e;--light:#4e4e4e;--shadow:#262626;--dkshadow:#0c0c0c;--window:#1f1f1f;--text:#e8e8e8;--muted:#b0b0b0;--title-a:#0a246a;--title-b:#3a6ea5;--select:#3a6ea5;--link:#8fb8ff;--visited:#d0a6f0;--info:#2c2a1c;--info-border:#8a8670;--mark:#6a5d00;--draft:#ff9a8f;--current:#2c3038;color-scheme:dark}}:root[data-theme=dark]{--desktop:#16222f;--face:#3c3c3c;--hilight:#6e6e6e;--light:#4e4e4e;--shadow:#262626;--dkshadow:#0c0c0c;--window:#1f1f1f;--text:#e8e8e8;--muted:#b0b0b0;--title-b:#3a6ea5;--select:#3a6ea5;--link:#8fb8ff;--visited:#d0a6f0;--info:#2c2a1c;--info-border:#8a8670;--mark:#6a5d00;--draft:#ff9a8f;--current:#2c3038;color-scheme:dark}:root[data-fs=large]{--article-size:17px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--desktop);color:var(--text);font:12px/1.5 var(--ui-font)}a{color:var(--link)}a:visited{color:var(--visited)}a:focus-visible,button:focus-visible,input:focus-visible,label:focus-within{outline:1px dotted var(--text);outline-offset:1px}.skip{position:absolute;left:-9999px}.skip:focus{left:8px;top:8px;z-index:10;background:var(--info);color:#000;padding:4px 8px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.desktop{padding:24px 16px 40px}.window{max-width:1300px;margin:0 auto;background:var(--face);padding:3px;box-shadow:var(--raised)}.titlebar{display:flex;align-items:center;gap:4px;height:22px;padding:0 2px 0 3px;background:linear-gradient(90deg,var(--title-a),var(--title-b));color:var(--title-text);font-weight:700;font-size:12px}.titlebar-icon{flex:none;width:16px;height:16px}.titlebar-text{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-shadow:none}.caption-buttons{flex:none;display:flex;gap:0}.caption-buttons span{display:inline-grid;place-items:center;width:16px;height:14px;margin-left:0;background:var(--face);box-shadow:var(--raised)}.caption-buttons span:last-child{margin-left:2px}.caption-buttons svg{width:8px;height:7px;fill:var(--text)}.menubar{display:flex;flex-wrap:wrap;padding:1px 0;border-bottom:1px solid var(--shadow);box-shadow:0 1px 0 var(--hilight)}.menubar a{color:var(--text);text-decoration:none;padding:2px 7px}.menubar a:hover,.menubar a:focus-visible{background:var(--select);color:var(--select-text);outline:none}.menubar a[aria-current=page]{box-shadow:var(--thin-sunken)}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:4px 4px 5px;border-bottom:1px solid var(--shadow);box-shadow:0 1px 0 var(--hilight)}.toolbar .fs{display:flex;gap:10px;border:0;margin:0;padding:0}.toolbar .fs label{display:inline-flex;align-items:center;gap:3px;cursor:pointer}.search-form{display:flex;align-items:center;gap:4px;flex:1;min-width:220px}.search-form label{flex:none}input[type=search],input[type=text]{flex:1;min-width:0;font:12px var(--ui-font);color:var(--text);background:var(--window);border:0;padding:4px 5px;box-shadow:var(--sunken)}input[type=radio]{accent-color:var(--select);margin:0}.btn{font:12px var(--ui-font);color:var(--text);background:var(--face);border:0;min-width:64px;padding:4px 10px;box-shadow:var(--raised);cursor:pointer}.btn:active{box-shadow:var(--pressed);padding:5px 9px 3px 11px}.btn-small{min-width:0;padding:1px 6px;font-size:11px}.btn-small:active{padding:2px 5px 0 7px}.client{display:grid;grid-template-columns:260px minmax(0,1fr);grid-template-areas:"side main";gap:4px;padding-top:4px}.sidebar{grid-area:side;display:grid;align-content:start;gap:10px;padding:6px 2px 4px 4px;min-width:0}.pane{grid-area:main;background:var(--window);box-shadow:var(--sunken);padding:16px 32px 24px;min-height:420px;min-width:0}.group{position:relative;margin-top:6px;padding:12px 8px 8px;border:0;box-shadow:inset 1px 1px var(--shadow),inset -1px -1px var(--hilight),inset 2px 2px var(--hilight),inset -2px -2px var(--shadow)}.group>h2{position:absolute;top:-8px;left:6px;margin:0;padding:0 3px;background:var(--face);font-size:12px;font-weight:400}.group ul{list-style:none;margin:0;padding:0}.group li{padding:5px 0;line-height:1.35}.group li a{text-decoration:underline;text-underline-offset:2px}.group .count{color:var(--muted)}.group p{margin:0}.statusbar{display:flex;gap:2px;padding-top:3px;font-size:11px}.statusbar>*{padding:2px 5px;box-shadow:var(--thin-sunken);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.statusbar .status-main{flex:1;min-width:0}.statusbar a{color:var(--text)}.statusbar .zone{display:flex;align-items:center;gap:4px}.statusbar .zone svg{width:14px;height:14px}.legal{max-width:1300px;margin:8px auto 0;color:#e8eef6;font-size:11px;text-align:center}.legal a{color:#fff}.intro{display:flex;gap:10px;align-items:flex-start;margin:0 0 16px;padding:8px 10px;background:var(--info);color:var(--text);border:1px solid var(--info-border)}.intro svg{flex:none;width:24px;height:24px}.intro p{margin:0}h1.page-title{font:700 20px/1.4 var(--text-font);margin:0 0 12px;word-break:keep-all;overflow-wrap:anywhere}.listview-wrap{overflow-x:auto;box-shadow:var(--sunken);padding:2px;background:var(--window)}table.listview{width:100%;border-collapse:collapse;font-size:12px}.listview th{position:sticky;top:0;background:var(--face);font-weight:400;text-align:left;padding:2px 6px;box-shadow:var(--raised);white-space:nowrap}.listview td{padding:3px 6px;vertical-align:top}.listview td.num,.listview td.date{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--muted)}.listview td.num{text-align:right;width:1%}.listview td.series{white-space:nowrap;width:1%}.listview td.title a{text-decoration:none;color:var(--text)}.listview td.title a:visited{color:var(--visited)}.listview tbody tr:hover,.listview tbody tr:focus-within{background:var(--select);color:var(--select-text)}.listview tbody tr:hover a,.listview tbody tr:hover td,.listview tbody tr:focus-within a,.listview tbody tr:focus-within td{color:var(--select-text)}.listview .draft{color:var(--draft)}.listview tbody tr:hover .draft{color:var(--select-text)}.pagination{display:flex;flex-wrap:wrap;gap:3px;list-style:none;padding:0;margin:12px 0 0}.pagination .page-link{display:inline-block;min-width:24px;padding:2px 6px;text-align:center;background:var(--face);color:var(--text);text-decoration:none;box-shadow:var(--raised)}.pagination .active .page-link{box-shadow:var(--pressed);font-weight:700}.pagination .disabled .page-link{color:var(--shadow);text-shadow:1px 1px var(--hilight)}ul.terms{columns:2 220px;padding-left:18px;margin:0;font-size:13px}.article{font:var(--article-size)/1.7 var(--text-font);word-break:keep-all;overflow-wrap:anywhere}.article h1{font-size:1.45em;line-height:1.4;margin:0 0 8px}.post-meta{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;margin:0 0 14px;padding:0 0 8px;font:12px/1.6 var(--ui-font);color:var(--muted);border-bottom:1px solid var(--shadow);box-shadow:0 1px 0 var(--hilight)}.post-meta a{color:var(--link)}.post-meta .tags a{display:inline-block;padding:5px 3px}.post-meta .btn-small{min-height:24px}.post-meta .copy{display:inline-flex;gap:4px}.article h2{font-size:1.2em;margin:1.5em 0 .5em;padding:0 0 3px;border-bottom:1px solid var(--shadow);box-shadow:0 1px 0 var(--hilight)}.article h3{font-size:1.05em;margin:1.3em 0 .4em}.article p,.article ul,.article ol{margin:0 0 .8em}.article li{margin:.2em 0}.article blockquote{margin:0 0 1em;padding:4px 12px;border-left:4px solid var(--select);background:var(--light)}.article hr{border:0;height:2px;box-shadow:inset 0 1px var(--shadow),inset 0 -1px var(--hilight);margin:1.4em 0}.article img{max-width:100%;height:auto;box-shadow:var(--thin-sunken);padding:2px}.article table{border-collapse:collapse;margin:0 0 1em;font-size:.9em;display:block;overflow-x:auto}.article th{background:var(--face);box-shadow:var(--raised);font-weight:400;padding:3px 8px;text-align:left}.article td{border:1px solid var(--face);padding:3px 8px}.article :not(pre)>code{font:.9em var(--mono-font);background:var(--info);color:var(--text);padding:0 3px;border:1px solid var(--face)}.article pre{font:13px/1.55 var(--mono-font);background:var(--info);color:var(--text);border:1px solid var(--info-border);padding:8px 12px;margin:0 0 .9em;overflow-x:auto;tab-size:4;word-break:normal;overflow-wrap:normal}.article .highlight{margin:0 0 1em}.article .highlight pre{margin:0}.article .footnotes{font-size:.9em;color:var(--muted)}.series-box,.prev-next,.comments,.ad{margin-top:28px}.series-box h2{font:13px var(--ui-font);margin:0 0 6px}.series-box .listview tr.current{background:var(--current);font-weight:700}.prev-next{display:grid;gap:4px;font-size:13px;padding-top:10px;border-top:1px solid var(--shadow);box-shadow:inset 0 1px var(--hilight)}.prev-next span{color:var(--muted)}.ad{text-align:center}.ad .ad-label{display:block;font-size:10px;color:var(--muted);text-align:left}.sidebar .ad{margin-top:0}.search-results{list-style:none;padding:0;margin:12px 0 0}.search-results li{padding:8px 0;border-bottom:1px solid var(--face)}.search-results a{font:700 14px var(--text-font)}.search-results p{margin:2px 0 0;font:13px/1.6 var(--text-font)}.search-results mark{background:var(--mark);color:inherit}.search-status{color:var(--muted)}@media(max-width:760px){.desktop{padding:0}.window{padding:2px}.client{grid-template-columns:minmax(0,1fr);grid-template-areas:"main" "side"}.pane{padding:14px 14px 20px;min-height:0}.sidebar{padding:6px 4px}.menubar{flex-wrap:nowrap;overflow-x:auto}.menubar a{white-space:nowrap}.listview td.series,.listview th.series{display:none}.statusbar .count,.statusbar .zone{display:none}.legal{padding:0 16px 16px;color:var(--muted)}.legal a{color:var(--link)}body{background:var(--face)}}@media print{body{background:#fff}.titlebar,.menubar,.toolbar,.sidebar,.statusbar,.ad,.comments,.prev-next,.legal{display:none}.window,.pane{box-shadow:none;padding:0}}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .line{display:flex}.chroma .k{color:#00f}.chroma .kc{color:#00f}.chroma .kd{color:#00f}.chroma .kn{color:#00f}.chroma .kp{color:#00f}.chroma .kr{color:#00f}.chroma .kt{color:#2b91af}.chroma .nc{color:#2b91af}.chroma .s{color:#a31515}.chroma .sa{color:#a31515}.chroma .sb{color:#a31515}.chroma .sc{color:#a31515}.chroma .dl{color:#a31515}.chroma .sd{color:#a31515}.chroma .s2{color:#a31515}.chroma .se{color:#a31515}.chroma .sh{color:#a31515}.chroma .si{color:#a31515}.chroma .sx{color:#a31515}.chroma .sr{color:#a31515}.chroma .s1{color:#a31515}.chroma .ss{color:#a31515}.chroma .ow{color:#00f}.chroma .c{color:green}.chroma .ch{color:green}.chroma .cm{color:green}.chroma .c1{color:green}.chroma .cs{color:green}.chroma .cp{color:#00f}.chroma .cpf{color:#00f}.chroma .ge{font-style:italic}.chroma .gh{font-weight:700}.chroma .gp{font-weight:700}.chroma .gs{font-weight:700}.chroma .gu{font-weight:700}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .chroma .err{color:#f85149}:root:not([data-theme=light]) .chroma .lnlinks{outline:none;text-decoration:none;color:inherit}:root:not([data-theme=light]) .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}:root:not([data-theme=light]) .chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}:root:not([data-theme=light]) .chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#737679}:root:not([data-theme=light]) .chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#6e7681}:root:not([data-theme=light]) .chroma .line{display:flex}:root:not([data-theme=light]) .chroma .k{color:#ff7b72}:root:not([data-theme=light]) .chroma .kc{color:#79c0ff}:root:not([data-theme=light]) .chroma .kd{color:#ff7b72}:root:not([data-theme=light]) .chroma .kn{color:#ff7b72}:root:not([data-theme=light]) .chroma .kp{color:#79c0ff}:root:not([data-theme=light]) .chroma .kr{color:#ff7b72}:root:not([data-theme=light]) .chroma .kt{color:#ff7b72}:root:not([data-theme=light]) .chroma .nc{color:#f0883e;font-weight:700}:root:not([data-theme=light]) .chroma .no{color:#79c0ff;font-weight:700}:root:not([data-theme=light]) .chroma .nd{color:#d2a8ff;font-weight:700}:root:not([data-theme=light]) .chroma .ni{color:#ffa657}:root:not([data-theme=light]) .chroma .ne{color:#f0883e;font-weight:700}:root:not([data-theme=light]) .chroma .nl{color:#79c0ff;font-weight:700}:root:not([data-theme=light]) .chroma .nn{color:#ff7b72}:root:not([data-theme=light]) .chroma .nx{color:#e6edf3}:root:not([data-theme=light]) .chroma .py{color:#79c0ff}:root:not([data-theme=light]) .chroma .nt{color:#7ee787}:root:not([data-theme=light]) .chroma .nv{color:#79c0ff}:root:not([data-theme=light]) .chroma .vc{color:#79c0ff}:root:not([data-theme=light]) .chroma .vg{color:#79c0ff}:root:not([data-theme=light]) .chroma .vi{color:#79c0ff}:root:not([data-theme=light]) .chroma .vm{color:#79c0ff}:root:not([data-theme=light]) .chroma .nf{color:#d2a8ff;font-weight:700}:root:not([data-theme=light]) .chroma .fm{color:#d2a8ff;font-weight:700}:root:not([data-theme=light]) .chroma .l{color:#a5d6ff}:root:not([data-theme=light]) .chroma .ld{color:#79c0ff}:root:not([data-theme=light]) .chroma .s{color:#a5d6ff}:root:not([data-theme=light]) .chroma .sa{color:#79c0ff}:root:not([data-theme=light]) .chroma .sb{color:#a5d6ff}:root:not([data-theme=light]) .chroma .sc{color:#a5d6ff}:root:not([data-theme=light]) .chroma .dl{color:#79c0ff}:root:not([data-theme=light]) .chroma .sd{color:#a5d6ff}:root:not([data-theme=light]) .chroma .s2{color:#a5d6ff}:root:not([data-theme=light]) .chroma .se{color:#79c0ff}:root:not([data-theme=light]) .chroma .sh{color:#79c0ff}:root:not([data-theme=light]) .chroma .si{color:#a5d6ff}:root:not([data-theme=light]) .chroma .sx{color:#a5d6ff}:root:not([data-theme=light]) .chroma .sr{color:#79c0ff}:root:not([data-theme=light]) .chroma .s1{color:#a5d6ff}:root:not([data-theme=light]) .chroma .ss{color:#a5d6ff}:root:not([data-theme=light]) .chroma .m{color:#a5d6ff}:root:not([data-theme=light]) .chroma .mb{color:#a5d6ff}:root:not([data-theme=light]) .chroma .mf{color:#a5d6ff}:root:not([data-theme=light]) .chroma .mh{color:#a5d6ff}:root:not([data-theme=light]) .chroma .mi{color:#a5d6ff}:root:not([data-theme=light]) .chroma .il{color:#a5d6ff}:root:not([data-theme=light]) .chroma .mo{color:#a5d6ff}:root:not([data-theme=light]) .chroma .o{color:#ff7b72;font-weight:700}:root:not([data-theme=light]) .chroma .ow{color:#ff7b72;font-weight:700}:root:not([data-theme=light]) .chroma .or{color:#ff7b72;font-weight:700}:root:not([data-theme=light]) .chroma .c{color:#8b949e;font-style:italic}:root:not([data-theme=light]) .chroma .ch{color:#8b949e;font-style:italic}:root:not([data-theme=light]) .chroma .cm{color:#8b949e;font-style:italic}:root:not([data-theme=light]) .chroma .c1{color:#8b949e;font-style:italic}:root:not([data-theme=light]) .chroma .cs{color:#8b949e;font-weight:700;font-style:italic}:root:not([data-theme=light]) .chroma .cp{color:#8b949e;font-weight:700;font-style:italic}:root:not([data-theme=light]) .chroma .cpf{color:#8b949e;font-weight:700;font-style:italic}:root:not([data-theme=light]) .chroma .gd{color:#ffa198}:root:not([data-theme=light]) .chroma .ge{font-style:italic}:root:not([data-theme=light]) .chroma .gr{color:#ffa198}:root:not([data-theme=light]) .chroma .gh{color:#79c0ff;font-weight:700}:root:not([data-theme=light]) .chroma .gi{color:#56d364}:root:not([data-theme=light]) .chroma .go{color:#8b949e}:root:not([data-theme=light]) .chroma .gp{color:#8b949e}:root:not([data-theme=light]) .chroma .gs{font-weight:700}:root:not([data-theme=light]) .chroma .gu{color:#79c0ff}:root:not([data-theme=light]) .chroma .gt{color:#ff7b72}:root:not([data-theme=light]) .chroma .gl{text-decoration:underline}:root:not([data-theme=light]) .chroma .w{color:#6e7681}}