@import "https://fonts.googleapis.com/css2?family=Black+Han+Sans&family=IBM+Plex+Mono:wght@400;500&family=IBM+Plex+Sans+KR:wght@400;500;700&display=swap";:root{--ground:#f5f4ee;--surface:#fff;--surface-sunken:#ecebe3;--ink:#141513;--ink-muted:#5a5c55;--line:#d6d5cb;--volt:#c6f135;--on-volt:#141513;--volt-soft:#eefbc4;--volt-ink:#3d5a00;--spark:#ff5c35;--on-spark:#141513;--spark-soft:#ffe3d9;--spark-ink:#b23a12;--inverse:#141513;--on-inverse:#f5f4ee;--volt-on-inverse:#c6f135;--success:#2e7d32;--danger:#c62828;--focus:#141513;--link:var(--volt-ink);--font-display:"Black Han Sans","IBM Plex Sans KR",system-ui,sans-serif;--font-sans:"IBM Plex Sans KR","Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,"SF Mono",Menlo,monospace;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--radius-sm:6px;--radius-md:12px;--radius-lg:20px;--radius-pill:999px;--shadow-hard:4px 4px 0 0 #141513;--shadow-hard-lg:6px 6px 0 0 #141513;--border-control:2px;--border-tag:1.5px;--head-h:118px;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ground:#10110f;--surface:#1a1b18;--surface-sunken:#232420;--ink:#f1f1e8;--ink-muted:#a6a89e;--line:#3a3c34;--volt-soft:#2a3410;--volt-ink:#c6f135;--spark:#ff7a57;--spark-soft:#3a1a10;--spark-ink:#ff9c80;--inverse:#f1f1e8;--on-inverse:#141513;--volt-on-inverse:#3d5a00;--success:#7bd389;--danger:#ff8a7a;--focus:#c6f135;--shadow-hard:4px 4px 0 0 #c6f135;--shadow-hard-lg:6px 6px 0 0 #c6f135;color-scheme:dark}}:root[data-theme=dark]{--ground:#10110f;--surface:#1a1b18;--surface-sunken:#232420;--ink:#f1f1e8;--ink-muted:#a6a89e;--line:#3a3c34;--volt-soft:#2a3410;--volt-ink:#c6f135;--spark:#ff7a57;--spark-soft:#3a1a10;--spark-ink:#ff9c80;--inverse:#f1f1e8;--on-inverse:#141513;--volt-on-inverse:#3d5a00;--success:#7bd389;--danger:#ff8a7a;--focus:#c6f135;--shadow-hard:4px 4px 0 0 #c6f135;--shadow-hard-lg:6px 6px 0 0 #c6f135;color-scheme:dark}*{box-sizing:border-box}html{scroll-padding-top:var(--head-h)}body{background:var(--ground);color:var(--ink);font-family:var(--font-sans);word-break:keep-all;overflow-wrap:break-word;-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.7}h1,h2,h3{color:var(--ink);text-wrap:balance}em{background:var(--volt-soft);color:var(--ink);border-radius:3px;padding:0 3px;font-style:normal;font-weight:700}a{color:var(--link)}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.wrap{max-width:1160px;padding-inline:max(20px,env(safe-area-inset-left));margin:0 auto}@media (width<=560px){.wrap{padding-inline:16px}}.display-xl{font-family:var(--font-display);letter-spacing:-.01em;font-size:clamp(38px,6vw,60px);font-weight:400;line-height:1.1}.display-l{font-family:var(--font-display);font-size:clamp(28px,4.4vw,40px);font-weight:400;line-height:1.2}.label{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted);font-size:12px;font-weight:500;line-height:16px}.ih-btn{font-family:var(--font-sans);height:44px;padding:0 var(--space-5);align-items:center;gap:var(--space-2);border:var(--border-control) solid var(--ink);border-radius:var(--radius-pill);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-hard);cursor:pointer;white-space:nowrap;font-size:15px;font-weight:700;line-height:1;text-decoration:none;transition:transform 80ms ease-out,box-shadow 80ms ease-out;display:inline-flex}.ih-btn:hover{box-shadow:var(--shadow-hard-lg);transform:translate(-2px,-2px)}.ih-btn:active{box-shadow:none;transform:translate(4px,4px)}.ih-btn--primary{background:var(--volt);color:var(--on-volt)}.ih-btn--sm{height:36px;padding:0 var(--space-4);font-size:14px}.ih-btn[disabled],.ih-btn[aria-disabled=true]{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}@media (prefers-reduced-motion:reduce){.ih-btn{transition:none}.ih-btn:hover,.ih-btn:active{transform:none}}.ih-tag{height:26px;padding:0 var(--space-3);font-family:var(--font-mono);letter-spacing:.04em;border:var(--border-tag) solid var(--ink);border-radius:var(--radius-pill);background:var(--surface);color:var(--ink);white-space:nowrap;align-items:center;gap:6px;font-size:12px;font-weight:500;display:inline-flex}.ih-tag--volt{background:var(--volt);color:var(--on-volt);border-color:var(--on-volt)}.ih-tag--spark{background:var(--spark-soft);color:var(--spark-ink);border-color:var(--spark-ink)}.ih-card{background:var(--surface);color:var(--ink);border:var(--border-control) solid var(--ink);border-radius:var(--radius-lg);box-shadow:var(--shadow-hard)}[hidden]{display:none!important}:root{--head-h:116px}.muted{color:var(--ink-muted)}.small{font-size:13px}.mono{font-family:var(--font-mono)}.label{margin:0;display:block}code{font-family:var(--font-mono);background:var(--surface-sunken);overflow-wrap:anywhere;border-radius:4px;padding:1px 5px;font-size:.88em}.head{z-index:20;background:var(--ground);border-bottom:2px solid var(--ink);position:sticky;top:0}.bar{align-items:center;gap:14px;min-height:58px;padding-block:8px;display:flex}.logo{font-family:var(--font-display);color:var(--ink);flex:none;font-size:22px;text-decoration:none}.course{color:var(--ink);min-width:0;margin-right:auto;line-height:1.3;text-decoration:none;display:grid}.course b{white-space:nowrap;text-overflow:ellipsis;font-size:15px;overflow:hidden}.course span{color:var(--ink-muted);font-size:12px}.acct{flex:none;align-items:center;gap:10px;display:flex}.who{font-family:var(--font-mono);color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;max-width:200px;font-size:12px;overflow:hidden}.chs{scrollbar-width:none;gap:6px;padding-bottom:10px;display:flex;overflow-x:auto}.chs::-webkit-scrollbar{display:none}.ch{border:1.5px solid var(--ink);border-radius:var(--radius-pill);height:32px;color:var(--ink);background:var(--surface);flex:none;align-items:center;padding:0 13px;font-size:14px;text-decoration:none;display:inline-flex}.ch:hover{background:var(--volt-soft)}.ch.on{background:var(--volt);color:var(--on-volt);border-color:var(--ink);box-shadow:2px 2px 0 var(--ink)}@media (width<=640px){.course span,.who{display:none}.course b{font-size:14px}}@media (width<=420px){.logo{display:none}}.foot{border-top:2px solid var(--ink);color:var(--ink-muted);margin-top:64px;padding-block:28px 48px;font-size:13px}.foot p{margin:0 0 4px}.hero{grid-template-columns:minmax(0,1.25fr) minmax(0,.9fr);align-items:center;gap:40px;padding-block:48px 24px;display:grid}.hero h1{margin:14px 0 18px}.hl{background:var(--volt);color:var(--on-volt);-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:6px;padding:0 .12em}.sub{max-width:620px;margin:0 0 22px;font-size:18px}.cta{flex-wrap:wrap;gap:12px;display:flex}.member{gap:10px;padding:24px;display:grid}.member h2{font-family:var(--font-display);margin:4px 0;font-size:24px;font-weight:400;line-height:1.3}.member p{margin:0}.member [data-in],.member [data-out]{justify-items:start;gap:10px;display:grid}.acts{flex-wrap:wrap;gap:10px;display:flex}.how{padding-top:24px}.steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.steps li{align-content:start;justify-items:start;gap:6px;padding:18px 20px;display:grid}.steps b{font-size:18px}.steps p{color:var(--ink-muted);margin:0;font-size:14.5px}.steps strong{color:var(--ink)}.block-head{max-width:820px;margin:56px 0 20px}.block-head h2{margin:6px 0 8px}.block-head p{color:var(--ink-muted);margin:0}.chgrid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.chcard{flex-direction:column;justify-content:space-between;gap:14px;padding:18px 20px;display:flex}.chlink{color:var(--ink);gap:4px;text-decoration:none;display:grid}.chlink .num{font-family:var(--font-mono);color:var(--volt-ink);font-size:12px;font-weight:500}.chlink b{font-family:var(--font-display);font-size:22px;font-weight:400;line-height:1.3}a.chlink:hover b{text-underline-offset:4px;text-decoration:underline 2px}.chlink .meta{color:var(--ink-muted);overflow-wrap:anywhere;font-size:13px}.chact{flex-wrap:wrap;gap:8px;display:flex}.chcard.all{background:var(--surface-sunken)}.notes{padding-top:40px}.note{padding:20px 24px}.note ul{gap:4px;margin:8px 0 0;padding-left:20px;font-size:14.5px;display:grid}@media (width<=900px){.hero{grid-template-columns:1fr;gap:28px;padding-top:32px}.steps{grid-template-columns:1fr}}[data-dl].is-ready{background:var(--volt);color:var(--on-volt)}[data-dl].is-locked:before{content:"";background:currentColor;flex:none;width:10px;height:12px;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 12'%3E%3Cpath d='M2 5V3.5a3 3 0 0 1 6 0V5h1v7H1V5h1zm1.5 0h3V3.5a1.5 1.5 0 0 0-3 0V5z'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 12'%3E%3Cpath d='M2 5V3.5a3 3 0 0 1 6 0V5h1v7H1V5h1zm1.5 0h3V3.5a1.5 1.5 0 0 0-3 0V5z'/%3E%3C/svg%3E") 50%/contain no-repeat}.chpage{grid-template-columns:240px minmax(0,1fr);align-items:start;gap:36px;padding-block:32px;display:grid}.toc{top:calc(var(--head-h) + 16px);max-height:calc(100vh - var(--head-h) - 32px);font-size:13.5px;position:sticky;overflow:auto}.toc ol{gap:2px;margin:8px 0 0;padding:0;list-style:none;display:grid}.toc a{border-radius:var(--radius-sm);color:var(--ink);gap:8px;padding:5px 8px;line-height:1.45;text-decoration:none;display:flex}.toc a:hover{background:var(--surface-sunken)}.toc .sec{font-family:var(--font-mono);color:var(--ink-muted);flex:none;min-width:2.4em;padding-top:1px;font-size:12px}.chbody{min-width:0;max-width:860px}.chhead h1{margin:8px 0 12px}.intro{color:var(--ink-muted);font-size:15.5px}.intro p{margin:0 0 8px}.intro strong{color:var(--ink)}.data{gap:14px;margin:24px 0 8px;padding:20px 22px;display:grid}.data-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;display:flex}.data-head h2{font-family:var(--font-display);margin:4px 0 2px;font-size:24px;font-weight:400}.data-head p{margin:0}.data .label{color:var(--volt-ink)}.pass{border-top:1.5px solid var(--line);padding-top:12px}.pass p{margin:0 0 6px}.pass ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.pass li{flex-wrap:wrap;align-items:baseline;gap:4px 10px;font-size:14px;display:flex}.pass li code{background:var(--volt-soft);font-weight:500}.pass li.extra code{background:var(--surface-sunken)}.pass li span{color:var(--ink-muted)}.tree summary{cursor:pointer;font-size:14px;font-weight:700}.tree ul{background:var(--surface-sunken);border-radius:var(--radius-md);font-family:var(--font-mono);margin:10px 0 0;padding:12px 14px;font-size:13px;line-height:1.75;list-style:none;overflow-x:auto}.tree li{white-space:nowrap;gap:12px;display:flex}.tree li small{color:var(--ink-muted)}.tree li.dir span{font-weight:500}.tree li.pass span{background:var(--volt-soft);border-radius:3px;padding:0 4px}.tree .d1{padding-left:1.5em}.tree .d2{padding-left:3em}.tree .d3{padding-left:4.5em}.tree .d4{padding-left:6em}@media (width<=960px){.chpage{grid-template-columns:1fr;gap:20px}.toc{border:2px solid var(--ink);border-radius:var(--radius-md);background:var(--surface);max-height:none;padding:10px 12px;position:static}}.md{font-size:16px}.md h2{border-top:2px solid var(--ink);flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:44px 0 12px;padding-top:18px;font-size:21px;line-height:1.4;display:flex;position:relative}.md h2 .sec{font-family:var(--font-mono);background:var(--ink);color:var(--ground);border-radius:var(--radius-pill);padding:2px 8px;font-size:13px;font-weight:500}.anchor{color:var(--ink-muted);opacity:0;font-family:var(--font-mono);font-size:.8em;text-decoration:none;position:absolute;left:-1.1em}.md h2:hover .anchor{opacity:1}.md p,.md ul,.md ol{margin:0 0 12px}.md blockquote{background:var(--surface-sunken);border:1.5px solid var(--line);border-radius:var(--radius-md);margin:0 0 14px;padding:10px 16px}.tbl{border:2px solid var(--ink);border-radius:var(--radius-md);margin:0 0 16px;overflow-x:auto}.md table{border-collapse:collapse;width:100%;font-size:14px}.md th,.md td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:8px 10px}.md th{background:var(--surface-sunken)}.prompt{background:var(--surface);border:var(--border-control) solid var(--ink);border-radius:var(--radius-lg);box-shadow:var(--shadow-hard);margin:0 0 20px;overflow:hidden}.prompt .bar{border-bottom:var(--border-tag) solid var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;min-height:0;padding:9px 10px 9px 16px;display:flex}.plabel{font-family:var(--font-mono);color:var(--ink-muted);font-size:12px}.prompt [data-copy]{justify-content:center;min-width:84px}.prompt [data-copy].done{background:var(--success);color:var(--ground)}.prompt .text{background:var(--surface-sunken);font-family:var(--font-sans);color:var(--ink);white-space:pre-wrap;word-break:keep-all;overflow-wrap:anywhere;margin:0;padding:16px 18px 18px;font-size:15.5px;font-weight:500;line-height:1.85}.prompt.is-file .text{font-family:var(--font-mono);font-size:14px}.pager{grid-template-columns:1fr 1fr;gap:14px;margin-top:48px;display:grid}.pager a{color:var(--ink);gap:4px;padding:16px 18px;text-decoration:none;display:grid}.pager a.nx{text-align:right}.pager b{font-size:16px}@media (width<=560px){.pager{grid-template-columns:1fr}.pager a.nx{text-align:left}}dialog.auth{width:min(460px,100vw - 32px);max-height:calc(100dvh - 32px);margin:auto;padding:22px 24px;overflow:auto}dialog.auth::backdrop{background:#14151373}.auth-head{justify-content:space-between;align-items:center;display:flex}.auth-head .label{color:var(--volt-ink)}.x{cursor:pointer;color:var(--ink);background:0 0;border:0;padding:0 4px;font-size:28px;line-height:1}.auth h2{font-family:var(--font-display);margin:6px 0 12px;font-size:26px;font-weight:400;line-height:1.25}.notice{background:var(--spark-soft);color:var(--spark-ink);border-radius:var(--radius-md);margin:0 0 12px;padding:10px 12px;font-size:14px;font-weight:700}.tabs{border:2px solid var(--ink);border-radius:var(--radius-pill);grid-template-columns:1fr 1fr;margin-bottom:14px;display:grid;overflow:hidden}.tabs button{font:700 14px var(--font-sans);background:var(--surface);height:38px;color:var(--ink);cursor:pointer;border:0}.tabs button[aria-selected=true]{background:var(--ink);color:var(--ground)}.auth form{gap:12px;display:grid}.auth form p{margin:0}.field{gap:6px;font-size:13px;font-weight:700;display:grid}input:not([type=checkbox]){font:inherit;color:var(--ink);background:var(--surface);border:2px solid var(--ink);border-radius:var(--radius-md);width:100%;height:46px;padding:10px 12px;font-size:16px;font-weight:400}input:focus{box-shadow:var(--shadow-hard);background:var(--volt-soft);outline:none}.agree{color:var(--ink-muted);background:var(--surface-sunken);border-radius:var(--radius-md);align-items:flex-start;gap:10px;padding:10px 12px;font-size:12.5px;font-weight:400;line-height:1.6;display:flex}.agree input{width:18px;height:18px;accent-color:var(--ink);flex:none;margin-top:3px}.agree b{color:var(--ink)}.err{color:var(--danger);min-height:1.2em;font-size:14px}.err:empty{min-height:0}.sent{font-size:15px}.foot-note{border-top:1px dashed var(--line);margin:14px 0 0;padding-top:12px}@media print{.head,.foot,.toc,.data,.prompt .bar,.pager{display:none!important}.chpage{display:block}}
