@font-face{font-family:Portfolio Reference Inter;src:url(/fonts/inter-reference-latin.woff2) format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Portfolio Han Thin;src:url(/fonts/harmonyos-sans-sc-thin.woff2) format("woff2");font-style:normal;font-weight:250;font-display:swap;unicode-range:u+2e80-9fff,u+f900-faff,u+ff00-ffef,u+2????}@font-face{font-family:Portfolio Han Medium;src:url(/fonts/harmonyos-sans-sc-medium.woff2) format("woff2");font-style:normal;font-weight:500;font-display:swap;unicode-range:u+2e80-9fff,u+f900-faff,u+ff00-ffef,u+2????}:root{--font-sans:"Portfolio Han Thin",Inter,"Helvetica Neue",Arial,system-ui,sans-serif;--font-serif:"Portfolio Han Thin",Georgia,"Times New Roman",Times,serif}.about-production__intro{font-family:Portfolio Han Thin,Arial,Helvetica Neue,sans-serif}.about-production__intro-cn{font-family:Portfolio Han Medium,Arial,Helvetica Neue,sans-serif}.replica-projects__list .replica-projects__item,.replica-skills__title{font-family:"Portfolio Han Medium","Replica Breton",var(--font-sans)}.project-details-button,.project-dialog h2,.project-dialog h3,.project-dialog__close,.project-dialog__role dd,.replica-awards__organization,.replica-awards__title span,.replica-education p,.replica-projects-mobile__card h3{font-family:"Portfolio Han Medium",var(--font-sans)}.replica-contact__accent{font-family:"Portfolio Han Medium","Replica Machine",var(--font-serif)}.replica-hero__blueprint #hero-bottom-social{visibility:hidden!important}.replica-projects__list :is(p,.replica-projects__item){letter-spacing:-.015em}.replica-projects__preview-caption{gap:1rem;line-height:1.5}.replica-projects-mobile__card h3{line-height:1.3}.replica-projects-mobile__card p{line-height:1.7}.replica-projects-mobile__card .replica-projects__image{min-height:0;aspect-ratio:4/3}.replica-projects__home-image{scale:var(--home-cover-scale,1);transform-origin:var(--home-cover-origin,center)}.replica-circle-gallery__static-item{overflow:hidden;aspect-ratio:3/2}.replica-circle-gallery__accent{font-family:"Portfolio Han Medium",var(--font-sans)}.replica-skills__text{font-size:clamp(1.8rem,3vw,2.5rem);line-height:1.35;letter-spacing:-.015em}.replica-skills__header{gap:clamp(6px,2vw,12px)}.replica-skills__title{display:flex;align-items:baseline;gap:clamp(.5rem,1vw,1rem);min-width:0;font-size:clamp(2rem,2.8vw,2.6rem);line-height:1.3}.replica-skills__title-cn{flex-shrink:0}.replica-skills__title-en{min-width:0;color:#aaa;font-family:"Replica Breton",var(--font-sans);font-size:clamp(20px,1.8vw,28px);font-weight:400;line-height:1.3;letter-spacing:.01em}.replica-skills__list li{line-height:1.6}.replica-awards__row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;gap:0;padding:2rem 1rem;background:#000;font-family:Portfolio Han Medium,Inter,Helvetica Neue,Arial,sans-serif;font-size:clamp(16px,calc(2.5vw - 12px),24px);font-weight:400;line-height:1.2}.replica-awards__row>*{min-width:0;margin:0;font:inherit;color:inherit;letter-spacing:normal}.replica-awards__company-en{text-align:left}.replica-awards__company-cn,.replica-awards__prize{text-align:center}.replica-awards__date{display:block;white-space:nowrap;text-align:right}.replica-awards__company-en,.replica-awards__date{font-family:Portfolio Reference Inter,Inter,Arial,sans-serif}@media (min-width:769px){.replica-awards__prize{translate:clamp(12px,1.5vw,24px) 0}}.replica-contact__dispo p{line-height:1.65;text-align:left}.replica-work-card__image{background:#080808}.replica-work-card__image:after,.replica-work-card__image:before{display:none}.replica-work-card__image picture{position:absolute;inset:0}.replica-work-card__image img{width:100%;height:100%;object-fit:contain}.replica-work-card__info h2{font-size:40px;line-height:1.3}.replica-work-card__info p{font-size:17px;line-height:1.7}.replica-work-card__info .replica-work-card__category{font-size:12px}.replica-works__index{flex-wrap:wrap;gap:.75rem 1.5rem}.replica-works__index button{line-height:1.6}.replica-info--personal{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.5fr);gap:4rem 5rem;padding:24svh clamp(2rem,6vw,6rem) 4rem;overflow:visible}.replica-info--personal .replica-info__bottom,.replica-info--personal .replica-info__left,.replica-info--personal .replica-info__right{position:relative;inset:auto;width:auto}.replica-info--personal .replica-info__left{align-self:start}.replica-info--personal .replica-info__portrait{min-height:22rem;background:#080808}.replica-info--personal .replica-info__portrait:after,.replica-info--personal .replica-info__portrait:before{display:none}.replica-info__portrait img{width:100%;height:100%;object-fit:cover}.replica-info--personal .replica-info__portrait .replica-parallax__inner{position:absolute;inset:-20px 0;height:calc(100% + 40px)}.replica-info--personal .replica-info__right h2{font-size:64px;line-height:1.15}.replica-info--personal .replica-info__role{font-size:21px;line-height:1.65}.replica-info--personal .replica-info__body{line-height:1.8}.replica-info--personal .replica-info__skills{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}.replica-info--personal .replica-info__skills h3{font-size:14px;letter-spacing:0}.replica-info--personal .replica-info__skills p{font-size:15px;line-height:1.7}.replica-info__meta dd{font-size:14px;line-height:1.65}.replica-info__experience{margin-top:3.5rem}.replica-info__experience h3{font-size:24px;font-weight:500}.replica-info__experience h3 span{margin-left:.75rem;font-size:14px;color:#999}.replica-info__experience article{padding:1.5rem 0;border-top:1px solid #ffffff26}.replica-info__experience h4{margin:.5rem 0;font-size:18px;line-height:1.6}.replica-info__experience p{margin:.5rem 0;color:#aaa;font-size:15px;line-height:1.8}.replica-info__experience .replica-info__period{color:#24b6e2;font-size:13px}.replica-info--personal .replica-info__bottom{grid-column:1/-1;margin-top:1rem;font-size:13px}.replica-contact-page--personal .replica-contact-page__left{width:27%}.replica-contact-page--personal .replica-contact-page__left p{line-height:1.8}.replica-contact-page--personal .replica-contact-page__right{width:52%}.replica-contact-page--personal .replica-contact-page__right h2{font-size:80px;line-height:1.1}.replica-contact-page--personal .replica-contact-page__right p{line-height:1.8}.replica-contact-page--personal .replica-contact-page__left dd{font-size:14px}.replica-projects__item{border:0;background:none;font:inherit;text-align:left;cursor:pointer}.replica-projects__item:focus-visible{outline:1px solid #24b6e2;outline-offset:6px}.replica-projects [data-project-pointer-focus]:focus-visible{outline:none}.replica-projects [data-project-pointer-focus]:focus-visible:after{display:none}.replica-projects__preview:not([inert]){pointer-events:auto}.replica-projects__preview-description{margin:1rem 0;color:#b0b0b0;font-size:15px;line-height:1.7}.project-details-button{display:inline-flex;align-items:center;justify-content:space-between;min-height:44px;gap:2rem;padding:.5rem 0;border-bottom:1px solid #24b6e2;color:#24b6e2;font-size:14px;cursor:pointer}.project-details-button:hover{color:#fff}.project-details-button:focus-visible{outline:1px solid #24b6e2;outline-offset:5px}.replica-projects-mobile__card .project-details-button{margin-top:1rem}.project-dialog-open{overflow:hidden}.project-dialog{position:fixed;inset:0;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;overflow:hidden;overscroll-behavior:contain;border:0;background:#000;color:#f0f0f0}.project-dialog[open]{display:grid;grid-template-rows:auto minmax(0,1fr)}.project-dialog::backdrop{background:#000c;opacity:var(--project-backdrop-opacity,1)}.project-dialog:not([data-motion]){opacity:0}.project-dialog[data-motion=closing]{pointer-events:none}.project-dialog__curtain{position:fixed;inset:0;z-index:5;background:#000;pointer-events:none;transform:scaleY(0);transform-origin:top}.project-dialog__header{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;min-height:88px;padding:1rem 4vw;background:transparent;pointer-events:none;font-size:13px;letter-spacing:.04em}.project-dialog__close{pointer-events:auto;display:flex;align-items:center;gap:.5rem;min-height:44px;cursor:pointer}.project-dialog__close span{font-size:20px}.project-dialog button:focus-visible{outline:1px solid #24b6e2;outline-offset:5px}.project-dialog__content{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:4vw;min-height:0;padding:6svh 2.5vw 4svh 4vw}.project-dialog__intro{align-self:start;padding-top:5svh}.project-dialog h2{margin:0 0 2rem;font-size:clamp(32px,3.5vw,60px);font-weight:500;line-height:1.3;letter-spacing:0}.project-dialog__category{margin:0;color:#888;font-size:14px}.project-dialog__image-count{margin-top:3rem;color:#666;font-size:12px}.project-dialog__gallery{position:absolute;inset:0 0 0 45%;display:grid;grid-template-columns:14% minmax(0,1fr);min-width:0;min-height:0}.project-dialog__thumbnails{position:relative;min-height:0;min-width:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:none}.project-dialog__thumbnails::-webkit-scrollbar{display:none}.project-dialog__thumbnail-inner{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:12px;width:100%}.project-dialog__thumbnails button{position:relative;flex:0 0 auto;display:block;width:72%;aspect-ratio:4/3;padding:0;border:0;opacity:.35;cursor:pointer;transform-origin:left center}.project-dialog__thumbnails button[aria-current=true]{z-index:1}.project-dialog__thumbnails img{display:block;width:100%;height:100%;object-fit:contain}.project-dialog__stage{position:relative;display:grid;place-items:center;min-width:0;min-height:0;padding:2rem;touch-action:none}.project-dialog__artwork{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-width:0;min-height:0;padding:0;border:0;background:transparent;perspective:800px;cursor:zoom-in}.project-dialog__artwork img{display:block;width:auto;height:auto;max-width:100%;max-height:min(85dvh,100%);object-fit:contain;transform-style:preserve-3d}.project-dialog__zoom-hint{position:absolute;bottom:1.5rem;right:2rem;color:#888;font-size:11px;pointer-events:none}.project-dialog__reader{position:absolute;inset:0;z-index:8;overflow:auto;overscroll-behavior:contain;background:#000}.project-dialog__reader-header{position:sticky;inset:0 auto auto 0;z-index:1;display:flex;align-items:center;justify-content:space-between;width:100%;min-height:64px;padding:.5rem 4vw;background:#000;font-size:12px}.project-dialog__reader-header button{min-height:44px;cursor:pointer}.project-dialog__reader>img{display:block;max-width:none;height:auto;margin:0 auto}.replica-education{display:grid;grid-template-columns:2.1fr 2.4fr 1.25fr;gap:1.5rem;align-items:start;margin-top:3rem;color:#aaa;font-size:14px;line-height:1.8}.replica-education p{margin:0;color:#f0f0f0}.replica-education>span:last-child{text-align:right;white-space:nowrap}@media (min-width:901px) and (prefers-reduced-motion:no-preference){.replica-projects-natural .replica-projects__list{height:auto}.replica-projects-natural .replica-projects__list .replica-projects__item{flex:0 0 auto;padding-block:2.4vw;letter-spacing:.005em}.replica-projects-natural .replica-projects__preview{position:fixed;inset:0 0 auto 50%;display:flex;align-items:center;justify-content:center;width:50%;height:100svh;margin:0;perspective:800px;pointer-events:none}.replica-projects-natural .replica-projects__preview[aria-hidden=true]{opacity:0;visibility:hidden}.replica-projects__preview-card{width:55%;transform-style:preserve-3d}.replica-projects__preview:not([inert]) .replica-projects__preview-card{pointer-events:auto}.replica-projects__preview .replica-projects__preview-meta{font-family:var(--font-sans);font-size:12px;font-weight:600;letter-spacing:.02em;line-height:1.5;min-height:1.5em}.replica-projects__cover-button{display:block;width:100%;padding:0;border:0;cursor:pointer}.replica-projects-natural .replica-projects-interactive__image-stage{height:auto;aspect-ratio:4/3}.replica-projects-natural .replica-projects__image img{object-fit:cover}.replica-projects__cover-button:focus-visible{outline:2px solid #24b6e2;outline-offset:6px}.replica-projects__cover-button:focus-visible:after{content:"查看项目 ↗";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:12px 20px;border-radius:50px;background:#fff;color:#000;font-family:"Portfolio Han Medium",var(--font-sans);font-size:12px}[data-preview-pointer=ready] .replica-projects__cover-button{cursor:none}}.replica-projects__cursor{position:fixed;top:0;left:0;z-index:95;padding:11px 20px;border-radius:50px;background:#fff;color:#000;font-family:"Portfolio Han Medium",var(--font-sans);font-size:12px;line-height:1.2;white-space:nowrap;pointer-events:none;opacity:0}@media (max-width:900px){.project-dialog__content{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);gap:0;padding:1.5rem}.project-dialog__intro{padding-top:0}.project-dialog h2{margin-bottom:.75rem}.project-dialog__image-count{margin:1rem 0}.project-dialog__gallery{position:relative;inset:auto;grid-template-columns:minmax(0,1fr);grid-template-rows:90px minmax(0,1fr);gap:.75rem}.project-dialog__thumbnails{background:#000}.project-dialog__thumbnail-inner{flex-direction:row;align-items:center;width:max-content;min-height:100%}.project-dialog__thumbnails button{width:72px;height:54px;transform-origin:center}.project-dialog__stage{padding:1rem}.project-dialog__zoom-hint{bottom:0;right:1rem}.replica-awards__preview{display:none}.project-dialog h2{font-size:36px}.project-dialog__header{min-height:76px;padding-inline:1.5rem}}@media (max-width:600px){.project-dialog__header{min-height:64px;padding:.5rem 1rem;font-size:10px}.project-dialog__close{font-size:12px}.project-dialog__content{padding:1rem}.project-dialog h2{font-size:30px}.replica-education{grid-template-columns:1fr;gap:.75rem}.replica-education>span:last-child{text-align:left}}@media (max-width:1100px){.replica-awards__row{grid-template-columns:1.1fr 1.45fr 1.1fr .6fr;font-size:16px}.replica-info--personal{gap:3rem}.replica-info--personal .replica-info__right h2{font-size:48px}}@media (min-width:769px) and (max-width:1100px){.replica-skills__left{width:50%;padding-inline:3rem 2rem}.replica-skills__right{width:50%;padding-inline:2rem 3rem}}@media (min-width:769px){.replica-skills__right{padding-top:calc(15svh + clamp(1.2rem, 1.8vw, 1.44rem) + .7rem)}}@media (min-width:769px) and (max-height:760px){.replica-skills__left{padding-top:10svh}.replica-skills__subtitle{margin-bottom:2.5svh}.replica-skills__separator{margin-block:2.5svh}.replica-skills__contact{margin-bottom:2.5svh}.replica-skills__right{padding-top:calc(12.5svh + clamp(1.2rem, 1.8vw, 1.44rem) - 1.8rem)}}@media (max-width:768px){.replica-skills__title-en{font-size:clamp(20px,4.7vw,24px)}.replica-awards__row{grid-template-columns:minmax(0,1fr) max-content;grid-template-areas:"english date" "company focus";align-items:baseline;gap:.65rem clamp(8px,2vw,16px);padding:1.5rem .75rem;font-size:clamp(11px,3.3vw,16px);line-height:1.4}.replica-awards__company-en{grid-area:english;grid-column:1/-1;padding-right:calc(7ch + .75rem);white-space:nowrap}.replica-awards__company-en,.replica-awards__date{font-size:clamp(16px,4.5vw,24px);line-height:1.2}.replica-awards__company-cn{grid-area:company;text-align:left;white-space:nowrap}.replica-awards__prize{grid-area:focus;justify-self:end;text-align:right;white-space:nowrap}.replica-awards__date{grid-area:date;justify-self:end}}@media (max-width:900px) and (max-height:600px){.project-dialog__header{min-height:56px;padding:.25rem 1rem}.project-dialog__content{padding:.75rem}.project-dialog__intro{display:flex;align-items:center;justify-content:space-between;gap:1rem}.project-dialog h2{margin:0;font-size:24px}.project-dialog__category{display:none}.project-dialog__image-count{margin:0}.project-dialog__gallery{grid-template-rows:58px minmax(0,1fr);gap:.5rem}.project-dialog__thumbnails button{width:48px;height:36px}.project-dialog__thumbnail-inner{gap:10px;padding-block:6px!important}.project-dialog__stage{padding:.5rem}}@media (max-width:980px){.replica-info--personal{display:block;padding:8rem 1.5rem 3rem}.replica-info--personal .replica-info__page-title{position:relative;inset:auto}.replica-info--personal .replica-info__left{margin-top:3rem}.replica-info--personal .replica-info__portrait{min-height:24rem}.replica-info--personal .replica-info__right{margin-top:3rem}.replica-info--personal .replica-info__bottom{margin-top:4rem}.replica-work-card__image{min-height:0;aspect-ratio:4/3}.replica-contact-page--personal .replica-contact-page__left,.replica-contact-page--personal .replica-contact-page__right{width:auto}.replica-contact-page--personal .replica-contact-page__right h2{font-size:56px}}@media (max-width:600px){.replica-projects-mobile__card .replica-projects__image,.replica-work-card__image{min-height:0;aspect-ratio:9/11}.replica-projects__home-image{scale:var(--home-mobile-scale,1);transform-origin:var(--home-mobile-origin,center)}.replica-work-card__info{padding:1.5rem}.replica-work-card__info h2{font-size:30px}.replica-work-card__info p{font-size:15px}.replica-info--personal .replica-info__right h2{font-size:38px}.replica-info--personal .replica-info__role{font-size:18px}.replica-info--personal .replica-info__bottom{overflow-wrap:anywhere}.replica-contact-page--personal .replica-contact-page__right h2{font-size:48px}}@media (min-width:769px) and (max-height:500px){.replica-skills__left{height:auto;min-height:100svh;padding-top:5svh;padding-bottom:1rem}.replica-skills__arrow{font-size:5rem}.replica-skills__right{padding-top:calc(5svh + 1.44rem + 2.5svh)}}.replica-projects-mobile__list{display:none}@media (max-width:900px){.replica-projects-mobile__card{display:none}.replica-projects-mobile{display:block}.replica-projects-mobile__list{display:flex;flex-direction:column;position:relative;z-index:45}.replica-projects-interactive{padding:18svh 24px 20svh;min-height:100svh}.replica-projects__fluid-line{top:0;height:100%}.replica-projects-mobile__item{display:block;width:calc(100% - 16px);border:0;border-top:1px solid #ffffff20;padding:20px 0;background:transparent;color:#666;text-align:left;font-family:"Portfolio Han Medium",var(--font-sans);font-size:clamp(26px,7.2vw,34px);line-height:1.3;cursor:pointer;transition:color .25s}.replica-projects-mobile__item:last-child{border-bottom:1px solid #ffffff20}.replica-projects-mobile__item:is(.is-active,:focus-visible){color:#f0f0f0}.replica-projects-mobile__item:focus-visible{outline:1px solid #24b6e2;outline-offset:4px}.project-dialog__artwork{align-items:flex-start}.project-dialog__stage{padding-top:.25rem}.project-dialog__gallery{grid-template-rows:76px minmax(0,1fr)}}@media (max-width:900px) and (max-height:600px){.project-dialog__gallery{grid-template-rows:58px minmax(0,1fr)}}@media (max-width:900px) and (prefers-reduced-motion:reduce){.replica-projects-mobile__item{color:#f0f0f0}}.project-dialog__portrait-gallery{display:none}@media (max-width:900px) and (orientation:portrait){.project-dialog__gallery,.project-dialog__image-count{display:none}.project-dialog__content{display:flex;flex-direction:column;padding:0 16px 16px;gap:20px;overflow:hidden}.project-dialog__intro{flex:0 0 auto}.project-dialog__category{margin-bottom:0}.project-dialog__portrait-gallery{display:block;min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;scrollbar-width:thin}.project-dialog__portrait-gallery figure{margin:0 0 24px}.project-dialog__portrait-gallery button{display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in}.project-dialog__portrait-gallery img{display:block;width:100%;height:auto;max-height:none}.project-dialog__portrait-gallery figcaption{margin-top:8px;color:#999;font-size:11px}}@media (max-width:768px){.replica-skills{padding-bottom:calc(120px + 8svh)}.replica-skills__inner,.replica-skills__left{position:static}.replica-skills__right{padding-bottom:0}.replica-skills__arrow{position:absolute;bottom:4svh;left:24px}.replica-contact .replica-contact__dispo p{text-align:center}.replica-awards{margin-top:0}}