.wrapper.wrapper-wide{max-width:none;padding-left:0;padding-right:0}.wide-main{margin-bottom:4em;padding-top:8px}.book-shell{grid-template-columns:236px minmax(0,700px) 180px;justify-content:space-between;align-items:start;column-gap:40px;max-width:1280px;margin:0 auto;padding:0 40px;display:grid}.book-col{min-width:0}@media screen and (width<=1200px){.book-shell{grid-template-columns:236px minmax(0,1fr);column-gap:40px;max-width:1000px}}.book-aside-shell{align-self:start;position:sticky;top:32px}.book-aside{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--rule) transparent;max-height:calc(100vh - 64px);padding-right:10px;overflow-y:auto}.book-aside::-webkit-scrollbar{width:6px}.book-aside::-webkit-scrollbar-thumb{background:var(--rule);border-radius:3px}.book-aside::-webkit-scrollbar-track{background:0 0}.book-aside-back{font-family:var(--font-sans);letter-spacing:.06em;color:var(--muted);align-items:center;gap:.32rem;margin-bottom:.7rem;font-size:11.5px;text-decoration:none;transition:color .14s,gap .14s;display:inline-flex}.book-aside-back svg{flex:none}.book-aside-back:hover,.book-aside-back:focus-visible{color:var(--accent-strong);gap:.5rem}@media (prefers-reduced-motion:reduce){.book-aside-back{transition:none}.book-aside-back:hover,.book-aside-back:focus-visible{gap:.32rem}}.book-aside-book{font-family:var(--font-sans);color:var(--ink);border-bottom:1px solid var(--rule);margin-bottom:.9rem;padding-bottom:.8rem;font-size:14px;font-weight:600;line-height:1.4;text-decoration:none;display:block}.book-aside-book:hover{color:var(--accent-strong)}.book-part+.book-part{margin-top:1.35rem}.book-part-title{font-family:var(--font-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 .45rem;font-size:10.5px;font-weight:600}.book-part-list{margin:0;padding:0;list-style:none}.book-part-list li:before,.shelf li:before{content:none}.book-ch{font-family:var(--font-sans);color:var(--muted);grid-template-columns:1.5rem 1fr;align-items:baseline;gap:.1rem .35rem;padding:.32rem 0;font-size:13.5px;line-height:1.45;text-decoration:none;transition:color .12s;display:grid}.book-ch:hover{color:var(--ink)}.book-ch-num{font-variant-numeric:tabular-nums;color:var(--muted);opacity:.65;font-size:11.5px}.book-ch[aria-current=page]{color:var(--accent-strong);font-weight:550}.book-ch[aria-current=page] .book-ch-num{color:var(--accent-strong);opacity:1}.book-part-list li{border-left:1.5px solid #0000;margin-left:-.6rem;padding-left:.6rem}.book-part-list li:has(.book-ch[aria-current=page]){border-left-color:var(--accent)}.book-aside-toggle,.book-aside-close,.book-aside-scrim{display:none}@media screen and (width<=900px){.book-shell{max-width:720px;padding:0 var(--gutter);grid-template-columns:minmax(0,1fr)}.book-aside-shell{position:static}.book-aside-toggle{left:var(--gutter);z-index:40;font-family:var(--font-sans);color:var(--ink);background:var(--bg);border:1px solid var(--rule);cursor:pointer;border-radius:999px;align-items:center;gap:.4rem;padding:.5rem .85rem;font-size:13px;font-weight:550;display:inline-flex;position:fixed;bottom:22px;box-shadow:0 2px 10px #14141317}body.book-aside-open .wrapper{z-index:80}.book-aside{z-index:60;background:var(--bg);border-right:1px solid var(--rule);width:min(272px,68vw);height:100vh;max-height:none;padding:22px 20px 28px;transition:transform .24s;position:fixed;top:0;left:0;transform:translate(-102%)}body.book-aside-open .book-aside{transform:translate(0)}.book-aside-close{width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:16px;right:14px}.book-aside-close:hover{color:var(--ink)}.book-aside-scrim{z-index:50;opacity:0;pointer-events:none;background:#14141352;transition:opacity .24s;display:block;position:fixed;inset:0}body.book-aside-open .book-aside-scrim{opacity:1;pointer-events:auto}body.book-aside-open{overflow:hidden}}@media (prefers-reduced-motion:reduce){.book-aside,.book-aside-scrim{transition:none}}.book-flag{font-family:var(--font-sans);color:var(--body);background:var(--bg-soft);border-left:3px solid var(--accent);word-break:keep-all;align-items:baseline;gap:.5rem;margin:0 0 1.6rem;padding:.85rem 1.05rem;font-size:13.5px;line-height:1.62;display:flex}.book-flag-tag{letter-spacing:.12em;text-transform:uppercase;color:var(--accent-strong);flex-shrink:0;font-size:11px;font-weight:700}.book-head{border-bottom:1px solid var(--rule);margin-bottom:1.9rem;padding-bottom:1.6rem}.book-crumbs{font-family:var(--font-sans);letter-spacing:.09em;text-transform:uppercase;color:var(--muted);flex-wrap:wrap;gap:.35rem;margin-bottom:1rem;font-size:11px;display:flex}.book-crumbs a{color:var(--muted);text-decoration:none}.book-crumbs a:hover{color:var(--accent-strong)}.book-crumbs span[aria-hidden]{opacity:.45}.book-title{font-family:var(--font-sans);letter-spacing:-.018em;color:var(--ink);overflow-wrap:break-word;word-break:keep-all;margin:0;font-size:34px;font-weight:600;line-height:1.24}.book-meta{font-family:var(--font-sans);color:var(--muted);margin:.75rem 0 0;font-size:12.5px}.book-meta-sep{opacity:.5;margin:0 .4rem}.book-body{margin-bottom:0;padding-top:0}.book-lede{color:var(--muted);word-break:keep-all;margin:0 0 1.4rem;font-size:20px;line-height:1.62}@media screen and (width<=567px){.book-lede{font-size:18px}.book-title{font-size:27px}}.toc-sidebar.toc-inline{z-index:1;width:auto;max-height:calc(100vh - 64px);display:block;position:sticky;inset:32px auto auto;transform:none}@media screen and (width<=1200px){.toc-sidebar.toc-inline{display:none}}.book-nav{border-top:1px solid var(--rule);grid-template-columns:1fr 1fr;gap:0;margin-top:3.5rem;display:grid}.book-nav-item{color:var(--ink);flex-direction:column;gap:.3rem;padding:1.15rem 1.1rem;text-decoration:none;display:flex}.book-nav-prev{border-right:1px solid var(--rule)}.book-nav-next{text-align:right;grid-column:2}.book-nav-empty{border-right:1px solid var(--rule)}.book-nav-item:not(.book-nav-empty):hover{background:var(--bg-soft)}.book-nav-dir{font-family:var(--font-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:10.5px;font-weight:600}.book-nav-title{font-family:var(--font-sans);word-break:keep-all;font-size:15px;font-weight:500;line-height:1.42}@media screen and (width<=567px){.book-nav{grid-template-columns:1fr}.book-nav-prev,.book-nav-empty{border-right:0}.book-nav-next{text-align:left;border-top:1px solid var(--rule);grid-column:1}.book-nav-empty{display:none}}.book-progress{z-index:70;pointer-events:none;height:2px;position:fixed;top:0;left:0;right:0}.book-progress span{background:var(--accent);transform-origin:0;height:100%;display:block;transform:scaleX(0)}.page-content .shelf{margin:2.2rem 0 0;padding:0;list-style:none}.page-content .shelf li:before{content:none}.page-content .shelf li{padding:0}.page-content .shelf .shelf-item,.page-content .shelf .shelf-item:hover,.page-content .shelf .shelf-item:focus{text-decoration:none}.page-content .shelf li+li{border-top:1px solid var(--rule);margin-top:0}.shelf-item{align-items:flex-start;gap:1.15rem;padding:1.5rem 0;display:flex}.shelf-text{min-width:0}.page-content .shelf-cover{aspect-ratio:1/1.414;object-fit:cover;border:1px solid var(--rule);border-radius:2px;flex:none;width:66px;margin:.2rem 0 0}@media screen and (width<=567px){.shelf-item{gap:.95rem}.page-content .shelf-cover{width:56px}}.page-content .shelf-title,.shelf-title{font-family:var(--font-sans);color:var(--ink);word-break:keep-all;margin:0;font-size:21px;font-weight:600;line-height:1.3}.page-content .shelf-tag{vertical-align:.15em;font-family:var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--accent-strong);border:1px solid var(--rule);border-radius:3px;margin-left:.5rem;padding:.1rem .35rem;font-size:10px;font-weight:600;display:inline-block}.shelf-sub{font-family:var(--font-sans);color:var(--muted);margin:.35rem 0 0;font-size:14px;line-height:1.6}.shelf-facts{font-family:var(--font-sans);letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:.6rem 0 0;font-size:11px}.shelf-facts .shelf-writing{color:var(--accent-strong);font-weight:600}.shelf-facts .shelf-writing:before{content:"";vertical-align:.08em;background:var(--accent);border-radius:50%;width:6px;height:6px;margin-right:.42rem;display:inline-block}.book-front-covered{grid-template-columns:200px minmax(0,1fr);align-items:start;column-gap:2.1rem;display:grid}.page-content .book-front-cover{aspect-ratio:1/1.414;object-fit:cover;border:1px solid var(--rule);border-radius:2px;width:100%;margin:.4rem 0 0}.book-front-text>:first-child{margin-top:0}.book-front-text>:last-child{margin-bottom:0}@media screen and (width<=567px){.book-front-covered{grid-template-columns:minmax(0,1fr);row-gap:1.4rem}.page-content .book-front-cover{width:172px}}.book-contents{margin-top:3.2rem}.book-contents .book-part-title{border-bottom:1px solid var(--rule);margin-bottom:.6rem;padding-bottom:.5rem;font-size:11px}.book-contents .book-ch{color:var(--ink);grid-template-columns:1.9rem 1fr;padding:.5rem 0;font-size:15.5px}.book-contents .book-ch-num{font-size:12.5px}.book-contents .book-part-list li{border-left:0;margin-left:0;padding-left:0}.book-contents .book-part+.book-part{margin-top:2.5rem}.book-contents .book-part-head{border-bottom:1px solid var(--ink);flex-wrap:wrap;align-items:baseline;gap:.3rem .7rem;padding-bottom:.5rem;display:flex}.book-contents .book-part-no{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent-strong);font-size:11px}.book-contents .book-part-name{font-family:var(--font-sans);letter-spacing:-.01em;color:var(--ink);align-items:center;gap:.5rem;margin:0;font-size:19px;font-weight:600;display:flex}.book-contents .book-part-icon{stroke-width:1.6px;width:19px;height:19px;color:var(--accent-strong);flex:none}.book-contents .book-part-count{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--muted);margin-left:auto;font-size:11.5px}.book-contents .book-part-list li{border-left:0;border-bottom:1px solid var(--rule);margin-left:0;padding-left:0}.book-contents .book-ch{color:var(--ink);grid-template-columns:3.2rem minmax(0,1fr);gap:0 .9rem;padding:.62rem 0;font-size:15px}.book-contents .book-ch-num{font-family:var(--font-mono);opacity:1;color:var(--muted);font-size:11.5px}.book-contents .book-ch:hover,.book-contents .book-ch:hover .book-ch-num{color:var(--accent-strong)}.book-contents .book-part{scroll-margin-top:1.2rem}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}@media screen and (width<=560px){.book-contents .book-ch{grid-template-columns:2.8rem minmax(0,1fr);font-size:14.5px}.book-contents .book-part-name{font-size:17px}}.page-content .shelf-cover{transition:transform .24s cubic-bezier(.22,.61,.36,1),box-shadow .24s,border-color .24s}.page-content .shelf-title,.shelf-title{transition:color .18s}.shelf-item:hover .shelf-cover,.shelf-item:focus-visible .shelf-cover{border-color:color-mix(in srgb, var(--accent) 45%, var(--rule));box-shadow:0 11px 22px -13px color-mix(in srgb, var(--ink) 60%, transparent);transform:translateY(-5px)}.shelf-item:hover .shelf-title,.shelf-item:focus-visible .shelf-title{color:var(--accent-strong)}@media (prefers-reduced-motion:reduce){.page-content .shelf-cover,.page-content .shelf-title,.shelf-title{transition:none}.shelf-item:hover .shelf-cover,.shelf-item:focus-visible .shelf-cover{transform:none}}@keyframes book-icon-breathe{0%,to{opacity:.82;transform:scale(1)}50%{opacity:1;transform:scale(1.09)}}@keyframes book-icon-twinkle{0%,to{opacity:.55;transform:scale(.93)rotate(0)}45%{opacity:1;transform:scale(1.13)rotate(9deg)}}@keyframes book-icon-nudge{0%,to{transform:translate(-1.6px)}50%{transform:translate(1.6px)}}@keyframes book-icon-sway{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}@media (prefers-reduced-motion:no-preference){.book-contents .book-part-icon{transform-origin:50%;animation:3.8s ease-in-out infinite book-icon-breathe}.book-contents .book-part-icon[data-icon=lucide\:sparkles]{animation-name:book-icon-twinkle;animation-duration:2.6s}.book-contents .book-part-icon[data-icon=lucide\:usb]{animation-name:book-icon-nudge;animation-duration:3.2s}.book-contents .book-part-icon[data-icon=lucide\:boxes]{animation-name:book-icon-sway;animation-duration:4.4s}.book-contents .book-part:nth-of-type(2) .book-part-icon{animation-delay:-.5s}.book-contents .book-part:nth-of-type(3) .book-part-icon{animation-delay:-1s}.book-contents .book-part:nth-of-type(4) .book-part-icon{animation-delay:-1.5s}.book-contents .book-part:nth-of-type(5) .book-part-icon{animation-delay:-2s}.book-contents .book-part:nth-of-type(6) .book-part-icon{animation-delay:-2.5s}.book-contents .book-part:nth-of-type(7) .book-part-icon{animation-delay:-3s}}
