.music-control{position:fixed;z-index:60;display:grid;place-items:center;width:48px;height:48px;padding:0;border:1px solid #597d7940;border-radius:50%;color:#58716f;background:#f6f9f3e6;box-shadow:0 3px 18px #27484012;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;transition:left .22s ease,top .22s ease,transform .22s ease,color .2s,background .2s}.music-control[data-playing=true]{color:#315c51;background:#e5eee8f2}.music-control:hover{color:#315c51;background:#f7faf5}.music-control[data-edge=left]:hover,.music-control[data-edge=left]:focus-visible{transform:translate(24px)}.music-control[data-edge=right]:hover,.music-control[data-edge=right]:focus-visible{transform:translate(-24px)}.music-control svg{pointer-events:none;transition:transform .22s ease}.music-control[data-edge=left] svg{transform:translate(9px)}.music-control[data-edge=right] svg{transform:translate(-9px)}.music-control:hover svg,.music-control:focus-visible svg{transform:none}.music-control:focus-visible{outline:2px solid #6c8d83;outline-offset:4px}.music-control[data-dragging=true]{cursor:grabbing;transition:none}@media(prefers-reduced-motion:reduce){.music-control,.music-control svg{transition:none}}.gradient-text{position:relative;display:inline-flex;align-items:center;justify-content:center;max-width:100%;isolation:isolate}.gradient-text--border{padding:.35em .75em;border-radius:999px}.gradient-text--border:before{content:"";position:absolute;inset:0;padding:var(--gt-border);border-radius:inherit;background-image:var(--gt-gradient);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);pointer-events:none}.gradient-text__inner{position:relative;display:inline-block}.gradient-text__content{display:inline-block;background-image:var(--gt-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.gradient-text__glow{position:absolute;inset:0;z-index:-1;background-image:var(--gt-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:blur(.3em) saturate(1.4);opacity:var(--gt-glow);pointer-events:none;-webkit-user-select:none;user-select:none}.m-overlay{position:fixed;inset:0;z-index:200;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:30px;background:#101d27;color:#e9f1ec}.m-overlay-eyebrow{font-size:10px;letter-spacing:.46em;text-indent:.46em;color:#9db4a9}.m-overlay-title{font-family:var(--serif);font-weight:500;font-size:clamp(38px,6vw,96px);letter-spacing:.08em;line-height:1.15}.m-overlay-bar{width:min(300px,48vw);height:1px;background:#e9f1ec29;overflow:hidden}.m-overlay-bar>i{display:block;height:100%;background:#dce8de;transform:scaleX(0);transform-origin:left center}[data-m=curtain]{overflow:hidden}.panel-inner{position:relative;z-index:1}.m-mask{display:block;overflow:hidden}.m-line{display:block;transform-origin:0% 100%}@media(max-width:720px){.m-overlay{gap:22px}}@media(prefers-reduced-motion:reduce){.m-line{will-change:auto}}.about-panel .about-art{width:100%;max-width:min(460px,calc((100svh - var(--footer-height) - var(--header-height) - 101px) * .666667));height:auto;max-height:none;justify-self:center;display:grid;grid-template-rows:auto 38px;background:#14222f}.about-panel .about-art>img{width:100%;height:auto;aspect-ratio:2 / 3;object-fit:contain}.about-panel .about-art:after{content:none}.about-panel .image-caption{position:static;padding:0 17px;align-items:center;font-size:9px}.about-panel .about-content{align-self:center;min-width:0;max-height:none;overflow:visible;padding:0}.about-panel .about-content h2{margin:14px 0 9px}.about-panel .about-role{margin-bottom:0}.resume-section{margin-top:20px}.about-panel .resume-section>h3{display:flex;align-items:center;gap:8px;margin:0 0 11px;padding-bottom:8px;border-bottom:1px solid #6e97912e;font-size:13px;font-weight:600;color:#244d50}.resume-section>h3:before{content:"";height:14px;width:3px;background:#478f88;flex-shrink:0}.resume-overview{color:#5f7775;font-size:12px;line-height:1.9}.resume-capabilities{display:flex;flex-wrap:wrap;gap:7px;list-style:none;padding:0;margin:0}.resume-capabilities>li{border:1px solid #6e979144;padding:6px 9px;color:#607a70;font-size:10px;line-height:1.5}.about-panel .experience-list{padding-top:3px}.about-preferences{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin:23px 0 0;padding-top:15px;border-top:1px solid #6e97912e}.about-preferences dt{margin-bottom:8px;font-size:9px;line-height:1.5;color:#8b938c}.about-preferences dd{display:flex;align-items:center;gap:6px;margin:0;font-size:11px;line-height:1.7}.about-preferences svg{flex-shrink:0}@media(min-width:1600px){.about-panel .about-art{max-width:min(500px,calc((100svh - var(--footer-height) - var(--header-height) - 101px) * .666667))}.resume-overview{font-size:13px}.about-panel .resume-section>h3{font-size:15px}.resume-capabilities>li{font-size:11px}.about-preferences dt{font-size:10px}.about-preferences dd{font-size:12px}}@media(max-height:800px)and (min-width:601px){.about-panel .about-content h2{margin:10px 0 7px}.resume-section{margin-top:14px}.about-panel .resume-section>h3{padding-bottom:6px;margin-bottom:8px}.about-panel .experience-list{gap:10px}.about-preferences{margin-top:16px;padding-top:11px}}@media(max-width:600px){.about-panel .about-art{max-width:300px;grid-template-rows:auto 36px}.about-panel .about-content{align-self:auto}.about-panel .image-caption{font-size:8px}.about-preferences{flex-wrap:wrap}}@font-face{font-family:"Noto Serif SC";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/noto-serif-sc-0.woff2) format("woff2")}@font-face{font-family:"Noto Serif SC";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/noto-serif-sc-1.woff2) format("woff2")}@font-face{font-family:"Noto Serif SC";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/noto-serif-sc-2.woff2) format("woff2")}@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/dm-sans-0.woff2) format("woff2")}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/dm-sans-1.woff2) format("woff2")}@font-face{font-family:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/dm-sans-2.woff2) format("woff2")}@font-face{font-family:DM Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/dm-sans-3.woff2) format("woff2")}:root{font-family:DM Sans,Microsoft YaHei,sans-serif;color:#253f48;background:#f3f5f1;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--ink: #173f53;--muted: #748084;--line: rgba(49, 74, 79, .18);--serif: "Noto Serif SC", "Songti SC", "SimSun", serif;--footer-height: 85px;--header-height: 108px}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{color:inherit;cursor:pointer}button{border:0;background:none;padding:0}button:disabled{cursor:default;opacity:.3}button,a{touch-action:manipulation}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #426c76;outline-offset:6px}button:hover,a:hover{color:#688e92}img,video{display:block;max-width:100%}button,a{transition:color .2s,background .2s,opacity .2s,transform .2s}::selection{background:#c6d9d7}.skip-link{position:fixed;top:-60px;left:20px;padding:12px 18px;background:#fff;z-index:100}.skip-link:focus{top:15px}.portfolio{height:100svh}.site-header{height:var(--header-height);display:flex;align-items:center;justify-content:space-between;padding:0 3.8vw;position:fixed;top:0;left:0;width:100%;z-index:30;pointer-events:none}.site-header>*{pointer-events:auto}.chapter-0 .site-header{background:linear-gradient(180deg,#e7eff0bf,#e7eff055 72%,transparent)}.wordmark{text-align:left;display:flex;flex-direction:column;gap:3px}.wordmark-name{font-size:26px;font-weight:650;letter-spacing:1px;line-height:1}.brand-dot{color:#76928a;margin-left:2px}.wordmark-caption{font-size:8px;letter-spacing:2.05px;font-weight:500}.top-nav{display:flex;gap:39px;padding-left:14px}.top-nav button{font-size:12px;display:flex;align-items:center;gap:8px;color:#566970;position:relative}.top-nav button span{font-size:8px;opacity:.6;transform:translateY(-5px)}.top-nav button.selected{color:var(--ink)}.top-nav button.selected:after{content:"";position:absolute;bottom:-10px;left:0;width:13px;height:1px;background:var(--ink)}.contact-pill{border:1px solid #809b9d55;border-radius:50px;display:flex;gap:13px;align-items:center;padding:12px 17px;font-size:11px;background:#ffffff1f;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.contact-pill:hover{background:#fff8}.status-dot,.live-dot{width:5px;height:5px;border-radius:100%;background:#81958a;display:inline-block;flex-shrink:0}.horizontal-rail{width:100vw;height:calc(100svh - var(--footer-height));display:flex;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none}.horizontal-rail::-webkit-scrollbar{display:none}.panel{width:100%;height:100%;flex:0 0 100%;scroll-snap-align:start;position:relative;overflow:hidden}.panel-inner{max-width:1700px;width:calc(100% - 9.2vw);margin:0 auto;height:100%;padding-top:calc(var(--header-height) + 22px);padding-bottom:32px}.eyebrow{font-size:9px;letter-spacing:1.65px;font-weight:500;line-height:1.6;margin:0}.section-index{color:#7c9293;margin-right:13px;letter-spacing:1px}h2,h3,p{margin:0}.body-copy{font-size:12px;line-height:2.1;color:#6e7b7c;font-weight:400}.icon-button{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0}.icon-button:hover{background:#244e5510}.text-action{display:inline-flex;align-items:center;gap:24px;font-size:11px}.round-arrow{height:38px;width:38px;border:1px solid #597b8755;border-radius:100%;display:grid;place-items:center;transition:transform .25s}.text-action:hover .round-arrow{transform:translate(5px)}.hero-panel{background:#dbe6eb}.hero-visual{position:absolute;inset:0;overflow:hidden}.hero-video{width:100%;height:100%;object-fit:cover;object-position:35% 47%}.hero-wash{position:absolute;inset:0;background:linear-gradient(90deg,#d8e5e90d,#e2ebed0a 42%,#deeaef40 59%,#dce8ed 79% 100%)}.hero-wash:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#e2ecec69,transparent 22%,transparent 70%,#e3ecea7a)}.hero-grain{position:absolute;inset:0;opacity:.035;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.6' filter='url(%23n)'/%3E%3C/svg%3E")}.hero-copy{position:absolute;left:68.5%;top:50%;transform:translateY(-45%);width:29%}.hero-copy .eyebrow{font-size:8px;letter-spacing:1.6px;white-space:nowrap}.tiny-star{font-size:16px;margin-right:7px;display:inline-block;vertical-align:-1px}.hero-copy h1{font-family:var(--serif);font-size:clamp(62px,6.25vw,112px);font-weight:400;letter-spacing:-.035em;line-height:1.35;margin:17px 0 20px;color:#173f59}.hero-copy h1>span{display:block;white-space:nowrap}.title-stop{font-size:.6em;letter-spacing:-.3em;margin-left:-.12em}.hero-rule{width:67%;max-width:230px;height:1px;background:#3d627a66;margin:0 0 17px 3px}.hero-english{font-family:Georgia,Times New Roman,serif;font-size:clamp(14px,1.2vw,21px);letter-spacing:.21em;line-height:1.6;margin-left:3px;color:#37576b}.hero-english em{font-weight:400;font-style:normal;letter-spacing:.25em}.hero-description{font-size:11px;letter-spacing:2px;line-height:1.9;color:#627d89;margin:22px 0 22px 3px}.hero-copy .text-action{margin-left:3px}.hero-signature{position:absolute;left:3.8vw;bottom:7.6%;display:flex;flex-direction:column;gap:13px}.signature-name{font-family:var(--serif);font-size:25px;letter-spacing:3px}.signature-name i{font-family:Georgia,serif;font-size:18px;margin-left:10px;letter-spacing:.2px}.hero-signature>span:last-child{font-size:9px;letter-spacing:1.4px}.hero-bottom-note{position:absolute;bottom:6.2%;left:46%;font-size:9px;letter-spacing:1px;display:flex;gap:8px;align-items:center}.hero-show-note{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none;-webkit-user-select:none;user-select:none;font-family:var(--serif);font-weight:500;font-size:clamp(30px,3.2vw,52px);line-height:1.5;letter-spacing:.32em;text-indent:.32em;color:#173f595c;white-space:nowrap}.hero-show-note .split-parent{margin:0}.timeline{height:var(--footer-height);position:fixed;bottom:0;width:100%;background:#f8f9f5;border-top:1px solid var(--line);display:flex;align-items:center;gap:35px;padding:0 3.8vw;z-index:35}.timeline-current{display:flex;gap:10px;align-items:baseline;white-space:nowrap}.timeline-current>span:first-child{font-size:22px;font-weight:450;letter-spacing:-1px}.timeline-slash{color:#99a3a2;font-size:10px}.timeline-track{flex:1;position:relative;padding-top:1px}.timeline-line{position:absolute;left:0;right:0;height:1px;background:#d5deda;top:5px}.timeline-line>div{height:1px;background:#567971;transition:width .1s}.chapter-buttons{display:flex;justify-content:space-between;position:relative}.chapter-buttons button{display:flex;flex-direction:column;align-items:center;gap:10px;font-size:7px;letter-spacing:1.2px;color:#98a09b}.chapter-buttons button:first-child{align-items:flex-start}.chapter-buttons button:last-child{align-items:flex-end}.chapter-dot{display:block;width:7px;height:7px;background:#f8f9f5;border:1px solid #c0ccca;border-radius:100%;transition:background .2s}.chapter-buttons button.active{color:#315848}.chapter-buttons button.active .chapter-dot{background:#6c8b80;border-color:#6c8b80;box-shadow:0 0 0 4px #6c8b8011}.timeline-controls{position:relative;display:flex;gap:9px;align-items:center}.autoplay-dock{position:absolute;bottom:calc(100% + (var(--footer-height) - 36px) / 2 + 12px);right:0;display:flex;align-items:center;gap:12px;transition:opacity .4s ease,transform .4s ease}.autoplay-dock.is-hidden{opacity:0;pointer-events:none;transform:translateY(8px)}.autoplay-hint{font-size:11px;letter-spacing:.1em;white-space:nowrap}.timeline-play{color:#21404e}.timeline-play svg{display:block}.timeline-play .i-pause,.timeline-play[data-playing=true] .i-play{display:none}.timeline-play[data-playing=true] .i-pause{display:block}.autoplay-button{display:inline-flex;align-items:center;gap:10px;height:42px;padding:0 22px;border-radius:999px;background:#fff;border:1px solid rgba(49,74,79,.1);box-shadow:0 1px 2px #173f530d,0 10px 22px -10px #173f533d;font-size:12px;font-weight:500;letter-spacing:.05em;color:var(--ink);white-space:nowrap}.autoplay-button .meta{font-size:10px;font-weight:400;letter-spacing:.04em;color:#9aa5a3}.autoplay-button:hover{color:var(--ink);background:#fff;transform:translateY(-1px);box-shadow:0 2px 4px #173f530f,0 15px 28px -12px #173f534d}.autoplay-button:active{transform:translateY(0)}.playback-error{position:fixed;bottom:calc(var(--footer-height) + 16px);right:3.8vw;z-index:40;padding:12px 16px;background:#f8f9f5;border:1px solid var(--line);font-size:11px}.about-panel{background:#f4f4ef}.about-layout{display:grid;grid-template-columns:.88fr 1.15fr;gap:8%;align-items:center;padding-top:calc(var(--header-height) + 18px);padding-bottom:45px}.about-art{height:100%;max-height:680px;min-height:0;overflow:hidden;position:relative;background:#d0d5ce}.about-art>img{width:100%;height:100%;object-fit:cover;object-position:center 30%}.about-art:after{position:absolute;content:"";inset:60% 0 0;background:linear-gradient(transparent,#213a3455);pointer-events:none}.image-caption{position:absolute;left:21px;right:21px;bottom:22px;display:flex;justify-content:space-between;color:#fff;font-size:8px;letter-spacing:1px;z-index:1}.image-corner{position:absolute;font-family:var(--serif);writing-mode:vertical-rl;right:24px;top:26px;font-size:13px;letter-spacing:3px;color:#fff}.about-content{max-height:100%;overflow-y:auto;scrollbar-width:thin;padding:3px 2px 3px 0}.about-content h2{font-family:var(--serif);font-size:clamp(32px,3.1vw,56px);font-weight:400;margin:23px 0 12px;letter-spacing:-1px}.serif-dot{color:#789387}.about-role{font-size:10px;letter-spacing:1.5px;color:#8b918a;margin-bottom:22px}.about-content>.body-copy{max-width:540px}.experience-list{display:flex;flex-direction:column;gap:17px}.experience-list>div{display:grid;grid-template-columns:138px 1fr;gap:20px}.experience-list time{font-size:8px;color:#8c9590;line-height:1.8;letter-spacing:.3px}.experience-list p{font-size:11px}.experience-list p span{display:block;font-size:9px;margin-top:5px;color:#8b938c}.about-links{display:flex;justify-content:space-between;margin-top:24px;gap:14px}.about-links>*{display:flex;align-items:center;gap:6px;font-size:9px}.tone-sage{background:#edf0ea}.tone-rose{background:#f1edeb}.tone-sand{background:#f1efe8}.project-inner{display:flex;flex-direction:column;padding-top:calc(var(--header-height) + 15px);padding-bottom:27px}.project-topline{display:flex;align-items:center;justify-content:space-between;font-size:8px;letter-spacing:1.25px;color:#87928b;margin-bottom:20px}.project-topline span:first-child{color:#455e56}.project-topline span:nth-child(2){margin-left:20%}.project-layout{display:grid;grid-template-columns:1.78fr 1fr;gap:5.3%;flex:1;min-height:0}.project-media{position:relative;height:100%;min-height:0;overflow:hidden;background:#d4dcd3}.project-image-button{width:100%;height:100%;display:block}.project-image-button img{width:100%;height:100%;object-fit:cover;object-position:center 27%;transition:transform .7s cubic-bezier(.2,.65,.3,1)}.project-image-button:hover img{transform:scale(1.025)}.tone-sage .project-image-button img{object-position:center 25%}.tone-rose .project-media{background:#e9e0de;padding:26px 40px 66px}.tone-rose .project-image-button img{object-fit:contain}.media-label{position:absolute;left:22px;top:22px;font-size:8px;letter-spacing:1px;color:#fff;padding:8px 12px;border:1px solid #ffffff55;border-radius:30px;background:#122c2920;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:none}.tone-rose .media-label{color:#6b625e;border-color:#6b625e44;background:#fff5}.expand-button{position:absolute;top:18px;right:18px;color:#fff;background:#2a494233;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid #ffffff33}.expand-button:hover{background:#2a494266;color:#fff}.image-selection{position:absolute;bottom:20px;left:23px;display:flex;gap:11px}.image-selection button{font-size:9px;color:#fff8;width:33px;height:31px;border-top:1px solid #ffffff44;text-align:left;padding-top:10px}.image-selection button.active{color:#fff;border-top-color:#fff}.tone-rose .image-selection button{color:#5b656677;border-top-color:#5b656644}.tone-rose .image-selection button.active{color:#354e4b;border-color:#354e4b}.project-description{padding:24px 2px 4px 0;overflow-y:auto;scrollbar-width:thin}.project-description>.eyebrow{font-size:7px;letter-spacing:1.1px}.project-description h2{font-family:var(--serif);font-size:clamp(28px,2.55vw,49px);font-weight:400;line-height:1.6;letter-spacing:-.7px;margin:22px 0 20px}.project-description h2 span{display:block}.project-description h3{font-size:12px;font-weight:500;margin-bottom:15px;letter-spacing:.4px}.project-description .body-copy{font-size:11px;line-height:2.1;max-width:410px}.project-details{display:flex;flex-direction:column;gap:12px;padding-top:24px;margin-top:24px;border-top:1px solid var(--line)}.project-details>div{display:grid;grid-template-columns:60px 1fr;font-size:9px;line-height:1.7;gap:15px}.project-details>div>span{color:#8d9690}.tool-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:21px}.tool-tags span{padding:5px 9px;border:1px solid #637b6f22;border-radius:20px;font-size:8px;color:#7b8980}.project-detail-link{margin-top:24px;font-size:10px;gap:16px}.project-thumbnails{display:flex;align-items:center;gap:9px;margin-top:24px}.project-thumbnails button{height:51px;width:74px;overflow:hidden;opacity:.8}.project-thumbnails button:hover{opacity:1}.project-thumbnails img{width:100%;height:100%;object-fit:cover}.project-thumbnails>span{margin-left:5px;color:#939d94;font-size:6px;letter-spacing:1.4px;line-height:1.9}.project-bottomline{display:flex;justify-content:space-between;align-items:center;font-size:7px;letter-spacing:1px;color:#939e95;padding-top:19px}.project-bottomline button{display:flex;gap:14px;align-items:center;color:#50695f;font-size:9px;letter-spacing:.3px}.video-media{background:#d7d2c7}.video-media:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 30% 25%,#f4ede6,transparent 70%);pointer-events:none}.video-media video{height:100%;width:100%;object-fit:contain;position:relative}.video-control-bar{height:50px;position:absolute;bottom:0;left:0;right:0;background:#f7f7f0e8;display:flex;align-items:center;gap:13px;padding:0 18px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.video-control-bar>button{width:25px;height:30px;display:grid;place-items:center}.video-caption{font-size:7px;letter-spacing:1px;white-space:nowrap}.video-progress{height:2px;background:#cad1c7;flex:1;margin:0 5px 0 15px}.video-progress>span{display:block;height:2px;background:#648475}.abilities-panel{background:#f2f4ed}.abilities-inner{display:flex;flex-direction:column;justify-content:center;padding-bottom:42px;padding-top:calc(var(--header-height) + 15px)}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:40px}.section-heading h2{font-family:var(--serif);font-size:clamp(30px,3.2vw,59px);font-weight:400;line-height:1.5;margin-top:17px;letter-spacing:-1px}.section-heading>.body-copy{font-size:11px;line-height:2;margin-bottom:8px;padding-right:7%}.ability-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:17px}.ability-card{background:#e8ede4;padding:27px 24px 22px;min-width:0;border:1px solid #7f978118;transition:transform .3s}.ability-card:nth-child(2){background:#e6ecea}.ability-card:nth-child(3){background:#edeae1}.ability-card:nth-child(4){background:#e7eae2}.ability-card:hover{transform:translateY(-6px)}.ability-card-top{display:flex;justify-content:space-between;height:76px;align-items:flex-start}.ability-card-top>span:first-child{font-size:10px;color:#8f9a8c}.abstract-mark{display:block;color:#788e78;font-size:60px;line-height:1;font-family:Georgia,serif;font-weight:400;margin-top:-5px}.mark-1{color:#76938d}.mark-2{color:#a59a7c;transform:rotate(-30deg)}.mark-3{color:#85927c}.ability-card>.eyebrow{font-size:7px;letter-spacing:1.4px;color:#83907d}.ability-card h3{font-family:var(--serif);font-size:clamp(17px,1.5vw,27px);font-weight:400;margin:12px 0 18px}.ability-card>p:not(.eyebrow){font-size:10px;line-height:2;color:#7e887b;min-height:65px}.ability-tags{margin-top:26px;padding-top:16px;border-top:1px solid #74856b26;font-size:7px;color:#919a88;letter-spacing:.5px}.tools-line{display:flex;align-items:center;gap:30px;margin-top:33px}.tools-line>span{font-size:7px;letter-spacing:1.2px;color:#929b8d}.tools-line>p{font-size:10px;color:#737f6d}.tools-line i{margin:0 12px;font-style:normal;color:#b3b9aa}.tools-line button{margin-left:auto;width:35px;height:35px;border:1px solid var(--line);border-radius:100%;display:grid;place-items:center}.contact-panel{background:#e9eeea}.contact-inner{display:flex;flex-direction:column;justify-content:center;position:relative;z-index:1;padding-top:calc(var(--header-height) + 20px)}.contact-orb{position:absolute;right:-13vw;top:-22vw;width:65vw;height:65vw;background:radial-gradient(circle,#d0dfd680,#dce7df11 63%,transparent 70%);pointer-events:none}.contact-orb.second{left:-25vw;top:auto;bottom:-47vw;width:80vw;height:80vw;background:radial-gradient(circle,#c4d9d0aa,transparent 68%)}.contact-title{font-family:var(--serif);font-size:clamp(58px,6.7vw,124px);font-weight:400;line-height:1.45;margin:35px 0 38px;letter-spacing:-.055em}.contact-title p:last-child{display:flex;align-items:center;gap:2px}.contact-title p span{font-style:italic;color:#7b978b;padding-right:20px}.contact-title svg{width:6.5vw;height:6.5vw;stroke-width:.7;margin-left:2vw;color:#789385}.contact-details{display:flex;justify-content:space-between;align-items:flex-start;gap:30px;padding-bottom:38px}.availability{display:inline-flex;align-items:center;gap:8px;font-size:10px}.contact-details>div>p{color:#7e8b82;font-size:10px;line-height:2;margin-top:17px}.location{display:flex;gap:6px;align-items:center;font-size:9px;margin-top:15px;color:#8b978d}.contact-methods{width:46%;padding-top:9px}.contact-primary-row{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #68877944;padding-bottom:15px;gap:24px}.wechat-id{font-size:clamp(20px,2.3vw,43px);letter-spacing:-1px;white-space:nowrap}.contact-subrow{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:18px;font-size:11px;letter-spacing:1px}.phone-link{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.copy-contact{min-width:0}.copy-contact button{display:flex;gap:8px;align-items:center;font-size:10px;letter-spacing:.3px;white-space:nowrap}.copy-contact button>svg{flex-shrink:0}.copy-contact input{display:block;max-width:100%;width:170px;background:transparent;border:1px solid var(--line);font-size:10px;padding:4px;margin-top:5px}.contact-footer{display:flex;gap:28px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:26px}.contact-footer .wordmark-name{font-size:20px}.contact-footer>span:not(.wordmark-name){margin-left:auto;font-size:7px;letter-spacing:1px;color:#9ca69b}.contact-footer button{display:flex;align-items:center;gap:14px;font-size:9px}.media-dialog{border:0;padding:0;color:#355342;background:#edf1eceb;max-width:none;max-height:none;width:100vw;height:100svh}.media-dialog::backdrop{background:#e0e7dfe8;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.modal-shell{height:100%;width:min(1180px,90vw);margin:0 auto;padding:24px 0;display:flex;flex-direction:column}.modal-shell-gallery{width:min(1440px,96vw)}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-header .eyebrow{color:#8b9a82;font-size:7px}.modal-header h2{font-family:var(--serif);font-size:22px;font-weight:400;margin-top:7px}.modal-header .icon-button:hover,.modal-footer .icon-button:hover{color:#31543c;background:#6f886a14}.modal-media{position:relative;min-height:0;flex:1;display:flex;align-items:center;justify-content:center;background:#dbe4d511}.modal-media>*{width:100%;height:100%;object-fit:contain}.show-album-caption{position:absolute;inset:0;z-index:6;display:flex;align-items:center;justify-content:center;margin:0;pointer-events:none;-webkit-user-select:none;user-select:none;font-family:var(--serif);font-weight:600;font-size:clamp(40px,5.5vw,88px);letter-spacing:.22em;text-indent:.22em;color:#ffffff8c;text-shadow:0 2px 34px rgba(16,29,39,.5)}@media(prefers-reduced-motion:no-preference){.show-album-caption{animation:show-album-caption-in .9s .18s cubic-bezier(.22,.61,.36,1) both}}@keyframes show-album-caption-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.modal-footer{display:flex;justify-content:space-between;align-items:center;padding-top:15px}.modal-footer>span{font-size:9px;color:#7f9277}.modal-footer>div{display:flex;align-items:center;gap:15px;font-size:10px}.modal-shell-gallery .modal-footer>div{margin-left:auto}.modal-shell-album{width:min(1500px,94vw)}.modal-shell-album .modal-header{flex-shrink:0;gap:20px}.modal-shell-album .modal-header>div:first-child{min-width:0}.modal-title-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px}.modal-title-row>time{color:#8a9b85;font-size:9px;letter-spacing:.04em;white-space:nowrap}.modal-header-actions{display:flex;align-items:center;gap:16px;flex-shrink:0}.album-back-button{display:inline-flex;align-items:center;gap:7px;font-size:10px;color:#69816a}.modal-shell-album .modal-media{overflow:hidden;background:transparent}.modal-shell-album .modal-footer{flex-shrink:0;min-height:44px}.modal-shell-album.is-enlarged .modal-footer>div{margin-left:auto}.modal-shell-album.is-enlarged .modal-header h2{overflow-wrap:anywhere;font-weight:600}@media(max-width:600px){.modal-shell-album:not(.is-enlarged){height:auto;min-height:100%}.modal-shell-album:not(.is-enlarged) .modal-media{flex:none;overflow:visible}.modal-shell-album:not(.is-enlarged) .modal-media>.accordion-gallery{height:auto}.modal-shell-album .modal-header{align-items:flex-start;gap:10px}.modal-header-actions{gap:8px}.album-back-button{font-size:9px}}@media(min-width:1800px){:root{--header-height: 125px;--footer-height: 98px}.body-copy{font-size:14px}.hero-description,.hero-copy .text-action{font-size:13px}.about-content h2{margin-top:30px}.about-role{font-size:12px}.experience-list{gap:23px}.experience-list p{font-size:13px}.experience-list time,.experience-list p span{font-size:10px}.about-links{margin-top:33px}.project-description{padding-top:5%}.project-description .body-copy{font-size:13px}.project-description h3{font-size:14px}.project-details>div{font-size:11px}.project-description h2{margin:30px 0}.project-thumbnails button{width:95px;height:64px}.ability-card{padding:35px 30px}.ability-card-top{height:110px}.ability-card>p:not(.eyebrow){font-size:12px;min-height:80px}.ability-tags{font-size:9px}.section-heading{margin-bottom:48px}.contact-details{padding-bottom:65px}}@media(max-height:780px)and (min-width:901px){:root{--header-height: 83px;--footer-height: 72px}.hero-copy{top:49%;transform:translateY(-42%)}.hero-copy h1{font-size:min(6vw,76px);margin:10px 0 14px}.hero-description{margin:13px 0}.hero-english{font-size:14px}.hero-signature{bottom:6%}.hero-copy .round-arrow{width:32px;height:32px}.about-content h2{font-size:35px;margin:15px 0 10px}.about-role{margin-bottom:15px}.about-content>.body-copy{font-size:11px;line-height:1.9}.experience-list{gap:13px}.about-links{margin-top:18px}.project-description{padding-top:10px}.project-description h2{font-size:30px;margin:14px 0;line-height:1.5}.project-description h3{margin-bottom:10px}.project-description .body-copy{line-height:1.9;font-size:10px}.project-details{padding-top:15px;margin-top:15px;gap:8px}.tool-tags{margin-top:13px}.project-detail-link{margin-top:16px}.project-thumbnails{margin-top:18px}.section-heading{margin-bottom:24px}.section-heading h2{font-size:36px}.ability-card{padding:22px 20px}.ability-card-top{height:61px}.ability-card h3{margin-bottom:13px}.ability-tags{margin-top:19px}.contact-title{font-size:6.1vw;margin:25px 0;line-height:1.35}.contact-details{padding-bottom:25px}.contact-footer{padding-top:21px}}@media(max-width:1100px){.top-nav{gap:23px}.timeline{gap:22px}.timeline-controls{gap:3px}.autoplay-hint{display:none}.hero-copy{left:65%;width:32%}.hero-copy h1{font-size:7vw}.hero-wash{background:linear-gradient(90deg,transparent 30%,#dce8ed22 48%,#dce8ed 77%)}.hero-bottom-note{display:none}.about-layout{gap:5%;grid-template-columns:.85fr 1.2fr}.experience-list>div{grid-template-columns:110px 1fr;gap:7px}.project-layout{grid-template-columns:1.5fr 1fr;gap:4%}.project-description h2{font-size:29px}.ability-grid{gap:11px}.ability-card{padding-left:16px;padding-right:16px}.ability-card h3{font-size:17px}.tools-line{gap:20px}.tools-line i{margin:0 7px}.video-caption{font-size:6px}}@media(max-width:900px){:root{--header-height: 83px;--footer-height: 72px}.site-header{padding:0 24px}.wordmark-name{font-size:23px}.wordmark-caption{font-size:6px;letter-spacing:1.7px}.top-nav{gap:20px}.top-nav button{font-size:10px}.contact-pill{padding:9px 12px;font-size:9px;gap:8px}.panel-inner{width:calc(100% - 48px);padding-top:calc(var(--header-height) + 15px);padding-bottom:24px}.hero-copy{left:60%;width:38%}.hero-copy h1{font-size:8vw}.hero-copy .eyebrow{font-size:6px;letter-spacing:.6px}.hero-description{font-size:10px}.hero-english{font-size:12px}.hero-wash{background:linear-gradient(90deg,transparent 15%,#dce8ed11 38%,#dce8ede6 69%,#dce8ed 81%)}.hero-signature{left:24px}.timeline{padding:0 20px;gap:20px}.chapter-buttons button{font-size:5px;letter-spacing:.6px}.autoplay-button{height:36px;padding:0 15px;gap:8px;font-size:11px}.autoplay-button .meta{font-size:9px}.timeline-controls{gap:1px}.timeline-controls .icon-button{width:25px}.about-layout{gap:5%;grid-template-columns:.8fr 1.2fr}.about-content h2{font-size:30px;margin-top:17px}.about-role{font-size:8px;margin-bottom:17px}.about-content>.body-copy{font-size:10px}.about-links{flex-wrap:wrap;gap:9px}.experience-list>div{grid-template-columns:96px 1fr}.experience-list time{font-size:7px}.experience-list p{font-size:10px}.experience-list p span{font-size:8px}.project-topline{font-size:6px}.project-layout{grid-template-columns:1.2fr 1fr}.project-description h2{font-size:25px}.project-description h3,.project-description .body-copy{font-size:10px}.project-description>.eyebrow{font-size:6px;letter-spacing:.5px}.project-bottomline{font-size:5px}.project-bottomline>span:nth-child(2){display:none}.video-control-bar{gap:6px;padding:0 10px}.video-caption{display:none}.section-heading{margin-bottom:25px}.section-heading h2{font-size:31px}.section-heading>.body-copy{padding-right:0;font-size:9px}.ability-grid{grid-template-columns:repeat(2,1fr);gap:11px}.ability-card{padding:15px 18px}.ability-card-top{height:38px}.abstract-mark{font-size:38px}.ability-card h3{font-size:20px;margin:7px 0}.ability-card>p:not(.eyebrow){font-size:9px;min-height:34px;line-height:1.8}.ability-tags{margin-top:12px;padding-top:9px;font-size:6px}.tools-line{margin-top:18px;gap:20px}.tools-line>p{font-size:8px}.tools-line i{margin:0 5px}.contact-title{font-size:7.7vw}.contact-methods{width:48%}.contact-footer{gap:20px}}@media(max-width:600px){:root{--header-height: 78px;--footer-height: 70px}.site-header{padding:0 21px}.top-nav{display:none}.contact-pill{font-size:9px}.panel{overflow-y:auto;scrollbar-width:none}.panel-inner{width:calc(100% - 42px)}.hero-panel{overflow:hidden}.hero-video{object-position:27% center}.hero-wash{background:linear-gradient(180deg,#e0eaed44,transparent 29%,#dce8ed55 44%,#dce8edf0 72%,#dce8ed 100%)}.hero-copy{left:10%;top:auto;bottom:13%;transform:none;width:80%}.hero-show-note{top:40%;font-size:21px;gap:7px;letter-spacing:.22em;text-indent:.22em}.hero-copy .eyebrow{font-size:7px;letter-spacing:1.6px}.hero-copy h1{font-size:clamp(49px,13vw,77px);line-height:1.25;margin:12px 0 16px;letter-spacing:1px}.hero-copy h1>span{display:inline}.hero-copy h1>span:last-child{display:block;padding-left:15%}.hero-rule{width:64%;margin-bottom:12px}.hero-english{font-size:11px}.hero-english br{display:none}.hero-english em{margin-left:7px;letter-spacing:.1em}.hero-description{font-size:9px;margin:14px 0}.hero-copy .text-action{font-size:10px;gap:15px}.round-arrow{width:30px;height:30px}.hero-signature{left:21px;bottom:3.6%;gap:7px}.signature-name{font-size:17px}.signature-name i{font-size:13px;margin-left:5px}.hero-signature>span:last-child{font-size:6px;letter-spacing:.7px}.timeline{padding:0 17px;gap:13px}.timeline-current{gap:5px}.timeline-current>span:first-child{font-size:18px}.timeline-slash{font-size:8px}.chapter-buttons button{font-size:0;gap:0;width:16px;height:24px;padding-top:2px}.chapter-dot{width:6px;height:6px}.timeline-line{top:6px}.timeline-track{transform:translateY(7px)}.timeline-controls .icon-button{width:22px}.autoplay-button{height:32px;padding:0 12px;gap:7px;font-size:10px}.autoplay-button .meta{font-size:8px}.about-layout{display:flex;flex-direction:column;height:auto;min-height:100%;gap:25px;padding-bottom:30px}.about-art{height:29vh;width:100%;flex-shrink:0}.about-art>img{object-position:center 24%}.image-caption{bottom:14px;left:15px;right:15px;font-size:6px}.image-corner{top:15px;right:17px;font-size:10px;letter-spacing:2px}.about-content{overflow:visible;width:100%}.about-content h2{font-size:29px;margin:15px 0 10px}.about-content>.body-copy{font-size:11px}.experience-list>div{grid-template-columns:110px 1fr}.about-links{margin-top:22px}.project-inner{height:auto;min-height:100%;padding-bottom:25px}.project-topline{font-size:6px;letter-spacing:.6px;margin-bottom:14px}.project-topline>span:last-child{display:none}.project-layout{display:flex;flex-direction:column;gap:18px}.project-media{height:41vh;min-height:240px;flex-shrink:0}.project-description{overflow:visible;padding:6px 0}.project-description h2{font-size:30px;margin:13px 0 18px}.project-description h2 span{display:inline}.project-description h2 span:last-child{display:block}.project-description h3{font-size:12px}.project-description .body-copy{font-size:11px}.project-thumbnails{margin-top:20px}.project-bottomline{margin-top:18px;font-size:5px;letter-spacing:.4px}.media-label{left:14px;top:14px;font-size:7px}.expand-button{top:10px;right:10px}.tone-rose .project-media{padding:20px 25px 50px}.section-heading{display:block;margin-bottom:22px}.section-heading h2{font-size:34px}.section-heading>.body-copy{margin-top:15px;font-size:10px}.abilities-inner{height:auto;min-height:100%}.ability-grid{gap:10px}.ability-card{padding:17px 13px}.ability-card-top{height:46px}.ability-card>.eyebrow{font-size:5px;letter-spacing:.6px}.ability-card h3{font-size:17px;margin:10px 0}.ability-card>p:not(.eyebrow){font-size:9px;line-height:1.9;min-height:85px}.ability-tags{font-size:5px;letter-spacing:0;line-height:1.8}.tools-line{flex-wrap:wrap;gap:10px;padding-bottom:12px}.tools-line>span{width:100%}.tools-line>p{font-size:7px;line-height:2;max-width:85%}.contact-inner{min-height:100%;height:auto;padding-bottom:25px;padding-top:23vh}.contact-inner>.eyebrow{font-size:6px;letter-spacing:.9px}.contact-title{font-size:9.5vw;letter-spacing:-.06em;margin:25px 0 35px}.contact-title p span{padding-right:0}.contact-title svg{width:8vw;height:8vw;margin-left:2vw}.contact-details{flex-direction:column;gap:27px;padding-bottom:35px}.contact-details>div:first-child{display:grid;grid-template-columns:1fr 1fr;gap:10px 22px;width:100%}.contact-details>div>p{margin-top:0;font-size:9px}.availability{font-size:8px}.location{margin-top:0;font-size:8px}.contact-methods{width:100%;padding-top:0}.wechat-id{font-size:24px}.contact-footer{flex-wrap:wrap;gap:16px;padding-top:22px}.contact-footer>span:not(.wordmark-name){font-size:6px}.contact-footer button{margin-left:auto;font-size:8px}.modal-shell{width:90vw;padding:20px 0}.modal-header h2{font-size:17px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.deferred-section{display:flex;align-items:flex-start;justify-content:center;flex-direction:column;gap:12px;color:var(--muted)}.deferred-section h2{font:400 clamp(24px,3vw,42px) var(--serif);margin:0}.media-loading{position:fixed;inset:0;z-index:90;display:grid;place-items:center;background:#edf2f2ef;color:var(--ink)}
