:root{--paper:#faf7f0;--ink:#191813;--body:#49463e;--muted:#858071;--line:#dfdacd;--green:#0e7c4a}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,PingFang SC,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{color:var(--green)}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--green);outline-offset:5px}.shell{max-width:1200px;padding:0 40px;margin:auto}.masthead{justify-content:space-between;padding:28px 0 24px;border-bottom:2px solid var(--ink)}.brand,.masthead{display:flex;align-items:center}.brand{gap:13px;font-size:23px;font-weight:800;letter-spacing:-1px}.brand-icon{background:var(--green);color:var(--paper);height:43px;width:43px;display:flex;align-items:center;justify-content:center;font-family:Georgia,serif;font-style:italic;font-size:36px;letter-spacing:-5px;padding-right:6px}.brand-icon span{font-size:28px}.brand small{display:block;font-size:10px;letter-spacing:2px;font-weight:400;margin-top:5px;color:var(--muted)}.masthead nav{display:flex;gap:30px;font-size:13px}.issue-meta{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);padding:20px 0;letter-spacing:1px}.issue-meta i{display:inline-block;width:6px;height:6px;border-radius:100%;background:var(--green);margin-right:8px}.intro{display:flex;justify-content:space-between;align-items:end;padding:24px 0 36px}.kicker{font-family:monospace;font-size:11px;letter-spacing:2.5px;color:var(--green);margin:0 0 16px}.kicker,h1{font-weight:600}h1{font-family:Georgia,Songti SC,serif;font-size:clamp(35px,4.1vw,54px);line-height:1.3;letter-spacing:-1px;margin:0}h1 span{color:var(--green)}.intro>p{font-size:13px;line-height:1.9;color:var(--muted);margin:0 0 5px}.edition-line{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:12px 0;font-size:11px;color:var(--muted)}.edition-line a{color:var(--body)}.eyebrow{display:flex;gap:12px;color:var(--muted);font-family:monospace;font-size:10px;line-height:1.5}.eyebrow span:first-child{color:var(--green)}h3{font-size:19px;line-height:1.65;letter-spacing:-.25px;margin:12px 0 10px;font-weight:600}.arrow{display:inline-block;font-size:14px;padding-left:8px;color:var(--green);vertical-align:middle}.summary{color:var(--body);font-size:13px;line-height:1.95;margin:0 0 20px}.article-foot{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:10px;margin-top:auto}.article-foot a{color:var(--green)}.filters{display:flex;flex-wrap:wrap;gap:5px;padding:22px 0;border-bottom:1px solid var(--line)}.filters button{border:0;color:var(--body);background:transparent;font:inherit;font-size:11px;padding:9px 10px;cursor:pointer;border-radius:2px}.filters button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.filters button span{font-size:9px;opacity:.65;margin-left:6px}.category{padding:28px 0 10px}.section-heading{display:flex;align-items:center;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid var(--ink)}.section-heading h2{font-size:18px;font-weight:600;margin:0}.section-heading h2>span{font-family:monospace;color:var(--green);font-size:11px;margin-right:15px}.section-heading small{color:var(--muted);font-size:10px;font-family:monospace}.news-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:36px}.news{padding:25px 0;border-bottom:1px solid var(--line);gap:20px;align-items:start}.article-body,.news{display:flex;min-width:0}.article-body{flex-direction:column;flex:1 1}h3 a{overflow-wrap:anywhere}.cover{width:110px;aspect-ratio:1.3;object-fit:cover;margin-top:24px;border-radius:3px;background:var(--line)}.projects .news-grid{column-gap:30px}.projects .news{position:relative}.projects h3{font-size:18px}.metrics{display:flex;gap:12px;flex-wrap:wrap;font-size:10px;color:var(--muted);margin:0 0 18px}.growth{color:var(--green)}.category-note{font-size:13px;line-height:1.8;color:var(--muted);padding:12px 0}.closing{border-top:1px solid var(--ink);margin-top:45px;padding:38px 0;display:grid;grid-template-columns:1fr auto;gap:10px}.closing p{margin:0;font-family:Songti SC,serif;font-size:25px}.closing span{font-size:12px;color:var(--muted);grid-column:1}.closing a{font-size:12px;grid-column:2;grid-row:1/3;align-self:center;color:var(--green)}footer{border-top:1px solid var(--line);padding:25px 0 35px;display:flex;align-items:center;gap:20px;justify-content:space-between;font-size:10px;color:var(--muted)}footer p{margin:0}.footer-brand{font-size:11px;color:var(--body)}.footer-brand span{color:var(--green);margin:0 5px}.text-page{padding:65px 0 80px;min-height:70vh}.text-page h1{font-size:46px}.lede{font-size:15px;line-height:2;color:var(--body);max-width:650px;margin:22px 0 40px}.about{max-width:760px}.about h2{font-size:19px;margin-top:34px}.about p:not(.kicker){line-height:2;font-size:14px;color:var(--body)}.archive-list a{display:grid;grid-template-columns:120px 1fr 55px;gap:20px;padding:25px 0;border-top:1px solid var(--line);align-items:center;font-size:15px}.archive-list small,.archive-list time{font-family:monospace;font-size:11px;color:var(--muted)}.skip{position:absolute;left:-9999px}.skip:focus{left:20px;top:8px;background:var(--paper);padding:10px;z-index:10}@media (max-width:900px){.shell{padding:0 26px}.news-grid{column-gap:24px}.cover{width:85px}.filters{gap:1px}.filters button{padding:9px 7px}}@media (max-width:640px){.shell{padding:0 20px}.masthead{padding:23px 0 20px}.brand{font-size:18px;gap:10px}.brand small{font-size:8px;letter-spacing:1px}.brand-icon{width:34px;height:34px;font-size:29px}.brand-icon span{font-size:22px}.masthead nav{gap:17px;font-size:12px}.issue-meta{font-size:9px;letter-spacing:0;padding:16px 0}.intro{padding:24px 0 28px;display:block}.intro>p{margin-top:18px;font-size:12px}.intro>p br{display:none}h1{font-size:37px}.kicker{font-size:9px}.filters{gap:3px;padding:16px 0}.filters button{font-size:10px;padding:9px 8px}.news-grid{grid-template-columns:1fr}.news{padding:22px 0;gap:16px}.cover{width:90px}.section-heading h2{font-size:17px}.category{padding-top:25px}.summary{font-size:13px;line-height:1.9}.closing{margin-top:30px;padding:28px 0}.closing p{font-size:22px}.closing span{font-size:10px}footer{display:flex;flex-wrap:wrap;gap:13px;padding:23px 0}.text-page{padding-top:45px}.text-page h1{font-size:35px}.archive-list a{grid-template-columns:1fr auto;gap:10px}.archive-list time{grid-column:1/-1}.archive-list span{font-size:14px}}