@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/f639721981034f88-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9766a7e9e2e0ad5a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b66cf8e69499582a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/aa016aab0e6d1295-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/22a5144ee8d83bca-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_8eaea4{font-family:Geist,Geist Fallback;font-style:normal}.__variable_8eaea4{--font-body:"Geist","Geist Fallback"}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/013b72fa676f92e0-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b9408752a0c24fb9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/65f03d54ccadf4a8-s.woff2) format("woff2");unicode-range:u+2000-2001,u+2004-2008,u+200a,u+23b8-23bd,u+2500-259f}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e038a29029a234f2-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/2b5b02fc7e511755-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/7d4881bb7e1bf84d-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Mono Fallback;src:local("Arial");ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.00%;size-adjust:134.59%}.__className_8c25df{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.__variable_8c25df{--font-mono:"Geist Mono","Geist Mono Fallback"}:root{--ink:#171515;--bone:#f4f2ed;--muted:#b8bcc2;--line:rgba(244,242,237,0.18);--gutter:clamp(24px,5.55vw,100px)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;background:var(--ink);color:var(--bone);font-family:var(--font-body),sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a,button,summary{touch-action:manipulation}a:hover{text-decoration:underline;text-underline-offset:5px}a:focus-visible,button:focus-visible,pre:focus-visible,summary:focus-visible{outline:2px solid var(--bone);outline-offset:6px}h1,h2,h3,p{margin:0}img{display:block;max-width:100%;height:auto}h1,h2,h3{font-weight:500}p{line-height:1.65}.eyebrow{font:12px/1.5 var(--font-mono),monospace;color:var(--muted)}.skip-link{position:fixed;top:0;left:24px;transform:translateY(-150%);padding:15px;background:var(--bone);color:var(--ink);z-index:10}.skip-link:focus{transform:none}.preview-banner{text-align:center;padding:9px 20px;background:var(--bone);color:var(--ink);font:12px/1.5 var(--font-mono),monospace}.site-header{height:98px;margin:0 var(--gutter);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{font-size:27px;font-weight:600;letter-spacing:-1.5px}.site-header nav{display:flex;gap:34px;align-items:center;font-size:14px}.external{color:var(--muted)}main{min-height:55vh}.hero{padding:55px var(--gutter) 100px}.hero-top{display:flex;gap:28px;align-items:center}.hero-rule{height:1px;flex:1 1;background:var(--line)}.hero h1{font-size:clamp(100px,12.5vw,190px);letter-spacing:-.082em;line-height:.88;margin:46px 0 45px;font-weight:500}.hero h1>span{color:var(--muted)}.hero-bottom{display:grid;grid-template-columns:1.1fr 1fr;gap:50px}.hero-bottom>p{font-size:clamp(23px,2.6vw,38px);line-height:1.25;letter-spacing:-.03em}.hero-bottom>div{max-width:490px}.hero-bottom>div>p{font-size:18px;color:var(--muted)}.text-link{display:inline-flex;gap:22px;align-items:center;margin-top:25px;font-size:14px;font-weight:500}.writing-section{padding:65px var(--gutter) 95px;border-top:1px solid var(--line)}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:35px}.section-heading h1,.section-heading h2{font-size:28px;letter-spacing:-.04em}.section-heading>a{font-size:13px;color:var(--muted)}.featured{display:grid;grid-template-columns:1fr 1fr;gap:55px;padding-bottom:45px;align-items:center}.featured:hover{text-decoration:none}.featured:hover h3{text-decoration:underline;text-underline-offset:7px}.featured-art{background:#252323;aspect-ratio:1.3;overflow:hidden;display:grid;align-items:center}.featured-art img{width:100%;height:100%;object-fit:contain}.notebook-art{position:relative;height:100%;padding:35px 40px;display:flex;flex-direction:column;justify-content:space-between;border-left:2px solid var(--muted);background:repeating-linear-gradient(0deg,transparent,transparent 39px,rgba(244,242,237,.06) 40px)}.notebook-art>span{font-size:clamp(45px,5.9vw,90px);line-height:.98;letter-spacing:-.07em}.notebook-art i{font:13px var(--font-mono),monospace;color:var(--muted)}.featured-copy h3{font-size:clamp(25px,3.2vw,45px);letter-spacing:-.04em;line-height:1.15;margin:21px 0}.featured-copy>p{color:var(--muted);font-size:16px}.article-list{list-style:none;padding:0;margin:0}.article-list>li{border-top:1px solid var(--line)}.article-list>li>a{display:grid;grid-template-columns:minmax(0,1fr) 25px;align-items:center;gap:30px;padding:32px 0}.article-list>li>a:hover{text-decoration:none}.article-list>li>a:hover h3{text-decoration:underline;text-underline-offset:5px}.article-list-meta{display:flex;flex-direction:row;flex-wrap:wrap;gap:10px 20px;margin-bottom:16px;font:12px/1.5 var(--font-mono),monospace;color:var(--muted)}.article-list h3{font-size:25px;letter-spacing:-.03em;line-height:1.3}.article-list p{color:var(--muted);font-size:15px;margin-top:10px;max-width:640px}.row-arrow{font-size:25px}.empty-writing{border-top:1px solid var(--line);padding:35px 0;max-width:650px}.empty-writing>p{font-size:24px;margin-bottom:12px}.empty-writing>span{color:var(--muted);line-height:1.7}.empty-writing a{text-decoration:underline}.about-band{padding:85px var(--gutter);display:grid;grid-template-columns:1fr 1.2fr;gap:60px;background:var(--bone);color:var(--ink)}.about-band .eyebrow{color:#535050}.about-band h2{font-size:clamp(35px,4.6vw,65px);line-height:1.08;letter-spacing:-.055em;margin-bottom:30px}.about-band p:not(.eyebrow){max-width:530px;font-size:17px;margin-bottom:18px}.about-band p a{text-decoration:underline}.about-band a:focus-visible{outline-color:var(--ink)}.follow-band{padding:100px var(--gutter);display:grid;grid-template-columns:1.1fr 1fr;gap:50px;align-items:center}.follow-band h2{font-size:clamp(30px,4vw,55px);letter-spacing:-.045em;line-height:1.1}.follow-band p{color:var(--muted);margin-bottom:22px}.button{display:inline-flex;background:var(--bone);color:var(--ink);padding:17px 24px;gap:40px;font-size:14px;font-weight:600}.site-footer{margin:0 var(--gutter);border-top:1px solid var(--line);padding:35px 0 45px;display:flex;gap:30px;align-items:center;justify-content:space-between}.site-footer p{font-size:13px;color:var(--muted)}.site-footer>div{display:flex;gap:25px;font-size:13px}.about-page,.index-page{padding:0 var(--gutter) 100px}.page-intro{padding:55px 0 40px}.page-intro h1{font-size:clamp(36px,5vw,56px);line-height:1.08;letter-spacing:-.06em;margin:20px 0}.page-intro>p:not(.eyebrow){font-size:22px;color:var(--muted);line-height:1.45}.about-story{max-width:700px;margin-left:auto;font-size:20px}.about-story p{margin-bottom:25px}.about-story h2{font-size:32px;letter-spacing:-.04em;margin:50px 0 20px}.about-story a{text-decoration:underline;text-underline-offset:4px}.article-page{padding:65px var(--gutter) 100px}.article-header{max-width:960px;margin:0 auto 60px}.back-link{font-size:13px;color:var(--muted)}.article-tags{display:flex;gap:20px;margin-top:55px;font:12px/1.6 var(--font-mono),monospace;color:var(--muted)}.article-header h1{font-size:clamp(36px,5.4vw,72px);line-height:1.08;letter-spacing:-.05em;margin:20px 0 25px}.article-deck{font-size:clamp(18px,2vw,24px);max-width:760px;color:var(--muted);line-height:1.5}.byline{display:flex;gap:25px;flex-wrap:wrap;font-size:13px;margin-top:28px}.byline>span:last-child,.byline>time{color:var(--muted)}.article-cover{max-width:960px;margin:0 auto 55px}.article-cover figure{margin:0}.reading-layout{display:grid;grid-template-columns:220px minmax(0,720px);gap:65px;justify-content:center}.toc{font-size:13px}.toc details{position:sticky;top:35px}.toc summary{cursor:pointer;padding:10px 0}.toc nav{display:flex;flex-direction:column;gap:15px;margin-top:20px;color:var(--muted)}.toc nav>a{line-height:1.4}.reading-column{min-width:0}.article-body{font-size:18px;line-height:1.8}.article-body figure,.article-body ol,.article-body p,.article-body ul{margin:0 0 25px}.article-body h2{font-size:31px;letter-spacing:-.035em;line-height:1.2;margin:50px 0 22px}.article-body>h2:first-child{margin-top:0}.article-body h3{font-size:24px;margin:30px 0 15px}.article-body li{padding-left:5px;margin-bottom:8px}.article-body a{text-decoration:underline}.article-body blockquote{border-left:2px solid var(--muted);padding-left:25px;margin:35px 0;font-size:23px;color:var(--muted)}figcaption{font-size:13px;color:var(--muted);line-height:1.6;margin-top:12px}.code-block{margin:30px 0;background:#242222;border:1px solid var(--line);min-width:0}.code-toolbar{display:flex;align-items:center;justify-content:space-between;padding:9px 18px;border-bottom:1px solid var(--line);font:12px var(--font-mono),monospace;color:var(--muted)}.code-toolbar button{border:1px solid var(--line);background:transparent;color:var(--bone);font:inherit;padding:8px 13px;cursor:pointer}.code-toolbar button:hover{background:rgba(244,242,237,.08)}.copy-status{display:block;padding:0 18px 12px;font-size:13px}.wrapped-snippet{white-space:pre-wrap;overflow-wrap:anywhere}.tutorial-image{margin:30px 0}.tutorial-image img{width:100%;height:auto}.tutorial-image figcaption a{text-decoration:underline}pre{max-width:100%;overflow-x:auto;padding:20px;margin:0;font:13px/1.75 var(--font-mono),monospace;tab-size:2}.video-link{display:flex;gap:22px;border-block:1px solid var(--line);padding:23px 0;margin:30px 0;text-decoration:none!important;font-size:13px}.video-link>span:first-child{font-size:28px}.video-link strong{display:block;font-size:17px;font-weight:500;margin-top:5px}.sources{border-top:1px solid var(--line);padding-top:30px;margin-top:50px}.author-note h2,.sources h2{font-size:20px}.sources ul{padding-left:19px;font-size:15px;line-height:1.7}.sources a{text-decoration:underline;text-underline-offset:4px}.author-note{border-top:1px solid var(--line);margin-top:35px;padding-top:30px}.author-note p{margin:12px 0 18px;color:var(--muted);font-size:15px}.author-note>a{font-size:14px}.related{margin-top:75px}.related>h2{margin-bottom:25px}@media (min-width:1700px){body{max-width:1700px;margin:auto}}@media (max-width:800px){.site-header{height:80px}.site-header nav{gap:22px}.hero{padding-top:40px;padding-bottom:65px}.hero h1{margin:48px 0;font-size:clamp(100px,18vw,150px)}.about-band,.featured,.follow-band,.hero-bottom{grid-template-columns:1fr;gap:30px}.hero-bottom>div{max-width:100%}.featured{gap:30px}.featured-art{aspect-ratio:1.65}.notebook-art>span{font-size:70px}.writing-section{padding-block:50px 65px}.about-band,.follow-band{padding-block:60px}.article-list>li>a{grid-template-columns:1fr 20px;gap:15px}.article-list-meta{grid-column:1/-1;flex-direction:row;justify-content:space-between}.article-list h3{font-size:23px}.reading-layout{grid-template-columns:minmax(0,1fr);gap:35px}.toc details{position:static;border-block:1px solid var(--line);padding:10px 0}.toc nav{padding-bottom:15px}.article-page{padding-top:35px}.article-header{margin-bottom:35px}.article-tags{margin-top:35px}.site-footer{flex-wrap:wrap;gap:20px}.site-footer p{order:3;width:100%}.page-intro{padding:60px 0 45px}.about-story{font-size:18px}.article-body{font-size:17px}.article-body h2{font-size:28px}}@media (max-width:430px){.site-header nav{gap:18px;font-size:13px}.site-header .external{display:none}.hero h1{font-size:105px}.hero-bottom>div>p{font-size:17px}.section-heading h1,.section-heading h2{font-size:24px}.notebook-art{padding:25px}.notebook-art>span{font-size:58px}.article-header h1{font-size:37px}.article-list-meta{font-size:11px}.page-intro h1{font-size:49px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.home-page{max-width:1200px;margin-inline:auto;padding-top:55px}.article-list>li>a.has-cover{grid-template-columns:160px minmax(0,1fr) 25px}.article-list-cover img{width:100%;max-height:285px;object-fit:contain}.article-list-copy{min-width:0}@media (max-width:600px){.article-list>li>a.has-cover{grid-template-columns:105px minmax(0,1fr);gap:20px;align-items:start}.has-cover .row-arrow{display:none}.has-cover .article-list-meta{justify-content:flex-start}.has-cover h3{font-size:20px}}.article-page{--reading-teal:#a6e6dc;--reading-purple:#d4c2fa;--reading-amber:#f1cb92}.article-body .step-heading{display:flex;align-items:baseline;gap:15px}.step-number{font:23px/1.4 var(--font-mono),monospace;flex-shrink:0}.article-body h3,.step-number{color:var(--reading-teal)}.article-body a{text-decoration-color:#72a69f;text-underline-offset:4px}.article-body li::marker{color:var(--reading-teal)}.reader-callout{margin:28px 0;padding:2px 0 2px 18px;border-left:3px solid var(--reading-teal)}.reader-callout>strong{display:block;color:var(--reading-teal);font-size:16px}.reader-callout>p{margin:6px 0 0;font-size:16px;line-height:1.65}.callout-note{border-color:#abc5ee}.callout-note>strong{color:#abc5ee}.callout-caution{border-color:var(--reading-amber);background:#f1cb9208;padding:15px 18px}.callout-caution>strong{color:var(--reading-amber)}.article-body .code-block{margin:20px 0;background:#1d252b;border-color:#a7c9eb45}.article-body .ai-prompt{background:#25212e;border-color:#d4c2fa45}.code-toolbar{color:#b7d6f2;padding:10px 16px;border:0;font:12px/1.5 var(--font-body),sans-serif}.ai-prompt .code-toolbar{color:var(--reading-purple)}.code-toolbar button{min-height:36px;padding:5px 12px;border-color:currentColor;color:inherit}.code-block details>summary{padding:0 16px 14px;cursor:pointer;font:600 16px/1.5 var(--font-body),sans-serif}.code-block pre{margin-top:0;border-top:1px solid #ffffff16}.ai-prompt code,.ai-prompt pre{font:15px/1.7 var(--font-body),sans-serif}.copy-status:empty{display:none}.reader-details{margin:18px 0;border-block:1px solid var(--line)}.reader-details>summary{padding:14px 0;cursor:pointer;font-size:16px;font-weight:500}.reader-details>p{font-size:16px;line-height:1.7;padding-bottom:16px;margin:0}.article-body summary:focus-visible,.toc summary:focus-visible{outline:2px solid var(--reading-teal);outline-offset:5px}.article-cover figcaption,.tutorial-image figcaption{font-size:12px;line-height:1.6;color:var(--muted)}@media (max-width:800px){.article-tags{margin-top:25px}.article-cover{margin-bottom:25px}.reading-layout{gap:25px}.article-body .step-heading{gap:12px;font-size:26px}.step-number{font-size:21px}}.code-block:not(.ai-prompt):has(details:not([open])){background:transparent;border-inline:0}.code-block:not(.ai-prompt):has(details:not([open])) .code-toolbar{display:none}.code-block:not(.ai-prompt):has(details:not([open])) summary{padding:14px 0;color:#b7d6f2}.code-toolbar button{min-width:88px}.code-toolbar button[data-copy-state=copied]{background:#a6e6dc;color:#171515;border-color:#a6e6dc}.code-toolbar button[data-copy-state=failed]{color:#f1cb92;border-color:#f1cb92}.copy-status[data-copy-state=copied]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.ai-prompt .prompt-placeholder{color:#231b12;background:#f1cb92;font-weight:600;padding:.08em .25em;border-radius:2px;-webkit-box-decoration-break:clone;box-decoration-break:clone}