:root{--paper:#f5f4f0;--ink:#262724;--muted:#74746c;--line:#deded5;--accent:#c64b25;--orange:#e6683d;--sans:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.65 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}a,button{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}a:focus-visible,button:focus-visible,canvas:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button{cursor:pointer}.skip-link{position:fixed;left:20px;top:-70px;z-index:100;background:var(--ink);color:white;padding:12px}.skip-link:focus{top:12px}.site-header{height:100px;max-width:1512px;margin:auto;padding:0 5.3%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:24px}.wordmark{display:flex;align-items:center;gap:16px;font-weight:600;font-size:14px;white-space:nowrap}.brand-mark{font-size:33px;letter-spacing:-1px;line-height:1.15;font-weight:800}.brand-mark span{color:var(--accent)}.chinese-name{font-size:12px;font-weight:400;color:var(--muted);margin-left:8px}.site-header nav{display:flex;align-items:center;gap:34px;font-size:13px}.site-header nav a{position:relative;padding:8px 0}.site-header nav a[aria-current]:after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--accent)}.site-header nav a:hover,.social-links a:hover{color:var(--accent)}.site-header nav .nav-contact{margin-left:20px;border:1px solid #c9c9bf;border-radius:5px;padding:9px 16px}.nav-contact span{margin-left:13px}.hero{max-width:1512px;margin:auto;display:grid;grid-template-columns:48% 52%;min-height:650px;height:calc(100svh - 173px);max-height:850px;padding:0 5.3%;position:relative}.hero-copy{align-self:center;padding:35px 0 45px;z-index:1;pointer-events:none}.hero-copy a{pointer-events:auto}.eyebrow{font-size:10px;font-weight:600;letter-spacing:1.8px;display:flex;align-items:center;gap:10px;line-height:1.6}.live-dot{width:6px;height:6px;display:inline-block;background:var(--accent);border-radius:50%;flex-shrink:0}.hero h1{font-size:clamp(54px,5.5vw,86px);font-weight:500;letter-spacing:-5px;line-height:1.08;margin:32px 0 28px;position:relative;white-space:nowrap}.serif-word{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-style:italic;letter-spacing:-3.5px}.orange-period{color:var(--accent)}.hero h1 .orange-period{display:inline-block;font:normal 63px Georgia;vertical-align:top;margin-left:10px;transform:translateY(-6px)}.hero-description{font-size:16px;line-height:1.85;color:#686a62;margin-bottom:30px;letter-spacing:.05px}.primary-link{display:inline-flex;align-items:center;gap:30px;background:var(--ink);color:var(--paper);padding:13px 20px;border-radius:4px;font-size:13px;transition:background .2s,transform .2s}.primary-link:hover{background:var(--accent);transform:translateY(-2px)}.primary-link span{font-size:21px;line-height:1}.hero-note{display:flex;gap:14px;margin-top:55px;font-size:11px;color:var(--muted);line-height:1.8}.note-arrow{font-size:30px;line-height:1.3;color:var(--accent)}.robot-lab{position:relative;min-width:0;margin-left:-30px;margin-right:-25px;isolation:isolate}.lab-topline{display:flex;justify-content:space-between;position:absolute;top:35px;left:35px;right:18px;font:9px/1.5 'Courier New',monospace;letter-spacing:1px;color:var(--muted);z-index:1;pointer-events:none}.lab-topline>span:first-child{display:flex;align-items:center;gap:8px}.lab-topline .live-dot{width:4px;height:4px}.robot-lab canvas{width:100%;height:100%;display:block;cursor:grab;touch-action:pan-y}.robot-lab canvas.dragging{cursor:grabbing}.scene-label{position:absolute;right:-32px;top:45%;font:8px/1.5 'Courier New',monospace;letter-spacing:1.5px;color:var(--muted);writing-mode:vertical-rl;pointer-events:none}.tiny-cross{margin-bottom:12px;color:var(--accent);font-size:16px}.reset-view{position:absolute;right:16px;top:69px;border:1px solid var(--line);border-radius:50%;width:32px;height:32px;background:transparent;font-size:20px;color:var(--muted)}.reset-view:hover{color:var(--accent);border-color:var(--accent)}.playground-bottom{position:absolute;left:0;right:0;bottom:28px;text-align:center;pointer-events:none}.interaction-hint{font:9px/1.5 'Courier New',monospace;letter-spacing:1px;color:var(--muted);margin:0 0 15px}.interaction-hint span{padding:0 8px}.action-bar{display:inline-flex;align-items:center;background:rgba(255,255,255,.75);border:1px solid #ddded5;border-radius:9px;padding:5px;gap:3px;box-shadow:0 4px 15px #24241905;pointer-events:auto;backdrop-filter:blur(10px)}.action-bar button{font-size:11px;border:0;border-radius:5px;background:transparent;min-height:37px;padding:8px 13px;transition:background .2s,color .2s}.action-bar button span{margin-right:5px;font-size:13px}.action-bar button:hover{background:#efeee7}.action-bar button[aria-pressed=true]{background:var(--ink);color:white}.control-divider{height:20px;width:1px;background:var(--line);margin:0 3px}.action-bar #pause-motion{min-width:32px;padding:8px}.scene-status{font:10px/1.5 'Courier New',monospace;color:var(--muted);margin:12px 0 0;min-height:15px}.field-strip{margin:0 auto;padding:24px 5.3%;border-top:1px solid var(--line);border-bottom:1px solid var(--line);max-width:1512px;display:flex;align-items:center;justify-content:space-between;gap:20px;font:9px/1.4 'Courier New',monospace;letter-spacing:1.1px;color:var(--muted)}.field-strip>div{display:flex;gap:27px;font:13px var(--sans);letter-spacing:0;color:var(--ink)}.field-strip i{font-style:normal;color:var(--accent)}.about-section{max-width:1350px;margin:auto;padding:100px 5.3% 110px;display:grid;grid-template-columns:24% 76%;gap:20px}.section-kicker{font:10px 'Courier New',monospace;letter-spacing:1px;padding-top:11px;color:var(--muted)}.about-body h2{font-size:36px;line-height:1.3;font-weight:400;letter-spacing:-1px;margin:0 0 35px}.about-body h2 .serif-word{letter-spacing:-1px}.about-columns{display:grid;grid-template-columns:1fr 170px;gap:45px}.about-columns p{color:#676960;font-size:14px;margin:0 0 18px;line-height:1.9}.about-columns p a{color:var(--ink);text-decoration:underline;text-decoration-color:#b4b6ac;text-underline-offset:4px}.about-columns .personal-note{font-family:Georgia,serif;font-style:italic;color:var(--ink);margin-top:27px}.portrait{margin:4px 0 0}.portrait img{width:100%;height:205px;object-fit:cover;border-radius:3px;filter:saturate(.8)}.portrait figcaption{font:8px 'Courier New',monospace;letter-spacing:.8px;color:var(--muted);margin-top:12px}.social-links{display:flex;gap:24px;flex-wrap:wrap;font-size:11px;margin-top:27px}.site-footer{max-width:1512px;margin:auto;padding:25px 5.3%;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:18px;color:var(--muted);font:10px 'Courier New',monospace}.robot-fallback{position:absolute;inset:20% 10% 25%;text-align:center;font-size:13px}.robot-fallback[hidden]{display:none}.robot-fallback img{width:100%;border-radius:8px}.robot-fallback a{color:var(--accent)}.research-main{max-width:1080px;padding:65px 40px 70px;margin:auto}.research-intro h1{font-size:76px;font-weight:400;line-height:1.2;letter-spacing:-4px;margin:23px 0}.research-intro>p:not(.eyebrow){color:var(--muted);font-size:16px}.research-categories{display:flex;gap:27px;margin-top:32px;padding:25px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px;flex-wrap:wrap}.research-categories a:hover{color:var(--accent)}.publications>table{width:100%!important}.publications td{font-size:13px;line-height:1.8}.publications td:first-child{padding:25px 30px 25px 0!important;width:25%!important}.publications td[colspan]{padding-top:55px!important;padding-bottom:12px!important}.publications h3{font-size:24px;letter-spacing:-.6px;font-weight:400;border-bottom:1px solid var(--line);padding-bottom:14px}.publications .papertitle{font-size:16px;font-weight:600;line-height:1.4;display:inline-block;margin-bottom:7px}.publications td a{color:var(--accent);font-size:12px}.publications td a:hover{text-decoration:underline}.publications img,.publications video{border-radius:5px;object-fit:cover;width:205px!important;height:125px!important;vertical-align:middle}.publications em{font-weight:600;font-style:normal}.research-credit{font-size:10px;color:var(--muted);margin-top:60px}.research-credit a{text-decoration:underline}
@media(min-width:1600px){.hero h1{font-size:86px}.hero{height:760px}}@media(max-width:1050px){.hero h1{font-size:60px;letter-spacing:-3.5px}.hero .serif-word{letter-spacing:-3px}.hero h1 .orange-period{font-size:43px;margin-left:5px}.hero-description{font-size:14px}.robot-lab{margin-left:-40px}.scene-label{right:-15px}.action-bar button{padding:8px 10px}.about-section{grid-template-columns:20% 80%;gap:0}.about-columns{gap:25px}.chinese-name{display:none}.hero{min-height:620px}.field-strip>div{gap:16px}}@media(max-width:760px){.site-header{height:78px;padding:0 6%;gap:12px}.wordmark{font-size:12px;gap:10px}.brand-mark{font-size:28px}.site-header nav{gap:18px;font-size:12px}.site-header nav .nav-contact{display:none}.hero{height:auto;max-height:none;min-height:0;grid-template-columns:1fr;padding:0 6%}.hero-copy{padding:51px 0 0}.eyebrow{font-size:8px;letter-spacing:1.3px}.hero h1{font-size:clamp(53px,10.5vw,75px);letter-spacing:-3.6px;margin:23px 0 23px}.hero h1 .orange-period{font-size:44px}.hero-description{font-size:14px;margin-bottom:23px}.primary-link{font-size:12px;padding:12px 18px}.hero-note{display:none}.robot-lab{height:535px;margin:12px -3% 0}.lab-topline{top:18px;left:15px;right:15px;font-size:8px}.reset-view{top:44px;right:14px}.scene-label{right:2px;font-size:7px}.playground-bottom{bottom:22px}.field-strip{padding:20px 6%}.field-strip>span{display:none}.field-strip>div{font-size:11px;gap:12px}.field-strip>a{font-size:8px;letter-spacing:0}.about-section{display:block;padding:58px 6% 60px}.section-kicker{margin-bottom:26px;padding:0}.about-body h2{font-size:30px}.about-columns{grid-template-columns:1fr 115px;gap:22px}.portrait img{height:145px}.portrait figcaption{font-size:7px;line-height:1.6}.about-columns p{font-size:13px}.social-links{gap:18px}.site-footer{padding:23px 6%;flex-wrap:wrap;font-size:8px}.site-footer>span:nth-child(2){display:none}.research-main{padding:40px 6%}.research-intro h1{font-size:60px}.research-intro>p:not(.eyebrow){font-size:14px}.research-categories{gap:16px;font-size:11px}.publications tr{display:block;margin-bottom:16px}.publications td{display:block;width:100%!important;padding:0!important}.publications td:first-child{width:100%!important;padding:22px 0 15px!important}.publications td[colspan]{padding:25px 0 0!important}.publications img,.publications video{width:100%!important;height:auto!important;max-height:250px;aspect-ratio:16/9;object-fit:cover}.publications .papertitle{font-size:16px}.publications td{font-size:12px}.publications h3{margin:0}.research-credit{line-height:1.8}}@media(max-width:380px){.site-header nav{gap:12px;font-size:11px}.wordmark{gap:8px;font-size:11px}.hero h1{font-size:49px}.about-columns{display:flex;flex-direction:column-reverse}.portrait{width:105px}.portrait img{height:125px}.action-bar button{padding:8px 9px}.action-bar{gap:1px}.field-strip>div{gap:8px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

.hero-description a{text-decoration:underline;text-decoration-color:#b4b6ac;text-underline-offset:4px}.hero-description a:hover{color:var(--accent)}

/* Keep both photos in the same frame so the layout stays still on hover. */
.portrait-swap{display:grid;border-radius:3px}
.portrait-swap img{grid-area:1/1;display:block;transition:opacity .25s ease}
.portrait-swap .portrait-hover{opacity:0;object-position:60% 50%}
.portrait-swap:hover .portrait-default,.portrait-swap:focus-visible .portrait-default{opacity:0}
.portrait-swap:hover .portrait-hover,.portrait-swap:focus-visible .portrait-hover{opacity:1}
.portrait-swap:focus-visible{outline:2px solid var(--accent);outline-offset:5px}

/* Basketball timing game and a single reversible reaction per body region. */
.hoop-hud{position:absolute;top:92px;left:28px;z-index:2;width:190px;margin:0;display:grid;gap:8px;pointer-events:auto}
.hoop-hud[hidden]{display:none}
.hoop-score{font:10px/1.4 'Courier New',monospace;letter-spacing:1px;color:var(--ink)}
.shot-meter{height:9px;border-radius:9px;background:#dfdfd5;position:relative;overflow:hidden}
.shot-zone{position:absolute;left:63.5%;width:17%;height:100%;background:#e9ae8e}
.shot-power{position:absolute;left:0;width:0;height:100%;background:var(--ink);opacity:.75}
.shot-target{position:absolute;left:72%;height:100%;width:2px;background:var(--accent)}
.charge-shot{border:0;border-radius:24px;padding:10px 15px;background:var(--ink);color:var(--paper);font-size:11px;touch-action:none;user-select:none;-webkit-user-select:none}
.charge-shot[aria-pressed=true]{background:var(--accent)}
.charge-shot:disabled{background:#ddded5;color:#74746c;cursor:default}
.hoop-instructions{font-size:9px;color:var(--muted)}
.robot-lab:has(.hoop-hud:not([hidden])) .interaction-hint{display:none}
.reset-reaction{pointer-events:auto;background:transparent;border:1px solid var(--line);border-radius:20px;font-size:10px;padding:6px 13px;margin-bottom:10px;color:var(--muted)}
.reset-reaction[hidden]{display:none}
.reset-reaction:hover{color:var(--accent);border-color:var(--accent)}
@media(max-width:760px){.hoop-hud{top:74px;left:12px;width:150px;gap:6px}.hoop-score{font-size:8px}.charge-shot{font-size:10px;padding:8px}.hoop-instructions{font-size:8px}.robot-lab:has(.hoop-hud:not([hidden])){height:600px}}
