:root{--bg:#111310;--bg2:#171A15;--ink:#F1F3ED;--body:#CFD3C8;--mute:#B4B8AD;--faint:#6E736A;--line:#2B2F28;--lime:#C8F53C;--lime-ink:#111310;--code:#0C0E0B;--mono:"IBM Plex Mono",ui-monospace,monospace;--u:4px;--t:200ms}
[data-theme="light"]{--bg:#F6F6F2;--bg2:#FFFFFF;--ink:#0F110E;--body:#26291F;--mute:#33372F;--faint:#6B6F66;--line:#C4C7BC;--lime:#3F6B00;--lime-ink:#FFFFFF;--code:#FFFFFF}
[data-theme="light"] [data-cur-h],[data-theme="light"] [data-cur-v]{background:#0F110E;box-shadow:0 0 0 1px rgba(255,255,255,0.7)}
[data-theme="light"] [data-cur-dot]{background:#0F110E;width:4px;height:4px;left:-2px;top:-2px}
[data-theme="light"] [data-cur-label]{color:#0F110E;background:#FFFFFF;padding:2px 5px;box-shadow:0 0 0 1px #C4C7BC}
[data-theme="light"] [data-cur-ring]{border-color:#0F110E}
[data-theme="light"] pre,[data-theme="light"] code{color:#14170F}
[data-theme="light"] [data-fig]::before{background:rgba(17,19,16,0.04)}
[data-theme="light"] [data-fig]>span[role="img"]{filter:saturate(0.9)}
[data-theme="light"] figure[style*="var(--code)"]{box-shadow:0 1px 0 rgba(0,0,0,0.04)}
[data-theme="light"] [data-tbl] td:first-child,[data-theme="light"] [data-tbl] th:first-child{background:#FFFFFF}
[data-theme="light"] [data-cursor]{color:#0F110E}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Noto Sans KR",-apple-system,sans-serif;font-weight:300;-webkit-font-smoothing:antialiased;word-break:keep-all;overflow-wrap:break-word;font-size:17px;line-height:1.85;transition:background var(--t),color var(--t)}
*{box-sizing:border-box}
a{color:inherit;text-decoration:none}
input,button,textarea,select{font:inherit;color:inherit}
input::placeholder,textarea::placeholder{color:var(--faint)}
:focus-visible{outline:2px solid var(--lime);outline-offset:3px}
[data-mono]{font-family:var(--mono);letter-spacing:0.08em;font-size:12px}
[data-cut]{display:block;min-width:0;overflow:hidden}
[data-cut="1"]{white-space:nowrap;text-overflow:ellipsis}
[data-lines="2"]{max-height:2.8em}
[data-lines="3"]{max-height:4.3em}
[data-row]{position:relative;transition:color var(--t)}
[data-row]::after{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:0;background:var(--lime);transition:width 420ms cubic-bezier(.2,.7,.2,1)}
[data-row]:hover::after{width:100%}
[data-row]:hover [data-rowno],[data-row]:hover [data-rowcat]{color:var(--lime)}
[data-fig]{display:block;position:relative;overflow:hidden;background:var(--line)}
[data-fig]>span[role="img"]{display:block;width:100%;height:100%;transition:transform 380ms cubic-bezier(.2,.7,.2,1)}
[data-fig]::before{content:"";position:absolute;inset:0;background:rgba(17,19,16,0.14);z-index:1;pointer-events:none}
[data-fig]::after{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:calc(100%/6) calc(100%/6);opacity:0;transition:opacity var(--t);pointer-events:none;z-index:0}
[data-card]:hover [data-fig]:not([data-nozoom])>span[role="img"]{transform:translate(4px,-4px)}
[data-card]:hover [data-fig]:not([data-nozoom])::after{opacity:0.9}
[data-fig]>span[role="img"]{filter:saturate(0.8);transition:transform 380ms cubic-bezier(.2,.7,.2,1),filter 380ms ease-out}
[data-card]:hover [data-fig]>span[role="img"],[data-row]:hover [data-fig]>span[role="img"]{filter:saturate(1)}
[data-mr]:hover [data-mr-ttl]{transform:translateX(4px)}
@media (prefers-reduced-motion:reduce){[data-mr]:hover [data-mr-ttl]{transform:none}[data-card]:hover [data-fig]>span[role="img"]{transform:none!important}}
[data-card]:hover [data-ttl]{color:var(--lime)}
[data-ttl]{transition:color var(--t)}
[data-nav]{color:var(--mute);transition:color var(--t)}
[data-nav]:hover,[data-nav][aria-current="true"]{color:var(--ink)}
[data-hero-col]{transition:opacity 620ms cubic-bezier(.16,.84,.3,1),transform 760ms cubic-bezier(.16,.84,.3,1),filter 620ms ease-out;transform-origin:50% 100%}
[data-hero-col][data-swap="1"]{opacity:0;transform:translateY(14px) scaleY(0.96);filter:brightness(1.6) saturate(0)}
[data-hero-sweep]{position:absolute;top:0;bottom:0;width:1px;background:var(--lime);opacity:0;left:0;pointer-events:none}
[data-hero-sweep="1"]{animation:ph-sweep 900ms cubic-bezier(.16,.84,.3,1) both}
@keyframes ph-sweep{0%{left:0;opacity:0}12%{opacity:1}88%{opacity:1}100%{left:100%;opacity:0}}
[data-in]{animation:ph-in 520ms cubic-bezier(.2,.7,.2,1) both}
[data-in="2"]{animation-delay:70ms}[data-in="3"]{animation-delay:140ms}
@keyframes ph-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
[data-cursor]{position:fixed;left:0;top:0;z-index:99;pointer-events:none;opacity:0;transition:opacity 160ms;color:var(--ink)}
[data-cursor="on"]{opacity:1}
[data-cur-h]{position:absolute;left:-9px;top:-0.5px;width:18px;height:1px;background:currentColor}
[data-cur-v]{position:absolute;left:-0.5px;top:-9px;width:1px;height:18px;background:currentColor}
[data-cur-dot]{position:absolute;left:-1.5px;top:-1.5px;width:3px;height:3px;background:var(--lime)}
[data-cur-label]{position:absolute;left:14px;top:-18px;font-family:var(--mono);font-size:10px;letter-spacing:0.14em;color:var(--lime);white-space:nowrap;opacity:0;transform:translateX(-4px);transition:opacity 140ms,transform 140ms}
[data-cursor][data-has="1"] [data-cur-label]{opacity:1;transform:none}
[data-cur-ring]{position:absolute;left:-12px;top:-12px;width:24px;height:24px;border:1px solid var(--lime);transform:scale(0.4);opacity:0}
[data-cursor][data-click="1"] [data-cur-ring]{animation:ph-click 150ms ease-out both}
@keyframes ph-click{from{transform:scale(0.4);opacity:1}to{transform:scale(1.4);opacity:0}}
[data-cursor-on] a,[data-cursor-on] button,[data-cursor-on] [role="tab"]{cursor:none}
[data-cursor-on] input,[data-cursor-on] textarea,[data-cursor-on] select,[data-cursor-on] label{cursor:auto}
pre{margin:0;font-family:var(--mono);font-size:13.5px;line-height:1.7;overflow-x:auto;tab-size:2}
code{font-family:var(--mono)}
[data-tbl]{overflow-x:auto}
[data-tbl] table{border-collapse:collapse;width:100%;min-width:480px;font-size:14.5px}
[data-tbl] th{text-align:left;font-family:var(--mono);font-size:11.5px;letter-spacing:0.1em;color:var(--mute);font-weight:500;padding:10px 12px;border-bottom:1px solid var(--ink)}
[data-tbl] td{padding:11px 12px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
[data-tbl] td:first-child,[data-tbl] th:first-child{position:sticky;left:0;background:var(--bg2)}
[data-copy][data-done="1"]{border-color:var(--lime)!important;color:var(--lime)!important}
[data-arrow] [data-arrow-ico]{color:var(--lime)}
[data-arrow]:hover [data-arrow-ico],[data-arrow]:focus-visible [data-arrow-ico]{background:var(--lime);color:var(--lime-ink);border-color:var(--lime);transform:translateX(3px)}
[data-tools] [aria-label="공유"] button:hover{color:var(--lime)!important}
@media (hover:none),(prefers-reduced-motion:reduce){[data-cursor]{display:none!important}[data-cursor-on] *{cursor:auto!important}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media (max-width:1279px){[data-toc-rail]{display:none!important}[data-post-grid]{grid-template-columns:minmax(0,1fr)!important}[data-toc-inline]{display:block!important}[data-side]{position:static!important;border-top:1px solid var(--line);padding-top:28px;margin-top:8px;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}}
@media (max-width:767px){[data-side]{grid-template-columns:minmax(0,1fr)!important}}
@media (max-width:1023px){[data-desk-nav]{display:none!important}[data-menu-btn]{display:inline-flex!important}[data-hero]{grid-template-columns:minmax(0,1fr)!important}[data-hero-tabs]{grid-template-columns:repeat(2,minmax(0,1fr))!important}[data-feat3]{grid-template-columns:repeat(3,minmax(0,1fr))!important}[data-two]{grid-template-columns:minmax(0,1fr)!important}[data-series]{grid-template-columns:minmax(0,1fr)!important}}
@media (max-width:767px){[data-hero-tabs]{display:none!important}[data-hero-mob]{display:flex!important}[data-hero-title]{font-size:clamp(34px,9vw,44px)!important}[data-feat3]{grid-template-columns:minmax(0,1fr)!important}[data-idx-row]{grid-template-columns:44px minmax(0,1fr)!important}[data-idx-meta]{grid-column:2!important}[data-tools]{flex-wrap:wrap!important}[data-post-title]{font-size:clamp(30px,8vw,40px)!important}[data-hero-cols]{grid-template-columns:repeat(3,minmax(0,1fr))!important}} .dch1:hover{color:var(--ink) !important;}