:root{--paper:#f7f8f2;--white:#fff;--ink:#1d302b;--muted:#617069;--line:#d8dfd4;--green:#245e4e;--lime:#e3ebd2;--mono:ui-monospace,SFMono-Regular,Consolas,monospace;--serif:Iowan Old Style,Palatino Linotype,Book Antiqua,Georgia,serif;--sans:-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:4px}a:hover{color:var(--green)}:focus-visible{outline:2px solid var(--green);outline-offset:5px}::selection{background:var(--lime)}.wrap{max-width:1120px;margin:auto;padding:0 48px}.skip{position:absolute;top:-60px;left:20px;background:var(--ink);color:white;padding:8px 14px;z-index:10}.skip:focus{top:12px}.header{display:flex;align-items:center;justify-content:space-between;gap:32px;padding:30px 0;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-weight:700;letter-spacing:-.8px;font-size:23px}.mark{height:30px;width:30px;border:1px solid var(--green);display:grid;place-items:center;font-family:var(--serif);font-style:italic;font-size:23px;font-weight:400;color:var(--green);line-height:1}.nav{display:flex;gap:29px}.nav a{font-size:13px;text-decoration:none;color:var(--muted)}.nav a[aria-current=page]{color:var(--ink);text-decoration:underline;text-decoration-color:var(--green);text-decoration-thickness:2px;text-underline-offset:8px}.eyebrow,.micro{font-family:var(--mono);text-transform:uppercase;font-size:10px;letter-spacing:1.6px}.eyebrow{color:var(--green);display:flex;align-items:center;gap:10px}.eyebrow:before{content:"";height:6px;width:6px;border-radius:50%;background:var(--green)}.hero{padding:77px 0 75px;display:grid;grid-template-columns:1fr 230px;gap:60px;align-items:end}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:400}h1{font-family:var(--serif);font-size:clamp(48px,6.6vw,78px);line-height:1.07;letter-spacing:-3px;margin:23px 0 24px}h1 em{font-weight:400;color:var(--green)}.intro{font-size:16px;color:var(--muted);max-width:530px;line-height:1.8;margin-bottom:0}.hero-note{border-left:1px solid var(--line);padding:6px 0 4px 27px;margin-bottom:5px}.hero-note .micro{color:var(--muted)}.hero-note p{font-family:var(--serif);font-size:28px;line-height:1.35;margin:21px 0 25px;letter-spacing:-.6px}.text-link{font-size:12px;text-decoration:none;color:var(--green);font-weight:600}.text-link span{margin-left:10px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:23px;margin-bottom:13px}.section-head h2{font-size:12px;text-transform:uppercase;letter-spacing:1.7px;font-weight:600;margin:0}.count{font-family:var(--mono);font-size:11px;color:var(--muted)}.note-row{display:grid;grid-template-columns:46px minmax(0,1fr) 112px;gap:23px;border-bottom:1px solid var(--line);padding:30px 0 32px;text-decoration:none}.note-row:hover h3{color:var(--green)}.note-number{font-family:var(--mono);font-size:11px;color:var(--muted);padding-top:7px}.tag{font-family:var(--mono);text-transform:uppercase;letter-spacing:1px;color:var(--green);font-size:9px}.note-row h3{font-family:var(--serif);font-size:27px;line-height:1.3;letter-spacing:-.55px;margin:8px 0}.note-row p{font-size:13px;line-height:1.8;color:var(--muted);margin-bottom:0;max-width:620px}.note-meta{text-align:right;font-family:var(--mono);font-size:9px;color:var(--muted);padding-top:6px;line-height:2.1}.lower{padding:49px 0 59px;display:grid;grid-template-columns:1fr 1fr;gap:60px}.lower h2{font-family:var(--serif);font-size:29px;line-height:1.2;letter-spacing:-.6px;margin-bottom:14px}.lower p{font-size:13px;color:var(--muted);line-height:1.9;max-width:390px}.footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;padding:25px 0 31px;font-size:10px;color:var(--muted)}.page-head{padding:66px 0 47px;max-width:750px}.page-head h1{font-size:64px;margin-top:20px}.page-head .intro{max-width:660px}.body-grid{display:grid;grid-template-columns:190px 1fr;gap:60px;border-top:1px solid var(--line);padding:34px 0 70px}.side-label{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:1.4px;color:var(--muted);padding-top:8px}.prose{max-width:680px}.prose h2{font-family:var(--serif);font-size:31px;line-height:1.3;letter-spacing:-.55px;margin:32px 0 16px}.prose h2:first-child{margin-top:0}.prose p,.prose li{font-size:15px;line-height:1.95;color:#42544c}.prose ul,.prose ol{padding-left:22px}.prose li{margin-bottom:9px}.prose a{color:var(--green)}.quote{font-family:var(--serif);font-size:28px;line-height:1.5;color:var(--green);border-left:2px solid var(--green);padding-left:23px;margin:28px 0}.callout{border:1px solid var(--line);padding:22px 25px;margin-top:28px;background:#edf1e5}.callout p:last-child{margin-bottom:0}.project{display:grid;grid-template-columns:190px 1fr;gap:60px;border-top:1px solid var(--line);padding:35px 0 43px}.project h2{font-family:var(--serif);font-size:32px;letter-spacing:-.65px;line-height:1.3;margin:0 0 13px}.project p{font-size:14px;color:var(--muted);line-height:1.9;max-width:650px}.tool{margin:24px 0 12px;border:1px solid var(--line);background:#fff;padding:25px}.tool label{font-size:11px;font-weight:600;display:block;margin-bottom:8px}.tool-controls{display:flex;gap:9px}.tool input{font-family:var(--mono);font-size:12px;padding:11px 12px;min-width:0;flex:1;border:1px solid var(--line);border-radius:0;background:var(--paper);color:var(--ink)}button,.button{font-family:var(--sans);font-size:12px;line-height:1.5;border:1px solid var(--green);background:var(--green);color:#fff;padding:11px 16px;cursor:pointer;border-radius:0;display:inline-block;text-decoration:none}.button:hover,button:hover{background:#194737;color:#fff}.plain-button{background:transparent;color:var(--green);border-color:var(--line)}.plain-button:hover{background:var(--lime);color:var(--green)}.output{display:grid;grid-template-columns:92px 1fr;gap:8px 15px;border-top:1px solid var(--line);padding-top:18px;margin:20px 0 0;font-family:var(--mono);font-size:11px}.output dt{color:var(--muted)}.output dd{margin:0;overflow-wrap:anywhere}.error{font-size:12px;color:#9b3e32;margin:12px 0 0}.article-head{padding:54px 0 37px;max-width:780px}.back{font-size:11px;color:var(--muted);text-decoration:none}.article-head h1{font-size:clamp(42px,5.4vw,64px);letter-spacing:-2px;line-height:1.15;margin:24px 0 18px}.article-byline{font-family:var(--mono);font-size:10px;color:var(--muted)}.article-body{max-width:720px;padding-bottom:64px}.article-body p,.article-body li{font-size:16px;line-height:1.95}.article-body h2{margin-top:35px}.article-body pre{white-space:pre-wrap;overflow-wrap:anywhere;border:1px solid var(--line);background:#edf1e5;padding:20px;font-family:var(--mono);font-size:12px;line-height:1.8}.article-body code{font-family:var(--mono);font-size:.88em}.article-rule{height:1px;background:var(--line);border:0;margin:30px 0}.article-foot{border-top:1px solid var(--line);padding-top:21px;margin-top:35px;font-size:12px;color:var(--muted)}.article-foot p{font-size:12px}.notes-list{padding-bottom:70px}.badge{display:inline-block;border:1px solid var(--line);padding:4px 8px;font-family:var(--mono);font-size:9px;letter-spacing:.8px;color:var(--green);margin-bottom:18px}.noscript{font-size:12px;color:var(--muted)}@media(max-width:760px){.wrap{padding:0 24px}.header{padding:23px 0;gap:22px}.brand{font-size:20px}.mark{width:26px;height:26px;font-size:21px}.nav{gap:18px}.nav a{font-size:12px}.hero{grid-template-columns:1fr;padding:53px 0 46px;gap:35px}.hero h1{font-size:57px;letter-spacing:-2.3px}.hero-note{max-width:none;border-left:0;border-top:1px solid var(--line);padding:22px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:center}.hero-note p{font-size:22px;margin:0}.hero-note .text-link{grid-column:2}.hero-note .micro{align-self:start}.note-row{grid-template-columns:25px minmax(0,1fr);gap:14px;padding:26px 0}.note-row h3{font-size:25px}.note-meta{grid-column:2;text-align:left;display:flex;gap:20px;padding-top:0}.lower{gap:32px}.page-head{padding:48px 0 35px}.page-head h1{font-size:52px}.body-grid,.project{grid-template-columns:1fr;gap:18px}.body-grid{padding:27px 0 47px}.project{padding:27px 0 35px}.side-label{padding-top:0}.tool{padding:18px}.article-head{padding-top:36px}.article-body p,.article-body li{font-size:15px}}@media(max-width:480px){.wrap{padding:0 20px}.header{align-items:flex-start;flex-direction:column;gap:17px}.nav{width:100%;justify-content:space-between}.hero{padding-top:38px}.hero h1{font-size:49px;letter-spacing:-1.9px}.eyebrow{font-size:9px;letter-spacing:1.1px}.intro{font-size:14px}.hero-note{grid-template-columns:1fr 1.1fr}.note-row h3{font-size:24px}.note-row p{font-size:12px}.lower{grid-template-columns:1fr;padding:36px 0;gap:24px}.lower h2{font-size:27px}.footer{font-size:9px;flex-direction:column;gap:6px}.page-head h1{font-size:47px}.tool-controls{flex-wrap:wrap}.tool input{flex-basis:100%}.output{font-size:10px;grid-template-columns:77px 1fr}.project h2{font-size:29px}.article-head h1{font-size:41px;letter-spacing:-1.4px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
