*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #f2f1ec;--color-surface: #f8f7f4;--color-border: #e2dfd8;--color-text: #1a1914;--color-muted: #7a7468;--color-accent: #4d6e58;--color-accent-hover: #3d5e48;--color-tag-bg: #e6e3dd;--color-tag-text: #383428;--color-code-bg: #eae8e2;--color-pre-bg: #1e1e2e;--color-pre-text: #cdd6f4;--font-sans: system-ui, -apple-system, "PingFang TC", "Microsoft JhengHei", sans-serif;--font-serif: "Noto Serif TC", "Georgia", "Source Han Serif TC", "新細明體", "PMingLiU", serif;--font-mono: "Fira Code", "Cascadia Code", "Consolas", monospace;--nav-w: 205px;--toc-w: 190px;--book-topbar-h: 42px;--transition-color: color .2s ease, background-color .2s ease, border-color .2s ease}html[data-theme=dark]{--color-bg: #1a1714;--color-surface: #221e1a;--color-border: #3a342c;--color-text: #ddd0bb;--color-muted: #8a7e6e;--color-accent: #d4a96a;--color-accent-hover: #e0b97a;--color-tag-bg: #2e2820;--color-tag-text: #c4b49a;--color-code-bg: #2e2820}html[data-layout=book]:not([data-theme=dark]){--color-bg: #f7f5f1;--color-surface: #fbfaf8;--color-border: #e0dcd4;--color-text: #1e1c18;--color-muted: #8a8070;--color-accent: #4a6280;--color-accent-hover: #3a5270;--color-tag-bg: #edeae4;--color-tag-text: #4a4238}html[data-layout=book][data-theme=dark]{--color-bg: #141210;--color-surface: #1c1a16;--color-border: #2e2a24;--color-text: #e0dbd0;--color-muted: #7a7060;--color-accent: #c8924a;--color-accent-hover: #d8a25a;--color-tag-bg: #252018;--color-tag-text: #c0b09a}html{font-size:16px}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);line-height:1.75;min-height:100vh;transition:var(--transition-color)}a{color:var(--color-accent);text-decoration:none}a:hover{color:var(--color-accent-hover);text-decoration:underline}.shell{display:grid;grid-template-columns:var(--nav-w) 1fr var(--toc-w);min-height:100vh;align-items:start}.nav-rail{position:sticky;top:0;height:100vh;overflow-y:auto;overflow-x:hidden;border-right:1px solid var(--color-border);background:var(--color-surface);display:flex;flex-direction:column;padding:2.5rem 1.75rem 2rem;transition:var(--transition-color)}.nav-brand{margin-bottom:2.25rem}.nav-brand__name{font-size:1.1rem;font-weight:700;color:var(--color-text);letter-spacing:.02em;display:block;text-decoration:none;line-height:1.2}.nav-brand__name:hover{color:var(--color-accent);text-decoration:none}.nav-brand__slogan{font-size:.7rem;color:var(--color-accent);margin-top:.3rem;letter-spacing:.06em;opacity:.8}.nav-links{list-style:none;display:flex;flex-direction:column;gap:.25rem}.nav-links a{font-size:.875rem;color:var(--color-muted);display:block;padding:.4rem .6rem;border-radius:5px;transition:var(--transition-color);text-decoration:none}.nav-links a:hover{color:var(--color-text);background:var(--color-border);text-decoration:none}.nav-links a.cur{color:var(--color-text);background:var(--color-border);font-weight:500}.nav-foot{margin-top:auto;padding-top:1.25rem;border-top:1px solid var(--color-border)}.nav-copy{font-size:.62rem;color:var(--color-muted)}main.content{min-width:0;padding:2.5rem 3rem 4rem;transition:var(--transition-color)}.right-col{position:sticky;top:0;height:100vh;overflow-y:auto;border-left:1px solid var(--color-border);padding:2.5rem 1.25rem;transition:var(--transition-color)}.right-col--empty{visibility:hidden}.fixed-ctrl{position:fixed;bottom:1.75rem;right:1.5rem;z-index:200;display:flex;flex-direction:column;align-items:flex-end;gap:.4rem}.fixed-ctrl-btn{display:flex;align-items:center;gap:.32rem;padding:.32rem .65rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;cursor:pointer;font-size:.75rem;color:var(--color-muted);transition:var(--transition-color);line-height:1}.fixed-ctrl-btn:hover{border-color:var(--color-muted);color:var(--color-text)}.fixed-ctrl-btn.book-on{color:var(--color-accent);border-color:var(--color-accent)}.ctrl-dot{width:9px;height:9px;border-radius:50%;display:block;flex-shrink:0}.ctrl-dot--l{background:#4d6e58}.ctrl-dot--d{background:#d4a96a}.book-topbar{display:none;position:fixed;top:0;left:0;right:0;height:var(--book-topbar-h);background:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:50;padding:0 2rem;align-items:center;gap:1rem;transition:var(--transition-color)}html[data-layout=book] .book-topbar{display:flex}.book-topbar__name{font-size:.95rem;font-weight:700;color:var(--color-text);text-decoration:none}.book-topbar__name:hover{color:var(--color-accent);text-decoration:none}.book-topbar__sub{font-size:.7rem;color:var(--color-muted);letter-spacing:.04em}.tag{display:inline-block;font-family:var(--font-sans);font-size:.75rem;font-weight:500;padding:.15em .6em;border-radius:4px;background:var(--color-tag-bg);color:var(--color-tag-text);text-decoration:none!important;transition:var(--transition-color)}.tag:hover{opacity:.75}.text-muted{color:var(--color-muted)}.text-sm{font-size:.875rem}.prose{font-family:var(--font-serif);font-size:1.05rem;line-height:1.9}.prose h1,.prose h2,.prose h3,.prose h4{font-family:var(--font-sans);font-weight:600;line-height:1.3;margin-top:2.2em;margin-bottom:.6em;color:var(--color-text)}.prose h1{font-size:1.75rem}.prose h2{font-size:1.3rem;border-bottom:1px solid var(--color-border);padding-bottom:.3em}.prose h3{font-size:1.1rem}.prose p{margin-bottom:1.4em}.prose ul,.prose ol{margin:0 0 1.4em 1.5em}.prose li{margin-bottom:.4em;line-height:1.85}.prose blockquote{border-left:2px solid var(--color-accent);padding-left:1.2em;color:var(--color-muted);margin:1.75em 0;font-style:italic}.prose code{font-family:var(--font-mono);font-size:.85em;background:var(--color-code-bg);color:var(--color-text);padding:.1em .35em;border-radius:3px}.prose pre{background:var(--color-pre-bg);color:var(--color-pre-text);padding:1.25em;border-radius:6px;overflow-x:auto;margin:1.75em 0}.prose pre code{background:none;color:inherit;padding:0;font-size:.875rem}.prose img{max-width:100%;border-radius:6px;display:block}.prose .image-link{display:block;margin:1.25em 0;text-decoration:none;border:none;cursor:zoom-in}.prose .image-link img{margin:0;transition:opacity .2s ease}.prose .image-link:hover img{opacity:.88}.prose table{width:100%;border-collapse:collapse;margin:1.75em 0;font-family:var(--font-sans);font-size:.9rem}.prose th,.prose td{padding:.5em .75em;border:1px solid var(--color-border)}.prose th{background:var(--color-surface);font-weight:600}.prose hr{border:none;border-top:1px solid var(--color-border);margin:2.5em 0}.prose a{word-break:break-word}html[data-layout=book] .shell{display:block}html[data-layout=book] .nav-rail,html[data-layout=book] .right-col{display:none}html[data-layout=book] main.content{max-width:clamp(640px,50vw,900px);margin:0 auto;padding:calc(var(--book-topbar-h) + 2rem) 2rem 4rem}html[data-layout=book] .article-header{text-align:center;border-bottom:none;padding-bottom:0;margin-bottom:2.5rem}html[data-layout=book] .article-breadcrumb{justify-content:center}html[data-layout=book] .article-title{font-family:var(--font-serif);font-weight:400;font-size:2.3rem;letter-spacing:.05em;line-height:1.35}html[data-layout=book] .article-meta{justify-content:center}html[data-layout=book] .prose{font-size:1.05rem;line-height:2.05;text-align:justify;text-justify:inter-character}html[data-layout=book] .prose p{text-indent:2em;margin-bottom:0}html[data-layout=book] .prose h1{font-family:var(--font-serif);font-weight:500;text-align:center;letter-spacing:.06em}html[data-layout=book] .prose h2{font-family:var(--font-serif);font-weight:500;border-bottom:none;padding-bottom:0;letter-spacing:.04em;margin-top:3em}html[data-layout=book] .prose hr{border:none;border-top:1px solid var(--color-border);width:4rem;margin:3em auto}html[data-layout=book] .prose blockquote{border-left:1px solid var(--color-accent);padding:.25em 0 .25em 1.75em;margin:2em 0 2em 1em}@media(min-width:720px){html[data-layout=book] .article-body{padding:0 2rem;border-left:1px solid var(--color-border);border-right:1px solid var(--color-border)}}html[data-layout=book] .comments-section{text-align:center;padding:2rem 2.5rem 1.5rem}html[data-layout=book] .comments-heading{letter-spacing:.14em;color:var(--color-accent);margin-bottom:1.5rem}@media(max-width:960px){.shell{display:block}.nav-rail{position:sticky;top:0;height:auto;flex-direction:row;align-items:center;padding:0 1.25rem;height:48px;overflow:visible;border-right:none;border-bottom:1px solid var(--color-border);z-index:10}.nav-brand{margin-bottom:0;margin-right:1rem}.nav-brand__slogan{display:none}.nav-links{flex-direction:row;gap:0}.nav-links a{padding:.3rem .45rem}.nav-links a.cur{background:transparent;font-weight:600}.nav-foot,.right-col{display:none}main.content{padding:1.5rem 1rem 3rem}.fixed-ctrl{bottom:1rem;right:1rem}}@media(max-width:600px){html[data-layout=book] .article-title{font-size:1.75rem}}
