:root{--paper:#fbfaf7;--ink:#1b1640;--ink2:#4b4766;--ink3:#8b88a0;--rule:#e4e1d8;--rule2:#d4d0c4;--v:#5e4ae3;--v2:#4f3dd1;--vs:#efecfd;--hl:#fff6c9;--mono:"IBM Plex Mono",ui-monospace,Consolas,monospace}
*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body.v3{margin:0;font-family:"Pretendard Variable",Pretendard,-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;color:var(--ink);background:var(--paper);line-height:1.65;letter-spacing:-.01em;word-break:keep-all;overflow-wrap:break-word;
background-image:linear-gradient(rgba(27,22,64,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(27,22,64,.035) 1px,transparent 1px);background-size:24px 24px}
img{max-width:100%;display:block;height:auto}a{color:inherit;text-decoration:none}
.v3-skip{position:absolute;left:-999px}.v3-skip:focus{left:8px;top:8px;background:#fff;padding:6px 10px;z-index:99}
.v3-mono{font-family:var(--mono);letter-spacing:0}
.v3-eyebrow{margin:0 0 14px;font-size:13px;font-weight:600;color:var(--v2)}
.v3-empty{border:1px dashed var(--rule2);padding:16px 18px;color:var(--ink3);background:#fff}
.v3-hd{position:sticky;top:0;z-index:20;background:#fbfaf7;border-bottom:2px solid var(--ink)}
.v3-hd__in{max-width:1240px;margin:0 auto;height:66px;padding:0 28px;display:flex;align-items:center;gap:36px}
.v3-hd__logo img{height:32px;width:auto}
.v3-hd__nav{display:flex;gap:26px;flex:1}.v3-hd__nav a{font-size:15px;font-weight:600;color:var(--ink2)}.v3-hd__nav a:hover{color:var(--ink)}.v3-hd__nav a.on{color:var(--ink);box-shadow:inset 0 -2px var(--v)}
.v3-hd__sub{font-size:14px;font-weight:700;padding:9px 16px;border:1.5px solid var(--ink);border-radius:8px;white-space:nowrap}
.v3-hd__sub:hover{background:var(--ink);color:#fff}
.v3-menu{display:none}
.v3-main{min-height:60vh}
.v3-intro{border-bottom:1px solid var(--rule2)}
.v3-intro__in{max-width:1240px;margin:0 auto;padding:64px 28px 56px;display:grid;grid-template-columns:1fr 1.05fr;gap:64px;align-items:start}
.v3-intro h1{margin:0 0 20px;font-size:42px;line-height:1.3;letter-spacing:-.04em}
.v3-intro__l>p{margin:0 0 32px;font-size:17px;color:var(--ink2);max-width:520px}
.v3-stats{display:flex;margin:0;border-top:1.5px solid var(--ink);border-bottom:1px solid var(--rule2)}
.v3-stats div{flex:1;padding:14px 0 12px}.v3-stats div+div{padding-left:20px;border-left:1px solid var(--rule2)}
.v3-stats dt{font-size:13px;color:var(--ink3)}.v3-stats dd{margin:2px 0 0;font-size:30px;font-weight:600;color:var(--ink)}
.v3-stats dd.v3-stats__d{font-size:20px;padding-top:9px}
.v3-lead{display:block;background:#fff;border:1.5px solid var(--ink);border-radius:4px;padding:28px 30px 26px;box-shadow:8px 8px 0 var(--vs);transition:transform .2s}
.v3-lead:hover{transform:translate(-2px,-2px);box-shadow:10px 10px 0 #ddd7fb}
.v3-lead__top{display:flex;justify-content:space-between;font-size:13px;padding-bottom:14px;border-bottom:1px dashed var(--rule2);margin-bottom:18px}
.v3-lead__top span:first-child{font-weight:700;color:var(--v2)}.v3-lead__top .v3-mono{font-size:12.5px;color:var(--ink3)}
.v3-lead h2{margin:0 0 20px;font-size:26px;line-height:1.4;letter-spacing:-.035em}
.v3-sumbox{background:var(--paper);border-left:3px solid var(--v);padding:16px 18px 6px}
.v3-sumbox>p{margin:0 0 8px;font-size:12.5px;font-weight:700;color:var(--v2)}
.v3-sumbox ol{margin:0;padding-left:20px;font-size:15px;line-height:1.65;color:var(--ink2)}.v3-sumbox li{margin-bottom:10px}
.v3-lead__go{display:block;margin-top:18px;font-weight:700;color:var(--v2);font-size:15px}
.v3-sec{max-width:1240px;margin:0 auto;padding:56px 28px 8px}
.v3-sec:last-child{padding-bottom:64px}
.v3-sec__hd{display:flex;align-items:baseline;gap:18px;margin-bottom:20px;flex-wrap:wrap}
.v3-sec__hd h2{margin:0;font-size:24px;letter-spacing:-.03em}
.v3-sec__hd p{margin:0;color:var(--ink3);font-size:14.5px}
.v3-notes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.v3-note{display:flex;flex-direction:column;background:#fff;border:1px solid var(--rule2);border-radius:4px;padding:12px 12px 18px;transition:border-color .15s}
.v3-note:hover{border-color:var(--ink)}
.v3-note__img img{border-radius:2px;border:1px solid var(--rule);aspect-ratio:1200/630;object-fit:cover;width:100%}
.v3-note__meta{margin:14px 4px 6px;font-size:12.5px;color:var(--v2);font-weight:600}.v3-note__meta time{font-weight:500;color:var(--ink3)}
.v3-note h2,.v3-note h3{margin:0 4px 8px;font-size:16.5px;line-height:1.45;letter-spacing:-.025em}
.v3-note h2 a:hover,.v3-note h3 a:hover{color:var(--v2)}
.v3-note__desc{margin:0 4px;font-size:14px;line-height:1.6;color:var(--ink2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.v3-pager{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;margin:36px 0 8px}
.v3-pager a,.v3-pager span{min-width:40px;height:40px;padding:0 12px;display:grid;place-items:center;border:1px solid var(--rule2);border-radius:4px;background:#fff;font-size:14px;font-weight:600;color:var(--ink2)}
.v3-pager a:hover{border-color:var(--ink);color:var(--ink)}.v3-pager span{background:var(--ink);border-color:var(--ink);color:#fff}
.v3-topics{display:grid;grid-template-columns:repeat(4,1fr);border-top:1.5px solid var(--ink);border-left:1px solid var(--rule2)}
.v3-topics a{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:18px;border-right:1px solid var(--rule2);border-bottom:1px solid var(--rule2);background:rgba(255,255,255,.6)}
.v3-topics a:hover{background:#fff}.v3-topics a:hover strong{color:var(--v2)}
.v3-topics strong{font-size:15.5px}.v3-topics em{grid-column:1;font-style:normal;font-size:13px;color:var(--ink3)}
.v3-topics b{grid-row:1;grid-column:2;font-size:12.5px;color:var(--ink3);font-weight:500}
.v3-tagcloud{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.v3-tagcloud a{display:inline-block;padding:7px 14px;background:#fff;border:1px solid var(--rule2);border-radius:4px;font-size:14px;font-weight:600}
.v3-tagcloud a:hover{border-color:var(--ink)}.v3-tagcloud span{color:var(--ink3);font-size:12px;margin-left:4px}
.v3-chd{border-bottom:1px solid var(--rule2)}
.v3-chd__in{max-width:1240px;margin:0 auto;padding:52px 28px 44px}
.v3-crumb{font-size:13.5px;color:var(--ink3);margin-bottom:22px}.v3-crumb a:hover{color:var(--v2)}
.v3-chd h1{margin:0 0 12px;font-size:44px;line-height:1.25;letter-spacing:-.04em}
.v3-chd p{margin:0 0 28px;font-size:17px;color:var(--ink2)}
.v3-chd .v3-stats{max-width:620px}
.v3-cards{display:grid;gap:20px}
.v3-rc{display:grid;grid-template-columns:360px 1fr;gap:32px;align-items:center;background:#fff;border:1px solid var(--rule2);border-radius:4px;padding:18px;transition:border-color .15s}
.v3-rc:hover{border-color:var(--ink)}
.v3-rc img{border:1px solid var(--rule);aspect-ratio:1200/630;object-fit:cover;width:100%}
.v3-rc__meta{margin:0;font-size:12.5px;color:var(--ink3)}.v3-rc__meta a{color:var(--v2);font-weight:600}
.v3-rc h2{margin:6px 0 10px;font-size:22px;line-height:1.4;letter-spacing:-.03em}.v3-rc h2 a:hover{color:var(--v2)}
.v3-rc p:last-child{margin:0;font-size:15px;color:var(--ink2)}
.v3-rep,.v3-page{max-width:1240px;margin:0 auto;padding:44px 28px 56px}
.v3-rep__hd{max-width:900px;margin:0 0 0 268px;padding-bottom:30px}
.v3-rep__hd h1{margin:0 0 16px;font-size:38px;line-height:1.35;letter-spacing:-.04em}
.v3-rep__lead{margin:0 0 26px;font-size:18px;color:var(--ink2);line-height:1.7}
.v3-meta{display:grid;grid-template-columns:repeat(5,auto);margin:0;border-top:1.5px solid var(--ink);border-bottom:1px solid var(--rule2)}
.v3-meta div{padding:12px 16px 10px 0}.v3-meta div+div{padding-left:16px;border-left:1px solid var(--rule2)}
.v3-meta dt{font-size:12px;color:var(--ink3)}.v3-meta dd{margin:2px 0 0;font-size:14.5px;font-weight:600}.v3-meta a:hover{color:var(--v2)}
.v3-rep__body{display:grid;grid-template-columns:220px minmax(0,740px);gap:48px}
.v3-toc{position:sticky;top:96px;align-self:start;font-size:14px;max-height:calc(100vh - 120px);overflow:auto}
.v3-toc>p{margin:0 0 10px;font-size:12px;font-weight:600;color:var(--ink3);padding-bottom:8px;border-bottom:1.5px solid var(--ink)}
.v3-toc ol{list-style:none;margin:0;padding:0}
.v3-toc a{display:grid;grid-template-columns:26px 1fr;gap:4px;padding:8px 0;border-bottom:1px solid var(--rule);color:var(--ink2);line-height:1.45}
.v3-toc a span{font-size:12px;color:var(--v);padding-top:1px}.v3-toc a:hover{color:var(--ink)}
.v3-prose{font-size:17px;line-height:1.85;color:#27233f;min-width:0}
.v3-prose p{margin:0 0 20px}
.prose a{color:var(--v2);text-decoration:underline;text-underline-offset:3px;text-decoration-color:#c9c1ff}
.prose strong{color:var(--ink)}
.v3-abstract{background:#fff;border:1.5px solid var(--ink);border-radius:4px;margin:0 0 32px;box-shadow:6px 6px 0 var(--vs)}
.v3-abstract__hd{display:flex;justify-content:space-between;align-items:center;padding:12px 22px;border-bottom:1px solid var(--rule2);background:var(--paper)}
.v3-abstract__hd p{margin:0!important;font-size:13px;font-weight:700;color:var(--v2)}.v3-abstract__hd span{font-size:11.5px;color:var(--ink3)}
.v3-abstract ol{margin:0;padding:18px 22px 6px 44px;font-size:16px;line-height:1.7}.v3-abstract li{margin-bottom:10px}
.v3-abstract li::marker{font-family:var(--mono);color:var(--v);font-weight:600}
.v3-abstract__body{padding:18px 22px 2px;font-size:16px}
.v3-abstract__ft{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--rule2)}
.v3-abstract__ft span{padding:12px 16px 12px 22px;font-size:14px;line-height:1.5;color:var(--ink2)}.v3-abstract__ft span+span{border-left:1px solid var(--rule2)}
.v3-abstract__ft b{display:block;font-size:12px;color:var(--ink3);font-weight:600}
.v3-fig{margin:0 0 36px}.v3-fig img{border:1px solid var(--rule2);width:100%}.v3-fig figcaption{font-size:12px;color:var(--ink3);margin-top:8px}
.prose{counter-reset:h}
.prose h2,.v3-h2{display:flex;gap:14px;align-items:baseline;margin:56px 0 18px;padding-top:18px;border-top:1.5px solid var(--ink);font-size:24px;line-height:1.45;letter-spacing:-.03em;color:var(--ink);scroll-margin-top:90px}
.prose h2::before{counter-increment:h;content:counter(h,decimal-leading-zero);flex:none;font-family:var(--mono);font-size:15px;color:var(--v);font-weight:600;letter-spacing:0}
.v3-h2 .v3-mono{flex:none;font-size:15px;color:var(--v);font-weight:600}
.prose h3{margin:32px 0 12px;font-size:19px;line-height:1.5;letter-spacing:-.025em;color:var(--ink);scroll-margin-top:90px}
.prose ul,.prose ol,.v3-ul{margin:0 0 24px;padding-left:22px}.prose li,.v3-ul li{margin-bottom:8px}
.prose blockquote{margin:0 0 32px;padding:20px 24px;background:var(--hl);border-radius:2px;transform:rotate(-.4deg)}
.prose blockquote p{margin:0!important;font-size:18px;font-weight:700;line-height:1.55;letter-spacing:-.02em}
.prose code{font:.88em var(--mono);background:var(--vs);padding:1px 5px;border-radius:3px}
.prose hr{border:0;border-top:1px dashed var(--rule2);margin:36px 0}
.prose ul.tasks{list-style:none;margin:6px 0 28px;background:#fff;border:1px solid var(--rule2);border-radius:4px;padding:16px 20px}
.prose ul.tasks::before{content:"체크리스트";display:block;margin:0 0 6px;font-family:var(--mono);font-size:12px;font-weight:600;color:var(--v2)}
.prose li.task{display:flex;gap:12px;margin:0;padding:8px 0;font-size:16px;line-height:1.6}.prose li.task+li.task{border-top:1px dashed var(--rule)}
.prose li.task .box{flex:none;width:18px;height:18px;margin-top:4px;border:1.5px solid var(--ink);border-radius:2px;background:#fff}
.prose li.task.done .box{background:var(--v);border-color:var(--v)}
.prose li.task p{margin:0}
.prose .table-wrap{margin:6px 0 28px;overflow-x:auto;background:#fff;border-top:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink)}
.prose table{width:100%;border-collapse:collapse;font-size:15px;line-height:1.6}
.prose th{text-align:left;padding:10px 14px;font-size:13px;color:var(--ink3);border-bottom:1px solid var(--ink);white-space:nowrap}
.prose td{padding:11px 14px;border-top:1px solid var(--rule);vertical-align:top}
.prose td:first-child{font-weight:700}
.prose img{border:1px solid var(--rule2)}
.pending-link{color:inherit}
.v3-qa{padding:16px 0;border-bottom:1px solid var(--rule)}
.v3-qa__q{display:flex;gap:12px;margin:0 0 6px;font-size:17px;line-height:1.6;font-weight:700}.v3-qa__q span{flex:none;color:var(--v);font-size:14px;padding-top:2px}
.v3-qa__a{margin:0!important;padding-left:38px;color:var(--ink2);font-size:16px}.v3-qa__a a{color:var(--v2);text-decoration:underline}
.v3-src{font-size:14px;color:var(--ink3);padding-left:20px;margin:0 0 8px}.v3-src a{color:var(--v2);text-decoration:underline;text-underline-offset:3px;word-break:break-all}
.v3-rel{list-style:none;margin:16px 0 0;padding:0;border-top:1px solid var(--rule2)}
.v3-rel a{display:grid;grid-template-columns:1fr auto;gap:14px;padding:14px 0;border-bottom:1px solid var(--rule2);color:var(--ink)}
.v3-rel strong{font-size:16px;line-height:1.5}.v3-rel em{font-style:normal;font-size:13px;color:var(--ink3);white-space:nowrap;padding-top:2px}
.v3-rel a:hover strong{color:var(--v2)}
.v3-by{display:flex;gap:16px;margin-top:40px;padding:20px 22px;background:#fff;border:1px solid var(--rule2);border-radius:4px}
.v3-by__av{flex:none;width:48px;height:48px;border-radius:50%;border:1.5px solid var(--ink);background:#fff;display:grid;place-items:center;font-weight:800}
.v3-by p{margin:0 0 6px!important;font-size:15px;line-height:1.7;color:var(--ink2)}.v3-by b{color:var(--ink)}.v3-by b a:hover{color:var(--v2)}
.v3-tags{font-size:13.5px!important}.v3-tags a{color:var(--v2)}.v3-tags a:hover{text-decoration:underline}
.v3-page__hd{max-width:760px;padding-bottom:8px}
.v3-page__hd h1{margin:0 0 12px;font-size:38px;line-height:1.35;letter-spacing:-.04em}
.v3-page .v3-prose{max-width:760px}
.v3-page .prose h2:first-child{margin-top:24px}
.v3-au{display:flex;gap:18px;align-items:center}.v3-au h1{margin:0}.v3-au__av{width:64px;height:64px;font-size:24px}
.v3-au__role{margin:4px 0 0;color:var(--ink2)}
.v3-chips{list-style:none;margin:0 0 24px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.v3-chips li{padding:6px 14px;background:#fff;border:1px solid var(--rule2);border-radius:4px;font-size:15px;font-weight:600}
.v3-letter{border-top:2px solid var(--ink);background:var(--vs)}
.v3-letter__in{max-width:1240px;margin:0 auto;padding:40px 28px;display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:center}
.v3-letter p{margin:0;font-size:12.5px;font-weight:600;color:var(--v2)}
.v3-letter h2{margin:0;font-size:22px;letter-spacing:-.03em}
.v3-letter__go a{display:inline-flex;align-items:center;height:48px;padding:0 22px;border-radius:4px;background:var(--ink);color:#fff;font-weight:700}
.v3-letter__go a:hover{background:var(--v2)}
.v3-ft{background:var(--ink);color:#c5c1db}
.v3-ft__in{max-width:1240px;margin:0 auto;padding:48px 28px 28px;display:grid;grid-template-columns:1.2fr 1.4fr 1fr;gap:48px}
.v3-ft img{height:32px;width:auto;background:#fff;border-radius:6px;padding:4px 8px;box-sizing:content-box}
.v3-ft p{font-size:14px;line-height:1.7}
.v3-ft h3{margin:0 0 12px;font-size:12px;color:#fff;font-weight:600}
.v3-ft__links{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:14px}
.v3-ft__cats{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;font-size:14px}
.v3-ft__cats a::before{content:"";display:inline-block;width:6px;height:6px;margin:0 9px 2px 0;background:#9d8ffb}
.v3-ft a:hover{color:#fff}
.v3-ft__rules{margin:0;padding-left:18px;font-size:13.5px;line-height:1.7}
.v3-ft__c{max-width:1240px;margin:0 auto;padding:16px 28px 32px;border-top:1px solid #34305a;font-size:12.5px}
@media (max-width:1080px){.v3-rep__hd{margin-left:0}.v3-rep__body{grid-template-columns:minmax(0,1fr)}.v3-toc{position:static;max-height:none;background:#fff;border:1px solid var(--rule2);padding:16px 18px}.v3-topics{grid-template-columns:repeat(2,1fr)}.v3-intro__in{grid-template-columns:1fr}.v3-notes{grid-template-columns:repeat(2,minmax(0,1fr))}.v3-hd__nav{gap:18px}}
@media (max-width:820px){.v3-hd__nav,.v3-hd__sub{display:none}
 .v3-menu{display:block;margin-left:auto}.v3-menu summary{list-style:none;width:40px;height:40px;display:grid;place-content:center;gap:6px;cursor:pointer}
 .v3-menu summary::-webkit-details-marker{display:none}.v3-menu summary span{display:block;width:22px;height:2px;background:var(--ink)}
 .v3-menu__p{position:fixed;left:0;right:0;top:58px;background:var(--paper);border-bottom:2px solid var(--ink);padding:8px 16px 16px}
 .v3-menu__p a{display:block;padding:12px 0;border-bottom:1px solid var(--rule);font-weight:700}
 .v3-hd__in{height:58px}}
@media (max-width:720px){
 .v3-hd__in{padding:0 16px;gap:12px}.v3-hd__logo img{height:27px}
 .v3-intro__in,.v3-sec,.v3-chd__in,.v3-rep,.v3-page,.v3-letter__in,.v3-ft__in,.v3-ft__c{padding-left:16px;padding-right:16px}
 .v3-intro__in{padding-top:36px;gap:32px}.v3-intro h1{font-size:28px}.v3-intro__l>p{font-size:15.5px}
 .v3-stats dd{font-size:22px}.v3-stats dd.v3-stats__d{font-size:14px;padding-top:7px}.v3-stats div+div{padding-left:12px}
 .v3-lead{padding:20px 18px;box-shadow:5px 5px 0 var(--vs)}.v3-lead h2{font-size:20px}
 .v3-sec{padding-top:44px}.v3-notes{grid-template-columns:1fr;gap:12px}
 .v3-note{display:grid;grid-template-columns:112px minmax(0,1fr);grid-template-areas:"i m" "i t";column-gap:14px;align-items:start;padding:12px}
 .v3-note__img{grid-area:i}.v3-note__meta{grid-area:m;margin:0 0 4px}.v3-note h2,.v3-note h3{grid-area:t;margin:0;font-size:15.5px}.v3-note__desc{display:none}.v3-topics{grid-template-columns:1fr}
 .v3-chd__in{padding-top:36px;padding-bottom:32px}.v3-chd h1{font-size:32px}.v3-chd p{font-size:15.5px}.v3-rc{grid-template-columns:1fr;gap:14px;padding:12px}.v3-rc h2{font-size:19px}
 .v3-rep__hd h1,.v3-page__hd h1{font-size:26px}.v3-rep__lead{font-size:16px}.v3-meta{grid-template-columns:1fr 1fr}.v3-meta div,.v3-meta div+div{padding:10px 0;border-left:0;border-bottom:1px solid var(--rule)}.v3-meta div:last-child{border-bottom:0}
 .v3-prose{font-size:16.5px}.prose h2,.v3-h2{font-size:20px}.v3-abstract__ft{grid-template-columns:1fr}.v3-abstract__ft span+span{border-left:0;border-top:1px solid var(--rule2)}
 .v3-abstract ol{padding-left:38px;padding-right:16px}.v3-qa__a{padding-left:0}
 .v3-rel a{grid-template-columns:1fr}.v3-rel em{display:none}
 .v3-letter__in{grid-template-columns:1fr;gap:12px}
 .v3-ft__in{grid-template-columns:1fr;gap:32px}
}
