@charset "UTF-8";
:root{--ink:#111411;--paper:#eceee4;--acid:#c9f76a;--muted:#a1a79b;--line:rgba(236,238,228,.17);--mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace;--sans:Arial,"Helvetica Neue","PingFang SC","Microsoft YaHei",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--ink);color:var(--paper);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a{-webkit-tap-highlight-color:transparent}a:focus-visible{outline:3px solid var(--acid);outline-offset:7px}::selection{color:var(--ink);background:var(--acid)}.wrap{width:min(1320px,calc(100% - 96px));margin-inline:auto}.skip-link{position:fixed;top:-80px;left:24px;background:var(--acid);color:var(--ink);padding:16px 24px;z-index:100}.skip-link:focus{top:12px}.site-header{height:96px;display:flex;align-items:center;border-bottom:1px solid var(--line);position:relative;z-index:5}.wordmark{display:flex;align-items:center;gap:12px;font-weight:800;letter-spacing:-.06em;font-size:24px}.wordmark svg{width:26px;height:26px;fill:var(--acid)}.site-header nav{margin-left:auto;display:flex;gap:36px;font-size:12px}.site-header nav a{min-height:44px;display:flex;align-items:center;gap:12px}.site-header nav a:hover{color:var(--acid)}.site-header nav span{font-size:19px}.hero{min-height:730px;position:relative;padding-top:52px;padding-bottom:96px}.hero-copy{position:relative;z-index:2;pointer-events:none;width:51%;}.hero-copy a{pointer-events:auto}.hero h1{font-size:clamp(84px,8.9vw,128px);line-height:.85;letter-spacing:-.065em;font-weight:800;margin:22px 0 28px}.hero h1>span{display:block}.shape-word{font-style:italic;color:var(--acid);letter-spacing:-.075em}.period{color:var(--paper)}.hero-intro{padding-left:3px}.hero-chinese{font-size:21px!important;color:var(--paper)!important;margin:0 0 10px!important;font-weight:600;letter-spacing:.045em}.hero-intro p{font-size:13px;line-height:1.85;color:var(--muted);margin:0}.primary-link{display:inline-flex;align-items:center;gap:49px;background:var(--acid);color:var(--ink);font-size:13px;font-weight:600;padding:16px 20px;margin:26px 0 0 3px;transition:background .2s}.primary-link span{font-size:24px;line-height:1;transition:transform .2s}.primary-link:hover{background:#dcff9e}.primary-link:hover span{transform:translate(2px,-2px)}.hero-art{position:absolute;right:-15px;top:42px;width:60%;height:600px}.sculpture-stage{position:relative;height:570px;width:100%;isolation:isolate}.sculpture-fallback,#sculpture{position:absolute;inset:0;width:100%;height:100%;z-index:1}.sculpture-fallback{opacity:1;transition:opacity .4s}.webgl-ready .sculpture-fallback{opacity:0}#sculpture{opacity:0;transition:opacity .4s;touch-action:pan-y;cursor:grab}.webgl-ready #sculpture{opacity:1}#sculpture:active{cursor:grabbing}
/* Full-width light belongs to the room, while copy and artwork stay in front. */
.hero{isolation:isolate}
.hero-art{z-index:1}
.hero-atmosphere{position:absolute;top:-96px;bottom:0;left:calc((100% - 100vw)/2);width:100vw;overflow:hidden;contain:paint;pointer-events:none;z-index:-1;background:radial-gradient(ellipse 47% 74% at 77% 46%,#28432d 0%,#18291f 48%,transparent 100%)}
.hero-atmosphere::before,.hero-atmosphere::after{content:"";position:absolute;inset:-12%;pointer-events:none}
.hero-atmosphere::before{background:radial-gradient(ellipse 36% 50% at 79% 38%,rgba(167,213,119,.27),transparent 78%),radial-gradient(ellipse 30% 46% at 47% 20%,rgba(95,165,172,.17),transparent 85%);transform:translate3d(calc(var(--scene-x,0)*110px),calc(var(--scene-y,0)*65px),0) scale(calc(1 + var(--scene-breath,0)*.035));opacity:calc(.9 + var(--scene-breath,0)*.1)}
.hero-atmosphere::after{background:linear-gradient(119deg,transparent 49%,rgba(191,225,154,.025) 51%,rgba(191,225,154,.22) 54%,rgba(191,225,154,.09) 58%,transparent 65%);mask-image:radial-gradient(ellipse 52% 77% at 72% 36%,#000 20%,transparent 85%);filter:blur(6px);transform:translate3d(calc(-2% + var(--scene-x,0)*80px),calc(var(--scene-y,0)*40px),0) rotate(calc(-3deg + var(--scene-x,0)*7deg + var(--scene-breath,0)*2deg));opacity:calc(.75 + var(--scene-breath,0)*.15)}
.sculpture-stage::after{content:"";position:absolute;pointer-events:none;z-index:0;left:4%;right:0;bottom:0;height:23%;background:radial-gradient(ellipse 26% 12% at 49% 43%,rgba(0,0,0,.8),rgba(0,0,0,.5) 65%,transparent 100%),radial-gradient(ellipse 45% 30% at 50% 46%,rgba(174,220,112,.4),rgba(104,155,75,.15) 58%,transparent 100%);transform:translate3d(calc(var(--scene-x,0)*-22px),calc(var(--scene-y,0)*7px + var(--scene-breath,0)*4px),0) rotate(calc(-5deg + var(--scene-x,0)*4deg)) scale(calc(1 - var(--scene-breath,0)*.06));opacity:calc(.9 + var(--scene-breath,0)*.1);filter:blur(5px)}
@media(max-width:760px){.hero-atmosphere{top:-77px;background:radial-gradient(ellipse 84% 46% at 73% 75%,#2a452c 0%,#18291f 48%,transparent 100%)}.hero-atmosphere::before{background:radial-gradient(ellipse 65% 36% at 85% 70%,rgba(167,213,119,.25),transparent 85%)}.hero-atmosphere::after{top:28%;background:linear-gradient(118deg,transparent 39%,rgba(191,225,154,.2) 48%,rgba(191,225,154,.08) 55%,transparent 65%);mask-image:radial-gradient(ellipse 65% 60% at 74% 63%,#000,transparent 85%)}.sculpture-stage::after{filter:blur(3px)}}
@media(prefers-reduced-motion:reduce){.hero{--scene-x:0!important;--scene-y:0!important;--scene-breath:0!important}}

.projects{background:var(--paper);color:var(--ink);padding:85px 0 12px}.projects a:focus-visible{outline-color:#517828}.section-heading{display:flex;justify-content:space-between;align-items:end;padding-bottom:52px}.section-heading h2{font-size:56px;line-height:1.15;letter-spacing:-.06em;margin:0;font-weight:600}.section-heading h2>span{font-family:Arial;font-size:65px;font-weight:300;display:inline-block;margin-left:28px;vertical-align:8px}.project{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(36px,6vw,100px);padding:48px 0 58px;border-top:1px solid #bdc3b3;align-items:center}.project-visual{position:relative;display:block;aspect-ratio:1.38;overflow:hidden;isolation:isolate}.project-screenshot{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top;opacity:0;transition:opacity .4s,transform .8s;transform:scale(1.035);z-index:3;background:#fff}.project-visual:hover .project-screenshot,.project-visual:focus-visible .project-screenshot{opacity:1;transform:scale(1)}.project h3{font-size:clamp(38px,4.4vw,62px);line-height:1;letter-spacing:-.06em;font-weight:500;margin:0 0 22px}.project h3 a:hover{text-decoration:underline;text-underline-offset:8px;text-decoration-thickness:2px}.project-subtitle{font-size:19px;line-height:1.5;margin:0 0 13px;font-weight:500}.project-description{font-size:14px;line-height:1.95;color:#606857;margin:0;max-width:340px}.project-link{margin-top:26px;font-size:13px;border-bottom:1px solid #9ba68e;display:flex;justify-content:space-between;align-items:center;padding:12px 0;max-width:340px;min-height:44px}.project-link>span{font-size:25px;transition:transform .2s}.project-link:hover>span{transform:translate(3px,-3px)}.agent-visual{background:#d5e9b1;color:#21351b}.agent-poster{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background-image:linear-gradient(#223e1710 1px,transparent 1px),linear-gradient(90deg,#223e1710 1px,transparent 1px);background-size:36px 36px}.poster-mark{font-family:Arial;font-size:132px;font-weight:800;letter-spacing:-.14em;margin-right:15px;line-height:1}.poster-mark>span{font-size:70px;color:#548832;position:relative;left:11px;bottom:-8px}.loop-diagram{display:flex;gap:11px;align-items:center;margin-top:32px;position:relative;font:11px var(--mono);letter-spacing:.04em}.loop-diagram>span{border:1px solid #6c8755;padding:12px;background:#dcecc7}.loop-diagram>i{font-style:normal;color:#6c8755;font-size:16px}.jargon-visual{background:#e6cf8b;color:#302918}.jargon-poster{position:absolute;inset:0;background-image:radial-gradient(#725e3028 .7px,transparent .7px);background-size:7px 7px;display:flex;align-items:center;justify-content:center;flex-direction:column}.monster{width:170px;height:185px;position:relative;margin-top:30px;transform:rotate(-6deg)}.monster-body{position:absolute;inset:26px 0 5px;border:3px solid #312a1d;border-radius:50% 40% 27% 33%;background:#c87949;z-index:2;box-shadow:inset -13px -9px #93563455}.eye{position:absolute;width:40px;height:43px;background:#f5efda;border:3px solid #312a1d;border-radius:50%;left:34px;top:37px;transform:rotate(8deg)}.eye+.eye{left:85px;top:29px}.eye::after{content:"";position:absolute;background:#312a1d;width:12px;height:17px;border-radius:50%;top:15px;left:13px}.monster-mouth{position:absolute;width:44px;height:14px;border:3px solid #312a1d;left:61px;top:101px;border-radius:2px 2px 30px 30px;background:#efdcb6}.horn{position:absolute;width:28px;height:65px;background:#524f36;border:3px solid #312a1d;border-radius:50% 50% 0 0;top:0;z-index:1}.horn-left{left:30px;transform:rotate(-29deg)}.horn-right{right:24px;transform:rotate(27deg)}.monster-foot{position:absolute;bottom:-10px;width:40px;height:18px;background:#524f36;border:3px solid #312a1d;border-radius:40%;z-index:3}.monster-foot.left{left:30px;transform:rotate(-10deg)}.monster-foot.right{right:18px;transform:rotate(12deg)}.monster-caption{font-size:14px;letter-spacing:.06em;font-weight:600;transform:rotate(-2deg);margin-top:27px;border-bottom:1px solid #887447;padding-bottom:8px}.project h3.chinese-project{font-size:41px;letter-spacing:-.055em;line-height:1.18;margin-bottom:15px}
.about{padding-top:95px;padding-bottom:90px}.about-body{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(36px,6vw,100px);align-items:start}.about h2{margin:0;font-size:56px;letter-spacing:-.045em;line-height:1.2;font-weight:500}.about-body>div{padding-top:5px;max-width:420px}.site-footer{border-top:1px solid var(--line)}.footer-wordmark{font-size:clamp(90px,19.3vw,274px);letter-spacing:-.085em;font-weight:800;line-height:.98;margin-left:-.045em;margin-top:37px;color:#dce4ce;white-space:nowrap}.footer-bottom{display:flex;justify-content:space-between;padding:28px 0 26px;font-size:11px;color:#819173;align-items:center;border-top:1px solid var(--line);margin-top:22px}.motion-paused .monster{animation:none!important}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.project-visual:hover .monster{animation:wiggle .4s ease-in-out}@keyframes wiggle{50%{transform:rotate(6deg)}}}
@media(min-width:1500px){.hero{min-height:780px}.hero-art{top:60px;height:640px}.sculpture-stage{height:580px}.hero h1{font-size:142px}}
@media(max-width:1100px){.wrap{width:calc(100% - 56px)}.hero{min-height:690px;padding-top:44px}.hero h1{font-size:99px}.hero-art{width:60%;right:-12px;top:60px}.sculpture-stage{height:470px}.hero-intro p{font-size:12px}.section-heading h2,.about h2{font-size:47px}.project{gap:42px;grid-template-columns:1.2fr 1fr}.project h3{font-size:46px}.project h3.chinese-project{font-size:34px}.project-subtitle{font-size:16px}.project-description{font-size:13px}.poster-mark{font-size:100px}.loop-diagram{gap:6px;font-size:9px;margin-top:24px}.loop-diagram>span{padding:9px}.monster{transform:scale(.8) rotate(-6deg);margin-top:10px}.monster-caption{margin-top:4px;font-size:11px}.project-visual{aspect-ratio:1.15}}
@media(max-width:760px){.wrap{width:calc(100% - 40px)}.site-header{height:77px}.wordmark{font-size:22px;gap:9px}.wordmark svg{width:23px}.site-header nav{gap:19px;font-size:11px}.hero{padding-top:42px;min-height:0;padding-bottom:44px}.hero-copy{width:100%}.hero h1{font-size:clamp(69px,14.9vw,112px);line-height:.86;margin:0 0 24px;letter-spacing:-.07em}.hero h1>span{display:inline}.hero h1>span:first-child::after{content:" ";}.hero h1>span:nth-child(2)::after{content:"\A";white-space:pre}.hero .shape-word{display:block;line-height:.94}.hero-chinese{font-size:17px!important;margin-bottom:8px!important}.hero-intro p{font-size:12px;line-height:1.8}.hero-intro p>br{display:none}.primary-link{margin-top:20px;gap:40px;padding:13px 16px;font-size:12px}.hero-art{position:relative;top:auto;right:auto;width:100%;height:auto;margin-top:34px}.sculpture-stage{height:290px;width:100%}.projects{padding:48px 0 0}.section-heading{align-items:start;gap:22px;padding-bottom:32px}.section-heading h2{font-size:36px}.section-heading h2>span{font-size:42px;margin-left:15px;vertical-align:4px}.project{display:flex;flex-direction:column;align-items:stretch;gap:25px;padding:28px 0 38px}.project-visual{width:100%;aspect-ratio:1.4}.project-copy{display:block}.project h3{font-size:40px;margin-bottom:14px;grid-column:1/-1}.project h3.chinese-project{font-size:31px;line-height:1.15}.project h3.chinese-project br{display:none}.project-subtitle{font-size:17px;margin-bottom:10px;grid-column:1/-1}.project-description{font-size:13px;line-height:1.9;max-width:none;grid-column:1/-1}.project-link{margin-top:18px;max-width:none;font-size:12px}.project-link>span{font-size:23px}.poster-mark{font-size:100px}.poster-mark>span{font-size:55px;left:7px}.loop-diagram{font-size:9px;gap:7px;margin-top:22px}.loop-diagram>span{padding:9px 11px}.monster{transform:scale(.78) rotate(-6deg);margin-top:0;height:169px}.monster-caption{font-size:11px;margin-top:9px}.about{padding-top:55px;padding-bottom:50px}.about-body{grid-template-columns:1fr;gap:25px}.about h2{font-size:39px;line-height:1.18}.about-body>div{max-width:500px}.footer-wordmark{font-size:18.4vw;line-height:1;margin-top:25px}.footer-bottom{font-size:10px;padding:14px 0 18px;margin-top:20px}.project-screenshot{transition:none}}
@media(max-width:370px){.hero h1{font-size:63px}.section-heading h2{font-size:32px}.project-link{min-width:93px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}



.footer-bottom>a{display:flex;align-items:center;min-height:44px}.footer-bottom>a:hover{color:var(--acid)}
.about p{font-size:15px;line-height:1.9;margin:0;color:#c5cdbb}
@media(max-width:760px){.about p{font-size:13px}}

.work-index{background:var(--paper);color:var(--ink);padding:58px 0 96px}
.work-index h2{font-size:44px;font-weight:500;letter-spacing:-.05em;margin:0 0 55px}


.index-entry{display:grid;grid-template-columns:1fr 1.4fr 44px;gap:32px;align-items:center;border-top:1px solid #bdc3b3;padding:28px 0;min-height:108px}
.index-entry:last-child{border-bottom:1px solid #bdc3b3}
.index-entry h3{font-size:25px;font-weight:500;letter-spacing:-.035em;line-height:1.25;margin:0}
.index-entry p{font-size:14px;line-height:1.85;color:#606857;margin:0}
.index-entry>span{font-size:27px;justify-self:end;transition:transform .2s}
.index-entry:is(a):hover>span{transform:translate(3px,-3px)}
.index-entry:is(a):hover h3{color:#517828}
.work-index a:focus-visible{outline-color:#517828;outline-offset:5px}
.index-pwa{grid-template-columns:1fr 1.4fr auto}
.index-actions{display:flex;gap:20px;align-items:center}
.index-actions a{display:flex;align-items:center;gap:10px;min-height:44px;font-size:13px}
.index-actions a:hover{text-decoration:underline;text-underline-offset:5px}
.blog-link{display:inline-flex;align-items:center;gap:45px;min-height:44px;margin-top:24px;color:var(--acid);font-size:15px}
.blog-link>span{font-size:25px;transition:transform .2s}.blog-link:hover>span{transform:translate(3px,-3px)}
@media(max-width:1100px){.index-entry{grid-template-columns:1fr 1.1fr 34px;gap:24px}.index-entry h3{font-size:22px}.index-entry p{font-size:13px}.index-pwa{grid-template-columns:1fr 1.1fr 130px}.index-actions{gap:10px}.index-actions a{font-size:12px;gap:6px}}
@media(max-width:760px){.site-header nav{gap:20px}.site-header nav a{gap:5px}.site-header nav span{font-size:16px}.work-index{padding:30px 0 54px}.work-index h2{font-size:34px;margin-bottom:36px}.index-entry{grid-template-columns:1fr 24px;gap:10px 16px;min-height:0;padding:25px 0}.index-entry h3{font-size:22px;grid-column:1;grid-row:1}.index-entry p{font-size:13px;grid-column:1;grid-row:2}.index-entry>span{grid-column:2;grid-row:1/3;align-self:center;font-size:25px}.index-pwa{grid-template-columns:1fr 24px}.index-actions{grid-column:1/-1;gap:30px;margin-bottom:-8px}.index-actions a{font-size:13px}.blog-link{font-size:14px;margin-top:18px}}

.featured-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;border-top:1px solid #bdc3b3;padding:48px 0 58px}
.tool-project{display:flex;flex-direction:column;min-width:0}
.tool-visual{display:block;position:relative;aspect-ratio:1.45;overflow:hidden;margin-bottom:27px;background:#dce0d7}
.tool-visual>img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;transition:transform .4s}
.workbench-visual>img{object-position:right center}
.tool-visual:hover>img{transform:scale(1.025)}
.highlighter-visual{background:#f5edc9;display:flex;align-items:center;justify-content:center}
.highlighter-paper{width:86%;background:#fff;padding:26px 22px;transform:rotate(-4deg);box-shadow:0 9px 25px #9b86461c}
.highlighter-paper img{display:block;width:100%;height:auto}
.highlighter-paper p{font-size:clamp(17px,1.65vw,24px);line-height:1.7;font-weight:600;letter-spacing:-.035em;margin:24px 0 0;white-space:nowrap}
.highlighter-paper span{background:#f8f58b;box-shadow:4px 0 #f8f58b,-2px 0 #f8f58b}
.tool-project h3{font-size:clamp(27px,2.55vw,36px);font-weight:500;line-height:1.1;letter-spacing:-.055em;margin:0 0 18px}
.tool-project h3 a:hover{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}
.tool-subtitle{font-size:16px;line-height:1.6;font-weight:500;margin:0 0 10px}
.tool-description{font-size:13px;line-height:1.9;color:#606857;margin:0 0 15px}
.tool-project .project-link{margin-top:auto;max-width:none}
@media(max-width:1100px) and (min-width:761px){.featured-tools{gap:24px}.tool-project h3{font-size:29px;min-height:64px}.tool-subtitle{min-height:52px}.highlighter-paper{padding:18px 14px}.highlighter-paper p{font-size:17px;margin-top:16px}}
@media(max-width:760px){.featured-tools{grid-template-columns:1fr;gap:34px;padding:28px 0 38px}.tool-project+.tool-project{border-top:1px solid #bdc3b3;padding-top:28px}.tool-visual{aspect-ratio:1.7;margin-bottom:23px}.tool-project h3{font-size:34px;margin-bottom:14px}.tool-subtitle{font-size:17px}.tool-description{font-size:13px}.tool-project .project-link{margin-top:3px}.highlighter-paper{width:76%;padding:19px 24px}.highlighter-paper img{max-width:235px;margin-inline:auto}.highlighter-paper p{font-size:24px;line-height:1.5;margin-top:18px}}
