:root{--paper:#fafaf7;--surface:#f3f5f0;--ink:#122018;--body:#26332b;--soft:#46564c;--muted:#5e6f64;--green:#1e6b44;--green-deep:#0e3524;--lime:#c7e04d;--line:#e2e6dc;--line-strong:#c9d2c5;--serif:"Fraunces", Georgia, serif;--sans:"Inter", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0}a{color:var(--green)}a:hover{color:var(--green-deep)}h1,h2,h3,h4,p{margin:0}:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:2px}.wrap{max-width:1120px;margin:0 auto;padding:0 32px}.eyebrow{letter-spacing:.2em;text-transform:uppercase;color:var(--green);font-size:11px;font-weight:600}.rule{border:0;border-top:1px solid var(--line);margin:0}.site-header{border-bottom:1px solid var(--line);background:var(--paper)}.site-header>.wrap{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;padding-top:20px;padding-bottom:20px;display:flex}.logo{color:var(--ink);align-items:center;gap:11px;text-decoration:none;display:flex}.logo-bar{background:var(--lime);border-radius:3px;flex-shrink:0;width:5px;height:24px}.logo-text{font-family:var(--serif);letter-spacing:-.018em;font-variation-settings:"SOFT" 30, "WONK" 1;font-size:21px;font-weight:600}.logo-text em{color:var(--muted);font-style:normal;font-weight:400}.site-nav{flex-wrap:wrap;align-items:center;gap:22px;display:flex}.site-nav a{color:#3c4a41;font-size:14.5px;text-decoration:none}.site-nav a:hover{color:var(--ink)}.site-nav a[aria-current]{color:var(--ink);border-bottom:2px solid var(--lime);padding-bottom:2px;font-weight:600}.site-nav .pill-lime{color:var(--ink);background:var(--lime);border-radius:999px;padding:8px 17px;font-weight:600}.site-nav .pill-outline{color:var(--ink);border:1px solid var(--line-strong);border-radius:999px;padding:8px 18px}.breadcrumb{color:var(--muted);flex-wrap:wrap;align-items:center;gap:9px;font-size:12.5px;display:flex}.breadcrumb a{color:var(--muted);text-decoration:none}.breadcrumb a:hover{color:var(--ink)}.article-head{max-width:760px}.article-head h1{font-family:var(--serif);letter-spacing:-.025em;font-variation-settings:"SOFT" 40, "WONK" 1;margin:22px 0 24px;font-size:50px;font-weight:500;line-height:1.08}.standfirst{font-family:var(--serif);color:var(--soft);margin-bottom:30px;font-size:21px;font-weight:300;line-height:1.5}.byline{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;font-size:14px;display:flex}.byline img{object-fit:cover;border-radius:50%;width:38px;height:38px}.byline strong{color:var(--ink);font-weight:500}.byline .dot{color:var(--line-strong)}.cover{border-radius:4px;width:100%;height:auto}figcaption{color:var(--muted);margin-top:12px;font-size:12.5px}.columns{flex-wrap:wrap;align-items:flex-start;gap:72px;display:flex}.column-main{flex:999 540px;min-width:0;max-width:680px}.column-rail{flex:230px;min-width:0}@media (width>=900px){.column-rail{overscroll-behavior:contain;scrollbar-width:thin;max-height:calc(100vh - 64px);position:sticky;top:32px;overflow-y:auto}}.prose{color:var(--body);font-size:18.5px;line-height:1.72}.prose>:first-child{margin-top:0}.prose h2{font-family:var(--serif);letter-spacing:-.018em;color:var(--ink);margin:52px 0 20px;scroll-margin-top:24px;font-size:29px;font-weight:500;line-height:1.2}.prose h3{font-family:var(--serif);color:var(--ink);margin:40px 0 16px;scroll-margin-top:24px;font-size:23px;font-weight:500;line-height:1.25}.prose h4{letter-spacing:.14em;text-transform:uppercase;color:var(--green);margin:32px 0 14px;font-size:13px;font-weight:700}.prose p{margin:0 0 26px}.prose ul,.prose ol{margin:0 0 26px;padding-left:22px}.prose li{margin-bottom:12px}.prose li>ul,.prose li>ol{margin:12px 0 0}.prose img{border-radius:4px;width:100%;height:auto;margin:36px 0;display:block}.prose a{text-underline-offset:3px;text-decoration:underline 1px}.prose strong{color:var(--ink);font-weight:600}.prose blockquote{font-family:var(--serif);color:var(--ink);margin:36px 0;padding:0;font-size:25px;font-weight:400;line-height:1.45}.prose blockquote p{margin-bottom:0}.prose hr{border:0;border-top:1px solid var(--line);margin:44px 0}.prose .video{aspect-ratio:16/9;background:var(--surface);border-radius:4px;margin:36px 0;position:relative;overflow:hidden}.prose .video iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.prose table{border-collapse:collapse;width:100%;margin:36px 0;font-size:16px}.prose thead th{text-align:left;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border-bottom:1.5px solid var(--ink);padding:0 18px 12px 0;font-size:11.5px;font-weight:600}.prose tbody td{border-bottom:1px solid var(--line);vertical-align:top;padding:14px 18px 14px 0;line-height:1.5}.prose tbody tr:last-child td{border-bottom:none}.prose tbody tr td:first-child{color:var(--ink);font-weight:500}.rail-block{border-bottom:1px solid var(--line);margin-bottom:30px;padding-bottom:30px}.rail-block:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.rail-title{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:18px;font-size:11px;font-weight:600}.toc a{color:#3c4a41;margin-bottom:13px;font-size:14.5px;line-height:1.5;text-decoration:none;display:block}.toc a:last-child{margin-bottom:0}.toc a:hover{color:var(--green)}.toc .sub{color:var(--muted);padding-left:14px;font-size:13.5px}.share{gap:8px;display:flex}.share a,.share button{border:1px solid var(--line-strong);cursor:pointer;color:#3c4a41;background:0 0;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;padding:0;display:flex}.share a:hover,.share button:hover{border-color:var(--green);color:var(--green)}.challenge-card{background:var(--green-deep);border-radius:6px;padding:24px 26px}.challenge-card .rail-title{color:var(--lime);margin-bottom:12px}.challenge-card p{font-family:var(--serif);color:var(--paper);margin-bottom:16px;font-size:18px;line-height:1.3}.challenge-card a{color:var(--green-deep);background:var(--lime);border-radius:999px;padding:10px 18px;font-size:13.5px;font-weight:500;text-decoration:none;display:inline-block}.tags{border-top:1px solid var(--line);flex-wrap:wrap;gap:9px;padding-top:32px;display:flex}.tags span{color:var(--soft);background:#edf1e9;border-radius:999px;padding:8px 15px;font-size:13px}.author-band{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:72px}.author-band>.wrap{flex-wrap:wrap;align-items:flex-start;gap:28px;padding-top:48px;padding-bottom:48px;display:flex}.author-band img{object-fit:cover;border-radius:50%;flex-shrink:0;width:76px;height:76px}.author-band .text{flex:999 380px;min-width:0}.author-band strong{margin-bottom:10px;font-size:16px;font-weight:600;display:block}.author-band p{color:var(--soft);max-width:42em;margin-bottom:16px;font-size:15.5px;line-height:1.65}.card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:36px;display:grid}.card img{object-fit:cover;border-radius:4px;width:100%;height:180px;margin-bottom:18px;display:block}.card .cat{letter-spacing:.16em;text-transform:uppercase;color:var(--green);margin-bottom:11px;font-size:10.5px;font-weight:600;display:block}.card h3{font-family:var(--serif);letter-spacing:-.012em;font-size:20px;font-weight:500;line-height:1.26}.card h3 a{color:var(--ink);text-decoration:none}.card h3 a:hover{color:var(--green)}.section-title{font-family:var(--serif);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:40px;font-size:15px;font-weight:600}.comments{max-width:680px}.comments h2{font-family:var(--serif);letter-spacing:-.015em;margin-bottom:14px;font-size:24px;font-weight:500}.comment{margin-bottom:26px}.comment-head{flex-wrap:wrap;align-items:baseline;gap:11px;margin-bottom:11px;display:flex}.comment-head .who{font-size:15px;font-weight:600}.comment-head .when{color:var(--muted);font-size:12.5px}.comment-head .badge{letter-spacing:.12em;text-transform:uppercase;color:var(--green);background:#e6efe3;border-radius:3px;padding:3px 8px;font-size:10.5px;font-weight:600}.comment-body{color:var(--body);font-size:16.5px;line-height:1.68}.comment-body p{margin:0 0 12px}.comment-body p:last-child{margin-bottom:0}.comment-body ul,.comment-body ol{margin:0 0 12px;padding-left:20px}.comment-replies{border-left:2px solid #dde4d8;margin-left:34px;padding-left:26px}.comment-form{border-top:1px solid var(--line);margin-top:40px;padding-top:42px}.comment-form h3{font-family:var(--serif);letter-spacing:-.015em;margin-bottom:11px;font-size:23px;font-weight:500}.comment-form>p{color:var(--soft);margin-bottom:30px;font-size:15.5px;line-height:1.62}.field-row{flex-wrap:wrap;gap:18px;margin-bottom:18px;display:flex}.field{flex:230px;min-width:0}.field label{color:#3c4a41;margin-bottom:9px;font-size:12.5px;font-weight:600;display:block}.field label span{color:var(--muted);font-weight:400}.field input,.field textarea{width:100%;min-height:48px;color:var(--ink);background:#fff;border:1px solid #d5dcd0;border-radius:4px;padding:13px 15px;font-family:inherit;font-size:15.5px}.field textarea{resize:vertical;min-height:140px;line-height:1.62}.button{background:var(--green);min-height:48px;color:var(--paper);cursor:pointer;border:none;border-radius:999px;padding:0 30px;font-family:inherit;font-size:15px;font-weight:500}.button:hover{background:var(--green-deep)}.site-footer{border-top:1px solid var(--line);background:var(--surface);margin-top:0}.site-footer .top{flex-wrap:wrap;gap:48px;padding-top:60px;padding-bottom:30px;display:flex}.site-footer .about{flex:260px;min-width:0}.site-footer .about p{color:var(--muted);max-width:24em;margin-top:16px;font-size:14px;line-height:1.6}.site-footer nav{flex:0 180px;min-width:0}.site-footer nav a{color:#3c4a41;margin-bottom:11px;font-size:14.5px;text-decoration:none;display:block}.site-footer nav a:last-child{margin-bottom:0}.site-footer nav a:hover{color:var(--green)}.site-footer .bottom{border-top:1px solid var(--line);padding:22px 0 40px}.site-footer .bottom p{color:#6b7a70;font-size:12.5px}@media (width<=900px){.columns{gap:48px}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.wrap{padding:0 16px}.article-head h1{font-size:34px}.standfirst{font-size:19px}.prose{font-size:17.5px}.prose h2{font-size:25px}.card-grid{grid-template-columns:minmax(0,1fr)}.comment-replies{margin-left:0;padding-left:18px}.prose table{white-space:nowrap;display:block;overflow-x:auto}}.intro{padding-top:88px;padding-bottom:64px}.intro h1{font-family:var(--serif);letter-spacing:-.025em;font-variation-settings:"SOFT" 40, "WONK" 1;max-width:15.5em;margin-top:26px;font-size:62px;font-weight:500;line-height:1.06}.featured{flex-wrap:wrap;align-items:center;gap:48px;padding-bottom:72px;display:flex}.featured .media{flex:440px;min-width:0}.featured .media img{object-fit:cover;border-radius:4px;width:100%;height:376px;display:block}.featured .text{flex:999 360px;min-width:0}.featured .labels{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;display:flex}.featured .badge{letter-spacing:.16em;text-transform:uppercase;color:var(--ink);background:var(--lime);border-radius:3px;padding:5px 11px;font-size:11px;font-weight:600}.featured h2{font-family:var(--serif);letter-spacing:-.018em;margin-bottom:20px;font-size:38px;font-weight:500;line-height:1.14}.featured h2 a{color:var(--ink);text-decoration:none}.featured h2 a:hover{color:var(--green)}.featured p{color:var(--soft);margin-bottom:26px;font-size:17px;line-height:1.62}.featured .when{color:var(--muted);font-size:13px}.chips{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.chips>.wrap{flex-wrap:wrap;align-items:center;gap:10px;padding-top:24px;padding-bottom:24px;display:flex}.chips .label{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-right:14px;font-size:11.5px;font-weight:600}.chips a{color:var(--ink);background:#edf1e9;border-radius:999px;padding:9px 17px;font-size:14px;text-decoration:none}.chips a:hover{background:var(--lime)}.chips a b{color:var(--muted);font-weight:400}.pagination{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:56px;padding-top:28px;display:flex}.pagination p{color:var(--muted);font-size:13px}.pagination a{color:var(--ink);border:1px solid var(--line-strong);border-radius:999px;padding:12px 24px;font-size:14.5px;text-decoration:none}.pagination a:hover{border-color:var(--green);color:var(--green)}.series{background:var(--green-deep);color:#edf1e9}.series>.wrap{flex-wrap:wrap;gap:64px;padding-top:76px;padding-bottom:76px;display:flex}.series .lead{flex:300px;min-width:0}.series .eyebrow{color:var(--lime)}.series h2{font-family:var(--serif);letter-spacing:-.022em;font-variation-settings:"SOFT" 40, "WONK" 1;margin:22px 0 20px;font-size:44px;font-weight:500;line-height:1.08}.series .lead p{color:#b6c6b8;margin-bottom:22px;font-size:16px;line-height:1.62}.series .cta{color:var(--green-deep);background:var(--lime);border-radius:999px;padding:13px 26px;font-size:14.5px;font-weight:500;text-decoration:none;display:inline-block}.series ol{flex:999 420px;min-width:0;margin:0;padding:0;list-style:none}.series li{border-bottom:1px solid #22513a;align-items:baseline;gap:22px;padding:17px 0;display:flex}.series li:last-child{border-bottom:0}.series li span{font-family:var(--serif);color:var(--lime);flex-shrink:0;width:36px;font-size:15px}.series li a{color:#edf1e9;font-size:17px;text-decoration:none}.series li a:hover{color:var(--lime)}@media (width<=640px){.intro{padding-top:56px;padding-bottom:44px}.intro h1{font-size:38px}.featured h2{font-size:28px}.featured .media img{height:240px}.series h2{font-size:34px}.series>.wrap{gap:40px}}.meter{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:30px;display:flex}.meter .track{background:#22513a;border-radius:3px;width:180px;height:6px;display:block;overflow:hidden}.meter .fill{background:var(--lime);border-radius:3px;height:6px;display:block}.meter p{color:#b6c6b8;font-size:14px}.meter strong{color:#edf1e9}.series-hero{background:var(--green-deep);color:#edf1e9}.series-hero>.wrap{padding-top:80px;padding-bottom:80px}.series-hero .eyebrow{color:var(--lime)}.series-hero h1{font-family:var(--serif);letter-spacing:-.028em;font-variation-settings:"SOFT" 40, "WONK" 1;margin:24px 0 26px;font-size:64px;font-weight:500;line-height:1.04}.series-hero p{color:#c3d2c5;max-width:34em;margin-bottom:36px;font-size:19px;line-height:1.62}.tier-head{margin-bottom:30px}.tier-head .name{letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;font-size:11px;font-weight:600}.tier-head .blurb{color:var(--muted);font-size:14.5px;line-height:1.6}.challenge-list{margin:0 0 56px;padding:0;list-style:none}.challenge-list li{border-top:1px solid var(--line);flex-wrap:wrap;align-items:flex-start;gap:26px;padding:24px 0;display:flex}.challenge-list li:last-child{border-bottom:1px solid var(--line)}.challenge-list li.is-latest{background:var(--surface);padding-left:14px;padding-right:14px}.challenge-number{background:var(--green);width:46px;height:46px;color:var(--paper);font-family:var(--serif);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;font-weight:600;display:flex}.is-latest .challenge-number{background:var(--lime);color:var(--ink)}.challenge-list .body{flex:999 320px;min-width:0}.challenge-list h2{font-family:var(--serif);letter-spacing:-.015em;margin-bottom:9px;font-size:23px;font-weight:500;line-height:1.22}.challenge-list h2 a{color:var(--ink);text-decoration:none}.challenge-list h2 a:hover{color:var(--green)}.challenge-list .deeper{color:var(--muted);font-size:13.5px;line-height:1.55}.challenge-list .go{color:var(--ink);border:1px solid var(--line-strong);border-radius:999px;flex-shrink:0;padding:11px 20px;font-size:14px;text-decoration:none}.challenge-list .go:hover{border-color:var(--green);color:var(--green)}.is-latest .go{background:var(--green);color:var(--paper);border-color:var(--green)}.is-latest .go:hover{background:var(--green-deep);color:var(--paper)}.todo-block{border:1px dashed var(--line-strong);border-radius:6px;padding:30px 32px}.todo-block p:first-child{font-family:var(--serif);letter-spacing:-.015em;margin-bottom:10px;font-size:21px;font-weight:500}.todo-block p:last-child{color:var(--soft);max-width:44em;font-size:15px;line-height:1.62}.challenge-head{align-items:center;gap:18px;margin-bottom:26px;display:flex}.challenge-head .challenge-number{background:var(--lime);width:56px;height:56px;color:var(--ink);font-size:22px}.challenge-head .where{color:var(--muted);font-size:13.5px}.steps{background:var(--green-deep);color:#edf1e9;border-radius:6px;margin:0 0 40px;padding:40px 44px}.steps .rail-title{color:var(--lime);margin-bottom:26px}.steps ol{margin:0;padding:0;list-style:none}.steps li{align-items:flex-start;gap:18px;padding-bottom:20px;display:flex}.steps li:last-child{padding-bottom:0}.steps li span{font-family:var(--serif);color:var(--lime);flex-shrink:0;width:20px;font-size:16px;line-height:1.5}.steps li p{font-size:17.5px;line-height:1.52}.deepen{background:var(--surface);border-radius:6px;margin:48px 0;padding:36px 40px}.deepen h2{font-family:var(--serif);letter-spacing:-.015em;margin-bottom:10px;font-size:22px;font-weight:500}.deepen>p{color:var(--soft);margin-bottom:26px;font-size:15.5px;line-height:1.62}.deepen a{border-top:1px solid #dde4d8;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;padding:16px 0;text-decoration:none;display:flex}.deepen a .what{font-family:var(--serif);color:var(--ink);flex:999 240px;font-size:18px;line-height:1.32}.deepen a:hover .what{color:var(--green)}.deepen a .meta{color:var(--muted);flex-shrink:0;font-size:13px}.series-nav{border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin-bottom:56px;padding:26px 0;display:flex}.series-nav a{text-decoration:none}.series-nav .label{color:var(--muted);margin-bottom:5px;font-size:12px;display:block}.series-nav .title{font-family:var(--serif);color:var(--ink);font-size:17px;line-height:1.3;display:block}.series-nav .all{color:var(--ink);border:1px solid var(--line-strong);border-radius:999px;flex-shrink:0;padding:12px 22px;font-size:14px}@media (width<=640px){.series-hero h1{font-size:42px}.steps{padding:28px 24px}.deepen{padding:26px 24px}}.needs-content{border:2px dashed var(--line-strong);background:var(--surface);border-radius:6px;margin:40px 0;padding:30px 32px}.needs-content .flag{letter-spacing:.16em;text-transform:uppercase;color:var(--ink);background:var(--lime);border-radius:3px;margin-bottom:18px;padding:5px 11px;font-size:10.5px;font-weight:700;display:inline-block}.needs-content h2{font-family:var(--serif);letter-spacing:-.015em;margin-bottom:12px;font-size:21px;font-weight:500}.needs-content p{color:var(--soft);max-width:44em;margin-bottom:12px;font-size:15.5px;line-height:1.65}.needs-content p:last-child{margin-bottom:0}.needs-content code{background:#e4e9df;border-radius:3px;padding:2px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13.5px}.thread-notice{color:var(--soft);background:var(--surface);border-radius:4px;margin-bottom:36px;padding:16px 20px;font-size:14.5px;line-height:1.6}.correction{border-left:3px solid var(--lime);background:var(--surface);border-radius:0 4px 4px 0;margin-top:14px;padding:16px 20px}.correction .when{letter-spacing:.14em;text-transform:uppercase;color:var(--green);margin-bottom:9px;font-size:10.5px;font-weight:700}.correction p{color:var(--body);margin:0 0 10px;font-size:15.5px;line-height:1.62}.correction p:last-child{margin-bottom:0}.toc a{padding-left:12px;transition:color .12s;position:relative}.toc a:before{content:"";background:0 0;border-radius:2px;width:3px;position:absolute;top:2px;bottom:2px;left:0}.toc a[aria-current]{color:var(--ink);font-weight:600}.toc a[aria-current]:before{background:var(--lime)}.toc .sub{padding-left:24px}.toc .sub:before{left:12px}.level{letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;border-radius:999px;padding:5px 11px;font-size:10.5px;font-weight:600;display:inline-block}.level-arrancar{color:var(--green);background:#edf1e9}.level-ritmo{background:var(--lime);color:var(--ink)}.level-experto{background:var(--green-deep);color:var(--paper)}.challenge-list .row-labels{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:9px;display:flex}.challenge-list .row-labels:empty{display:none}.nav-404{flex-wrap:wrap;gap:10px;display:flex}.nav-404 a{border:1px solid var(--line);color:var(--ink);border-radius:999px;padding:9px 16px;font-size:15px;text-decoration:none;transition:border-color .15s,color .15s}.nav-404 a:hover{border-color:var(--green);color:var(--green)}
