:root{--paper:#fbf7ee;--paper-2:#f3ecdb;--card:#fffdf8;--ink:#26324b;--ink-soft:#5b6784;--line:#e2d9c3;--accent:#3b5bdb;--accent-soft:#e4eaff;--mark:#fff2a8;--success:#2f9e44;--danger:#e03131;--radius:12px;--shadow:0 2px 0 rgba(38,50,75,0.06),0 8px 24px rgba(38,50,75,0.06);--font-body:"Noto Sans KR",-apple-system,BlinkMacSystemFont,"Segoe UI","Malgun Gothic",sans-serif;--font-title:"Noto Serif KR","Batang",Georgia,serif;--font-code:"JetBrains Mono",source-code-pro,Menlo,Monaco,Consolas,"Courier New",monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"Noto Sans KR",-apple-system,BlinkMacSystemFont,"Segoe UI","Malgun Gothic",sans-serif;font-family:var(--font-body);color:#26324b;color:var(--ink);line-height:1.7;background-color:#fbf7ee;background-color:var(--paper);background-image:linear-gradient(#e2d9c3 1px,transparent 0),linear-gradient(90deg,#e2d9c3 1px,transparent 0);background-image:linear-gradient(var(--line) 1px,transparent 0),linear-gradient(90deg,var(--line) 1px,transparent 0);background-size:28px 28px;background-attachment:fixed;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:"JetBrains Mono",source-code-pro,Menlo,Monaco,Consolas,"Courier New",monospace;font-family:var(--font-code)}a{color:#3b5bdb;color:var(--accent)}:focus-visible{outline:3px solid #3b5bdb;outline:3px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:30;display:flex;grid-gap:16px;gap:16px;padding:12px 24px;background:var(--ink);border-bottom:4px solid var(--mark)}.brand,.topbar{align-items:center;color:#fff}.brand{display:inline-flex;grid-gap:8px;gap:8px;font-family:var(--font-title);font-weight:700;font-size:1.15rem;text-decoration:none}.brand-mark{color:#61dafb;font-size:1.4rem}.topbar-sub{color:#c4cbe0;font-size:.85rem}.menu-btn{display:none;background:transparent;color:#fff;border:1px solid hsla(0,0%,100%,.3333333333333333);border-radius:8px;font-size:1.2rem;padding:2px 10px;cursor:pointer}.body{flex:1 1;display:flex;align-items:flex-start;width:100%;max-width:1280px;margin:0 auto}.toc{position:-webkit-sticky;position:sticky;top:62px;width:300px;flex-shrink:0;max-height:calc(100vh - 62px);overflow-y:auto;padding:20px 16px 40px 24px}.toc-home{display:block;padding:8px 12px;margin-bottom:12px;border-radius:8px;font-weight:700;color:var(--ink);text-decoration:none;background:var(--card);border:1px solid var(--line)}.toc-chapter h3{margin:18px 0 6px;font-family:var(--font-title);font-size:.95rem;line-height:1.4}.chapter-no{display:inline-block;padding:0 7px;margin-right:4px;border-radius:6px;background:var(--accent-soft);color:var(--accent);font-family:var(--font-code);font-size:.72rem;font-weight:700}.toc ol{margin:0;padding:0;list-style:none;border-left:2px solid var(--line)}.toc li a{display:flex;grid-gap:8px;gap:8px;padding:3px 10px;margin-left:-2px;border-left:2px solid transparent;color:var(--ink-soft);font-size:.88rem;line-height:1.5;text-decoration:none;transition:background .15s,color .15s}.toc li a:hover{color:var(--ink);background:var(--paper-2)}.toc-home.is-active,.toc li a.is-active{color:var(--accent);font-weight:700;border-left-color:var(--accent);background:var(--accent-soft)}.toc-home.is-active{border-left-width:1px}.lesson-no{min-width:1.5em;font-family:var(--font-code);font-size:.78rem;opacity:.7}.scrim{display:none}.content{flex:1 1;min-width:0;padding:32px 24px 64px}.eyebrow{margin:0 0 6px;font-family:var(--font-code);font-size:.78rem;letter-spacing:.08em;color:var(--accent);font-weight:700}.content h1{margin:0 0 12px;font-family:var(--font-title);font-size:clamp(1.7rem,4vw,2.4rem);line-height:1.3}.hl{background:linear-gradient(transparent 55%,var(--mark) 0)}.tags{display:flex;flex-wrap:wrap;grid-gap:6px;gap:6px;margin:12px 0 0;padding:0;list-style:none}.tags li{padding:1px 10px;border:1px dashed var(--ink-soft);border-radius:999px;font-family:var(--font-code);font-size:.78rem;color:var(--ink-soft)}.hero{padding:28px 32px;margin-bottom:28px;background:var(--card);border:1px solid var(--line);border-left:8px solid var(--accent);border-radius:var(--radius);box-shadow:var(--shadow)}.lead{max-width:60ch;color:var(--ink-soft)}.btn-primary{display:inline-block;margin-top:8px;padding:10px 20px;border-radius:10px;background:var(--accent);color:#fff;font-weight:700;text-decoration:none;box-shadow:0 3px 0 #2b44a8;transition:transform .1s,box-shadow .1s}.btn-primary:hover{transform:translateY(1px);box-shadow:0 2px 0 #2b44a8}.chapter-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:18px;gap:18px}.chapter-card{display:flex;flex-direction:column;padding:18px 20px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);transition:transform .15s}.chapter-card:hover{transform:translateY(-3px)}.chapter-card h2{margin:6px 0;font-family:var(--font-title);font-size:1.1rem}.chapter-card p{margin:0;font-size:.9rem;color:var(--ink-soft)}.chapter-card .tags{margin-bottom:14px}.card-link{margin-top:auto;font-weight:700;font-size:.9rem;text-decoration:none}.card-link:hover{text-decoration:underline}.lesson{max-width:860px}.note{display:flex;align-items:center;grid-gap:12px;gap:12px;margin:20px 0;padding:10px 16px;background:var(--mark);border-radius:6px;transform:rotate(-.4deg);box-shadow:0 2px 0 rgba(0,0,0,.08);font-size:.9rem}.note-label{font-weight:700}.note code{background:hsla(0,0%,100%,.6666666666666666);padding:1px 8px;border-radius:4px}.demo{background:var(--card);border:1px solid var(--ink);border-radius:var(--radius);box-shadow:6px 6px 0 var(--ink);overflow:hidden}.demo-bar{display:flex;align-items:center;grid-gap:6px;gap:6px;padding:8px 14px;background:var(--ink);color:#c4cbe0;font-family:var(--font-code);font-size:.78rem}.demo-bar i{width:10px;height:10px;border-radius:50%;background:#ff6b6b}.demo-bar i:nth-child(2){background:#ffd43b}.demo-bar i:nth-child(3){background:#51cf66;margin-right:8px}.demo-body{min-height:160px;padding:24px;overflow-x:auto}.loading{color:var(--ink-soft)}.demo-body h1,.demo-body h2,.demo-body h3{font-family:var(--font-title);margin:0 0 10px}.demo-body h1{font-size:1.5rem}.demo-body h2{font-size:1.2rem}.demo-body button{margin:2px 6px 2px 0;padding:6px 14px;border:1px solid var(--accent);border-radius:8px;background:var(--accent-soft);color:var(--accent);font:inherit;font-weight:700;cursor:pointer;transition:background .15s,color .15s}.demo-body button:hover{background:var(--accent);color:#fff}.demo-body input:not([type]),.demo-body input[type=password],.demo-body input[type=text]{margin:2px 6px 2px 0;padding:6px 10px;border:1px solid var(--ink-soft);border-radius:8px;background:#fff;font:inherit}.demo-body hr{border:0;border-top:1px dashed var(--line);margin:16px 0}.demo-body ul{padding-left:1.4em}.demo-body .success{background:#d3f9d8}.demo-body .failure{background:#ffe3e3}.pager{display:flex;justify-content:space-between;grid-gap:12px;gap:12px;margin-top:36px}.pager a{max-width:48%;padding:10px 16px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);font-size:.9rem;font-weight:700;text-decoration:none;box-shadow:var(--shadow)}.pager a:hover{border-color:var(--accent);color:var(--accent)}.footer{padding:18px;text-align:center;font-size:.8rem;color:var(--ink-soft);background:var(--paper-2);border-top:1px solid var(--line)}@media (max-width:860px){.topbar-sub{display:none}.menu-btn{display:inline-block}.toc{position:fixed;top:62px;left:0;bottom:0;z-index:25;background:var(--paper);border-right:1px solid var(--line);transform:translateX(-100%);transition:transform .2s}.toc.is-open{transform:none}.scrim{display:block;position:fixed;inset:62px 0 0 0;z-index:20;background:rgba(38,50,75,.35)}.content{padding:20px 16px 48px}.hero{padding:20px}.pager{flex-direction:column}.pager a{max-width:none}}
/*# sourceMappingURL=main.b7c9e092.chunk.css.map */