:root{--ink:#1c1c1c;--mute:#5f6368;--line:#e2e2e2;--soft:#f6f6f6;--accent:#0b5cad;--side:288px}
*{box-sizing:border-box}
html{color-scheme:light;-webkit-text-size-adjust:100%;scroll-behavior:auto}
body{margin:0;background:#fff;color:var(--ink);font:17px/1.75 -apple-system,"Apple SD Gothic Neo","Noto Sans KR",sans-serif;word-break:keep-all;overflow-wrap:break-word}
a{color:var(--accent);text-underline-offset:2px}
#sidebar{position:fixed;top:0;bottom:0;left:0;width:var(--side);overflow-y:auto;border-right:1px solid var(--line);padding:22px 18px 40px;font-size:14px;line-height:1.5;background:#fff;z-index:30}
#sidebar .book{display:block;font-weight:700;font-size:15px;color:var(--ink);text-decoration:none;margin-bottom:14px;line-height:1.35}
#sidebar ul{list-style:none;margin:0;padding:0}
#sidebar li>a{display:block;padding:5px 8px;color:#333;text-decoration:none;border-radius:3px}
#sidebar li>a:hover{background:var(--soft)}
#sidebar li.cur>a{color:var(--accent);font-weight:700}
#sidebar ul.secs{margin:2px 0 8px 10px;border-left:1px solid var(--line)}
#sidebar ul.secs a{font-size:13px;padding:3px 8px;color:#555;border-left:2px solid transparent;margin-left:-1px;border-radius:0}
#sidebar ul.secs a.on{color:var(--accent);border-left-color:var(--accent);font-weight:600;background:none}
#topbar{display:none}
#scrim{display:none}
main{margin-left:var(--side);padding:56px 32px 96px}
article{max-width:760px;margin:0 auto}
article h1,article h2,article h3,article h4,article h5,article h6{scroll-margin-top:72px;line-height:1.4;font-weight:700;margin:2em 0 .6em}
article h1{font-size:2rem;margin-top:0;line-height:1.3}
article h2{font-size:1.5rem;margin-top:2.6em;padding-top:.9em;border-top:1px solid var(--line)}
article h3{font-size:1.2rem}
article h4{font-size:1.05rem}
article p{margin:.9em 0}
article ul,article ol{padding-left:1.5em}
article li{margin:.25em 0}
article hr{border:0;border-top:1px solid var(--line);margin:2em 0}
article blockquote{margin:1.2em 0;padding:.1em 1em;border-left:3px solid var(--accent);color:#333;background:#fafafa}
code{font:.88em/1.5 ui-monospace,"SF Mono",Menlo,Consolas,monospace;background:var(--soft);padding:.1em .35em;border-radius:3px;word-break:break-all}
pre{background:var(--soft);border:1px solid var(--line);border-radius:4px;padding:12px 14px;overflow-x:auto;font-size:14px;line-height:1.55;margin:1.2em 0;white-space:pre;word-break:normal}
pre code{background:none;padding:0;font-size:inherit;word-break:normal}
.tablewrap{overflow-x:auto;margin:1.2em 0}
table{border-collapse:collapse;font-size:15px;line-height:1.55}
th,td{border:1px solid var(--line);padding:6px 10px;vertical-align:top;text-align:left}
th{background:var(--soft)}
figure{margin:1.8em 0}
figure img{display:block;width:100%;height:auto;border:1px solid var(--line)}
figcaption{font-size:14px;color:var(--mute);margin-top:.5em;line-height:1.55}
pre.mermaid{background:#fff;text-align:center;overflow-x:auto}
pre.mermaid[data-state=pending],pre.mermaid[data-state=rendering]{min-height:140px;color:transparent;overflow:hidden;white-space:normal;max-height:140px}
pre.mermaid[data-state=ok]{white-space:normal;padding:12px 0}
pre.mermaid[data-state=ok] svg{max-width:none}
pre.mermaid[data-state=fail]{border-color:#b33;text-align:left}
.pager{display:flex;gap:16px;justify-content:space-between;margin-top:64px;padding-top:24px;border-top:1px solid var(--line)}
.pager a{flex:1 1 0;min-width:0;border:1px solid var(--line);border-radius:4px;padding:10px 14px;text-decoration:none;color:var(--ink);line-height:1.45}
.pager a small{display:block;color:var(--mute);font-size:12px}
.pager a:hover{border-color:var(--accent)}
.pager .next{text-align:right}
.pager .sp{flex:1 1 0}
.chapters{list-style:none;padding:0;margin:1em 0}
.chapters li{margin:0;border-bottom:1px solid var(--line)}
.chapters a{display:block;padding:9px 4px;text-decoration:none;color:var(--ink)}
.chapters a:hover{color:var(--accent)}
.toc{font-size:15px;line-height:1.6}
.toc ul{list-style:none;padding-left:1.2em}
.toc>ul{padding-left:0}
.toc>ul>li{margin-top:.9em;font-weight:600}
.toc>ul>li li{font-weight:400}
@media (max-width:900px){
 body{font-size:16.5px}
 #topbar{display:flex;position:fixed;top:0;left:0;right:0;height:48px;align-items:center;gap:10px;padding:0 12px;background:#fff;border-bottom:1px solid var(--line);z-index:20;font-size:14px;font-weight:600}
 #menu-btn{font:inherit;border:1px solid var(--line);background:#fff;border-radius:4px;padding:5px 12px;color:var(--ink)}
 #sidebar{transform:translateX(-100%);transition:transform .2s;width:min(86vw,320px);box-shadow:none}
 body.menu-open #sidebar{transform:none;box-shadow:0 0 24px rgba(0,0,0,.25)}
 body.menu-open #scrim{display:block;position:fixed;inset:0;background:rgba(0,0,0,.3);z-index:25}
 main{margin-left:0;padding:68px 16px 72px}
 article h1{font-size:1.65rem}
 article h2{font-size:1.3rem}
 .pager{flex-direction:column}
}
