@font-face{font-family:PortfolioSerif;src:url(font-a050cfb8d2859b9d.woff2) format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:StudioSans;src:url(font-f8dfa62f8b8ca630.woff2) format('woff2');font-weight:400 700;font-display:swap}
@font-face{font-family:StudioItalic;src:url(font-67db78dc29b24387.woff2) format('woff2');font-weight:400;font-style:italic;font-display:swap}
:root{--ink:#293137;--muted:#6d777d;--line:#cfd7db;--cover:#e9edef;--paper:#fff;--soft:#f0f4f7;--accent:#426c8c;--secondary:#52746c;--sans:StudioSans,'Microsoft YaHei','PingFang SC',sans-serif;--serif:PortfolioSerif,'Noto Serif SC',SimSun,serif;--italic:StudioItalic,Georgia,serif;--mono:Consolas,'Courier New',monospace}
*{box-sizing:border-box;letter-spacing:0}
html{scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;font-family:var(--sans);font-size:15px;line-height:1.85;color:var(--ink);background:#fff}
h1,h2,h3,h4,p,figure{margin:0}
a{color:inherit;text-decoration:none}
button,input,a{font:inherit;-webkit-tap-highlight-color:transparent}
button{color:inherit;border:0;background:none;cursor:pointer}
button:disabled{cursor:default}
img{display:block;max-width:100%;height:auto}
svg{width:19px;height:19px;stroke-width:1.6;flex-shrink:0}
button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
::selection{background:#c8dde5;color:var(--ink)}
.wrap{width:min(1280px,calc(100% - 112px));margin-inline:auto}
.section{padding-block:96px}
.section-top{display:flex;justify-content:space-between;align-items:center;gap:22px;margin-bottom:35px}
.section-no{font:11px/1.5 var(--sans);font-weight:600}
.section-aside{font-size:11px;color:var(--muted)}
h2{font:600 46px/1.55 var(--serif)}
.text-link{display:inline-flex;align-items:center;gap:12px;font-size:12px}
.text-link svg{width:17px;height:17px;transition:transform .25s}
.text-link:hover{color:var(--accent)}
.text-link:hover svg{transform:translate(2px,-2px)}
.fine-print{font-size:10px;line-height:1.95;color:var(--muted)}
.skip{position:fixed;top:-100px;left:20px;background:#fff;color:var(--ink);padding:12px 18px;z-index:99}
.skip:focus{top:8px}
.js-only{display:none}.has-js .js-only{display:inline-flex}

.header{height:72px;padding-inline:48px;position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:24px;background:#fff;color:var(--ink);border-bottom:1px solid var(--line)}
.wordmark{font-family:var(--sans);font-size:18px;font-weight:600;display:flex;align-items:center;gap:18px;white-space:nowrap}
.wordmark span{font-size:10px;color:var(--muted);border-left:1px solid #bdc7cc;padding-left:18px}
.header nav{display:flex;gap:38px;align-items:center;font-size:12px}
.header nav a{padding-block:24px;position:relative}
.header nav a::after{content:'';position:absolute;left:0;right:0;bottom:16px;height:1px;background:var(--accent);transform:scaleX(0);transition:transform .25s;transform-origin:left}
.header nav a:hover::after,.header nav a[aria-current=location]::after{transform:scaleX(1)}
.header-tools{display:flex;align-items:center;gap:20px}
.icon-button{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:2px;flex-shrink:0}
.icon-button:hover{background:#e1e8ec}.icon-button:disabled{opacity:.45}
.resume-link{display:inline-flex;align-items:center;gap:10px;font-size:11px}
.resume-link svg{width:17px;height:17px}.resume-link:hover{color:var(--accent)}
.reading-line{position:absolute;left:0;bottom:-1px;width:100%;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left}

.cover{background:var(--cover);color:var(--ink)}
.cover-scene{position:relative;isolation:isolate;overflow:hidden;height:min(760px,calc(100svh - 168px));min-height:540px;background:var(--cover)}
.cover-fallback{position:absolute;height:77%;max-width:none;width:auto;top:7%;left:66%;transform:rotate(5deg);box-shadow:10px 28px 70px #2136451c}
.phaser-cover{position:absolute;inset:0;pointer-events:none}
.phaser-cover canvas{display:block!important;width:100%!important;height:100%!important}
.cover-identity{position:absolute;z-index:2;left:max(56px,calc((100% - 1280px)/2));top:19%;max-width:610px;pointer-events:none;animation:signature-in .9s cubic-bezier(.16,1,.3,1) both}
.cover h1{font-weight:400;line-height:1}
.latin-name{display:flex;align-items:baseline;font-size:112px;font-weight:500;line-height:1.1;white-space:nowrap;gap:9px}
.latin-name em{font:italic 140px/1 var(--italic);padding-right:8px}
.cn-name{display:block;font:400 15px/1.7 var(--sans);margin-top:23px;color:#4b5861}
.cn-name>span{padding-left:11px;color:var(--muted)}
.cover-role{margin-top:47px;font-size:14px;line-height:1.9}
.cover-bio{font-size:13px;line-height:2.1;color:#687780;margin-top:17px}
.cover-bottom{position:absolute;z-index:3;left:max(56px,calc((100% - 1280px)/2));right:max(56px,calc((100% - 1280px)/2));bottom:27px;display:flex;justify-content:space-between;align-items:center;padding-top:18px;border-top:1px solid #b9c6cd}
.cover-down{font-size:11px;gap:22px}.cover-down svg{width:18px;height:18px}
.cover-work{display:flex;align-items:center;gap:40px;min-width:0}
.cover-work>a{display:flex;align-items:center;gap:12px;font-size:11px}.cover-work>a svg{width:13px;height:13px}
.cover-switch{display:flex;align-items:center;gap:8px}.cover-choice{width:35px;height:35px;border-bottom:1px solid transparent;font-size:12px;color:var(--muted);padding:0;transition:color .2s,border-color .2s}
.cover-choice[aria-pressed=true]{color:var(--ink);border-color:var(--accent)}.cover-choice:hover{color:var(--accent)}

.build{padding-top:64px}
.build-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:50px;margin-bottom:48px}.build-heading>p{font-size:12px;line-height:2.1;color:var(--muted);padding-bottom:7px}
.build-layout{display:grid;grid-template-columns:1fr 1.08fr;gap:70px;align-items:start}.build-copy,.build-media{min-width:0}.build-copy>h3{font-size:31px;font-weight:500;line-height:1.4}.build-subtitle{font-size:11px;color:var(--accent);margin-top:9px}.build-copy>h4{font:600 20px/1.9 var(--serif);margin-top:27px}.build-problem{font-size:13px;line-height:2.1;color:#535f67;margin-top:13px}
.build-roles{margin:27px 0 0}.build-roles>div{padding-block:17px;border-top:1px solid var(--line)}.build-roles dt{font-size:9px;font-weight:600;color:var(--accent)}.build-roles dd{margin:8px 0 0;font-size:12px;line-height:2.1}
.build-media{position:sticky;top:107px}.build-media figure button{display:block;position:relative;padding:0;width:100%}.build-media figure img{width:100%;aspect-ratio:1.5;object-fit:contain}.build-media figure button>span{position:absolute;right:6px;bottom:6px;width:29px;height:29px;display:flex;align-items:center;justify-content:center;background:#fff}.build-media figure button svg{width:17px;height:17px;transition:transform .2s}.build-media figure button:hover svg{transform:translate(2px,-2px)}.build-media figcaption{font-size:9px;line-height:1.95;color:var(--muted);margin-top:12px}
.build-facts{margin:23px 0 19px}.build-facts>div{display:grid;grid-template-columns:65px minmax(0,1fr);gap:14px;padding-block:10px;border-top:1px solid var(--line);font-size:10px;line-height:1.9}.build-facts dt{color:var(--muted)}.build-facts dd{margin:0}
.build-decisions,.feedback-steps,.hypothesis-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px}.build-decisions{margin-top:35px;padding-top:28px;border-top:1px solid var(--line)}.build-decisions article>span,.feedback-steps>div>span,.hypothesis-steps article>span{font:italic 34px/1 var(--italic);color:var(--accent)}.build-decisions h4,.feedback-steps h4,.hypothesis-steps h4{font-size:15px;line-height:1.9;font-weight:500;margin-top:15px}.build-decisions article>p,.feedback-steps p,.hypothesis-steps article>p{font-size:12px;line-height:2.1;color:#535f67;margin-top:9px}.build-limit,.hypothesis-limit{font-size:10px;line-height:2;color:var(--muted);margin-top:24px}.build-records{margin-top:22px}
.games{padding-top:64px}
.games-heading{display:flex;justify-content:space-between;gap:40px;align-items:flex-end;margin-bottom:52px}
.games-heading h2{font-size:48px;line-height:1.5}.games-heading h2 br{display:none}.games-heading h2 em{font-style:normal;color:#7e8582}
.games-heading>p{display:flex;align-items:center;gap:21px;padding-bottom:5px}
.games-heading>p>strong{font-size:61px;font-weight:500;line-height:1}.games-heading>p>span{font-size:10px;line-height:1.95;color:var(--muted)}
.games-heading b{font-weight:500;color:var(--ink)}
.games-layout{display:grid;grid-template-columns:245px minmax(0,1fr);gap:52px;align-items:start}
.game-tabs{position:sticky;top:108px;border-top:1px solid var(--line)}
.game-tab{display:grid;grid-template-columns:50px minmax(0,1fr) 15px;gap:14px;align-items:center;width:100%;min-height:110px;padding:20px 0;border-bottom:1px solid var(--line);text-align:left;position:relative}
.game-tab>img{width:50px;height:70px;object-fit:cover;opacity:.55;filter:saturate(.65);transition:opacity .3s,filter .3s}
.game-tab-copy{min-width:0}.game-tab-copy>span{display:block;font-size:9px;line-height:1.8;color:var(--muted);margin-bottom:7px}.game-tab strong{display:block;font-size:15px;line-height:1.8;font-weight:500;word-break:keep-all}
.game-tab>svg{width:15px;height:15px;color:#a7afaa;transition:transform .25s}
.game-tab[aria-selected=true]>img{opacity:1;filter:none}.game-tab[aria-selected=true]>svg{color:var(--ink);transform:translate(2px,-2px)}
.game-tab[aria-selected=true]::before{content:'';position:absolute;left:-15px;top:50%;height:22px;width:3px;background:var(--secondary);transform:translateY(-50%)}
#game-panel{min-width:0}
.game-gallery{display:grid;grid-template-columns:1.2fr 1fr 1fr;align-items:center;gap:25px;padding:42px 35px 45px;min-height:525px;background:#e4eae9;overflow:hidden}
.gallery-button{display:block;width:100%;min-width:0;padding:0;position:relative;height:395px;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.gallery-button:first-child{height:440px;transform:rotate(-4deg)}.gallery-button:nth-child(2){transform:translateY(-17px) rotate(3deg)}.gallery-button:last-child{transform:translateY(19px) rotate(5deg)}
.gallery-button:hover,.gallery-button:first-child:hover,.gallery-button:nth-child(2):hover,.gallery-button:last-child:hover{transform:translateY(-8px)}
.gallery-button img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 16px 14px #21364521)}
.gallery-button>span{position:absolute;right:2px;bottom:1px;width:27px;height:27px;background:white;display:flex;align-items:center;justify-content:center;color:#222}
.gallery-button>span svg{width:16px;height:16px}
[data-project=city] .game-gallery{background:#e8ede5}[data-project=rainy] .game-gallery{background:#e0e6ea}[data-project=crystal] .game-gallery{background:#e6edf2}
.game-story{display:grid;grid-template-columns:.85fr 1fr;gap:45px;padding-top:33px}
.game-story h3{font:600 24px/1.8 var(--serif)}
.game-metrics{display:flex;align-items:baseline;gap:25px;margin-top:19px;font-size:10px;color:var(--muted)}
.game-metrics>span{white-space:nowrap}.game-metrics strong{font-size:29px;line-height:1.3;font-weight:500;margin-right:7px;color:var(--ink)}
.game-source{margin-top:21px}.game-source .text-link{font-size:11px}
.game-question{font-size:15px;line-height:2;margin-bottom:17px}
.game-structure{font-size:11px;color:var(--accent);line-height:2.1;padding-block:13px;border-block:1px solid var(--line)}
.game-reflection{font-size:13px;line-height:2.1;margin-top:16px}.game-credit{font-size:10px;line-height:1.95;color:var(--muted);margin-top:17px}
.snapshot-note{font-size:10px;line-height:2;color:var(--muted);border-top:1px solid var(--line);padding-top:18px;margin-top:45px}

.research{background:var(--soft)}
.research-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:55px;margin-bottom:60px}
.research-heading h2{font-size:43px;line-height:1.6}.research-heading>p{font-size:12px;line-height:2.1;color:var(--muted);padding-bottom:5px}
.research-layout{display:grid;grid-template-columns:245px minmax(0,1fr);gap:52px;align-items:start}
.research-tabs{position:sticky;top:112px;border-top:1px solid #bac1bd}
.research-tab{display:flex;align-items:center;gap:18px;text-align:left;line-height:1.9;font-size:13px;width:100%;min-height:104px;padding:21px 8px 21px 0;border-bottom:1px solid #bac1bd;position:relative}
.research-tab>span{font:italic 39px/1 var(--italic);color:#8e9892;min-width:37px}.research-tab[aria-selected=true]{color:var(--accent)}.research-tab[aria-selected=true]>span{color:var(--accent)}
.research-tab[aria-selected=true]::after{content:'';width:4px;height:4px;border-radius:50%;background:var(--accent);position:absolute;right:1px}
#research-panel{min-width:0}
.research-title-line{display:flex;gap:20px;justify-content:space-between;align-items:baseline;border-top:1px solid #bac1bd;padding-top:22px}
.research-title-line h3{font:600 29px/1.7 var(--serif);max-width:65%}
.research-status{font-size:9px;line-height:1.9;color:var(--accent);max-width:180px;text-align:right}
.research-projects{font-size:10px;line-height:1.95;color:var(--muted);margin-top:11px}
.research-question{font-size:16px;line-height:2;margin-top:25px;max-width:730px}
.architecture{margin:30px 0 35px;padding:24px 0 19px;border-block:1px solid #c8ceca}
.architecture h4{font-size:11px;line-height:1.9;font-weight:400;color:var(--muted)}
.graph{position:relative;min-height:170px;margin-top:17px}.graph-canvas{position:absolute;inset:0;pointer-events:none}.graph-canvas canvas{display:block!important;width:100%!important;height:100%!important}
.graph-nodes{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:22px;position:relative;padding-block:20px}
.graph-node{position:relative;z-index:1;min-width:0;min-height:109px;padding:8px 0 7px 11px;border-left:1px solid #7393dc;background:var(--soft)}
.graph-node>span{display:block;font-size:10px;line-height:1.6;color:var(--accent);margin-bottom:9px}.graph-node strong{font-size:15px;line-height:1.8;font-weight:500;display:block}.graph-node small{font-size:9px;line-height:1.9;color:var(--muted);display:block;margin-top:6px}
.graph-node:not(:last-child)::after{content:'';position:absolute;left:100%;top:50%;width:22px;height:1px;background:#7393dc}.engine-ready .graph-node::after{visibility:hidden}
.graph-note{font-size:9px;line-height:1.9;color:var(--muted);margin-top:4px}
.research-body{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.research-label,.research-evidence h4{display:block;font:500 9px/1.8 var(--sans);color:#77827a;margin-bottom:12px}
.research-observation{border-bottom:1px solid #c8ceca;padding-bottom:25px}.research-observation+.research-observation{padding-top:24px}
.research-observation h4{font:600 20px/1.9 var(--serif)}
.research-observation p,.research-evidence p{font-size:13px;line-height:2.15;color:#434d48}
.research-experiment{margin-top:26px}.research-experiment table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:10px;line-height:1.8}.research-experiment caption{text-align:left;margin-bottom:12px}.research-experiment caption strong{display:block;font-size:11px;font-weight:500}.research-experiment caption span{display:block;margin-top:3px;font-size:9px;color:var(--muted)}.research-experiment th,.research-experiment td{padding:10px 0;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-weight:400;overflow-wrap:anywhere}.research-experiment th:first-child{width:54%}.research-experiment th:nth-child(2){width:14%}.research-experiment th:last-child{width:32%}.research-experiment th{color:var(--muted);font-size:9px}.research-experiment td:first-child{padding-right:12px}.research-experiment th:not(:first-child),.research-experiment td:not(:first-child){text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.research-experiment>p{font-size:9px;line-height:1.95;color:var(--muted);margin-top:12px}
.research-next{margin-top:28px;border-left:2px solid var(--accent);padding-left:18px}.research-next h4{color:var(--accent)}
.research-figure{margin-top:29px}.research-figure button{display:block;padding:0;width:100%;text-align:left}.research-figure img{width:100%;aspect-ratio:1.6;object-fit:contain;background:#e1e5df;transition:transform .3s}.research-figure button:hover img{transform:translateY(-3px)}
.research-figure figcaption{font-size:9px;line-height:1.9;color:var(--muted);margin-top:10px}
.evidence-details{margin-top:30px;border-top:1px solid #c8ceca;padding-top:19px}.evidence-details summary{display:flex;align-items:center;list-style:none;cursor:pointer;font-size:11px}
.evidence-details summary svg{width:15px;height:15px;margin-left:auto;transition:transform .25s}.evidence-details[open] summary svg{transform:rotate(45deg)}
.evidence-details ul{margin:17px 0 0;padding-left:17px}.evidence-details li{font-size:11px;line-height:2;color:var(--muted)}
.research-sources{display:flex;flex-wrap:wrap;gap:24px;margin-top:22px}.research-sources a{font-size:11px}

.evolution{background:#fff;border-bottom:1px solid var(--line)}
.evolution h2{font-size:48px;max-width:1000px}
.timeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:53px;border-block:1px solid var(--line)}
.time-tab{min-width:0;min-height:116px;text-align:left;padding:23px 22px;position:relative;border-right:1px solid var(--line)}.time-tab:first-child{padding-left:0}.time-tab:last-child{border-right:0}
.time-tab time{display:block;font-size:10px;line-height:1.8;color:var(--muted);margin-bottom:11px}.time-tab strong{display:block;font-size:17px;font-weight:500;line-height:1.9}
.time-tab::after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:3px;background:var(--secondary);transform:scaleX(0);transform-origin:left;transition:transform .25s}.time-tab[aria-selected=true]::after{transform:scaleX(1)}
.timeline-panel{display:grid;grid-template-columns:1fr 1.1fr;gap:100px;padding-top:35px;min-height:272px}
.timeline-question{font:600 31px/1.8 var(--serif);max-width:450px;text-wrap:balance;word-break:keep-all}.timeline-change{font-size:12px;line-height:2;margin-top:22px;color:var(--secondary)}
.timeline-answer>p{font-size:15px;line-height:2.2}.timeline-answer .timeline-limit{font-size:12px;color:var(--muted);margin-top:19px}.timeline-answer .timeline-source{font-size:10px;color:var(--muted);line-height:1.95;margin-top:21px}

.feedback{margin-top:48px;padding-top:30px;border-top:1px solid var(--line)}.feedback-heading{display:flex;justify-content:space-between;align-items:center;gap:24px}.feedback-heading h3{font:600 22px/1.8 var(--serif);margin-top:8px}.feedback-heading .text-link{font-size:11px;flex-shrink:0}.feedback-date{font-size:9px;color:var(--muted);margin-top:11px}.feedback-steps{margin-top:24px}.feedback-steps>div>span{font-size:27px}.feedback-steps h4{font-size:13px;margin-top:12px}
.practice h2{font-size:42px;line-height:1.55}.practice h2 br{display:none}
.assistant-hypothesis{margin-top:42px;padding-block:32px;border-top:1px solid var(--line)}.hypothesis-heading h3{font:600 27px/1.8 var(--serif);margin-top:12px}.hypothesis-heading>p{font-size:13px;line-height:2.1;max-width:820px;color:#535f67;margin-top:13px}.hypothesis-steps{margin-top:29px}.hypothesis-steps article>small{display:block;font-size:10px;line-height:2;color:var(--secondary);margin-top:14px}.assistant-hypothesis+.practice-row{margin-top:0}
.practice-row{display:grid;grid-template-columns:26px 152px minmax(0,1fr) 210px;gap:29px;align-items:start;padding:34px 0;border-top:1px solid var(--line)}.practice-row:first-of-type{margin-top:48px}
.practice-index{font-size:11px;line-height:2;color:var(--muted)}.practice-label h3{font-size:18px;font-weight:600;line-height:1.8}.practice-label p{font-size:10px;color:var(--muted);margin-top:3px}
.practice-body h4{font-size:16px;line-height:1.9;font-weight:500;margin-bottom:11px}.practice-body>p:not(.fine-print){font-size:13px;line-height:2.1;color:#535c55}.practice-body .fine-print{margin-top:17px}
.pr-links{display:grid;gap:10px;margin-top:18px}.pr-links a{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font-size:11px;line-height:1.8}.pr-links code{font-family:var(--mono);color:var(--accent)}.pr-links a>span{font-size:9px;color:#5e7d64;margin-left:auto}.pr-links svg{width:13px;height:13px}
.practice-total{text-align:right}.practice-total>strong{display:block;font:italic 104px/.9 var(--italic)}.practice-total>span{display:flex;align-items:center;justify-content:flex-end;gap:9px;font-size:10px;margin-top:18px}.practice-total svg{width:12px;height:12px}
.preview-button{display:block;position:relative;width:210px;padding:0}.preview-button img{width:100%;aspect-ratio:1.6;object-fit:contain;background:var(--soft);transition:transform .35s}.preview-button:hover img{transform:translateY(-4px)}.preview-button>span{position:absolute;right:5px;bottom:5px;width:25px;height:25px;background:white;display:flex;align-items:center;justify-content:center}.preview-button svg{width:15px;height:15px}
.row-source{justify-self:end;font-size:11px;margin-top:4px}
.film-disclosure{border-block:1px solid var(--line)}.film-disclosure>summary{display:grid;grid-template-columns:180px minmax(0,1fr) auto 20px;gap:28px;align-items:center;list-style:none;padding-block:27px;cursor:pointer}.film-disclosure>summary>img{width:180px;height:102px;object-fit:cover}
.film-title>span{display:block;font-size:10px;color:var(--muted);margin-bottom:10px}.film-title strong{font-size:18px;line-height:1.8;font-weight:500}.film-duration{font-size:11px;color:var(--muted)}.film-disclosure summary svg{width:18px;height:18px;transition:transform .25s}.film-disclosure[open] summary svg{transform:rotate(45deg)}
.film-content{max-width:850px;margin:auto;padding-bottom:27px}.film-content video{display:block;width:100%;max-height:480px;background:var(--soft)}.film-content p{font-size:11px;line-height:1.9;color:var(--muted);margin-top:12px}
.public-note{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:22px;font-size:10px;color:var(--muted)}.public-note a{font-size:11px}

.about{background:#f2f4f2}.about-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:100px}.about-lead{font:600 23px/1.95 var(--serif)}
.education{margin-top:32px;padding-top:25px;border-top:1px solid var(--line)}.education h3{font-size:17px;font-weight:500}.education p{font-size:12px;line-height:2;color:var(--muted);margin-top:7px}
.experience{margin-top:27px;border-block:1px solid var(--line)}.experience>summary{display:flex;align-items:center;justify-content:space-between;list-style:none;cursor:pointer;padding-block:18px;font-size:12px}.experience summary svg{width:17px;height:17px;transition:transform .25s}.experience[open] summary svg{transform:rotate(45deg)}
.job{border-top:1px solid var(--line);padding-block:21px}.job time{font-size:10px;color:var(--muted)}.job h4{font-size:14px;line-height:1.9;font-weight:500;margin-top:6px}.job p{font-size:12px;line-height:2;color:var(--muted);margin-top:6px}.job .job-role{font-size:11px;color:var(--accent);margin-top:3px}
.footer{background:var(--cover);color:var(--ink);padding:66px 0 27px}.footer-title{display:flex;align-items:center;justify-content:space-between;gap:30px}.footer h2{font-size:38px;line-height:1.6}
.contact-mark{display:flex;align-items:center;justify-content:center;width:76px;height:76px;border:1px solid #aebfc5;border-radius:50%;transition:color .25s,background .25s,transform .25s}.contact-mark svg{width:33px;height:33px;stroke-width:1.1}.contact-mark:hover{color:var(--accent);background:#fff;transform:rotate(8deg)}
.contact-row{display:flex;justify-content:space-between;align-items:center;gap:28px;margin-top:38px;padding-bottom:31px;border-bottom:1px solid #b9c6cd}.email{font-size:25px;line-height:1.8;overflow-wrap:anywhere}.email:hover{color:var(--accent)}.wechat{display:inline-flex;align-items:center;gap:11px;padding:0;font-size:12px}.wechat strong{font-weight:400;font-size:14px}.wechat svg{width:15px;height:15px}.contact-row>.text-link{font-size:11px}.footer .text-link:hover{color:var(--accent)}
.footer-signature{display:flex;align-items:baseline;gap:12px;font-size:137px;font-weight:400;line-height:1.15;margin-top:30px}.footer-signature em{font:italic 165px/1 var(--italic);color:#4b6e75;padding-right:8px}
.footer-meta{display:flex;justify-content:flex-end;gap:24px;font-size:10px;color:#6a7981;margin-top:26px;padding-top:24px;border-top:1px solid #b9c6cd}

dialog{padding:24px;border:0;border-radius:3px;background:#fff;color:var(--ink);width:min(1080px,calc(100% - 40px));max-height:92dvh;overflow:auto}dialog::backdrop{background:#d7dfe5d9;backdrop-filter:blur(5px)}.preview-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}.preview-heading h2{font:500 16px/1.8 var(--sans)}.preview-heading .icon-button:hover{background:var(--soft)}#preview-image{max-height:70dvh;max-width:100%;margin:auto;object-fit:contain}#preview-caption{font-size:11px;line-height:1.9;color:var(--muted);margin-top:17px}.modal-open{overflow:hidden}
.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,15px);z-index:60;max-width:calc(100% - 32px);padding:12px 18px;border:1px solid var(--line);border-radius:2px;background:#fff;color:var(--ink);box-shadow:0 8px 25px #243c5014;font-size:12px;opacity:0;visibility:hidden;transition:opacity .2s,transform .2s}.toast.visible{opacity:1;visibility:visible;transform:translate(-50%,0)}
.noscript{padding:16px 28px;text-align:center;font-size:12px}.panel-enter{animation:panel-in .45s cubic-bezier(.2,.7,.2,1)}
@keyframes panel-in{from{opacity:.5;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes signature-in{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
.motion-paused *{animation-play-state:paused!important;scroll-behavior:auto!important}.motion-paused .panel-enter{animation:none}.motion-paused .gallery-button,.motion-paused .preview-button img{transition:none}

@media(min-width:1650px){.cover-identity{top:21%;max-width:700px}.latin-name{font-size:127px}.latin-name em{font-size:155px}}
@media(max-width:1200px){
  .wrap{width:calc(100% - 72px)}.header{padding-inline:36px}.cover-identity{left:36px;max-width:510px}.latin-name{font-size:91px}.latin-name em{font-size:112px}.cover-bottom{left:36px;right:36px}
  .games-layout,.research-layout{grid-template-columns:200px minmax(0,1fr);gap:36px}.game-tab{grid-template-columns:40px minmax(0,1fr) 12px;gap:11px}.game-tab>img{width:40px;height:58px}.game-tab strong{font-size:14px}.game-tab-copy>span{font-size:8px}.game-tab>svg{width:12px}
  .game-gallery{gap:19px;padding:30px 23px;min-height:425px}.gallery-button{height:325px}.gallery-button:first-child{height:365px}.game-story{gap:25px;grid-template-columns:1fr}.game-story h3{font-size:26px}.game-metrics{margin-top:12px}.game-source{margin-top:14px}
  .research-title-line{display:block}.research-title-line h3{max-width:100%;font-size:27px}.research-status{display:block;max-width:none;text-align:left;margin-top:9px}.graph-nodes{gap:15px}.graph-node{padding-left:8px}.graph-node strong{font-size:13px}.graph-node small{font-size:8px}.graph-node:not(:last-child)::after{width:15px}.research-body{grid-template-columns:1fr}.research-figure{max-width:600px}
  .timeline-panel,.about-layout{gap:50px}.time-tab strong{font-size:15px}.practice-row{grid-template-columns:24px 126px minmax(0,1fr) 170px;gap:23px}.preview-button{width:170px}.practice-total>strong{font-size:90px}
  .build-layout{gap:40px}.build-heading h2{font-size:40px}.build-copy>h3{font-size:28px}.build-decisions,.feedback-steps,.hypothesis-steps{gap:26px}
}
@media(max-width:950px){
  .header nav{gap:25px}.wordmark span{display:none}.latin-name{font-size:72px}.latin-name em{font-size:90px}.cover-identity{top:19%;max-width:450px}.cover-bio{font-size:12px}.cover-role{font-size:13px}.cover-work{gap:24px}
  h2{font-size:39px}.section{padding-block:78px}.games{padding-top:58px}.games-heading h2{font-size:37px}.games-heading>p>strong{font-size:49px}.games-heading{gap:25px}.games-heading>p{gap:17px}.games-heading>p>span{font-size:9px}
  .research-heading h2{font-size:35px}.research-heading>p{font-size:11px}.research-heading{gap:25px}.research-tab{gap:12px;font-size:12px}.research-tab>span{font-size:32px;min-width:31px}
  .evolution h2{font-size:42px}.timeline-panel{gap:38px}.timeline-question{font-size:26px}.practice-row{grid-template-columns:20px 112px minmax(0,1fr) 130px;gap:18px}.preview-button{width:130px}.practice-label h3{font-size:16px}.practice-body h4{font-size:15px}.practice-body>p:not(.fine-print){font-size:12px}.practice h2{font-size:35px}.email{font-size:20px}.footer-signature{font-size:110px}.footer-signature em{font-size:136px}
  .build-heading h2{font-size:35px}.build-heading>p{font-size:11px}.build-layout{gap:28px}.build-copy>h4{font-size:18px}.build-media{top:100px}.build-facts>div{grid-template-columns:52px minmax(0,1fr);gap:9px;font-size:9px}
}
@media(max-width:760px){
  html{scroll-padding-top:110px}.wrap{width:calc(100% - 40px)}.section{padding-block:60px}.header{height:88px;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:50px 38px;padding-inline:20px;gap:0}.wordmark{font-size:17px;justify-self:start}.header nav{grid-column:1/-1;grid-row:2;align-self:stretch;font-size:11px;gap:29px}.header nav a{padding-block:7px}.header nav a::after{bottom:3px}.header-tools{grid-column:2;grid-row:1;gap:18px}.header .icon-button{width:30px;height:34px}.resume-link{width:30px;height:34px;justify-content:center}.resume-link span{display:none}
  .cover-scene{height:min(620px,calc(100svh - 216px));min-height:480px}.cover-identity{left:20px;right:20px;top:25px;max-width:none}.latin-name{font-size:57px;gap:7px;line-height:1.08}.latin-name em{font-size:72px;padding-right:4px}.cn-name{font-size:12px;margin-top:11px}.cn-name>span{padding-left:9px}.cover-role{font-size:11px;margin-top:20px}.cover-bio{font-size:11px;line-height:1.9;margin-top:9px}.cover-bio br{display:none}
  .cover-fallback{left:42%;top:38%;height:43%;transform:rotate(4deg)}
  .cover-bottom{left:20px;right:20px;bottom:18px;padding-top:14px;gap:15px;align-items:flex-end}.cover-down{font-size:10px;gap:10px;padding-bottom:8px}.cover-down svg{width:15px;height:15px}.cover-work{display:block;text-align:right}.cover-work>a{font-size:10px;justify-content:flex-end;gap:8px;margin-bottom:6px}.cover-work>a svg{width:11px;height:11px}.cover-switch{gap:4px;justify-content:flex-end}.cover-choice{width:27px;height:29px;font-size:10px}
  h2{font-size:32px;line-height:1.6}.section-top{gap:16px;margin-bottom:28px}.section-no{font-size:9px}.section-aside{font-size:9px}.text-link{font-size:11px;gap:9px}.text-link svg{width:15px;height:15px}
  .build{padding-top:50px}.build-heading{display:block;margin-bottom:32px}.build-heading h2{font-size:32px}.build-heading>p{margin-top:18px;font-size:11px;padding:0}.build-heading>p br{display:none}.build-layout{grid-template-columns:1fr;gap:23px}.build-copy>h3{font-size:29px}.build-subtitle{font-size:10px}.build-copy>h4{font-size:20px;margin-top:22px}.build-problem{font-size:13px}.build-roles{margin-top:20px}.build-roles dt{font-size:9px}.build-roles dd{font-size:12px}.build-media{position:static}.build-media figcaption{font-size:9px}.build-facts>div{grid-template-columns:60px minmax(0,1fr);font-size:10px}.build-decisions,.feedback-steps,.hypothesis-steps{grid-template-columns:1fr;gap:23px}.build-decisions{margin-top:30px;padding-top:26px}.build-decisions article,.feedback-steps>div,.hypothesis-steps article{position:relative;padding-left:40px}.build-decisions article>span,.feedback-steps>div>span,.hypothesis-steps article>span{position:absolute;left:0;top:6px;font-size:28px}.build-decisions h4,.feedback-steps h4,.hypothesis-steps h4{margin-top:0;font-size:14px}.build-decisions article>p,.feedback-steps p,.hypothesis-steps article>p{font-size:12px}.build-limit,.hypothesis-limit{font-size:9px}
  .games{padding-top:50px}.games-heading{display:block;margin-bottom:33px}.games-heading h2{font-size:35px;line-height:1.55}.games-heading h2 br{display:block}.games-heading>p{margin-top:25px;gap:21px}.games-heading>p>strong{font-size:53px}.games-heading>p>span{font-size:10px}
  .games-layout{display:block}.game-tabs{display:grid;grid-template-columns:1fr 1fr;position:static;gap:0;border-top:1px solid var(--line);margin-bottom:26px}.game-tab{grid-template-columns:37px minmax(0,1fr);gap:11px;padding:17px 10px 17px 0;min-height:96px}.game-tab:nth-child(2n){padding-left:13px;border-left:1px solid var(--line)}.game-tab>img{width:37px;height:60px}.game-tab strong{font-size:13px;line-height:1.85}.game-tab-copy>span{font-size:7px;line-height:1.8;margin-bottom:5px}.game-tab>svg{display:none}.game-tab[aria-selected=true]::before{left:-1px;top:auto;bottom:-1px;height:2px;width:100%;transform:none}
  .game-gallery{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:78%;gap:23px;padding:28px 24px;min-height:0;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:24px;overscroll-behavior-inline:contain;scrollbar-width:thin}
  .gallery-button,.gallery-button:first-child,.gallery-button:nth-child(2),.gallery-button:last-child{height:397px;transform:none;scroll-snap-align:center}.gallery-button:hover,.gallery-button:first-child:hover,.gallery-button:nth-child(2):hover,.gallery-button:last-child:hover{transform:none}.gallery-button>span{width:25px;height:25px}.gallery-button img{filter:drop-shadow(0 12px 12px #0003)}
  .game-story{grid-template-columns:1fr;padding-top:27px;gap:24px}.game-story h3{font-size:25px}.game-metrics{gap:28px;margin-top:14px}.game-metrics strong{font-size:30px}.game-source{margin-top:17px}.game-question{font-size:14px}.game-structure{font-size:11px}.game-reflection{font-size:13px}.game-credit{font-size:9px}.snapshot-note{margin-top:30px;font-size:9px}
  .feedback{margin-top:32px;padding-top:26px}.feedback-heading{display:block}.feedback-heading h3{font-size:19px}.feedback-heading .text-link{margin-top:14px;font-size:10px}.feedback-steps{gap:20px}.assistant-hypothesis{margin-top:30px;padding-block:26px}.hypothesis-heading h3{font-size:23px;line-height:1.85}.hypothesis-heading>p{font-size:12px}.hypothesis-steps article>small{font-size:9px;margin-top:10px}
  .research-heading{display:block;margin-bottom:34px}.research-heading h2{font-size:32px}.research-heading>p{font-size:11px;line-height:2;margin-top:21px;padding:0}.research-heading>p br{display:none}.research-layout{display:block}.research-tabs{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:30px}.research-tab{display:block;min-height:104px;padding:17px 12px 19px 0;font-size:11px;line-height:1.9;border-bottom:1px solid #bac1bd}.research-tab>span{display:block;font-size:29px;margin-bottom:12px}.research-tab[aria-selected=true]::after{width:100%;height:2px;left:0;right:0;bottom:-1px;border-radius:0}
  .research-title-line{padding-top:0;border-top:0}.research-title-line h3{font-size:25px;line-height:1.8}.research-status{font-size:9px;margin-top:10px}.research-projects{font-size:9px;margin-top:10px}.research-question{font-size:14px;margin-top:23px;line-height:2}
  .architecture{margin:26px 0 30px;padding:21px 0}.architecture h4{font-size:11px}.graph{min-height:430px;margin-top:21px}.graph-nodes{grid-template-columns:1fr;gap:23px;padding:5px 0 5px 48px}.graph-node{min-height:64px;padding:4px 0 4px 16px}.graph-node>span{position:absolute;left:-44px;top:11px;width:25px;background:var(--soft);z-index:2;font-size:9px;margin:0}.graph-node strong{font-size:16px;line-height:1.8}.graph-node small{font-size:10px;line-height:1.9;margin-top:3px}.graph-node:not(:last-child)::after{left:-31px;top:25px;width:1px;height:87px}.graph-note{font-size:9px;margin-top:8px}.research-body{grid-template-columns:1fr;gap:29px}.research-observation h4{font-size:21px}.research-observation p,.research-evidence p{font-size:13px}.research-label,.research-evidence h4{font-size:9px}.research-figure figcaption{font-size:9px}.evidence-details li{font-size:10px}
  .evolution h2{font-size:32px;line-height:1.65}.timeline{margin-top:33px}.time-tab{min-height:124px;padding:19px 9px;border-right:1px solid var(--line)}.time-tab time{font-size:8px;line-height:1.8;margin-bottom:15px}.time-tab strong{font-size:12px;line-height:2}.time-tab:first-child{padding-left:0}.timeline-panel{grid-template-columns:1fr;gap:24px;padding-top:28px;min-height:370px}.timeline-question{font-size:24px;line-height:1.8;max-width:none}.timeline-change{font-size:12px;margin-top:17px}.timeline-answer>p{font-size:13px;line-height:2.1}.timeline-answer .timeline-limit{font-size:12px;margin-top:15px}.timeline-answer .timeline-source{font-size:9px;margin-top:18px}
  .practice h2{font-size:32px;line-height:1.6}.practice h2 br{display:block}.practice-row{grid-template-columns:20px minmax(0,1fr) 75px;gap:14px;padding:27px 0}.practice-row:first-of-type{margin-top:33px}.practice-index{font-size:10px}.practice-label{grid-column:2}.practice-label h3{font-size:20px}.practice-label p{font-size:10px;margin-top:0}.practice-body{grid-column:2/-1}.practice-body h4{font-size:15px;line-height:2}.practice-body>p:not(.fine-print){font-size:13px;line-height:2.1}.practice-body .fine-print{font-size:9px}.practice-total{grid-column:3;grid-row:1 / span 2}.practice-total>strong{font-size:65px;line-height:.9}.practice-total>span{font-size:8px;gap:5px;margin-top:13px}.practice-total svg{width:10px;height:10px}.pr-links a{font-size:10px;gap:8px}.pr-links a>span{margin-left:0}
  .preview-button{grid-column:2/-1;width:100%;max-width:330px}.row-source{grid-column:2/-1;justify-self:start;margin-top:0}.film-disclosure>summary{grid-template-columns:92px minmax(0,1fr) 17px;gap:14px;padding-block:23px}.film-disclosure>summary>img{width:92px;height:70px}.film-title>span{font-size:8px;margin-bottom:7px}.film-title strong{font-size:13px;line-height:1.8}.film-duration{display:none}.film-disclosure summary svg{width:16px;height:16px}.film-content p{font-size:10px}.public-note{display:block;font-size:9px}.public-note .text-link{margin-top:10px}
  .about{width:100%}.about-layout{grid-template-columns:1fr;gap:27px}.about-lead{font-size:21px}.education{margin-top:27px;padding-top:23px}.education h3{font-size:16px}.education p{font-size:11px}.job h4{font-size:13px}.job p{font-size:11px}
  .footer{padding-top:45px}.footer h2{font-size:30px}.contact-mark{width:57px;height:57px;flex-shrink:0}.contact-mark svg{width:27px;height:27px}.contact-row{flex-wrap:wrap;gap:22px;margin-top:31px;padding-bottom:27px}.email{font-size:20px;width:100%}.wechat{font-size:11px}.wechat strong{font-size:13px}.contact-row>.text-link{margin-left:auto;font-size:10px}.footer-signature{font-size:58px;gap:8px;margin-top:29px;line-height:1.1}.footer-signature em{font-size:74px;padding-right:4px}.footer-meta{font-size:8px;gap:20px;padding-top:20px;margin-top:25px}
  dialog{padding:15px;width:calc(100% - 24px)}.preview-heading h2{font-size:14px}#preview-caption{font-size:10px}
}
@media(max-width:380px){
  .wrap{width:calc(100% - 32px)}.header{padding-inline:16px}.header nav{font-size:10px;gap:28px}.wordmark{font-size:16px}.header-tools{gap:13px}
  .cover-identity{left:16px;right:16px;top:24px}.latin-name{font-size:50px;gap:5px}.latin-name em{font-size:63px}.cn-name{font-size:11px}.cover-role{margin-top:17px;font-size:10px}.cover-bio{font-size:10px;max-width:275px}.cover-bottom{left:16px;right:16px}.cover-choice{width:25px}
  .section-no{font-size:8px}.section-aside{font-size:8px}h2,.games-heading h2,.research-heading h2,.evolution h2,.practice h2{font-size:29px}.games-heading>p>strong{font-size:49px}.games-heading>p>span{font-size:9px}.game-tab{grid-template-columns:30px minmax(0,1fr);gap:9px}.game-tab>img{width:30px;height:54px}.game-tab:nth-child(2n){padding-left:10px}.game-tab strong{font-size:12px}.game-tab-copy>span{font-size:7px}.gallery-button,.gallery-button:first-child,.gallery-button:nth-child(2),.gallery-button:last-child{height:350px}
  .header nav{gap:23px}.build-heading h2{font-size:29px}.build-copy>h4{font-size:18px}.build-heading>p{font-size:10px}.hypothesis-heading h3{font-size:21px}.feedback-heading h3{font-size:18px}
  .research-tab{font-size:10px;padding-right:4px}.research-tab>span{font-size:27px}.research-title-line h3{font-size:23px}.research-projects{font-size:8px}.research-observation h4{font-size:20px}.time-tab{padding-inline:7px}.time-tab time{font-size:7px}.time-tab strong{font-size:11px}.timeline-question{font-size:23px}
  .email{font-size:18px}.footer-signature{font-size:48px;gap:6px}.footer-signature em{font-size:62px}.footer h2{font-size:27px}.film-title strong{font-size:12px}.film-disclosure>summary{grid-template-columns:80px minmax(0,1fr) 16px;gap:12px}.film-disclosure>summary>img{width:80px}
}
@media(max-width:760px) and (max-height:720px){.cover-identity{top:20px}.cover-role{margin-top:14px}.cover-bio{margin-top:7px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.gallery-button:hover,.preview-button:hover img{transform:none}}
