.book-page{--fs-body: 1.1875rem;--lh-body: 1.7;--space: 1.7rem;font-family:var(--body);font-size:var(--fs-body);line-height:var(--lh-body);font-feature-settings:"kern" 1,"liga" 1,"onum" 1}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:100;background:transparent}.progress__fill{height:100%;width:0%;background:var(--accent);transition:width .1s linear}.wrap{display:grid;grid-template-columns:1fr var(--measure) 1fr;gap:0}.wrap>*{grid-column:2}.book-nav{grid-column:1;justify-self:end;align-self:start;position:sticky;top:.75rem;max-height:calc(100vh - 1.5rem);overflow-y:auto;padding:4rem 2.5rem 4rem 2rem;width:18rem;font-family:var(--display);font-size:.82rem;line-height:1.4}.book-nav__label{text-transform:uppercase;letter-spacing:.14em;font-size:.66rem;color:var(--ink-soft);margin:0 0 1.2rem}.book-nav ol{list-style:none;margin:0;padding:0}.book-nav li{margin:0 0 .55rem}.book-nav a{color:var(--ink-soft);text-decoration:none;display:block;padding-left:.9rem;border-left:2px solid transparent;transition:color .15s,border-color .15s}.book-nav a:hover{color:var(--ink)}.book-nav a.is-active{color:var(--ink);border-left-color:var(--accent)}.book-nav__foot{margin-top:1.8rem;padding-top:1.2rem;border-top:1px solid var(--rule);display:flex;gap:1rem}.book-nav__foot a,.book-nav__share{font-family:var(--display);font-size:.7rem;color:var(--ink-soft);text-decoration:none;background:none;border:none;padding:0;margin:0;cursor:pointer;line-height:1.4;transition:color .15s}.book-nav__foot a:hover,.book-nav__share:hover{color:var(--ink)}.book-nav__share:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.book-page header.masthead{padding:3rem 0 4rem;border-bottom:1px solid var(--rule);margin-bottom:3rem}.book-page .masthead h1{font-family:var(--display);font-weight:500;font-size:clamp(2.6rem,6vw,4.1rem);line-height:1.04;letter-spacing:-.015em;margin:0 0 1.2rem;text-wrap:balance}.book-page .masthead .standfirst{font-size:1.3rem;line-height:1.5;color:var(--ink-soft);font-style:italic;margin:0 0 2rem;max-width:32rem}.book-page .masthead .byline{font-family:var(--display);font-size:.95rem;color:var(--ink-soft);margin:0 0 .35rem}.book-page .masthead .byline a{color:var(--accent);text-decoration:none}.book-page .masthead .byline-meta{font-size:.8125rem;color:var(--ink-soft);opacity:.7;margin:0}.book-content{padding-bottom:4rem;counter-reset:chap}.book-content h2{font-family:var(--display);font-weight:500;font-size:1.95rem;line-height:1.15;letter-spacing:-.01em;margin:calc(var(--space) * 2.4) 0 var(--space);text-wrap:balance;scroll-margin-top:1.5rem}.book-content h2:not(.unnumbered):before{counter-increment:chap;content:counter(chap,decimal-leading-zero);display:block;font-size:.7rem;letter-spacing:.18em;color:var(--accent);margin-bottom:.7rem}.book-content h3{font-family:var(--display);font-weight:600;font-size:1.25rem;line-height:1.2;margin:calc(var(--space) * 1.4) 0 .6rem;scroll-margin-top:1.5rem}.book-content hr{border:none;border-top:1px solid var(--rule);margin:calc(var(--space) * 2.4) auto;width:4rem}.book-content p{margin:0 0 1.35rem;text-wrap:pretty;hanging-punctuation:first last}.book-content a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:2px}.book-content em{font-style:italic}.book-content strong{font-weight:600}.book-content ul{list-style:none;margin:var(--space) 0;padding:0}.book-content ul li{position:relative;padding-left:1.4rem;margin:0 0 .55rem;color:var(--ink)}.book-content ul li:before{content:"—";position:absolute;left:0;color:var(--accent)}.pipeline{font-family:var(--display);font-size:1.05rem;letter-spacing:.02em;text-align:center;color:var(--ink-soft);margin:var(--space) 0}.colophon{border-top:1px solid var(--rule);margin-top:5rem;padding:4rem 0 7rem}.about-author{border-top:1px solid var(--rule);margin-top:5rem;padding:3rem 0 1rem}.about-author p{color:var(--ink-soft);font-size:1.05rem;line-height:var(--lh-body)}.about-author a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:2px}.toc-inline{display:none}@media(max-width:76rem){.wrap{grid-template-columns:1fr;padding:0 1.5rem}.wrap>*{grid-column:1;max-width:var(--measure);margin-left:auto;margin-right:auto;width:100%}.book-nav{display:none}.toc-inline{display:block}.book-page header.masthead{padding-top:1.5rem}}.toc-inline{border:1px solid var(--rule);border-radius:8px;padding:1.4rem 1.5rem;margin-bottom:3rem;background:var(--paper-raised)}.toc-inline p{margin:0 0 .8rem;font-family:var(--display);text-transform:uppercase;letter-spacing:.12em;font-size:.66rem;color:var(--ink-soft)}.toc-inline ol{margin:0;padding-left:1.1rem;font-family:var(--display);font-size:.95rem}.toc-inline li{margin:0 0 .4rem}.toc-inline a{color:var(--ink);text-decoration:none}@media(prefers-reduced-motion:reduce){.progress__fill{transition:none}}.cta-end{border-top:1px solid var(--rule);margin-top:3rem;padding:2.5rem 0 2.75rem}.cta-end__primary{font-size:1.1rem;line-height:1.65;margin:0 0 1rem;text-wrap:pretty}.cta-end__primary a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:2px}.cta-end__secondary{font-size:.95rem;color:var(--ink-soft);margin:0;display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.cta-inline{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:1.75rem 0;margin:calc(var(--space) * 2.4) 0}.cta-inline .cta-inline__body{font-style:italic;color:var(--ink-soft);margin:0 0 1rem;text-wrap:pretty}.cta-inline .cta-inline__secondary{font-size:.9rem;color:var(--ink-soft);margin:.75rem 0 0;text-wrap:pretty}.cta-inline .cta-inline__secondary a{color:var(--ink-soft);text-decoration-thickness:1px;text-underline-offset:2px}.cta-inline .cta-inline__secondary a:hover{color:var(--ink)}.cta-inline__copy{font-family:var(--display);font-size:.875rem;padding:.4rem .9rem;background:transparent;border:1px solid var(--rule);border-radius:4px;color:var(--ink);cursor:pointer;transition:border-color .15s,color .15s}.cta-inline__copy:hover{border-color:var(--accent);color:var(--accent)}.cta-inline__copy:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
