@font-face{font-family:Inter;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/inter-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/jetbrains-mono-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:dark;--bg:#0b0d10;--bg-alt:#11151a;--bg-card:#161b22;--bg-card-hover:#1d242d;--border:#232a33;--border-strong:#2e3742;--text:#e7eaee;--text-soft:#c5cdd7;--text-mute:#9aa4b1;--accent:#d97757;--accent-strong:#e88a6c;--accent-glow:#d977572e;--blue:#8fb4e8;--violet:#b9a6ef;--good:#6ee7b7;--mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;--container:1080px}*,:before,:after{box-sizing:border-box}body{background:var(--bg);color:var(--text);word-break:keep-all;overflow-wrap:anywhere;-webkit-font-smoothing:antialiased;flex-direction:column;min-height:100vh;margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Malgun Gothic,Noto Sans KR,Noto Sans CJK KR,sans-serif;font-size:16px;line-height:1.65;display:flex}main{flex:1}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.container{width:100%;max-width:var(--container);margin:0 auto;padding-inline:20px}.skip{background:var(--accent);color:#1a0c05;z-index:10;border-radius:6px;padding:6px 12px;font-weight:700;position:absolute;top:8px;left:-9999px}.skip:focus{left:8px}.site-header{border-bottom:1px solid var(--border);background:var(--bg);top:env(safe-area-inset-top,0px);z-index:5;position:sticky}.header-inner{align-items:center;gap:28px;min-height:60px;display:flex}.brand{white-space:nowrap;align-items:center;gap:8px;font-size:17px;font-weight:800;display:flex}.brand-mark{color:var(--accent);filter:drop-shadow(0 0 8px var(--accent-glow));font-size:20px}.nav-wide{color:var(--text-mute);gap:24px;font-size:15px;display:flex}.nav-wide a{white-space:nowrap;border-bottom:2px solid #0000;padding-block:4px}.nav-wide a:hover{color:var(--text)}.nav-wide a[aria-current=page]{color:var(--text);border-bottom-color:var(--accent)}.nav-side{align-items:center;gap:18px;margin-left:auto;display:flex}.course-link{color:var(--text-mute);white-space:nowrap;font-size:14px}.course-link:hover,.course-link[aria-current=page]{color:var(--text)}.login-btn{border:1px solid var(--border-strong);color:var(--text-soft);white-space:nowrap;border-radius:8px;padding:5px 12px;font-size:14px}.login-btn:hover,.login-btn[aria-current=page]{border-color:var(--accent);color:var(--text)}.pill{background:var(--accent);color:#1a0c05;vertical-align:1px;border-radius:99px;margin-left:6px;padding:0 8px;font-size:11.5px;font-weight:700;line-height:1.7;display:inline-block}.nav-phone{margin-left:auto;display:none}.nav-phone summary{cursor:pointer;border:1px solid var(--border-strong);width:40px;height:36px;color:var(--text-soft);border-radius:8px;place-items:center;font-size:18px;list-style:none;display:grid}.nav-phone summary::-webkit-details-marker{display:none}.nav-phone[open] summary{border-color:var(--accent);color:var(--text)}.nav-phone[open] summary span{font-size:0}.nav-phone[open] summary span:before{content:"✕";font-size:16px}.nav-phone[open]:after{content:"";z-index:-1;background:#0009;position:fixed;inset:61px 0 0}.sheet{background:var(--bg-alt);border-bottom:1px solid var(--border-strong);border-radius:0 0 16px 16px;padding:8px 20px 16px;display:grid;position:absolute;top:100%;left:0;right:0;box-shadow:0 16px 32px #00000073}.sheet a{border-bottom:1px solid var(--border);color:var(--text-soft);padding:14px 6px;font-size:17px;font-weight:600;display:block}.sheet a:last-child{border-bottom:0}.sheet a[aria-current=page]{color:var(--text);box-shadow:inset 3px 0 0 var(--accent);padding-left:14px}.sheet-sub{color:var(--text-mute)!important;font-size:15px!important;font-weight:400!important}.sheet a:has(+.sheet-sub):not(.sheet-sub){border-bottom:0}.sheet a:not(.sheet-sub)+.sheet-sub{border-top:1px solid var(--border-strong);margin-top:6px}@media (width<=720px){.nav-wide,.nav-wide-only{display:none}.nav-phone{display:block}}.site-footer{border-top:1px solid var(--border);margin-top:64px}.footer-inner{color:var(--text-mute);flex-wrap:wrap;gap:10px 22px;padding-block:22px 28px;font-size:13.5px;display:flex}.footer-inner a:hover{color:var(--text)}.mail{font-family:var(--mono);color:var(--text-soft);user-select:all;font-size:12.5px}.mail-link{text-underline-offset:2px;margin-left:4px;text-decoration:underline}.copy{margin-left:auto}@media (width<=720px){.copy{width:100%;margin-left:0}}.page{padding-block:48px 8px}.page-title{letter-spacing:-.03em;margin:0 0 8px;font-size:clamp(28px,4vw,36px);font-weight:800}.page-lead{color:var(--text-soft);max-width:40em;margin:0 0 28px}.page.narrow{max-width:720px}.page .text-link{color:var(--text-soft);text-underline-offset:3px;text-decoration:underline}.book-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.book-card{--c:var(--accent);--c-soft:#d97757a6;--c-bg:#2a1c16;border:1px solid var(--border-strong);background:var(--bg-card);border-radius:14px;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:18px;padding:18px;transition:border-color .15s,background .15s;display:grid;position:relative}.book-blue{--c:var(--blue);--c-soft:#8fb4e8a6;--c-bg:#16202c}.book-violet{--c:var(--violet);--c-soft:#b9a6efa6;--c-bg:#1f1a2e}.book-list>li:last-child:nth-child(odd){grid-column:1/-1}.book-card:hover,.book-card:focus-within{border-color:var(--c-soft);background:var(--bg-card-hover)}.book-cover{aspect-ratio:3/4;border:1px solid var(--border-strong);background:linear-gradient(160deg, var(--c-bg), var(--bg-card) 70%);box-shadow:inset 4px 0 0 var(--c-soft);text-align:center;letter-spacing:-.02em;border-radius:3px 7px 7px 3px;place-items:center;padding:8px 8px 8px 12px;font-size:13px;font-weight:900;line-height:1.25;display:grid}.book-track{color:var(--c);margin:0;font-size:13px;font-weight:700}.book-title{letter-spacing:-.02em;margin:2px 0 6px;font-size:21px;font-weight:800;line-height:1.3}.stretch:after{content:"";border-radius:inherit;position:absolute;inset:0}.book-sub{color:var(--text-soft);margin:0;font-size:14.5px}.book-resume{min-height:1.5em;margin:8px 0 0;font-size:13px}.book-resume a{z-index:1;color:var(--c);text-underline-offset:2px;text-decoration:underline;position:relative}@media (width<=480px){.book-card{grid-template-columns:72px minmax(0,1fr);gap:14px;padding:14px}.book-cover{font-size:10.5px}.book-title{font-size:18px}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.me-menu{position:relative}.me-menu summary{cursor:pointer;list-style:none}.me-menu summary::-webkit-details-marker{display:none}.me-menu[open] summary{border-color:var(--accent);color:var(--text)}.me-name{text-overflow:ellipsis;vertical-align:bottom;max-width:10em;display:inline-block;overflow:hidden}.me-sheet{background:var(--bg-alt);border:1px solid var(--border-strong);border-radius:10px;min-width:140px;padding:6px;display:grid;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 24px #0006}.me-sheet a{color:var(--text-soft);border-radius:6px;padding:8px 10px;font-size:14px}.me-sheet a:hover{background:var(--bg-card);color:var(--text)}.lock-note{border:1px dashed var(--border-strong);color:var(--text-soft);border-radius:10px;margin:16px 0;padding:14px 16px;font-size:15px}[data-lock-static][hidden]{display:none}.zoom-frame{cursor:zoom-in;display:block;position:relative}.zoom-frame:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:8px}.zoom-tag{color:var(--text);border:1px solid var(--border-strong);pointer-events:none;background:#0b0d10d1;border-radius:6px;padding:2px 8px;font-size:12px;line-height:1.5;position:absolute;bottom:10px;right:10px}.zoom-box{z-index:50;padding:calc(env(safe-area-inset-top,0px) + 10px) 12px calc(env(safe-area-inset-bottom,0px) + 12px);background:#050608f0;grid-template-rows:auto 1fr;display:grid;position:fixed;inset:0}.zoom-box[hidden]{display:none}.zoom-bar{color:var(--text-soft);justify-content:space-between;align-items:center;gap:12px;padding-bottom:8px;font-size:14px;display:flex}.zoom-cap{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.zoom-close{font:inherit;background:var(--bg-card);color:var(--text);border:1px solid var(--border-strong);cursor:pointer;border-radius:8px;flex:none;padding:6px 14px;font-size:14px}.zoom-scroll{overscroll-behavior:contain;place-items:safe center;display:grid;overflow:auto}.zoom-scroll img{border-radius:6px;width:auto;max-width:none;height:auto}html.zoom-open{overflow:hidden}@font-face{font-family:D2Coding;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/d2coding-full.woff2)format("woff2")}:root{--green:#7fd1b9;--code:"D2Coding", "Nanum Gothic Coding", ui-monospace, monospace}.crumb-line{min-width:0;color:var(--text-mute);align-items:center;gap:8px;padding-top:14px;font-size:13px;display:flex}.crumb-line a{white-space:nowrap}.crumb-line a:hover{color:var(--text);text-underline-offset:3px;text-decoration:underline}.crumb-line .sep{color:var(--border-strong)}.crumb-line .here{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--text-soft);overflow:hidden}.reading{--tone:var(--green);max-width:720px;padding-block:24px 8px}.reading.tone-guide{--tone:var(--blue)}.reading-head{gap:6px;margin-bottom:28px;display:grid}.kw-line{color:var(--tone);margin:0;font-size:13.5px;font-weight:700}.tag-reads{color:var(--green);font-size:13.5px;font-weight:700}p.tag-reads{margin:0}.reading-meta{font:12.5px var(--mono);color:var(--text-mute);margin:0}.reading-title{letter-spacing:-.035em;text-wrap:balance;margin:0;font-size:clamp(28px,5vw,38px);font-weight:900;line-height:1.25}.reading-dek{color:var(--text-soft);margin:4px 0 0;font-size:16px;line-height:1.7}.on-this-page{margin:0 0 26px;font-size:14.5px}.on-this-page summary{cursor:pointer;border:1px solid var(--border-strong);color:var(--text);border-radius:10px;align-items:center;gap:8px;padding:10px 14px;font-weight:700;list-style:none;display:flex}.on-this-page summary::-webkit-details-marker{display:none}.on-this-page .otp-count{font:12px var(--mono);color:var(--text-mute);font-weight:400}.on-this-page summary [aria-hidden]{color:var(--text-mute);margin-left:auto}.on-this-page details[open] summary{border-bottom-color:var(--border);border-radius:10px 10px 0 0}.on-this-page ol{border:1px solid var(--border-strong);border-top:0;border-radius:0 0 10px 10px;gap:2px;margin:0;padding:8px 14px 10px 36px;line-height:1.5;display:grid}.on-this-page ol.plain{padding-left:14px;list-style:none}.on-this-page li::marker{color:var(--text-mute);font-size:12.5px}.on-this-page a{color:var(--text-soft);padding:4px 0;display:block}.on-this-page a:hover{color:var(--tone);text-underline-offset:3px;text-decoration:underline}.prose h2[id]{scroll-margin-top:80px}.byline{color:var(--text-mute);margin:6px 0 0;font-size:13.5px}.byline a{color:var(--text-soft);text-underline-offset:3px;text-decoration:underline}.prose{color:var(--text-soft);font-size:17px;line-height:1.85}.prose>*{margin-block:0}.prose>*+*{margin-top:1.1em}.prose h2{color:var(--text);letter-spacing:-.02em;margin-top:2em;font-size:23px;line-height:1.35}.prose h3{color:var(--text);margin-top:1.6em;font-size:19px}.prose strong{color:var(--text)}.prose a{color:var(--tone);text-underline-offset:3px;text-decoration:underline}.prose blockquote{border-left:3px solid var(--border-strong);color:var(--text-mute);margin-inline:0;padding:4px 0 4px 16px}.prose code{font-family:var(--code);background:var(--bg-alt);border:1px solid var(--border);border-radius:5px;padding:1px 5px;font-size:.9em}.prose pre{font-family:var(--code);border:1px solid var(--border);border-radius:10px;padding:14px 16px;font-size:14px;line-height:1.5;overflow-x:auto;background:var(--bg-alt)!important}.prose pre code{background:0 0;border:0;padding:0}.prose img{border-radius:10px}.prose .chapter-download a{border:1px solid var(--border-strong);background:var(--bg-alt);border-radius:10px;padding:12px 18px;font-weight:700;text-decoration:none;display:inline-block}.prose .chapter-download span{color:var(--text-mute);margin-left:6px;font-size:.9em;font-weight:400}.prose .chapter-video{background:#000;border-radius:12px;width:100%;max-width:360px;margin:1.5em auto;display:block}.prose hr{border:0;border-top:1px solid var(--border);margin-block:2em}.prose .table-wrap{border:1px solid var(--border-strong);-webkit-overflow-scrolling:touch;border-radius:10px;overflow-x:auto}.prose table{border-collapse:collapse;width:100%;font-size:15px;line-height:1.6}.prose th,.prose td{border-bottom:1px solid var(--border);text-align:left;padding:10px 14px}.prose thead th{background:var(--bg-card);color:var(--text-mute);letter-spacing:.02em;white-space:nowrap;font-size:13px;font-weight:700}.prose tbody tr:last-child td{border-bottom:0}.prose td:first-child{color:var(--text)}.reading-end{border-top:1px solid var(--border);gap:16px;margin-top:48px;padding-top:24px;display:grid}.end-title{letter-spacing:.06em;color:var(--text-mute);margin:0 0 4px;font-size:12.5px;font-weight:700}.try-box,.rel-box,.src-box{gap:8px;display:grid}.src-box a{border:1px solid var(--border);color:var(--text-soft);background:var(--bg-card);border-radius:10px;justify-content:space-between;gap:12px;padding:11px 14px;display:flex}.src-box a:hover{border-color:var(--border-strong);color:var(--text)}.src-box a span{font:12px var(--mono);color:var(--text-mute);white-space:nowrap}@media (width<=560px){.src-box a{flex-direction:column;gap:2px}}.try-box a,.rel-box a{border:1px solid var(--border);color:var(--text-soft);background:var(--bg-card);border-radius:10px;justify-content:space-between;gap:12px;padding:11px 14px;display:flex}.try-box a:hover,.rel-box a:hover{border-color:var(--border-strong);color:var(--text)}.rel-box a span{font:12px var(--mono);color:var(--text-mute);white-space:nowrap}.try-box{border:1px solid #7fd1b966;border-radius:12px;padding:14px}.course-note{border:1px solid var(--border-strong);background:var(--bg-alt);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;padding:16px 18px;display:flex}.course-note-kicker{color:var(--text-mute);margin:0;font-size:12.5px}.course-note-text{color:var(--text);margin:2px 0 0;font-weight:600}.ghost-btn{border:1px solid var(--border-strong);color:var(--text-soft);white-space:nowrap;border-radius:8px;padding:7px 14px;font-size:14px;display:inline-block}.ghost-btn:hover{border-color:var(--accent);color:var(--text)}.text-link{color:var(--text-soft);text-underline-offset:3px;font-size:14px;text-decoration:underline}.deeper{background:var(--bg-card);color:var(--text);border:1px solid #8fb4e873;border-radius:12px;gap:2px;padding:12px 16px;font-weight:600;display:grid}.deeper .end-title{margin:0}.lock-box{border:1px dashed var(--border-strong);border-radius:12px;gap:12px;padding:16px 18px;display:grid}.lock-box p{color:var(--text-soft);margin:0}.lock-box b{color:var(--text)}.lock-acts{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.ask-line{border-top:1px solid var(--border);color:var(--text-soft);margin:0;padding-top:14px;font-size:15px}.ask-line a{color:var(--accent-strong);text-underline-offset:3px;margin-left:6px;text-decoration:underline}.ad-slot{min-height:280px}.draft-mark{border:1px dashed var(--accent);color:var(--accent-strong);vertical-align:2px;border-radius:99px;margin-left:8px;padding:0 7px;font-size:11px;font-weight:700;line-height:1.7;display:inline-block}.empty-note{color:var(--text-mute);border:1px dashed var(--border-strong);text-align:center;border-radius:12px;padding:28px}.text-card{--c:var(--green);--c-soft:#7fd1b959;--c-glow:#7fd1b929;aspect-ratio:16/9;border:1px solid var(--c-soft);background:radial-gradient(120% 120% at 0 0, var(--c-glow), transparent 60%), var(--bg-card);border-radius:12px;align-content:space-between;gap:10px;padding:18px 20px;display:grid}.text-card.tone-guide{--c:var(--blue);--c-soft:#8fb4e859;--c-glow:#8fb4e829}.text-card-top{color:var(--text-mute);font-size:12px}.text-card-title{letter-spacing:-.03em;color:var(--text);text-wrap:balance;font-size:clamp(18px,2.6vw,24px);font-weight:900;line-height:1.3}.text-card.small{border-radius:8px;align-content:center;gap:4px;padding:8px 10px}.text-card.small .text-card-top{display:none}.text-card.small .text-card-title{-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:11px;line-height:1.3;display:-webkit-box;overflow:hidden}.read-feature{border:1px solid var(--border-strong);background:var(--bg-card);border-radius:16px;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;gap:24px;padding:18px;display:grid}.read-feature:hover{border-color:#7fd1b973}.read-feature h2{letter-spacing:-.03em;margin:6px 0 8px;font-size:clamp(21px,3vw,27px);line-height:1.3}.read-feature p{color:var(--text-soft);margin:0}.read-meta{font:12.5px var(--mono);color:var(--text-mute)}.read-list{margin:20px 0 0;padding:0;list-style:none;display:grid}.read-list a{border-bottom:1px solid var(--border);grid-template-columns:112px minmax(0,1fr);align-items:center;gap:16px;padding:14px 4px;display:grid}.read-list a:hover .read-list-title{color:var(--text);text-underline-offset:3px;text-decoration:underline}.read-list-body{gap:2px;display:grid}.read-list-title{color:var(--text-soft);font-size:16.5px;font-weight:700;line-height:1.4}.read-list.plain a{grid-template-columns:minmax(0,1fr) auto}@media (width<=640px){.read-feature{grid-template-columns:1fr;gap:14px;padding:14px}.read-list a{grid-template-columns:84px minmax(0,1fr);gap:12px}}.guide-groups{gap:28px;display:grid}.guide-group h2{color:var(--text-soft);justify-content:space-between;align-items:baseline;margin:0 0 8px;font-size:15px;display:flex}.guide-group h2 span{font:12px var(--mono);color:var(--text-mute);font-weight:400}.guide-group ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.guide-item{border:1px solid var(--border);background:var(--bg-card);color:var(--text-soft);border-radius:10px;justify-content:space-between;gap:12px;padding:12px 14px;display:flex}.guide-item:hover{color:var(--text);border-color:#8fb4e873}.guide-item.locked{background:0 0;border-style:dashed}.guide-track{color:var(--text-mute)}.guide-min{font:12px var(--mono);color:var(--text-mute);white-space:nowrap}.about{max-width:720px}.about-facts{color:var(--text-soft);gap:6px;margin:0 0 32px;padding-left:20px;display:grid}.about-reads{margin-bottom:32px}.about-contact{color:var(--text-mute);font-size:14px}.prose p:has(>img){text-align:center}.prose p:has(>img) img{width:100%;height:auto;display:block}.prose p:has(>img) em{color:var(--text-mute);margin-top:8px;font-size:13px;font-style:normal;display:block}.prose table{overflow-wrap:normal;word-break:keep-all}.prose th,.prose td{vertical-align:top}@media (width<=560px){.prose{font-size:16px;line-height:1.8}.prose h2{font-size:21px}.prose table{font-size:14px}.prose th,.prose td{padding:8px 10px}.prose table{width:max-content;min-width:100%}.prose td{min-width:5.5em;max-width:11em}.prose pre{padding:12px;font-size:12.5px}.reading-title{font-size:27px}}.prose p.fig{text-align:center;margin-block:1.4em}.prose p.fig picture{display:block}.prose p.fig img{border:1px solid var(--border);background:var(--bg);border-radius:12px;width:100%;height:auto;display:block}.prose p.fig em{color:var(--text-mute);margin-top:8px;font-size:13px;font-style:normal;display:block}.tone-automation{--tone:var(--accent)}.tone-web-app{--tone:var(--blue)}.tone-monthly{--tone:var(--violet)}.book-home{gap:20px;max-width:860px;padding-block:40px 8px;display:grid}.book-hero{--c:var(--accent);--c-soft:#d97757a6;--c-bg:#2a1c16;border:1px solid var(--border-strong);background:radial-gradient(circle at 0 0, color-mix(in srgb, var(--c) 14%, transparent), transparent 60%), var(--bg-card);border-radius:16px;grid-template-columns:120px minmax(0,1fr);align-items:center;gap:24px;padding:22px;display:grid}.book-hero.book-blue{--c:var(--blue);--c-soft:#8fb4e8a6;--c-bg:#16202c}.book-hero.book-violet{--c:var(--violet);--c-soft:#b9a6efa6;--c-bg:#1f1a2e}.book-hero h1{letter-spacing:-.035em;margin:2px 0 6px;font-size:clamp(26px,4.4vw,36px);font-weight:900;line-height:1.2}.book-cover.big{font-size:16px}.read-meter{gap:6px;margin-top:14px;display:grid}.read-meter-bar{background:var(--border);border-radius:99px;height:6px;overflow:hidden}.read-meter-bar i{background:var(--c);height:100%;transition:width .3s;display:block}.read-meter-text{color:var(--text-mute);font-size:13px}.read-meter-text b{color:var(--text)}.resume-card{border:1px solid color-mix(in srgb, var(--tone) 50%, transparent);background:var(--bg-card);border-radius:12px;gap:2px;padding:14px 18px;display:grid}.resume-card:hover{background:var(--bg-card-hover)}.resume-kicker{color:var(--text-mute);font-size:12.5px}.resume-title{font-weight:700}.parts{gap:16px;display:grid}.part{border:1px solid var(--border);border-radius:12px;overflow:hidden}.part-head{background:var(--bg-card);justify-content:space-between;align-items:baseline;gap:12px;margin:0;padding:10px 16px;font-size:15px;display:flex}.part-head span{font:12px var(--mono);color:var(--text-mute);white-space:nowrap;font-weight:400}.chapter-list{margin:0;padding:0;list-style:none}.ch{border-top:1px solid var(--border)}.ch-row{color:var(--text-soft);grid-template-columns:30px minmax(0,1fr) auto;align-items:baseline;gap:10px;padding:10px 16px;display:grid}a.ch-row:hover{background:var(--bg-card-hover);color:var(--text)}.ch-row em{font:normal 12px var(--mono);color:var(--text-mute)}.ch-note{font:12px var(--mono);color:var(--text-mute);white-space:nowrap}.ch-done{color:var(--good)}.ch-locked .ch-row,.ch-soon .ch-row{color:var(--text-mute)}.ch-soon .ch-note{font-family:inherit}.locked-note{color:var(--text-mute);margin:0;font-size:14px}@media (width<=560px){.book-hero{grid-template-columns:80px minmax(0,1fr);gap:16px;padding:16px}.ch-row{grid-template-columns:26px minmax(0,1fr)}.ch-note{grid-column:2}}.read-progress{top:calc(env(safe-area-inset-top,0px) + 61px);z-index:4;background:var(--border);height:3px;position:sticky}.read-progress i{background:var(--accent);width:0;height:100%;display:block}.toc{margin-bottom:18px;font-size:14px}.toc summary{cursor:pointer;border:1px solid var(--border-strong);color:var(--text-soft);border-radius:8px;padding:4px 12px;list-style:none;display:inline-block}.toc summary::-webkit-details-marker{display:none}.toc[open] summary{border-color:var(--tone);color:var(--text)}.toc ol{border:1px solid var(--border-strong);background:var(--bg-alt);border-radius:12px;max-height:60vh;margin:10px 0 0;padding:8px;list-style:none;display:grid;overflow-y:auto}.toc li a,.toc li span{color:var(--text-soft);border-radius:6px;gap:8px;padding:6px 8px;display:flex}.toc li a:hover{background:var(--bg-card-hover);color:var(--text)}.toc li a[aria-current=page]{background:var(--bg-card-hover);box-shadow:inset 3px 0 0 var(--tone);color:var(--text)}.toc li em{font:normal 12px var(--mono);color:var(--text-mute);flex:none;width:22px;padding-top:2px}.toc-locked a,.toc-soon span{color:var(--text-mute)!important}.book-mini{border:1px solid var(--border-strong);background:var(--bg-card);border-radius:12px;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:12px;min-height:64px;margin:0 0 28px;padding:10px 14px;display:grid}.book-mini:hover{background:var(--bg-card-hover)}.book-cover.small{padding:3px 3px 3px 6px;font-size:6px}.book-mini-body{gap:2px;min-width:0;display:grid}.book-mini-body b{font-size:14px}.book-mini-body small{color:var(--text-mute);font-size:12.5px}.book-mini .book-cover{--c-soft:#d97757a6;--c-bg:#2a1c16}.book-mini.book-blue .book-cover{--c-soft:#8fb4e8a6;--c-bg:#16202c}.book-mini.book-violet .book-cover{--c-soft:#b9a6efa6;--c-bg:#1f1a2e}.next-card{border:1px solid color-mix(in srgb, var(--tone) 50%, transparent);background:var(--bg-card);color:var(--text);border-radius:12px;gap:2px;padding:12px 16px;font-weight:600;display:grid}.next-card:hover{background:var(--bg-card-hover)}.next-card .end-title{margin:0}.lock-page{margin-bottom:24px}.reading .prose blockquote{border:1px solid var(--border-strong);border-left:3px solid var(--tone);background:var(--bg-alt);color:var(--text-soft);border-radius:0 10px 10px 0;padding:14px 18px}.reading .prose blockquote>*{margin:0}.reading .prose blockquote>*+*{margin-top:.6em}.prose h2[id^=s]{scroll-margin-top:80px}.lib-page{max-width:920px}.lib-table-wrap{overflow-x:auto}.lib-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:14.5px}.lib-table th{color:var(--text-mute);text-align:left;border-top:2px solid var(--border-strong);border-bottom:1px solid var(--border-strong);white-space:nowrap;padding:9px 10px;font-size:12.5px;font-weight:600}.lib-table td{border-bottom:1px solid var(--border);color:var(--text-soft);vertical-align:middle;padding:12px 10px}.lib-table .c{text-align:center}.lib-table .no,.lib-table .dt,.lib-table .num{font-family:var(--mono);color:var(--text-mute);white-space:nowrap;font-size:13px}.lib-table .who{white-space:nowrap;font-size:13.5px}.lib-table .t a{color:var(--text);font-weight:600}.lib-table .t a:hover{color:var(--accent-strong);text-underline-offset:3px;text-decoration:underline}.lib-table tbody tr:hover{background:var(--bg-alt)}.lib-lock{color:var(--text-mute);white-space:nowrap;margin-left:8px;font-size:12px;font-weight:400}.lib-rows{border-top:2px solid var(--border-strong);margin:0;padding:0;list-style:none;display:none}.lib-rows li{border-bottom:1px solid var(--border)}.lib-rows a{gap:4px;padding:13px 2px;display:grid}.lib-rows b{color:var(--text);font-size:16px;font-weight:600;line-height:1.4}.lib-rows small{color:var(--text-mute);flex-wrap:wrap;gap:4px 12px;font-size:12.5px;display:flex}@media (width<=640px){.lib-table-wrap{display:none}.lib-rows{display:block}}.lib-pages{font-family:var(--mono);justify-content:center;gap:4px;margin-top:22px;font-size:13.5px;display:flex}.lib-pages a{text-align:center;min-width:32px;color:var(--text-mute);border:1px solid #0000;border-radius:7px;padding:4px 8px}.lib-pages a[aria-current=page]{color:var(--text);border-color:var(--border-strong);background:var(--bg-card)}.lib-pages a:hover{color:var(--text)}.lib-post-head{border-bottom:1px solid var(--border-strong);margin-bottom:18px;padding-bottom:14px}.lib-meta{color:var(--text-mute);flex-wrap:wrap;align-items:center;gap:6px 14px;margin:0;font-size:13.5px;display:flex}.lib-badge{border:1px solid var(--border-strong);color:var(--text-mute);border-radius:99px;padding:1px 9px;font-size:12px;font-weight:700}.lib-badge.free{color:var(--good);border-color:#6ee7b773}.lib-body p{color:var(--text-soft);margin:0 0 10px}.lib-body strong{color:var(--text)}.lib-h{align-items:baseline;gap:8px;margin:30px 0 10px;font-size:17px;font-weight:800;display:flex}.lib-h small{color:var(--text-mute);font-size:13px;font-weight:400}.lib-files{border:1px solid var(--border-strong);background:var(--bg-card);border-radius:12px;margin:0;padding:0;list-style:none;overflow:hidden}.lib-file{border-top:1px solid var(--border);grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;display:grid}.lib-file:first-child{border-top:0}.lib-file b{font-size:15px;line-height:1.35;display:block}.lib-file small{color:var(--text-mute);font-size:13px;line-height:1.45;display:block}.lib-ext{height:44px;font:700 11px/1 var(--mono);letter-spacing:.04em;border:1px solid var(--border-strong);background:var(--bg-alt);color:var(--text-soft);border-radius:8px;place-items:center;display:grid}.lib-ext.pdf{color:var(--accent-strong);border-color:#d9775773}.lib-ext.md{color:var(--blue);border-color:#8fb4e866}.lib-get{font:inherit;cursor:pointer;white-space:nowrap;border:1px solid var(--good);color:var(--good);background:0 0;border-radius:8px;padding:6px 14px;font-size:13.5px;font-weight:700}.lib-get:hover{background:#6ee7b714}.lib-get.locked{border-color:var(--border-strong);color:var(--text-mute);font-weight:400}.lib-get.locked:hover{background:var(--bg-alt)}.lib-get:disabled{opacity:.6;cursor:progress}.lib-msg{color:var(--accent-strong);margin:10px 0 0;font-size:13.5px}@media (width<=480px){.lib-file{grid-template-columns:38px minmax(0,1fr) auto;gap:10px;padding:11px 12px}.lib-ext{height:38px}}.lib-cta{background:radial-gradient(120% 140% at 0 0, #d9775721, transparent 60%), var(--bg-card);border:1px solid #d9775780;border-radius:12px;gap:8px;margin-top:18px;padding:16px 18px;display:grid}.lib-cta b{font-size:16px}.lib-cta p{color:var(--text-soft);margin:0;font-size:14px}.lib-cta-btns{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.cta-btn{background:var(--accent);color:#1a0c05;white-space:nowrap;border-radius:8px;padding:7px 14px;font-size:14px;font-weight:700;display:inline-block}.cta-btn:hover{background:var(--accent-strong)}.lib-video{color:var(--text-mute);margin:14px 0 0;font-size:13.5px}.lib-chapters{gap:6px;margin:0;padding:0;list-style:none;display:grid}.lib-chapters a{border:1px solid var(--border);color:var(--text-soft);border-radius:9px;grid-template-columns:44px minmax(0,1fr) auto;align-items:baseline;gap:10px;padding:9px 12px;font-size:14.5px;display:grid}.lib-chapters a:hover{border-color:var(--border-strong);color:var(--text);background:var(--bg-alt)}.lib-chapters .no{font-family:var(--mono);color:var(--text-mute);font-size:12.5px}.lib-near{border-top:1px solid var(--border);color:var(--text-soft);grid-template-columns:1fr 1fr;gap:12px;margin-top:32px;padding-top:14px;font-size:14px;display:grid}.lib-near>:last-child{text-align:right}.lib-near small{color:var(--text-mute);font-size:12px;display:block}.lib-near a:hover{color:var(--text)}.board-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.board-head .page-title{margin:0}.board-note{color:var(--text-mute);margin:8px 0;font-size:14px}.board-empty{border-top:2px solid var(--border-strong);color:var(--text-soft);justify-items:start;gap:12px;padding:28px 0;display:grid}.board-empty p{margin:0}.board-ans{font-family:var(--mono);color:var(--text-mute);font-size:13px;font-weight:700}.board-ans.got{color:var(--good)}.board-body{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text-soft);font-size:18px;line-height:1.8}.board-notice-body{white-space:normal}.board-notice-body p{margin:0 0 14px}.board-notice-body h2{color:var(--text);margin:26px 0 8px;font-size:19px;font-weight:800}.board-notice-body ul{gap:6px;margin:0 0 6px;padding-left:22px;display:grid}.board-notice{color:var(--accent-strong);vertical-align:2px;white-space:nowrap;border:1px solid #d977578c;border-radius:99px;margin-right:6px;padding:0 8px;font-size:12px;font-weight:700;line-height:1.6;display:inline-block}.lib-table tr.board-pinned{background:var(--bg-alt)}.board-tools{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.board-tools button.ghost-btn{font:inherit;cursor:pointer;background:0 0;font-size:14px}.board-confirm{color:var(--text-soft);flex-wrap:wrap;align-items:center;gap:8px;font-size:14px;display:inline-flex}.board-danger{font:inherit;cursor:pointer;color:#f19a9a;background:0 0;border:1px solid #e06c6c;border-radius:8px;padding:6px 12px;font-size:14px;font-weight:700}.board-danger:hover{background:#e06c6c1a}.board-answers{gap:10px;margin:0;padding:0;list-style:none;display:grid}.board-answer{border:1px solid var(--border);background:var(--bg-card);border-radius:12px;padding:12px 14px}.board-answer .lib-meta b{color:var(--text);font-weight:700}.board-answer .board-body{margin-top:6px;font-size:17px}.board-form{gap:8px;display:grid}.board-form label{color:var(--text);font-size:14px;font-weight:700}.board-form input,.board-form textarea{width:100%;font:inherit;color:var(--text);background:var(--bg-card);border:1px solid var(--border-strong);border-radius:10px;padding:10px 12px;font-size:17px;line-height:1.6}.board-form textarea{resize:vertical;min-height:110px}.board-form input:focus,.board-form textarea:focus{border-color:var(--accent);outline:none}.board-form button.cta-btn{font:inherit;cursor:pointer;border:0;font-size:14px;font-weight:700}.board-form button:disabled{opacity:.55;cursor:default}.board-gate .board-tools{margin:0 0 12px}html[data-auth=in] [data-auth=out],html:not([data-auth=in]) [data-auth=in]{display:none!important}
