:root{--bg:#f5f3ef;--paper:#fbfaf7;--text:#161616;--muted:#666962;--line:#16161621;--line-strong:#16161633;--accent:#111;--max-reading-width:760px;--home-max-width:1320px;--topbar-height:79px;--sans:ui-sans-serif, -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", sans-serif;--serif:"Iowan Old Style", "Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:var(--serif);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}a{color:inherit;text-decoration:none}button{font:inherit}.topBar{z-index:50;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);background:#f5f3eff0;position:relative}@media (min-width:821px){.topBar{position:sticky;top:0}}.topBarInner{grid-template-columns:1fr minmax(340px,760px) 1fr;align-items:center;gap:20px;max-width:1680px;min-height:78px;margin:0 auto;padding:0 20px;display:grid}.topBarLeft{justify-content:flex-start;align-items:center;min-width:0;display:flex}.topBarCenter{flex-direction:column;justify-content:center;align-items:center;min-width:0;display:flex}.topBarRight{justify-content:flex-end;align-items:center;display:flex}.brand{align-items:center;min-height:40px;display:inline-flex}.brandDesktop{display:inline-flex}.brandMobile{display:none}.brandLogo{width:auto;max-width:none;height:34px;display:block}.brandLogoSquare{width:32px;height:32px;display:block}.topBarTopLabel{font-family:var(--sans);text-align:center;white-space:nowrap;margin-bottom:4px;font-size:12px;font-weight:700;line-height:1.1}.topBarBottomLabel{font-family:var(--sans);color:#161616b8;text-align:center;white-space:nowrap;text-overflow:ellipsis;max-width:100%;margin-bottom:10px;font-size:12px;font-weight:600;line-height:1.15;overflow:hidden}.bookProgress{align-items:center;gap:14px;width:100%;display:flex}.bookProgressSegment{background:#1616161c;border-radius:999px;flex:none;height:6px;position:relative;overflow:hidden}.bookProgressSegmentFill{transform-origin:0;background:#1616164d;transition:transform 80ms linear;position:absolute;inset:0}.menuButton{border:1px solid var(--line-strong);cursor:pointer;width:44px;height:44px;color:var(--text);background:#ffffff59;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.menuButton:hover{background:#ffffffa6}.homeShell{max-width:var(--home-max-width);grid-template-columns:340px minmax(0,1fr);gap:64px;margin:0 auto;padding:36px 28px 96px;display:grid}.homeSidebar{align-self:start;position:sticky;top:106px}.homeSidebarCard{margin-bottom:28px}.homeSidebarEyebrow,.sectionLabel{font-family:var(--sans);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:16px;font-size:12px}.homeTitle{letter-spacing:-.04em;margin:0 0 16px;font-size:32px;font-weight:500;line-height:1.04}.homeIntro{letter-spacing:-.02em;color:#161616c7;margin:0 0 16px;font-size:18px;line-height:1.48}.projectRail{gap:10px;display:grid}.projectRailItem{border:1px solid var(--line-strong);min-height:52px;font-family:var(--sans);background:#ffffff38;border-radius:999px;justify-content:space-between;align-items:center;gap:12px;padding:0 18px;font-size:15px;font-weight:600;display:flex}.projectRailItem.disabled{color:#1616166b;cursor:default;pointer-events:none;background:#ffffff1a;border-color:#1616161a}.projectRailLabel{white-space:nowrap}.projectRailItemTopLevel{background:#ffffff4d;border-width:1px;border-color:#6f4e80}.projectRailItemProject{border-width:1px;border-color:#16161624;width:calc(100% - 3px);margin-left:3px}.projectRailItemTopLevel.disabled{background:#ffffff1f;border-color:#b8b0bd}.homeMain{min-width:0}.homeSectionHeader{margin-bottom:26px;padding-top:8px}.homeDescription{max-width:760px;font-family:var(--sans);color:#161616b8;font-size:16px;line-height:1.56}.tocGroups{gap:28px;display:grid}.tocGroupHeader h2{letter-spacing:-.025em;margin:0 0 14px;font-size:23px;font-weight:600;line-height:1.12}.tocGroupList{border-top:1px solid var(--line-strong)}.tocRow{border-bottom:1px solid var(--line-strong);background:#ffffff2e;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:16px;min-height:68px;display:grid}.tocRowIcon{border:1px solid var(--line-strong);color:#161616cc;background:#ffffff73;border-radius:999px;justify-content:center;align-items:center;width:34px;height:34px;margin-left:12px;display:inline-flex}.tocRowBody{min-width:0;padding:12px 18px 12px 0}.tocRowTitle{font-family:var(--sans);font-size:16px;line-height:1.3}.readingPage{min-height:calc(100dvh - var(--topbar-height));flex-direction:column;display:flex}.readingShell{flex:1 0 auto;padding:24px 20px 32px}.readingArticleCentered{max-width:var(--max-reading-width);margin:0 auto}.readingHeader{text-align:left;margin-bottom:32px}.readingHeader h1{letter-spacing:-.02em;margin:0;font-size:clamp(32px,4.4vw,46px);font-weight:500;line-height:.99}.proseShell{max-width:var(--max-reading-width)}.proseShell p,.proseShell li,.proseShell blockquote{margin:0 0 1.08em;font-size:20px;line-height:1.68}.proseShell h2{letter-spacing:-.025em;margin-top:2.4em;margin-bottom:.68em;font-size:33px;line-height:1.08}.proseShell h3{letter-spacing:-.02em;margin-top:2.1em;margin-bottom:.62em;font-size:26px;line-height:1.14}.proseShell ul,.proseShell ol{margin-bottom:1.3em;padding-left:1.25em}.proseShell blockquote{border-left:2px solid var(--line);color:#161616b8;padding-left:20px}.proseShell code{background:#1616160f;border-radius:4px;padding:.1em .25em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}.proseShell a{color:#161616c7;text-underline-offset:3px;-webkit-text-decoration:underline dotted #16161647;text-decoration:underline dotted #16161647;text-decoration-thickness:1px;transition:color .15s,text-decoration-color .15s}.proseShell a:hover{color:#161616f2;text-decoration-color:#1616168c}.footnoteRef{font-family:var(--sans);vertical-align:super;font-size:.62em}.footnoteRef a{color:var(--muted)}.footnotesSection{border-top:1px solid var(--line);margin-top:64px;padding-top:24px}.footnotesSection h2{margin-top:0;font-size:20px}.footnotesList{padding-left:1.25em}.footnotesList li{margin-bottom:1em}.footnotesSection,.footnotesList li{font-size:16px;line-height:1.5}.footnotesList p{margin:0}.footnoteBacklink{font-family:var(--sans);color:var(--muted);margin-top:6px;display:inline-block}[id^=fnref-],[id^=fn-]{scroll-margin-top:110px}.tocOverlay{z-index:100;opacity:0;pointer-events:none;transition:opacity .18s;position:fixed;inset:0}.tocOverlay.open{opacity:1;pointer-events:auto}.tocOverlayBackdrop{cursor:pointer;z-index:0;background:#1616162e;border:0;margin:0;padding:0;position:absolute;inset:0}.tocOverlayPanel{background:var(--paper);border-left:1px solid var(--line);z-index:1;overscroll-behavior:contain;flex-direction:column;width:min(560px,100vw);height:100dvh;transition:transform .22s;display:flex;position:absolute;top:0;right:0;transform:translate(100%);box-shadow:-8px 0 32px #0000000f}.tocOverlay.open .tocOverlayPanel{transform:translate(0)}.tocOverlayHeader{border-bottom:1px solid var(--line);background:var(--paper);flex:none;justify-content:space-between;align-items:center;min-height:78px;padding:0 20px;display:flex}.tocOverlayTitle{font-family:var(--sans);font-size:16px;font-weight:700}.tocOverlayBody{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:var(--paper);flex:auto;padding:8px 20px 28px;overflow-y:auto}.tocOverlayNav{gap:22px;display:grid}.tocOverlayGroup{gap:0;display:grid}.tocOverlayGroupHeading{grid-template-columns:24px minmax(0,1fr) 32px;align-items:center;gap:14px;min-height:52px;padding:8px 0 10px;display:grid}.tocOverlayGroupIndex{font-family:var(--sans);color:var(--muted);font-size:12px;line-height:1.4}.tocOverlayGroupTitle{font-family:var(--sans);letter-spacing:-.02em;color:var(--text);font-size:20px;font-weight:700;line-height:1.2}.tocOverlayGroupIcon{border:1px solid var(--line-strong);color:#161616c7;background:#ffffff73;border-radius:999px;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.tocOverlayList{border-top:1px solid var(--line);padding-left:38px}.tocOverlayItem{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;min-height:58px;padding:12px 0;display:flex}.tocOverlayItemTitle{font-family:var(--sans);color:var(--text);font-size:15px;line-height:1.3}.tocOverlayItemIcon{border:1px solid var(--line-strong);color:#161616c7;background:#ffffff73;border-radius:999px;flex:none;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.tocOverlayItem.active .tocOverlayItemTitle{font-weight:700}.nextSectionBar{margin-top:0;padding:0 20px 20px}.nextSectionBarInner{max-width:var(--max-reading-width);border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;min-height:110px;margin:0 auto;padding:20px 0 0;display:flex}.nextSectionMeta{min-width:0}.nextSectionLabel{font-family:var(--sans);margin-bottom:6px;font-size:14px;font-weight:700;line-height:1.2}.nextSectionTitle{font-family:var(--sans);color:#161616b8;font-size:18px;line-height:1.3}.nextSectionButton{color:#fff;min-width:112px;height:52px;font-family:var(--sans);background:#000;border-radius:999px;flex:none;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-size:17px;font-weight:700;display:inline-flex}.standardPage{padding:48px 20px 100px}.standardPageInner{max-width:980px;margin:0 auto}.standardPageInner h1{letter-spacing:-.02em;margin:0 0 16px;font-size:36px;font-weight:500;line-height:1}.standardLead{color:#161616c2;max-width:760px;font-size:19px;line-height:1.58}.projectPageList{gap:18px;margin-top:36px;display:grid}.projectPageCardShell{border:1px solid var(--line-strong);background:#ffffff40}.projectPageCardShell.disabled{background:#ffffff1a;border-color:#1616161a}.projectPageCard{padding:22px;display:block}.projectPageCard.disabled{color:#1616166b;cursor:default;background:#ffffff1a;border-color:#1616161a}.projectPageCardTop{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.projectPageCard h2{letter-spacing:-.02em;margin:0 0 8px;font-size:24px;font-weight:500;line-height:1.06}.projectPageCard p{max-width:780px;font-family:var(--sans);color:#1616169e;margin:0;font-size:15px;line-height:1.56}.projectPageCardTitleLink,.projectPageCardIconLink{color:inherit}.projectPageCardTitleLink:hover,.projectPageCardIconLink:hover{opacity:.78}.projectPageCardIconLink{color:#161616d1;flex:none;margin-top:2px}.projectRepoDisclosure{border-top:1px solid var(--line);margin-top:20px;padding-top:14px}.projectRepoSummary{cursor:pointer;-webkit-user-select:none;user-select:none;font-family:var(--sans);color:#161616c7;justify-content:space-between;align-items:center;gap:14px;list-style:none;display:flex}.projectRepoSummary::-webkit-details-marker{display:none}.projectRepoSummaryLeft{letter-spacing:.02em;align-items:center;gap:10px;min-width:0;font-size:13px;font-weight:700;display:inline-flex}.projectRepoSummaryRight{flex:none;align-items:center;gap:10px;display:inline-flex}.projectRepoSummaryChevron{color:#16161680;flex:none;transition:transform .18s}.projectRepoDisclosure[open] .projectRepoSummaryChevron{transform:rotate(180deg)}.projectRepoSummaryHint{font-family:var(--sans);letter-spacing:.08em;text-transform:uppercase;color:#1616166b;white-space:nowrap;font-size:11px}.projectRepoPanel{background:#ffffff57;border:1px solid #16161614;gap:16px;margin-top:16px;padding:18px 18px 16px;display:grid}.projectRepoPanelWithPreview{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:20px}.projectRepoPanelMain{gap:16px;min-width:0;display:grid}.projectRepoMetaGrid{gap:14px;display:grid}.projectRepoMetaItem{gap:4px;display:grid}.projectRepoMetaLabel{font-family:var(--sans);text-transform:uppercase;letter-spacing:.08em;color:#1616166b;font-size:11px}.projectRepoMetaValue{font-family:var(--sans);color:#161616ad;font-size:13px;line-height:1.55}.projectRepoMetaLink{width:fit-content;font-family:var(--sans);color:#161616c7;text-underline-offset:3px;align-items:center;gap:7px;font-size:13px;line-height:1.4;-webkit-text-decoration:underline dotted #1616163d;text-decoration:underline dotted #1616163d;text-decoration-thickness:1px;transition:color .15s,text-decoration-color .15s,opacity .15s;display:inline-flex}.projectRepoMetaLink:hover{color:#161616f2;text-decoration-color:#16161680}.projectRepoLanguages{gap:10px;display:grid}.projectRepoLanguageBar{background:#16161612;border-radius:999px;width:100%;height:10px;display:flex;overflow:hidden}.projectRepoLanguageSegment{background:#1616166b;height:100%;display:block}.projectRepoLanguageSegment:nth-child(2){background:#16161647}.projectRepoLanguageSegment:nth-child(3){background:#16161633}.projectRepoLanguageSegment:nth-child(4){background:#16161624}.projectRepoLanguageList{flex-wrap:wrap;gap:8px;display:flex}.projectRepoLanguagePill{min-height:28px;font-family:var(--sans);color:#161616ad;background:#ffffff80;border:1px solid #1616161a;border-radius:999px;align-items:center;gap:8px;padding:0 10px;font-size:12px;line-height:1;display:inline-flex}.projectRepoLanguageDot{background:#16161666;border-radius:999px;flex:none;width:8px;height:8px}.projectSitePreviewLink{min-width:0;color:inherit;grid-template-rows:auto auto;align-self:start;gap:10px;display:grid}.projectSitePreviewFrame{background:0 0;border:1px solid #16161614;overflow:hidden}.projectSitePreviewImage{width:100%;height:auto;display:block}.projectSitePreviewCaption{font-family:var(--sans);letter-spacing:.08em;text-transform:uppercase;color:#1616166b;font-size:11px}@media (max-width:1100px){.homeShell{grid-template-columns:1fr;gap:36px}.homeSidebar{position:static}}@media (max-width:980px){.projectRepoPanelWithPreview{grid-template-columns:1fr}.projectSitePreviewLink,.projectSitePreviewFrame{height:auto}.projectSitePreviewImage{width:100%;height:auto}.nextSectionBarInner{min-height:98px;padding:18px 0 0}.nextSectionButton{min-width:104px;height:48px;font-size:16px}.nextSectionTitle{font-size:17px}}@media (max-width:820px){.topBar{position:relative;top:auto}.topBar.isReadingBar{z-index:80;width:100%;position:fixed;top:0;left:0;right:0}.readingPage{padding-top:72px}.topBarInner{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-height:64px;padding-left:12px;padding-right:12px}.topBarLeft{justify-content:flex-start}.topBarCenter{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-width:0;display:flex}.topBarRight{justify-content:flex-end}.topBar:not(.isReadingBar) .brandDesktop{display:inline-flex}.topBar:not(.isReadingBar) .brandMobile,.topBar:not(.isReadingBar) .topBarCenter{display:none}.topBar.isReadingBar{border-bottom:0}.topBar.isReadingBar .brandDesktop{display:none}.topBar.isReadingBar .brandMobile{display:inline-flex}.topBar.isReadingBar .brandLogoSquare{width:32px;height:32px}.topBar.isReadingBar .topBarTopLabel{letter-spacing:.04em;text-transform:uppercase;text-overflow:ellipsis;max-width:100%;margin-bottom:3px;font-size:10px;line-height:1.1;overflow:hidden}.topBar.isReadingBar .topBarBottomLabel{max-width:100%;margin-bottom:8px;font-size:12px;line-height:1.15}.topBar.isReadingBar .bookProgress{gap:8px}.topBar.isReadingBar .bookProgressSegment{border-radius:999px;height:4px}.topBar:not(.isReadingBar) .brandLogo{height:28px}.menuButton{width:40px;height:40px}.readingHeader h1{font-size:clamp(30px,7vw,44px)}.proseShell p,.proseShell li,.proseShell blockquote{font-size:17px;line-height:1.44}.footnotesSection,.footnotesList li{font-size:14px;line-height:1.4}.footnotesList{padding-left:1.1em}.footnoteRef{font-size:.55em}.tocRow{grid-template-columns:44px minmax(0,1fr)}}@media (max-width:700px){.nextSectionBarInner{flex-direction:column;justify-content:center;align-items:flex-start;gap:16px;width:100%}.nextSectionMeta{width:100%}.nextSectionButton{width:auto;min-width:0;padding:0 18px}}@media (max-width:640px){.homeShell,.readingShell,.standardPage,.nextSectionBar{padding-left:16px;padding-right:16px}.readingShell{padding-bottom:clamp(20px,6vh,56px)}.nextSectionBar{padding-bottom:16px}.homeTitle{font-size:34px}.tocOverlayPanel{width:100vw}.tocOverlayBody,.tocOverlayHeader{padding-left:16px;padding-right:16px}.tocOverlayGroupTitle{font-size:18px}.tocOverlayItemTitle{font-size:14px}}
