@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;600;700&display=swap');
:root{--paper:#fbfaf7;--bg:#f1f1eb;--ink:#243b36;--text:#33443f;--muted:#738079;--line:#dce1d9;--accent:#226956;--wash:#e7eee7;--font-size:17px;color-scheme:light}
:root[data-theme=dark]{--paper:#202925;--bg:#17201c;--ink:#e5eee7;--text:#cdd8d1;--muted:#97aaa0;--line:#3b4b42;--accent:#9bc8af;--wash:#2b3b31;color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:0}body{margin:0;background:var(--paper);color:var(--text);font-family:'Noto Sans KR',system-ui,sans-serif}button,input{font:inherit}button,a,input{touch-action:manipulation}button{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:7px;padding:7px 11px;cursor:pointer}button:hover{background:var(--wash)}a{color:var(--accent)}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skip{position:fixed;top:-100px;left:20px;z-index:100;background:var(--paper);padding:12px}.skip:focus{top:10px}
.topbar{height:70px;display:flex;align-items:center;gap:22px;padding:0 32px;border-bottom:1px solid var(--line);position:fixed;inset:0 0 auto;z-index:20;background:var(--paper)}.brand{text-decoration:none;font-size:19px;font-weight:700;letter-spacing:1px;white-space:nowrap;color:var(--ink)}.brand span{font-size:10px;font-weight:500;margin-left:12px;color:var(--muted);letter-spacing:1.5px}.reading-title{font-size:13px;color:var(--muted);border-left:1px solid var(--line);padding-left:22px}.tools{margin-left:auto;display:flex;gap:6px}.tools button{font-size:13px;min-height:35px}.icon-button{display:none}.progress-track{position:fixed;top:69px;left:0;right:0;height:2px;z-index:22}#progress{height:100%;background:var(--accent);width:0}
#sidebar{position:fixed;top:72px;bottom:51px;left:0;width:294px;padding:32px 23px 15px;background:var(--bg);border-right:1px solid var(--line);overflow-y:auto;scrollbar-width:thin}.eyebrow{font-size:10px;letter-spacing:2.3px;font-weight:700;color:var(--accent)}.sidebar-heading h2{font-size:23px;letter-spacing:-1px;margin:7px 0 22px}.search-box{position:relative;display:block}.search-box input{width:100%;padding:11px 28px 11px 12px;border:1px solid var(--line);border-radius:7px;background:var(--paper);color:var(--ink);font-size:12px}.search-box>span:last-child{position:absolute;right:11px;top:8px;font-size:20px;color:var(--muted)}.muted{font-size:11px;color:var(--muted);min-height:16px}#toc details{border-bottom:1px solid var(--line);padding:10px 0}#toc summary{font-size:13px;font-weight:600;line-height:1.65;cursor:pointer;list-style:none;display:flex;gap:7px;align-items:flex-start}#toc summary:before{content:'›';color:var(--muted);transition:transform .2s}#toc details[open] summary:before{transform:rotate(90deg)}#toc summary a{color:var(--ink);text-decoration:none;flex:1}#toc .toc-children{padding:7px 0 0 9px}#toc a.item{display:block;text-decoration:none;font-size:12px;line-height:1.7;padding:6px 9px;border-radius:5px;color:var(--muted)}#toc a.item.sub{font-size:11px;padding-left:20px}#toc a[aria-current=true]{background:var(--wash);color:var(--accent);font-weight:700}#toc a:hover{color:var(--accent)}.sidebar-footer{margin-top:25px;padding:15px 7px;display:grid;gap:5px;font-size:11px;color:var(--muted)}.sidebar-footer small{font-size:10px}.result{display:block;text-decoration:none;padding:12px 8px;border-bottom:1px solid var(--line);font-size:12px;color:var(--text)}.result small{display:block;color:var(--accent);margin-bottom:5px}.result mark{background:#f2dda0;color:#323f32}.result:hover{background:var(--wash)}
#main{margin-left:294px;padding:115px clamp(28px,6vw,110px) 100px;max-width:1600px}.intro{max-width:890px;border-bottom:1px solid var(--line);padding:35px 0 48px;margin:0 auto 55px}.intro h1{font-size:clamp(30px,3.7vw,49px);letter-spacing:-2px;line-height:1.3;color:var(--ink);margin:18px 0}.intro>p{font-size:16px;color:var(--muted)}.book-meta{display:flex;flex-wrap:wrap;gap:20px;margin:25px 0 30px;font-size:11px;color:var(--muted)}.book-meta span+span:before{content:'·';margin-right:20px}.intro-actions{display:flex;gap:12px;align-items:center}.primary{background:var(--ink);color:var(--paper);padding:12px 20px;border-radius:6px;text-decoration:none;font-size:13px}.primary span{margin-left:20px}#resume{font-size:12px}.load-status{max-width:890px;margin:20px auto;color:var(--muted);font-size:14px}.prose{font-size:var(--font-size);line-height:1.95;overflow-wrap:anywhere;color:var(--text);max-width:890px;margin:auto}.book-page{position:relative;padding:16px 0 34px;scroll-margin-top:100px;min-height:80px}.page-label{display:flex;align-items:center;gap:12px;margin:25px 0 27px;font-size:10px;letter-spacing:1.4px;color:var(--muted)}.page-label:after{content:'';height:1px;background:var(--line);flex:1}.page-label a{text-decoration:none;color:inherit}.prose h1{font-size:34px}.prose h2{font-size:30px;letter-spacing:-1px;border-top:3px solid var(--accent);padding-top:28px;margin:20px 0 34px;line-height:1.5;color:var(--ink)}.prose h3{font-size:23px;letter-spacing:-.7px;margin:38px 0 20px;line-height:1.55;color:var(--ink)}.prose h4{font-size:19px;margin:30px 0 14px;color:var(--ink)}.prose h5,.prose h6{font-size:17px;margin:24px 0 10px;color:var(--ink)}.prose [id]{scroll-margin-top:100px}.prose p{margin:14px 0 23px;word-break:keep-all}.prose li{margin:7px 0}.prose strong{color:var(--ink);font-weight:700}.prose blockquote{margin:24px 0;padding:10px 23px;border-left:3px solid var(--accent);background:var(--wash)}.prose hr{border:0;border-top:1px solid var(--line);margin:35px 0}.prose>.book-page>hr:last-child{display:none}.prose code{font-size:.85em;background:var(--wash);padding:2px 5px;border-radius:4px}.prose pre{overflow:auto;background:var(--bg);padding:20px}.prose sup{font-size:10px;color:var(--accent)}.prose p.caption{font-size:13px;font-weight:600;margin-bottom:12px;color:var(--muted)}
.rich-block{margin:24px 0 30px;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--paper)}.block-bar{display:flex;justify-content:space-between;align-items:center;padding:8px 13px;border-bottom:1px solid var(--line);background:var(--bg);font-size:10px;letter-spacing:1px;color:var(--muted)}.block-bar button{font-size:11px;padding:4px 9px;background:transparent}.table-scroll{overflow:auto;max-width:100%;scrollbar-width:thin}.prose table{border-collapse:collapse;width:100%;min-width:480px;line-height:1.8;font-size:13px;text-align:left}.prose th,.prose td{border:1px solid var(--line);padding:13px 15px;vertical-align:top;min-width:80px}.prose th{font-weight:600;background:var(--wash);color:var(--ink)}.prose tr:nth-child(even)>td{background:color-mix(in srgb,var(--bg) 40%,var(--paper))}.diagram-surface{background:#fff;min-height:240px;display:flex;align-items:center;justify-content:center;padding:24px;color:#36594a;overflow:auto}.diagram-surface svg{display:block;max-width:100%;height:auto;margin:auto}.diagram-surface .waiting{font-size:12px;color:#75847b}.diagram-error{padding:20px;font-size:13px}.diagram-error pre{white-space:pre-wrap}.endnote{max-width:890px;margin:40px auto;padding:40px 0;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}.endnote a{float:right;text-decoration:none}.location-bar{position:fixed;bottom:0;left:0;right:0;height:51px;background:var(--paper);border-top:1px solid var(--line);z-index:21;padding:0 28px;display:flex;align-items:center;gap:20px;font-size:11px;color:var(--muted)}#current-chapter{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}#page-form{display:flex;gap:7px;align-items:center}#page-number{width:50px;padding:4px 2px;text-align:center;border:1px solid var(--line);border-radius:4px;color:var(--ink);background:var(--bg);font-size:12px}#page-form button{font-size:10px;padding:4px 7px}#percent{min-width:34px;text-align:right}
dialog{width:95vw;max-width:none;height:90dvh;max-height:95dvh;border:1px solid var(--line);border-radius:12px;padding:0;background:var(--paper);color:var(--text)}dialog::backdrop{background:#102820b8;backdrop-filter:blur(4px)}dialog>header{height:64px;display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--line);gap:15px}dialog h2{font-size:15px;margin:0}dialog header>div{display:flex;align-items:center;gap:7px}dialog button{font-size:12px}dialog output{font-size:11px;min-width:38px;text-align:center}#zoom-viewport{height:calc(100% - 64px);overflow:auto;padding:24px;background:var(--bg)}#zoom-content{margin:0 auto;max-width:none;transform-origin:top left}#zoom-content svg{display:block;background:white;height:auto;max-width:none!important}#zoom-content table{background:var(--paper);font-size:15px}
@media(min-width:1500px){#main{margin-right:auto}}@media(max-width:1000px){#sidebar{width:255px;padding:25px 17px}#main{margin-left:255px;padding-left:32px;padding-right:32px}.reading-title{display:none}.prose{font-size:calc(var(--font-size) - 1px)}}@media(max-width:760px){.topbar{height:60px;padding:0 16px;gap:12px}.brand{font-size:16px}.brand span{display:none}.icon-button{display:block;padding:5px 9px}.tools{gap:4px}.tools button{padding:5px 8px}.progress-track{top:59px}#sidebar{top:60px;bottom:51px;width:min(320px,88vw);z-index:30;transform:translateX(-100%);transition:transform .2s}body.menu-open #sidebar{transform:translateX(0)}#scrim{position:fixed;inset:60px 0 51px;border:0;border-radius:0;z-index:25;background:#10282088}#main{margin:0;padding:85px 21px 85px}.intro{padding:22px 0 32px;margin-bottom:24px}.intro h1{letter-spacing:-1.4px}.intro>p{font-size:13px}.book-meta{gap:10px}.book-meta span+span:before{margin-right:10px}.prose h2{font-size:25px}.prose h3{font-size:21px}.prose p{word-break:normal}.location-bar{padding:0 14px;gap:10px}#current-chapter{font-size:10px}#percent{display:none}.diagram-surface{padding:12px}.prose table{font-size:12px;min-width:520px}.prose th,.prose td{padding:10px}dialog>header{padding:10px;gap:5px}dialog h2{font-size:12px}dialog header>div{gap:4px}dialog button{font-size:11px;padding:6px}#zoom-viewport{padding:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}@media print{.topbar,#sidebar,.location-bar,.intro,.block-bar,.progress-track{display:none}#main{margin:0;padding:0}.prose{max-width:none;font-size:11pt}.book-page{break-after:page}.rich-block{break-inside:avoid}.table-scroll{overflow:visible}.prose table{min-width:0;font-size:9pt}}

.prose .contents-row td{padding:0}.contents-link{display:block;padding:13px 15px;text-decoration:none}.contents-row:hover{background:var(--wash)}.contents-link:hover{text-decoration:underline}.contents-link:focus-visible{outline-offset:-3px}
