@font-face{font-family:Hupi Serif;src:url(/fonts/hupi-serif-650.woff2)format("woff2");font-style:normal;font-weight:650;font-display:swap}:root{--paper:#f8f7f1;--ink:#20251f;--muted:#60655c;--line:#d6d8cd;--yellow:#edee67;--dark:#20251f;--serif:"Hupi Serif","Songti SC",serif;--sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;--gap:clamp(24px,5vw,76px);color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{background:var(--paper);color:var(--ink);font:16px/1.85 var(--sans);-webkit-font-smoothing:antialiased;margin:0}a{color:inherit;text-underline-offset:5px;text-decoration-thickness:1px}a:hover{color:#595c15}button,input,summary{font:inherit}button,summary{cursor:pointer}button{color:inherit}button,a,input,summary{outline-offset:5px}:focus-visible{outline:2px solid #777a17}::selection{background:var(--yellow);color:var(--ink)}input{caret-color:#777a17}h1,h2,h3,p{margin:0}h1,h2,h3{text-wrap:balance;line-height:1.4}h1,h2{font-family:var(--serif);letter-spacing:-.025em;font-weight:650}h1{font-size:clamp(34px,4.5vw,66px)}h2{font-size:clamp(26px,3vw,38px)}h3{font-size:21px;font-weight:600}img{max-width:100%;height:auto;display:block}svg{flex-shrink:0}time,.tabular{font-variant-numeric:tabular-nums}.shell{width:min(1200px,100% - 80px);margin-inline:auto}.site-header{border-bottom:1px solid var(--line)}.header-inner{align-items:center;gap:42px;min-height:96px;display:flex}.wordmark{letter-spacing:-.025em;white-space:nowrap;align-items:center;gap:9px;font-size:25px;font-weight:700;text-decoration:none;display:inline-flex}.wordmark-dot{color:#777a17;margin-left:-5px}.brand-mark{background:var(--yellow);border:1px solid var(--ink);width:23px;height:26px;display:block;transform:rotate(-7deg)}.header-inner nav{gap:27px;margin-left:auto;display:flex}.header-inner nav a{white-space:nowrap;padding:12px 0;font-size:14px;text-decoration:none}.header-inner nav a[aria-current]{border-bottom:2px solid var(--ink)}.search-link{align-items:center;gap:7px;font-size:14px;text-decoration:none;display:flex}.skip-link{z-index:9;background:var(--yellow);padding:12px;position:absolute;top:-100px;left:16px}.skip-link:focus{top:8px}.hero{grid-template-columns:1.05fr 1fr;align-items:center;gap:60px;padding-block:76px 58px;display:grid}.hero h1{max-width:10em;font-size:clamp(38px,4.8vw,66px);line-height:1.35}.hero h1 em{background:linear-gradient(transparent 67%,var(--yellow) 67%);font-style:normal}.hero p{color:var(--muted);max-width:33em;margin-top:25px}.hero-visual{background:var(--dark);padding:15px;position:relative;transform:rotate(1.5deg)}.hero-visual img{aspect-ratio:1.9;object-fit:cover;width:100%}.hero-caption{color:#f5f5e9;justify-content:space-between;padding:14px 7px 3px;font-size:12px;display:flex}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:29px;display:flex}.button{border:1px solid var(--ink);background:var(--ink);color:var(--paper);justify-content:center;align-items:center;gap:24px;min-height:46px;padding:10px 20px;font-size:14px;text-decoration:none;transition:background .2s,color .2s;display:inline-flex}.button:hover{color:#fff;background:#41483c}.button.secondary{color:var(--ink);background:0 0}.button.secondary:hover{background:var(--yellow)}.topics-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-wrap:wrap;gap:12px;padding:19px 0;display:flex}.topics-strip a{border-right:1px solid var(--line);margin-right:8px;padding-right:20px;font-size:13px;text-decoration:none}.topics-strip a:last-child{border:0}.section{padding-block:62px}.section-heading{justify-content:space-between;align-items:baseline;gap:25px;margin-bottom:28px;display:flex}.section-heading a{white-space:nowrap;font-size:14px}.section-intro{max-width:48em;color:var(--muted);margin-top:16px;margin-bottom:34px}.article-row{border-top:1px solid var(--line);grid-template-columns:164px 1fr 20px;align-items:start;gap:28px;padding:30px 0;display:grid}.article-row:last-child{border-bottom:1px solid var(--line)}.article-meta{color:var(--muted);flex-direction:column;gap:6px;font-size:12px;display:flex}.article-row h3 a{text-decoration:none}.article-row h3 a:hover{text-decoration:underline}.article-row p{color:var(--muted);max-width:65ch;margin-top:11px;font-size:14px}.row-arrow{font-size:23px;line-height:1.3}.compact .article-row{grid-template-columns:130px 1fr 18px}.projects-section{border-block:1px solid var(--line);background:#e9eadf}.project-grid{grid-template-columns:repeat(3,1fr);gap:40px;display:grid}.project-item{border-top:2px solid var(--ink);flex-direction:column;align-items:start;padding-top:23px;display:flex}.project-item h3 a{text-decoration:none}.project-item p{color:#555b50;margin:16px 0 25px;font-size:14px}.project-item .project-link{margin-top:auto;font-size:13px}.small-label{color:var(--muted);margin-bottom:12px;font-size:12px}.home-bottom{grid-template-columns:1.2fr 1fr;gap:75px;display:grid}.home-bottom p{color:var(--muted);margin:20px 0}.movement-note{background:var(--yellow);padding:34px 40px}.movement-note p{color:#4f531c;font-size:14px}.follow-band{background:var(--yellow);border-block:1px solid #cdce63;margin-top:25px}.follow-inner{justify-content:space-between;align-items:center;gap:30px;padding-block:42px;display:flex}.follow-inner h2{font-size:29px}.follow-inner p{color:#4f531c;margin-top:8px;font-size:14px}.qr-reveal{flex-shrink:0;position:relative}.qr-reveal summary{border-bottom:1px solid var(--ink);gap:30px;padding:10px 0;font-size:15px;list-style:none;display:flex}.qr-reveal summary::-webkit-details-marker{display:none}.qr-panel{z-index:5;border:1px solid var(--line);background:#fff;width:264px;padding:22px;position:absolute;bottom:64px;right:0;box-shadow:0 12px 35px #20251f26}.qr-panel p{color:var(--muted);font-size:12px}.site-footer{padding-block:38px 25px}.footer-main{align-items:center;gap:30px;display:flex}.footer-main p{color:var(--muted);font-size:13px}.footer-main>a:last-child{margin-left:auto;font-size:14px}.footer-bottom{border-top:1px solid var(--line);color:var(--muted);align-items:center;gap:22px;margin-top:30px;padding-top:20px;font-size:12px;display:flex}.footer-bottom a{text-decoration:none}.footer-bottom button{color:inherit;background:0 0;border:0;padding:0;font-size:12px}.page-header{max-width:900px;padding-block:58px 39px}.page-header p{color:var(--muted);max-width:52em;margin-top:20px;font-size:17px}.breadcrumbs{color:var(--muted);flex-wrap:wrap;gap:10px;margin-bottom:24px;font-size:12px;display:flex}.breadcrumbs a{text-decoration:none}.page-body{padding-bottom:60px}.filter-links{flex-wrap:wrap;gap:15px;margin-bottom:28px;display:flex}.filter-links a{border:1px solid var(--line);border-radius:14px;padding:5px 13px;font-size:13px;text-decoration:none}.filter-links a:hover{background:var(--yellow)}.reading-grid{border-top:1px solid var(--line);grid-template-columns:210px minmax(0,740px);justify-content:center;gap:56px;padding-block:45px 80px;display:grid}.reading-aside{color:var(--muted);align-self:start;font-size:13px;position:sticky;top:28px}.reading-aside p{margin-bottom:15px}.reading-aside nav a{padding:5px 0;text-decoration:none;display:block}.reading-main{min-width:0}.prose{overflow-wrap:anywhere;max-width:72ch;font-size:17px;line-height:1.95}.prose h2{margin-top:44px;margin-bottom:18px;scroll-margin-top:30px;font-size:27px}.prose h3{margin-top:32px;margin-bottom:14px;font-size:21px}.prose h1{margin:30px 0 18px;font-size:33px}.prose p{margin:18px 0}.prose li{margin:9px 0}.prose ul,.prose ol{padding-left:1.5em}.prose a{color:#5b601a}.prose blockquote{background:#eeeee2;margin:25px 0;padding:17px 25px}.prose blockquote p{margin:0}.prose pre{color:#f4f4e8;background:#23291f;border-radius:8px;max-width:100%;padding:47px 23px 24px;font:13px/1.8 ui-monospace,SFMono-Regular,Consolas,monospace;position:relative;overflow:auto}.prose pre code{white-space:pre;word-break:normal;background:0 0;padding:0}.prose code{background:#e9eadf;border-radius:3px;padding:3px 5px;font:13px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace}.copy-code{color:#edee96;background:0 0;border:0;padding:4px 10px;font-size:12px;position:absolute;top:9px;right:15px}.prose table{border-collapse:collapse;max-width:100%;margin:25px 0;font-size:14px;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--line);text-align:left;min-width:100px;padding:12px 16px}.prose th{background:#e9eadf}.prose img{object-fit:contain;max-height:650px;margin:25px auto}.notice{color:#50574b;background:#edeee0;margin-bottom:28px;padding:18px 22px;font-size:13px}.article-footer{border-top:1px solid var(--line);margin-top:45px;padding-top:25px;font-size:14px}.related{padding-top:30px}.related h2{font-size:24px}.empty-state{border-top:1px solid var(--line);max-width:700px;padding:35px 0 65px}.empty-state p{color:var(--muted);margin:15px 0}.skill-list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:55px;display:grid}.skill-item{border-top:1px solid var(--line);padding:27px 0}.skill-item h2{font-family:var(--sans);font-size:22px;font-weight:600}.skill-item h2 a{text-decoration:none}.skill-item p{color:var(--muted);margin:12px 0;font-size:14px}.skill-item small{color:var(--muted);font-size:12px}.weekly-table{border-collapse:collapse;width:100%;margin-top:35px;font-size:14px}.weekly-table th,.weekly-table td{text-align:left;border-bottom:1px solid var(--line);padding:16px 12px}.weekly-table th{color:var(--muted);font-weight:500}.consent-panel{z-index:20;background:var(--paper);border:1px solid var(--ink);width:min(440px,100% - 40px);padding:24px;font-size:13px;position:fixed;bottom:20px;left:20px;box-shadow:0 9px 30px #20251f25}.consent-panel[hidden]{display:none}.consent-panel>div{gap:10px;margin-top:15px;display:flex}.toast{background:var(--ink);color:var(--paper);padding:8px 20px;position:fixed;bottom:15px;left:50%;transform:translate(-50%)}.about-grid{grid-template-columns:1.35fr 1fr;align-items:start;gap:70px;display:grid}.about-grid img{margin-top:8px}.toc-toggle{display:none}.pagefind-ui{--pagefind-ui-scale:.9;--pagefind-ui-primary:#545b20;--pagefind-ui-text:#20251f;--pagefind-ui-background:#f8f7f1;--pagefind-ui-border:#d6d8cd;--pagefind-ui-border-radius:8px;--pagefind-ui-font:var(--sans)}@media (width>=900px){.hero-visual{animation:.7s cubic-bezier(.16,1,.3,1) both arrive}@keyframes arrive{0%{filter:blur(3px);transform:translateY(10px)rotate(0)}to{filter:blur();transform:translateY(0)rotate(1.5deg)}}}@media (width<=1000px){.header-inner{gap:20px}.header-inner nav{gap:18px}.hero{gap:35px}.reading-grid{grid-template-columns:165px minmax(0,1fr);gap:30px}.project-grid{gap:27px}.home-bottom{gap:35px}}@media (width<=760px){.shell{width:calc(100% - 40px)}.header-inner{flex-wrap:wrap;gap:12px;padding-block:18px 0}.wordmark{font-size:23px}.header-inner nav{order:3;justify-content:space-between;gap:8px;width:100%;margin:0;overflow:auto}.header-inner nav a{padding:12px 0;font-size:12px}.search-link{margin-left:auto}.search-link span{display:none}.hero{grid-template-columns:1fr;gap:35px;padding-block:40px}.hero h1{max-width:12em;font-size:clamp(28px,9vw,36px)}.hero p{margin-top:20px;font-size:15px}.hero-visual{max-width:520px;transform:none}.hero-caption{font-size:11px}.topics-strip{gap:9px}.topics-strip a{margin-right:0;padding-right:9px;font-size:12px}.section{padding-block:40px}.section-heading{margin-bottom:22px}.section-heading a{font-size:12px}.article-row,.compact .article-row{grid-template-columns:1fr 18px;gap:10px;padding:23px 0}.article-meta{flex-direction:row;grid-column:1/-1;gap:15px;font-size:11px}.article-row h3{font-size:19px}.article-row p{font-size:13px}.project-grid{grid-template-columns:1fr;gap:32px}.project-item p{margin:12px 0 17px}.home-bottom{grid-template-columns:1fr;gap:35px}.movement-note{padding:26px}.follow-inner{padding-block:32px;display:block}.follow-inner h2{font-size:27px}.follow-inner p{font-size:13px}.qr-reveal{width:fit-content;margin-top:20px}.qr-panel{left:0;right:auto}.footer-main{flex-wrap:wrap;gap:8px 20px}.footer-main p{order:3;width:100%;font-size:12px}.footer-bottom{flex-wrap:wrap;gap:13px;font-size:11px}.footer-bottom button{font-size:11px}.page-header{padding-block:37px 30px}.page-header h1{font-size:33px}.page-header p{font-size:15px}.reading-grid{padding-block:25px 45px;display:block}.reading-aside{border-bottom:1px solid var(--line);margin-bottom:24px;padding-bottom:18px;position:static}.reading-aside nav{flex-wrap:wrap;gap:15px;display:flex}.reading-aside p{margin-bottom:5px;margin-right:13px;font-size:12px;display:inline-block}.prose{font-size:16px}.prose h2{margin-top:33px;font-size:24px}.prose h3{font-size:20px}.skill-list{grid-template-columns:1fr}.about-grid{grid-template-columns:1fr;gap:24px}.about-grid img{max-width:500px}.weekly-scroll{overflow:auto}.weekly-table{min-width:500px}.breadcrumbs{margin-bottom:19px;font-size:11px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}.article-toc{border-bottom:1px solid var(--line);max-height:45vh;margin-bottom:20px;padding-bottom:15px;overflow:auto}.article-toc a{margin-bottom:5px;font-size:12px;line-height:1.65}@media (width<=760px){.reading-aside .article-toc{max-height:150px;display:block}.article-toc a{margin-right:15px;display:inline-block}}
