@font-face{font-family:Space;src:url('/assets/space-grotesk-latin.woff2') format('woff2');font-weight:300 700;font-display:swap}
:root{--ink:#184d36;--forest:#123c2b;--paper:#f5f7ec;--lime:#d7f38d;--line:#cbd5bd;--mono:ui-monospace,'SFMono-Regular',Consolas,monospace;--sans:Space,'Helvetica Neue',Arial,'PingFang SC','Microsoft YaHei',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid #cc793b;outline-offset:6px}button:active{transform:translateY(1px)}::selection{background:#d7f38d;color:var(--forest)}.skip{position:fixed;top:10px;left:10px;z-index:30;transform:translateY(-150%);background:var(--lime);padding:12px}.skip:focus{transform:none}.page-shell{max-width:1600px;margin:0 auto;padding:0 64px}.site-header{height:116px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{display:flex;align-items:center;gap:13px;font-size:17px;font-weight:700;letter-spacing:.04em}.pixel-mark{background:var(--ink);color:var(--paper);font-size:29px;width:43px;height:43px;display:grid;place-items:center;font-family:var(--mono);clip-path:polygon(0 7px,7px 7px,7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) calc(100% - 7px),calc(100% - 7px) 100%,0 100%)}.wordmark-sub{display:block;font-size:12px;line-height:1.6;font-weight:400;letter-spacing:0}.site-header nav{display:flex;align-items:center;gap:35px;font-family:var(--mono);font-size:14px}.site-header nav a{padding:9px 0}.site-header nav a:hover,.site-header nav a[aria-current]{border-bottom:1px solid var(--ink)}.language{background:transparent;border:1px solid var(--line);padding:9px 12px;font-family:var(--mono);font-size:13px}.language span{opacity:.45}.hero{display:grid;grid-template-columns:43% 57%;padding-top:44px}.hero-copy{padding:30px 24px 38px 0;display:flex;flex-direction:column;justify-content:space-between}.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.15em;line-height:1.6;margin:0 0 26px}.hero h1{font-size:clamp(54px,6.5vw,98px);font-weight:600;line-height:.99;letter-spacing:-.065em;margin:0;position:relative}.outlined{-webkit-text-stroke:1.5px var(--ink);color:transparent}.headline-spark{font-size:.68em;display:inline-block;margin-left:.27em;vertical-align:20%;font-weight:400}.hero-bottom{padding-top:36px}.hero-bottom p{font-size:17px;line-height:1.65;margin:0 0 25px;max-width:390px}.primary-link{display:inline-flex;justify-content:space-between;align-items:center;gap:28px;padding:16px 21px;background:var(--ink);color:var(--paper);font-size:14px;font-weight:500;transition:background .2s,transform .2s;clip-path:polygon(0 0,calc(100% - 6px) 0,calc(100% - 6px) 6px,100% 6px,100% 100%,6px 100%,6px calc(100% - 6px),0 calc(100% - 6px))}.primary-link:hover{background:#287447;transform:translateY(-2px)}.primary-link>span:last-child{font-size:19px}.park-frame{position:relative;min-height:585px;background:#91bd74;overflow:hidden;clip-path:polygon(0 12px,12px 12px,12px 0,calc(100% - 12px) 0,calc(100% - 12px) 12px,100% 12px,100% calc(100% - 12px),calc(100% - 12px) calc(100% - 12px),calc(100% - 12px) 100%,12px 100%,12px calc(100% - 12px),0 calc(100% - 12px))}.park-image{position:absolute;width:100%;height:100%;object-fit:cover;object-position:75% center;image-rendering:pixelated}.park-label{position:absolute;top:24px;left:26px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;background:var(--paper);padding:10px 12px;display:flex;align-items:center;gap:8px}.park-label-square{height:7px;width:7px;background:var(--ink)}.park-caption{position:absolute;top:78px;left:28px;background:#f5f7ece8;padding:10px 12px;font-family:var(--mono);font-size:13px;font-weight:700;line-height:1.5;letter-spacing:.025em;color:#173e2d;text-shadow:0 1px #eff6d2}.dog-track{position:absolute;left:0;right:0;bottom:50px;height:96px;overflow:hidden;pointer-events:none}.dog-runner{width:120px;height:96px;position:absolute;left:-120px;animation:run-across 13s linear infinite;animation-delay:-4s}.corgi-sprite{width:120px;height:96px;background-image:url('/assets/corgi-run.png');background-repeat:no-repeat;background-size:720px 240px;background-position:0 -66px;image-rendering:pixelated;animation:corgi-steps .65s steps(6) infinite}.motion-toggle{position:absolute;right:21px;bottom:18px;border:0;background:#f5f7eced;padding:9px 11px;font-family:var(--mono);font-size:12px}.motion-paused .dog-runner,.motion-paused .corgi-sprite{animation-play-state:paused}.hero-strip{grid-column:1/-1;display:flex;justify-content:space-between;gap:16px;padding:22px 0;border-bottom:1px solid var(--line);font-family:var(--mono);letter-spacing:.1em;font-size:11px}.hero-strip span:nth-child(even){font-size:17px;line-height:.6}.about-section{display:grid;grid-template-columns:43% 57%;padding:106px 0 100px;border-bottom:1px solid var(--line)}.section-label>span{font-family:var(--mono);font-size:12px;letter-spacing:.14em}.section-label h2{font-size:34px;line-height:1.2;letter-spacing:-.045em;margin:25px 0 0}.about-copy{padding-left:35px;max-width:660px}.about-copy h3{font-size:27px;letter-spacing:-.03em;margin:0 0 22px}.about-copy p{font-size:17px;line-height:1.8;margin:0 0 19px;color:#3f614b}.interest-line{display:flex;flex-wrap:wrap;gap:14px 25px;padding-top:14px;font-family:var(--mono);font-size:11px;letter-spacing:.04em}.projects-section{padding:88px 0}.section-top{display:flex;align-items:end;justify-content:space-between;margin-bottom:36px;gap:25px}.section-top .eyebrow{margin-bottom:18px}.section-top h2{font-size:42px;letter-spacing:-.05em;line-height:1.2;margin:0}.text-link{display:inline-flex;align-items:center;gap:24px;font-size:14px;border-bottom:1px solid currentColor;padding-bottom:6px}.text-link:hover{color:#398945}.project-row{display:grid;grid-template-columns:6% 56% 38%;padding:37px 0;border-top:1px solid var(--line)}.project-row:last-child{border-bottom:1px solid var(--line)}.project-no{font-family:var(--mono);font-size:12px;padding-top:6px}.project-detail{padding-right:48px}.tags{display:flex;gap:10px;flex-wrap:wrap;font-family:var(--mono);font-size:10px;letter-spacing:.06em}.tags span{border:1px solid var(--line);padding:5px 7px}.project-detail h3{font-size:36px;line-height:1.2;letter-spacing:-.045em;margin:21px 0 14px;font-weight:500}.project-chinese{font-size:21px;margin-left:10px;opacity:.5;letter-spacing:0}html[lang=zh-CN] .project-chinese{display:none}.project-detail p{font-size:16px;line-height:1.7;color:#4a6754;max-width:480px;margin:0 0 25px}.project-links{display:flex;gap:28px;align-items:center;flex-wrap:wrap}.quiet-link{font-size:13px;opacity:.7}.quiet-link:hover{opacity:1}.roadmap-art{position:relative;background:#dce7ca;min-height:230px;overflow:hidden}.map-label{position:absolute;top:26px;left:28px;font-family:var(--mono);font-size:10px;letter-spacing:.15em}.map-line{position:absolute;left:20%;top:36%;width:55%;height:29%;border-top:2px solid var(--ink);border-right:2px solid var(--ink)}.map-line:after{content:'';position:absolute;top:100%;right:-1px;width:50%;border-bottom:2px solid var(--ink)}.map-node{position:absolute;width:15px;height:15px;background:var(--ink);outline:6px solid #dce7ca}.n1{left:19%;top:33%}.n2{left:72%;top:33%}.n3{left:47%;top:63%;background:#8fba5b}.map-note{position:absolute;bottom:23px;right:25px;font-family:var(--mono);font-size:11px;line-height:1.4}.nba-art{background:#184d36;color:#d7f38d;min-height:230px;padding:21px 30px;display:flex;justify-content:space-between;align-items:end;overflow:hidden}.nba-art>span{font-size:68px;letter-spacing:-.08em;line-height:.88;font-weight:700;transform:rotate(-6deg)}.nba-art em{font-style:normal;color:transparent;-webkit-text-stroke:1px #d7f38d}.nba-art small{font-family:var(--mono);font-size:9px;writing-mode:vertical-rl;letter-spacing:.1em}.closing-note{position:relative;margin:0 0 58px;background:var(--lime);padding:55px 55px 50px;overflow:hidden}.closing-note h2{font-weight:500;font-size:58px;line-height:1.02;letter-spacing:-.05em;margin:0 0 30px}.closing-note .eyebrow{margin-bottom:23px}.closing-asterisk{font-size:290px;position:absolute;right:8%;top:30px;font-weight:400;line-height:1;color:#184d36}.site-footer{display:grid;grid-template-columns:1fr 2fr auto auto;gap:25px;align-items:center;border-top:1px solid var(--line);padding:30px 0 40px;font-size:12px;font-family:var(--mono)}.footer-name{font-size:16px;font-weight:600;letter-spacing:-.04em}.site-footer p{margin:0;opacity:.75}.footer-year{opacity:.6}.projects-index{padding:75px 0}.projects-index h1{font-size:76px;font-weight:500;line-height:1.04;letter-spacing:-.06em;margin:0 0 24px}.index-intro{font-size:18px;line-height:1.7;margin:0 0 55px;max-width:600px}.back-home{display:inline-block;margin-top:45px;font-family:var(--mono);font-size:14px}.not-found{max-width:800px;margin:15vh auto;padding:30px}.not-found h1{font-size:55px;letter-spacing:-.05em}.not-found p{line-height:1.8}.not-found .primary-link{margin-top:20px}html[lang=zh-CN] .hero h1{font-size:clamp(54px,6.1vw,88px);line-height:1.12;letter-spacing:-.045em}html[lang=zh-CN] .about-copy p{line-height:1.95}html[lang=zh-CN] .closing-note h2{font-size:48px;line-height:1.25}@keyframes run-across{from{transform:translateX(0)}to{transform:translateX(900px)}}@keyframes corgi-steps{to{background-position:-720px -66px}}@media(min-width:1450px){@keyframes run-across{to{transform:translateX(1000px)}}}@media(max-width:1000px){.page-shell{padding:0 32px}.site-header nav{gap:22px}.hero{grid-template-columns:45% 55%}.park-frame{min-height:540px}.hero h1{font-size:64px}.hero-copy{padding-top:20px}.hero-bottom p{font-size:16px}.about-section{padding:75px 0}.about-copy{padding-left:15px}.project-detail{padding-right:25px}.closing-asterisk{right:3%;font-size:240px}.site-footer{grid-template-columns:1fr auto auto}.site-footer p{grid-column:1/-1;grid-row:2}.project-detail h3{font-size:30px}}@media(max-width:700px){.page-shell{padding:0 22px}.site-header{height:91px}.wordmark{font-size:14px;gap:9px}.pixel-mark{width:36px;height:36px;font-size:25px}.wordmark-sub{font-size:10px}.site-header nav{gap:16px;font-size:14px}.github-nav{display:none}.language{padding:7px 8px;font-size:12px}.language span{display:none}.hero{grid-template-columns:1fr;padding-top:22px}.hero-copy{padding:24px 0 32px}.hero h1{font-size:76px;line-height:.96}.hero h1 br:nth-of-type(2){display:none}.hero h1 .outlined{margin-left:.09em}.headline-spark{font-size:.58em;margin-left:.2em}.eyebrow{margin-bottom:23px}.hero-bottom{padding-top:28px;display:flex;justify-content:space-between;align-items:end;gap:20px}.hero-bottom p{font-size:14px;margin-bottom:0}.hero-bottom .primary-link{font-size:12px;padding:12px 14px;max-width:165px;gap:12px;line-height:1.4}.park-frame{min-height:420px}.park-image{object-position:center center}.park-label{top:20px;left:21px}.park-caption{left:22px;top:70px;font-size:11px}.hero-strip{padding:18px 0;font-size:8px;letter-spacing:.07em;gap:8px}.hero-strip span:nth-child(even){font-size:13px}.about-section{grid-template-columns:1fr;padding:60px 0;gap:32px}.section-label h2{font-size:34px;margin-top:15px}.about-copy{padding:0}.about-copy h3{font-size:24px}.about-copy p{font-size:16px}.interest-line{font-size:10px}.projects-section{padding:60px 0}.section-top{align-items:start}.section-top h2{font-size:32px;max-width:260px}.section-top .text-link{font-size:12px;white-space:nowrap;gap:5px}.section-top .eyebrow{font-size:10px}.project-row{grid-template-columns:30px 1fr;padding:28px 0;row-gap:25px}.project-detail{padding:0}.project-detail h3{font-size:30px}.project-detail p{font-size:16px}.roadmap-art,.nba-art{grid-column:2;min-height:200px}.closing-note{padding:34px 25px;margin-bottom:35px}.closing-note h2{font-size:42px}.closing-asterisk{font-size:140px;right:-35px;top:70px;opacity:.25}.closing-note .primary-link{position:relative;z-index:1}.site-footer{gap:18px;font-size:10px;padding:25px 0 30px}.footer-name{font-size:14px}.projects-index{padding:55px 0}.projects-index h1{font-size:53px}.index-intro{font-size:16px}.project-links{gap:20px}html[lang=zh-CN] .hero h1{font-size:68px}html[lang=zh-CN] .hero h1 br:nth-of-type(2){display:block}html[lang=zh-CN] .hero h1 .outlined{margin-left:0}html[lang=zh-CN] .closing-note h2{font-size:34px}}@media(max-width:380px){.page-shell{padding:0 16px}.site-header nav{gap:11px}.hero h1{font-size:66px}.hero-bottom{align-items:start;flex-direction:column}.park-frame{min-height:370px}.section-top h2{font-size:28px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}a{transition:none}.dog-runner,.corgi-sprite{animation-duration:1s}}
