@charset "UTF-8";
:root{--paper:#f5f6f8;--ink:#1d2634;--muted:#7a828e;--line:#dde1e7;--blue:#385ce0;--font:Arial,"PingFang SC","Microsoft YaHei",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:var(--font);background:var(--paper);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--blue);outline-offset:5px}img{max-width:100%;display:block}.page-width{width:min(1440px,calc(100% - 112px));margin-inline:auto}.skip-link{position:fixed;top:-80px;left:16px;z-index:999;background:white;padding:12px 18px;box-shadow:0 2px 10px #0002}.skip-link:focus{top:14px}.home-header{height:112px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.identity{display:flex;align-items:center;gap:17px}.identity-mark{font-size:36px;font-weight:800;letter-spacing:-.12em;line-height:1}.identity-mark>span{color:var(--blue);margin-left:3px}.identity-name{font-size:12px;letter-spacing:.13em;font-weight:700;line-height:1.3}.identity-name>span{display:block;margin-top:6px;color:var(--muted);font-size:9px;letter-spacing:.12em;font-weight:400}.home-header nav{display:flex;gap:45px;align-items:center;font-size:12px}.home-header nav>a{display:flex;align-items:center;gap:9px}.nav-count{font-size:9px;color:var(--muted);padding-bottom:8px}.edition{font-size:10px;color:var(--muted);letter-spacing:.12em}.intro{display:grid;grid-template-columns:1.6fr 1fr;padding:68px 0 64px;align-items:end;gap:40px}.eyebrow{display:flex;align-items:center;gap:9px;font-size:10px;letter-spacing:.14em;color:#6c7687;margin:0 0 26px}.small-dot{width:6px;height:6px;border-radius:50%;background:var(--blue)}h1{margin:0;font-size:clamp(46px,4.7vw,74px);font-weight:600;line-height:1.27;letter-spacing:-.045em}.title-accent{color:var(--blue)}.title-dot{font-size:.77em}.intro-aside{justify-self:end;position:relative;width:285px;padding-top:16px}.intro-symbol{position:absolute;right:0;top:0;font-size:45px;color:var(--blue);line-height:1}.intro-aside>p{font-size:16px;line-height:1.8;margin:0 0 17px;letter-spacing:.03em}.intro-aside .intro-note{font-size:12px;color:var(--muted);line-height:1.9;letter-spacing:0}.text-link{display:flex;align-items:center;gap:30px;font-size:11px;margin-top:21px;width:fit-content}.text-link>span{font-size:20px;color:var(--blue)}.section-caption{display:flex;align-items:center;justify-content:space-between;padding:22px 0;border-top:1px solid var(--line)}.section-caption h2{font-size:13px;font-weight:500;margin:0;display:flex;align-items:center;gap:16px}.section-caption h2 span{color:var(--muted);font-size:9px;letter-spacing:.13em}.section-caption>span{font-size:10px;color:var(--muted);letter-spacing:.1em}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.project-art{display:block;position:relative;aspect-ratio:1.38;overflow:hidden;border-radius:8px;isolation:isolate;transition:transform .3s,box-shadow .3s}.project-art:hover{transform:translateY(-4px);box-shadow:0 14px 25px #15254115}.art-open{position:absolute;bottom:18px;right:17px;display:grid;place-items:center;width:30px;height:30px;border:1px solid #ffffff50;border-radius:50%;color:white;font-size:18px;background:#ffffff0b;opacity:0;transform:translate(-3px,3px);transition:.2s}.project-art:hover .art-open,.project-art:focus-visible .art-open{opacity:1;transform:none}.art-inyo{background:radial-gradient(ellipse at 5% 0%,#7748c1,transparent 65%),linear-gradient(140deg,#261744,#101a39 75%);color:#fff}.art-topline{position:absolute;top:7%;left:8%;right:8%;display:flex;justify-content:space-between;align-items:center;gap:10px}.art-topline>span:first-child{font-size:22px;letter-spacing:-.05em;font-weight:600}.art-topline>span:last-child{font-size:6px;letter-spacing:.13em;opacity:.65}.tv-set{position:absolute;left:10%;right:10%;top:25%;filter:drop-shadow(0 16px 14px #0005)}.tv-screen{background:#0b0d19;border:5px solid #12131b;border-bottom-width:9px;border-radius:4px;overflow:hidden;aspect-ratio:16/9;box-shadow:0 0 0 1px #ffffff35}.tv-screen img{width:100%;height:100%;object-fit:cover}.tv-neck{margin:auto;width:6%;height:12px;background:linear-gradient(90deg,#171924,#444754,#1a1c27)}.tv-foot{margin:auto;width:29%;height:4px;background:#30333e;border-radius:50% 50% 2px 2px}.art-caption{position:absolute;left:8%;bottom:7%;font-size:7px;letter-spacing:.18em;opacity:.65}.art-tao{background:#071a38}.tao-cover{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .6s}.art-tao:hover img{transform:scale(1.025)}.art-roamail{background:radial-gradient(ellipse at 50% 100%,#f0ebcc,transparent 60%),#e9eee5;color:#3e5d48}.art-roamail .art-topline>span:first-child{font-size:17px;letter-spacing:.02em}.art-roamail .art-topline i{font-family:Georgia,serif;font-size:17px;font-weight:400}.art-roamail .art-topline>span:last-child{font-size:5px;letter-spacing:.1em}.roamail-phones{position:absolute;left:13%;right:13%;top:25%;height:59%;display:flex;gap:8px;justify-content:center;align-items:center;perspective:900px}.roamail-phone{width:auto;height:100%;max-width:none;aspect-ratio:390/820;flex:0 0 auto;object-fit:contain;border:0;border-radius:13%/6.2%;box-shadow:0 10px 19px #374e3825}.main-phone{height:114%;z-index:2;transform:translateY(-3px)}.side-phone:first-child{transform:rotate(-10deg) translateY(7px)}.side-phone:last-child{transform:rotate(10deg) translateY(7px)}.art-roamail .art-caption{font-size:8px;letter-spacing:.2em}.art-roamail .art-open{color:#46644d;border-color:#46644d50}.card-meta{display:flex;justify-content:space-between;gap:12px;margin:23px 0 16px;color:var(--muted);font-size:8px;letter-spacing:.1em;line-height:1.5}h3{font-size:29px;letter-spacing:-.03em;margin:0;font-weight:600}h3 a{display:block}h3 a>span{display:block;margin-top:5px;font-size:15px;font-weight:400;letter-spacing:0;color:#596271}.card-description{font-size:11px;line-height:1.8;color:#757d88;margin:19px 0 16px}.card-tags{display:flex;flex-wrap:wrap;gap:6px}.card-tags span{font-size:9px;color:#6b7482;border:1px solid #dde2e9;border-radius:20px;padding:5px 9px}.card-actions{margin-top:25px;padding:17px 0 8px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.project-link{font-size:12px;display:flex;gap:14px;align-items:center}.project-link>span{font-size:18px;color:var(--blue)}.secondary-link{font-size:10px;color:var(--muted);padding:6px 0}.secondary-link:hover{color:var(--blue)}.home-footer{display:flex;justify-content:space-between;align-items:center;gap:25px;padding-block:31px;margin-top:64px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}.home-footer>div{display:flex;gap:16px;align-items:center}.footer-name{font-size:12px;color:var(--ink)}.home-footer p{margin:0}.home-footer a:hover{color:var(--blue)}
/* Portfolio navigation lives outside the unmodified project documents. */
.viewer-page{height:100dvh;overflow:hidden;background:#fff}.viewer-header{height:66px;padding:0 28px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid #e8ebf0;gap:20px;background:#fff}.viewer-home{display:flex;align-items:center;gap:13px;font-size:11px;width:max-content}.viewer-home .identity-mark{font-size:27px}.viewer-home-label{border-left:1px solid #dfe3ea;padding-left:13px;color:#7a828f}.project-tabs{display:flex;gap:6px;align-items:center}.project-tabs a{font-size:12px;color:#737e8d;padding:9px 18px;border-radius:5px;transition:background .15s}.project-tabs a:hover{background:#f3f5f8}.project-tabs a[aria-current="page"]{background:#edf1ff;color:#385ce0}.viewer-external{justify-self:end;display:flex;align-items:center;gap:9px;color:#7a828f;font-size:10px}.viewer-external span{font-size:15px}.viewer-toolbar{height:42px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #e8ebf0;padding:0 28px;background:#fbfcfe}.viewer-project-name{font-size:10px;color:#87909c}.mode-tabs{display:flex;gap:23px;height:100%;align-items:center}.mode-tabs a{height:100%;display:flex;align-items:center;border-bottom:2px solid transparent;font-size:10px;color:#89919e;padding-top:2px}.mode-tabs a[aria-current="page"]{border-bottom-color:#385ce0;color:#385ce0}.viewer-stage{height:calc(100dvh - 108px);position:relative;background:#f1f3f6}.viewer-stage iframe{width:100%;height:100%;border:0;display:block;background:#fff}.viewer-stage iframe[hidden]{display:none}.viewer-status{position:absolute;inset:0;display:grid;place-content:center;gap:12px;text-align:center;background:#f5f6f8;color:#7c8796;font-size:12px;z-index:3;pointer-events:none}.viewer-status[hidden]{display:none}.viewer-status>i{width:24px;height:24px;margin:auto;border:2px solid #dfe5f7;border-top-color:#385ce0;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.tao-cover{object-fit:contain}
.intro-greeting{display:block;font-size:clamp(31px,3.2vw,49px);font-weight:500;letter-spacing:-.035em;margin-bottom:9px}.intro-person-name{display:block;font-size:clamp(50px,5.8vw,88px);line-height:1.12;letter-spacing:-.055em;font-weight:600}.intro-disciplines{display:flex;align-items:center;gap:13px;margin:25px 0 0;color:#737e8d;font-size:11px;letter-spacing:.04em}.intro-disciplines>span{font-size:10px;color:#b6bdc8}.personal-summary{width:340px;padding-top:0}.personal-summary-label{display:block;font-size:9px;letter-spacing:.15em;color:var(--blue);margin-bottom:18px}.personal-summary .intro-note{max-width:330px;font-size:12px;line-height:1.95}.intro-links{display:flex;gap:32px;flex-wrap:wrap}.intro-links .text-link{gap:12px;margin-top:10px}.intro-about-link{color:var(--muted)}.about-section{margin-top:65px;scroll-margin-top:28px}.about-layout{display:grid;grid-template-columns:1fr 1.4fr;gap:8%;padding:35px 0 12px}.about-monogram{display:flex;align-items:center;justify-content:center;width:66px;height:66px;background:#e9edfc;border-radius:50%;font-size:36px;letter-spacing:-.12em;font-weight:700;color:#364879;margin-bottom:23px}.about-monogram>span{color:var(--blue)}.about-heading h3{font-size:25px;line-height:1.5;font-weight:500;letter-spacing:-.025em}.about-heading>p{font-size:10px;color:var(--muted);margin-top:18px}.about-copy>p{font-size:14px;line-height:2.05;color:#626d7c;margin:0 0 20px;max-width:660px}.about-copy>p:first-child{color:#364254}.about-focus{border-top:1px solid var(--line);padding-top:22px;margin-top:28px;display:flex;align-items:baseline;gap:26px}.about-focus>span{font-size:10px;color:var(--muted);flex-shrink:0}.about-focus>div{display:flex;gap:9px;flex-wrap:wrap}.about-focus>div>span{font-size:10px;padding:6px 10px;border:1px solid var(--line);border-radius:4px;color:#657184}
.intro-name-en{margin:12px 0 0;font-size:22px;letter-spacing:.025em;color:#627086}.study-status{display:inline-block;vertical-align:middle;font-size:9px;font-weight:400;line-height:1.4;letter-spacing:.05em;padding:3px 7px;margin-left:8px;border:1px solid #d7e0fc;background:#edf1ff;color:#385ce0;border-radius:4px}.about-layout.resume-layout{grid-template-columns:minmax(230px,.7fr) minmax(0,1.5fr);gap:9%;padding-top:38px}.resume-sidebar{position:sticky;top:28px;align-self:start}.resume-sidebar .about-monogram{position:static;margin:0 0 23px}.resume-sidebar h3{font-size:27px;font-weight:600;line-height:1.3}.resume-sidebar .resume-en-name{font-size:16px;color:#4f5e74;letter-spacing:.025em;margin:7px 0 0}.resume-sidebar .resume-role{font-size:12px;color:#7b8695;line-height:1.9;margin:18px 0 0}.resume-index{display:flex;flex-direction:column;gap:0;margin-top:30px;max-width:250px}.resume-index a{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#798495;border-bottom:1px solid var(--line);padding:11px 0}.resume-index a:hover{color:var(--blue)}.resume-index a>span{font-size:8px;color:#a3adbb}.resume-contact{margin-top:30px;scroll-margin-top:35px}.resume-contact>span{display:block;font-size:8px;letter-spacing:.12em;color:#8c96a3;margin-bottom:11px}.resume-contact>a{font-size:12px;line-height:1.8;overflow-wrap:anywhere;color:#3e5dc5}.resume-contact>a>span{margin-left:7px}.resume-introduction>p{margin:0;color:#536073;font-size:14px;line-height:2.1}.resume-introduction strong{font-weight:500;color:#385ce0}.resume-section{margin-top:38px;padding-top:29px;border-top:1px solid var(--line);scroll-margin-top:30px}.resume-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:24px}.resume-section-title h4{font-size:17px;line-height:1.5;font-weight:500;margin:0;color:#28384e}.resume-section-title>span{font-size:8px;letter-spacing:.1em;color:#96a0ae}.resume-content h5{font-size:15px;line-height:1.6;font-weight:500;color:#344257;margin:0}.education-list{display:flex;flex-direction:column;gap:22px}.education-entry,.experience-title{display:flex;justify-content:space-between;align-items:baseline;gap:20px}.education-entry p,.experience-title p{margin:7px 0 0;color:#788395;font-size:11px;line-height:1.8}.education-entry time,.experience-title time{font-size:10px;line-height:1.8;color:#8c96a5;white-space:nowrap;flex-shrink:0}.experience-title h5>span{font-size:12px;color:#708096;margin-left:8px}.experience-details{list-style:none;padding:0;margin:23px 0 0;display:grid;gap:18px}.experience-details li{padding-left:16px;position:relative}.experience-details li:before{content:"";position:absolute;left:0;top:7px;width:4px;height:4px;border-radius:50%;background:#8da1d9}.experience-details strong{font-size:12px;line-height:1.7;font-weight:500;color:#4b5b72}.experience-details p,.practice-list p{font-size:12px;color:#798496;line-height:2;margin:6px 0 0}.practice-list{display:flex;flex-direction:column;gap:25px}.practice-list>article+article{border-top:1px solid #e6e9ef;padding-top:24px}.practice-list a{display:flex;justify-content:space-between;gap:20px;align-items:center;width:100%;max-width:100%}.practice-list a>span{font-size:20px;color:#7f95cc}.practice-list a:hover h5,.practice-list a:hover>span{color:var(--blue)}.practice-subtitle{display:block;font-size:10px;color:#8994a2;margin:5px 0 10px}.skills-list{margin:0;display:flex;flex-direction:column;gap:22px}.skills-list>div{display:grid;grid-template-columns:100px 1fr;gap:20px;align-items:baseline}.skills-list dt{font-size:12px;color:#4e5e75;line-height:1.8}.skills-list dd{font-size:12px;color:#798496;line-height:1.95;margin:0}.tool-tags{display:flex;gap:7px;flex-wrap:wrap}.tool-tags span{font-size:10px;border:1px solid #dce2ed;background:#f1f3f8;color:#687891;border-radius:4px;padding:4px 9px}.language-tags{display:flex;align-items:center;gap:10px}.language-tags>span{font-size:11px;color:#5a6d8b;border:1px solid #dce2ed;border-radius:5px;padding:9px 13px}.language-tags strong{font-weight:500;color:#385ce0;margin-left:4px}.honors-list{padding:0;list-style:none;margin:24px 0 0;display:flex;flex-direction:column;gap:14px}.honors-list li{font-size:12px;color:#6e7c90}.honors-list li>span{display:inline-block;font-size:10px;color:#9aa3af;margin-left:10px}.footer-email{font-size:10px;overflow-wrap:anywhere}
@media(min-width:1600px){.intro{padding-block:90px}.project-grid{gap:34px}}
@media(max-width:1100px){.page-width{width:calc(100% - 64px)}.home-header{height:96px}.intro{padding:54px 0;grid-template-columns:1.4fr 1fr}.intro-aside{width:250px}.project-grid{gap:20px}.card-meta{font-size:6px;gap:8px}h3{font-size:25px}.card-description{font-size:10px;min-height:36px}.card-tags span{font-size:8px;padding:4px 7px}.art-topline>span:first-child{font-size:18px}.art-topline>span:last-child{font-size:5px}.home-footer p{display:none}}
@media(max-width:760px){.page-width{width:calc(100% - 40px)}.home-header{height:84px}.identity{gap:12px}.identity-name{font-size:10px}.identity-name>span{font-size:7px}.identity-mark{font-size:31px}.home-header nav{gap:0;font-size:11px}.edition{display:none}.intro{grid-template-columns:1fr;padding:43px 0 36px;gap:28px}h1{font-size:48px}.eyebrow{font-size:8px;letter-spacing:.08em;margin-bottom:22px}.intro-aside{width:100%;justify-self:start;padding:0 0 0 38%;min-height:125px}.intro-symbol{left:0;right:auto;top:8px;font-size:50px}.intro-aside>p{font-size:12px;line-height:1.8;margin-bottom:12px}.intro-aside .intro-note{font-size:10px}.text-link{margin-top:10px;font-size:10px;gap:24px}.project-grid{grid-template-columns:1fr;gap:40px}.project-art{aspect-ratio:1.5;max-height:450px}.section-caption{padding:20px 0}.card-meta{font-size:9px;margin-top:20px}h3{font-size:30px}h3 a>span{font-size:15px}.card-description{font-size:12px;min-height:0;margin-top:16px}.card-tags span{font-size:10px;padding:5px 10px}.card-actions{margin-top:22px;padding-top:15px}.secondary-link{font-size:11px}.art-topline>span:first-child{font-size:25px}.art-topline>span:last-child{font-size:7px}.art-roamail .art-topline>span:first-child{font-size:22px}.art-roamail .art-topline>span:last-child{font-size:6px}.art-caption{font-size:8px}.home-footer{margin-top:42px;font-size:9px}.home-footer>div{display:block}.home-footer>div>span{display:block}.footer-name{margin-bottom:6px}.viewer-header{height:104px;grid-template-columns:1fr 1fr;gap:0;padding:0 16px;grid-template-rows:50px 54px}.viewer-home{font-size:10px;gap:10px}.viewer-home-label{padding-left:10px}.project-tabs{grid-column:1/-1;grid-row:2;justify-content:center;width:100%;gap:6px}.project-tabs a{flex:1;text-align:center;padding:9px 12px;font-size:12px}.viewer-external{grid-column:2;grid-row:1;font-size:10px}.viewer-toolbar{padding:0 16px}.viewer-stage{height:calc(100dvh - 146px)}.viewer-project-name{font-size:8px}.mode-tabs{gap:18px}}
@media(max-width:1100px){.personal-summary{width:285px}.personal-summary>p{font-size:14px}.personal-summary .intro-note{font-size:11px}.intro-person-name{font-size:clamp(43px,5.8vw,70px)}}
@media(max-width:760px){.home-header nav{gap:20px}.personal-intro{gap:31px}.intro-greeting{font-size:32px}.intro-person-name{font-size:clamp(44px,10.7vw,70px)}.intro-disciplines{font-size:10px;gap:10px;margin-top:20px}.personal-summary{padding:0;width:100%;min-height:0}.personal-summary-label{font-size:8px;margin-bottom:12px}.personal-summary>p{font-size:14px;margin-bottom:10px}.personal-summary .intro-note{font-size:12px;max-width:100%}.intro-links{gap:26px}.intro-links .text-link{font-size:11px;margin-top:8px}.about-section{margin-top:46px}.about-layout{grid-template-columns:1fr;gap:22px;padding-top:20px}.about-heading{position:relative;padding-left:78px}.about-monogram{position:absolute;left:0;top:2px;width:55px;height:55px;font-size:30px;margin:0}.about-heading h3{font-size:20px}.about-heading>p{margin-top:9px}.about-copy>p{font-size:12px;line-height:2}.about-focus{gap:16px;padding-top:18px;margin-top:20px}.about-focus>div{gap:6px}.about-focus>div>span{font-size:9px;padding:5px 8px}}
@media(max-width:1100px){.about-layout.resume-layout{gap:7%;grid-template-columns:minmax(210px,.7fr) minmax(0,1.5fr)}.resume-section-title>span{font-size:7px;letter-spacing:.06em}.skills-list>div{grid-template-columns:85px 1fr;gap:13px}.personal-summary .study-status{font-size:8px;padding:2px 5px}}
@media(max-width:760px){.home-header nav{gap:15px}.identity-name{font-size:9px;letter-spacing:.05em}.identity-name>span{font-size:6px;letter-spacing:.05em}.intro-name-en{font-size:18px;margin-top:9px}.about-layout.resume-layout{grid-template-columns:1fr;gap:29px;padding-top:22px}.about-heading.resume-sidebar{position:static;padding-left:0}.resume-sidebar .about-monogram{display:none}.resume-sidebar h3{font-size:23px}.resume-sidebar .resume-en-name{font-size:14px}.resume-sidebar .resume-role{font-size:11px;margin-top:11px}.resume-index{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;max-width:none;margin-top:21px}.resume-contact{margin-top:23px}.resume-introduction>p{font-size:12px;line-height:2}.resume-section{margin-top:28px;padding-top:23px}.resume-section-title{gap:12px;margin-bottom:20px}.resume-section-title h4{font-size:15px}.resume-section-title>span{font-size:7px}.education-entry,.experience-title{align-items:start;gap:12px}.education-entry time,.experience-title time{font-size:9px}.resume-content h5{font-size:14px}.education-entry p,.experience-title p{font-size:10px}.experience-details p,.practice-list p{font-size:11px;line-height:2}.experience-details strong,.skills-list dt{font-size:11px}.skills-list>div{grid-template-columns:1fr;gap:6px}.skills-list dd{font-size:11px}.honors-list li{font-size:11px}.home-footer{flex-wrap:wrap;gap:17px}.footer-email{font-size:9px}.home-footer>a:last-child{margin-left:auto}}
@media(max-width:370px){.identity-name{display:none}.home-header nav{gap:18px}.education-entry,.experience-title{flex-direction:column;gap:7px}}
.resume-name-row{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:250px}.resume-name-text{min-width:0}.resume-sidebar .resume-name-row .about-monogram{display:flex;position:static;width:66px;height:66px;margin:0;flex-shrink:0}
#work-title{align-items:center;line-height:1;min-height:24px}#work-title>span{display:inline-flex;align-items:center;line-height:1}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
