.book-index-host,.page-outline-host{display:contents}.book-index{z-index:40;border-right:1px solid var(--line);background:var(--bg-card);width:min(320px,86vw);font-family:var(--font-sans);visibility:hidden;flex-direction:column;font-size:14px;transition:transform .22s,visibility 0s linear .22s;display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-102%)}html[data-index-drawer=open] .book-index{visibility:visible;transition:transform .22s;transform:none;box-shadow:4px 0 24px #0000001f}.book-index__top{border-bottom:1px solid var(--line);padding:18px 16px 12px 18px}.book-index__row{align-items:center;gap:8px;margin-bottom:10px;display:flex}.book-index__title{margin-right:auto;text-decoration:none}.book-index__title:hover{text-decoration:underline}.book-index__icon{width:30px;height:30px;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;font-size:20px;line-height:1;display:inline-grid}.book-index__icon:hover{background:var(--accent-soft);color:var(--ink)}.book-index__fold{display:none}.book-index__progress{color:var(--ink-soft);margin:0 0 6px;font-size:13px;line-height:1.4}.book-index__bar{background:var(--line);border-radius:2px;height:4px;overflow:hidden}.book-index__bar>i{background:var(--accent);width:0;height:100%;transition:width .3s;display:block}.book-index__review{border:1px solid var(--line);color:var(--ink);border-radius:6px;justify-content:space-between;align-items:center;margin-top:12px;padding:7px 10px;font-size:13px;font-weight:500;text-decoration:none;display:flex}.book-index__review:hover{border-color:var(--accent);color:var(--accent-strong)}.book-index__review-count{color:var(--ink-faint);font-variant-numeric:tabular-nums;font-size:12px;font-weight:400}.book-index__review.has-due .book-index__review-count{background:var(--accent);color:var(--bg);border-radius:999px;padding:1px 8px;font-weight:600}.book-index__toggle{color:var(--ink-soft);cursor:pointer;user-select:none;align-items:center;gap:8px;margin-top:12px;font-size:13px;display:flex}.book-index__toggle input{accent-color:var(--accent);margin:0}.book-index__list{overscroll-behavior:contain;flex:1;padding:8px 8px 32px;overflow-y:auto}.book-index__section{margin:1px 0}.book-index__summary{color:var(--ink);cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:8px 10px;list-style:none;display:flex}.book-index__summary::-webkit-details-marker{display:none}.book-index__summary:hover{background:var(--accent-soft)}.book-index__chevron{border-right:1.5px solid var(--ink-faint);border-bottom:1.5px solid var(--ink-faint);flex:none;width:7px;height:7px;margin-right:2px;transition:transform .15s;transform:rotate(-45deg)}.book-index__section[open]>.book-index__summary .book-index__chevron{transform:rotate(45deg)}.book-index__number{width:18px;color:var(--ink-faint);font-variant-numeric:tabular-nums;flex:none;font-size:11px}.book-index__name{flex:1;font-weight:500;line-height:1.3}.book-index__section.is-current .book-index__name{color:var(--accent-strong)}.book-index__count{color:var(--ink-faint);font-variant-numeric:tabular-nums;font-size:12px}.book-index__items{margin:2px 0 6px;padding:0 0 0 28px;list-style:none}.book-index__link,.book-index__item--planned{border-radius:6px;align-items:center;gap:8px;padding:6px 10px;line-height:1.35;display:flex}.book-index__link{color:var(--ink);text-decoration:none}.book-index__link:hover{background:var(--accent-soft);color:var(--ink)}.book-index__link[aria-current=page]{background:var(--accent-soft);box-shadow:inset 2px 0 0 var(--accent);color:var(--accent-strong);font-weight:600}.book-index__label{flex:1}.book-index__done{color:var(--tone-safe);font-size:12px;font-weight:700;display:none}.book-index__link.is-done .book-index__done{display:inline}.book-index__sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.book-index__item--planned{color:var(--ink-faint);display:none}.book-index:has([data-index-planned]:checked) .book-index__item--planned{display:flex}.book-index__soon{border:1px solid var(--line);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:1px 7px;font-size:10px}.book-index__empty{color:var(--ink-faint);padding:4px 10px 8px;font-size:13px}.book-index:has([data-index-planned]:checked) .book-index__empty{display:none}.book-index a:focus-visible,.book-index button:focus-visible,.book-index summary:focus-visible,.book-index input:focus-visible,.book-index__rail:focus-visible,.page-outline a:focus-visible,.contents-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.book-index__scrim{z-index:39;opacity:0;pointer-events:none;background:#1a1a1a4d;transition:opacity .2s;position:fixed;inset:0}html[data-index-drawer=open] .book-index__scrim{opacity:1;pointer-events:auto}.contents-btn{border:1px solid var(--line);height:34px;color:var(--ink);font-family:var(--font-sans);cursor:pointer;background:0 0;border-radius:999px;flex:none;align-items:center;gap:8px;padding:0 12px;font-size:13px;font-weight:500;text-decoration:none;display:inline-flex}.contents-btn:hover{border-color:var(--accent);color:var(--accent-strong)}.book-index__burger{border-top:1.5px solid;border-bottom:1.5px solid;width:14px;height:10px;position:relative}.book-index__burger:after{content:"";border-top:1.5px solid;position:absolute;top:3.25px;left:0;right:0}@media (width<=479px){.contents-btn{padding:0 10px}.contents-btn__label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.book-index__rail,.page-outline{display:none}@media (width>=1400px){.book-index{background:var(--bg);visibility:visible;width:240px;box-shadow:none;transition:none;transform:none}.book-index__close,.book-index__scrim,.contents-btn{display:none}html[data-index] .book-index__fold{display:inline-grid}html[data-index=collapsed] .book-index{display:none}html[data-index=collapsed] .book-index__rail{z-index:40;border:0;border-right:1px solid var(--line);background:var(--bg);width:44px;color:var(--ink-soft);cursor:pointer;flex-direction:column;align-items:center;gap:12px;padding:20px 0 0;display:flex;position:fixed;top:0;bottom:0;left:0}html[data-index=collapsed] .book-index__rail:hover{color:var(--accent-strong);background:var(--accent-soft)}.book-index__rail-label{writing-mode:vertical-rl;font-family:var(--font-sans);letter-spacing:.18em;text-transform:uppercase;font-size:11px;transform:rotate(180deg)}.page-outline{z-index:3;width:220px;max-height:calc(100vh - 140px);font-family:var(--font-sans);font-size:13px;display:block;position:fixed;top:104px;right:20px;overflow-y:auto}.page-outline__title{margin:0 0 10px;display:block}.page-outline__list{border-left:1px solid var(--line);margin:0;padding:0;list-style:none}.page-outline__link{color:var(--ink-soft);border-left:2px solid #0000;margin-left:-1px;padding:5px 0 5px 14px;line-height:1.4;text-decoration:none;display:block}.page-outline__link:hover{color:var(--ink)}.page-outline__link[aria-current=location]{border-left-color:var(--accent);color:var(--accent-strong);font-weight:600}.page-outline__item--practice .page-outline__link{padding-left:26px;font-size:12.5px}.page-outline__item--practice .page-outline__link:before{content:"◆";color:var(--accent);vertical-align:2px;margin-right:6px;font-size:8px}}.concept__body h2[id],#predict,#try-it,#check-yourself,#key-takeaways{scroll-margin-top:24px}mark-complete{justify-content:center;margin:3rem 0 2rem;display:flex}mark-complete:empty{display:none}.mark-complete__button{border:1.5px solid var(--accent);color:var(--accent);font-family:var(--font-sans);letter-spacing:.02em;cursor:pointer;background:0 0;border-radius:4px;padding:12px 28px;font-size:14px;font-weight:500;transition:background .2s,color .2s}.mark-complete__button:hover{background:var(--accent-soft)}.mark-complete__button.is-done{background:var(--accent);color:var(--bg)}.mark-complete__button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.related[data-astro-cid-45ssvnq2]{margin:2.5rem 0}.related__heading[data-astro-cid-45ssvnq2]{margin-bottom:12px}.related__list[data-astro-cid-45ssvnq2]{font-family:var(--font-sans);flex-wrap:wrap;gap:8px 24px;margin:0;padding:0;font-size:14px;list-style:none;display:flex}.related__list[data-astro-cid-45ssvnq2] a[data-astro-cid-45ssvnq2]{text-decoration-color:var(--accent)}.related__item--planned[data-astro-cid-45ssvnq2]{color:var(--ink-faint)}.concept__breadcrumb[data-astro-cid-rzbjbdeh]{margin-bottom:1rem;text-decoration:none;display:inline-block}.concept__breadcrumb[data-astro-cid-rzbjbdeh]:hover{text-decoration:underline;text-decoration-color:var(--accent)}.concept__title[data-astro-cid-rzbjbdeh]{margin:0 0 .5rem}.concept__meta[data-astro-cid-rzbjbdeh]{font-family:var(--font-sans);color:var(--ink-faint);margin:0 0 2rem;font-size:13px}.concept__oneliner[data-astro-cid-rzbjbdeh]{margin:0 var(--page-bleed,0px) 2.5rem;border-left:3px solid var(--accent);background:var(--accent-soft);font-family:var(--font-serif);font-style:italic;font-size:var(--type-oneliner);border-radius:0 6px 6px 0;padding:20px 24px;line-height:1.6}.concept__pager[data-astro-cid-rzbjbdeh]{border-top:1px solid var(--line);font-family:var(--font-sans);justify-content:space-between;gap:1.5rem;margin-top:3rem;padding-top:1.5rem;font-size:14px;display:flex}.concept__pager-link[data-astro-cid-rzbjbdeh]{color:var(--ink-soft);text-decoration:none}.concept__pager-link[data-astro-cid-rzbjbdeh]:hover{color:var(--accent)}.concept__pager-link--next[data-astro-cid-rzbjbdeh]{text-align:right;margin-left:auto}.concept__body{margin:2rem 0}.concept__body h2{margin-top:2.5rem;margin-bottom:1rem}.concept__body h3{margin-top:2rem;margin-bottom:.75rem}.concept__body p:not([class]){margin-bottom:1.25rem}.concept__body ul,.concept__body ol{margin:0 0 1.25rem;padding-left:1.5rem}.concept__body li{margin-bottom:.5rem;line-height:1.75}.concept__body :not(pre)>code{background:var(--bg-code);overflow-wrap:anywhere;border-radius:3px;padding:.15em .4em;font-size:.9em}.concept__body pre{margin:1.75rem var(--figure-bleed,0px);border:1px solid var(--line);background:var(--bg-code);font-size:var(--type-code);border-radius:4px;padding:18px 20px;line-height:1.65;position:relative;overflow-x:auto}.copy-button{border:1px solid var(--line);background:var(--bg-card);color:var(--ink-soft);font-family:var(--font-sans);cursor:pointer;opacity:0;border-radius:3px;padding:4px 10px;font-size:11px;line-height:1.4;transition:opacity .15s,border-color .15s,color .15s;position:absolute;top:8px;right:8px}.concept__body pre:hover .copy-button,.copy-button:focus-visible{opacity:1}.copy-button:hover,.copy-button.is-copied{border-color:var(--accent);color:var(--accent)}
