:root{--sidebar-width:19rem;--toc-width:16rem;--content-width:52rem;--serif:"Pretendard Variable", "Pretendard", "SUIT Variable", "SUIT", "Inter", "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", "Segoe UI", sans-serif;--sans:"Pretendard Variable", "Pretendard", "SUIT Variable", "SUIT", "Inter", "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", "Segoe UI", sans-serif;--mono:"SFMono-Regular", "Consolas", "Liberation Mono", monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:var(--sans);background:radial-gradient(circle at top left,var(--bg-accent-a),transparent 28%),radial-gradient(circle at top right,var(--bg-accent-b),transparent 24%),linear-gradient(180deg,var(--bg-top) 0%,var(--bg-bottom) 100%)}a{color:inherit;text-decoration:none}.book-shell{min-height:100vh}.book-sidebar{position:fixed;inset:0 auto 0 0;width:min(100%,var(--sidebar-width));border-right:1px solid var(--line);background:var(--sidebar-bg);backdrop-filter:blur(18px);overflow-y:auto;z-index:20}.book-main{min-height:100vh;margin-left:var(--sidebar-width)}.book-topbar{position:sticky;top:0;display:flex;align-items:center;gap:1rem;min-height:4.5rem;padding:0 1.25rem;border-bottom:1px solid var(--line);background:var(--topbar-bg);backdrop-filter:blur(18px);z-index:10}.book-topbar__title a,.sidebar-brand a{font-family:var(--serif);font-size:1.1rem;font-weight:700;letter-spacing:-.01em}.book-topbar__title p,.sidebar-brand p{margin:.15rem 0 0;color:var(--muted);font-size:.82rem;letter-spacing:.01em;text-transform:none}.doc-header__eyebrow,.chapter-card__label,.hero__eyebrow,.toc-panel__title{margin:.15rem 0 0;color:var(--muted);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.book-menu-toggle{display:none;width:2.75rem;height:2.75rem;padding:0;border:1px solid var(--line);border-radius:.9rem;background:var(--panel-strong)}.book-menu-toggle span{display:block;width:1.2rem;height:2px;margin:.24rem auto;background:var(--ink)}.book-content-wrap{display:grid;grid-template-columns:minmax(0,1fr)minmax(0,var(--toc-width));gap:2rem;padding:2rem}.book-content{min-width:0}.book-toc{position:sticky;top:6rem;align-self:start}.sidebar-nav{padding:1.5rem 1rem 2rem}.sidebar-brand{padding:0 .5rem 1.25rem}.sidebar-section{border-top:1px solid var(--line);padding-top:1rem}.sidebar-section__title{display:block;padding:0 .5rem .85rem;color:var(--muted);font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.sidebar-tree{display:grid;gap:.2rem}.sidebar-tree__item{display:block;padding:.65rem .8rem;border-radius:.8rem;color:var(--text-soft);font-size:.96rem;transition:background-color 160ms ease,color 160ms ease,transform 160ms ease}.sidebar-tree__item:hover,.sidebar-tree__item.is-active{color:var(--ink);background:var(--accent-soft);transform:translateX(2px)}.sidebar-tree__item[data-depth="1"]{padding-left:1.4rem}.sidebar-tree__item[data-depth="2"]{padding-left:2rem}.sidebar-tree__item[data-depth="3"]{padding-left:2.6rem}.hero,.doc-article,.chapter-card,.toc-panel{background:var(--panel);border:1px solid var(--card-border);box-shadow:var(--shadow)}.hero,.doc-article{max-width:var(--content-width);border-radius:1.8rem}.hero{padding:3rem}.hero h1,.doc-header h1{margin:.2rem 0 0;font-family:var(--serif);font-size:clamp(2.2rem,4vw,3.7rem);font-weight:800;letter-spacing:-.03em;line-height:1.08}.hero__lede,.doc-header__description,.doc-intro,.chapter-card p,.chapter-list__desc{color:var(--text-soft);line-height:1.75}.hero__cta{display:inline-flex;margin-top:1.5rem;padding:.9rem 1.2rem;border-radius:999px;background:var(--accent);color:var(--accent-contrast);font-weight:700}.chapter-grid{display:grid;gap:1rem;margin-top:1.5rem;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr))}.chapter-card{padding:1.4rem;border-radius:1.4rem}.chapter-card h2,.chapter-list__name{margin:0;font-family:var(--serif);font-weight:700;letter-spacing:-.02em}.doc-article{padding:2.2rem}.doc-body{font-family:var(--sans);font-size:1.08rem;line-height:1.82;letter-spacing:-.01em}.doc-body h2,.doc-body h3,.doc-body h4{margin-top:2.2em;font-family:var(--sans);font-weight:700;letter-spacing:-.02em;line-height:1.28}.doc-body p,.doc-body ul,.doc-body ol,.doc-body blockquote,.doc-body pre,.doc-body table{margin:1.15rem 0}.doc-body code,.doc-body pre{font-family:var(--mono)}.doc-body :not(pre)>code{padding:.18rem .38rem;border-radius:.4rem;background:var(--accent-soft);font-size:.92em}.doc-body pre{overflow-x:auto;padding:1rem 1.1rem;border-radius:1rem;background:var(--code-bg);color:var(--code-ink)}.doc-body img{display:block;max-width:min(100%,42rem);height:auto;margin:1.5rem auto}.image-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:1rem;margin:1.5rem 0}.image-row img{display:block;flex:initial;max-width:min(100%,26rem);height:auto;margin:0}.doc-body blockquote{padding:.35rem 0 .35rem 1rem;border-left:3px solid var(--accent);color:var(--quote-ink)}.doc-body table{width:100%;border-collapse:collapse}.doc-body th,.doc-body td{padding:.75rem;border-bottom:1px solid var(--line);text-align:left}.chapter-list{display:grid;gap:.8rem}.chapter-list__item{display:grid;gap:.15rem;padding:1rem 1.05rem;border:1px solid var(--line);border-radius:1rem;background:var(--panel-elevated)}.toc-panel{padding:1.1rem 1rem;border-radius:1.3rem}.toc-panel nav ul{margin:.6rem 0 0;padding-left:1rem}.toc-panel li{margin:.35rem 0;color:var(--muted)}.page-nav{display:flex;justify-content:space-between;gap:1rem;margin-top:2.4rem}.page-nav__link{flex:1;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:1rem;background:var(--panel-elevated)}.page-nav__link span{display:block;color:var(--muted);font-size:.82rem;text-transform:uppercase;letter-spacing:.08em}.page-nav__link--next{text-align:right}@media(max-width:1100px){.book-content-wrap{grid-template-columns:minmax(0,1fr)}.book-toc{display:none}}@media(max-width:900px){.book-menu-toggle{display:inline-block}.book-sidebar{transform:translateX(-100%);transition:transform 180ms ease}.book-sidebar[data-open=true]{transform:translateX(0)}.book-main{margin-left:0}.book-content-wrap{padding:1rem}.hero,.doc-article{padding:1.4rem;border-radius:1.3rem}}@media(max-width:640px){.book-topbar{padding:0 .9rem}.page-nav{flex-direction:column}}