*{box-sizing:border-box}:root{--theme-fg: #000000}@font-face{font-family:Sivy Didot;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/didot-regular.ttf) format("truetype"),local("Didot"),local("Didot Regular")}@font-face{font-family:Sivy Didot;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/didot-bold.ttf) format("truetype"),local("Didot Bold"),local("Didot-Bold")}@font-face{font-family:"Sivy Bodoni 72";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/bodoni-72-book.ttf) format("truetype"),local("Bodoni 72 Book"),local("BodoniSvtyTwoITCTT-Book"),local("Bodoni 72")}@font-face{font-family:"Sivy Bodoni 72";font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/bodoni-72-bold.ttf) format("truetype"),local("Bodoni 72 Bold"),local("BodoniSvtyTwoITCTT-Bold"),local("Bodoni 72")}@font-face{font-family:FZFengYaSongS;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/fz-fengya-song-s-medium.ttf) format("truetype"),local("FZFengYaSongS"),local("FZ FengYaSongS"),local("方正风雅宋S")}@font-face{font-family:FZFengYaSongS;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/fz-fengya-song-s-medium.ttf) format("truetype"),local("FZFengYaSongS Medium"),local("FZFengYaSongS-Medium"),local("FZFengYaSongS"),local("FZ FengYaSongS"),local("方正风雅宋S")}@font-face{font-family:FZFengYaSongS;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/fz-fengya-song-s-bold.ttf) format("truetype"),local("FZFengYaSongS Bold"),local("FZFengYaSongS-Bold"),local("FZFengYaSongS"),local("FZ FengYaSongS"),local("方正风雅宋S")}@font-face{font-family:"Sivy Noto Serif JP";font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/noto-serif-jp-bold.otf) format("opentype"),local("Noto Serif JP Bold"),local("NotoSerifJP-Bold"),local("Noto Serif JP")}@font-face{font-family:Sivy HS Bom Baram;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/hs-bombaram-2-1.ttf) format("truetype"),local("HS봄바람체 2.1 Regular"),local("HS봄바람체 2.1")}@font-face{font-family:Sivy Mirza;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/mirza-regular.ttf) format("truetype"),local("Mirza Regular"),local("Mirza")}html,body,#root{width:100%;height:100%;margin:0}body{min-width:320px;overflow:hidden;background:#fff;color:var(--theme-fg);font-family:Sivy Didot,Didot,serif}a{color:inherit;text-decoration:none}img,svg{-webkit-touch-callout:none;-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.site-frame{--theme-fg: #000000;--theme-vector-filter: none;position:relative;width:100vw;height:100vh;min-height:480px;overflow:hidden;background:#fff;color:var(--theme-fg)}.site-frame.is-light-foreground{--theme-fg: #FFFFFF;--theme-vector-filter: brightness(0) invert(1)}.site-background-stack,.site-background-image{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;user-select:none}.site-background-image{object-fit:cover;opacity:1;transition:opacity .5s cubic-bezier(.4,0,.2,1)}.site-background-dark,.site-frame.is-light-foreground .site-background-light{opacity:0}.site-frame.is-light-foreground .site-background-dark{opacity:1}.site-background-home{z-index:1;opacity:1;transition:opacity .5s cubic-bezier(.4,0,.2,1)}.site-background-neutral{z-index:0;opacity:0}.site-frame.is-home-background-hidden .site-background-home{opacity:0}.site-frame.is-neutral-background-visible .site-background-neutral{opacity:1}.page-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;transition:transform .5s cubic-bezier(.4,0,.2,1),opacity .5s cubic-bezier(.4,0,.2,1);will-change:transform,opacity}.home-layer,.projects-layer,.about-layer,.contact-layer{opacity:0;pointer-events:none;transform:translate(512px)}.page-content{position:absolute;top:0;right:0;bottom:0;left:0}.top-left-controls{position:absolute;z-index:3;top:24px;left:24px;width:144px;height:36px;display:flex;align-items:center;gap:24px;transition:transform .5s cubic-bezier(.4,0,.2,1)}.chrome-controls-group{width:84px;height:36px;display:flex;align-items:center;gap:12px;flex:0 0 84px}.brand-mark,.chrome-icon-button{width:36px;height:36px;flex:0 0 36px}.brand-mark{display:block}.brand-mark-svg{display:block;width:100%;height:100%;filter:var(--theme-vector-filter)}.chrome-icon-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:0;padding:0;background:transparent;color:inherit;cursor:pointer}.chrome-icon{display:block;width:36px;height:36px;filter:var(--theme-vector-filter)}.main-nav{position:absolute;z-index:3;top:24px;right:24px;display:flex;align-items:center;gap:24px;height:36px;transition:transform .5s cubic-bezier(.4,0,.2,1)}.site-frame:has(.projects-content.is-detail-active) .top-left-controls,.site-frame:has(.projects-content.is-detail-active) .main-nav{transform:translateY(-84px)}.nav-item{position:relative;width:120px;height:36px;overflow:hidden;flex:0 0 120px;text-align:center}.nav-item span{position:absolute;top:4px;left:50%;transform:translate(-50%);white-space:nowrap;font-family:Sivy Didot,Didot,serif;font-size:20px;font-style:normal;font-weight:400;line-height:26px;height:26px;letter-spacing:0;transition:font-weight .5s ease}.main-nav.is-en .nav-item span{font-family:Sivy Didot,Didot,serif;font-weight:400}.main-nav.is-zh .nav-item span{font-family:FZFengYaSongS,Songti SC,STSong,serif;font-size:18px;font-weight:500;line-height:26px;height:26px}.main-nav .nav-item.is-active span{font-weight:700}.active-line{position:absolute;left:0;top:34px;width:56px;height:2px;display:block;filter:var(--theme-vector-filter);transition:transform .5s cubic-bezier(.4,0,.2,1),width .5s cubic-bezier(.4,0,.2,1);will-change:transform,width}.intro-block{position:absolute;left:96px;bottom:120px;width:max-content;display:flex;flex-direction:column;align-items:flex-start;gap:24px}.intro-title{width:564px;height:128px;margin:0;color:var(--theme-fg);font-family:Sivy Didot,Didot,serif;font-size:48px;font-style:normal;font-weight:700;line-height:61px;letter-spacing:0;white-space:nowrap;display:flex;flex-direction:column;gap:6px}.intro-title[dir=rtl]{direction:ltr;text-align:left}.intro-title-en{width:564px}.intro-title-zh{width:460px;font-family:FZFengYaSongS,Songti SC,STSong,serif;font-size:46px;font-weight:700}.intro-title-es{width:605px}.intro-title-ja{width:685px;font-family:"Sivy Noto Serif JP","Noto Serif JP",Yu Mincho,Hiragino Mincho ProN,serif;font-size:46px;font-weight:700}.intro-title-fr{width:684px}.intro-title-ko{width:790px;font-family:Sivy HS Bom Baram,"HS봄바람체 2.1","Noto Serif KR",serif;font-size:42px;font-weight:400}.intro-title-de{width:765px}.intro-title-pt{width:636px}.intro-title-it{width:640px}.intro-title-ar{width:606px;font-family:Sivy Mirza,Mirza,serif;font-size:64px;font-weight:400}.intro-title-ar .intro-title-line{position:relative;direction:rtl;unicode-bidi:isolate;text-align:right}.intro-title-ar .intro-title-visible{display:block}.intro-title-arabic-text{display:inline-block;position:absolute;top:0;right:0;height:61px;line-height:61px;direction:rtl;transform-origin:right center;white-space:nowrap}.intro-title-ar .intro-title-line:nth-child(2) .intro-title-arabic-text{transform:scaleX(1.102)}.intro-title-visible{position:absolute;top:0;right:0;bottom:0;left:0;direction:rtl;text-align:right;height:61px;line-height:61px;unicode-bidi:isolate}.intro-title-visible-ltr{display:block;direction:ltr;text-align:left;unicode-bidi:normal}.intro-title-line{display:block;position:relative;width:100%;height:61px;line-height:61px}.intro-title-text-segment,.intro-title-token-segment{display:inline;line-height:61px;white-space:pre}.intro-title-char{visibility:visible;white-space:pre}.intro-title-char.is-hidden{visibility:hidden}.latin-text{display:inline;font-family:Sivy Didot,Didot,serif;font-size:48px;font-style:normal;font-weight:700;line-height:61px;letter-spacing:0;vertical-align:baseline}bdi.latin-text{display:inline;direction:ltr;unicode-bidi:isolate}.project-button{position:relative;height:48px;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:0 12px;background:transparent;color:transparent;font-family:Sivy Didot,Didot,serif;font-size:20px;font-style:normal;font-weight:700;line-height:26px;letter-spacing:0;white-space:nowrap}.project-button.is-zh{font-family:FZFengYaSongS,Songti SC,STSong,serif;font-size:18px;line-height:26px}.knockout-button{position:relative}.knockout-measure{color:transparent;-webkit-user-select:none;user-select:none}.knockout-fill{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;color:var(--theme-fg);pointer-events:none}.projects-content{color:var(--theme-fg);font-family:"Sivy Bodoni 72","Bodoni 72",Didot,serif}.projects-layout{position:absolute;top:84px;right:0;bottom:24px;left:0}.project-categories{position:absolute;left:50%;top:calc(50% - 233px);height:30px;display:flex;align-items:center;justify-content:center;gap:24px;transform:translate(-50%,-50%);transition:transform .5s cubic-bezier(.4,0,.2,1),opacity .5s cubic-bezier(.4,0,.2,1);white-space:nowrap}.project-category-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;position:relative;height:30px;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:0 12px;background:transparent;color:var(--theme-fg);cursor:pointer;font-family:"Sivy Bodoni 72","Bodoni 72",Didot,serif;font-size:16px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:0;text-align:center;white-space:nowrap}.project-category-button.is-zh{font-family:FZFengYaSongS,Songti SC,STSong,serif;font-size:14px;font-weight:500;line-height:20px}.project-category-button.is-active{background:transparent;color:transparent}.project-card-window{position:absolute;left:0;top:50%;width:100%;height:340px;transform:translateY(-50%);transition:opacity .5s cubic-bezier(.4,0,.2,1);overflow:hidden}.project-card-scroller{width:100%;height:360px;overflow-x:auto;overflow-y:hidden;padding:0 24px;cursor:grab;scrollbar-width:none;-webkit-user-select:none;user-select:none}.project-card-scroller.is-dragging,.project-card-scroller.is-dragging .project-card,.project-card-scroller.is-dragging .project-card.is-openable{cursor:grabbing}.project-card-window.is-category-animating{pointer-events:none}.project-card-window.is-category-animating .project-card-scroller{position:absolute;top:0;right:0;bottom:0;left:0}.project-category-layer{transform:translate(0);will-change:transform,opacity}.project-category-layer-out{animation:project-category-out .5s cubic-bezier(.4,0,.2,1) forwards}.project-category-layer-in{animation:project-category-in .5s cubic-bezier(.4,0,.2,1) forwards}@keyframes project-category-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(calc(var(--category-direction) * -512px))}}@keyframes project-category-in{0%{opacity:0;transform:translate(calc(var(--category-direction) * 512px))}to{opacity:1;transform:translate(0)}}.project-card-scroller::-webkit-scrollbar{display:none}.project-card-track{display:flex;align-items:flex-start;gap:24px;min-width:max-content;height:340px}.project-card{position:relative;width:420px;height:340px;display:flex;flex:0 0 420px;flex-direction:column;align-items:flex-start;margin:0}.project-card,.project-card *{-webkit-user-drag:none}.project-card.is-openable{cursor:pointer}.project-card-image{display:block;width:420px;height:280px;flex:0 0 280px;object-fit:cover;object-position:top center}.ezai-card-thumbnail{position:relative;overflow:hidden}.ezai-card-thumbnail-background{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;object-fit:cover;object-position:center center;pointer-events:none;-webkit-user-select:none;user-select:none}.ezai-card-thumbnail-brand{position:absolute;left:50%;top:50%;display:flex;align-items:center;gap:9.844px;transform:translate(-50%,-50%)}.ezai-card-thumbnail-mark{width:26.25px;height:26.25px;display:block;flex:0 0 auto;pointer-events:none;-webkit-user-select:none;user-select:none;filter:var(--theme-vector-filter)}.ezai-card-thumbnail-title{color:#fff;font-family:"Sivy Bodoni 72","Bodoni 72",Didot,serif;font-size:26.25px;font-weight:700;line-height:normal;white-space:nowrap;-webkit-user-select:text;user-select:text}.project-card-info{position:relative;width:420px;height:60px;flex:0 0 60px;display:flex;align-items:flex-start;justify-content:space-between;overflow:hidden;padding-top:12px}.project-card-identity{display:flex;align-items:center;gap:12px;min-width:0;height:36px}.project-card-logo{display:block;width:36px;height:36px;flex:0 0 36px;object-fit:contain;filter:var(--theme-vector-filter)}.project-card-title-stack{height:36px;display:flex;flex:0 1 auto;flex-direction:column;align-items:flex-start;justify-content:space-between;min-width:0;color:var(--theme-fg);white-space:nowrap}.project-card-title{margin:0;color:var(--theme-fg);font-family:"Sivy Bodoni 72","Bodoni 72",Didot,serif;font-size:16px;font-style:normal;font-weight:700;line-height:20px;letter-spacing:0;white-space:nowrap}.project-name-zh{font-family:FZFengYaSongS,Songti SC,STSong,serif;font-weight:700}.project-card-year{margin:0;color:var(--theme-fg);font-family:"Sivy Bodoni 72","Bodoni 72",Didot,serif;font-size:12px;font-style:normal;font-weight:400;line-height:16px;letter-spacing:0;white-space:nowrap}.project-card-type{margin:0;color:gray;flex:0 0 auto;font-family:"Sivy Bodoni 72","Bodoni 72",Didot,serif;font-size:16px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:0;text-align:right;white-space:nowrap}.project-card-type.is-zh{font-family:FZFengYaSongS,Songti SC,STSong,serif;font-size:14px;font-weight:500;line-height:20px}.project-scroll-indicator{position:absolute;left:50%;top:calc(50% + 233px);width:420px;height:30px;display:flex;align-items:center;justify-content:space-between;transform:translate(-50%,-50%);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;transition:transform .5s cubic-bezier(.4,0,.2,1),opacity .5s cubic-bezier(.4,0,.2,1)}.project-scroll-indicator:active{cursor:grabbing}.project-scroll-tick{width:1px;display:block;background:var(--theme-fg);flex:0 0 1px}.projects-content.is-detail-active .project-categories{opacity:0;transform:translate(-50%,calc(-50% - 200px))}.projects-content.is-detail-mounted .project-card-window{visibility:hidden}.projects-content.is-detail-active .project-scroll-indicator{opacity:0;transform:translate(-50%,calc(-50% + 200px))}.project-detail-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:4;overflow:hidden;pointer-events:auto}.project-detail-page{position:absolute;top:0;right:0;bottom:0;left:0;overflow-x:hidden;overflow-y:hidden;scrollbar-width:none}.project-detail-page::-webkit-scrollbar{display:none}.project-detail-layer.is-open .project-detail-page{cursor:grab;overflow-y:auto}.project-detail-page.is-dragging,.project-detail-page.is-dragging *{cursor:grabbing;-webkit-user-select:none;user-select:none}.project-detail-layer.is-closing-staged .project-detail-page,.project-detail-layer.is-closing .project-detail-page{overflow:hidden}.project-detail-column{width:1024px;display:flex;flex-direction:column;align-items:center;margin:84px auto 24px;transform-origin:top left}.project-detail-page-image{width:1024px;height:var(--detail-image-height);display:block;flex:0 0 auto;object-fit:cover;object-position:center center}.project-detail-first-image{height:var(--detail-first-height);opacity:0}.project-detail-layer.is-open .project-detail-first-image{opacity:1}.project-detail-layer.is-closing-staged .project-detail-first-image,.project-detail-layer.is-closing .project-detail-first-image{opacity:0}.ezai-hero-page{position:relative;overflow:hidden;background:var(--theme-fg)}.ezai-hero-background{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;object-fit:cover;object-position:center center;pointer-events:none;-webkit-user-select:none;user-select:none}.ezai-hero-brand{position:absolute;left:calc(50% - .5px);top:calc(50% - .5px);display:flex;align-items:center;gap:24px;transform:translate(-50%,-50%)}.ezai-hero-mark{width:64px;height:64px;display:block;flex:0 0 auto;pointer-events:none;-webkit-user-select:none;user-select:none;filter:var(--theme-vector-filter)}.ezai-hero-title{margin:0;color:#fff;font-family:"Sivy Bodoni 72","Bodoni 72",Didot,serif;font-size:64px;font-weight:700;line-height:normal;white-space:nowrap;word-break:break-word;-webkit-user-select:text;user-select:text}.project-detail-layer.is-closing-staged .project-detail-column{transform:translate(0) scale(1);transition:none}.project-detail-following-images{width:1024px;display:flex;flex-direction:column;align-items:center;transform:translateY(100vh);transition:transform .5s cubic-bezier(.4,0,.2,1);will-change:transform,opacity;backface-visibility:hidden}.project-detail-layer.is-active .project-detail-following-images{transform:translateY(0)}.project-detail-layer.is-closing-staged .project-detail-following-images{transform:translateY(0);transition:none}.project-detail-layer.is-closing .project-detail-following-images{animation:project-following-separate var(--close-duration) cubic-bezier(.4,0,.2,1) forwards;transform-origin:top left}.project-detail-hero{position:fixed;z-index:6;left:var(--start-left);top:var(--start-top);width:var(--start-width);height:var(--start-height);display:block;object-fit:cover;object-position:top center;pointer-events:none;will-change:left,top,width,height;backface-visibility:hidden;transition:left .5s cubic-bezier(.4,0,.2,1),top .5s cubic-bezier(.4,0,.2,1),width .5s cubic-bezier(.4,0,.2,1),height .5s cubic-bezier(.4,0,.2,1)}.project-detail-layer.is-active .project-detail-hero{left:calc(50% - 512px);top:84px;width:1024px;height:var(--detail-first-height)}.project-detail-layer.is-open .project-detail-hero{opacity:0}.project-detail-layer.is-closing-staged .project-detail-hero{left:var(--close-left);top:var(--close-top);width:var(--close-width);height:var(--close-height);opacity:1;transition:none}.project-detail-layer.is-closing .project-detail-hero{left:var(--end-left, var(--start-left));top:var(--end-top, var(--start-top));width:var(--end-width, var(--start-width));height:var(--end-height, var(--start-height));opacity:1;transition:left var(--close-duration) cubic-bezier(.4,0,.2,1),top var(--close-duration) cubic-bezier(.4,0,.2,1),width var(--close-duration) cubic-bezier(.4,0,.2,1),height var(--close-duration) cubic-bezier(.4,0,.2,1)}.ezai-detail-hero{overflow:hidden;background:var(--theme-fg)}.ezai-detail-hero-background{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;object-fit:cover;object-position:center center;pointer-events:none;-webkit-user-select:none;user-select:none}.ezai-detail-hero-brand{position:absolute;left:50%;top:50%;display:flex;align-items:center;gap:calc(var(--start-width) * .0234375);transform:translate(-50%,-50%);transition:gap .5s cubic-bezier(.4,0,.2,1)}.ezai-detail-hero-mark{width:calc(var(--start-width) * .0625);height:calc(var(--start-width) * .0625);display:block;flex:0 0 auto;pointer-events:none;-webkit-user-select:none;user-select:none;filter:var(--theme-vector-filter);transition:width .5s cubic-bezier(.4,0,.2,1),height .5s cubic-bezier(.4,0,.2,1)}.ezai-detail-hero-title{color:#fff;font-family:"Sivy Bodoni 72","Bodoni 72",Didot,serif;font-size:calc(var(--start-width) * .0625);font-weight:700;line-height:normal;white-space:nowrap;-webkit-user-select:text;user-select:text;transition:font-size .5s cubic-bezier(.4,0,.2,1)}.project-detail-layer.is-active .ezai-detail-hero-mark{width:64px;height:64px}.project-detail-layer.is-active .ezai-detail-hero-brand{gap:24px}.project-detail-layer.is-active .ezai-detail-hero-title{font-size:64px}.project-detail-layer.is-closing-staged .ezai-detail-hero-brand{gap:calc(var(--close-width) * .0234375);transition:none}.project-detail-layer.is-closing-staged .ezai-detail-hero-mark{width:calc(var(--close-width) * .0625);height:calc(var(--close-width) * .0625);transition:none}.project-detail-layer.is-closing-staged .ezai-detail-hero-title{font-size:calc(var(--close-width) * .0625);transition:none}.project-detail-layer.is-closing .ezai-detail-hero-mark{width:calc(var(--end-width, var(--start-width)) * .0625);height:calc(var(--end-width, var(--start-width)) * .0625);transition:width var(--close-duration) cubic-bezier(.4,0,.2,1),height var(--close-duration) cubic-bezier(.4,0,.2,1)}.project-detail-layer.is-closing .ezai-detail-hero-brand{gap:calc(var(--end-width, var(--start-width)) * .0234375);transition:gap var(--close-duration) cubic-bezier(.4,0,.2,1)}.project-detail-layer.is-closing .ezai-detail-hero-title{font-size:calc(var(--end-width, var(--start-width)) * .0625);transition:font-size var(--close-duration) cubic-bezier(.4,0,.2,1)}.project-detail-moving-identity{position:fixed;z-index:7;left:var(--identity-start-left);top:var(--identity-start-top);transition:left .5s cubic-bezier(.4,0,.2,1),top .5s cubic-bezier(.4,0,.2,1)}.project-detail-identity{height:36px;display:flex;align-items:center;gap:12px}.project-detail-layer.is-active .project-detail-moving-identity{left:24px;top:calc(100vh - 60px)}.project-detail-layer.is-closing .project-detail-moving-identity{left:var(--identity-end-left, var(--identity-start-left));top:var(--identity-end-top, var(--identity-start-top));transition:left var(--close-duration) cubic-bezier(.4,0,.2,1),top var(--close-duration) cubic-bezier(.4,0,.2,1)}.project-detail-moving-type{position:fixed;z-index:7;left:var(--type-start-left);top:var(--type-start-top);transition:left .5s cubic-bezier(.4,0,.2,1),top .5s cubic-bezier(.4,0,.2,1)}.project-detail-layer.is-active .project-detail-moving-type{left:calc(100vw - 24px - var(--type-width));top:calc(100vh - 60px)}.project-detail-layer.is-open .project-detail-moving-type{transition:none}.project-detail-layer.is-closing .project-detail-moving-type{left:var(--type-end-left, var(--type-start-left));top:var(--type-end-top, var(--type-start-top));transition:left var(--close-duration) cubic-bezier(.4,0,.2,1),top var(--close-duration) cubic-bezier(.4,0,.2,1)}.project-detail-side-card{position:fixed;z-index:5;left:var(--side-start-left);top:var(--side-start-top);opacity:1;transition:left .5s cubic-bezier(.4,0,.2,1),top .5s cubic-bezier(.4,0,.2,1)}.project-detail-layer.is-open .project-detail-side-card{cursor:pointer}.project-detail-side-card.is-switch-source{opacity:0;pointer-events:none;transition:none}.project-detail-layer.is-active .project-detail-side-card{left:calc(50% + var(--side-target-offset));top:calc(-86px + (100vh - 108px)/2)}.project-detail-layer.is-closing .project-detail-side-card{left:var(--side-close-left, var(--side-start-left));top:var(--side-close-top, var(--side-start-top));transition:left var(--close-duration) cubic-bezier(.4,0,.2,1),top var(--close-duration) cubic-bezier(.4,0,.2,1)}.contact-content{color:var(--theme-fg);font-family:"Sivy Bodoni 72","Bodoni 72",Didot,serif}.contact-layout{position:absolute;top:96px;right:0;bottom:24px;left:0}.contact-stack{position:absolute;left:calc(50% + .5px);top:50%;width:195px;display:flex;flex-direction:column;align-items:center;gap:24px;transform:translate(-50%,-50%)}.contact-info{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.contact-line-frame{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:12px;flex:0 0 auto}.contact-line{position:relative;flex:0 0 auto;margin:0;color:var(--theme-fg);font-family:"Sivy Bodoni 72","Bodoni 72",Didot,serif;font-size:20px;font-style:normal;font-weight:700;line-height:24px;letter-spacing:0;text-align:center;white-space:nowrap}.contact-socials{position:relative;display:flex;align-items:center;justify-content:center;gap:24px;flex:0 0 auto}.contact-social-link{width:48px;height:48px;display:block;flex:0 0 48px;color:inherit;text-decoration:none}.contact-social-icon{width:48px;height:48px;display:block;object-fit:contain;flex:0 0 48px}.about-content{font-family:"Sivy Bodoni 72","Bodoni 72",Didot,serif;color:var(--theme-fg)}.about-layout{position:absolute;top:96px;right:0;bottom:24px;left:0;display:flex;align-items:center;gap:120px;padding:0 120px}.about-column{position:relative;min-width:0;height:100%}.about-menu-column{display:flex;align-items:center;justify-content:flex-start;flex:0 0 240px;width:240px;min-width:240px}.about-menu{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;width:auto;font-size:20px;font-family:"Sivy Bodoni 72","Bodoni 72",Didot,serif;line-height:24px;letter-spacing:0}.about-menu-item{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;font:inherit;display:flex;align-items:center;justify-content:flex-start;width:auto;height:48px;min-height:48px;padding:12px;background:transparent;color:gray;cursor:pointer;font-weight:700;line-height:24px;text-align:left;white-space:nowrap}.about-menu-item.is-active{color:var(--theme-fg);font-weight:700}.about-content.is-zh{--personal-values-offset: 88px}.about-content.is-zh .about-menu,.about-content.is-zh .personal-info,.about-content.is-zh .about-rich-text,.about-content.is-zh .about-centered-list,.about-content.is-zh .about-long-text,.about-content.is-zh .about-raw-text,.about-content.is-zh .education-panel,.about-content.is-zh .education-text,.about-content.is-zh .skill-group h2{font-family:FZFengYaSongS,Songti SC,STSong,serif}.about-content.is-zh .about-menu{font-size:18px;line-height:24px}.about-content.is-zh .personal-info-values{font-weight:500}.about-content.is-zh .personal-info,.about-content.is-zh .about-rich-text,.about-content.is-zh .about-centered-list,.about-content.is-zh .about-long-text,.about-content.is-zh .about-raw-text,.about-content.is-zh .education-panel,.about-content.is-zh .education-text,.about-content.is-zh .skill-group h2{font-size:14px;line-height:20px}.about-content.is-zh .about-rich-text,.about-content.is-zh .about-centered-list,.about-content.is-zh .about-long-text,.about-content.is-zh .about-raw-text,.about-content.is-zh .education-panel,.about-content.is-zh .education-text{font-weight:500}.about-info-column{display:flex;align-items:center;justify-content:center;overflow:visible;flex:1 1 0;min-width:0}.about-info-viewport{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:visible}.about-info-panel{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;opacity:1;transform:translateY(0);will-change:transform,opacity}.about-info-panel.is-current.enter-from-below{animation:about-enter-from-below .5s cubic-bezier(.4,0,.2,1)}.about-info-panel.is-current.enter-from-above{animation:about-enter-from-above .5s cubic-bezier(.4,0,.2,1)}.about-info-panel.is-exiting{pointer-events:none}.about-info-panel.is-exiting.exit-up{animation:about-exit-up .5s cubic-bezier(.4,0,.2,1) forwards}.about-info-panel.is-exiting.exit-down{animation:about-exit-down .5s cubic-bezier(.4,0,.2,1) forwards}.personal-info{position:relative;display:grid;grid-template-columns:max-content max-content;grid-template-rows:max-content;place-items:start;margin:0;font-family:"Sivy Bodoni 72","Bodoni 72",Didot,serif;font-size:16px;line-height:20px;letter-spacing:0;white-space:nowrap}.personal-info-labels{position:relative;grid-column:1;grid-row:1;margin-left:0;margin-top:0;font-weight:700;text-align:right}.personal-info-values{position:relative;grid-column:1;grid-row:1;margin-left:var(--personal-values-offset, 93px);margin-top:0;font-weight:400}.about-latin-inline{font-family:"Sivy Bodoni 72","Bodoni 72",Didot,serif;font-size:16px;font-weight:400;line-height:20px}.text-style-title-inline,.text-style-title-bold-inline,.text-style-text-inline,.text-style-text-bold-inline,.text-style-text-s-inline,.text-style-body-inline,.text-style-body-bold-inline,.text-style-title-cn-inline,.text-style-title-bold-cn-inline,.text-style-text-cn-inline,.text-style-text-bold-cn-inline,.text-style-text-s-cn-inline,.text-style-body-cn-inline,.text-style-body-bold-cn-inline{display:inline;font-style:normal;letter-spacing:0;white-space:inherit;vertical-align:baseline}.text-style-title-inline{font-family:Sivy Didot,Didot,serif;font-size:20px;font-weight:400;line-height:26px}.text-style-title-bold-inline{font-family:Sivy Didot,Didot,serif;font-size:20px;font-weight:700;line-height:26px}.text-style-text-inline{font-family:"Sivy Bodoni 72","Bodoni 72",Didot,serif;font-size:16px;font-weight:400;line-height:20px}.text-style-text-bold-inline{font-family:"Sivy Bodoni 72","Bodoni 72",Didot,serif;font-size:16px;font-weight:700;line-height:20px}.text-style-text-s-inline{font-family:"Sivy Bodoni 72","Bodoni 72",Didot,serif;font-size:12px;font-weight:400;line-height:16px}.text-style-body-inline{font-family:"Sivy Bodoni 72","Bodoni 72",Didot,serif;font-size:20px;font-weight:400;line-height:24px}.text-style-body-bold-inline{font-family:"Sivy Bodoni 72","Bodoni 72",Didot,serif;font-size:20px;font-weight:700;line-height:24px}.text-style-title-cn-inline{font-family:FZFengYaSongS,Songti SC,STSong,serif;font-size:18px;font-weight:500;line-height:26px}.text-style-title-bold-cn-inline{font-family:FZFengYaSongS,Songti SC,STSong,serif;font-size:18px;font-weight:700;line-height:26px}.text-style-text-cn-inline{font-family:FZFengYaSongS,Songti SC,STSong,serif;font-size:14px;font-weight:500;line-height:20px}.text-style-text-bold-cn-inline{font-family:FZFengYaSongS,Songti SC,STSong,serif;font-size:14px;font-weight:700;line-height:20px}.text-style-text-s-cn-inline{font-family:FZFengYaSongS,Songti SC,STSong,serif;font-size:10px;font-weight:500;line-height:16px}.text-style-body-cn-inline{font-family:FZFengYaSongS,Songti SC,STSong,serif;font-size:18px;font-weight:500;line-height:24px}.text-style-body-bold-cn-inline{font-family:FZFengYaSongS,Songti SC,STSong,serif;font-size:18px;font-weight:700;line-height:24px}.personal-info dt,.personal-info dd{margin:0;height:20px;line-height:20px;white-space:pre}.personal-info dt:not(:last-child),.personal-info dd:not(:last-child){margin-bottom:0}.about-rich-text,.about-centered-list,.about-long-text,.about-raw-text{width:100%;color:var(--theme-fg);font-family:"Sivy Bodoni 72","Bodoni 72",Didot,serif;font-size:16px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:0}.about-rich-text p,.about-centered-list p,.about-long-text p,.about-raw-text p{margin:0;line-height:20px}.about-rich-text-centered,.about-centered-list{text-align:center;white-space:pre-wrap}.about-rich-text-left,.about-long-text,.about-raw-text-left{text-align:left;white-space:pre-wrap}.about-raw-text-center{text-align:center;white-space:pre-wrap}.is-bold{font-weight:700}.education-panel{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:48px;color:var(--theme-fg);font-family:"Sivy Bodoni 72","Bodoni 72",Didot,serif;font-size:16px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:0;text-align:center}.education-school{width:100%;display:flex;flex-direction:column;align-items:center;gap:12px;flex:0 0 auto;margin:0}.education-logo{display:block;object-fit:contain;flex:0 0 auto}.education-logo.is-theme-vector{filter:var(--theme-vector-filter)}.education-text{width:100%;min-width:100%;color:var(--theme-fg);font-family:"Sivy Bodoni 72","Bodoni 72",Didot,serif;font-size:16px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:0;text-align:center;white-space:pre-wrap}.education-text p{margin:0;line-height:20px}.about-long-text{font-size:16px}.experience-entry{margin:0}.experience-entry:not(:last-child):after{content:"​";display:block;line-height:20px}.about-long-text ul{margin:0;padding-inline-start:1.5em;line-height:20px;list-style:disc}.about-long-text li{margin:0;line-height:20px;padding-left:0}.skills-panel{display:flex;flex-direction:column;align-items:center;gap:24px;position:relative;flex:0 0 auto}.skill-group{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%;margin:0}.skill-group h2{height:24px;min-width:100%;display:flex;align-items:center;justify-content:center;margin:0;font-family:"Sivy Bodoni 72","Bodoni 72",Didot,serif;font-size:16px;font-style:normal;font-weight:700;line-height:20px;letter-spacing:0;text-align:center}.skill-items{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:center;gap:24px}.skill-item{width:48px;height:70px;display:flex;flex-direction:column;align-items:center;gap:6px;flex:0 0 48px}.skill-item img{width:48px;height:48px;display:block;object-fit:contain;flex:0 0 48px;filter:var(--theme-vector-filter)}.skill-item p{margin:0;color:var(--theme-fg);font-family:"Sivy Bodoni 72","Bodoni 72",Didot,serif;font-size:12px;font-style:normal;font-weight:400;line-height:16px;letter-spacing:0;text-align:center;white-space:nowrap}@keyframes about-enter-from-below{0%{opacity:0;transform:translateY(512px)}to{opacity:1;transform:translateY(0)}}@keyframes project-following-separate{0%{opacity:1;transform:translate(0) scaleX(1)}to{opacity:0;transform:translate(var(--close-following-x),var(--close-following-exit)) scaleX(var(--close-following-scale-x))}}@keyframes about-enter-from-above{0%{opacity:0;transform:translateY(-512px)}to{opacity:1;transform:translateY(0)}}@keyframes about-exit-up{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-512px)}}@keyframes about-exit-down{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(512px)}}@media(max-aspect-ratio:1440 / 1024){.site-background-image{object-position:center center}}
