.book-shell{background:var(--color-bg);color:var(--color-text);min-height:100vh}.book-hero{max-width:960px;min-height:0;padding:clamp(48px, 6vw, 72px) var(--page-gutter) clamp(52px, 6vw, 76px);align-items:center;margin:0 auto}.book-hero-copy{max-width:720px}.book-hero-copy h1{font-family:var(--font-display);font-size:var(--text-page-title);letter-spacing:var(--tracking-title);text-wrap:pretty;max-width:720px;margin:0;font-weight:650;line-height:1.3}.book-deck{color:var(--color-text-soft);font-size:var(--text-base);max-width:620px;margin:18px 0 0;line-height:1.8}.book-actions{flex-wrap:wrap;align-items:stretch;gap:10px;margin-top:26px;display:flex}.book-action{border:1px solid var(--color-line-strong);border-radius:var(--radius-control);justify-content:center;align-items:center;gap:10px;min-height:46px;padding:10px 17px;font-size:14px;font-weight:600;transition:background-color .18s,border-color .18s,color .18s;display:inline-flex}.book-action svg{flex:none;width:15px;height:15px}.book-action-primary{background:var(--color-text);border-color:var(--color-text);color:var(--color-bg);flex:0 260px;min-width:220px}.book-action-primary>span{text-align:left;flex:1;gap:2px;min-width:0;display:grid}.book-action-primary small{opacity:.72;text-overflow:ellipsis;white-space:nowrap;max-width:160px;font-size:11px;font-weight:500;overflow:hidden}.book-action-primary:hover{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.book-action-secondary:hover{background:var(--color-surface);border-color:var(--color-text)}.book-contents{max-width:960px;padding:clamp(48px, 6vw, 68px) var(--page-gutter) 104px;scroll-margin-top:var(--header-height);margin:0 auto;position:relative}.book-contents:before{border-top:1px solid var(--color-line-strong);content:"";left:var(--page-gutter);right:var(--page-gutter);position:absolute;top:0}.book-contents-heading{margin-bottom:28px}.book-contents-heading h2{font-family:var(--font-display);letter-spacing:var(--tracking-title);margin:0;font-size:clamp(22px,1vw + 16px,28px);font-weight:650;line-height:1.3}.book-contents-heading>p{color:var(--color-muted);font-size:var(--text-base);margin-top:10px;line-height:1.7}.book-opening{border-top:1px solid var(--color-line-strong);grid-template-columns:minmax(0,1fr);gap:8px;padding:22px 0 40px;display:grid}.book-opening-label{align-items:baseline;gap:12px;padding-left:10px;display:flex}.book-opening .book-chapter-list{margin-left:74px}.book-opening-label span,.book-part-number{color:var(--color-accent);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.book-opening-label strong{font-size:var(--text-xl);font-weight:600}.book-section-list{border-bottom:1px solid var(--color-line-strong)}.chapter-return-anchor{height:0;scroll-margin-top:calc(var(--header-height) + 18px);display:block}.book-part{border-top:1px solid var(--color-line-strong)}.book-part summary{cursor:pointer;grid-template-columns:34px minmax(0,1fr) auto 18px;align-items:center;gap:18px;min-height:72px;padding:14px 10px;list-style:none;transition:background-color .18s,color .18s;display:grid}.book-part summary::-webkit-details-marker{display:none}.book-part summary>strong{font-size:clamp(18px,.6vw + 15px,20px);font-weight:600}.book-part summary>small{color:var(--color-muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.book-part summary>svg{color:var(--color-faint);height:17px;transition:color .18s ease, transform .28s var(--ease-out);width:17px}.book-part summary:hover{background:var(--color-surface-subtle);color:var(--color-accent)}.book-part[open] summary>svg{color:var(--color-accent);transform:rotate(180deg)}.book-part[open] summary{border-bottom:1px solid var(--color-line)}.book-part .book-chapter-list{margin-left:52px;padding-bottom:28px}.book-part-introduction{color:var(--color-text-soft);font-size:var(--text-base);margin:var(--space-4) var(--space-3) var(--space-4) var(--space-8);line-height:1.9}@media (max-width:720px){.book-part-introduction{margin-left:var(--space-5)}}.chapter-link{border-bottom:1px solid var(--color-line);color:var(--color-text);min-height:60px;scroll-margin-top:calc(var(--header-height) + 18px);grid-template-columns:34px minmax(0,1fr) auto 18px;align-items:center;gap:16px;padding:12px 10px;transition:background-color .18s,color .18s;display:grid}.chapter-link.is-return-target{background:color-mix(in srgb, var(--color-accent-soft) 68%, transparent);box-shadow:inset 2px 0 0 var(--color-accent);color:var(--color-accent)}.chapter-link:last-child{border-bottom:0}.chapter-link>span{color:var(--color-faint);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.chapter-link strong{font-size:var(--text-base);font-weight:500;line-height:1.5}.chapter-link small{color:var(--color-muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums;white-space:nowrap}.chapter-link svg{color:var(--color-faint);height:14px;transition:color .18s ease, transform .22s var(--ease-out);width:14px}.chapter-link:hover{background:var(--color-surface-subtle);color:var(--color-accent)}.chapter-link:hover svg{color:var(--color-accent);transform:translate(3px)}.reading-progress{background:var(--color-line);pointer-events:none;z-index:60;height:3px;position:fixed;top:0;left:0;right:0}.reading-progress>span{background:var(--color-accent);transform-origin:0;height:100%;transition:transform 80ms linear;display:block;transform:scaleX(0)}.reading-layout{--reader-column:680px;grid-template-columns:225px minmax(0, var(--reader-column));max-width:calc(225px + var(--reader-column) + 128px);padding:54px var(--page-gutter) 110px;transition:max-width .3s var(--ease-out);gap:clamp(54px,8vw,100px);margin:0 auto;display:grid}html[data-reader-width=wide] .reading-layout{--reader-column:780px}.reading-toc{min-width:0;top:calc(var(--header-height) + 28px);align-self:start;position:sticky}.reading-book-link{align-items:flex-start;gap:9px;margin-bottom:27px;font-size:14px;line-height:1.45;display:flex}.reading-book-link>svg{color:var(--color-accent);height:14px;transition:transform .18s var(--ease-out);flex:none;width:14px;margin-top:2px}.reading-book-link:hover>svg{transform:translate(-3px)}.reading-book-link span{color:var(--color-muted)}.reading-book-link strong{color:var(--color-text);margin-top:4px;font-size:14px;font-weight:600;display:block}.reading-toc-title{border-bottom:1px solid var(--color-line);align-items:center;gap:7px;padding-bottom:11px;font-size:14px;font-weight:600;display:flex}.reading-toc-title svg{color:var(--color-accent);width:13px;height:13px}.reading-toc-sections{max-height:calc(100vh - var(--header-height) - 132px);overscroll-behavior:contain;scrollbar-color:var(--color-line-strong) transparent;scrollbar-width:thin;padding:4px 8px 12px 0;overflow-y:auto}.reading-toc-sections section>h3{color:var(--color-text);margin:8px 0;font-size:13px;font-weight:600;line-height:1.7}.reading-toc-sections ol{border-left:1px solid var(--color-line);margin:0 0 0 3px;padding:0 0 0 10px;list-style:none}.reading-toc-sections li a{border-radius:var(--radius-control);color:var(--color-muted);padding:9px 10px;font-size:14px;line-height:1.45;transition:background-color .16s,color .16s;display:block}.reading-toc-sections li a:hover{background:var(--color-surface-subtle);color:var(--color-text)}.reading-toc-sections li.is-current a{background:var(--color-accent-soft);color:var(--color-accent);font-weight:600}.reading-mobile-directory{display:none}.reading-article{min-width:0}.reading-heading{border-bottom:1px solid var(--color-line);padding:25px 0 38px}.reading-kicker{color:var(--color-accent);font-size:var(--text-xs);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;margin-bottom:14px;font-weight:600;display:flex}.reading-position{color:var(--color-faint);white-space:nowrap;font-weight:500}.reading-heading h1{font-family:var(--font-display);font-size:var(--text-article-title);letter-spacing:var(--tracking-title);margin:0;font-weight:650;line-height:1.4}.reading-heading>p{color:var(--color-muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums;align-items:center;gap:7px;margin:18px 0 0;display:flex}.reading-heading>p svg{width:13px;height:13px}.reading-body{padding:44px 0 58px}.reading-body p,.reading-body blockquote{font-family:var(--font-serif);letter-spacing:.018em;font-size:18px;line-height:2.05;transition:font-size .22s,line-height .22s}html[data-reader-size=small] .reading-body p,html[data-reader-size=small] .reading-body blockquote{font-size:16px;line-height:1.95}html[data-reader-size=large] .reading-body p,html[data-reader-size=large] .reading-body blockquote{font-size:20px;line-height:2.08}.reading-body p{text-align:justify;margin:0 0 1.55em}.reading-body h2{font-family:var(--font-display);font-size:var(--text-xl);margin:2.6em 0 1em;font-weight:650;line-height:1.5}.reading-body blockquote{border-left:2px solid var(--color-accent);color:var(--color-text-soft);margin:2.2em 0;padding:4px 0 4px 26px}.reading-body p:first-child:first-letter{color:inherit}.reader-controls{background:var(--color-surface-subtle);border:1px solid var(--color-line);border-radius:var(--radius-control);min-inline-size:0;align-items:center;gap:2px;width:max-content;margin:20px 0 0;padding:4px;display:flex}.reader-controls-label{color:var(--color-muted);margin:0 7px 0 8px;font-size:12px;display:block}.reader-controls button{border-radius:var(--radius-control);color:var(--color-muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;width:44px;height:44px;padding:0;transition:background-color .16s,color .16s;display:flex}.reader-controls button:not(:disabled):hover{background:var(--color-surface);color:var(--color-accent)}.reader-controls button:disabled{color:var(--color-faint);cursor:not-allowed;opacity:.42}.reader-controls button[aria-pressed=true]{background:var(--color-accent-soft);color:var(--color-accent)}.reader-controls button svg{width:12px;height:12px}.reader-controls .reader-width-control svg,.reader-controls .reader-reset-control svg{width:15px;height:15px}.reader-controls .reader-width-control,.reader-controls .reader-reset-control{gap:6px;width:auto;padding:0 10px}.reader-control-text{font-size:12px}.reader-control-letter{font-family:var(--font-serif);font-size:12px;font-weight:600}.chapter-pagination{border-top:1px solid var(--color-line-strong);grid-template-columns:1fr 1fr;gap:20px;padding-top:28px;display:grid}.chapter-pagination>a{border-radius:var(--radius-card);align-items:center;gap:13px;min-width:0;min-height:74px;padding:10px 12px;transition:background-color .18s;display:flex}.chapter-pagination>a:hover{background:var(--color-surface-subtle)}.chapter-pagination>a>svg{color:var(--color-accent);height:17px;transition:transform .18s var(--ease-out);flex:none;width:17px}.chapter-pagination>a:hover:first-of-type>svg{transform:translate(-3px)}.chapter-pagination>a:hover:last-of-type>svg{transform:translate(3px)}.chapter-pagination>a span{color:var(--color-muted);font-size:var(--text-xs);min-width:0;display:block}.chapter-pagination>a strong{color:var(--color-text);margin-top:5px;font-size:14px;font-weight:600;line-height:1.45;display:block}.chapter-next{text-align:right;grid-column:2;justify-content:flex-end}@media (max-width:900px){.reading-layout{grid-template-columns:1fr;gap:22px;max-width:760px;padding-top:34px}.reading-toc{border-bottom:1px solid var(--color-line);position:static}.reading-book-link{margin-bottom:18px}.reading-desktop-directory{display:none}.reading-mobile-directory{display:block}.reading-mobile-directory>summary{cursor:pointer;align-items:center;gap:8px;padding:14px 0;font-size:14px;font-weight:600;list-style:none;display:flex}.reading-mobile-directory>summary::-webkit-details-marker{display:none}.reading-mobile-directory>summary svg{color:var(--color-accent);width:14px;height:14px}.reading-mobile-directory>summary svg:last-child{color:var(--color-faint);transition:transform .22s var(--ease-out);margin-left:auto}.reading-mobile-directory[open]>summary svg:last-child{transform:rotate(180deg)}.reading-mobile-directory .reading-toc-sections{border-top:1px solid var(--color-line);max-height:55vh;padding:4px 0 18px}.reading-mobile-directory .reading-toc-sections li a{min-height:44px}.reader-controls .reader-width-control{display:none}}@media (max-width:760px){.book-hero{min-height:auto}.book-opening{grid-template-columns:1fr;gap:24px}.book-part .book-chapter-list{margin-left:0}}@media (max-width:540px){.book-hero{padding-top:34px;padding-bottom:40px}.book-hero-copy h1{font-size:25px;line-height:1.4}.book-contents-heading h2{font-size:22px;line-height:1.4}.book-action-primary{flex:210px}.book-part summary{grid-template-columns:28px minmax(0,1fr) auto 16px;gap:10px}.book-part summary>strong{font-size:18px}.chapter-link{grid-template-columns:28px minmax(0,1fr) 14px;gap:10px}.chapter-link small{display:none}.reading-layout{padding-top:25px;padding-bottom:98px}.reading-heading{padding-top:16px}.reading-kicker{flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:8px}.reading-heading h1{font-size:22px;line-height:1.45}.reading-body h2{font-size:var(--text-lg)}.reading-body p,.reading-body blockquote{font-size:17px;line-height:2}html[data-reader-size=small] .reading-body p,html[data-reader-size=small] .reading-body blockquote{font-size:15.5px}html[data-reader-size=large] .reading-body p,html[data-reader-size=large] .reading-body blockquote{font-size:19px}.chapter-pagination{grid-template-columns:1fr;gap:8px}.chapter-pagination>a{min-height:68px;padding:10px 8px}.chapter-next{grid-column:1}.book-contents{padding-top:32px}}@media (prefers-reduced-motion:reduce){.book-action,.book-part summary,.chapter-link,.chapter-pagination>a,.reading-body p,.reading-body blockquote,.reading-progress>span{transition:none}}.book-part summary{grid-template-columns:56px minmax(0,1fr) auto 18px}.book-part-number{white-space:nowrap;font-size:12px}.book-part .book-chapter-list{margin-left:74px}.chapter-link{grid-template-columns:minmax(0,1fr) auto 18px}.reading-toc-sections section+section{margin-top:24px}@media (max-width:760px){.book-part .book-chapter-list,.book-opening .book-chapter-list{border-left:1px solid var(--color-line);margin-left:12px;padding-left:14px}}@media (max-width:540px){.book-part summary{grid-template-columns:48px minmax(0,1fr) auto 16px}.chapter-link{grid-template-columns:minmax(0,1fr) 14px}}@media (max-width:900px){.reader-controls button{width:44px;height:44px}}
