:root,:root[data-theme=light]{--bg:#fdfcfa;--fg:#1a1917;--muted:#6f6a61;--rule:#e7e2d8;--fg-rule:#cfc8ba;--code-bg:#f6f3ed;--hover:#1a19170a;--sel:#eee8dd;--accent:#b4552f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=paper]{--bg:#f2ece0;--fg:#211e18;--muted:#6b6459;--rule:#ded5c4;--fg-rule:#c6bba4;--code-bg:#e8e0d0;--hover:#211e180d;--sel:#e2d8c4;--accent:#b4552f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#171613;--fg:#e9e5db;--muted:#948e81;--rule:#2d2b25;--fg-rule:#413e35;--code-bg:#1e1d18;--hover:#e9e5db0e;--sel:#2b2822;--accent:#d98a5f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root{--measure:37.4rem;--serif:Newsreader, Georgia, serif;--display:"Instrument Serif", Georgia, serif;--mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--sidebar:302px;--rail:176px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--fg);font-family:var(--serif);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}a{color:inherit;-webkit-text-decoration-color:color-mix(in oklch, currentColor 35%, transparent);text-decoration-color:color-mix(in oklch, currentColor 35%, transparent);text-underline-offset:3px}a:hover{text-decoration-color:currentColor}::selection{background:var(--sel)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#786e5f4d;border-radius:8px}::-webkit-scrollbar-track{background:0 0}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.mono{font-family:var(--mono)}.eyebrow{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-size:10px}.skip-link{z-index:20;background:var(--bg);border:1px solid var(--fg-rule);font-family:var(--mono);text-transform:uppercase;letter-spacing:.12em;padding:10px 14px;font-size:11px;position:absolute;top:0;left:-9999px}.skip-link:focus{top:12px;left:12px}.shell{background:var(--bg);min-height:100vh;color:var(--fg);align-items:flex-start;display:flex}.main{flex:1;justify-content:center;gap:clamp(28px,4vw,72px);min-width:0;padding:104px clamp(28px,5vw,72px) 200px;display:flex}.nav{flex:0 0 var(--sidebar);width:var(--sidebar);border-right:1px solid var(--rule);flex-direction:column;height:100vh;padding:40px 0 32px;display:flex;position:sticky;top:0;overflow-y:auto}.nav__brand{padding:0 32px}.nav__brand a{text-decoration:none;display:block}.nav__brand-title{font-family:var(--display);letter-spacing:-.01em;margin-top:6px;font-size:30px;line-height:1.05}.nav__divider{border-top:1px solid var(--rule);margin:26px 32px 0}.nav__list{flex-direction:column;gap:1px;padding:22px 20px 0;display:flex}.nav__item{background:0 0;border-radius:4px;align-items:baseline;gap:12px;padding:7px 12px;text-decoration:none;display:flex}.nav__item:hover,.nav__item--current{background:var(--hover)}.nav__num{font-family:var(--mono);letter-spacing:.02em;color:var(--muted);flex:0 0 16px;width:16px;font-size:11px}.nav__title{min-width:0;color:var(--fg);flex:1;font-size:16.5px;line-height:1.3}.nav__mark{font-family:var(--mono);color:#0000;cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;line-height:1}.nav__item:hover .nav__mark{color:var(--fg-rule)}.nav__mark--on,.nav__item:hover .nav__mark--on,.nav__mark:hover{color:var(--accent)}.nav__bookmarks{margin-top:20px;padding:28px 32px 0}.nav__bookmarks .eyebrow{border-top:1px solid var(--rule);padding-top:18px;display:block}.nav__bookmarks-list{flex-direction:column;gap:6px;margin-top:10px;display:flex}.nav__bookmarks-list a{color:var(--fg);font-size:15.5px;line-height:1.3;text-decoration:none}.nav__bookmarks-list a:hover{color:var(--accent)}.nav__spacer{flex:1;min-height:32px}.nav__themes{border-top:1px solid var(--rule);gap:4px;padding:18px 32px 0;display:flex}.nav__theme{border:1px solid var(--rule);color:var(--muted);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:3px;padding:5px 9px;font-size:10px}.nav__theme--on{border-color:var(--fg-rule);color:var(--fg)}.home,.chapter{width:100%;min-width:0;max-width:46rem}.chapter__meta,.chapter__title,.chapter__lede,.chapter__lede-wrap,.chapter__example,.chapter__nav{max-width:var(--measure)}.section-index{width:100%;min-width:0;max-width:44rem}.home__eyebrow{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-size:11px}.home__title{font-family:var(--display);letter-spacing:-.022em;margin:22px 0 0;font-size:76px;font-weight:400;line-height:.98}.home__lede,.home__lede-wrap p{letter-spacing:-.004em;color:var(--muted);text-wrap:pretty;max-width:34rem;margin:34px 0 0;font-size:22.5px;font-weight:300;line-height:1.55}.home__intro{border-top:1px solid var(--rule);grid-template-columns:1fr 1fr;gap:34px;margin:52px 0 0;padding-top:30px;display:grid}.home__intro p{text-wrap:pretty;margin:0;font-size:18.5px;line-height:1.62}.home h2{font-family:var(--display);letter-spacing:-.01em;margin:78px 0 0;scroll-margin-top:80px;font-size:34px;font-weight:400}.home__chapters{border-collapse:collapse;width:100%;margin:22px 0 0;font-size:17px}.home__chapters th{text-align:left;font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--fg-rule);white-space:nowrap;padding:0 20px 9px 0;font-size:10px;font-weight:500}.home__chapters th:first-child{padding-right:12px}.home__chapters th:last-child,.home__chapters td:last-child{padding-right:0}.home__chapters td{border-bottom:1px solid var(--rule);vertical-align:baseline;padding:13px 20px 13px 0}.home__chapters td:first-child{font-family:var(--mono);color:var(--muted);padding-right:12px;font-size:12px}.home__chapters td a{font-size:17.5px}.home__chapters-covers{color:var(--muted);font-size:16.5px;line-height:1.45}.home__chapters-example{font-family:var(--mono);color:var(--muted);font-size:13px}.home__grid--how{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:30px;margin-top:24px;display:grid}.home__grid--conventions{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:34px 44px;margin-top:24px;display:grid}.home__grid--how>p,.home__grid--conventions>p{text-wrap:pretty;margin:0;font-size:17.5px;line-height:1.62}.home__grid--how>p{line-height:1.6}.home__flow{max-width:34rem}.home__flow p{text-wrap:pretty;margin:20px 0 0;font-size:18.5px;line-height:1.62}.home__flow ul{color:var(--muted);margin:10px 0 0;padding-left:20px;font-size:17px;line-height:1.7}.home__flow table{border-collapse:collapse;width:100%;margin:30px 0 0}.home__flow td{border-bottom:1px solid var(--rule);vertical-align:baseline;color:var(--muted);padding:12px 0;font-size:16.5px;line-height:1.45}.home__flow td:first-child{font-family:var(--mono);color:var(--fg);white-space:nowrap;padding-right:24px;font-size:13.5px}.home__flow thead{display:none}.home__next{border-top:1px solid var(--rule);justify-content:flex-end;margin-top:78px;padding-top:22px;display:flex}.home__next a{text-align:right;text-decoration:none}.home__next-title{font-family:var(--display);margin-top:5px;font-size:28px}.chapter__meta{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);align-items:baseline;gap:14px;font-size:11px;display:flex}.chapter__meta-rule{background:var(--rule);flex:1;height:1px}.bookmark{cursor:pointer;font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);background:0 0;border:none;align-items:baseline;gap:6px;padding:0;font-size:11px;display:inline-flex}.bookmark:hover{color:var(--fg)}.bookmark__star{color:var(--fg-rule);font-size:12px;line-height:1}.bookmark:hover .bookmark__star,.bookmark--on .bookmark__star,.bookmark--on{color:var(--accent)}.chapter__title{font-family:var(--display);letter-spacing:-.022em;margin:24px 0 0;font-size:64px;font-weight:400;line-height:1}.chapter__lede,.chapter__lede-wrap p{color:var(--muted);text-wrap:pretty;margin:26px 0 0;font-size:22px;font-weight:300;line-height:1.55}.chapter__example{align-items:baseline;gap:40px;margin-top:34px;display:flex}.chapter__example .eyebrow{flex:0 0 92px}.chapter__example-path{font-family:var(--mono);font-size:14px}.chapter__nav{border-top:1px solid var(--fg-rule);grid-template-columns:1fr 1fr;gap:40px;margin-top:76px;padding-top:26px;display:grid}.chapter__nav a{text-decoration:none}.chapter__nav-title{font-family:var(--display);margin-top:6px;font-size:26px}.chapter__nav-next{text-align:right;grid-column:2}.prose>*{max-width:var(--measure)}.prose>figure.code,.prose>table{max-width:100%}.prose h2{font-family:var(--display);letter-spacing:-.012em;margin:58px 0 0;scroll-margin-top:80px;font-size:32px;font-weight:400}.prose h2:first-child{margin-top:62px}.prose--pending{min-height:60vh}.prose h3{font-family:var(--display);letter-spacing:-.008em;margin:40px 0 0;scroll-margin-top:80px;font-size:24px;font-weight:400}.prose p{text-wrap:pretty;margin:20px 0 0;font-size:19px;line-height:1.68}.prose ul,.prose ol{margin:16px 0 0;padding-left:22px;font-size:19px;line-height:1.72}.prose li{margin-bottom:7px}.prose li>p{font-size:inherit;line-height:inherit;margin:0}.prose strong,.rich strong{font-weight:600}.rich code{font-family:var(--mono);font-size:.79em}.rich a code{font-size:.82em}.prose blockquote{border-left:1px solid var(--fg-rule);margin:34px 0 0;padding:0 0 0 26px}.prose blockquote p{font-family:var(--display);text-wrap:pretty;margin:0;font-size:24px;font-style:italic;line-height:1.45}.prose blockquote p+p{margin-top:14px}.prose hr{border:none;border-top:1px solid var(--rule);margin:46px 0 0}.prose table{border-collapse:collapse;width:100%;margin:22px 0 0;display:block;overflow-x:auto}.prose thead th{text-align:left;font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--fg-rule);white-space:nowrap;padding:0 24px 9px 0;font-size:10px;font-weight:500}.prose tbody td{color:var(--muted);border-bottom:1px solid var(--rule);vertical-align:baseline;padding:14px 24px 14px 0;font-size:17px;line-height:1.5}.prose tbody td:first-child{color:var(--fg);font-size:18px}.prose tr>td:last-child,.prose tr>th:last-child{padding-right:0}.rich figure.code{margin:28px 0 0;position:relative}.rich pre{background:var(--code-bg);border:1px solid var(--rule);border-radius:5px;margin:0;padding:22px 24px;overflow-x:auto}.rich pre code{font-family:var(--mono);color:var(--fg);font-size:14px;line-height:1.8}.rich figcaption{font-family:var(--mono);color:var(--muted);letter-spacing:.01em;margin-top:9px;font-size:11.5px}.rich .copy{border:1px solid var(--rule);background:var(--bg);color:var(--muted);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;opacity:0;border-radius:3px;padding:4px 8px;font-size:10px;transition:opacity .12s;position:absolute;top:10px;right:10px}.rich figure.code:hover .copy,.rich .copy:focus-visible{opacity:1}.rich .copy:hover{color:var(--fg)}.rich .ref{color:var(--muted)}.home__flow figure.code{max-width:34rem;margin:26px 0 0}.home__flow pre{padding:20px 22px}.home__flow pre code{line-height:1.75}.rail{flex:0 0 var(--rail);width:var(--rail);position:sticky;top:104px}.rail .eyebrow{border-bottom:1px solid var(--rule);padding-bottom:12px;display:block}.rail__list{flex-direction:column;gap:9px;margin-top:14px;display:flex}.rail__list a{color:var(--muted);font-size:15px;line-height:1.35;text-decoration:none}.rail__list a:hover,.rail__list a[aria-current=true]{color:var(--fg)}.section-index__title{font-family:var(--display);letter-spacing:-.022em;margin:24px 0 0;font-size:68px;font-weight:400;line-height:1}.section-index__lede,.section-index__lede-wrap p{color:var(--muted);text-wrap:pretty;max-width:32rem;margin:26px 0 0;font-size:22px;font-weight:300;line-height:1.55}.section-index__files{border-top:1px solid var(--fg-rule);flex-direction:column;margin:58px 0 0;display:flex}.section-index__file{border-bottom:1px solid var(--rule);grid-template-columns:34px 1fr 92px;align-items:baseline;gap:24px;padding:26px 0;text-decoration:none;display:grid}.section-index__file:hover{background:var(--hover)}.section-index__file-num{font-family:var(--mono);color:var(--muted);font-size:11px}.section-index__file-title{font-family:var(--display);font-size:30px;line-height:1.1;display:block}.section-index__file-blurb{color:var(--muted);max-width:30rem;margin-top:8px;font-size:17.5px;line-height:1.55;display:block}.section-index__file-time{font-family:var(--mono);color:var(--muted);text-align:right;font-size:11px}.section-index__example{align-items:baseline;gap:40px;margin-top:40px;display:flex}.section-index__example .eyebrow{flex:0 0 92px}.section-index__example-path{font-family:var(--mono);font-size:14px}.section-index .prose,.section-index .chapter__nav{max-width:46rem}@media (width<=1180px){.rail{display:none}}.nav__toggle{display:none}@media (width<=900px){.shell{flex-direction:column;align-items:stretch}.nav{z-index:10;border-right:none;border-bottom:1px solid var(--rule);background:var(--bg);flex:none;width:100%;height:auto;max-height:100vh;padding:18px 0;position:sticky;top:0}.nav__brand{justify-content:space-between;align-items:flex-start;gap:16px;padding:0 22px;display:flex}.nav__brand-title{font-size:22px}.nav__toggle{border:1px solid var(--rule);color:var(--fg);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:3px;flex:none;padding:6px 10px;font-size:10px;display:block}.nav__panel{display:none}.nav--open .nav__panel{display:contents}.nav__divider{margin:18px 22px 0}.nav__list{padding:14px 10px 0}.nav__bookmarks{margin-top:8px;padding:18px 22px 0}.nav__spacer{display:none}.nav__themes{margin-top:16px;padding:16px 22px 0}.main{padding:48px clamp(20px,5vw,40px) 120px}.home__title{font-size:46px}.home__lede{font-size:20px}.home__intro{grid-template-columns:1fr;gap:20px}.home h2{margin-top:56px;font-size:28px}.home__chapters,.home__chapters thead,.home__chapters tbody,.home__chapters tr,.home__chapters td{width:100%;display:block}.home__chapters thead{display:none}.home__chapters tr{border-bottom:1px solid var(--rule);padding:14px 0}.home__chapters td{border:none;padding:0}.home__chapters td:first-child{margin-bottom:2px}.chapter__title{font-size:42px}.chapter__lede,.section-index__lede{font-size:19.5px}.section-index__title{font-size:42px}.section-index__file{grid-template-columns:26px 1fr;gap:14px}.section-index__file-title{font-size:24px}.section-index__file-time{text-align:left;grid-column:2}.prose h2{font-size:27px}.prose p,.prose ul,.prose ol{font-size:17.5px}.chapter__nav{grid-template-columns:1fr;gap:24px}.chapter__nav-next{text-align:left;grid-column:1}.prose .copy{opacity:1}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.01ms!important}}
