:root{--ground:#d9dcd6;--panel:#f0f1f2;--paper:#fff;--bar:#e4e7eb;--line:#a9b0b8;--line-soft:#cdd2d8;--frame:#6b7480;--ink:#1e2329;--ink-2:#3a414a;--ink-3:#5b636d;--accent:#1f3a6e;--accent-ink:#fff;--sel:#d3e3f6;--alt:#f6f7f8;--ok:#1f5e2e;--ok-bg:#e3f1e6;--ok-line:#9fcba9;--warn:#8a3a0b;--warn-bg:#fdf1dc;--warn-line:#e9b97a;--bad:#8b1a1a;--bad-bg:#fbe4e4;--bad-line:#e3a0a0}*{box-sizing:border-box}html,body{margin:0}body{background:var(--ground);color:var(--ink);font-feature-settings:"tnum" 0;-webkit-font-smoothing:antialiased;font-family:Pretendard Variable,Pretendard,-apple-system,Segoe UI,Malgun Gothic,Apple SD Gothic Neo,sans-serif;font-size:13px;line-height:1.45}a{color:var(--accent)}a:hover{color:#0f1f40}h1{margin:0 0 8px;font-size:17px}h2{margin:0 0 8px;font-size:14px}.shell{background:var(--panel);min-height:100vh}.titlebar{background:var(--accent);color:var(--accent-ink);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:9px 18px;font-size:14px;display:flex}.titlebar a{color:var(--accent-ink)}.titlebar .left,.titlebar .right{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.brand{letter-spacing:.01em;font-size:18px;font-weight:700;text-decoration:none}.sep{background:#ffffff73;width:1px;height:14px}.langswitch{border:1px solid #fff9;display:flex}.langswitch button{font:inherit;cursor:pointer;color:#fff;background:0 0;border:0;min-height:30px;padding:4px 12px;font-size:13px}.langswitch button[aria-pressed=true]{color:var(--accent);background:#fff;font-weight:700}.linkbtn{font:inherit;font-size:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.menubar{background:var(--bar);border-bottom:1px solid var(--line);flex-wrap:wrap;padding:0 6px;display:flex}.menubar a,.menubar span{color:var(--ink);padding:9px 16px;font-size:14px;text-decoration:none}.menubar .on{background:var(--paper);border-left:1px solid var(--line);border-right:1px solid var(--line);margin-bottom:-1px;font-weight:600}.menubar .off{color:var(--ink-3)}.body{padding:10px}.cols{flex-wrap:wrap;align-items:flex-start;gap:10px;display:flex}.side{flex:210px;min-width:200px;max-width:250px}.main{flex-direction:column;flex:999 560px;gap:10px;min-width:0;display:flex}@media (max-width:720px){.side{max-width:none}}.box{background:var(--paper);border:1px solid var(--line)}.box-h{background:var(--bar);border-bottom:1px solid var(--line);padding:5px 8px;font-size:12px;font-weight:600}.box-b{padding:10px 12px}.box+.box{margin-top:10px}.toolbar{background:var(--bar);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:6px;padding:6px 8px;display:flex}.footbar{background:var(--bar);border-top:1px solid var(--line);color:var(--ink-2);flex-wrap:wrap;justify-content:space-between;gap:8px;padding:4px 8px;font-size:12px;display:flex}.statusbar{background:var(--bar);border-top:1px solid var(--line);color:var(--ink-2);flex-wrap:wrap;justify-content:space-between;gap:8px;padding:3px 10px;font-size:11.5px;display:flex}.navlist{flex-direction:column;padding:4px 0;font-size:12.5px;display:flex}.navlist a{color:var(--ink);justify-content:space-between;gap:8px;padding:5px 10px;text-decoration:none;display:flex}.navlist a.sub{padding-left:22px}.navlist a.on{background:var(--sel);font-weight:600}.kv{color:var(--ink-2);padding:6px 10px;font-size:12px;line-height:1.7}.kv div{justify-content:space-between;gap:8px;display:flex}.scroll{overflow-x:auto}.grid{border-collapse:collapse;background:var(--paper);width:100%;font-size:12.5px}.grid th{background:var(--bar);text-align:left;border:1px solid var(--line);white-space:nowrap;padding:5px 8px;font-weight:600}.grid td{border:1px solid var(--line-soft);white-space:nowrap;vertical-align:middle;padding:5px 8px}.grid td.wrap{white-space:normal;min-width:260px}.grid tbody tr:nth-child(2n) td{background:var(--alt)}.grid .big{font-size:18px;font-weight:700}.grid .empty{text-align:center;color:var(--ink-3);white-space:normal;padding:24px}.btn{font:inherit;border:1px solid var(--frame);background:var(--paper);min-height:30px;color:var(--ink);cursor:pointer;align-items:center;gap:6px;padding:4px 12px;font-size:12px;text-decoration:none;display:inline-flex}.btn:hover{background:var(--alt)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.btn.primary:hover{background:#17305c}.btn[disabled]{color:var(--ink-3);cursor:not-allowed}.form{grid-template-columns:180px minmax(0,1fr);align-items:start;gap:10px 14px;display:grid}.form>label{padding-top:5px;font-size:12.5px;font-weight:600}.form .req{color:var(--bad);margin-left:4px;font-size:11px;font-weight:400}.form .help{color:var(--ink-3);margin-top:3px;font-size:11.5px}.form .actions{grid-column:2;gap:8px;display:flex}@media (max-width:640px){.form{grid-template-columns:1fr}.form>label{padding-top:0}.form .actions{grid-column:1}}input[type=text],input[type=email],input[type=password],input[type=date],input[type=number],select,textarea{font:inherit;border:1px solid var(--frame);min-height:30px;color:var(--ink);background:#fff;border-radius:0;width:100%;max-width:560px;padding:5px 7px;font-size:13px}textarea{resize:vertical;min-height:140px}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline-offset:1px;outline:2px solid #2e5a9e}.row3{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;max-width:760px;display:grid}@media (max-width:640px){.row3{grid-template-columns:1fr}}.msg{border:1px solid;padding:7px 10px;font-size:12.5px}.msg.ok{background:var(--ok-bg);border-color:var(--ok-line);color:var(--ok)}.msg.err{background:var(--bad-bg);border-color:var(--bad-line);color:var(--bad)}.msg.info{color:#1f3a6e;background:#e8eef7;border-color:#a9bcd8}.tag{border:1px solid;padding:1px 6px;font-size:12px}.tag.warn{background:var(--warn-bg);color:var(--warn);border-color:var(--warn-line)}.tag.ok{background:var(--ok-bg);color:var(--ok);border-color:var(--ok-line)}.tag.bad{background:var(--bad-bg);color:var(--bad);border-color:var(--bad-line)}.tag.plain{background:var(--alt);color:var(--ink-2);border-color:var(--line)}.t-warn{color:var(--warn);font-weight:600}.t-ok{color:var(--ok);font-weight:600}.t-mute{color:var(--ink-3)}.narrow{max-width:420px;margin:0 auto}.checks{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px 14px;max-width:760px;display:grid}.checks label{align-items:center;gap:6px;font-weight:400;display:inline-flex}.code{background:var(--alt);border:1px solid var(--line-soft);padding:2px 6px;font-family:ui-monospace,Consolas,monospace}.prog-day{margin:16px 0 6px;font-size:15px}.prog-session{border-top:1px solid var(--line-soft);grid-template-columns:110px minmax(0,1fr);display:grid}.prog-session:first-child{border-top:0}.prog-time{font-variant-numeric:tabular-nums;color:var(--ink-2);background:var(--alt);padding:8px 10px}.prog-body{padding:8px 10px}.prog-body h3{margin:0 0 2px;font-size:13.5px}.prog-meta{color:var(--ink-3);margin-bottom:6px;font-size:12px}.prog-paper{border-top:1px dotted var(--line-soft);padding:5px 0}.prog-paper:first-of-type{border-top:0}.prog-paper .pt{font-weight:600}.prog-paper .pa{color:var(--ink-2);font-size:12px}.prog-paper details{margin-top:3px;font-size:12.5px}.prog-session.kind-break .prog-body{color:var(--ink-3);font-style:italic}@media (max-width:560px){.prog-session{grid-template-columns:1fr}}.book{color:#111;background:#fff;max-width:820px;margin:0 auto;padding:24px 32px;font-family:"Source Serif 4",Georgia,Times New Roman,Noto Serif KR,Batang,serif;font-size:11.5pt;line-height:1.5}.book h1{margin:0 0 6px;font-size:22pt}.book h2{border-bottom:1px solid #999;margin:18px 0 8px;padding-bottom:3px;font-size:15pt}.book h3{margin:14px 0 4px;font-size:12.5pt}.book .cover{text-align:center;padding:80px 0 40px}.book .cover .sub{color:#333;font-size:13pt}.book .toc li{margin:2px 0}.book table.sched{border-collapse:collapse;width:100%;margin-bottom:10px;font-size:10pt}.book table.sched td,.book table.sched th{vertical-align:top;text-align:left;border:1px solid #bbb;padding:3px 6px}.book .abs{break-inside:avoid;margin:0 0 14px}.book .abs .id{color:#555;font-family:ui-monospace,Consolas,monospace;font-size:9.5pt}.book .abs .ttl{font-size:12pt;font-weight:700}.book .abs .au{font-size:10.5pt}.book .abs .af{color:#444;font-size:9.5pt}.book .abs p{text-align:justify;margin:6px 0 2px}.book .abs .kw{color:#444;font-size:9.5pt}.book .index{columns:2;font-size:10pt}.book .index div{break-inside:avoid}.book .pb{break-before:page}.book-tools{flex-wrap:wrap;align-items:center;gap:10px;max-width:820px;margin:10px auto;display:flex}@media print{@page{size:A4;margin:16mm 15mm}body{background:#fff}.titlebar,.book-tools,.no-print{display:none!important}.shell{box-shadow:none;background:#fff;border:0;max-width:none;margin:0}.book{max-width:none;padding:0}}.land{padding:0 0 24px}.land-hero{background:var(--paper);border-bottom:1px solid var(--line);grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center;gap:28px;padding:28px 24px 26px;display:grid}.land-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:8px;font-size:12px;font-weight:700}.land-hero h1{letter-spacing:-.01em;margin:0 0 12px;font-size:27px;line-height:1.25}.land-lead{color:var(--ink-2);max-width:46ch;margin:0 0 18px;font-size:15px}.land-cta{flex-wrap:wrap;gap:8px;display:flex}.land-cta .btn{padding:7px 16px;font-size:13.5px}.land-note{margin:10px 0 0;font-size:12px}.land-shot{margin:0}.land-shot figcaption{margin-top:6px;font-size:11.5px}.land-win{border:1px solid var(--frame);background:var(--panel);box-shadow:3px 3px #0000001f}.land-win-bar{background:var(--accent);color:#fff;align-items:center;gap:5px;padding:5px 8px;font-size:11.5px;display:flex}.land-win-bar span{border:1px solid #ffffffb3;width:9px;height:9px}.land-win-bar b{margin-left:6px;font-weight:600}.land-win img{width:100%;height:auto;display:block}.land-sec{padding:22px 24px 0}.land-sec h2{margin:0 0 10px;font-size:16px}.land-flow{border:1px solid var(--line);background:var(--paper);grid-template-columns:repeat(6,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.land-flow li{border-left:1px solid var(--line-soft);align-items:center;gap:8px;padding:10px 12px;font-size:12.5px;display:flex;position:relative}.land-flow li:first-child{border-left:0}.land-flow .n{border:1px solid var(--frame);background:var(--bar);flex:none;place-items:center;width:22px;height:22px;font-size:11.5px;font-weight:700;display:inline-grid}.land-flow li.hl{background:var(--warn-bg)}.land-flow li.hl .n{background:var(--accent);color:#fff;border-color:var(--accent)}.land-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.land-grid .box{margin:0}.land-grid .box+.box{margin-top:0}.land-grid .box-b{color:var(--ink-2);font-size:12.5px;line-height:1.55}.land-faq details{border-top:1px solid var(--line-soft);padding:8px 12px}.land-faq details:first-child{border-top:0}.land-faq summary{cursor:pointer;font-weight:600}.land-faq p{color:var(--ink-2);margin:6px 0 2px}@media (max-width:900px){.land-hero{grid-template-columns:1fr}.land-flow{grid-template-columns:repeat(3,minmax(0,1fr))}.land-flow li:nth-child(4){border-left:0}.land-flow li:nth-child(n+4){border-top:1px solid var(--line-soft)}.land-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.land-hero{padding:20px 16px}.land-sec{padding:18px 16px 0}.land-flow{grid-template-columns:1fr 1fr}.land-flow li{border-left:0;border-top:1px solid var(--line-soft)}.land-grid{grid-template-columns:1fr}}.grid td,.kv,.prog-time,.tag{font-variant-numeric:tabular-nums}.serif{font-family:"Source Serif 4",Georgia,Noto Serif KR,serif}.titlebar .sitenav{flex-wrap:wrap;gap:4px;margin-left:14px;display:flex}.titlebar .sitenav a{opacity:.92;padding:5px 11px;font-size:15px;text-decoration:none}.titlebar .sitenav a:hover{opacity:1;background:#ffffff1f}.titlebar .sitenav a[aria-current=page]{opacity:1;background:#ffffff2e}.page-head{background:var(--paper);border-bottom:1px solid var(--line);padding:26px 24px 4px}.page-head h1{margin:0 0 8px;font-size:28px}.page-head .msg{margin-bottom:18px}.feat-list{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:10px;display:grid}.feat-list .box,.plans .box{margin:0}.feat-list .box+.box,.plans .box+.box{margin-top:0}.feat-list ul,.plans ul{color:var(--ink-2);margin:6px 0 0;padding-left:18px;line-height:1.7}.plans{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:12px;display:grid}.plan .box-b{flex-direction:column;height:calc(100% - 31px);display:flex}.plan ul{flex:auto;margin-bottom:14px}.plan .btn{align-self:flex-start}.plan.hl{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.plan.hl .box-h{background:var(--accent);color:var(--accent-ink)}.price span.serif{font-size:30px;font-weight:700}.site-foot{border-top:1px solid var(--line);background:var(--bar);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:28px;padding:14px 24px;font-size:12px;display:flex}.site-foot nav{flex-wrap:wrap;gap:14px;display:flex}@media (max-width:900px){.plans{grid-template-columns:1fr}}@media (max-width:560px){.page-head{padding:20px 16px 4px}.feat-list{grid-template-columns:1fr}}.pdf-pick{flex-wrap:wrap;align-items:center;gap:8px;min-height:30px;display:flex}.pdf-btn{display:inline-block;position:relative}.pdf-btn input[type=file]{opacity:0;cursor:pointer;width:100%;height:100%;font-size:0;position:absolute;inset:0}.pdf-btn:focus-within .btn{outline:2px solid var(--accent);outline-offset:1px}.pdf-name{overflow-wrap:anywhere;font-size:12.5px}.pdf-x{border:1px solid var(--line);background:var(--paper);color:var(--bad);cursor:pointer;width:24px;height:24px;padding:0;font-size:16px;line-height:20px}.pdf-x:hover{background:var(--bad-bg)}.copyfield{flex-direction:column;align-items:flex-start;gap:6px;padding:8px 10px;display:flex}.copyfield-text{overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;font-size:12px}.land-high{border-top:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding-top:16px;display:grid}.land-high h3{margin:0 0 4px;font-size:16px}.land-high p{color:var(--ink-2);margin:0;font-size:14px}@media (max-width:760px){.land-high{grid-template-columns:1fr;gap:14px}}.legal{max-width:860px}.legal h2{margin:20px 0 6px;font-size:15px}.legal p{color:var(--ink-2);margin:0 0 8px;line-height:1.65}
