*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.visible{visibility:visible}.fixed{position:fixed}.block{display:block}.hidden{display:none}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/cormorant-garamond-latin-500.woff2) format("woff2")}@font-face{font-family:LXGW WenKai;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/lxgw-wenkai-500.woff2) format("woff2")}:root{font-family:PingFang SC,Microsoft YaHei,sans-serif;color:#20273c;background:#f7f8f4;font-size:16px;font-weight:400;line-height:1.7;font-synthesis:none;--paper:#f7f8f4;--blue:#1739cf;--ink:#20273c;--muted:#616d82;--surface:#edf1fa;--margin:clamp(22px,5vw,88px)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;min-width:320px;background:var(--paper)}#root{overflow-x:clip}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer;background:none;border:0;padding:0}a{color:inherit;text-decoration:none}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--blue);outline-offset:5px}button:active,.button:active{transform:scale(.98)}img{display:block;width:100%;height:auto}h1,h2,h3,h4,h5,p{margin:0}h1,h2,h3,h4,h5{font-weight:500}::-moz-selection{background:var(--blue);color:#fff}::selection{background:var(--blue);color:#fff}*{scrollbar-width:thin;scrollbar-color:#a2b2e7 transparent}::-webkit-scrollbar{width:6px;height:5px}::-webkit-scrollbar-thumb{background:#a2b2e7;border-radius:10px}.skip-link{position:fixed;left:20px;top:-80px;z-index:99;background:var(--blue);color:#fff;padding:10px 20px}.skip-link:focus{top:10px}.site-header{height:98px;display:flex;align-items:center;justify-content:space-between;padding:0 var(--margin);position:absolute;inset:0 0 auto;z-index:20;color:var(--blue)}.wordmark{font:500 38px/1 Cormorant Garamond,sans-serif;letter-spacing:-.035em;display:flex;gap:16px;align-items:center}.wordmark>span{font:400 12px/1.5 PingFang SC,sans-serif;letter-spacing:.05em;color:var(--muted);margin-top:8px}nav{display:flex;gap:clamp(28px,4vw,64px)}nav a{font-size:14px;color:#515f7b;transition:color .2s;position:relative}nav a:hover,nav a.active{color:var(--blue)}nav a.active:after{content:"";position:absolute;bottom:-8px;left:0;width:100%;height:2px;background:var(--blue)}.nav-contact{display:flex;gap:16px;align-items:center;font-size:14px}.nav-contact:hover,.text-link:hover{opacity:.65}.hero{height:100svh;min-height:820px;max-height:1150px;position:relative;padding:128px var(--margin) 36px;display:flex;flex-direction:column;isolation:isolate;overflow:hidden}.hero-heading-wrap{position:relative;z-index:3}.hero-heading{font-family:Cormorant Garamond,sans-serif;font-size:clamp(76px,12.3vw,230px);font-weight:500;line-height:1;letter-spacing:-.04em;white-space:nowrap;text-align:center;color:var(--blue)}.hero-art{position:absolute;top:30%;right:23%;bottom:13%;left:23%;pointer-events:none;z-index:1;display:flex;align-items:center;justify-content:center}.hero-art img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.hero-side{position:absolute;right:var(--margin);top:45%;font:300 20px/1.4 Cormorant Garamond,sans-serif;color:var(--blue);z-index:2}.hero-dot{display:none}.hero-caption{position:absolute;top:54%;left:var(--margin);font-size:14px;color:var(--muted);writing-mode:vertical-rl;letter-spacing:.15em;z-index:2}.hero-bottom{margin-top:auto;display:flex;align-items:flex-end;justify-content:space-between;gap:32px;position:relative;z-index:4;padding-bottom:38px}.hero-role{font-size:24px!important;font-weight:500;margin-bottom:10px!important;color:var(--blue)!important}.hero-intro{max-width:420px}.hero-intro p{font-size:14px;color:var(--muted);line-height:1.9}.hero-actions{display:flex;gap:12px;align-items:center}.button{display:inline-flex;align-items:center;justify-content:center;gap:28px;min-height:52px;padding:12px 28px;border-radius:100px;font-size:14px;font-weight:500;transition:transform .25s,background .25s,color .25s}.primary{background:var(--blue);color:#fff}.primary:hover{background:#0f2da8;transform:translateY(-3px)}.ghost{background:#e6ebfb;color:var(--blue)}.ghost:hover{background:#d9e1f9}.scroll-cue{position:absolute;bottom:23px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:14px;color:var(--muted);font-size:13px;z-index:5}.perched-bird{position:absolute;width:105px;z-index:4;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;display:block}.perched-bird img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.bird-home{left:calc(var(--margin) + 20px);top:35%;width:110px;transform:rotate(-8deg)}.bird-about{top:105px;right:22%;width:100px;transform:scaleX(-1) rotate(-6deg)}.bird-works{top:120px;right:25%;width:104px;transform:rotate(8deg)}.bird-contact{top:100px;right:var(--margin);width:125px;transform:scaleX(-1)}.section-shell{padding:115px var(--margin) 65px;position:relative;max-width:1800px;margin:0 auto}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:54px}.display-heading{font:500 clamp(44px,6.25vw,98px)/1.08 "Cormorant Garamond","PingFang SC",sans-serif;letter-spacing:-.035em;color:var(--blue)}.display-heading>span{display:block;font:400 17px/1.7 PingFang SC,sans-serif;letter-spacing:.02em;color:var(--muted);margin-top:14px}.display-heading.about-name{font:500 clamp(48px,5.8vw,84px)/1.3 "LXGW WenKai",serif;letter-spacing:.04em}.about-name>span{font:400 17px/1.7 Cormorant Garamond,sans-serif;letter-spacing:.03em}.text-link{display:inline-flex;align-items:center;gap:14px;font-size:14px;color:var(--blue);transition:opacity .2s}.about{padding-top:105px}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(45px,8vw,140px)}.about-statement{font-size:32px;line-height:1.55;letter-spacing:-.02em;color:var(--ink);margin-bottom:25px}.body-copy{color:#515f76;font-size:16px;line-height:2;max-width:520px}.skills{display:flex;flex-wrap:wrap;gap:8px;margin-top:27px;max-width:520px}.skills>span{padding:6px 14px;border-radius:100px;background:#e8edfa;color:#28418f;font-size:13px}.tools{font-size:13px;color:var(--muted);margin-top:20px}.tools>span{display:block;margin-top:7px;color:#354765}.education{margin-top:38px}.education h3{font-size:17px;color:var(--blue);margin-bottom:12px}.education-item{padding-top:20px}.education-item>span,.experience-date{font:400 14px/1.6 Cormorant Garamond,sans-serif;color:var(--muted)}.education-item h4{font-size:18px;margin-top:6px;display:flex;gap:18px;flex-wrap:wrap}.education-item small{font-size:14px;font-weight:400;color:var(--muted)}.education-item p{font-size:14px;color:var(--muted);margin-top:10px;max-width:430px}.subheading{font-size:22px;margin-bottom:21px;color:var(--ink)}.experience-tabs{display:flex;gap:8px;margin:0 0 18px}.experience-tabs button{font-size:14px;color:var(--muted);padding:7px 16px;border-radius:100px;transition:background .2s,color .2s}.experience-tabs button[aria-selected=true]{background:var(--blue);color:#fff}.experience-tabs button:hover:not([aria-selected=true]){background:#e7ecfa;color:var(--blue)}.experience-item{background:#edf1fa;border-radius:18px;padding:24px 26px 14px;margin-top:17px}.experience-card-heading{padding-bottom:16px}.experience-card-heading h4{font-size:18px;line-height:1.5;color:var(--blue);margin:7px 0 4px}.experience-role{font-size:14px;color:#4b608c}.experience-scroll{max-height:195px;overflow-y:auto;overscroll-behavior-y:contain;padding:0 14px 5px 0;scrollbar-gutter:stable;scroll-behavior:smooth}.experience-detail{margin-bottom:19px}.experience-detail h5{font-size:14px;color:#344f91;margin-bottom:5px}.experience-detail p{font-size:15px;line-height:1.95;color:#516078}.experience-result{font-size:14px;line-height:1.8;color:#1739a6;background:#e1e8fa;border-radius:10px;padding:12px 14px;margin:6px 0 4px}.experience-scroll-note{display:flex;align-items:center;justify-content:flex-end;gap:7px;font-size:12px;color:#606f8a;padding-top:10px}.works{padding-top:135px;overflow:hidden}.section-summary{font-size:14px;color:var(--muted);line-height:1.9;text-align:right}.category-tabs{display:flex;gap:7px;width:-moz-fit-content;width:fit-content;max-width:100%;background:#e8edf8;border-radius:100px;padding:6px;margin-bottom:30px}.category-tabs button{padding:11px 24px;border-radius:100px;font-size:15px;display:flex;align-items:center;gap:12px;white-space:nowrap;color:#536380;transition:background .25s,color .25s}.category-tabs button[aria-selected=true]{background:var(--blue);color:#fff}.category-tabs button:hover:not([aria-selected=true]){background:#dce4f7;color:var(--blue)}.category-tabs button>span{font:400 12px Cormorant Garamond,sans-serif;opacity:.8}.category-intro{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.category-intro p{font-size:15px;color:var(--muted)}.category-english{font:300 18px Cormorant Garamond,sans-serif;color:#6175a4;white-space:nowrap}.rail-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.rail-controls>span{font-size:13px;color:var(--muted)}.rail-controls>div{display:flex;gap:8px}.icon-button{width:42px;height:42px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#e2e9fa;color:var(--blue);transition:background .2s,transform .2s;flex-shrink:0}.icon-button:hover:not(:disabled){background:#cfdaf6;transform:translateY(-1px)}.icon-button svg{width:20px;height:20px}.trending-rail{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;padding:9px 1px 22px;scroll-padding:1px}.trending-card{flex:0 0 43%;min-width:0;display:block;text-align:left;scroll-snap-align:start}.work-cover{width:100%;aspect-ratio:16/10;background:#e3e7ed;border-radius:22px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.work-cover img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;transition:transform .6s}.trending-card:hover .work-cover img{transform:scale(1.025)}.play-badge{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:52px;height:52px;border-radius:50%;background:#f8faffec;color:var(--blue);display:flex;align-items:center;justify-content:center}.play-badge svg{margin-left:3px}.time-badge{position:absolute;bottom:14px;right:15px;background:#0f1b37d9;border-radius:100px;padding:4px 12px;font:400 13px Cormorant Garamond,sans-serif;color:#fff}.card-caption{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:21px 3px 8px}.card-category{font-size:13px;color:var(--muted)}.card-caption h3{font-size:19px;line-height:1.5;margin-top:7px;color:var(--ink)}.card-arrow{width:40px;height:40px;border-radius:50%;background:#e8edfb;color:var(--blue);display:flex;align-items:center;justify-content:center;flex-shrink:0}.work-footnote{font-size:13px;color:var(--muted);margin-top:17px}.tutorial-list{display:flex;flex-direction:column;gap:24px;margin-top:36px}.tutorial-row{display:grid;grid-template-columns:42% 1fr;gap:44px;width:100%;text-align:left;align-items:center;padding:24px;background:#edf1f9;border-radius:22px;transition:background .25s}.tutorial-row:hover{background:#e3eaf9}.tutorial-cover{position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:14px;background:#e1e5ed}.tutorial-cover img{height:100%;-o-object-fit:contain;object-fit:contain}.tutorial-caption{padding-right:22px}.tutorial-caption>span:first-child{font-size:13px;color:#5a6e9b}.tutorial-caption h3{font-size:25px;line-height:1.5;margin:10px 0 16px;color:var(--blue)}.tutorial-caption p{font-size:15px;line-height:1.9;color:#53617a;margin-bottom:22px}.other-rail{display:flex;gap:24px;align-items:flex-start;overflow-x:auto;scroll-snap-type:x proximity;padding:8px max(0px,calc((100% - 660px)/2)) 25px;position:relative;scroll-padding-inline:20px}.other-card{flex:0 0 370px;min-width:0;background:#edf1f9;border-radius:22px;overflow:hidden;scroll-snap-align:center;transition:flex-basis .45s cubic-bezier(.22,1,.36,1)}.other-card.is-active{flex-basis:660px;background:#e9effc}.other-select{text-align:left;width:100%}.other-preview{position:relative;aspect-ratio:4/3;background:#dfe5ef}.other-preview img{height:100%;-o-object-fit:contain;object-fit:contain}.other-card-title{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:21px}.other-card-title h3{font-size:18px;color:var(--blue)}.other-active-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 17px;color:#4e6594;font-size:13px}.other-info{padding:25px}.other-info h4{font-size:14px;color:var(--blue);margin-top:20px}.other-info p{font-size:15px;color:#516078;line-height:1.95;margin-top:7px}.cover-gallery{-moz-columns:4;columns:4;-moz-column-gap:21px;column-gap:21px;margin-top:35px}.cover-gallery>button{width:100%;display:block;-moz-column-break-inside:avoid;break-inside:avoid;margin-bottom:24px;text-align:left;border-radius:14px;overflow:hidden;background:#edf1fa;transition:transform .25s}.cover-gallery>button:hover{transform:translateY(-4px)}.cover-gallery img{width:100%;height:auto;-o-object-fit:contain;object-fit:contain}.cover-caption{display:flex;justify-content:space-between;align-items:center;padding:12px 15px;font-size:13px;color:#53678f}.contact{padding-top:145px}.contact .display-heading>span{font-size:19px;margin-top:20px;letter-spacing:0}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin:65px 0 90px}.contact-intro{font-size:22px;line-height:1.9;color:#394a6b}.email-link{display:inline-flex;align-items:center;gap:20px;font:400 clamp(21px,2.5vw,36px)/1.6 "Cormorant Garamond",sans-serif;color:var(--blue);margin-top:30px;letter-spacing:-.02em}.email-link:hover{color:#0c299e}.contact-methods{display:flex;flex-direction:column;gap:22px}.contact-row{display:flex;align-items:center;gap:20px;justify-content:space-between;background:#eaf0fc;border-radius:16px;padding:20px 24px}.contact-row>span{display:flex;align-items:center;gap:12px;font-size:14px;color:#5c6b89}.contact-row>strong{font:400 20px Cormorant Garamond,sans-serif;color:var(--blue);margin-right:auto}.text-button{display:inline-flex;align-items:center;gap:8px;color:var(--blue);font-size:13px;line-height:1.7;min-height:34px;transition:opacity .2s}.text-button:hover{opacity:.65}.contact-methods>.text-link{margin-left:8px}footer{display:flex;align-items:flex-end;justify-content:space-between;gap:30px}.footer-name{font:500 clamp(88px,13vw,190px)/.9 "Cormorant Garamond",sans-serif;letter-spacing:-.04em;color:var(--blue)}footer>div{margin-left:auto;display:flex;gap:35px;font-size:13px;color:var(--muted);padding-bottom:4px}.back-top{display:flex;align-items:center;justify-content:center;width:53px;height:53px;border-radius:50%;background:#e3eafa;color:var(--blue)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1e2d576e;z-index:50;display:flex;align-items:center;justify-content:center;padding:24px}.detail-dialog{width:min(1400px,100%);max-height:92svh;background:var(--paper);border-radius:22px;overflow:auto;overscroll-behavior:contain;position:relative;box-shadow:0 25px 90px #1c2d5938}.dialog-bar{position:sticky;top:0;z-index:4;display:flex;align-items:center;justify-content:space-between;background:#e9effa;padding:13px 20px 13px 28px;font-size:13px;color:#566c9b}.close-button{background:#d9e3fa}.detail-layout{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:32px;padding:32px}.detail-player{position:sticky;top:99px;align-self:start;min-width:0}.video-shell{position:relative;background:#111827;border-radius:14px;overflow:hidden;display:flex;justify-content:center;width:100%}.video-shell video{width:100%;height:auto;max-height:68svh;-o-object-fit:contain;object-fit:contain;display:block}.video-shell.portrait video{width:auto;max-width:100%}.video-loading{position:absolute;top:12px;left:14px;font-size:13px;color:#eff4ff;background:#15234be6;border-radius:100px;padding:5px 12px;pointer-events:none}.video-error{position:absolute;top:0;right:0;bottom:0;left:0;background:#eaf0fcf5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;text-align:center;padding:15px;min-height:180px;color:#243c78}.video-error p{font-size:14px}.video-error a{font-size:13px;text-decoration:underline}.external-video{position:relative}.external-video .button{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.work-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.work-title-row h2{font-size:25px;line-height:1.5;color:var(--blue)}.work-title-row h3{font-size:23px;line-height:1.5;color:var(--blue)}.duration{font:400 17px Cormorant Garamond,sans-serif;white-space:nowrap;color:#5d729d;margin-top:5px}.detail-info h3,.detail-info h4{font-size:15px;font-weight:500;color:var(--blue)}.detail-info>.work-title-row{margin-bottom:24px}.detail-info section{margin-bottom:30px}.detail-info section>p,.idea-section p{font-size:15px;color:#536078;line-height:1.95;margin-top:11px;white-space:pre-line}.detail-label{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:13px}.detail-label>span{font-size:13px;color:var(--muted)}.long-text{position:relative;max-height:180px;overflow:hidden;-webkit-mask-image:linear-gradient(#000 65%,transparent);mask-image:linear-gradient(#000 65%,transparent)}.long-text.expanded{max-height:none;-webkit-mask-image:none;mask-image:none}.long-text p{font-size:15px;color:#536078;line-height:1.95;white-space:pre-wrap;margin-bottom:13px}.expand-button{margin-top:12px}.still-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.still-grid button{position:relative;overflow:hidden;background:#dfe6f3;border-radius:9px;aspect-ratio:16/10;display:flex;align-items:center;justify-content:center}.still-grid img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;transition:transform .2s}.still-grid button:hover img{transform:scale(1.05)}.still-grid svg{position:absolute;bottom:7px;right:7px;color:#fff;filter:drop-shadow(0 1px 3px #000)}.tutorial-dialog{width:min(950px,100%)}.tutorial-dialog .detail-layout{display:block;padding:36px 50px}.tutorial-dialog .detail-player{position:static;max-width:720px;margin:0 auto 32px}.tutorial-dialog .video-shell video{max-height:56svh}.tutorial-dialog .detail-info{max-width:760px;margin:0 auto}.lightbox-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#f7f8f4f7;z-index:70;display:flex;align-items:center;justify-content:center;padding:18px}.lightbox{width:100%;height:100%;display:flex;flex-direction:column;max-width:1550px}.lightbox-top,.lightbox-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-shrink:0}.lightbox-top{height:60px;font-size:14px;color:#4b608b}.lightbox-picture{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:15px 30px;touch-action:pan-y}.lightbox-picture img{max-width:100%;max-height:100%;width:auto;height:auto;-o-object-fit:contain;object-fit:contain}.lightbox-bottom{justify-content:center;height:65px;font-size:14px;color:var(--blue)}.lightbox-bottom>span{min-width:65px;text-align:center;font-family:Cormorant Garamond,sans-serif}.image-error{background:#e3eafa;color:#4c6292;display:flex;align-items:center;justify-content:center;min-height:120px;font-size:13px;padding:20px}@media(min-width:1800px){.site-header,.hero{max-width:1800px;margin:auto}}@media(max-width:1100px){.wordmark>span{display:none}.hero{min-height:820px;padding-top:150px}.hero-heading{font-size:12.3vw}.hero-art{top:30%;right:15%;bottom:16%;left:15%}.hero-side{font-size:17px;top:43%}.bird-home{left:var(--margin);top:35%;width:90px}.hero-actions{flex-direction:column;gap:9px}.hero-actions .button{min-width:155px;min-height:46px}.about-grid{gap:40px}.about .section-heading{margin-bottom:40px}.experience-item{padding:22px 22px 13px}.experience-tabs{gap:0}.experience-tabs button{padding:7px 13px}.trending-card{flex-basis:56%}.tutorial-row{gap:28px}.tutorial-caption h3{font-size:21px}.cover-gallery{-moz-columns:3;columns:3}.contact-grid{gap:42px}.contact-row{padding:20px 17px;gap:12px}.contact-row>strong{font-size:18px}.detail-layout{gap:24px;padding:24px}.work-title-row h2{font-size:23px}.other-card.is-active{flex-basis:600px}.other-rail{padding-inline:max(0px,calc((100% - 600px)/2))}.bird-about{right:22%;top:110px;width:85px}.bird-works{right:24%;top:134px;width:90px}.bird-contact{width:100px}}@media(max-width:767px){:root{--margin:24px}html{scroll-padding-top:22px}.site-header{height:80px}.wordmark{font-size:32px}.nav-contact{display:none}nav{gap:23px}nav a{font-size:13px}.hero{height:100svh;min-height:760px;max-height:1000px;padding-top:126px;padding-bottom:22px}.hero-heading{font-size:11.65vw;letter-spacing:-.04em}.hero-art{top:26%;right:1%;bottom:27%;left:1%}.hero-side{right:var(--margin);top:23%;font-size:13px}.hero-caption{display:none}.bird-home{top:27%;left:22px;width:62px;transform:rotate(-8deg)}.hero-bottom{display:block;padding-bottom:39px}.hero-intro{max-width:100%}.hero-intro p{font-size:13px;line-height:1.85}.hero-role{font-size:21px!important;margin-bottom:6px!important}.hero-actions{flex-direction:row;margin-top:17px;gap:11px}.hero-actions .button{flex:1;min-width:0;min-height:45px;padding:10px 17px;font-size:13px;gap:26px}.scroll-cue{bottom:19px;font-size:13px}.section-shell{padding:85px var(--margin) 35px}.section-heading{margin-bottom:36px;gap:18px}.display-heading{font-size:clamp(35px,7.6vw,58px);line-height:1.12}.display-heading>span{font-size:16px;margin-top:13px}.display-heading.about-name{font-size:44px;letter-spacing:.04em}.about-name>span{font-size:15px}.section-heading>.text-link{font-size:13px}.bird-about{top:77px;right:26%;width:65px}.bird-works{top:30px;right:var(--margin);width:68px}.bird-contact{top:24px;right:var(--margin);width:75px}.about-grid{grid-template-columns:1fr;gap:42px}.about-statement{font-size:25px;line-height:1.55;margin-bottom:22px}.body-copy{font-size:15px;line-height:2}.skills>span{font-size:13px}.education{margin-top:30px}.education-item h4{gap:14px;font-size:17px}.education-item small,.education-item p{font-size:14px}.subheading{font-size:21px;margin-bottom:19px}.experience-item{padding:22px 21px 12px;margin-top:17px}.experience-tabs button{font-size:14px;padding:7px 17px}.experience-scroll{max-height:205px}.experience-card-heading h4{font-size:18px}.experience-detail p{font-size:15px;line-height:1.9}.experience-result{font-size:14px}.experience-scroll-note{font-size:12px}.works{padding-top:105px}.section-summary{display:none}.category-tabs{width:100%;gap:0;padding:5px;justify-content:space-between}.category-tabs button{flex:1;min-width:0;justify-content:center;gap:0;padding:10px 6px;font-size:13px}.category-tabs button>span{display:none}.category-intro{align-items:flex-start;margin-bottom:24px;gap:10px}.category-intro p{font-size:14px;max-width:330px}.category-english{display:none}.rail-controls{margin-bottom:15px}.rail-controls>span{font-size:13px}.icon-button{width:38px;height:38px}.icon-button svg{width:18px;height:18px}.trending-rail{gap:16px;padding-right:20px;margin-right:calc(-1*var(--margin))}.trending-card{flex-basis:87%}.work-cover{border-radius:18px;aspect-ratio:16/11}.play-badge{width:44px;height:44px}.time-badge{font-size:12px;right:10px;bottom:10px}.card-caption{padding-top:17px;gap:13px}.card-caption h3{font-size:17px}.card-arrow{width:34px;height:34px}.work-footnote{font-size:13px;margin-top:12px}.tutorial-list{margin-top:26px;gap:21px}.tutorial-row{display:block;padding:16px;border-radius:18px}.tutorial-cover{aspect-ratio:16/9}.tutorial-caption{padding:21px 4px 6px}.tutorial-caption h3{font-size:21px;line-height:1.5;margin:9px 0 14px}.tutorial-caption p{font-size:15px;line-height:1.9}.tutorial-caption>.text-link{font-size:13px}.other-rail{gap:15px;margin:0 calc(-1*var(--margin));padding:8px 28px 23px;scroll-padding-inline:28px}.other-card{flex-basis:76vw;border-radius:18px}.other-card.is-active{flex-basis:86vw}.other-preview{aspect-ratio:4/5}.other-card-title{padding:18px}.other-card-title h3{font-size:17px}.other-info{padding:20px}.other-info .work-title-row h3{font-size:20px}.cover-gallery{-moz-columns:2;columns:2;-moz-column-gap:13px;column-gap:13px;margin-top:28px}.cover-gallery>button{border-radius:10px;margin-bottom:16px}.cover-caption{font-size:13px;padding:10px}.cover-caption svg{width:13px}.contact{padding-top:110px}.contact .display-heading>span{font-size:16px;margin-top:16px}.contact-grid{grid-template-columns:1fr;gap:35px;margin:38px 0 65px}.contact-intro{font-size:20px}.email-link{font-size:27px;margin-top:20px}.contact-methods{gap:15px}.contact-row{padding:19px 20px;gap:13px}.contact-row>strong{font-size:20px}.contact-row>span{font-size:13px}footer{gap:22px;flex-wrap:wrap}.footer-name{font-size:88px}footer>div{font-size:12px;gap:6px;flex-direction:column;margin-left:0}.back-top{margin-left:auto;width:42px;height:42px}.modal-backdrop{padding:10px}.detail-dialog{max-height:96svh;border-radius:18px}.dialog-bar{padding:10px 13px 10px 18px;font-size:13px}.detail-layout{display:block;padding:18px}.detail-player{position:static;margin-bottom:25px}.video-shell{border-radius:10px}.video-shell video{max-height:55svh}.work-title-row h2{font-size:22px}.duration{font-size:15px}.detail-info section>p,.idea-section p,.long-text p{font-size:15px}.detail-info section{margin-bottom:25px}.detail-info>.work-title-row{margin-bottom:22px}.detail-label{gap:10px}.detail-info h3{font-size:14px}.text-button{font-size:13px}.tutorial-dialog .detail-layout{padding:18px}.tutorial-dialog .detail-player{margin-bottom:24px}.tutorial-dialog .video-shell video{max-height:52svh}.still-grid{gap:7px}.still-grid button{border-radius:6px}.lightbox-backdrop{padding:10px 15px}.lightbox-top{font-size:13px}.lightbox-picture{padding:15px 0}.long-section .detail-label h3{max-width:65%}}@media(max-width:380px){:root{--margin:18px}nav{gap:18px}.wordmark{font-size:29px}.category-tabs button{font-size:12px}.hero-role{font-size:20px!important}.hero-intro p{font-size:13px}.email-link{font-size:24px}.contact-row{padding:17px 14px}.contact-row>strong{font-size:18px}.experience-tabs button{padding-inline:15px}.bird-about{right:27%;width:55px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.trending-rail,.other-rail{scroll-snap-type:none}}.body-copy,.experience-detail p,.other-info p,.detail-info section>p,.idea-section p,.long-text p,.tutorial-caption p{color:#3f4e68}.category-english{color:#53678f}.experience-scroll-note,footer>div{font-size:13px}@media(min-width:768px){.experience-detail p,.other-info p,.detail-info section>p,.idea-section p,.long-text p,.tutorial-caption p{font-size:16px}}.perched-bird.bird-dialog{position:static;width:48px;height:34px;margin-left:auto;margin-right:18px}.honors{margin-top:28px;max-width:520px}.honors h3{font-size:17px;color:var(--blue);margin-bottom:12px}.honors p{font-size:15px;line-height:1.95;color:#3f4e68}.work-directory{padding-top:110px;padding-bottom:35px}.work-directory .section-heading{position:relative;min-height:125px;margin-bottom:24px}.work-directory .display-heading{font-family:LXGW WenKai,serif;font-size:clamp(40px,4.3vw,64px);line-height:1.3;letter-spacing:-.02em}.work-directory .display-heading>span{font-size:16px;margin-top:10px;letter-spacing:0}.arriving-bird{position:absolute;display:block;width:100px;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:3}.arriving-bird img{width:100%;height:auto;-o-object-fit:contain;object-fit:contain}.bird-directory{right:9%;top:-15px;width:145px}.bird-directory img{transform:scaleX(-1) rotate(-5deg)}.directory-list{max-width:1200px}.directory-row{display:grid;grid-template-columns:175px 1fr 56px;align-items:center;gap:30px;min-height:153px;padding:20px 25px 20px 0;border-radius:16px;transition:background .25s,padding .25s}.directory-row:hover{background:#eaf0fb;padding-left:22px}.directory-number{font:500 100px/.95 Cormorant Garamond,sans-serif;letter-spacing:-.04em;color:var(--blue)}.directory-row h3{font-size:32px;line-height:1.5;color:var(--blue)}.directory-row p{font:300 20px/1.6 Cormorant Garamond,sans-serif;color:#53678f;margin-top:3px}.directory-arrow{width:30px;height:30px;color:var(--blue);justify-self:end;transition:transform .25s}.directory-row:hover .directory-arrow{transform:translate(4px,-4px)}.folder-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,7vw,110px);max-width:1050px;margin:60px auto 0}.cover-folder{display:block;min-width:0;width:100%;color:var(--blue);text-align:left;padding:15px 10px 10px;border-radius:16px}.folder-art{display:block;position:relative;aspect-ratio:380/270;max-width:400px;margin:auto;transition:transform .35s}.cover-folder:hover .folder-art{transform:translateY(-7px)}.folder-back,.folder-front{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.folder-front{z-index:2}.folder-preview{position:absolute;left:22%;top:9%;width:61%;height:70%;overflow:hidden;transform:rotate(-7deg);background:#fff}.folder-preview img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.folder-portrait .folder-preview{left:39%;width:36%;top:1%;height:79%;transform:rotate(9deg)}.folder-count{position:absolute;left:20%;bottom:20%;z-index:3;font:300 18px Cormorant Garamond,sans-serif;color:#fff}.folder-label{display:flex;align-items:center;justify-content:space-between;gap:10px;max-width:360px;margin:20px auto 0;font-size:24px}.folder-label>span:last-child{display:flex;align-items:center;gap:17px;font:400 20px Cormorant Garamond,sans-serif;color:#53678f}.bird-folder-landscape{width:105px;right:-8%;top:1%}.bird-folder-landscape img{transform:rotate(-12deg)}.bird-folder-portrait{width:115px;left:-8%;bottom:-4%}.bird-folder-portrait img{transform:scaleX(-1) rotate(8deg)}.cover-description{max-width:850px;margin:65px auto 15px;font-size:16px;line-height:2;color:#3f4e68}.cover-strip-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin:36px 0 28px}.cover-strip-heading h3{font-size:30px;line-height:1.5;margin-top:23px;color:var(--blue);scroll-margin-top:35px}.cover-strip-heading h3>span{font-size:15px;font-weight:400;color:#53678f;display:inline-block;margin-left:20px}.cover-strip-controls{display:flex;gap:8px}.cover-strip{display:flex;align-items:flex-start;gap:26px;overflow-x:auto;scroll-snap-type:x mandatory;padding:7px 1px 22px;scroll-padding:1px}.cover-strip-item{flex:0 0 min(64%,660px);min-width:0;scroll-snap-align:start;border-radius:14px;background:var(--surface);overflow:hidden;text-align:left;transition:transform .25s}.cover-strip-item:hover{transform:translateY(-4px)}.cover-strip-item img{width:100%;height:auto;-o-object-fit:contain;object-fit:contain}.cover-strip.portrait .cover-strip-item{flex-basis:28%}.cover-strip .cover-caption{font-size:14px;padding:14px 18px}.cover-collection>.cover-description{margin-top:45px}.other-info h4{font-size:16px}.other-info h4+p{margin-top:9px}@media(max-width:1100px){.directory-row{grid-template-columns:135px 1fr 40px;min-height:140px}.directory-number{font-size:86px}.folder-grid{gap:40px}.folder-label{font-size:22px}.bird-directory{right:5%;width:120px}.cover-strip.portrait .cover-strip-item{flex-basis:36%}}@media(max-width:767px){.honors p{font-size:15px}.work-directory{padding-top:85px;padding-bottom:25px}.work-directory .section-heading{min-height:92px;margin-bottom:15px}.work-directory .display-heading{font-size:35px}.work-directory .display-heading>span{font-size:14px}.bird-directory{right:2%;top:-15px;width:88px}.directory-row{grid-template-columns:80px 1fr 24px;gap:18px;min-height:122px;padding:18px 4px 18px 0}.directory-row:hover{padding-left:8px}.directory-number{font-size:65px}.directory-row h3{font-size:25px}.directory-row p{font-size:16px;margin-top:3px}.directory-arrow{width:23px;height:23px}.folder-grid{gap:16px;margin-top:40px}.cover-folder{padding:8px 0}.folder-label{font-size:17px;display:block;margin-top:16px}.folder-label>span:last-child{font-size:15px;gap:12px;margin-top:4px}.folder-label svg{width:17px;height:17px}.folder-count{font-size:12px;left:22%;bottom:18%}.bird-folder-landscape{width:59px;right:-3%;top:-9%}.bird-folder-portrait{width:62px;left:-9%;bottom:-8%}.cover-description{font-size:15px;line-height:1.95;margin:38px 0 0}.cover-collection>.cover-description{margin-top:38px}.cover-strip-heading{margin-top:25px;gap:10px}.cover-strip-heading h3{font-size:24px;margin-top:18px}.cover-strip-heading h3>span{font-size:13px;display:block;margin:3px 0 0}.cover-strip-heading .text-link{font-size:13px;gap:8px}.cover-strip{gap:16px;margin-right:calc(-1*var(--margin));padding-right:var(--margin)}.cover-strip-item{flex-basis:88%;border-radius:10px}.cover-strip.portrait .cover-strip-item{flex-basis:67%}.cover-strip .cover-caption{font-size:13px;padding:12px}.other-info h4{font-size:15px}}@media(max-width:380px){.directory-row{grid-template-columns:65px 1fr 22px;gap:14px}.directory-number{font-size:58px}.directory-row h3{font-size:23px}.directory-row p{font-size:15px}.bird-directory{width:76px}.folder-label{font-size:16px}}:root{--font-display:"Cormorant Garamond",serif;--font-chinese:"LXGW WenKai",serif}h1,h2,h3,h4,h5{font-family:var(--font-chinese)}.display-heading{font-family:var(--font-display)}.display-heading>span,.about-statement,.hero-role,.contact-intro,.folder-label>span:first-child{font-family:var(--font-chinese);font-weight:500}.about-name>span{font-family:var(--font-display)}.cover-caption{align-items:flex-start;gap:16px;line-height:1.7;overflow-wrap:anywhere}.cover-caption svg{flex-shrink:0;margin-top:4px}.quick-jump-reveal{display:flex;align-items:center;gap:4px;width:-moz-fit-content;width:fit-content;max-width:100%;margin:8px 0 28px;border-radius:18px;transition:transform .2s}.quick-jump-reveal:hover{transform:translateY(-3px)}.jump-bubble{position:relative;display:block;background:#e6ecfb;color:var(--blue);padding:17px 24px;border-radius:22px;font-family:var(--font-chinese);font-size:18px;line-height:1.7;white-space:nowrap}.jump-bubble:after{content:"";position:absolute;right:-12px;top:52%;width:0;height:0;border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:15px solid #e6ecfb;transform:translateY(-50%)}.jump-bird{width:116px;height:86px;display:block;flex-shrink:0;transform:rotate(-5deg);pointer-events:none}.jump-bird img{height:100%;-o-object-fit:contain;object-fit:contain}.hero-art-stage{position:relative;aspect-ratio:1122/1402;height:100%;max-width:100%}.hero-art-composition{position:absolute;top:0;right:0;bottom:0;left:0}.hero-art-composition>img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.flying-swallow{position:absolute;aspect-ratio:1;display:block;pointer-events:none;transform-origin:center}.wingbeat-sprite{display:block;width:100%;height:100%;background-image:url(/media/swallow-wingbeat-sprite.png);background-size:300% 200%;background-repeat:no-repeat;background-position:0 0;animation:swallow-wingbeat 1.25s steps(1,end) infinite;animation-play-state:paused}.hero-art-stage[data-animate=true] .wingbeat-sprite{animation-play-state:running}.swallow-1{left:39%;top:44%;width:15%;transform:rotate(-24deg)}.swallow-1 .wingbeat-sprite{animation-delay:-.2s}.swallow-2{left:49%;top:49%;width:20%;transform:rotate(-18deg)}.swallow-2 .wingbeat-sprite{animation-delay:-.6s}.swallow-3{left:59%;top:35%;width:23%;transform:rotate(-25deg)}.swallow-3 .wingbeat-sprite{animation-delay:-.8s}.swallow-4{left:75%;top:24%;width:27%;transform:rotate(-22deg)}.swallow-4 .wingbeat-sprite{animation-delay:-.4s}.swallow-5{left:43%;top:18%;width:25%;transform:rotate(-26deg)}.swallow-5 .wingbeat-sprite{animation-delay:-1s}.swallow-6{left:65%;top:10%;width:24%;transform:rotate(-28deg)}.swallow-6 .wingbeat-sprite{animation-delay:-.1s}.swallow-7{left:80%;top:0%;width:25%;transform:rotate(-24deg)}.swallow-7 .wingbeat-sprite{animation-delay:-.7s}.bird-motion-toggle{position:absolute;right:0;bottom:12%;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:#e6ecfb;color:var(--blue);pointer-events:auto;z-index:6}.bird-motion-toggle:hover{background:#d6dff8}@keyframes swallow-wingbeat{0%,to{background-position:0 0}16.666%{background-position:50% 0}33.333%{background-position:100% 0}50%{background-position:0 100%}66.666%{background-position:50% 100%}83.333%{background-position:100% 100%}}@media(max-width:767px){.quick-jump-reveal{gap:0;margin:5px 0 24px}.jump-bubble{font-size:15px;padding:13px 15px;border-radius:18px}.jump-bird{width:80px;height:67px}.jump-bubble:after{right:-10px;border-left-width:12px;border-top-width:6px;border-bottom-width:6px}.bird-motion-toggle{width:30px;height:30px;right:3px;bottom:5%}.cover-strip .cover-caption{font-size:14px}}@media(max-width:380px){.jump-bubble{font-size:14px;padding:12px 13px}.jump-bird{width:67px}.cover-strip-heading h3{font-size:24px}}@media(prefers-reduced-motion:reduce){.wingbeat-sprite{animation:none!important;background-position:0 0}.quick-jump-reveal:hover{transform:none}}
