.book-shell{--book-measure:68ch;background:var(--cap-paper);min-height:100vh;color:var(--cap-ink)}.book-bar{z-index:20;background:color-mix(in oklab, var(--cap-paper) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--cap-line);position:sticky;top:0}.book-bar-inner{align-items:center;gap:16px;max-width:1180px;margin:0 auto;padding:12px 24px;font-size:13px;display:flex}.book-bar-home{letter-spacing:-.02em;white-space:nowrap;font-weight:500}.book-bar-home:hover{text-decoration:underline}.book-bar-title{color:var(--cap-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.book-bar-meta{font-family:var(--font-mono);letter-spacing:.04em;color:var(--cap-muted);font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto;font-size:11px}.book-progress{background:var(--cap-line);height:2px}.book-progress>span{background:var(--cap-ink);transform-origin:0;height:100%;display:block}.book-layout{grid-template-columns:260px minmax(0,1fr);gap:64px;max-width:1180px;margin:0 auto;padding:0 24px 120px;display:grid}.book-toc{align-self:start;max-height:calc(100vh - 96px);padding:36px 0;font-size:13px;line-height:1.4;position:sticky;top:72px;overflow-y:auto}.book-toc-details>summary{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--cap-muted);cursor:pointer;margin-bottom:18px;font-size:11px}.book-toc ol{gap:10px;margin:0;padding:0;list-style:none;display:grid}.book-toc ol>li>a{color:var(--cap-muted);grid-template-columns:22px minmax(0,1fr);transition:color .12s;display:grid}.book-toc ol>li>a:hover{color:var(--cap-ink)}.book-toc ol>li[aria-current=true]>a{color:var(--cap-ink);font-weight:500}.book-toc-number{font-family:var(--font-mono);color:var(--cap-muted);font-size:11px}.book-toc ul{border-left:1px solid var(--cap-line);gap:7px;margin:10px 0 4px 22px;padding:0 0 0 12px;font-size:12px;list-style:none;display:grid}.book-toc ul a{color:var(--cap-muted)}.book-toc ul a:hover{color:var(--cap-ink);text-decoration:underline}.book-article{max-width:var(--book-measure);padding:56px 0 0}.book-title-page{border-bottom:1px solid var(--cap-line);margin-bottom:72px;padding-bottom:72px}.book-eyebrow{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--cap-muted);margin-bottom:22px;font-size:11px}.book-article .book-h1{max-width:24ch;margin:0}.book-subtitle{color:var(--cap-muted);margin-top:14px;font-size:clamp(1.25rem,2vw,1.75rem)}.book-lede{max-width:58ch;margin-top:28px}.book-stats{font-family:var(--font-mono);letter-spacing:.03em;color:var(--cap-muted);margin-top:28px;font-size:11px}.book-section{padding-top:24px}.book-article .book-h2{border-top:1px solid var(--cap-line);margin:0 0 40px;padding-top:72px;scroll-margin-top:72px;font-size:clamp(1.75rem,2.6vw,2.5rem)}.book-section:first-of-type .book-h2{border-top:none;padding-top:0}.book-article .book-h3{margin:52px 0 18px;scroll-margin-top:72px}.book-article .book-h4{font-family:var(--font-display);letter-spacing:-.01em;margin:36px 0 14px;scroll-margin-top:72px;font-size:1.0625rem;font-weight:600}.book-p{text-wrap:pretty;margin:0 0 22px;font-size:1.0625rem;line-height:1.68}.book-ul,.book-ol{gap:12px;margin:0 0 24px;padding-left:26px;font-size:1.0625rem;line-height:1.6;display:grid}.book-ul{list-style:outside}.book-ol{list-style:decimal}.book-ul ::marker{color:var(--cap-muted)}.book-ol ::marker{color:var(--cap-muted)}.book-quote{border-left:2px solid var(--cap-line);color:var(--cap-muted);margin:0 0 24px;padding-left:22px;font-family:Georgia,Times New Roman,serif;font-size:1.125rem;font-style:italic;line-height:1.6}.book-note{border:1px solid var(--cap-line);border-radius:var(--radius-lg);background:color-mix(in oklab, var(--cap-ink) 3%, transparent);margin:0 0 24px;padding:18px 20px;font-size:1rem;line-height:1.6}.book-code{border:1px solid var(--cap-line);border-radius:var(--radius-lg);background:color-mix(in oklab, var(--cap-ink) 4%, transparent);font-family:var(--font-mono);tab-size:4;margin:0 0 28px;padding:20px 22px;font-size:13px;line-height:1.6;overflow-x:auto}.book-code code{white-space:pre}.book-table-wrap{margin:0 0 32px}.book-table-scroll{border:1px solid var(--cap-line);border-radius:var(--radius-lg);background:color-mix(in oklab, white 55%, var(--cap-paper));overflow-x:auto}.book-table-scroll:focus-visible{outline:2px solid var(--cap-ink);outline-offset:2px}.book-table{border-collapse:collapse;width:100%;min-width:560px;font-size:14px;line-height:1.5}.book-table th,.book-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--cap-line);padding:12px 16px}.book-table thead th{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--cap-muted);white-space:nowrap;font-size:11px;font-weight:500}.book-table tbody th{font-weight:500}.book-table tbody tr:last-child th,.book-table tbody tr:last-child td{border-bottom:none}.book-table-wrap figcaption{color:var(--cap-muted);margin-top:10px;font-size:12px}.book-end{border-top:1px solid var(--cap-line);justify-items:start;gap:16px;margin-top:96px;padding-top:48px;display:grid}.book-end-cta{background:var(--cap-ink);color:var(--cap-paper);border-radius:999px;margin-top:8px;padding:12px 22px;font-size:14px;font-weight:500}.book-end-cta:hover{opacity:.9}@media (width<=900px){.book-layout{grid-template-columns:minmax(0,1fr);gap:0;padding:0 16px 80px}.book-toc{border-bottom:1px solid var(--cap-line);max-height:none;padding:28px 0 0;position:static;overflow:visible}.book-article{max-width:none;padding-top:36px}.book-title-page{margin-bottom:48px;padding-bottom:48px}.book-article .book-h2{margin-bottom:28px;padding-top:48px}}@media print{.book-bar,.book-toc,.book-end{display:none}.book-layout{padding:0;display:block}.book-article{max-width:none;padding:0}.book-section{break-before:page}.book-section:first-of-type{break-before:auto}.book-article .book-h3,.book-article .book-h4{break-after:avoid}.book-table-scroll,.book-code{overflow:visible}.book-table{min-width:0}}.book-landing h1{max-width:22ch}.book-landing-sub{color:var(--cap-muted);margin-top:12px;font-size:clamp(1.25rem,2.2vw,1.875rem)}.book-landing-lede{max-width:62ch;margin-top:26px}.book-landing-facts{color:var(--cap-muted);flex-wrap:wrap;gap:10px 28px;margin:32px 0 0;padding:0;font-size:13px;list-style:none;display:flex}.book-landing-facts strong{color:var(--cap-ink);font-weight:500}.book-claim{border:1px solid var(--cap-line);border-radius:var(--radius-xl);background:color-mix(in oklab, white 55%, var(--cap-paper));gap:12px;max-width:540px;margin-top:40px;padding:24px;display:grid}.book-claim-heading{font-family:var(--font-display);letter-spacing:-.02em;align-items:center;gap:8px;font-size:1rem;font-weight:500;display:flex}.book-claim-row{flex-wrap:wrap;gap:10px;display:flex}.book-claim-row>:first-child{flex:220px}.book-claim-note{color:var(--cap-muted);font-size:12px;line-height:1.5}.book-claim-done .book-claim-note{font-family:var(--font-mono);word-break:break-all}.book-claim-error{color:var(--color-destructive);font-size:13px}.book-claim-done{justify-items:start}.book-tracks{background:var(--cap-line);border:1px solid var(--cap-line);border-radius:var(--radius-lg);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;margin-top:32px;display:grid;overflow:hidden}.book-track{background:var(--cap-paper);padding:24px}.book-track h3{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 10px;font-size:1.0625rem;font-weight:500}.book-track p{color:var(--cap-muted);margin:0;font-size:14px;line-height:1.6}.book-contents{background:var(--cap-line);border-top:1px solid var(--cap-line);border-bottom:1px solid var(--cap-line);gap:1px;margin:32px 0 0;padding:0;list-style:none;display:grid}.book-contents>li{background:var(--cap-paper);grid-template-columns:44px minmax(0,1fr);gap:12px;padding:16px 4px;display:grid}.book-contents-number{font-family:var(--font-mono);color:var(--cap-muted);padding-top:2px;font-size:12px}.book-contents strong{font-size:15px;font-weight:500;display:block}.book-contents-subs{color:var(--cap-muted);margin-top:6px;font-size:12.5px;line-height:1.55;display:block}.book-sample{border:1px solid var(--cap-line);border-radius:var(--radius-xl);background:color-mix(in oklab, white 55%, var(--cap-paper));max-width:68ch;margin-top:32px;padding:32px}.book-sample>:last-child{margin-bottom:0}.book-landing-close{justify-items:start;gap:16px;display:grid}@media (width<=480px){.book-bar-inner{gap:12px;padding:10px 16px}}
