@charset "UTF-8";
:root{--bg:#fbfbf9;--ink:#191919;--muted:#686865;--line:#d8d8d3;--accent:#2c66ed;--surface:#eeeeea;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,"Microsoft YaHei","PingFang SC",sans-serif;font-size:16px;line-height:1.6}body.dark{--bg:#161616;--ink:#f5f5ef;--muted:#b0b0a7;--line:#3c3c38;--surface:#222;color-scheme:dark}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:5px}button{border:0}header,main,footer{max-width:1800px;margin:auto}.header{padding:28px 4.2%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.wordmark{font-size:28px;font-weight:900;letter-spacing:-1px;line-height:1.2}.wordmark span{font-size:12px;letter-spacing:1.4px;display:block;margin-top:6px}nav{display:flex;gap:42px;align-items:center}nav a{font-size:15px}nav a span{font-size:12px;margin-left:9px}nav a:hover{color:var(--accent)}#theme{background:transparent;font-size:27px;width:40px;height:40px}.hero{padding:42px 4.2% 55px}.hero-top{display:flex;justify-content:space-between;font-size:13px;letter-spacing:1px}.hero h1{font-size:clamp(56px,7.8vw,122px);line-height:1.22;letter-spacing:-.055em;margin:50px 0 40px;font-weight:800;position:relative}.hero h1 span{color:var(--accent)}.hero h1 i{font-style:normal;font-weight:400;font-size:clamp(110px,19vw,290px);position:absolute;right:3%;top:0;line-height:1;color:var(--accent);animation:turn 40s linear infinite}.hero-bottom{display:flex;align-items:flex-end;justify-content:space-between}.hero-bottom p{margin:0;font-size:17px;line-height:1.8}.text-link{display:inline-flex;gap:26px;align-items:center;border-bottom:1px solid var(--ink);padding:8px 0;font-size:15px}.text-link:hover{color:var(--accent);border-color:var(--accent)}.scroll-mark{font-size:23px}.works{padding:30px 4.2% 100px;background:var(--surface)}.section-heading{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:26px 0 34px}h2{font-size:20px;margin:0;font-weight:600}h2 span{display:inline-block;margin-left:20px;font-size:12px;font-weight:400;letter-spacing:1px}.filters{display:flex;gap:24px}.filters button{padding:6px 0;background:transparent;font-size:14px;color:var(--muted);border-bottom:1px solid transparent}.filters button.active{color:var(--ink);border-bottom-color:var(--ink)}sup{font-size:10px;margin-left:3px}.projects{display:grid;grid-template-columns:1.3fr 1fr;gap:70px 30px}.project{min-width:0}.project-small{padding-top:110px}.project-full{grid-column:1/-1;width:82%;margin-top:5px}.project-image{display:block;width:100%;position:relative;overflow:hidden;padding:0;aspect-ratio:1.32;background:#1955d1}.project-small .project-image{aspect-ratio:.95}.project-full .project-image{aspect-ratio:1.85}.project-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.65,.2,1)}.orange{background:#ec6429}.lime{background:#bce446}.project-image:hover img{transform:scale(1.045)}.project-open{position:absolute;bottom:20px;right:20px;background:var(--bg);color:var(--ink);padding:10px 18px;border-radius:100px;font-size:14px;opacity:0;transform:translateY(12px);transition:opacity .2s,transform .2s}.project-image:hover .project-open,.project-image:focus-visible .project-open{opacity:1;transform:none}.project-caption{padding:21px 0 0;display:flex;justify-content:space-between;gap:15px}.project-caption h3{font-size:22px;letter-spacing:-.5px;margin:0 0 5px}.project-caption p{font-size:14px;margin:0;color:var(--muted)}.project-meta{font-size:12px;text-align:right;display:flex;flex-direction:column;gap:7px;padding-top:5px;color:var(--muted)}.project-small .project-caption{flex-direction:column}.project-small .project-meta{text-align:left;flex-direction:row;justify-content:space-between}.project[hidden]{display:none}.about{padding:95px 4.2%;display:grid;grid-template-columns:1fr 2fr;gap:60px}.about-label h2 span{display:block;margin:7px 0 0}.about-star{font-size:180px;line-height:1.4;color:var(--accent)}.statement{font-size:clamp(32px,3.6vw,56px);font-weight:700;line-height:1.5;letter-spacing:-2px;margin:0 0 28px}.statement span{color:var(--accent)}.body-copy{max-width:620px;color:var(--muted);font-size:17px;line-height:2}.services{margin-top:40px}.services>div{display:grid;grid-template-columns:35px 140px 1fr;align-items:center;border-top:1px solid var(--line);padding:18px 0;gap:15px}.services span{font-size:12px;color:var(--muted)}.services h3{font-size:17px;font-weight:500;margin:0}.services p{font-size:14px;color:var(--muted);margin:0}.closing{background:var(--accent);color:#fff;padding:50px 4.2% 60px;position:relative}.closing>span{font-size:12px;letter-spacing:1px}.closing>p{font-size:clamp(34px,4.5vw,72px);font-weight:700;letter-spacing:-2px;line-height:1.4;margin:24px 0 0}.closing .text-link{position:absolute;right:4.2%;bottom:65px;border-color:white}footer{padding:26px 4.2%;display:flex;justify-content:space-between;font-size:12px;gap:20px;color:var(--muted)}dialog{background:var(--bg);color:var(--ink);border:0;width:min(1080px,94vw);max-height:92vh;padding:0}dialog::backdrop{background:#000b;backdrop-filter:blur(6px)}.dialog-close{position:sticky;top:0;z-index:1;display:block;margin-left:auto;background:var(--bg);padding:18px 26px}.detail-content{padding:0 50px 40px}.eyebrow{font-size:12px;color:var(--muted)}.detail-content h2{font-size:40px;font-weight:700;line-height:1.3}.detail-content>p{color:var(--muted)}.detail-content>img{width:100%;height:auto;display:block;margin:28px 0}.detail-info{display:grid;grid-template-columns:2fr 1fr;gap:50px}.detail-info h3{font-size:16px}.detail-info p{color:var(--muted);font-size:16px}.next-project{background:var(--ink);color:var(--bg);padding:12px 22px;margin-top:24px}.empty{color:var(--muted)}@keyframes turn{to{transform:rotate(360deg)}}@media(max-width:900px){.hero h1 i{right:0;font-size:20vw;top:10px}.project-caption{flex-direction:column}.project-meta{text-align:left;flex-direction:row;justify-content:space-between}.project-small{padding-top:70px}.about{gap:30px;grid-template-columns:1fr 2.1fr}.services>div{grid-template-columns:22px 100px 1fr;gap:8px}.closing .text-link{position:static;margin-top:25px}footer span:last-child{display:none}}@media(max-width:600px){.header{padding:22px 6%}.wordmark{font-size:24px}nav{gap:19px}nav a span{display:none}.hero{padding:28px 6% 38px}.hero-top{font-size:11px}.hero-top span:last-child{max-width:110px;text-align:right}.hero h1{font-size:13vw;margin:36px 0 30px;letter-spacing:-.05em}.hero h1 i{display:none}.hero-bottom{gap:26px;align-items:flex-start;flex-direction:column}.hero-bottom p{font-size:16px}.works{padding:16px 6% 55px}.section-heading{align-items:flex-start;gap:18px;flex-direction:column;padding:20px 0 25px}.filters{gap:25px}.projects{grid-template-columns:1fr;gap:35px}.project-small{padding-top:0}.project-full{width:100%;grid-column:auto}.project-image,.project-small .project-image,.project-full .project-image{aspect-ratio:1.3}.project-open{opacity:1;transform:none;bottom:12px;right:12px;font-size:12px;padding:8px 12px}.project-caption{padding-top:15px}.project-caption h3{font-size:21px}.project-meta{font-size:12px}.about{padding:50px 6%;display:block}.about-label h2 span{display:inline-block;margin-left:15px}.about-star{display:none}.about-copy{margin-top:28px}.statement{font-size:31px;letter-spacing:-1px}.body-copy{font-size:16px}.services>div{grid-template-columns:22px 1fr;gap:5px}.services p{grid-column:2}.closing{padding:32px 6%}.closing>p{font-size:38px;letter-spacing:-1px}footer{padding:22px 6%;flex-wrap:wrap;font-size:12px}.detail-content{padding:0 22px 28px}.detail-content h2{font-size:28px}.detail-info{grid-template-columns:1fr;gap:8px}html{scroll-padding-top:20px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* Editorial personal profile */
.resume-section{padding:75px 4.2%;background:var(--bg)}.profile-sheet{max-width:1200px;margin:auto}.profile-topline{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:22px}.profile-topline>span{font-size:12px;letter-spacing:1px}.profile-hero{display:flex;justify-content:space-between;gap:40px;padding:38px 0;border-bottom:1px solid var(--line)}.portrait{width:180px;aspect-ratio:1;overflow:hidden;position:relative;background:#ddd}.portrait img{position:absolute;width:554.12%;max-width:none;left:-49.35%;top:-19.91%;filter:none}.profile-identity h3{font-size:64px;line-height:1.1;font-weight:500;letter-spacing:-3px;margin:22px 0 12px}.profile-identity h3 span{font-size:22px;letter-spacing:0;margin-left:20px;display:inline-block}.profile-role{font-size:14px;letter-spacing:2px;margin:12px 0}.profile-greeting{font-size:18px;margin:12px 0 0}.profile-number{text-align:left;min-width:210px;align-self:center}.big-number{display:block;font-size:170px;font-weight:400;letter-spacing:-12px;line-height:1}.profile-number p{font-size:14px;margin:12px 0 25px}.profile-mbti{font-size:24px;letter-spacing:2px}.profile-body{display:grid;grid-template-columns:minmax(230px,1fr) minmax(0,2fr);gap:55px;padding-top:10px}.profile-sidebar{border-right:1px solid var(--line);padding-right:35px}.resume-block{padding:25px 0;border-bottom:1px solid var(--line)}.resume-block>h3{font-size:16px;font-weight:500;margin:0 0 23px}.resume-block>h3>span{display:block;font-size:12px;letter-spacing:1.2px;color:var(--muted);margin-top:4px}.resume-block p{font-size:16px;line-height:1.85;color:var(--muted);margin:12px 0}.contact-list{margin:0}.contact-list>div{margin:16px 0}.contact-list dt{font-size:12px;color:var(--muted)}.contact-list dd{margin:4px 0 0;font-size:16px;overflow-wrap:anywhere}.contact-list a:hover{color:var(--accent)}.resume-block .resume-name{color:var(--ink);font-size:22px;margin-bottom:8px}.education-stats{display:grid;grid-template-columns:1fr 1fr;margin-top:23px;gap:18px}.education-stats strong{display:block;font-size:36px;line-height:1.3;font-weight:500}.education-stats strong span{font-size:18px}.education-stats small{font-size:12px;color:var(--muted)}.skill-chips{display:flex;flex-wrap:wrap;gap:8px}.skill-chips>span{border:1px solid var(--line);padding:5px 9px;font-size:13px}.award-list{padding:0;list-style:none;margin:0}.award-list li{margin:20px 0}.award-list time{font-size:12px;color:var(--muted);display:block}.award-list strong{font-size:16px;font-weight:500}.award-list p{font-size:14px;margin:5px 0}.resume-download{display:block;background:var(--surface);font-size:15px;text-align:center;padding:18px;margin-top:25px}.resume-download:hover{background:var(--ink);color:var(--bg)}.resume-block .profile-intro{font-size:34px;line-height:1.5;letter-spacing:-1px;color:var(--ink);margin:0 0 22px}.profile-intro>span{display:block}.profile-strengths h4{font-size:16px;font-weight:500;margin:22px 0 5px}.profile-strengths p{margin:0}.resume-entry{margin-top:26px}.entry-heading{display:flex;justify-content:space-between;gap:20px;align-items:baseline}.entry-heading h4{font-weight:500;font-size:19px;margin:0}.entry-heading time{white-space:nowrap;font-size:12px;color:var(--muted)}.resume-entry .entry-role{font-size:14px;color:var(--ink);margin:5px 0}.resume-project{border-top:1px solid var(--line)}.resume-project summary{display:flex;justify-content:space-between;gap:20px;padding:22px 0;cursor:pointer;list-style:none}.resume-project summary::-webkit-details-marker{display:none}.resume-project summary>span{min-width:0;position:relative;padding-left:23px}.resume-project summary>span:before{content:'+';position:absolute;left:0;top:-1px;color:var(--muted)}.resume-project[open] summary>span:before{content:'−'}.resume-project strong{font-size:17px;font-weight:500;display:block;line-height:1.6}.resume-project em{display:block;font-size:12px;font-style:normal;color:var(--muted);margin-top:5px}.resume-project time{font-size:12px;white-space:nowrap;color:var(--muted);padding-top:5px}.resume-project>div{padding:0 0 18px 23px}.resume-project>div>p{margin:0 0 14px}.resume-project b{font-weight:500;color:var(--ink)}.resume-project summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
@media(max-width:900px){.profile-body{gap:30px;grid-template-columns:minmax(200px,1fr) minmax(0,1.6fr)}.profile-sidebar{padding-right:25px}.entry-heading{flex-direction:column;gap:3px}.resume-project summary{flex-direction:column;gap:4px}.resume-project time{padding-left:23px}.profile-identity h3{font-size:56px}.profile-identity h3 span{display:block;margin:12px 0 0}.big-number{font-size:140px}.profile-number{min-width:175px}}
@media(max-width:600px){.resume-section{padding:45px 6%}.profile-topline>span{font-size:11px}.profile-topline h2{font-size:18px}.profile-topline h2 span{font-size:11px;margin-left:10px}.profile-hero{gap:15px;padding:25px 0}.portrait{width:135px}.profile-identity h3{font-size:44px;letter-spacing:-2px}.profile-identity h3 span{font-size:20px;margin-top:10px}.profile-role{font-size:12px;letter-spacing:0}.profile-greeting{font-size:16px}.profile-number{min-width:100px;align-self:flex-start;padding-top:8px}.big-number{font-size:100px;letter-spacing:-7px}.profile-number p{font-size:12px;margin:8px 0 22px}.profile-mbti{font-size:21px}.profile-body{display:flex;flex-direction:column;gap:0}.profile-sidebar{border-right:0;padding-right:0;display:contents}.profile-main{display:contents}.profile-body>.profile-sidebar>.resume-block:nth-child(1){order:2}.profile-body>.profile-sidebar>.resume-block:nth-child(2){order:3}.profile-body>.profile-sidebar>.resume-block:nth-child(3){order:6}.profile-body>.profile-sidebar>.resume-block:nth-child(4){order:7}.profile-body>.profile-sidebar>.resume-download{order:8}.profile-main>.resume-block:nth-child(1){order:1}.profile-main>.resume-block:nth-child(2){order:4}.profile-main>.resume-block:nth-child(3){order:5}.resume-block{padding:25px 0}.resume-block>h3>span{display:inline-block;margin-left:12px}.resume-block .profile-intro{font-size:29px}.education-stats{max-width:280px}.contact-list{display:grid;grid-template-columns:1fr;gap:4px}.contact-list>div{margin:6px 0}.resume-project strong{font-size:16px}}




.portrait img{filter:grayscale(1)}

.section-heading{flex-wrap:wrap;gap:20px}.filters{flex-wrap:wrap;gap:12px 24px;justify-content:flex-start}.filters button{white-space:nowrap}.section-heading>h2{flex-shrink:0}@media(max-width:1100px){.section-heading{align-items:flex-start;flex-direction:column}.filters{width:100%;gap:12px 22px}}


/* Swap only greeting and age information; keep photo/name/role in place. */
.portrait img{filter:none}.profile-identity>.profile-number{margin-top:18px;min-width:0;align-self:auto}.profile-identity>.profile-number .big-number{font-size:32px;line-height:1.2;letter-spacing:-1px}.profile-identity>.profile-number p{font-size:14px;margin:4px 0 12px}.profile-identity>.profile-number .profile-mbti{font-size:18px;letter-spacing:1px}.profile-identity>.profile-number p:last-child{margin-bottom:0}.profile-greeting-group{align-self:center;max-width:65%;min-width:210px}.profile-greeting-group .profile-greeting{font-size:clamp(48px,6.5vw,96px);line-height:1.35;font-weight:400;letter-spacing:-3px;margin:0}@media(max-width:600px){.profile-greeting-group{max-width:52%;min-width:0}.profile-greeting-group .profile-greeting{font-size:clamp(28px,7vw,40px);letter-spacing:-1px}.profile-identity>.profile-number{padding-top:0;margin-top:16px}.profile-identity>.profile-number .big-number{font-size:26px}.profile-identity>.profile-number p{font-size:12px}.profile-identity>.profile-number .profile-mbti{font-size:16px}}

.portrait img{position:static;display:block;width:100%;height:100%;max-width:100%;object-fit:cover;object-position:center 28%;filter:none}

/* Preserve original portrait proportions at every viewport. */
.portrait{aspect-ratio:auto;overflow:visible;background:transparent}.portrait img{position:static;display:block;width:100%;height:auto;max-width:100%;object-fit:contain;filter:none}.profile-identity>.profile-number p,.profile-identity>.profile-number .profile-mbti{font-size:15px}

/* Equal-size stacked names and single-line introduction. */
.profile-identity h3.profile-display-name{display:flex;flex-direction:column;align-items:flex-start;gap:6px;font-size:clamp(32px,4.6vw,64px);line-height:1.2;letter-spacing:-1px;margin:22px 0 12px}.profile-identity h3.profile-display-name>span{display:block;font-size:inherit;font-weight:inherit;line-height:inherit;letter-spacing:inherit;margin:0}.resume-block .profile-intro{white-space:nowrap;font-size:clamp(20px,2.6vw,34px);letter-spacing:-.5px}@media(max-width:900px) and (min-width:601px){.resume-block .profile-intro{font-size:clamp(16px,2.4vw,22px)}}@media(max-width:600px){.profile-identity h3.profile-display-name{font-size:32px;gap:5px}.resume-block .profile-intro{font-size:clamp(16px,5vw,25px);letter-spacing:-.5px}}

/* Portrait with a tidy information column to its right. */
.profile-hero{gap:40px;align-items:center}.profile-identity{display:flex;align-items:center;gap:30px;min-width:0;flex:1}.profile-identity .portrait{width:180px;flex:0 0 180px}.profile-identity-info{min-width:0}.profile-identity h3.profile-display-name{font-size:clamp(28px,3.4vw,46px);margin:0 0 16px;gap:4px}.profile-identity-info .profile-role{font-size:14px;letter-spacing:0;margin:0 0 18px}.profile-identity-info .profile-number{min-width:0;margin:0}.profile-identity-info .profile-number p{font-size:15px;margin:0 0 10px}.profile-identity-info .profile-mbti{font-size:15px;display:block;margin-bottom:5px}.profile-identity-info .profile-number p:last-child{margin:0}.profile-greeting-group{flex:0 1 40%;min-width:0;max-width:40%}.profile-greeting-group .profile-greeting{font-size:clamp(38px,5vw,72px)}@media(max-width:900px){.profile-hero{gap:25px}.profile-identity{gap:20px}.profile-identity .portrait{width:150px;flex-basis:150px}.profile-identity h3.profile-display-name{font-size:32px}.profile-identity-info .profile-role{font-size:12px}.profile-greeting-group{flex-basis:32%;max-width:32%}.profile-greeting-group .profile-greeting{font-size:clamp(28px,4vw,38px)}}@media(max-width:600px){.profile-hero{flex-direction:column;align-items:stretch;gap:28px}.profile-identity{gap:20px;align-items:center}.profile-identity .portrait{width:125px;flex-basis:125px}.profile-identity h3.profile-display-name{font-size:28px}.profile-identity-info .profile-role{font-size:12px;line-height:1.6;margin-bottom:12px}.profile-identity-info .profile-number{padding:0}.profile-identity-info .profile-number p,.profile-identity-info .profile-mbti{font-size:15px}.profile-greeting-group{align-self:flex-start;max-width:100%;flex-basis:auto}.profile-greeting-group .profile-greeting{font-size:34px}.profile-greeting-group .profile-greeting br{display:none}}@media(max-width:360px){.profile-identity{gap:14px}.profile-identity .portrait{width:100px;flex-basis:100px}.profile-identity h3.profile-display-name{font-size:25px}}

/* Bilingual greeting: equal size, aligned lines and consistent spacing. */
.profile-greeting-group{display:flex;flex-direction:column;align-items:flex-start;gap:12px}.profile-greeting-group .profile-greeting{font-size:clamp(24px,3.2vw,46px);line-height:1.4;letter-spacing:-.8px;margin:0;white-space:nowrap;font-weight:400}@media(max-width:900px) and (min-width:601px){.profile-greeting-group{flex-basis:37%;max-width:37%;gap:10px}.profile-greeting-group .profile-greeting{font-size:clamp(20px,2.8vw,28px);letter-spacing:-.5px}}@media(max-width:600px){.profile-greeting-group{max-width:100%;gap:8px}.profile-greeting-group .profile-greeting{font-size:clamp(23px,6.8vw,34px);letter-spacing:-.5px}}

/* Compact contact grid alongside the wordmark. */
.header{gap:28px;flex-wrap:wrap}.header .wordmark{flex-shrink:0}.header-contact{display:grid;grid-template-columns:auto auto;gap:7px 24px;margin:0 auto 0 0}.header-contact>div{display:flex;align-items:baseline;gap:10px;min-width:0}.header-contact dt{font-size:12px;color:var(--muted);white-space:nowrap}.header-contact dd{font-size:14px;margin:0;line-height:1.6;white-space:nowrap}.header-contact a:hover{color:var(--accent)}.header nav{flex-shrink:0;gap:26px}@media(max-width:1050px){.header-contact{order:3;flex-basis:100%;grid-template-columns:repeat(2,minmax(0,1fr));padding-top:16px;border-top:1px solid var(--line)}.header nav{margin-left:auto}}@media(max-width:600px){.header{gap:16px}.header-contact{gap:8px 12px;padding-top:13px}.header-contact>div{gap:7px}.header-contact dd{font-size:13px;white-space:normal;overflow-wrap:anywhere}.header nav{gap:18px}}@media(max-width:360px){.header-contact{grid-template-columns:1fr}}

/* Balanced divider between identity and greeting columns. */
.profile-hero{position:relative;gap:clamp(30px,4vw,60px)}.profile-greeting-group{align-self:stretch;justify-content:center;border-left:1px solid var(--line);padding-left:clamp(25px,3vw,45px)}@media(max-width:900px) and (min-width:601px){.profile-hero{gap:24px}.profile-greeting-group{padding-left:22px}.profile-greeting-group .profile-greeting{font-size:clamp(18px,2.5vw,24px)}}@media(max-width:600px){.profile-hero{gap:25px}.profile-greeting-group{align-self:stretch;border-left:0;border-top:1px solid var(--line);padding:24px 0 0}}

/* Requested profile typography and balanced space for larger greetings. */
.profile-hero{gap:30px}.profile-identity{flex:1 1 50%;gap:24px}.profile-greeting-group{flex:1 1 50%;max-width:none;padding-left:28px}.profile-identity h3.profile-display-name>.name-en{font-size:32px}.profile-identity-info .profile-role{font-size:18px}.profile-identity-info .profile-number p:first-child,.profile-identity-info .profile-number .profile-mbti{font-size:18px}.profile-greeting-group .profile-greeting-en{font-size:45px}.profile-greeting-group .profile-greeting-cn{font-size:48px}.profile-greeting-group .profile-greeting{white-space:normal;overflow-wrap:normal;line-height:1.4;letter-spacing:-1px}@media(min-width:901px) and (max-width:1150px){.profile-identity .portrait{width:150px;flex-basis:150px}.profile-identity{gap:20px}.profile-identity-info .profile-role{max-width:190px}}@media(max-width:900px) and (min-width:601px){.profile-hero{flex-wrap:wrap;gap:25px}.profile-identity{flex-basis:100%}.profile-greeting-group{flex-basis:100%;border-left:0;border-top:1px solid var(--line);padding:22px 0 0}.profile-greeting-group .profile-greeting-en{font-size:38px}.profile-greeting-group .profile-greeting-cn{font-size:40px}}@media(max-width:600px){.profile-identity{flex-basis:auto}.profile-greeting-group{flex-basis:auto;padding:24px 0 0}.profile-greeting-group .profile-greeting-en{font-size:clamp(26px,7.4vw,38px)}.profile-greeting-group .profile-greeting-cn{font-size:clamp(28px,7.8vw,40px)}.profile-identity-info .profile-role{font-size:18px;line-height:1.6}.profile-identity-info .profile-number p:first-child,.profile-identity-info .profile-number .profile-mbti{font-size:18px}}

.profile-identity .portrait img{border-radius:15px}

/* Match information height to the natural portrait height. */
.profile-identity{align-items:stretch;gap:18px}.profile-identity-info{display:flex;flex-direction:column;justify-content:space-between;gap:6px}.profile-identity h3.profile-display-name{margin:0;gap:6px;line-height:1.1}.profile-identity-info .profile-role{margin:0;line-height:1.25}.profile-identity-info .profile-number{display:flex;flex-direction:column;gap:6px;padding:0;margin:0}.profile-identity-info .profile-number p,.profile-identity-info .profile-number p:first-child,.profile-identity-info .profile-number p:last-child,.profile-identity-info .profile-number .profile-mbti{margin:0;line-height:1.25}@media(max-width:600px){.profile-identity{gap:16px}.profile-identity-info{gap:4px}.profile-identity h3.profile-display-name{gap:4px}.profile-identity-info .profile-number{gap:4px}.profile-identity-info .profile-role{font-size:14px}.profile-identity-info .profile-number p:first-child,.profile-identity-info .profile-number .profile-mbti{font-size:15px}.profile-identity-info .profile-number p:last-child{font-size:13px}}

.profile-identity-info{text-align:left;align-items:flex-start}.profile-identity-info .profile-display-name,.profile-identity-info .profile-number{align-items:flex-start;text-align:left}.profile-identity-info .profile-display-name>span,.profile-identity-info .profile-role,.profile-identity-info .profile-number>p,.profile-identity-info .profile-number>.profile-mbti{margin-left:0;padding-left:0;text-align:left}

/* All six profile lines share the exact same column edge. */
.profile-identity-info{padding-left:0;margin-left:0}.profile-identity-info .profile-number{align-self:stretch;width:100%;padding-left:0;margin-left:0;min-width:0;transform:none}.profile-identity-info h3.profile-display-name,.profile-identity-info .profile-role,.profile-identity-info .profile-number>p,.profile-identity-info .profile-number>span{align-self:flex-start;text-align:left;text-indent:0;margin-left:0;padding-left:0;position:static;transform:none}.profile-identity-info h3.profile-display-name>span{margin-left:0;padding-left:0;text-indent:0}

/* Extend the upper divider to match the lower divider's 10px inset. */
@media(min-width:901px){.profile-greeting-group{position:relative;border-left:0}.profile-greeting-group::before{content:"";position:absolute;left:0;top:-28px;bottom:-28px;width:1px;background:var(--line)}}

.resume-block .profile-intro{font-size:24px}@media(max-width:900px) and (min-width:601px){.resume-block .profile-intro{font-size:clamp(16px,2.4vw,24px)}}@media(max-width:600px){.resume-block .profile-intro{font-size:clamp(16px,5vw,24px)}}

.campus-filters[hidden]{display:none}.campus-filters{margin:-10px 0 30px;padding:16px 0;border-bottom:1px solid var(--line)}.campus-project-cover{width:100%;min-height:300px;display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:30px;background:var(--bg);border:1px solid var(--line);gap:20px}.campus-project-cover>span{font-size:13px;color:var(--muted)}.campus-project-cover strong{font-size:38px;font-weight:500}.campus-project-cover p{font-size:18px;color:var(--muted);margin:0}.campus-project-cover:hover{border-color:var(--accent)}#detail-image[hidden]{display:none}

/* Campus submenu opens immediately beneath its parent tab. */
.campus-nav-item{position:relative;display:flex;align-items:flex-start}.campus-nav-item .campus-filters{position:absolute;top:calc(100% + 10px);left:0;z-index:5;display:flex;flex-direction:column;gap:8px;min-width:136px;margin:0;padding:14px 18px;background:var(--bg);border:1px solid var(--line);box-shadow:0 8px 24px #0002}.campus-nav-item .campus-filters[hidden]{display:none}.campus-nav-item .campus-filters button{text-align:left;align-self:flex-start;font-size:14px;padding:5px 0}.campus-nav-item .campus-filters button.active{color:var(--accent);border-bottom-color:var(--accent)}

/* Parent and child tabs share one width, type size and center axis. */
.campus-nav-item{width:6em;flex:0 0 6em;font-size:14px}.campus-nav-item>button[data-filter="campus"]{width:100%;text-align:center;font-size:inherit}.campus-nav-item .campus-filters{width:100%;min-width:0;box-sizing:border-box;padding:8px 0;gap:8px}.campus-nav-item .campus-filters button{width:100%;align-self:stretch;text-align:center;font-size:inherit;box-sizing:border-box;padding:6px 0}.campus-nav-item .campus-filters button.active{border-bottom-color:transparent}

.campus-nav-item>button[data-filter="campus"],.campus-nav-item .campus-filters button{text-align:left;padding-left:10px;padding-right:10px}

.campus-nav-item .campus-filters{transform-origin:top;animation:campus-open .2s ease-out}.campus-nav-item .campus-filters.is-closing{animation:campus-close .2s ease-in forwards;pointer-events:none}@keyframes campus-open{from{opacity:0;transform:translateY(-8px) scaleY(.92)}to{opacity:1;transform:translateY(0) scaleY(1)}}@keyframes campus-close{from{opacity:1;transform:translateY(0) scaleY(1)}to{opacity:0;transform:translateY(-10px) scaleY(.9)}}.campus-nav-item::after{content:"";position:absolute;top:100%;left:0;width:100%;height:12px}

/* Real portfolio projects and full-proportion image galleries. */
.projects{grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 30px}.real-project{width:100%;padding-top:0;grid-column:auto}.real-project .project-image{aspect-ratio:16/9;background:#080808}.real-project .project-image img{object-fit:contain;width:100%;height:100%}.real-project .project-caption{flex-wrap:wrap}.detail-gallery{display:grid;gap:18px;margin:28px 0}.detail-gallery a{display:block;background:#000}.detail-gallery img{display:block;width:100%;height:auto}.detail-gallery a:focus-visible{outline:3px solid var(--accent)}@media(max-width:600px){.projects{grid-template-columns:1fr;gap:32px}.detail-gallery{gap:12px}}

.real-project .project-image[data-project="0"]{border:0;padding:0;background:transparent}.real-project .project-image[data-project="0"] img{object-fit:cover;border:0;margin:0}

.resume-entry>p:not(.entry-role){text-align:justify;text-justify:inter-ideograph;text-align-last:left;line-height:1.85}

.resume-project>div>p{text-align:justify;text-justify:inter-ideograph;text-align-last:left;line-height:1.85}.resume-project>div>p>b:first-child{font-weight:500;color:var(--ink)}

/* Dismissible image viewer keeps the project gallery and scroll position. */
#image-viewer{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:64px 5vw 55px;background:rgba(0,0,0,.94);color:#fff;overflow:hidden;cursor:zoom-out}#image-viewer[open]{display:flex;align-items:center;justify-content:center}#image-viewer::backdrop{background:#000b}#enlarged-image{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;cursor:default}.image-viewer-close{position:absolute;right:24px;top:15px;background:transparent;color:#fff;padding:10px 16px;z-index:1}.image-viewer-hint{position:absolute;bottom:14px;left:0;width:100%;text-align:center;font-size:13px;color:#ccc;margin:0;pointer-events:none}@media(max-width:600px){#image-viewer{padding:60px 20px 50px}.image-viewer-close{right:10px}}

.type-nav-item>button[data-filter="type"]{width:100%;font-size:inherit;text-align:left;padding-left:10px;padding-right:10px}.type-nav-item .type-filters button{text-align:left;padding-left:10px;padding-right:10px}

/* Equal spacing between top-level category labels, including dropdown parents. */
.filters:not(.campus-filters){column-gap:24px;row-gap:12px;align-items:flex-start}.filters>.campus-nav-item{width:auto;flex:0 0 auto;font-size:14px}.filters>.campus-nav-item>button[data-filter]{width:auto;padding:6px 0;text-align:left;font-size:14px}.filters>.campus-nav-item .campus-filters{width:max-content;min-width:100%;left:0}.filters>.campus-nav-item .campus-filters button{padding:6px 10px;text-align:left}@media(max-width:600px){.filters:not(.campus-filters){column-gap:24px;row-gap:12px}}

/* Dropdown borders use the parent's width; all labels share its left edge. */
.filters>.campus-nav-item .campus-filters{width:100%;min-width:0;padding:8px 0;box-sizing:border-box;left:0}.filters>.campus-nav-item .campus-filters button{width:100%;padding:6px 0;text-align:left;box-sizing:border-box;font-size:inherit}.filters>.campus-nav-item .campus-filters{border-left:0;border-right:0;outline:1px solid var(--line);outline-offset:0}

/* Wider dropdown surfaces with balanced padding and aligned text. */
.filters>.campus-nav-item .campus-filters{width:132px;min-width:132px;left:-16px;padding:10px 16px;border:1px solid var(--line);outline:none;gap:8px;box-shadow:0 8px 22px #0002}.filters>.campus-nav-item .campus-filters button{padding:7px 0;text-align:left;line-height:1.5}.campus-nav-item::after{left:-16px;width:132px}

/* Compact, centered dropdown items separated by a gray rule. */
.filters>.campus-nav-item .campus-filters{width:104px;min-width:104px;left:50%;transform:translateX(-50%);padding:4px 12px;gap:0}.filters>.campus-nav-item .campus-filters button{width:100%;text-align:center;padding:11px 0;border-bottom:0;margin:0}.filters>.campus-nav-item .campus-filters button+button{border-top:1px solid var(--line)}.campus-nav-item::after{left:50%;width:104px;transform:translateX(-50%)}@keyframes campus-open{from{opacity:0;transform:translate(-50%,-8px) scaleY(.92)}to{opacity:1;transform:translate(-50%,0) scaleY(1)}}@keyframes campus-close{from{opacity:1;transform:translate(-50%,0) scaleY(1)}to{opacity:0;transform:translate(-50%,-10px) scaleY(.9)}}

.filters>.campus-nav-item .campus-filters{width:88px;min-width:88px;padding:0;gap:0}.filters>.campus-nav-item .campus-filters button{width:100%;padding:11px 6px;text-align:center;box-sizing:border-box}.filters>.campus-nav-item .campus-filters button+button{border-top:1px solid var(--line)}.campus-nav-item::after{width:88px}

.detail-gallery video{display:block;width:100%;max-height:75vh;background:#000;object-fit:contain}.video-badge{position:absolute;bottom:16px;right:16px;background:var(--bg);color:var(--ink);padding:9px 14px;border-radius:30px;font-size:14px}.video-cover img{object-fit:contain}

#theme{display:flex;align-items:center;justify-content:center}#theme svg{display:block;flex-shrink:0}

/* Interactive folder replaces the hero's rotating accent. */
.hero-folder{--folder-color:#2c66ed;--folder-back:#285edb;position:absolute;right:5%;top:16%;width:200px;height:190px;background:transparent;padding:25px 0 0;line-height:normal;letter-spacing:normal;isolation:isolate}.folder-back{display:block;position:relative;width:180px;height:130px;margin:auto;background:var(--folder-back);border-radius:0 12px 12px 12px;transition:transform .3s ease}.folder-back:before{content:"";position:absolute;bottom:100%;left:0;width:65px;height:18px;background:var(--folder-back);border-radius:10px 10px 0 0}.folder-paper{--magnet-x:0px;--magnet-y:0px;position:absolute;bottom:10px;left:10%;width:80%;height:110px;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 3px 10px #0002;transition:transform .35s ease,width .35s ease;height:110px;transform:translate(var(--magnet-x),var(--magnet-y));transform-origin:bottom center}.folder-paper img{width:100%;height:100%;object-fit:cover;display:block}.paper-1{background:#e6e6e6;transform:translateY(-12px);width:66%;left:17%}.paper-2{background:#f2f2f2;transform:translateY(-6px);width:74%;left:13%}.paper-3{left:10%}.folder-front{position:absolute;inset:0;background:var(--folder-color);border-radius:10px;transform-origin:bottom;transition:transform .35s ease;pointer-events:none;box-shadow:inset 0 1px 0 #ffffff25}.folder-front.right{opacity:.35;background:#5b89f4}.hero-folder.open .folder-back{transform:translateY(12px)}.hero-folder.open .folder-front{transform:skewX(12deg) scaleY(.65)}.hero-folder.open .folder-front.right{transform:skewX(-12deg) scaleY(.65)}.hero-folder.open .paper-1{width:72%;left:14%;transform:translate(calc(-50px + var(--magnet-x)),calc(-55px + var(--magnet-y))) rotate(-15deg)}.hero-folder.open .paper-2{width:72%;left:14%;transform:translate(calc(50px + var(--magnet-x)),calc(-48px + var(--magnet-y))) rotate(15deg)}.hero-folder.open .paper-3{transform:translate(var(--magnet-x),calc(-85px + var(--magnet-y)))}.folder-caption{display:block;font-size:11px;letter-spacing:1.5px;color:var(--muted);margin-top:20px;font-weight:400}.hero-folder:hover .folder-back{filter:brightness(1.04)}@media(max-width:900px){.hero-folder{right:2%;top:18%;width:150px;height:150px}.folder-back{width:140px;height:102px}.folder-paper{height:85px}.folder-caption{font-size:10px}.hero-folder.open .paper-1{transform:translate(calc(-30px + var(--magnet-x)),calc(-35px + var(--magnet-y))) rotate(-15deg)}.hero-folder.open .paper-2{transform:translate(calc(30px + var(--magnet-x)),calc(-30px + var(--magnet-y))) rotate(15deg)}.hero-folder.open .paper-3{transform:translate(var(--magnet-x),calc(-55px + var(--magnet-y)))}}@media(max-width:600px){.hero h1{padding-bottom:160px}.hero-folder{top:auto;bottom:0;right:15px;width:150px;height:135px}.folder-caption{margin-top:10px}}

.hero-folder{cursor:pointer}.hero-folder.open .folder-paper{cursor:pointer}.folder-paper:focus-visible{outline:3px solid #fff;outline-offset:3px}.hero-folder.open .paper-1,.hero-folder.open .paper-2{z-index:2}.hero-folder.open .paper-3{z-index:3}.hero-folder.open .folder-front{z-index:4}.folder-caption{max-width:220px;font-size:12px;letter-spacing:0;text-align:center}

.hero-folder .folder-paper{pointer-events:none}.hero-folder.open .folder-paper{pointer-events:auto}.folder-caption{display:none}
@media(min-width:601px){.profile-hero{flex-direction:row;flex-wrap:nowrap;align-items:center}.profile-identity{flex:1 1 50%;min-width:0}.profile-greeting-group{position:relative;flex:1 1 50%;max-width:none;align-self:stretch;border:0;padding:0 0 0 28px;justify-content:center}.profile-greeting-group::before{content:"";position:absolute;left:0;top:-28px;bottom:-28px;width:1px;background:var(--line)}}
@media(min-width:601px) and (max-width:900px){.profile-identity{gap:16px}.profile-identity .portrait{width:120px;flex-basis:120px}.profile-identity h3.profile-display-name,.profile-identity h3.profile-display-name>.name-en{font-size:26px}.profile-identity-info .profile-role,.profile-identity-info .profile-number p:first-child,.profile-identity-info .profile-number .profile-mbti{font-size:14px}.profile-greeting-group{padding-left:20px}.profile-greeting-group .profile-greeting-en{font-size:clamp(22px,3.7vw,32px)}.profile-greeting-group .profile-greeting-cn{font-size:clamp(24px,3.9vw,34px)}}

.header-contact dt{font-size:14px}

/* Three-state folder interaction, matching the supplied reference. */
.folder-widget{position:absolute;right:5%;top:15%;width:240px;height:200px;line-height:normal;letter-spacing:0;isolation:isolate;--file-purple:#5227ff}.folder-shell{position:absolute;left:30px;bottom:0;width:180px;height:145px;padding:0;background:transparent;z-index:4;cursor:pointer}.folder-base{position:absolute;inset:0;background:#4b23e9;border-radius:0 16px 16px 16px}.folder-base:before{content:"";position:absolute;bottom:100%;left:0;width:60px;height:16px;border-radius:12px 12px 0 0;background:#4b23e9}.folder-lid{position:absolute;inset:0;background:var(--file-purple);border-radius:16px;transition:transform .45s cubic-bezier(.2,.8,.2,1),clip-path .45s;border:0;transform-origin:bottom center}.file-card{position:absolute;left:40px;bottom:10px;width:160px;height:125px;background:white;border-radius:16px;overflow:hidden;padding:0;z-index:3;pointer-events:none;transition:transform .45s cubic-bezier(.2,.8,.2,1),opacity .3s;opacity:0}.file-card img{width:100%;height:95px;object-fit:cover;display:block;opacity:0;transition:opacity .25s}.file-card>span{display:block;font-size:12px;line-height:1.4;color:#222;letter-spacing:0;padding:6px 8px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;opacity:0}.file-left{background:#e6e6e6}.file-right{background:#f2f2f2}.is-hovered .folder-lid,.is-expanded .folder-lid{transform:scaleX(1.24) scaleY(.72);clip-path:polygon(0 0,100% 0,91% 100%,9% 100%)}.is-hovered .file-card,.is-expanded .file-card{opacity:1}.is-hovered .file-left{transform:translateY(-33px) scale(.84)}.is-hovered .file-right{transform:translateY(-19px) scale(.93)}.is-hovered .file-center{transform:translateY(-5px)}.is-expanded .file-left{transform:translate(-66px,-96px) rotate(-16deg);z-index:5}.is-expanded .file-right{transform:translate(66px,-96px) rotate(16deg);z-index:5}.is-expanded .file-center{transform:translate(0,-133px) rotate(5deg);z-index:6}.is-expanded .file-card{pointer-events:auto;cursor:pointer;box-shadow:0 8px 25px #0003}.is-expanded .file-card img,.is-expanded .file-card>span{opacity:1}.file-card:focus-visible,.folder-shell:focus-visible{outline:3px solid var(--accent);outline-offset:5px}.folder-project-highlight{outline:2px solid var(--accent);outline-offset:10px}@media(max-width:900px){.folder-widget{right:0;top:12%;transform:scale(.75);transform-origin:center right}}@media(max-width:600px){.folder-widget{top:auto;bottom:0;right:10px;transform:scale(.65);transform-origin:bottom right}}@media(prefers-reduced-motion:reduce){.folder-lid,.file-card,.file-card img{transition:none}}

.folder-widget{top:-12%;bottom:auto}@media(max-width:900px){.folder-widget{top:-16%}}@media(max-width:600px){.hero h1{padding-bottom:0}.folder-widget{top:50%;bottom:auto;right:0;transform:translateY(-50%) scale(.48);transform-origin:center right}.hero h1{padding-right:90px;font-size:11.4vw}}

/* Anchor the closed folder bottom to the second headline's text baseline area. */
.folder-widget{top:auto;bottom:.14em}@media(max-width:900px){.folder-widget{top:auto;bottom:.14em;transform:scale(.75);transform-origin:bottom right}}@media(max-width:600px){.folder-widget{top:auto;bottom:.14em;right:0;transform:scale(.48);transform-origin:bottom right}}

.folder-open-label{position:absolute;left:0;right:0;top:12px;text-align:center;font-size:14px;font-weight:400;line-height:1.5;letter-spacing:2px;color:var(--muted);pointer-events:none}.folder-widget.is-expanded .folder-open-label{opacity:0}

.folder-lid{display:flex;align-items:center;justify-content:center}.folder-cover-label{color:#fff;font-size:18px;font-weight:500;letter-spacing:3px;line-height:1.4;pointer-events:none}

.folder-cover-label{color:#fff;font-family:SimHei,"Microsoft YaHei","PingFang SC",sans-serif;font-weight:800}

.hero h1 .folder-widget .folder-lid .folder-cover-label{color:#ffffff;font-family:SimHei,"Microsoft YaHei","PingFang SC",sans-serif;font-weight:900;font-size:26px;letter-spacing:2px;line-height:1.4}

/* React Bits TechText mounts only the hero text, preserving the folder. */
.hero h1 .hero-title-fallback{color:var(--ink)}#hero-tech-mount{display:none;width:72%;color:var(--ink)}.hero h1.tech-loaded .hero-title-fallback{display:none}.hero h1.tech-loaded #hero-tech-mount{display:block}.hero-tech-line{display:block;height:1.45em;width:100%;position:relative}.hero-tech-line:first-child{width:86%}.hero-tech-line .tech-text{font:inherit}.hero h1.tech-loaded{letter-spacing:normal}.hero h1.tech-loaded .folder-widget{bottom:.35em}@media(max-width:600px){#hero-tech-mount{width:100%}.hero h1.tech-loaded{padding-right:95px}.hero-tech-line{height:1.6em}}

.hero-tech-line:first-child{width:100%}#hero-tech-mount{margin-left:0;padding-left:0}.hero-tech-line{margin-left:0;padding-left:0}

.about-folder-float{margin-top:85px;padding-top:45px;position:relative;min-height:210px}.about-folder-float .folder-float{max-width:100%}@media(max-width:600px){.about-folder-float{margin-top:65px;padding-top:45px;margin-bottom:30px;min-height:210px}}

.about-folder-float{margin-top:220px;padding-top:45px}.about-folder-float .folder-float__item{width:200px;box-sizing:border-box;text-align:left;justify-content:flex-start;border-radius:10px}.about-folder-float .folder-float__drift{width:100%;text-align:left;animation:none;white-space:nowrap}@media(max-width:600px){.about-folder-float{margin-top:220px;padding-top:45px}}

@media(min-width:601px){#design-approach{align-items:stretch}#design-approach .about-label{display:flex;flex-direction:column}#design-approach .about-folder-float{margin-top:auto;padding-top:0;min-height:0;height:162px;margin-bottom:18px}}

/* Contact details alongside the closing message. */
.closing{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:40px;align-items:center;padding-bottom:85px}.closing-message>span{font-size:12px;letter-spacing:1px}.closing-message>p{font-size:clamp(30px,3.4vw,54px);font-weight:700;letter-spacing:-1px;line-height:1.45;margin:24px 0 0}.closing-contact{display:flex;align-items:center;gap:22px;justify-content:flex-end;min-width:0}.wechat-contact{margin:0;flex:0 0 140px}.wechat-contact img{display:block;width:140px;height:auto;background:#fff;border-radius:8px}.wechat-contact figcaption{text-align:center;font-size:12px;margin-top:7px}.closing-contact-details{margin:0;display:flex;flex-direction:column;gap:14px;min-width:0}.closing-contact-details>div{display:grid;grid-template-columns:3em minmax(0,1fr);gap:6px;align-items:baseline;font-size:16px;line-height:1.6}.closing-contact-details dt,.closing-contact-details dd{margin:0;white-space:nowrap}.closing-contact-details dd{overflow-wrap:anywhere;white-space:normal}.closing-contact-details a:hover{text-decoration:underline}.closing .closing-top{bottom:22px;font-size:14px}@media(max-width:1050px){.closing{grid-template-columns:1fr;gap:30px}.closing-contact{justify-content:flex-start}.closing-message>p{font-size:clamp(30px,4.5vw,48px)}}@media(max-width:600px){.closing{padding-bottom:32px;gap:26px}.closing-contact{gap:16px}.wechat-contact{flex-basis:110px}.wechat-contact img{width:110px}.closing-contact-details{gap:10px}.closing-contact-details>div{font-size:14px;gap:3px}.closing .closing-top{position:static;justify-self:start;margin-top:0}}@media(max-width:380px){.closing-contact{flex-wrap:wrap}.closing-contact-details{width:100%}}

@media(min-width:601px){.closing{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px}.closing-contact{justify-content:flex-end;gap:16px}.closing-message>p{font-size:clamp(26px,3.4vw,54px)}.wechat-contact{flex-basis:clamp(90px,10vw,140px)}.wechat-contact img{width:100%}.closing-contact-details>div{font-size:clamp(12px,1.4vw,16px);gap:4px}.closing-contact-details{gap:12px}}@media(min-width:601px) and (max-width:800px){.closing{gap:20px}.closing-contact{gap:12px}.closing-message>p{font-size:26px}.closing-contact-details>div{font-size:12px}.closing-contact-details dd{word-break:break-all}}

.closing{align-items:end}.closing-contact{align-items:flex-end}.wechat-contact figcaption{margin-top:0;margin-bottom:9px}.closing-contact-details{padding-bottom:0}.closing-message>p{margin-bottom:0}

.skill-icons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 10px}.skill-icon-item{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0;text-align:center}.skill-icon-item img{width:56px;height:56px;object-fit:contain;border-radius:10px}.skill-icon-item span{font-size:12px;line-height:1.4;overflow-wrap:anywhere}.skill-text-item{justify-content:center;min-height:75px;border:1px solid var(--line)}.skill-text-item span{font-size:14px}@media(max-width:900px) and (min-width:601px){.skill-icons{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.skill-icons{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px 12px}}@media(max-width:380px){.skill-icons{grid-template-columns:repeat(3,minmax(0,1fr))}}

.skill-icon-item img{width:56px;height:56px;display:block;object-fit:contain;box-sizing:border-box;border-radius:12px;background:#000;overflow:hidden}

.skill-icon-item img{background:transparent;object-fit:cover}

.skill-capcut img{width:56px;height:56px;object-fit:cover;clip-path:inset(0 round 12px);transform:scale(1.12);transform-origin:center}.skill-capcut{gap:11px}

.skill-icon-item.skill-capcut img{width:56px;height:56px;border-radius:12px;object-fit:cover;transform:none;clip-path:none;background:#000}.skill-icon-item.skill-capcut{gap:8px}

.skill-icon-item.skill-capcut img{padding:7px;box-sizing:border-box;object-fit:contain;background:#000}
