@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/c3cb240f9c892514-s.270md_-rr62el.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0lsanbtneewqp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/c3cb240f9c892514-s.270md_-rr62el.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0lsanbtneewqp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/c3cb240f9c892514-s.270md_-rr62el.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0lsanbtneewqp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Fallback;src:local(Arial);ascent-override:94.9%;descent-override:29.66%;line-gap-override:0.0%;size-adjust:104.53%}.dm_sans_3bf6722e-module__s8sBWa__className{font-family:DM Sans,DM Sans Fallback;font-style:normal}.dm_sans_3bf6722e-module__s8sBWa__variable{--font-sans:"DM Sans", "DM Sans Fallback"}
@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/b12e986493c137cf-s.2tuvx2ggl0uf7.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/36363bfb06833f56-s.p.048ctm9k7u_u3.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/b2fa3ef4ca165ab4-s.2t3qiyt2vl-ta.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a73419dd2ba2d841-s.p.2_s53-223o24o.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono Fallback;src:local(Arial);ascent-override:73.71%;descent-override:23.03%;line-gap-override:0.0%;size-adjust:134.59%}.dm_mono_eefad112-module__8_79wq__className{font-family:DM Mono,DM Mono Fallback;font-style:normal}.dm_mono_eefad112-module__8_79wq__variable{--font-mono:"DM Mono", "DM Mono Fallback"}
:root{--ink:#111;--paper:#f7f7f5;--line:#d7d7d3;--muted:#72726d;--sans:var(--font-sans), Arial, sans-serif;--mono:var(--font-mono), ui-monospace, monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--sans);margin:0;font-size:16px}a{color:inherit;text-decoration:none}.site-header,main,footer{max-width:1240px;margin:auto;padding-left:32px;padding-right:32px}.site-header{justify-content:space-between;align-items:center;height:82px;display:flex}.wordmark{font:500 23px var(--mono);letter-spacing:-2px}.wordmark span{color:#a3a39f}nav{font:13px var(--mono);gap:27px;display:flex}nav a{transition:opacity .2s}nav a:hover{opacity:.48}.intro{flex-direction:column;justify-content:center;min-height:calc(100vh - 82px);padding:72px 0 96px;display:flex}.eyebrow,.project-index,.project-meta,footer{font:12px var(--mono);color:var(--muted);letter-spacing:-.3px}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.078em;max-width:960px;margin:20px 0 25px;font-size:clamp(3.2rem,7.6vw,7.3rem);font-weight:500;line-height:.95}.lede{color:#555550;max-width:390px;margin:0 0 33px;line-height:1.5}.text-link{border-bottom:1px solid var(--ink);width:max-content;padding-bottom:4px;font-size:14px;font-weight:500;display:inline-block}.text-link span{margin-left:12px}.section{border-top:1px solid var(--ink);padding:118px 0}.section-heading{grid-template-columns:1fr 2fr;align-items:baseline;margin-bottom:62px;display:grid}.section-heading h2{letter-spacing:-.065em;margin:0;font-size:clamp(2.3rem,4.5vw,4.5rem);font-weight:500;line-height:.95}.project-list{border-top:1px solid var(--line)}.project{border-bottom:1px solid var(--line);grid-template-columns:32px 44px minmax(0,1fr) max-content;align-items:center;gap:18px;padding:26px 0 29px;transition:background .25s;display:grid}.project:hover{background:#efefec}.project-logo{place-items:center;width:44px;height:44px;display:grid}.project-logo img{object-fit:contain;filter:grayscale()contrast(1.08);max-width:44px;max-height:44px;transition:filter .28s}.project:hover .project-logo img{filter:grayscale(0)}.project h3{letter-spacing:-.045em;margin:0 0 7px;font-size:25px;font-weight:500}.project p{color:#5f5f59;margin:0;line-height:1.45}.project-meta{text-align:right;white-space:nowrap}.notes-banner{background:var(--ink);color:var(--paper)}.notes-banner-inner{max-width:1240px;margin:auto;padding:66px 32px}.notes-banner-head{border-bottom:1px solid #f7f7f538;justify-content:space-between;align-items:baseline;gap:24px;padding-bottom:26px;display:flex}.notes-banner .eyebrow{color:#8a8a84}.notes-banner .text-link{border-color:var(--paper);white-space:nowrap}.notes-banner .text-link:hover{opacity:.55}.notes-banner-list{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:40px;margin:0;padding:0;list-style:none;display:grid}.notes-banner-list a{flex-direction:column;gap:12px;padding-top:34px;transition:opacity .2s;display:flex}.notes-banner-list a:hover{opacity:.6}.notes-banner-list .note-meta{color:#8a8a84}.notes-banner-title{letter-spacing:-.035em;font-size:clamp(1.3rem,2.4vw,1.9rem);font-weight:500;line-height:1.08}.notes-banner-empty{color:#8a8a84;margin:30px 0 0}footer{border-top:1px solid var(--line);justify-content:space-between;padding-top:24px;padding-bottom:28px;display:flex}footer p{margin:0}footer a{color:var(--ink)}.notes-page{padding:96px 0 118px}.notes-hero{max-width:760px;margin-bottom:64px}.notes-hero h1{margin:16px 0 22px;font-size:clamp(2.6rem,5vw,4.4rem)}.notes-hero .lede{max-width:560px;font-size:1.05rem}.notes-list{border-top:1px solid var(--line);max-width:780px;margin:0;padding:0;list-style:none}.notes-list li{border-bottom:1px solid var(--line)}.notes-list-item{padding:30px 0;transition:opacity .2s;display:block}.notes-list-item:hover{opacity:.6}.note-meta{font:12px var(--mono);color:var(--muted);letter-spacing:-.3px;flex-wrap:wrap;gap:6px 18px;margin:0;display:flex}.notes-list-item h2{letter-spacing:-.04em;margin:12px 0 0;font-size:clamp(1.4rem,2.6vw,1.9rem);font-weight:500}.note-dek{color:#5f5f59;max-width:600px;margin:10px 0 0;line-height:1.45}.notes-empty{color:var(--muted)}.note-article{max-width:720px;padding:96px 0 118px}.note-article-hero{margin-bottom:44px}.note-article-hero h1{margin:16px 0 20px;font-size:clamp(2.2rem,4.4vw,3.4rem)}.note-article-hero .note-meta{margin-top:18px}.note-prose>:first-child{margin-top:0}.note-prose h2{letter-spacing:-.03em;margin:44px 0 0;font-size:1.6rem;font-weight:500}.note-prose h3{margin:32px 0 0;font-size:1.2rem;font-weight:500}.note-prose p{color:#3a3a36;margin:16px 0 0;line-height:1.6}.note-prose ul,.note-prose ol{color:#3a3a36;margin:16px 0 0;padding-left:22px;line-height:1.6}.note-prose li{margin-top:8px}.note-prose a{border-bottom:1px solid var(--ink)}.note-prose a:hover{opacity:.6}.note-prose blockquote{border-left:2px solid var(--line);color:var(--muted);margin:20px 0 0;padding-left:20px}.note-prose code{font:.9em var(--mono);background:#ececea;padding:2px 5px}.note-prose pre{background:var(--ink);color:var(--paper);margin:20px 0 0;padding:18px;overflow-x:auto}.note-prose pre code{color:inherit;background:0 0;padding:0}.note-prose figure{margin:36px 0}.note-prose figure img{width:100%;height:auto;display:block}.note-prose figcaption{color:var(--muted);margin-top:12px;font-size:13px;line-height:1.5}.note-chart-comparison{margin:36px 0}.note-chart-grid{gap:28px;display:grid}.note-prose .note-chart-card{width:100%;min-width:0;max-width:520px;margin:0}.note-prose .note-chart-image{cursor:zoom-in;border-bottom:0;display:block}.note-prose .note-chart-image:hover{opacity:1;outline:1px solid var(--line)}.note-chart-card figcaption{flex-wrap:wrap;justify-content:space-between;gap:8px 16px;display:flex}.note-chart-card figcaption a{white-space:nowrap;color:var(--ink)}.note-prose .note-chart-notes{max-width:720px;color:var(--muted);margin-top:16px;font-size:13px;line-height:1.5}@media (min-width:900px){.note-chart-comparison{width:min(960px,100vw - 64px)}.note-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.note-back{margin-top:56px}:focus-visible{outline:3px solid var(--ink);outline-offset:4px}@media (max-width:680px){.site-header,main,footer{padding-left:20px;padding-right:20px}.site-header{height:70px}nav{gap:15px}.intro{min-height:calc(100vh - 70px);padding:46px 0 64px}h1{font-size:clamp(3rem,15vw,5rem)}.section{padding:75px 0}.section-heading{margin-bottom:37px;display:block}.section-heading .eyebrow{margin-bottom:17px}.project{grid-template-columns:35px 44px 1fr;gap:12px}.project-meta{display:none}.project h3{font-size:22px}.notes-banner-inner{padding:46px 20px}.notes-banner-list{gap:26px}.notes-page,.note-article{padding-top:64px}footer{padding-top:20px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
